<?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>86091</bug_id>
          
          <creation_ts>2012-05-10 06:16:56 -0700</creation_ts>
          <short_desc>[EFL][DRT] EventSender requires contextClick implementation .</short_desc>
          <delta_ts>2012-10-31 01:59:25 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>94925</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Krzysztof Czech">k.czech</reporter>
          <assigned_to name="Michal Pakula vel Rutka">mpakulavelrutka</assigned_to>
          <cc>g.czajkowski</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>sw0524.lee</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>620518</commentid>
    <comment_count>0</comment_count>
    <who name="Krzysztof Czech">k.czech</who>
    <bug_when>2012-05-10 06:16:56 -0700</bug_when>
    <thetext>EFL&apos; EventSender requires contextClick implementation so that following tests might be removed from Skipped list:

editing/pasteboard/copy-standalone-image-crash.html
editing/selection/5354455-1.html
editing/selection/5354455-2.html
editing/selection/button-right-click.html
editing/selection/context-menu-on-text.html
editing/selection/context-menu-text-selection.html
editing/selection/empty-cell-right-click.html
editing/selection/extend-after-mouse-selection.html
editing/selection/shift-click.html
editing/spelling/context-menu-suggestions.html
editing/spelling/spellcheck-input-search-crash.html
fast/events/context-no-deselect.html
fast/events/context-onmousedown-event.html
fast/events/contextmenu-scrolled-page-with-frame.html
fast/events/menu-keydown-on-hidden-element.html
fast/events/right-click-focus.html
fast/events/selectstart-prevent-selection-on-right-click.html
media/context-menu-actions.html
media/controls-right-click-on-timebar.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722643</commentid>
    <comment_count>1</comment_count>
      <attachid>164529</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-09-18 04:08:19 -0700</bug_when>
    <thetext>Created attachment 164529
patch

This patch contains an contextClick implementation basing on a WebKit GTK one. A change in ewk_context_menu was introduced to allow selecting context menu items without having a pointer to parent menu object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722651</commentid>
    <comment_count>2</comment_count>
      <attachid>164531</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-09-18 04:16:49 -0700</bug_when>
    <thetext>Created attachment 164531
rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722652</commentid>
    <comment_count>3</comment_count>
      <attachid>164529</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-18 04:18:21 -0700</bug_when>
    <thetext>Comment on attachment 164529
patch

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

We started to add unit test cases for WK1 public API too. Please support it as well.

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:56
&gt; +    Ewk_Context_Menu* parentmenu;

Missing comment.

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:329
&gt; + * @return a context menu object

You need to mention on failure case as well.

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:331
&gt; +EAPI Ewk_Context_Menu           *ewk_context_menu_item_parent_get(Ewk_Context_Menu_Item *o);

Missing const keyword.

&gt; Source/WebKit/efl/ewk/ewk_view.h:2751
&gt; +EAPI Ewk_Context_Menu* ewk_view_context_menu_get(Evas_Object* ewkView);

Missing const keyword for _get function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722660</commentid>
    <comment_count>4</comment_count>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-09-18 04:41:52 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 164529 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164529&amp;action=review
&gt; 
&gt; We started to add unit test cases for WK1 public API too. Please support it as well.
&gt; 

OK I will add two cases after 94925 will be updated

&gt; &gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:56
&gt; &gt; +    Ewk_Context_Menu* parentmenu;
&gt; 
&gt; Missing comment.
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:329
&gt; &gt; + * @return a context menu object
&gt; 
&gt; You need to mention on failure case as well.
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:331
&gt; &gt; +EAPI Ewk_Context_Menu           *ewk_context_menu_item_parent_get(Ewk_Context_Menu_Item *o);
&gt; 
&gt; Missing const keyword.
&gt; 
&gt; &gt; Source/WebKit/efl/ewk/ewk_view.h:2751
&gt; &gt; +EAPI Ewk_Context_Menu* ewk_view_context_menu_get(Evas_Object* ewkView);
&gt; 
&gt; Missing const keyword for _get function.

Done, I will also add some documentation to ewk_view_context_menu_get</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724380</commentid>
    <comment_count>5</comment_count>
      <attachid>164885</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-09-20 03:41:59 -0700</bug_when>
    <thetext>Created attachment 164885
unit tests added

Added const modifiers, documentation and unit tests for new and changed API functions. Patch will not build until https://bugs.webkit.org/show_bug.cgi?id=94925 will land again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724384</commentid>
    <comment_count>6</comment_count>
      <attachid>164885</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-20 03:47:44 -0700</bug_when>
    <thetext>Comment on attachment 164885
unit tests added

Attachment 164885 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13961004</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724481</commentid>
    <comment_count>7</comment_count>
      <attachid>164885</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2012-09-20 06:25:01 -0700</bug_when>
    <thetext>Comment on attachment 164885
unit tests added

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

&gt; LayoutTests/platform/efl-wk2/TestExpectations:206
&gt; +// EFL&apos;s EventSender does not implement contextClick yet

// WebKitTestRunner needs an implementation for eventSender.contextClick (https://bugs.webkit.org/show_bug.cgi?id=86881)

&gt; Source/WebKit/PlatformEfl.cmake:331
&gt; +    test_ewk_contextmenu

Please keep alphabetical order.

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:326
&gt; + * Gets the parent menu for context menu item

Missing comma.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733532</commentid>
    <comment_count>8</comment_count>
      <attachid>166846</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-10-03 03:35:14 -0700</bug_when>
    <thetext>Created attachment 166846
rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733544</commentid>
    <comment_count>9</comment_count>
      <attachid>166851</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-10-03 03:54:24 -0700</bug_when>
    <thetext>Created attachment 166851
rebased again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733623</commentid>
    <comment_count>10</comment_count>
      <attachid>166851</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-03 06:18:26 -0700</bug_when>
    <thetext>Comment on attachment 166851
rebased again

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

&gt; LayoutTests/platform/efl/TestExpectations:1291
&gt; +webkit.org/b/86633 editing/spelling/context-menu-suggestions.html [ Failure ]

Wrong alphabetical order.

&gt; Source/WebKit/efl/tests/test_ewk_contextmenu.cpp:67
&gt; +    Eina_Bool itemChecked = EINA_FALSE;

Please use standard boolean. We decided to use standard boolean for test case lately.

&gt; Tools/DumpRenderTree/efl/EventSender.cpp:323
&gt; +static JSValueRef contextClickCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef*    exception)

JSValueRef*    exception -&gt; JSValueRef* exception ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733655</commentid>
    <comment_count>11</comment_count>
      <attachid>166886</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-10-03 06:59:20 -0700</bug_when>
    <thetext>Created attachment 166886
fixes

Fixed according to Gyuyoung comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741983</commentid>
    <comment_count>12</comment_count>
      <attachid>166886</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-15 06:00:00 -0700</bug_when>
    <thetext>Comment on attachment 166886
fixes

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

&gt; LayoutTests/platform/efl/editing/selection/5354455-2-expected.txt:1
&gt; +layer at (0,0) size 800x600

Pixel expectation?

&gt; LayoutTests/platform/efl/fast/events/context-no-deselect-expected.txt:1
&gt; +layer at (0,0) size 800x600

Pixel expectation?

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:203
&gt; +EAPI Ewk_Context_Menu_Item      *ewk_context_menu_item_new(Ewk_Context_Menu_Item_Type type, Ewk_Context_Menu_Action action, Ewk_Context_Menu *submenu, Ewk_Context_Menu *parentmenu, const char *title, Eina_Bool checked, Eina_Bool enabled);

Missing doc for parent menu argument.
Why is parentmenu passed *after* submenu? That seems a bit odd.

&gt; Source/WebKit/efl/ewk/ewk_view.h:2784
&gt; +EAPI Ewk_Context_Menu* ewk_view_context_menu_get(const Evas_Object* o);

Stars on wrong side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742014</commentid>
    <comment_count>13</comment_count>
      <attachid>166886</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-10-15 06:47:33 -0700</bug_when>
    <thetext>Comment on attachment 166886
fixes

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

&gt;&gt; LayoutTests/platform/efl/editing/selection/5354455-2-expected.txt:1
&gt;&gt; +layer at (0,0) size 800x600
&gt; 
&gt; Pixel expectation?

already did by Raphael

&gt;&gt; LayoutTests/platform/efl/fast/events/context-no-deselect-expected.txt:1
&gt;&gt; +layer at (0,0) size 800x600
&gt; 
&gt; Pixel expectation?

same as above

&gt;&gt; Source/WebKit/efl/ewk/ewk_contextmenu.h:203
&gt;&gt; +EAPI Ewk_Context_Menu_Item      *ewk_context_menu_item_new(Ewk_Context_Menu_Item_Type type, Ewk_Context_Menu_Action action, Ewk_Context_Menu *submenu, Ewk_Context_Menu *parentmenu, const char *title, Eina_Bool checked, Eina_Bool enabled);
&gt; 
&gt; Missing doc for parent menu argument.
&gt; Why is parentmenu passed *after* submenu? That seems a bit odd.

doc added, I will move parentmenu before submenu

&gt;&gt; Source/WebKit/efl/ewk/ewk_view.h:2784
&gt;&gt; +EAPI Ewk_Context_Menu* ewk_view_context_menu_get(const Evas_Object* o);
&gt; 
&gt; Stars on wrong side.

fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742020</commentid>
    <comment_count>14</comment_count>
      <attachid>168705</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-10-15 07:00:00 -0700</bug_when>
    <thetext>Created attachment 168705
fixed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754193</commentid>
    <comment_count>15</comment_count>
      <attachid>171413</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-10-30 04:05:27 -0700</bug_when>
    <thetext>Created attachment 171413
rebased patch

rebased patch with one pixel test expectation added and TestExpectations file updated due spellcheck changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754373</commentid>
    <comment_count>16</comment_count>
      <attachid>171413</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-30 08:04:44 -0700</bug_when>
    <thetext>Comment on attachment 171413
rebased patch

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

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:56
&gt; +    Ewk_Context_Menu* parentmenu; /**&lt; contains the pointer to parent menu of the item */

parent_menu would be the usual EFL style, right?

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:102
&gt; +Ewk_Context_Menu_Item* ewk_context_menu_item_new(Ewk_Context_Menu_Item_Type type, Ewk_Context_Menu_Action action, Ewk_Context_Menu* parentmenu,

I would prefer &quot;parentMenu&quot; to follow WebKit coding style.

&gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:210
&gt; +    return item-&gt;parentmenu;

We usually have a blank line before return statements.

&gt; Source/WebKit/efl/ewk/ewk_view.cpp:4740
&gt; +    return priv-&gt;contextMenu;

blank line before.

&gt; Source/WebKit/efl/tests/test_ewk_contextmenu.cpp:69
&gt; +    Ewk_Context_Menu_Item* contextMenuItem = ewk_context_menu_item_new(itemType, itemAction, contextMenu, 0, itemTitle, itemChecked, itemEnabled);

never freed?

&gt; Tools/DumpRenderTree/efl/EventSender.cpp:364
&gt; +    return valueRef;

Blank line before return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754403</commentid>
    <comment_count>17</comment_count>
      <attachid>171413</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-10-30 08:49:47 -0700</bug_when>
    <thetext>Comment on attachment 171413
rebased patch

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

&gt;&gt; Source/WebKit/efl/ewk/ewk_contextmenu.cpp:56
&gt;&gt; +    Ewk_Context_Menu* parentmenu; /**&lt; contains the pointer to parent menu of the item */
&gt; 
&gt; parent_menu would be the usual EFL style, right?

as it is &quot;private&quot; structure I will use parentMenu as below</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754423</commentid>
    <comment_count>18</comment_count>
      <attachid>171465</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-10-30 09:19:24 -0700</bug_when>
    <thetext>Created attachment 171465
fixed patch

Fixed patch according to Christophe&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754490</commentid>
    <comment_count>19</comment_count>
      <attachid>171465</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-30 10:26:43 -0700</bug_when>
    <thetext>Comment on attachment 171465
fixed patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754493</commentid>
    <comment_count>20</comment_count>
      <attachid>171465</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-30 10:28:31 -0700</bug_when>
    <thetext>Comment on attachment 171465
fixed patch

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

&gt; LayoutTests/ChangeLog:3
&gt; +        [EFL][DRT] EventSender requires contextClick implementation.

Sorry I did not notice that before but we do not usually end bug title with a period (.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755025</commentid>
    <comment_count>21</comment_count>
      <attachid>171591</attachid>
    <who name="Michal Pakula vel Rutka">mpakulavelrutka</who>
    <bug_when>2012-10-31 00:28:24 -0700</bug_when>
    <thetext>Created attachment 171591
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755058</commentid>
    <comment_count>22</comment_count>
      <attachid>171591</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-31 01:59:19 -0700</bug_when>
    <thetext>Comment on attachment 171591
patch for landing

Clearing flags on attachment: 171591

Committed r133000: &lt;http://trac.webkit.org/changeset/133000&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755059</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-31 01:59:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164529</attachid>
            <date>2012-09-18 04:08:19 -0700</date>
            <delta_ts>2012-09-20 03:41:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>contextclick.diff</filename>
            <type>text/plain</type>
            <size>19196</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ODNlZDFiLi4yYWQ1ZTU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDkt
MTggIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSBjb250ZXh0Q2xpY2sgZGVwZW5kZW50IHRlc3RzIHRvIFdlYktpdDIgVGVzdEV4cGVj
dGF0aW9ucyBhbmQKKyAgICAgICAgYWRkIG5ldyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorCiAyMDEyLTA5LTE4ICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8uZGEu
Y29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDMx
OTlkYzQuLjQzYWUxYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTIwNiwzICsyMDYsMjEgQEAgQlVHV0s5Njc5NCA6IGZhc3QvZXZlbnRz
L3RvdWNoL3RvdWNoLWluc2lkZS1pZnJhbWUtc2Nyb2xsZWQuaHRtbCA9IFRFWFQKIC8vIEZhaWxz
IGFmdGVyIHIxMjgwNTYuCiBCVUdXazk2NzkyIDogaW5zcGVjdG9yL2NvbnNvbGUvYWxlcnQtdG9T
dHJpbmctZXhjZXB0aW9uLmh0bWwgPSBURVhUCiAKKy8vIEVGTCdzIEV2ZW50U2VuZGVyIGRvZXMg
bm90IGltcGxlbWVudCBjb250ZXh0Q2xpY2sgeWV0CitCVUdXSzg2ODgxIDogZWRpdGluZy9wYXN0
ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFnZS1jcmFzaC5odG1sID0gVEVYVAorQlVHV0s4Njg4
MSA6IGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sID0gVEVYVAorQlVHV0s4Njg4MSA6
IGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMi5odG1sID0gVEVYVAorQlVHV0s4Njg4MSA6IGVk
aXRpbmcvc2VsZWN0aW9uL2J1dHRvbi1yaWdodC1jbGljay5odG1sID0gVEVYVAorQlVHV0s4Njg4
MSA6IGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0Lmh0bWwgPSBURVhUCitC
VUdXSzg2ODgxIDogZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9u
Lmh0bWwgPSBURVhUCitCVUdXSzg2ODgxIDogZWRpdGluZy9zZWxlY3Rpb24vZW1wdHktY2VsbC1y
aWdodC1jbGljay5odG1sID0gVEVYVAorQlVHV0s4Njg4MSA6IGVkaXRpbmcvc2hhZG93L3JpZ2h0
Y2xpY2stb24tbWV0ZXItaW4tc2hhZG93LWNyYXNoLmh0bWwgPSBURVhUCitCVUdXSzg2ODgxIDog
ZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbCA9IFRFWFQKK0JV
R1dLODY4ODEgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2staW5wdXQtc2VhcmNoLWNyYXNo
Lmh0bWwgPSBURVhUCitCVUdXSzg2ODgxIDogZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVj
dC5odG1sID0gVEVYVAorQlVHV0s4Njg4MSA6IGZhc3QvZXZlbnRzL2NvbnRleHQtb25tb3VzZWRv
d24tZXZlbnQuaHRtbCA9IFRFWFQKK0JVR1dLODY4ODEgOiBmYXN0L2V2ZW50cy9jb250ZXh0bWVu
dS1zY3JvbGxlZC1wYWdlLXdpdGgtZnJhbWUuaHRtbCA9IFRFWFQKK0JVR1dLODY4ODEgOiBmYXN0
L2V2ZW50cy9yaWdodC1jbGljay1mb2N1cy5odG1sID0gVEVYVAorQlVHV0s4Njg4MSA6IGZhc3Qv
ZXZlbnRzL3NlbGVjdHN0YXJ0LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0LWNsaWNrLmh0bWwg
PSBURVhUCitCVUdXSzg2ODgxIDogbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCA9IFRF
WFQKK0JVR1dLODY4ODEgOiBtZWRpYS9jb250cm9scy1yaWdodC1jbGljay1vbi10aW1lYmFyLmh0
bWwgPSBURVhUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDU3MDM4ZmIuLjMyN2NhNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCkBAIC03MTEsMjcgKzcxMSw2IEBAIEJVR1dLODIxNDAgOiBpbnNwZWN0b3IvZ2VvbG9j
YXRpb24tZXJyb3IuaHRtbCA9IFRFWFQKIEJVR1dLODIxNDAgOiBpbnNwZWN0b3IvZ2VvbG9jYXRp
b24tc3VjY2Vzcy5odG1sID0gVEVYVAogQlVHV0s4MjE0MCA6IGluc3BlY3Rvci9nZW9sb2NhdGlv
bi13YXRjaFBvc2l0aW9uLmh0bWwgPSBURVhUCiAKLS8vIEVGTCdzIEV2ZW50U2VuZGVyIGRvZXMg
bm90IGltcGxlbWVudCBjb250ZXh0Q2xpY2sgeWV0Ci1CVUdXSzg2MDkxIDogZWRpdGluZy9wYXN0
ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFnZS1jcmFzaC5odG1sID0gVEVYVAotQlVHV0s4NjA5
MSA6IGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sID0gVEVYVAotQlVHV0s4NjA5MSA6
IGVkaXRpbmcvc2VsZWN0aW9uL2J1dHRvbi1yaWdodC1jbGljay5odG1sID0gVEVYVAotQlVHV0s4
NjA5MSA6IGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0Lmh0bWwgPSBURVhU
Ci1CVUdXSzg2MDkxIDogZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0
aW9uLmh0bWwgPSBURVhUCi1CVUdXSzg2MDkxIDogZWRpdGluZy9zZWxlY3Rpb24vZW1wdHktY2Vs
bC1yaWdodC1jbGljay5odG1sID0gVEVYVAotQlVHV0s4NjA5MSA6IGVkaXRpbmcvc3BlbGxpbmcv
Y29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwgPSBURVhUCi1CVUdXSzg2MDkxIDogZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGNoZWNrLWlucHV0LXNlYXJjaC1jcmFzaC5odG1sID0gVEVYVAotQlVH
V0s4NjA5MSA6IGZhc3QvZXZlbnRzL2NvbnRleHQtb25tb3VzZWRvd24tZXZlbnQuaHRtbCA9IFRF
WFQKLUJVR1dLODYwOTEgOiBmYXN0L2V2ZW50cy9jb250ZXh0bWVudS1zY3JvbGxlZC1wYWdlLXdp
dGgtZnJhbWUuaHRtbCA9IFRFWFQKLUJVR1dLODYwOTEgOiBmYXN0L2V2ZW50cy9yaWdodC1jbGlj
ay1mb2N1cy5odG1sID0gVEVYVAotQlVHV0s4NjA5MSA6IGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0
LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0LWNsaWNrLmh0bWwgPSBURVhUCi1CVUdXSzg2MDkx
IDogbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCA9IFRFWFQKLUJVR1dLODYwOTEgOiBt
ZWRpYS9jb250cm9scy1yaWdodC1jbGljay1vbi10aW1lYmFyLmh0bWwgPSBURVhUCi1CVUdXSzg2
MDkxIDogZWRpdGluZy9zaGFkb3cvcmlnaHRjbGljay1vbi1tZXRlci1pbi1zaGFkb3ctY3Jhc2gu
aHRtbCA9IFRFWFQKLQotLy8gRUZMJ3MgRXZlbnRTZW5kZXIgY29udGV4dENsaWNrLCBuZWVkcyBi
YXNlbGluZXMKLUJVR1dLODYwOTEgOiBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTIuaHRtbCA9
IE1JU1NJTkcKLUJVR1dLODYwOTEgOiBmYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0Lmh0
bWwgPSBNSVNTSU5HCi0KIC8vIElFVEMgbmFtZXNwYWNlIGZhaWx1cmVzCiBCVUdXSzg2MTM3IDog
aWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlcy9wcmVmaXgtMDA3LnhtbCA9IElNQUdFCiBCVUdX
Szg2MTM5IDogaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlcy9wcmVmaXgtMDEwLnhtbCA9IElN
QUdFCkBAIC0xMDYyLDMgKzEwNDEsMTIgQEAgQlVHV0s5NjUxNyA6IGZhc3QvZXZlbnRzL3BvcHVw
LWJsb2NraW5nLXRpbWVycy5odG1sID0gVEVYVAogCiAvLyBGYWlscyBhZnRlciByMTI4NDAwLgog
QlVHV0s5NjYwNSA6IGZhc3QvanMvcHJpbWl0aXZlLXByb3BlcnR5LWFjY2Vzcy1lZGdlLWNhc2Vz
Lmh0bWwgPSBURVhUCisKKy8vIEVudGVyaW5nIGludG8gZnVsbCBzY3JlZW4gcGxheWJhY2sgbW9k
ZSBmYWlscyB3aGVuIHRyaWdnZXJlZCBieSBjb250ZXh0IG1lbnUKK0JVR1dLRUZMIDogbWVkaWEv
Y29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCA9IFRFWFQKKworLy8gRUZMIHBvcnRzIGlzIG1pc3Np
bmcgc3BlbGwgY2hlY2tpbmcgc3VwcG9ydAorQlVHV0s4NjYzMyA6IGVkaXRpbmcvc3BlbGxpbmcv
Y29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwgPSBURVhUCisKKy8vIEVTQyBrZXkgZG9lcyBu
b3QgY2FuY2VsIGNvbnRleHQgbWVudSBpbiBFRkwgcG9ydAorQlVHV0tFRkwgOiBlZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTEuaHRtbCA9IFRFWFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9lZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2VkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzkzNTlhMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9lZGl0aW5nL3NlbGVjdGlvbi81
MzU0NDU1LTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKK2xheWVyIGF0ICg4LDgpIHNpemUgNjEyeDE0MgorICBSZW5kZXJCb2R5IHtCT0RZfSBh
dCAoOCw4KSBzaXplIDYxMngxNDIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KKyAgICBS
ZW5kZXJCbG9jayB7SDF9IGF0ICg2LDYpIHNpemUgNjAweDM3CisgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA0NTF4MzYKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNDUxOiAiV29yZCBzZWxlY3Rpb24gb24gcmlnaHQgY2xpY2sgdGVzdCIKKyAgICBSZW5kZXJC
bG9jayAoYW5vbnltb3VzKSBhdCAoNiw2NCkgc2l6ZSA2MDB4NzIKKyAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU5N3gzNworICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCA1OTc6ICJUaGlzIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHJpZ2h0IGNsaWNraW5nIG5v
bi1lZGl0YWJsZSBjb250ZW50IG9ubHkgY3JlYXRlcyBhIHdvcmQgc2VsZWN0aW9uIGZvciIKKyAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDEwMzogImNsaWNrcyBvdmVyIHRleHQuICIK
KyAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOHgxOQorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwMywxOCkgc2l6ZSAxOHgxOQorICAgICAgICAgIHRleHQg
cnVuIGF0ICgxMDMsMTgpIHdpZHRoIDE4OiAiVG8iCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDEyMSwxOCkgc2l6ZSA1Nzd4NTUKKyAgICAgICAgdGV4dCBydW4gYXQgKDEyMSwxOCkgd2lk
dGggNDExOiAiIHJ1biBtYW51YWxseSwgcmlnaHQgY2xpY2sgb24gdGV4dCwgYW5kIGEgd29yZCBz
aG91bGQgYmUgc2VsZWN0ZWQuICIKKyAgICAgICAgdGV4dCBydW4gYXQgKDUzMiwxOCkgd2lkdGgg
MzU6ICJSaWdodCIKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYpIHdpZHRoIDU3NzogImNsaWNr
IG9uIHRoZSBlbXB0eSBzcGFjZSBvdXRzaWRlIGFuZCB0byB0aGUgcmlnaHQgb2YgdGhlIGJsYWNr
IGJvcmRlciwgdGhlIHNlbGVjdGlvbiBzaG91bGQgYmUiCisgICAgICAgIHRleHQgcnVuIGF0ICgw
LDU0KSB3aWR0aCA1OTogInJlbW92ZWQuIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMHgwCitjYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hp
bGQgMSB7SDF9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9m
YXN0L2V2ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWJkN2I2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2Zhc3QvZXZlbnRzL2NvbnRleHQtbm8t
ZGVzZWxlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAg
IFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDIsMikgc2l6ZSAxOTN4MjggW2JnY29sb3I9
I0ZGRkZGRl0KKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoMTQsMTYp
IHNpemUgMTg2eDE4IHNjcm9sbEhlaWdodCAxOQorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNCw2
KSBzaXplIDE4NngxOAorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDEyNHgx
OQorICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTI0OiAic29tZSBzYW1wbGUgdGV4dCIK
K3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gNSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQg
MCB7RElWfSBvZiB7I3NoYWRvdy1yb290fSBvZiBjaGlsZCAxIHtJTlBVVH0gb2YgYm9keQorc2Vs
ZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7
RElWfSBvZiB7I3NoYWRvdy1yb290fSBvZiBjaGlsZCAxIHtJTlBVVH0gb2YgYm9keQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCmluZGV4IDVkZWUzMTcuLjc5YzQxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNCBAQAorMjAxMi0wOS0xOCAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxh
QHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW0RSVF0gRXZlbnRTZW5kZXIgcmVxdWlyZXMg
Y29udGV4dENsaWNrIGltcGxlbWVudGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYSBwb2ludGVyIHRvIHBhcmVudCBtZW51IGluIEV3a19D
b250ZXh0X01lbnVfSXRlbSBhbmQgYSBnZXR0ZXIKKyAgICAgICAgZnVuY3Rpb24gdG8gYWxsb3cg
c2VsZWN0aW5nIGEgY29udGV4dCBtZW51IGl0ZW0gd2l0aG91dCBoYXZpbmcKKyAgICAgICAgcGFy
ZW50IG1lbnUgcG9pbnRlciBpbiBEdW1wUmVuZGVyVHJlZSBFdmVudFNlbmRlci4KKworICAgICAg
ICAqIGV3ay9ld2tfY29udGV4dG1lbnUuY3BwOgorICAgICAgICAoX0V3a19Db250ZXh0X01lbnVf
SXRlbSk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KToKKyAgICAgICAgKGV3
a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KToKKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfaXRlbV9hcHBlbmQpOgorICAgICAgICAqIGV3ay9ld2tfY29udGV4dG1lbnUuaDoKKyAgICAg
ICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoZXdrX3ZpZXdfY29udGV4dF9tZW51X2dl
dCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTItMDktMTMgIEtlbm5ldGggUm9o
ZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEV2YXNfT2Jq
ZWN0KiBpcyBhIHJlZidlZCBzdHJ1Y3R1cmUsIHNvIHRyZWFkIGl0IGFzIHN1Y2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKaW5kZXggZTc5MmM2ZC4uZTM3NDlkZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKQEAgLTUzLDYgKzUz
LDcgQEAgc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0l0ZW0gewogCiAgICAgY29uc3QgY2hhciog
dGl0bGU7IC8qKjwgY29udGFpbnMgdGhlIHRpdGxlIG9mIHRoZSBpdGVtICovCiAgICAgRXdrX0Nv
bnRleHRfTWVudSogc3VibWVudTsgLyoqPCBjb250YWlucyB0aGUgcG9pbnRlciB0byB0aGUgc3Vi
bWVudSBvZiB0aGUgaXRlbSAqLworICAgIEV3a19Db250ZXh0X01lbnUqIHBhcmVudG1lbnU7CiAK
ICAgICBib29sIGNoZWNrZWQgOiAxOwogICAgIGJvb2wgZW5hYmxlZCA6IDE7CkBAIC0xMDAsNiAr
MTAxLDcgQEAgY29uc3QgRWluYV9MaXN0KiBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQo
Y29uc3QgRXdrX0NvbnRleHRfTWVudSogbWVudSkKIAogRXdrX0NvbnRleHRfTWVudV9JdGVtKiBl
d2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdrX0Nv
bnRleHRfTWVudV9BY3Rpb24gYWN0aW9uLCBFd2tfQ29udGV4dF9NZW51KiBzdWJtZW51LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV3a19Db250ZXh0
X01lbnUqIHBhcmVudG1lbnUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciogdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jv
b2wgZW5hYmxlZCkKIHsKICAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSBuZXcgRXdr
X0NvbnRleHRfTWVudV9JdGVtOwpAQCAtMTA3LDYgKzEwOSw3IEBAIEV3a19Db250ZXh0X01lbnVf
SXRlbSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlw
ZSB0eXBlCiAgICAgaXRlbS0+YWN0aW9uID0gYWN0aW9uOwogICAgIGl0ZW0tPnRpdGxlID0gZWlu
YV9zdHJpbmdzaGFyZV9hZGQodGl0bGUpOwogICAgIGl0ZW0tPnN1Ym1lbnUgPSBzdWJtZW51Owor
ICAgIGl0ZW0tPnBhcmVudG1lbnUgPSBwYXJlbnRtZW51OwogICAgIGl0ZW0tPmNoZWNrZWQgPSBj
aGVja2VkOwogICAgIGl0ZW0tPmVuYWJsZWQgPSBlbmFibGVkOwogCkBAIC0yMDMsNiArMjA2LDEx
IEBAIEVpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9zZXQoRXdrX0NvbnRl
eHRfTWVudV9JdGVtKiBpdGVtLCBFaW5hX0JvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0V3a19D
b250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KEV3a19Db250ZXh0
X01lbnVfSXRlbSogaXRlbSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwo
aXRlbSwgMCk7CisgICAgcmV0dXJuIGl0ZW0tPnBhcmVudG1lbnU7Cit9CiAKIC8qIGludGVybmFs
IG1ldGhvZHMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKi8KIApAQCAtMjc3LDcgKzI4NSw3IEBAIHZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2Fw
cGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0CiAgICAg
RXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRf
TWVudV9BY3Rpb24+KGNvcmUuYWN0aW9uKCkpOwogCiAgICAgRXdrX0NvbnRleHRfTWVudV9JdGVt
KiBtZW51X2l0ZW0gPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUsIGFjdGlvbiwgMCwgY29yZS50aXRsZSgp
LnV0ZjgoKS5kYXRhKCksIGNvcmUuY2hlY2tlZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh0eXBlLCBhY3Rpb24sIDAsIG1lbnUsIGNvcmUudGl0bGUoKS51
dGY4KCkuZGF0YSgpLCBjb3JlLmNoZWNrZWQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb3JlLmVuYWJsZWQoKSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk4obWVudV9pdGVtKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19jb250ZXh0bWVudS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVu
dS5oCmluZGV4IGFmNmQ0YTguLjQzNjMxNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfY29udGV4dG1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nv
bnRleHRtZW51LmgKQEAgLTIwMCw3ICsyMDAsNyBAQCBFQVBJIGNvbnN0IEVpbmFfTGlzdCAgICAg
ICAgICAgICpld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoY29uc3QgRXdrX0NvbnRleAog
ICoKICAqIEBub3RlIFRoZSByZXR1cm4gdmFsdWUgQGIgc2hvdWxkIEBiIGJlIGZyZWVkIGFmdGVy
IHVzZS4KICAqLwotRUFQSSBFd2tfQ29udGV4dF9NZW51X0l0ZW0gICAgICAqZXdrX2NvbnRleHRf
bWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLCBFd2tfQ29udGV4
dF9NZW51X0FjdGlvbiBhY3Rpb24sIEV3a19Db250ZXh0X01lbnUgKnN1Ym1lbnUsIGNvbnN0IGNo
YXIgKnRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29sIGVuYWJsZWQpOworRUFQSSBF
d2tfQ29udGV4dF9NZW51X0l0ZW0gICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tf
Q29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLCBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rp
b24sIEV3a19Db250ZXh0X01lbnUgKnN1Ym1lbnUsIEV3a19Db250ZXh0X01lbnUgKnBhcmVudG1l
bnUsIGNvbnN0IGNoYXIgKnRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29sIGVuYWJs
ZWQpOwogCiAvKioKICAqIERlc3Ryb3lzIHRoZSBpdGVtIG9mIHRoZSBjb250ZXh0IG1lbnUgb2Jq
ZWN0LgpAQCAtMzIyLDYgKzMyMiwxNCBAQCBFQVBJIEVpbmFfQm9vbCAgICAgICAgICAgICAgICAg
ICBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQoY29uc3QgRXdrX0NvbgogICovCiBF
QVBJIEVpbmFfQm9vbCAgICAgICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5h
YmxlZF9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtICpvLCBFaW5hX0Jvb2wgZW5hYmxlZCk7CiAK
Ky8qKgorICogR2V0cyB0aGUgcGFyZW50IG1lbnUgZm9yIGNvbnRleHQgbWVudSBpdGVtCisgKgor
ICogQHBhcmFtIG8gdGhlIGNvbnRleHQgbWVudSBpdGVtIG9iamVjdAorICogQHJldHVybiBhIGNv
bnRleHQgbWVudSBvYmplY3QKKyAqLworRUFQSSBFd2tfQ29udGV4dF9NZW51ICAgICAgICAgICAq
ZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtICpv
KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwCmluZGV4IDQ5NDlhYWMuLjkwMTc5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcApAQCAtNDU2NSw2ICs0NTY1LDEzIEBAIHZvaWQgZXdrX3ZpZXdfY3Vyc29yX3NldChFdmFz
X09iamVjdCogZXdrVmlldywgY29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJzb3IpCiAgICAgfQog
fQogCitFd2tfQ29udGV4dF9NZW51KiBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywg
c21hcnREYXRhLCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRh
LCBwcml2LCAwKTsKKyAgICByZXR1cm4gcHJpdi0+Y29udGV4dE1lbnU7Cit9CisKIG5hbWVzcGFj
ZSBFV0tQcml2YXRlIHsKIAogV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGNjOWYwMTMuLjk4YmY2
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMTMsNiArMTEzLDcgQEAKICNpZm5k
ZWYgZXdrX3ZpZXdfaAogI2RlZmluZSBld2tfdmlld19oCiAKKyNpbmNsdWRlICJld2tfY29udGV4
dG1lbnUuaCIKICNpbmNsdWRlICJld2tfZmlsZV9jaG9vc2VyLmgiCiAjaW5jbHVkZSAiZXdrX2Zy
YW1lLmgiCiAjaW5jbHVkZSAiZXdrX2hpc3RvcnkuaCIKQEAgLTI3NDcsNiArMjc0OCw4IEBAIEVB
UEkgRXZhc19PYmplY3QqIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19nZXQoY29uc3QgRXZh
c19PYmplY3QgKm8pOwogICovCiBFQVBJIHZvaWQgZXdrX3ZpZXdfd2ViX2luc3BlY3Rvcl92aWV3
X3NldChFdmFzX09iamVjdCAqbywgRXZhc19PYmplY3QgKmluc3BlY3Rvcl92aWV3KTsKIAorRUFQ
SSBFd2tfQ29udGV4dF9NZW51KiBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KEV2YXNfT2JqZWN0
KiBld2tWaWV3KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1OTVkYzkzLi4zZWMwODJh
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTItMDktMTggIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBh
a3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVp
cmVzIGNvbnRleHRDbGljayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbnRleHRDbGljayBmb3IgRHVtcFJlbmRlclRy
ZWVFdmVudFNlbmRlciBiYXNpbmcgb24gV2ViS2l0IEdUSworICAgICAgICBpbXBsZW1lbnRhdGlv
bi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHA6CisgICAg
ICAgIChnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2spOgorICAgICAgICAoc2V0TWVudUl0ZW1UaXRs
ZUNhbGxiYWNrKToKKyAgICAgICAgKG1lbnVJdGVtQ2xpY2tDYWxsYmFjayk6CisgICAgICAgIChj
b250ZXh0Q2xpY2tDYWxsYmFjayk6CisKIDIwMTItMDktMTggIFRvciBBcm5lIFZlc3Riw7ggIDx0
b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4IGJ1aWxkIHdpdGhv
dXQgdGhlIFF0UXVpY2sgbW9kdWxlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9l
ZmwvRXZlbnRTZW5kZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVy
LmNwcAppbmRleCBiMDkwMzFjLi4wNWU5MmE2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9F
dmVudFNlbmRlci5jcHAKQEAgLTI2OSw2ICsyNjksMTAxIEBAIHN0YXRpYyB1bnNpZ25lZCBtb2Rp
ZmllcnNGcm9tSlNWYWx1ZShKU0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgSlNWYWx1ZVJlZiBt
b2RpCiAgICAgcmV0dXJuIG1vZGlmaWVyOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBnZXRNZW51
SXRlbVRpdGxlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVj
dCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7Cisg
ICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRf
TWVudV9JdGVtKj4oSlNPYmplY3RHZXRQcml2YXRlKG9iamVjdCkpOworICAgIENTdHJpbmcgbGFi
ZWw7CisgICAgaWYgKGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX2dldChpdGVtKSA9PSBFV0tf
U0VQQVJBVE9SX1RZUEUpCisgICAgICAgIGxhYmVsID0gIjxzZXBhcmF0b3I+IjsKKyAgICBlbHNl
CisgICAgICAgIGxhYmVsID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX3RpdGxlX2dldChpdGVtKTsK
KworICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZyhsYWJlbC5kYXRhKCkpKTsKK30KKworc3RhdGljIGJvb2wgc2V0TWVudUl0
ZW1UaXRsZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3Qs
IEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKQoreworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBt
ZW51SXRlbUNsaWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAg
IEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01l
bnVfSXRlbSo+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgZXdrX2NvbnRl
eHRfbWVudV9pdGVtX3NlbGVjdChld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldChpdGVt
KSwgaXRlbSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQor
CitzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNNZW51SXRlbUZ1bmN0aW9uc1tdID0gewor
ICAgIHsgImNsaWNrIiwgbWVudUl0ZW1DbGlja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgeyAwLCAw
LCAwIH0KK307CisKK3N0YXRpYyBKU1N0YXRpY1ZhbHVlIHN0YXRpY01lbnVJdGVtVmFsdWVzW10g
PSB7CisgICAgeyAidGl0bGUiLCBnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2ssIHNldE1lbnVJdGVt
VGl0bGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lIH0sCisgICAgeyAwLCAwLCAw
LCAwIH0KK307CisKK3N0YXRpYyBKU0NsYXNzUmVmIGdldE1lbnVJdGVtQ2xhc3MoKQoreworICAg
IHN0YXRpYyBKU0NsYXNzUmVmIG1lbnVJdGVtQ2xhc3MgPSAwOworCisgICAgaWYgKCFtZW51SXRl
bUNsYXNzKSB7CisgICAgICAgIEpTQ2xhc3NEZWZpbml0aW9uIGNsYXNzRGVmaW5pdGlvbiA9IHsK
KyAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgICAgICBjbGFzc0RlZmluaXRpb24uc3Rh
dGljRnVuY3Rpb25zID0gc3RhdGljTWVudUl0ZW1GdW5jdGlvbnM7CisgICAgICAgIGNsYXNzRGVm
aW5pdGlvbi5zdGF0aWNWYWx1ZXMgPSBzdGF0aWNNZW51SXRlbVZhbHVlczsKKworICAgICAgICBt
ZW51SXRlbUNsYXNzID0gSlNDbGFzc0NyZWF0ZSgmY2xhc3NEZWZpbml0aW9uKTsKKyAgICB9CisK
KyAgICByZXR1cm4gbWVudUl0ZW1DbGFzczsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgY29udGV4
dENsaWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogICAgZXhjZXB0aW9uKQoreworICAgIEV2
YXNfT2JqZWN0KiB2aWV3ID0gZXdrX2ZyYW1lX3ZpZXdfZ2V0KGJyb3dzZXItPm1haW5GcmFtZSgp
KTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKKworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldCh2aWV3KTsK
KyAgICBpZiAoIWV2YXMpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKKworICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biBtb3VzZURvd247CisgICAgbW91c2VE
b3duLmJ1dHRvbiA9IDM7CisgICAgbW91c2VEb3duLm91dHB1dC54ID0gZ0xhc3RNb3VzZVBvc2l0
aW9uWDsKKyAgICBtb3VzZURvd24ub3V0cHV0LnkgPSBnTGFzdE1vdXNlUG9zaXRpb25ZOworICAg
IG1vdXNlRG93bi5jYW52YXMueCA9IGdMYXN0TW91c2VQb3NpdGlvblg7CisgICAgbW91c2VEb3du
LmNhbnZhcy55ID0gZ0xhc3RNb3VzZVBvc2l0aW9uWTsKKyAgICBtb3VzZURvd24uZGF0YSA9IDA7
CisgICAgbW91c2VEb3duLm1vZGlmaWVycyA9IGNvbnN0X2Nhc3Q8RXZhc19Nb2RpZmllciAqPihl
dmFzX2tleV9tb2RpZmllcl9nZXQoZXZhcykpOworICAgIG1vdXNlRG93bi5sb2NrcyA9IGNvbnN0
X2Nhc3Q8RXZhc19Mb2NrICo+KGV2YXNfa2V5X2xvY2tfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURv
d24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1vdXNlRG93bi50aW1lc3RhbXAgPSBl
Y29yZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3duLmV2ZW50X2ZsYWdzID0gRVZBU19F
VkVOVF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9IDA7CisKKyAgICBld2tfdmlld19j
b250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh2aWV3LCAmbW91c2VEb3duKTsKKyAgICBFd2tfQ29u
dGV4dF9NZW51KiBld2tNZW51ID0gZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldCh2aWV3KTsKKwor
ICAgIEpTVmFsdWVSZWYgdmFsdWVSZWYgPSBKU09iamVjdE1ha2VBcnJheShjb250ZXh0LCAwLCAw
LCAwKTsKKyAgICBpZiAoZXdrTWVudSkgeworICAgICAgICBjb25zdCBFaW5hX0xpc3QqIGV3a01l
bnVJdGVtcyA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldChld2tNZW51KTsKKyAgICAg
ICAgSlNWYWx1ZVJlZiBhcnJheVZhbHVlc1tlaW5hX2xpc3RfY291bnQoZXdrTWVudUl0ZW1zKV07
CisKKyAgICAgICAgY29uc3QgRWluYV9MaXN0KiBsaXN0SXRlcmF0b3I7CisgICAgICAgIHZvaWQq
IGRhdGE7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIEVJTkFfTElTVF9GT1JFQUNI
KGV3a01lbnVJdGVtcywgbGlzdEl0ZXJhdG9yLCBkYXRhKQorICAgICAgICAgICAgYXJyYXlWYWx1
ZXNbaW5kZXgrK10gPSBKU09iamVjdE1ha2UoY29udGV4dCwgZ2V0TWVudUl0ZW1DbGFzcygpLCBk
YXRhKTsKKworICAgICAgICBpZiAoaW5kZXgpCisgICAgICAgICAgICB2YWx1ZVJlZiA9IEpTT2Jq
ZWN0TWFrZUFycmF5KGNvbnRleHQsIGluZGV4IC0gMSwgYXJyYXlWYWx1ZXMsIDApOworICAgIH0K
KyAgICByZXR1cm4gdmFsdWVSZWY7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIG1vdXNlRG93bkNh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpbnQgYnV0dG9uID0g
MDsKQEAgLTc4OCw2ICs4ODMsNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRUb3VjaE1vZGlmaWVy
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bgogfQogCiBzdGF0
aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNGdW5jdGlvbnNbXSA9IHsKKyAgICB7ICJjb250ZXh0
Q2xpY2siLCBjb250ZXh0Q2xpY2tDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgIHsgIm1vdXNlU2Nyb2xs
QnkiLCBtb3VzZVNjcm9sbEJ5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICB7ICJjb250aW51b3VzTW91
c2VTY3JvbGxCeSIsIGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICB7ICJtb3VzZURvd24iLCBtb3VzZURvd25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164531</attachid>
            <date>2012-09-18 04:16:49 -0700</date>
            <delta_ts>2012-09-20 03:41:59 -0700</delta_ts>
            <desc>rebased patch</desc>
            <filename>contextclick-rebased.diff</filename>
            <type>text/plain</type>
            <size>19194</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZDYzNDI4Li4wM2FlNjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDkt
MTggIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSBjb250ZXh0Q2xpY2sgZGVwZW5kZW50IHRlc3RzIHRvIFdlYktpdDIgVGVzdEV4cGVj
dGF0aW9ucyBhbmQKKyAgICAgICAgYWRkIG5ldyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorCiAyMDEyLTA5LTE4ICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8uZGEu
Y29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIEdhcmRlbmluZyBhZnRlciByMTI4ODAy
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDMxOTlkYzQuLjQzYWUxYmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13
azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTIwNiwzICsyMDYsMjEgQEAgQlVHV0s5Njc5NCA6IGZhc3QvZXZl
bnRzL3RvdWNoL3RvdWNoLWluc2lkZS1pZnJhbWUtc2Nyb2xsZWQuaHRtbCA9IFRFWFQKIC8vIEZh
aWxzIGFmdGVyIHIxMjgwNTYuCiBCVUdXazk2NzkyIDogaW5zcGVjdG9yL2NvbnNvbGUvYWxlcnQt
dG9TdHJpbmctZXhjZXB0aW9uLmh0bWwgPSBURVhUCiAKKy8vIEVGTCdzIEV2ZW50U2VuZGVyIGRv
ZXMgbm90IGltcGxlbWVudCBjb250ZXh0Q2xpY2sgeWV0CitCVUdXSzg2ODgxIDogZWRpdGluZy9w
YXN0ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFnZS1jcmFzaC5odG1sID0gVEVYVAorQlVHV0s4
Njg4MSA6IGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sID0gVEVYVAorQlVHV0s4Njg4
MSA6IGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMi5odG1sID0gVEVYVAorQlVHV0s4Njg4MSA6
IGVkaXRpbmcvc2VsZWN0aW9uL2J1dHRvbi1yaWdodC1jbGljay5odG1sID0gVEVYVAorQlVHV0s4
Njg4MSA6IGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0Lmh0bWwgPSBURVhU
CitCVUdXSzg2ODgxIDogZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0
aW9uLmh0bWwgPSBURVhUCitCVUdXSzg2ODgxIDogZWRpdGluZy9zZWxlY3Rpb24vZW1wdHktY2Vs
bC1yaWdodC1jbGljay5odG1sID0gVEVYVAorQlVHV0s4Njg4MSA6IGVkaXRpbmcvc2hhZG93L3Jp
Z2h0Y2xpY2stb24tbWV0ZXItaW4tc2hhZG93LWNyYXNoLmh0bWwgPSBURVhUCitCVUdXSzg2ODgx
IDogZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbCA9IFRFWFQK
K0JVR1dLODY4ODEgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2staW5wdXQtc2VhcmNoLWNy
YXNoLmh0bWwgPSBURVhUCitCVUdXSzg2ODgxIDogZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNl
bGVjdC5odG1sID0gVEVYVAorQlVHV0s4Njg4MSA6IGZhc3QvZXZlbnRzL2NvbnRleHQtb25tb3Vz
ZWRvd24tZXZlbnQuaHRtbCA9IFRFWFQKK0JVR1dLODY4ODEgOiBmYXN0L2V2ZW50cy9jb250ZXh0
bWVudS1zY3JvbGxlZC1wYWdlLXdpdGgtZnJhbWUuaHRtbCA9IFRFWFQKK0JVR1dLODY4ODEgOiBm
YXN0L2V2ZW50cy9yaWdodC1jbGljay1mb2N1cy5odG1sID0gVEVYVAorQlVHV0s4Njg4MSA6IGZh
c3QvZXZlbnRzL3NlbGVjdHN0YXJ0LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0LWNsaWNrLmh0
bWwgPSBURVhUCitCVUdXSzg2ODgxIDogbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCA9
IFRFWFQKK0JVR1dLODY4ODEgOiBtZWRpYS9jb250cm9scy1yaWdodC1jbGljay1vbi10aW1lYmFy
Lmh0bWwgPSBURVhUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGExZmRhMGIuLmU0ZTAxM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhw
ZWN0YXRpb25zCkBAIC03MTEsMjcgKzcxMSw2IEBAIEJVR1dLODIxNDAgOiBpbnNwZWN0b3IvZ2Vv
bG9jYXRpb24tZXJyb3IuaHRtbCA9IFRFWFQKIEJVR1dLODIxNDAgOiBpbnNwZWN0b3IvZ2VvbG9j
YXRpb24tc3VjY2Vzcy5odG1sID0gVEVYVAogQlVHV0s4MjE0MCA6IGluc3BlY3Rvci9nZW9sb2Nh
dGlvbi13YXRjaFBvc2l0aW9uLmh0bWwgPSBURVhUCiAKLS8vIEVGTCdzIEV2ZW50U2VuZGVyIGRv
ZXMgbm90IGltcGxlbWVudCBjb250ZXh0Q2xpY2sgeWV0Ci1CVUdXSzg2MDkxIDogZWRpdGluZy9w
YXN0ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFnZS1jcmFzaC5odG1sID0gVEVYVAotQlVHV0s4
NjA5MSA6IGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sID0gVEVYVAotQlVHV0s4NjA5
MSA6IGVkaXRpbmcvc2VsZWN0aW9uL2J1dHRvbi1yaWdodC1jbGljay5odG1sID0gVEVYVAotQlVH
V0s4NjA5MSA6IGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0Lmh0bWwgPSBU
RVhUCi1CVUdXSzg2MDkxIDogZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2Vs
ZWN0aW9uLmh0bWwgPSBURVhUCi1CVUdXSzg2MDkxIDogZWRpdGluZy9zZWxlY3Rpb24vZW1wdHkt
Y2VsbC1yaWdodC1jbGljay5odG1sID0gVEVYVAotQlVHV0s4NjA5MSA6IGVkaXRpbmcvc3BlbGxp
bmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwgPSBURVhUCi1CVUdXSzg2MDkxIDogZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWlucHV0LXNlYXJjaC1jcmFzaC5odG1sID0gVEVYVAot
QlVHV0s4NjA5MSA6IGZhc3QvZXZlbnRzL2NvbnRleHQtb25tb3VzZWRvd24tZXZlbnQuaHRtbCA9
IFRFWFQKLUJVR1dLODYwOTEgOiBmYXN0L2V2ZW50cy9jb250ZXh0bWVudS1zY3JvbGxlZC1wYWdl
LXdpdGgtZnJhbWUuaHRtbCA9IFRFWFQKLUJVR1dLODYwOTEgOiBmYXN0L2V2ZW50cy9yaWdodC1j
bGljay1mb2N1cy5odG1sID0gVEVYVAotQlVHV0s4NjA5MSA6IGZhc3QvZXZlbnRzL3NlbGVjdHN0
YXJ0LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0LWNsaWNrLmh0bWwgPSBURVhUCi1CVUdXSzg2
MDkxIDogbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCA9IFRFWFQKLUJVR1dLODYwOTEg
OiBtZWRpYS9jb250cm9scy1yaWdodC1jbGljay1vbi10aW1lYmFyLmh0bWwgPSBURVhUCi1CVUdX
Szg2MDkxIDogZWRpdGluZy9zaGFkb3cvcmlnaHRjbGljay1vbi1tZXRlci1pbi1zaGFkb3ctY3Jh
c2guaHRtbCA9IFRFWFQKLQotLy8gRUZMJ3MgRXZlbnRTZW5kZXIgY29udGV4dENsaWNrLCBuZWVk
cyBiYXNlbGluZXMKLUJVR1dLODYwOTEgOiBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTIuaHRt
bCA9IE1JU1NJTkcKLUJVR1dLODYwOTEgOiBmYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0
Lmh0bWwgPSBNSVNTSU5HCi0KIC8vIElFVEMgbmFtZXNwYWNlIGZhaWx1cmVzCiBCVUdXSzg2MTM3
IDogaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlcy9wcmVmaXgtMDA3LnhtbCA9IElNQUdFCiBC
VUdXSzg2MTM5IDogaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlcy9wcmVmaXgtMDEwLnhtbCA9
IElNQUdFCkBAIC0xMDU5LDMgKzEwMzgsMTIgQEAgQlVHV0s1NDI1MSA6IGZhc3QvY2FudmFzL0Ry
YXdJbWFnZVNpbmdsZVBpeGVsU3RyZXRjaC5odG1sID0gVEVYVAogCiAvLyBGYWlscyBhZnRlciBy
MTI4MjcwLgogQlVHV0s5NjUxNyA6IGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVycy5o
dG1sID0gVEVYVAorCisvLyBFbnRlcmluZyBpbnRvIGZ1bGwgc2NyZWVuIHBsYXliYWNrIG1vZGUg
ZmFpbHMgd2hlbiB0cmlnZ2VyZWQgYnkgY29udGV4dCBtZW51CitCVUdXS0VGTCA6IG1lZGlhL2Nv
bnRleHQtbWVudS1hY3Rpb25zLmh0bWwgPSBURVhUCisKKy8vIEVGTCBwb3J0cyBpcyBtaXNzaW5n
IHNwZWxsIGNoZWNraW5nIHN1cHBvcnQKK0JVR1dLODY2MzMgOiBlZGl0aW5nL3NwZWxsaW5nL2Nv
bnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sID0gVEVYVAorCisvLyBFU0Mga2V5IGRvZXMgbm90
IGNhbmNlbCBjb250ZXh0IG1lbnUgaW4gRUZMIHBvcnQKK0JVR1dLRUZMIDogZWRpdGluZy9zZWxl
Y3Rpb24vNTM1NDQ1NS0xLmh0bWwgPSBURVhUCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0yLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9lZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MzU5YTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZWRpdGluZy9zZWxlY3Rpb24vNTM1
NDQ1NS0yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCitsYXllciBhdCAoOCw4KSBzaXplIDYxMngxNDIKKyAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsOCkgc2l6ZSA2MTJ4MTQyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCisgICAgUmVu
ZGVyQmxvY2sge0gxfSBhdCAoNiw2KSBzaXplIDYwMHgzNworICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNDUxeDM2CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDQ1MTogIldvcmQgc2VsZWN0aW9uIG9uIHJpZ2h0IGNsaWNrIHRlc3QiCisgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDYsNjQpIHNpemUgNjAweDcyCisgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA1OTd4MzcKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNTk3OiAiVGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCByaWdodCBjbGlja2luZyBub24t
ZWRpdGFibGUgY29udGVudCBvbmx5IGNyZWF0ZXMgYSB3b3JkIHNlbGVjdGlvbiBmb3IiCisgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAxMDM6ICJjbGlja3Mgb3ZlciB0ZXh0LiAiCisg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTh4MTkKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgxMDMsMTgpIHNpemUgMTh4MTkKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMTAzLDE4KSB3aWR0aCAxODogIlRvIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgxMjEsMTgpIHNpemUgNTc3eDU1CisgICAgICAgIHRleHQgcnVuIGF0ICgxMjEsMTgpIHdpZHRo
IDQxMTogIiBydW4gbWFudWFsbHksIHJpZ2h0IGNsaWNrIG9uIHRleHQsIGFuZCBhIHdvcmQgc2hv
dWxkIGJlIHNlbGVjdGVkLiAiCisgICAgICAgIHRleHQgcnVuIGF0ICg1MzIsMTgpIHdpZHRoIDM1
OiAiUmlnaHQiCisgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2KSB3aWR0aCA1Nzc6ICJjbGljayBv
biB0aGUgZW1wdHkgc3BhY2Ugb3V0c2lkZSBhbmQgdG8gdGhlIHJpZ2h0IG9mIHRoZSBibGFjayBi
b3JkZXIsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIgorICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1
NCkgd2lkdGggNTk6ICJyZW1vdmVkLiIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxk
IDEge0gxfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZmFz
dC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFiZDdiNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRl
c2VsZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBS
ZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgyLDIpIHNpemUgMTkzeDI4IFtiZ2NvbG9yPSNG
RkZGRkZdCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE0LDE2KSBz
aXplIDE4NngxOCBzY3JvbGxIZWlnaHQgMTkKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQsNikg
c2l6ZSAxODZ4MTgKKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxMjR4MTkK
KyAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDEyNDogInNvbWUgc2FtcGxlIHRleHQiCitz
ZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAg
e0RJVn0gb2YgeyNzaGFkb3ctcm9vdH0gb2YgY2hpbGQgMSB7SU5QVVR9IG9mIGJvZHkKK3NlbGVj
dGlvbiBlbmQ6ICAgcG9zaXRpb24gMTUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0RJ
Vn0gb2YgeyNzaGFkb3ctcm9vdH0gb2YgY2hpbGQgMSB7SU5QVVR9IG9mIGJvZHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwppbmRleCA1ZGVlMzE3Li43OWM0MWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQgQEAKKzIwMTItMDktMTggIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBz
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNv
bnRleHRDbGljayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgcG9pbnRlciB0byBwYXJlbnQgbWVudSBpbiBFd2tfQ29u
dGV4dF9NZW51X0l0ZW0gYW5kIGEgZ2V0dGVyCisgICAgICAgIGZ1bmN0aW9uIHRvIGFsbG93IHNl
bGVjdGluZyBhIGNvbnRleHQgbWVudSBpdGVtIHdpdGhvdXQgaGF2aW5nCisgICAgICAgIHBhcmVu
dCBtZW51IHBvaW50ZXIgaW4gRHVtcFJlbmRlclRyZWUgRXZlbnRTZW5kZXIuCisKKyAgICAgICAg
KiBld2svZXdrX2NvbnRleHRtZW51LmNwcDoKKyAgICAgICAgKF9Fd2tfQ29udGV4dF9NZW51X0l0
ZW0pOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyk6CisgICAgICAgIChld2tf
Y29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51
X2l0ZW1fYXBwZW5kKToKKyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51Lmg6CisgICAgICAg
ICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQp
OgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOgorCiAyMDEyLTA5LTEzICBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBFdmFzX09iamVj
dCogaXMgYSByZWYnZWQgc3RydWN0dXJlLCBzbyB0cmVhZCBpdCBhcyBzdWNoCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCmluZGV4IGU3OTJjNmQuLmUzNzQ5ZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCkBAIC01Myw2ICs1Myw3
IEBAIHN0cnVjdCBfRXdrX0NvbnRleHRfTWVudV9JdGVtIHsKIAogICAgIGNvbnN0IGNoYXIqIHRp
dGxlOyAvKio8IGNvbnRhaW5zIHRoZSB0aXRsZSBvZiB0aGUgaXRlbSAqLwogICAgIEV3a19Db250
ZXh0X01lbnUqIHN1Ym1lbnU7IC8qKjwgY29udGFpbnMgdGhlIHBvaW50ZXIgdG8gdGhlIHN1Ym1l
bnUgb2YgdGhlIGl0ZW0gKi8KKyAgICBFd2tfQ29udGV4dF9NZW51KiBwYXJlbnRtZW51OwogCiAg
ICAgYm9vbCBjaGVja2VkIDogMTsKICAgICBib29sIGVuYWJsZWQgOiAxOwpAQCAtMTAwLDYgKzEw
MSw3IEBAIGNvbnN0IEVpbmFfTGlzdCogZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KGNv
bnN0IEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiAKIEV3a19Db250ZXh0X01lbnVfSXRlbSogZXdr
X2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV3a19Db250
ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVudSogc3VibWVudSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFd2tfQ29udGV4dF9N
ZW51KiBwYXJlbnRtZW51LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIHRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29s
IGVuYWJsZWQpCiB7CiAgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtID0gbmV3IEV3a19D
b250ZXh0X01lbnVfSXRlbTsKQEAgLTEwNyw2ICsxMDksNyBAQCBFd2tfQ29udGV4dF9NZW51X0l0
ZW0qIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUg
dHlwZQogICAgIGl0ZW0tPmFjdGlvbiA9IGFjdGlvbjsKICAgICBpdGVtLT50aXRsZSA9IGVpbmFf
c3RyaW5nc2hhcmVfYWRkKHRpdGxlKTsKICAgICBpdGVtLT5zdWJtZW51ID0gc3VibWVudTsKKyAg
ICBpdGVtLT5wYXJlbnRtZW51ID0gcGFyZW50bWVudTsKICAgICBpdGVtLT5jaGVja2VkID0gY2hl
Y2tlZDsKICAgICBpdGVtLT5lbmFibGVkID0gZW5hYmxlZDsKIApAQCAtMjAzLDYgKzIwNiwxMSBA
QCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0KEV3a19Db250ZXh0
X01lbnVfSXRlbSogaXRlbSwgRWluYV9CbwogICAgIHJldHVybiB0cnVlOwogfQogCitFd2tfQ29u
dGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldChFd2tfQ29udGV4dF9N
ZW51X0l0ZW0qIGl0ZW0pCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGl0
ZW0sIDApOworICAgIHJldHVybiBpdGVtLT5wYXJlbnRtZW51OworfQogCiAvKiBpbnRlcm5hbCBt
ZXRob2RzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KiovCiAKQEAgLTI3Nyw3ICsyODUsNyBAQCB2b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBl
bmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwgY29uc3QgV2ViQ29yZTo6Q29udGV4dAogICAgIEV3
a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01l
bnVfQWN0aW9uPihjb3JlLmFjdGlvbigpKTsKIAogICAgIEV3a19Db250ZXh0X01lbnVfSXRlbSog
bWVudV9pdGVtID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlLCBhY3Rpb24sIDAsIGNvcmUudGl0bGUoKS51
dGY4KCkuZGF0YSgpLCBjb3JlLmNoZWNrZWQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAodHlwZSwgYWN0aW9uLCAwLCBtZW51LCBjb3JlLnRpdGxlKCkudXRm
OCgpLmRhdGEoKSwgY29yZS5jaGVja2VkKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29yZS5lbmFibGVkKCkpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOKG1lbnVfaXRlbSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfY29udGV4dG1lbnUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUu
aAppbmRleCBhZjZkNGE4Li40MzYzMTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2NvbnRleHRtZW51LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250
ZXh0bWVudS5oCkBAIC0yMDAsNyArMjAwLDcgQEAgRUFQSSBjb25zdCBFaW5hX0xpc3QgICAgICAg
ICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KGNvbnN0IEV3a19Db250ZXgKICAq
CiAgKiBAbm90ZSBUaGUgcmV0dXJuIHZhbHVlIEBiIHNob3VsZCBAYiBiZSBmcmVlZCBhZnRlciB1
c2UuCiAgKi8KLUVBUEkgRXdrX0NvbnRleHRfTWVudV9JdGVtICAgICAgKmV3a19jb250ZXh0X21l
bnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSwgRXdrX0NvbnRleHRf
TWVudV9BY3Rpb24gYWN0aW9uLCBFd2tfQ29udGV4dF9NZW51ICpzdWJtZW51LCBjb25zdCBjaGFy
ICp0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKTsKK0VBUEkgRXdr
X0NvbnRleHRfTWVudV9JdGVtICAgICAgKmV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0Nv
bnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSwgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9u
LCBFd2tfQ29udGV4dF9NZW51ICpzdWJtZW51LCBFd2tfQ29udGV4dF9NZW51ICpwYXJlbnRtZW51
LCBjb25zdCBjaGFyICp0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVk
KTsKIAogLyoqCiAgKiBEZXN0cm95cyB0aGUgaXRlbSBvZiB0aGUgY29udGV4dCBtZW51IG9iamVj
dC4KQEAgLTMyMiw2ICszMjIsMTQgQEAgRUFQSSBFaW5hX0Jvb2wgICAgICAgICAgICAgICAgICAg
ZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19Db24KICAqLwogRUFQ
SSBFaW5hX0Jvb2wgICAgICAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJs
ZWRfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSAqbywgRWluYV9Cb29sIGVuYWJsZWQpOwogCisv
KioKKyAqIEdldHMgdGhlIHBhcmVudCBtZW51IGZvciBjb250ZXh0IG1lbnUgaXRlbQorICoKKyAq
IEBwYXJhbSBvIHRoZSBjb250ZXh0IG1lbnUgaXRlbSBvYmplY3QKKyAqIEByZXR1cm4gYSBjb250
ZXh0IG1lbnUgb2JqZWN0CisgKi8KK0VBUEkgRXdrX0NvbnRleHRfTWVudSAgICAgICAgICAgKmV3
a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSAqbyk7
CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcAppbmRleCA0OTQ5YWFjLi45MDE3OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKQEAgLTQ1NjUsNiArNDU2NSwxMyBAQCB2b2lkIGV3a192aWV3X2N1cnNvcl9zZXQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKQogICAgIH0KIH0K
IAorRXdrX0NvbnRleHRfTWVudSogZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldChFdmFzX09iamVj
dCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNt
YXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwg
cHJpdiwgMCk7CisgICAgcmV0dXJuIHByaXYtPmNvbnRleHRNZW51OworfQorCiBuYW1lc3BhY2Ug
RVdLUHJpdmF0ZSB7CiAKIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCBjYzlmMDEzLi45OGJmNmM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtMTEzLDYgKzExMyw3IEBACiAjaWZuZGVm
IGV3a192aWV3X2gKICNkZWZpbmUgZXdrX3ZpZXdfaAogCisjaW5jbHVkZSAiZXdrX2NvbnRleHRt
ZW51LmgiCiAjaW5jbHVkZSAiZXdrX2ZpbGVfY2hvb3Nlci5oIgogI2luY2x1ZGUgImV3a19mcmFt
ZS5oIgogI2luY2x1ZGUgImV3a19oaXN0b3J5LmgiCkBAIC0yNzQ3LDYgKzI3NDgsOCBAQCBFQVBJ
IEV2YXNfT2JqZWN0KiBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0ICpvKTsKICAqLwogRUFQSSB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19z
ZXQoRXZhc19PYmplY3QgKm8sIEV2YXNfT2JqZWN0ICppbnNwZWN0b3Jfdmlldyk7CiAKK0VBUEkg
RXdrX0NvbnRleHRfTWVudSogZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldChFdmFzX09iamVjdCog
ZXdrVmlldyk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTk1ZGM5My4uM2VjMDgyYSAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDEyLTA5LTE4ICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1
bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF1bRFJUXSBFdmVudFNlbmRlciByZXF1aXJl
cyBjb250ZXh0Q2xpY2sgaW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjb250ZXh0Q2xpY2sgZm9yIER1bXBSZW5kZXJUcmVl
RXZlbnRTZW5kZXIgYmFzaW5nIG9uIFdlYktpdCBHVEsKKyAgICAgICAgaW1wbGVtZW50YXRpb24u
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwOgorICAgICAg
ICAoZ2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrKToKKyAgICAgICAgKHNldE1lbnVJdGVtVGl0bGVD
YWxsYmFjayk6CisgICAgICAgIChtZW51SXRlbUNsaWNrQ2FsbGJhY2spOgorICAgICAgICAoY29u
dGV4dENsaWNrQ2FsbGJhY2spOgorCiAyMDEyLTA5LTE4ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9y
LmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBidWlsZCB3aXRob3V0
IHRoZSBRdFF1aWNrIG1vZHVsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0V2ZW50U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5j
cHAKaW5kZXggYjA5MDMxYy4uMDVlOTJhNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZl
bnRTZW5kZXIuY3BwCkBAIC0yNjksNiArMjY5LDEwMSBAQCBzdGF0aWMgdW5zaWduZWQgbW9kaWZp
ZXJzRnJvbUpTVmFsdWUoSlNDb250ZXh0UmVmIGNvbnRleHQsIGNvbnN0IEpTVmFsdWVSZWYgbW9k
aQogICAgIHJldHVybiBtb2RpZmllcjsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZ2V0TWVudUl0
ZW1UaXRsZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3Qs
IEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAg
IEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01l
bnVfSXRlbSo+KEpTT2JqZWN0R2V0UHJpdmF0ZShvYmplY3QpKTsKKyAgICBDU3RyaW5nIGxhYmVs
OworICAgIGlmIChld2tfY29udGV4dF9tZW51X2l0ZW1fdHlwZV9nZXQoaXRlbSkgPT0gRVdLX1NF
UEFSQVRPUl9UWVBFKQorICAgICAgICBsYWJlbCA9ICI8c2VwYXJhdG9yPiI7CisgICAgZWxzZQor
ICAgICAgICBsYWJlbCA9IGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9nZXQoaXRlbSk7CisK
KyAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcobGFiZWwuZGF0YSgpKSk7Cit9CisKK3N0YXRpYyBib29sIHNldE1lbnVJdGVt
VGl0bGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBK
U1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgbWVu
dUl0ZW1DbGlja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5j
dGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0
IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBF
d2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51
X0l0ZW0qPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGV3a19jb250ZXh0
X21lbnVfaXRlbV9zZWxlY3QoZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoaXRlbSks
IGl0ZW0pOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwor
c3RhdGljIEpTU3RhdGljRnVuY3Rpb24gc3RhdGljTWVudUl0ZW1GdW5jdGlvbnNbXSA9IHsKKyAg
ICB7ICJjbGljayIsIG1lbnVJdGVtQ2xpY2tDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgIHsgMCwgMCwg
MCB9Cit9OworCitzdGF0aWMgSlNTdGF0aWNWYWx1ZSBzdGF0aWNNZW51SXRlbVZhbHVlc1tdID0g
eworICAgIHsgInRpdGxlIiwgZ2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrLCBzZXRNZW51SXRlbVRp
dGxlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSB9LAorICAgIHsgMCwgMCwgMCwg
MCB9Cit9OworCitzdGF0aWMgSlNDbGFzc1JlZiBnZXRNZW51SXRlbUNsYXNzKCkKK3sKKyAgICBz
dGF0aWMgSlNDbGFzc1JlZiBtZW51SXRlbUNsYXNzID0gMDsKKworICAgIGlmICghbWVudUl0ZW1D
bGFzcykgeworICAgICAgICBKU0NsYXNzRGVmaW5pdGlvbiBjbGFzc0RlZmluaXRpb24gPSB7Cisg
ICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgICAgICAgICAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICAgICAgY2xhc3NEZWZpbml0aW9uLnN0YXRp
Y0Z1bmN0aW9ucyA9IHN0YXRpY01lbnVJdGVtRnVuY3Rpb25zOworICAgICAgICBjbGFzc0RlZmlu
aXRpb24uc3RhdGljVmFsdWVzID0gc3RhdGljTWVudUl0ZW1WYWx1ZXM7CisKKyAgICAgICAgbWVu
dUl0ZW1DbGFzcyA9IEpTQ2xhc3NDcmVhdGUoJmNsYXNzRGVmaW5pdGlvbik7CisgICAgfQorCisg
ICAgcmV0dXJuIG1lbnVJdGVtQ2xhc3M7Cit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIGNvbnRleHRD
bGlja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqICAgIGV4Y2VwdGlvbikKK3sKKyAgICBFdmFz
X09iamVjdCogdmlldyA9IGV3a19mcmFtZV92aWV3X2dldChicm93c2VyLT5tYWluRnJhbWUoKSk7
CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CisKKyAgICBFdmFzKiBldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQodmlldyk7Cisg
ICAgaWYgKCFldmFzKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7CisKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gbW91c2VEb3duOworICAgIG1vdXNlRG93
bi5idXR0b24gPSAzOworICAgIG1vdXNlRG93bi5vdXRwdXQueCA9IGdMYXN0TW91c2VQb3NpdGlv
blg7CisgICAgbW91c2VEb3duLm91dHB1dC55ID0gZ0xhc3RNb3VzZVBvc2l0aW9uWTsKKyAgICBt
b3VzZURvd24uY2FudmFzLnggPSBnTGFzdE1vdXNlUG9zaXRpb25YOworICAgIG1vdXNlRG93bi5j
YW52YXMueSA9IGdMYXN0TW91c2VQb3NpdGlvblk7CisgICAgbW91c2VEb3duLmRhdGEgPSAwOwor
ICAgIG1vdXNlRG93bi5tb2RpZmllcnMgPSBjb25zdF9jYXN0PEV2YXNfTW9kaWZpZXIgKj4oZXZh
c19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24ubG9ja3MgPSBjb25zdF9j
YXN0PEV2YXNfTG9jayAqPihldmFzX2tleV9sb2NrX2dldChldmFzKSk7CisgICAgbW91c2VEb3du
LmZsYWdzID0gRVZBU19CVVRUT05fTk9ORTsKKyAgICBtb3VzZURvd24udGltZXN0YW1wID0gZWNv
cmVfbG9vcF90aW1lX2dldCgpOworICAgIG1vdXNlRG93bi5ldmVudF9mbGFncyA9IEVWQVNfRVZF
TlRfRkxBR19OT05FOworICAgIG1vdXNlRG93bi5kZXYgPSAwOworCisgICAgZXdrX3ZpZXdfY29u
dGV4dF9tZW51X2ZvcndhcmRfZXZlbnQodmlldywgJm1vdXNlRG93bik7CisgICAgRXdrX0NvbnRl
eHRfTWVudSogZXdrTWVudSA9IGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQodmlldyk7CisKKyAg
ICBKU1ZhbHVlUmVmIHZhbHVlUmVmID0gSlNPYmplY3RNYWtlQXJyYXkoY29udGV4dCwgMCwgMCwg
MCk7CisgICAgaWYgKGV3a01lbnUpIHsKKyAgICAgICAgY29uc3QgRWluYV9MaXN0KiBld2tNZW51
SXRlbXMgPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoZXdrTWVudSk7CisgICAgICAg
IEpTVmFsdWVSZWYgYXJyYXlWYWx1ZXNbZWluYV9saXN0X2NvdW50KGV3a01lbnVJdGVtcyldOwor
CisgICAgICAgIGNvbnN0IEVpbmFfTGlzdCogbGlzdEl0ZXJhdG9yOworICAgICAgICB2b2lkKiBk
YXRhOworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICBFSU5BX0xJU1RfRk9SRUFDSChl
d2tNZW51SXRlbXMsIGxpc3RJdGVyYXRvciwgZGF0YSkKKyAgICAgICAgICAgIGFycmF5VmFsdWVz
W2luZGV4KytdID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIGdldE1lbnVJdGVtQ2xhc3MoKSwgZGF0
YSk7CisKKyAgICAgICAgaWYgKGluZGV4KQorICAgICAgICAgICAgdmFsdWVSZWYgPSBKU09iamVj
dE1ha2VBcnJheShjb250ZXh0LCBpbmRleCAtIDEsIGFycmF5VmFsdWVzLCAwKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHZhbHVlUmVmOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBtb3VzZURvd25DYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaW50IGJ1dHRvbiA9IDA7
CkBAIC03ODgsNiArODgzLDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0VG91Y2hNb2RpZmllckNh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW4KIH0KIAogc3RhdGlj
IEpTU3RhdGljRnVuY3Rpb24gc3RhdGljRnVuY3Rpb25zW10gPSB7CisgICAgeyAiY29udGV4dENs
aWNrIiwgY29udGV4dENsaWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICB7ICJtb3VzZVNjcm9sbEJ5
IiwgbW91c2VTY3JvbGxCeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgeyAiY29udGludW91c01vdXNl
U2Nyb2xsQnkiLCBjb250aW51b3VzTW91c2VTY3JvbGxCeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
eyAibW91c2VEb3duIiwgbW91c2VEb3duQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
</data>
<flag name="review"
          id="176317"
          type_id="1"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164885</attachid>
            <date>2012-09-20 03:41:59 -0700</date>
            <delta_ts>2012-10-03 03:35:14 -0700</delta_ts>
            <desc>unit tests added</desc>
            <filename>contextclick-unittests.diff</filename>
            <type>text/plain</type>
            <size>25550</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNjc1ZjViLi44YzY1MGZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDkt
MjAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSBjb250ZXh0Q2xpY2sgZGVwZW5kZW50IHRlc3RzIHRvIFdlYktpdDIgVGVzdEV4cGVj
dGF0aW9ucyBhbmQKKyAgICAgICAgYWRkIG5ldyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorCiAyMDEyLTA5LTIwICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZA
aW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFJlYmFzZWxpbmUgYWZ0ZXIgcjEyOTA3NApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGE0NWNi
OTAuLmQ5YjllNjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTIwMywzICsyMDMsMjEgQEAgQnVnKEVGTCkgaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1wYW5lbC5odG1sIFsgRmFpbHVyZSBdCiAjIEZhaWxzIGFmdGVyIHIxMjgw
NTYuCiB3ZWJraXQub3JnL2IvOTY3OTQgaW5zcGVjdG9yL2NvbnNvbGUvYWxlcnQtdG9TdHJpbmct
ZXhjZXB0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIAorLy8gRUZMJ3MgRXZlbnRTZW5kZXIgZG9lcyBu
b3QgaW1wbGVtZW50IGNvbnRleHRDbGljayB5ZXQKK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5n
L3Bhc3RlYm9hcmQvY29weS1zdGFuZGFsb25lLWltYWdlLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTEuaHRtbCBbIEZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMi5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24vYnV0
dG9uLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0
aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sIFsgRmFpbHVyZSBdCit3ZWJr
aXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0
aW9uLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NlbGVjdGlv
bi9lbXB0eS1jZWxsLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84
Njg4MSBlZGl0aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1ldGVyLWluLXNoYWRvdy1jcmFzaC5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zcGVsbGluZy9jb250
ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgx
IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1pbnB1dC1zZWFyY2gtY3Jhc2guaHRtbCBbIEZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZlbnRzL2NvbnRleHQtbm8tZGVzZWxl
Y3QuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZlbnRzL2NvbnRl
eHQtb25tb3VzZWRvd24tZXZlbnQuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgx
IGZhc3QvZXZlbnRzL2NvbnRleHRtZW51LXNjcm9sbGVkLXBhZ2Utd2l0aC1mcmFtZS5odG1sIFsg
RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZmFzdC9ldmVudHMvcmlnaHQtY2xpY2stZm9j
dXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZlbnRzL3NlbGVj
dHN0YXJ0LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmtpdC5vcmcvYi84Njg4MSBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sIFsgRmFp
bHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgbWVkaWEvY29udHJvbHMtcmlnaHQtY2xpY2stb24t
dGltZWJhci5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDlhM2M1Y2MuLmQwOTExNjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDYxLDMgKzEwNjEsMTEgQEAgd2Via2l0Lm9yZy9i
Lzk2NTE3IGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLXRpbWVycy5odG1sIFsgRmFpbHVyZSBd
CiAKIAogCisvLyBFbnRlcmluZyBpbnRvIGZ1bGwgc2NyZWVuIHBsYXliYWNrIG1vZGUgZmFpbHMg
d2hlbiB0cmlnZ2VyZWQgYnkgY29udGV4dCBtZW51CitCdWcoRUZMKSBtZWRpYS9jb250ZXh0LW1l
bnUtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCisKKy8vIEVGTCBwb3J0cyBpcyBtaXNzaW5nIHNw
ZWxsIGNoZWNraW5nIHN1cHBvcnQKK3dlYmtpdC5vcmcvYi84NjYzMyBlZGl0aW5nL3NwZWxsaW5n
L2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCisKKy8vIEVTQyBrZXkg
ZG9lcyBub3QgY2FuY2VsIGNvbnRleHQgbWVudSBpbiBFRkwgcG9ydAorQnVnKEVGTCkgZWRpdGlu
Zy9zZWxlY3Rpb24vNTM1NDQ1NS0xLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9lZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2VkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUt
Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzkzNTlh
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICg4LDgpIHNpemUgNjEyeDE0MgorICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDYxMngxNDIgW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAw
KV0KKyAgICBSZW5kZXJCbG9jayB7SDF9IGF0ICg2LDYpIHNpemUgNjAweDM3CisgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NTF4MzYKKyAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggNDUxOiAiV29yZCBzZWxlY3Rpb24gb24gcmlnaHQgY2xpY2sgdGVzdCIKKyAg
ICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoNiw2NCkgc2l6ZSA2MDB4NzIKKyAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU5N3gzNworICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA1OTc6ICJUaGlzIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHJpZ2h0IGNs
aWNraW5nIG5vbi1lZGl0YWJsZSBjb250ZW50IG9ubHkgY3JlYXRlcyBhIHdvcmQgc2VsZWN0aW9u
IGZvciIKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDEwMzogImNsaWNrcyBvdmVy
IHRleHQuICIKKyAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOHgxOQor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwMywxOCkgc2l6ZSAxOHgxOQorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgxMDMsMTgpIHdpZHRoIDE4OiAiVG8iCisgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDEyMSwxOCkgc2l6ZSA1Nzd4NTUKKyAgICAgICAgdGV4dCBydW4gYXQgKDEy
MSwxOCkgd2lkdGggNDExOiAiIHJ1biBtYW51YWxseSwgcmlnaHQgY2xpY2sgb24gdGV4dCwgYW5k
IGEgd29yZCBzaG91bGQgYmUgc2VsZWN0ZWQuICIKKyAgICAgICAgdGV4dCBydW4gYXQgKDUzMiwx
OCkgd2lkdGggMzU6ICJSaWdodCIKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYpIHdpZHRoIDU3
NzogImNsaWNrIG9uIHRoZSBlbXB0eSBzcGFjZSBvdXRzaWRlIGFuZCB0byB0aGUgcmlnaHQgb2Yg
dGhlIGJsYWNrIGJvcmRlciwgdGhlIHNlbGVjdGlvbiBzaG91bGQgYmUiCisgICAgICAgIHRleHQg
cnVuIGF0ICgwLDU0KSB3aWR0aCA1OTogInJlbW92ZWQuIgorICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMHgwCitjYXJldDogcG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4
dH0gb2YgY2hpbGQgMSB7SDF9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWJkN2I2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2Zhc3QvZXZlbnRzL2Nv
bnRleHQtbm8tZGVzZWxlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1
ODQKKyAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDIsMikgc2l6ZSAxOTN4Mjgg
W2JnY29sb3I9I0ZGRkZGRl0KKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBh
dCAoMTQsMTYpIHNpemUgMTg2eDE4IHNjcm9sbEhlaWdodCAxOQorICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoNCw2KSBzaXplIDE4NngxOAorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDEyNHgxOQorICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTI0OiAic29tZSBzYW1w
bGUgdGV4dCIKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gNSBvZiBjaGlsZCAwIHsjdGV4dH0g
b2YgY2hpbGQgMCB7RElWfSBvZiB7I3NoYWRvdy1yb290fSBvZiBjaGlsZCAxIHtJTlBVVH0gb2Yg
Ym9keQorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNSBvZiBjaGlsZCAwIHsjdGV4dH0gb2Yg
Y2hpbGQgMCB7RElWfSBvZiB7I3NoYWRvdy1yb290fSBvZiBjaGlsZCAxIHtJTlBVVH0gb2YgYm9k
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBkN2YxODAyLi5hYzZkMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTA5LTIwICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgW0VGTF1bRFJUXSBFdmVudFNlbmRlciByZXF1aXJlcyBjb250ZXh0
Q2xpY2sgaW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBuZXcgdW5pdCB0ZXN0IGZpbGUsIG5lZWRlZCBkdWUgdG8gZXdrIEFQ
SSBjaGFuZ2VzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIwMTItMDktMTQg
IFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAg
IFtRdF0gTWFrZSBmb3JjZV9zdGF0aWNfbGlic19hc19zaGFyZWQgd29yayBvbiBNYWMgT1MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDgwZDFjMDcuLjYyOGU5NGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bUVmbC5jbWFrZQpAQCAtMzI4LDYgKzMyOCw3IEBAIFNFVChXRUJLSVRfRUZMX1RFU1RfRElSICIk
e1dFQktJVF9ESVJ9L2VmbC90ZXN0cy8iKQogCiBTRVQoRVdLVW5pdFRlc3RzX0JJTkFSSUVTCiAg
ICAgdGVzdF9ld2tfdmlldworICAgIHRlc3RfZXdrX2NvbnRleHRtZW51CiApCiAKIElGIChFTkFC
TEVfQVBJX1RFU1RTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDQ2M2VmOTguLjZlMjk4YzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMi0wOS0yMCAgTWljaGHFgiBQYWt1xYJh
IHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW0RSVF0g
RXZlbnRTZW5kZXIgcmVxdWlyZXMgY29udGV4dENsaWNrIGltcGxlbWVudGF0aW9uLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwOTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBwb2ludGVyIHRv
IHBhcmVudCBtZW51IGluIEV3a19Db250ZXh0X01lbnVfSXRlbSBhbmQgYSBnZXR0ZXIKKyAgICAg
ICAgZnVuY3Rpb24gdG8gYWxsb3cgc2VsZWN0aW5nIGEgY29udGV4dCBtZW51IGl0ZW0gd2l0aG91
dCBoYXZpbmcKKyAgICAgICAgcGFyZW50IG1lbnUgcG9pbnRlciBpbiBEdW1wUmVuZGVyVHJlZSBF
dmVudFNlbmRlci4KKyAgICAgICAgVGhyZWUgdW5pdCB0ZXN0cyBhZGRlZCBkdWUgZXdrIEFQSSBj
aGFuZ2VzLgorCisgICAgICAgICogZXdrL2V3a19jb250ZXh0bWVudS5jcHA6CisgICAgICAgIChf
RXdrX0NvbnRleHRfTWVudV9JdGVtKToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9u
ZXcpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQpOgorICAgICAg
ICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZCk6CisgICAgICAgIChld2tfY29udGV4dF9t
ZW51X3Nob3cpOgorICAgICAgICAqIGV3ay9ld2tfY29udGV4dG1lbnUuaDoKKyAgICAgICAgKiBl
d2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldCk6Cisg
ICAgICAgICogZXdrL2V3a192aWV3Lmg6CisgICAgICAgICogdGVzdHMvdGVzdF9ld2tfY29udGV4
dG1lbnUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogdGVzdHMvdGVz
dF9ld2tfdmlldy5jcHA6CisgICAgICAgIChURVNUX0YpOgorCiAyMDEyLTA5LTIwICBKaW53b28g
U29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBDaGFuZ2Ug
dGhlIGxvZyBtYWNybyBuYW1lcyB0byBiZSBtb3JlIGNvbnNpc3RlbnQgd2l0aCBFSU5BIExPRwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAppbmRleCBlNzkyYzZkLi5k
ODVhOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcApAQCAt
NTMsNiArNTMsNyBAQCBzdHJ1Y3QgX0V3a19Db250ZXh0X01lbnVfSXRlbSB7CiAKICAgICBjb25z
dCBjaGFyKiB0aXRsZTsgLyoqPCBjb250YWlucyB0aGUgdGl0bGUgb2YgdGhlIGl0ZW0gKi8KICAg
ICBFd2tfQ29udGV4dF9NZW51KiBzdWJtZW51OyAvKio8IGNvbnRhaW5zIHRoZSBwb2ludGVyIHRv
IHRoZSBzdWJtZW51IG9mIHRoZSBpdGVtICovCisgICAgRXdrX0NvbnRleHRfTWVudSogcGFyZW50
bWVudTsgLyoqPCBjb250YWlucyB0aGUgcG9pbnRlciB0byBwYXJlbnQgbWVudSBvZiB0aGUgaXRl
bSAqLwogCiAgICAgYm9vbCBjaGVja2VkIDogMTsKICAgICBib29sIGVuYWJsZWQgOiAxOwpAQCAt
MTAwLDYgKzEwMSw3IEBAIGNvbnN0IEVpbmFfTGlzdCogZXdrX2NvbnRleHRfbWVudV9pdGVtX2xp
c3RfZ2V0KGNvbnN0IEV3a19Db250ZXh0X01lbnUqIG1lbnUpCiAKIEV3a19Db250ZXh0X01lbnVf
SXRlbSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlw
ZSB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVudSogc3VibWVu
dSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFd2tf
Q29udGV4dF9NZW51KiBwYXJlbnRtZW51LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwg
RWluYV9Cb29sIGVuYWJsZWQpCiB7CiAgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtID0g
bmV3IEV3a19Db250ZXh0X01lbnVfSXRlbTsKQEAgLTEwNyw2ICsxMDksNyBAQCBFd2tfQ29udGV4
dF9NZW51X0l0ZW0qIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9J
dGVtX1R5cGUgdHlwZQogICAgIGl0ZW0tPmFjdGlvbiA9IGFjdGlvbjsKICAgICBpdGVtLT50aXRs
ZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKHRpdGxlKTsKICAgICBpdGVtLT5zdWJtZW51ID0gc3Vi
bWVudTsKKyAgICBpdGVtLT5wYXJlbnRtZW51ID0gcGFyZW50bWVudTsKICAgICBpdGVtLT5jaGVj
a2VkID0gY2hlY2tlZDsKICAgICBpdGVtLT5lbmFibGVkID0gZW5hYmxlZDsKIApAQCAtMjAzLDYg
KzIwNiwxMSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0KEV3
a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSwgRWluYV9CbwogICAgIHJldHVybiB0cnVlOwogfQog
CitFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldChjb25z
dCBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0pCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKGl0ZW0sIDApOworICAgIHJldHVybiBpdGVtLT5wYXJlbnRtZW51OworfQog
CiAvKiBpbnRlcm5hbCBtZXRob2RzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKiovCiAKQEAgLTI3Nyw3ICsyODUsNyBAQCB2b2lkIGV3a19jb250ZXh0
X21lbnVfaXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwgY29uc3QgV2ViQ29yZTo6
Q29udGV4dAogICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiA9IHN0YXRpY19jYXN0
PEV3a19Db250ZXh0X01lbnVfQWN0aW9uPihjb3JlLmFjdGlvbigpKTsKIAogICAgIEV3a19Db250
ZXh0X01lbnVfSXRlbSogbWVudV9pdGVtID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlLCBhY3Rpb24sIDAs
IGNvcmUudGl0bGUoKS51dGY4KCkuZGF0YSgpLCBjb3JlLmNoZWNrZWQoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZSwgYWN0aW9uLCAwLCBtZW51LCBj
b3JlLnRpdGxlKCkudXRmOCgpLmRhdGEoKSwgY29yZS5jaGVja2VkKCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZS5lbmFibGVkKCkpOwogICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOKG1lbnVfaXRlbSk7CiAKQEAgLTI5NSw3ICszMDMsNiBAQCB2
b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwg
Y29uc3QgV2ViQ29yZTo6Q29udGV4dAogdm9pZCBld2tfY29udGV4dF9tZW51X3Nob3coRXdrX0Nv
bnRleHRfTWVudSogbWVudSkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtZW51
KTsKLQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywgImNv
bnRleHRtZW51LHNob3ciLCBtZW51KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19jb250ZXh0bWVudS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250
ZXh0bWVudS5oCmluZGV4IGFmNmQ0YTguLjdhNjUxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2NvbnRleHRtZW51LmgKQEAgLTIwMCw3ICsyMDAsNyBAQCBFQVBJIGNvbnN0IEVpbmFfTGlz
dCAgICAgICAgICAgICpld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoY29uc3QgRXdrX0Nv
bnRleAogICoKICAqIEBub3RlIFRoZSByZXR1cm4gdmFsdWUgQGIgc2hvdWxkIEBiIGJlIGZyZWVk
IGFmdGVyIHVzZS4KICAqLwotRUFQSSBFd2tfQ29udGV4dF9NZW51X0l0ZW0gICAgICAqZXdrX2Nv
bnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLCBFd2tf
Q29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24sIEV3a19Db250ZXh0X01lbnUgKnN1Ym1lbnUsIGNv
bnN0IGNoYXIgKnRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29sIGVuYWJsZWQpOwor
RUFQSSBFd2tfQ29udGV4dF9NZW51X0l0ZW0gICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX25l
dyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLCBFd2tfQ29udGV4dF9NZW51X0FjdGlv
biBhY3Rpb24sIEV3a19Db250ZXh0X01lbnUgKnN1Ym1lbnUsIEV3a19Db250ZXh0X01lbnUgKnBh
cmVudG1lbnUsIGNvbnN0IGNoYXIgKnRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29s
IGVuYWJsZWQpOwogCiAvKioKICAqIERlc3Ryb3lzIHRoZSBpdGVtIG9mIHRoZSBjb250ZXh0IG1l
bnUgb2JqZWN0LgpAQCAtMzIyLDYgKzMyMiwxNCBAQCBFQVBJIEVpbmFfQm9vbCAgICAgICAgICAg
ICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQoY29uc3QgRXdrX0Nvbgog
ICovCiBFQVBJIEVpbmFfQm9vbCAgICAgICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X2l0
ZW1fZW5hYmxlZF9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtICpvLCBFaW5hX0Jvb2wgZW5hYmxl
ZCk7CiAKKy8qKgorICogR2V0cyB0aGUgcGFyZW50IG1lbnUgZm9yIGNvbnRleHQgbWVudSBpdGVt
CisgKgorICogQHBhcmFtIG8gdGhlIGNvbnRleHQgbWVudSBpdGVtIG9iamVjdAorICogQHJldHVy
biBhIGNvbnRleHQgbWVudSBvYmplY3Qgb24gc3VjY2VzcyBvciBAYyBOVUxMIG9uIGZhaWx1cmUK
KyAqLworRUFQSSBFd2tfQ29udGV4dF9NZW51ICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX3Bh
cmVudF9nZXQoY29uc3QgRXdrX0NvbnRleHRfTWVudV9JdGVtICpvKTsKKwogI2lmZGVmIF9fY3Bs
dXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IGYwYjY5
NjcuLjM5MjNiZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNDU3MSw2ICs0
NTcxLDEzIEBAIHZvaWQgZXdrX3ZpZXdfY3Vyc29yX3NldChFdmFzX09iamVjdCogZXdrVmlldywg
Y29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJzb3IpCiAgICAgfQogfQogCitFd2tfQ29udGV4dF9N
ZW51KiBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3
KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAw
KTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsK
KyAgICByZXR1cm4gcHJpdi0+Y29udGV4dE1lbnU7Cit9CisKIG5hbWVzcGFjZSBFV0tQcml2YXRl
IHsKIAogV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGNjOWYwMTMuLmIwNmRmMmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMTMsNiArMTEzLDcgQEAKICNpZm5kZWYgZXdrX3ZpZXdf
aAogI2RlZmluZSBld2tfdmlld19oCiAKKyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIKICNp
bmNsdWRlICJld2tfZmlsZV9jaG9vc2VyLmgiCiAjaW5jbHVkZSAiZXdrX2ZyYW1lLmgiCiAjaW5j
bHVkZSAiZXdrX2hpc3RvcnkuaCIKQEAgLTI3NDcsNiArMjc0OCwxNCBAQCBFQVBJIEV2YXNfT2Jq
ZWN0KiBld2tfdmlld193ZWJfaW5zcGVjdG9yX3ZpZXdfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpv
KTsKICAqLwogRUFQSSB2b2lkIGV3a192aWV3X3dlYl9pbnNwZWN0b3Jfdmlld19zZXQoRXZhc19P
YmplY3QgKm8sIEV2YXNfT2JqZWN0ICppbnNwZWN0b3Jfdmlldyk7CiAKKy8qKgorICogR2V0cyB0
aGUgY29udGV4dCBtZW51IG9iamVjdAorICogQHBhcmFtIG8gVGhlIHZpZXcgdGhhdCBjb250YWlu
cyBjb250ZXh0IG1lbnUuCisgKgorICogQHJldHVybiBjb250ZXh0IG1lbnUgc3RydWN0dXJlIG9u
IHN1Y2Nlc3Mgb3IgQGMgTlVMTCBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRXdrX0NvbnRleHRfTWVu
dSogZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldChjb25zdCBFdmFzX09iamVjdCogbyk7CisKICNp
ZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC90ZXN0cy90ZXN0X2V3a19jb250ZXh0bWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0
cy90ZXN0X2V3a19jb250ZXh0bWVudS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYzFiNTkyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3Rz
L3Rlc3RfZXdrX2NvbnRleHRtZW51LmNwcApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAgICBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAg
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdO
VQorICAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorICAgIEluYy4sIDU5IFRl
bXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCisqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJVbml0VGVzdFV0aWxzL0VXS1Rlc3RCYXNl
LmgiCisjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0tUZXN0Q29uZmlnLmgiCisjaW5jbHVkZSA8
RVdlYktpdC5oPgorI2luY2x1ZGUgPEVjb3JlLmg+CisKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIEVXS1VuaXRU
ZXN0czsKKworLyoqCisgKiBAYnJpZWYgQ2hlY2tpbmcgd2hldGhlciBmdW5jdGlvbiBjcmVhdGVz
IHByb3BlciBtZW51IGl0ZW0uCisgKgorICogVGhpcyB0ZXN0IGNyZWF0ZXMgYSBtZW51IGl0ZW0g
YW5kIGNoZWNrcyBpZiBhbGwgbWVudSBpdGVtJ3MgYXR0cmlidXRlcyBhcmUKKyAqIHRoZSBzYW1l
IGFzIHBhc3NlZCB0byB0ZXN0ZWQgZnVuY3Rpb24uCisgKi8KK1RFU1RfRihFV0tUZXN0QmFzZSwg
ZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldykKK3sKKyAgICBsb2FkVXJsKCk7CisKKyAgICBFdmFz
KiBldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQod2ViVmlldygpKTsKKyAgICBBU1NFUlRfVFJV
RShldmFzKTsKKworICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biBtb3VzZURvd247CisgICAgbW91
c2VEb3duLmJ1dHRvbiA9IDM7CisgICAgbW91c2VEb3duLm91dHB1dC54ID0gMDsKKyAgICBtb3Vz
ZURvd24ub3V0cHV0LnkgPSAwOworICAgIG1vdXNlRG93bi5jYW52YXMueCA9IDA7CisgICAgbW91
c2VEb3duLmNhbnZhcy55ID0gMDsKKyAgICBtb3VzZURvd24uZGF0YSA9IDA7CisgICAgbW91c2VE
b3duLm1vZGlmaWVycyA9IGNvbnN0X2Nhc3Q8RXZhc19Nb2RpZmllcio+KGV2YXNfa2V5X21vZGlm
aWVyX2dldChldmFzKSk7CisgICAgbW91c2VEb3duLmxvY2tzID0gY29uc3RfY2FzdDxFdmFzX0xv
Y2sqPihldmFzX2tleV9sb2NrX2dldChldmFzKSk7CisgICAgbW91c2VEb3duLmZsYWdzID0gRVZB
U19CVVRUT05fTk9ORTsKKyAgICBtb3VzZURvd24udGltZXN0YW1wID0gZWNvcmVfbG9vcF90aW1l
X2dldCgpOworICAgIG1vdXNlRG93bi5ldmVudF9mbGFncyA9IEVWQVNfRVZFTlRfRkxBR19OT05F
OworICAgIG1vdXNlRG93bi5kZXYgPSAwOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdfY29u
dGV4dF9tZW51X2ZvcndhcmRfZXZlbnQod2ViVmlldygpLCAmbW91c2VEb3duKSk7CisKKyAgICBF
d2tfQ29udGV4dF9NZW51KiBjb250ZXh0TWVudSA9IGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQo
d2ViVmlldygpKTsKKworICAgIEFTU0VSVF9UUlVFKGNvbnRleHRNZW51KTsKKworICAgIEV3a19D
b250ZXh0X01lbnVfSXRlbV9UeXBlIGl0ZW1UeXBlID0gRVdLX0FDVElPTl9UWVBFOworICAgIEV3
a19Db250ZXh0X01lbnVfQWN0aW9uIGl0ZW1BY3Rpb24gPSBFV0tfQ09OVEVYVF9NRU5VX0lURU1f
Q1VTVE9NX1RBR19OT19BQ1RJT047CisgICAgY29uc3QgY2hhciogaXRlbVRpdGxlID0gIlRlc3Qg
SXRlbSI7CisgICAgRWluYV9Cb29sIGl0ZW1DaGVja2VkID0gRUlOQV9GQUxTRTsKKyAgICBFaW5h
X0Jvb2wgaXRlbUVuYWJsZWQgPSBFSU5BX0ZBTFNFOworCisgICAgRXdrX0NvbnRleHRfTWVudV9J
dGVtKiBjb250ZXh0TWVudUl0ZW0gPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KGl0ZW1UeXBl
LCBpdGVtQWN0aW9uLCAwLCBjb250ZXh0TWVudSwgaXRlbVRpdGxlLCBpdGVtQ2hlY2tlZCwgaXRl
bUVuYWJsZWQpOworCisgICAgQVNTRVJUX1RSVUUoY29udGV4dE1lbnVJdGVtKTsKKworICAgIEVY
UEVDVF9FUShpdGVtVHlwZSwgZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfZ2V0KGNvbnRleHRN
ZW51SXRlbSkpOworICAgIEVYUEVDVF9FUShpdGVtQWN0aW9uLCBld2tfY29udGV4dF9tZW51X2l0
ZW1fYWN0aW9uX2dldChjb250ZXh0TWVudUl0ZW0pKTsKKyAgICBFWFBFQ1RfRVEoY29udGV4dE1l
bnUsIGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KGNvbnRleHRNZW51SXRlbSkpOwor
ICAgIEVYUEVDVF9TVFJFUShpdGVtVGl0bGUsIGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9n
ZXQoY29udGV4dE1lbnVJdGVtKSk7CisgICAgRVhQRUNUX0VRKGl0ZW1DaGVja2VkLCBld2tfY29u
dGV4dF9tZW51X2l0ZW1fY2hlY2tlZF9nZXQoY29udGV4dE1lbnVJdGVtKSk7CisgICAgRVhQRUNU
X0VRKGl0ZW1FbmFibGVkLCBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQoY29udGV4
dE1lbnVJdGVtKSk7Cit9CisKKy8qKgorICogQGJyaWVmIENoZWNraW5nIHdoZXRoZXIgZnVuY3Rp
b24gcmV0dXJucyBwcm9wZXIgcGFyZW50IG1lbnUuCisgKgorICogVGhpcyB0ZXN0IGNyZWF0ZXMg
YSBjb250ZXh0IG1lbnVzLCBhbmQgY2hlY2tzIGlmIGNyZWF0ZWQgY29udGV4dCBtZW51J3MKKyAq
IHBhcmVudCBpcyB0aGUgc2FtZSBmb3IgZWFjaCBvZiBtZW51IGl0ZW1zLgorICovCitURVNUX0Yo
RVdLVGVzdEJhc2UsIGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KQoreworICAgIGxv
YWRVcmwoKTsKKworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldCh3ZWJWaWV3
KCkpOworICAgIEFTU0VSVF9UUlVFKGV2YXMpOworCisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3du
IG1vdXNlRG93bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3VzZURvd24ub3V0
cHV0LnggPSAwOworICAgIG1vdXNlRG93bi5vdXRwdXQueSA9IDA7CisgICAgbW91c2VEb3duLmNh
bnZhcy54ID0gMDsKKyAgICBtb3VzZURvd24uY2FudmFzLnkgPSAwOworICAgIG1vdXNlRG93bi5k
YXRhID0gMDsKKyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0gY29uc3RfY2FzdDxFdmFzX01vZGlm
aWVyKj4oZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24ubG9ja3Mg
PSBjb25zdF9jYXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xvY2tfZ2V0KGV2YXMpKTsKKyAgICBt
b3VzZURvd24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1vdXNlRG93bi50aW1lc3Rh
bXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3duLmV2ZW50X2ZsYWdzID0g
RVZBU19FVkVOVF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9IDA7CisKKyAgICBBU1NF
UlRfVFJVRShld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh3ZWJWaWV3KCksICZt
b3VzZURvd24pKTsKKworICAgIEV3a19Db250ZXh0X01lbnUqIGNvbnRleHRNZW51ID0gZXdrX3Zp
ZXdfY29udGV4dF9tZW51X2dldCh3ZWJWaWV3KCkpOworCisgICAgQVNTRVJUX1RSVUUoY29udGV4
dE1lbnUpOworCisgICAgY29uc3QgRWluYV9MaXN0KiBjb250ZXh0TWVudUl0ZW1zID0gZXdrX2Nv
bnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KGNvbnRleHRNZW51KTsKKworICAgIEFTU0VSVF9UUlVF
KGNvbnRleHRNZW51SXRlbXMpOworCisgICAgY29uc3QgRWluYV9MaXN0KiBsaXN0SXRlcmF0b3I7
CisgICAgdm9pZCogZGF0YTsKKyAgICBFSU5BX0xJU1RfRk9SRUFDSChjb250ZXh0TWVudUl0ZW1z
LCBsaXN0SXRlcmF0b3IsIGRhdGEpCisgICAgICAgIEVYUEVDVF9FUShjb250ZXh0TWVudSwgZXdr
X2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVu
dV9JdGVtKj4oZGF0YSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3Rz
L3Rlc3RfZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tfdmll
dy5jcHAKaW5kZXggYmI0N2U5NC4uYjczODE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvdGVzdHMvdGVzdF9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMv
dGVzdF9ld2tfdmlldy5jcHAKQEAgLTQ1LDMgKzQ1LDM1IEBAIFRFU1RfRihFV0tUZXN0QmFzZSwg
ZXdrX3ZpZXdfdXJpX2dldCkKICAgICBsb2FkVXJsKCk7CiAgICAgRVhQRUNUX1NUUkVRKGV3a192
aWV3X3VyaV9nZXQod2ViVmlldygpKSwgQ29uZmlnOjpkZWZhdWx0VGVzdFBhZ2UpOwogfQorCisv
KioKKyAqIEBicmllZiBDaGVja2luZyB3aGV0aGVyIGZ1bmN0aW9uIHJldHVybnMgcHJvcGVyIGNv
bnRleHQgbWVudSBzdHJ1Y3R1cmUuCisgKgorICogVGhpcyB0ZXN0IGNyZWF0ZXMgYSBjb250ZXh0
IG1lbnUgYW5kIGNoZWNrcyBpZiBjb250ZXh0IG1lbnUgc3RydWN0dXJlCisgKiBpcyBub3QgTlVM
TDsKKyAqLworVEVTVF9GKEVXS1Rlc3RCYXNlLCBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KQor
eworICAgIGxvYWRVcmwoKTsKKworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dl
dCh3ZWJWaWV3KCkpOworICAgIEFTU0VSVF9UUlVFKGV2YXMpOworCisgICAgRXZhc19FdmVudF9N
b3VzZV9Eb3duIG1vdXNlRG93bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3Vz
ZURvd24ub3V0cHV0LnggPSAwOworICAgIG1vdXNlRG93bi5vdXRwdXQueSA9IDA7CisgICAgbW91
c2VEb3duLmNhbnZhcy54ID0gMDsKKyAgICBtb3VzZURvd24uY2FudmFzLnkgPSAwOworICAgIG1v
dXNlRG93bi5kYXRhID0gMDsKKyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0gY29uc3RfY2FzdDxF
dmFzX01vZGlmaWVyKj4oZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURv
d24ubG9ja3MgPSBjb25zdF9jYXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xvY2tfZ2V0KGV2YXMp
KTsKKyAgICBtb3VzZURvd24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1vdXNlRG93
bi50aW1lc3RhbXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3duLmV2ZW50
X2ZsYWdzID0gRVZBU19FVkVOVF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9IDA7CisK
KyAgICBBU1NFUlRfVFJVRShld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh3ZWJW
aWV3KCksICZtb3VzZURvd24pKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X2NvbnRleHRf
bWVudV9nZXQod2ViVmlldygpKSk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYWY1MTg2Mi4uYzQ2ZDhmMSAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA5
LTIwICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0VGTF1bRFJUXSBFdmVudFNlbmRlciByZXF1aXJlcyBjb250ZXh0Q2xpY2sgaW1w
bGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBjb250ZXh0Q2xpY2sgZm9yIER1bXBSZW5kZXJUcmVlRXZlbnRTZW5kZXIgYmFzaW5n
IG9uIFdlYktpdCBHVEsKKyAgICAgICAgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAoZ2V0TWVudUl0ZW1UaXRs
ZUNhbGxiYWNrKToKKyAgICAgICAgKHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayk6CisgICAgICAg
IChtZW51SXRlbUNsaWNrQ2FsbGJhY2spOgorICAgICAgICAoY29udGV4dENsaWNrQ2FsbGJhY2sp
OgorCiAyMDEyLTA5LTIwICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGln
aWEuY29tPgogCiAgICAgICAgIFtRdF0gQWRkIGV2ZW50U2VuZGVyLmdlc3R1cmVUYXAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwCmluZGV4IGIwOTAzMWMuLmM3NmMzZGEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcApAQCAtMjY5LDYgKzI2
OSwxMDEgQEAgc3RhdGljIHVuc2lnbmVkIG1vZGlmaWVyc0Zyb21KU1ZhbHVlKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBjb25zdCBKU1ZhbHVlUmVmIG1vZGkKICAgICByZXR1cm4gbW9kaWZpZXI7CiB9
CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGdldE1lbnVJdGVtVGl0bGVDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0
ZW0gPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihKU09iamVjdEdldFByaXZh
dGUob2JqZWN0KSk7CisgICAgQ1N0cmluZyBsYWJlbDsKKyAgICBpZiAoZXdrX2NvbnRleHRfbWVu
dV9pdGVtX3R5cGVfZ2V0KGl0ZW0pID09IEVXS19TRVBBUkFUT1JfVFlQRSkKKyAgICAgICAgbGFi
ZWwgPSAiPHNlcGFyYXRvcj4iOworICAgIGVsc2UKKyAgICAgICAgbGFiZWwgPSBld2tfY29udGV4
dF9tZW51X2l0ZW1fdGl0bGVfZ2V0KGl0ZW0pOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3Ry
aW5nKGNvbnRleHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGxhYmVsLmRhdGEoKSkp
OworfQorCitzdGF0aWMgYm9vbCBzZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIG1lbnVJdGVtQ2xpY2tDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVt
ID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4oSlNPYmplY3RHZXRQcml2YXRl
KHRoaXNPYmplY3QpKTsKKyAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fc2VsZWN0KGV3a19jb250
ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KGl0ZW0pLCBpdGVtKTsKKyAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKK3N0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIHN0
YXRpY01lbnVJdGVtRnVuY3Rpb25zW10gPSB7CisgICAgeyAiY2xpY2siLCBtZW51SXRlbUNsaWNr
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKKyAgICB7IDAsIDAsIDAgfQorfTsKKworc3RhdGljIEpTU3RhdGlj
VmFsdWUgc3RhdGljTWVudUl0ZW1WYWx1ZXNbXSA9IHsKKyAgICB7ICJ0aXRsZSIsIGdldE1lbnVJ
dGVtVGl0bGVDYWxsYmFjaywgc2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZU5vbmUgfSwKKyAgICB7IDAsIDAsIDAsIDAgfQorfTsKKworc3RhdGljIEpTQ2xhc3NS
ZWYgZ2V0TWVudUl0ZW1DbGFzcygpCit7CisgICAgc3RhdGljIEpTQ2xhc3NSZWYgbWVudUl0ZW1D
bGFzcyA9IDA7CisKKyAgICBpZiAoIW1lbnVJdGVtQ2xhc3MpIHsKKyAgICAgICAgSlNDbGFzc0Rl
ZmluaXRpb24gY2xhc3NEZWZpbml0aW9uID0geworICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAs
IDAsIDAsCisgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH07
CisgICAgICAgIGNsYXNzRGVmaW5pdGlvbi5zdGF0aWNGdW5jdGlvbnMgPSBzdGF0aWNNZW51SXRl
bUZ1bmN0aW9uczsKKyAgICAgICAgY2xhc3NEZWZpbml0aW9uLnN0YXRpY1ZhbHVlcyA9IHN0YXRp
Y01lbnVJdGVtVmFsdWVzOworCisgICAgICAgIG1lbnVJdGVtQ2xhc3MgPSBKU0NsYXNzQ3JlYXRl
KCZjbGFzc0RlZmluaXRpb24pOworICAgIH0KKworICAgIHJldHVybiBtZW51SXRlbUNsYXNzOwor
fQorCitzdGF0aWMgSlNWYWx1ZVJlZiBjb250ZXh0Q2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiAgICBleGNlcHRpb24pCit7CisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBld2tfZnJhbWVf
dmlld19nZXQoYnJvd3Nlci0+bWFpbkZyYW1lKCkpOworICAgIGlmICghdmlldykKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgRXZhcyogZXZhcyA9
IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KHZpZXcpOworICAgIGlmICghZXZhcykKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgRXZhc19FdmVudF9Nb3Vz
ZV9Eb3duIG1vdXNlRG93bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3VzZURv
d24ub3V0cHV0LnggPSBnTGFzdE1vdXNlUG9zaXRpb25YOworICAgIG1vdXNlRG93bi5vdXRwdXQu
eSA9IGdMYXN0TW91c2VQb3NpdGlvblk7CisgICAgbW91c2VEb3duLmNhbnZhcy54ID0gZ0xhc3RN
b3VzZVBvc2l0aW9uWDsKKyAgICBtb3VzZURvd24uY2FudmFzLnkgPSBnTGFzdE1vdXNlUG9zaXRp
b25ZOworICAgIG1vdXNlRG93bi5kYXRhID0gMDsKKyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0g
Y29uc3RfY2FzdDxFdmFzX01vZGlmaWVyKj4oZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsK
KyAgICBtb3VzZURvd24ubG9ja3MgPSBjb25zdF9jYXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xv
Y2tfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOwor
ICAgIG1vdXNlRG93bi50aW1lc3RhbXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91
c2VEb3duLmV2ZW50X2ZsYWdzID0gRVZBU19FVkVOVF9GTEFHX05PTkU7CisgICAgbW91c2VEb3du
LmRldiA9IDA7CisKKyAgICBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh2aWV3
LCAmbW91c2VEb3duKTsKKyAgICBFd2tfQ29udGV4dF9NZW51KiBld2tNZW51ID0gZXdrX3ZpZXdf
Y29udGV4dF9tZW51X2dldCh2aWV3KTsKKworICAgIEpTVmFsdWVSZWYgdmFsdWVSZWYgPSBKU09i
amVjdE1ha2VBcnJheShjb250ZXh0LCAwLCAwLCAwKTsKKyAgICBpZiAoZXdrTWVudSkgeworICAg
ICAgICBjb25zdCBFaW5hX0xpc3QqIGV3a01lbnVJdGVtcyA9IGV3a19jb250ZXh0X21lbnVfaXRl
bV9saXN0X2dldChld2tNZW51KTsKKyAgICAgICAgSlNWYWx1ZVJlZiBhcnJheVZhbHVlc1tlaW5h
X2xpc3RfY291bnQoZXdrTWVudUl0ZW1zKV07CisKKyAgICAgICAgY29uc3QgRWluYV9MaXN0KiBs
aXN0SXRlcmF0b3I7CisgICAgICAgIHZvaWQqIGRhdGE7CisgICAgICAgIGludCBpbmRleCA9IDA7
CisgICAgICAgIEVJTkFfTElTVF9GT1JFQUNIKGV3a01lbnVJdGVtcywgbGlzdEl0ZXJhdG9yLCBk
YXRhKQorICAgICAgICAgICAgYXJyYXlWYWx1ZXNbaW5kZXgrK10gPSBKU09iamVjdE1ha2UoY29u
dGV4dCwgZ2V0TWVudUl0ZW1DbGFzcygpLCBkYXRhKTsKKworICAgICAgICBpZiAoaW5kZXgpCisg
ICAgICAgICAgICB2YWx1ZVJlZiA9IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIGluZGV4IC0g
MSwgYXJyYXlWYWx1ZXMsIDApOworICAgIH0KKyAgICByZXR1cm4gdmFsdWVSZWY7Cit9CisKIHN0
YXRpYyBKU1ZhbHVlUmVmIG1vdXNlRG93bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKIHsKICAgICBpbnQgYnV0dG9uID0gMDsKQEAgLTc4OCw2ICs4ODMsNyBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiBzZXRUb3VjaE1vZGlmaWVyQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bgogfQogCiBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNGdW5j
dGlvbnNbXSA9IHsKKyAgICB7ICJjb250ZXh0Q2xpY2siLCBjb250ZXh0Q2xpY2tDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgIHsgIm1vdXNlU2Nyb2xsQnkiLCBtb3VzZVNjcm9sbEJ5Q2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICB7ICJjb250aW51b3VzTW91c2VTY3JvbGxCeSIsIGNvbnRpbnVvdXNNb3VzZVNj
cm9sbEJ5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICB7ICJtb3VzZURvd24iLCBtb3VzZURvd25DYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAo=
</data>
<flag name="commit-queue"
          id="176810"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166846</attachid>
            <date>2012-10-03 03:35:14 -0700</date>
            <delta_ts>2012-10-03 03:54:24 -0700</delta_ts>
            <desc>rebased patch</desc>
            <filename>contextclick-unittests2.diff</filename>
            <type>text/plain</type>
            <size>28123</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMjBhOGMxLi41ZmEwMDQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAt
MDMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSBjb250ZXh0Q2xpY2sgZGVwZW5kZW50IHRlc3RzIHRvIFdlYktpdDIgVGVzdEV4cGVj
dGF0aW9ucyBhbmQKKyAgICAgICAgYWRkIG5ldyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorCiAyMDEyLTEwLTAzICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8uZGEu
Y29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtRdF1bRFJUXSBBZGQgc3VwcG9ydCBmb3Igb3Zl
cnJpZGluZyB0aGUgIldlYktpdERpc3BsYXlJbWFnZXNLZXkiIHByZWZlcmVuY2UuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTE5MmI2ZS4u
YzFiODIwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMjE1LDMgKzIxNSwyMiBAQCB3ZWJraXQub3JnL2IvOTc1NDUgaW5zcGVjdG9yL3N0
eWxlcy92YXJpYWJsZXMvY3NzLXZhcmlhYmxlcy5odG1sIFsgRmFpbHVyZSBdCiAKICMgRmFpbHMg
YWZ0ZXIgcjEyOTQ3OS4KIHdlYmtpdC5vcmcvYi85NzU2NiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9vYmplY3Qtc3JjLXVybC1hbGxvd2VkLmh0bWwgWyBGYWlsdXJl
IF0KKworIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGFuIGltcGxlbWVudGF0aW9uIGZvciBldmVu
dFNlbmRlci5jb250ZXh0Q2xpY2sKK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3Bhc3RlYm9h
cmQvY29weS1zdGFuZGFsb25lLWltYWdlLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5v
cmcvYi84Njg4MSBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTEuaHRtbCBbIEZhaWx1cmUgXQor
d2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMi5odG1sIFsgRmFp
bHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24vYnV0dG9uLXJpZ2h0
LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NlbGVj
dGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2Iv
ODY4ODEgZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLmh0bWwg
WyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NlbGVjdGlvbi9lbXB0eS1j
ZWxsLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0
aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1ldGVyLWluLXNoYWRvdy1jcmFzaC5odG1sIFsgRmFp
bHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUt
c3VnZ2VzdGlvbnMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1pbnB1dC1zZWFyY2gtY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQor
d2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZlbnRzL2NvbnRleHQtbm8tZGVzZWxlY3QuaHRtbCBb
IEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZlbnRzL2NvbnRleHQtb25tb3Vz
ZWRvd24tZXZlbnQuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZl
bnRzL2NvbnRleHRtZW51LXNjcm9sbGVkLXBhZ2Utd2l0aC1mcmFtZS5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvODY4ODEgZmFzdC9ldmVudHMvcmlnaHQtY2xpY2stZm9jdXMuaHRtbCBb
IEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LXBy
ZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5v
cmcvYi84Njg4MSBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCit3
ZWJraXQub3JnL2IvODY4ODEgbWVkaWEvY29udHJvbHMtcmlnaHQtY2xpY2stb24tdGltZWJhci5o
dG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDcwZjE3YjIuLjBiNWYxZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xMjM4LDI3ICsxMjM4LDYgQEAgd2Via2l0Lm9yZy9iLzgyMTQwIGlu
c3BlY3Rvci9nZW9sb2NhdGlvbi1lcnJvci5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
ODIxNDAgaW5zcGVjdG9yL2dlb2xvY2F0aW9uLXN1Y2Nlc3MuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzgyMTQwIGluc3BlY3Rvci9nZW9sb2NhdGlvbi13YXRjaFBvc2l0aW9uLmh0bWwg
WyBGYWlsdXJlIF0KIAotIyBFRkwncyBFdmVudFNlbmRlciBkb2VzIG5vdCBpbXBsZW1lbnQgY29u
dGV4dENsaWNrIHlldAotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5
LXN0YW5kYWxvbmUtaW1hZ2UtY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2
MDkxIGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24vYnV0dG9uLXJpZ2h0LWNsaWNrLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1l
bnUtb24tdGV4dC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9z
ZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NlbGVjdGlvbi9lbXB0eS1jZWxsLXJpZ2h0LWNsaWNr
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NwZWxsaW5nL2Nv
bnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYw
OTEgZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWlucHV0LXNlYXJjaC1jcmFzaC5odG1sIFsg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZmFzdC9ldmVudHMvY29udGV4dC1vbm1vdXNl
ZG93bi1ldmVudC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZmFzdC9ldmVu
dHMvY29udGV4dG1lbnUtc2Nyb2xsZWQtcGFnZS13aXRoLWZyYW1lLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi84NjA5MSBmYXN0L2V2ZW50cy9yaWdodC1jbGljay1mb2N1cy5odG1sIFsg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtcHJl
dmVudC1zZWxlY3Rpb24tb24tcmlnaHQtY2xpY2suaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9y
Zy9iLzg2MDkxIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi84NjA5MSBtZWRpYS9jb250cm9scy1yaWdodC1jbGljay1vbi10aW1lYmFyLmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NoYWRvdy9yaWdodGNs
aWNrLW9uLW1ldGVyLWluLXNoYWRvdy1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCi0KLSMgRUZMJ3Mg
RXZlbnRTZW5kZXIgY29udGV4dENsaWNrLCBuZWVkcyBiYXNlbGluZXMKLXdlYmtpdC5vcmcvYi84
NjA5MSBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTIuaHRtbCBbIE1pc3NpbmcgXQotd2Via2l0
Lm9yZy9iLzg2MDkxIGZhc3QvZXZlbnRzL2NvbnRleHQtbm8tZGVzZWxlY3QuaHRtbCBbIE1pc3Np
bmcgXQotCiAjIElFVEMgbmFtZXNwYWNlIGZhaWx1cmVzCiB3ZWJraXQub3JnL2IvODYxNDIgaWV0
ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlcy9zeW50YXgtMDIxLnhtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogCkBAIC0xMzA5LDYgKzEyODgsNyBAQCB3ZWJraXQub3JnL2IvODY2MzMgZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1oYXNzcGVsbGluZ21hcmtlci5odG1sIFsgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvODY2MzMgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODY2MzMgZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1saW5lYnJlYWsuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg2NjMzIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24uaHRtbCBbIEZhaWx1cmUgXQord2Vi
a2l0Lm9yZy9iLzg2NjMzIGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25z
Lmh0bWwgWyBGYWlsdXJlIF0KIAogIyBFRkwncyBMYXlvdXRUZXN0Q29udHJvbGxlciBkb2VzIG5v
dCBzdXBwb3J0IHNldFN1YnBpeGVsVGV4dFBvc2l0aW9uaW5nKCkKIHdlYmtpdC5vcmcvYi85MTM0
MSBmYXN0L3RleHQvZGVzY2VudC1jbGlwLWluLXNjYWxlZC1wYWdlLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KQEAgLTE1MDYsMyArMTQ4Niw5IEBAIHdlYmtpdC5vcmcvYi85Nzk5MCBtYXRobWwv
cHJlc2VudGF0aW9uL21vLXN0cmV0Y2guaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk3
OTkwIG1hdGhtbC9wcmVzZW50YXRpb24vcm9vdHMueGh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi85Nzk5MCBtYXRobWwvcHJlc2VudGF0aW9uL3Jvdy1hbGlnbm1lbnQueGh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi85Nzk5MCBtYXRobWwvcHJlc2VudGF0aW9uL3N1YnN1cC54aHRt
bCBbIEZhaWx1cmUgXQorCisjIEVudGVyaW5nIGludG8gZnVsbCBzY3JlZW4gcGxheWJhY2sgbW9k
ZSBmYWlscyB3aGVuIHRyaWdnZXJlZCBieSBjb250ZXh0IG1lbnUKK0J1ZyhFRkwpIG1lZGlhL2Nv
bnRleHQtbWVudS1hY3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KKworIyBFU0Mga2V5IGRvZXMgbm90
IGNhbmNlbCBjb250ZXh0IG1lbnUgaW4gRUZMIHBvcnQKK0J1ZyhFRkwpIGVkaXRpbmcvc2VsZWN0
aW9uLzUzNTQ0NTUtMS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9lZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MzU5YTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZWRpdGluZy9zZWxlY3Rpb24v
NTM1NDQ1NS0yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCitsYXllciBhdCAoOCw4KSBzaXplIDYxMngxNDIKKyAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSA2MTJ4MTQyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCisgICAg
UmVuZGVyQmxvY2sge0gxfSBhdCAoNiw2KSBzaXplIDYwMHgzNworICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNDUxeDM2CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDQ1MTogIldvcmQgc2VsZWN0aW9uIG9uIHJpZ2h0IGNsaWNrIHRlc3QiCisgICAgUmVuZGVy
QmxvY2sgKGFub255bW91cykgYXQgKDYsNjQpIHNpemUgNjAweDcyCisgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1OTd4MzcKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNTk3OiAiVGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCByaWdodCBjbGlja2luZyBu
b24tZWRpdGFibGUgY29udGVudCBvbmx5IGNyZWF0ZXMgYSB3b3JkIHNlbGVjdGlvbiBmb3IiCisg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAxMDM6ICJjbGlja3Mgb3ZlciB0ZXh0LiAi
CisgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTh4MTkKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMDMsMTgpIHNpemUgMTh4MTkKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMTAzLDE4KSB3aWR0aCAxODogIlRvIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgxMjEsMTgpIHNpemUgNTc3eDU1CisgICAgICAgIHRleHQgcnVuIGF0ICgxMjEsMTgpIHdp
ZHRoIDQxMTogIiBydW4gbWFudWFsbHksIHJpZ2h0IGNsaWNrIG9uIHRleHQsIGFuZCBhIHdvcmQg
c2hvdWxkIGJlIHNlbGVjdGVkLiAiCisgICAgICAgIHRleHQgcnVuIGF0ICg1MzIsMTgpIHdpZHRo
IDM1OiAiUmlnaHQiCisgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2KSB3aWR0aCA1Nzc6ICJjbGlj
ayBvbiB0aGUgZW1wdHkgc3BhY2Ugb3V0c2lkZSBhbmQgdG8gdGhlIHJpZ2h0IG9mIHRoZSBibGFj
ayBib3JkZXIsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIgorICAgICAgICB0ZXh0IHJ1biBhdCAo
MCw1NCkgd2lkdGggNTk6ICJyZW1vdmVkLiIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDB4MAorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNo
aWxkIDEge0gxfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
ZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFiZDdiNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW5v
LWRlc2VsZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAg
ICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgyLDIpIHNpemUgMTkzeDI4IFtiZ2NvbG9y
PSNGRkZGRkZdCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE0LDE2
KSBzaXplIDE4NngxOCBzY3JvbGxIZWlnaHQgMTkKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQs
Nikgc2l6ZSAxODZ4MTgKKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxMjR4
MTkKKyAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDEyNDogInNvbWUgc2FtcGxlIHRleHQi
CitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxk
IDAge0RJVn0gb2YgeyNzaGFkb3ctcm9vdH0gb2YgY2hpbGQgMSB7SU5QVVR9IG9mIGJvZHkKK3Nl
bGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMTUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAg
e0RJVn0gb2YgeyNzaGFkb3ctcm9vdH0gb2YgY2hpbGQgMSB7SU5QVVR9IG9mIGJvZHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZmM3N2VjYy4uYTg1N2ZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0x
MC0wMyAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgor
CisgICAgICAgIFtFRkxdW0RSVF0gRXZlbnRTZW5kZXIgcmVxdWlyZXMgY29udGV4dENsaWNrIGlt
cGxlbWVudGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODYwOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgbmV3IHVuaXQgdGVzdCBmaWxlLCBuZWVkZWQgZHVlIHRvIGV3ayBBUEkgY2hhbmdl
cy4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTEwLTAyICBLcnp5c3p0
b2YgQ3plY2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIEFkZCBmaWxl
IEVXS1Rlc3RFbnZpcm9ubWVudC5jcHAgdG8gYnVpbGQgc3lzdGVtLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwu
Y21ha2UKaW5kZXggN2E1NDcxMy4uM2UwNmEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCkBA
IC0zNTIsNiArMzUyLDcgQEAgVEFSR0VUX0xJTktfTElCUkFSSUVTKGV3a1Rlc3RVdGlscyAke0VX
S1VuaXRUZXN0c19MSUJSQVJJRVN9KQogU0VUKFdFQktJVF9FRkxfVEVTVF9ESVIgIiR7V0VCS0lU
X0RJUn0vZWZsL3Rlc3RzLyIpCiAKIFNFVChFV0tVbml0VGVzdHNfQklOQVJJRVMKKyAgICB0ZXN0
X2V3a19jb250ZXh0bWVudQogICAgIHRlc3RfZXdrX3ZpZXcKICkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmlu
ZGV4IDg5ZDZmMjEuLjhlNWVlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAor
MjAxMi0xMC0wMyAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdW0RSVF0gRXZlbnRTZW5kZXIgcmVxdWlyZXMgY29udGV4dENs
aWNrIGltcGxlbWVudGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODYwOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBwb2ludGVyIHRvIHBhcmVudCBtZW51IGluIEV3a19Db250ZXh0X01l
bnVfSXRlbSBhbmQgYSBnZXR0ZXIKKyAgICAgICAgZnVuY3Rpb24gdG8gYWxsb3cgc2VsZWN0aW5n
IGEgY29udGV4dCBtZW51IGl0ZW0gd2l0aG91dCBoYXZpbmcKKyAgICAgICAgcGFyZW50IG1lbnUg
cG9pbnRlciBpbiBEdW1wUmVuZGVyVHJlZSBFdmVudFNlbmRlci4KKyAgICAgICAgVGhyZWUgdW5p
dCB0ZXN0cyBhZGRlZCBkdWUgZXdrIEFQSSBjaGFuZ2VzLgorCisgICAgICAgICogZXdrL2V3a19j
b250ZXh0bWVudS5jcHA6CisgICAgICAgIChfRXdrX0NvbnRleHRfTWVudV9JdGVtKToKKyAgICAg
ICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVu
dV9pdGVtX3BhcmVudF9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVu
ZCk6CisgICAgICAgICogZXdrL2V3a19jb250ZXh0bWVudS5oOgorICAgICAgICAqIGV3ay9ld2tf
dmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KToKKyAgICAgICAg
KiBld2svZXdrX3ZpZXcuaDoKKyAgICAgICAgKiB0ZXN0cy90ZXN0X2V3a19jb250ZXh0bWVudS5j
cHA6IEFkZGVkLgorICAgICAgICAoVEVTVF9GKToKKyAgICAgICAgKiB0ZXN0cy90ZXN0X2V3a192
aWV3LmNwcDoKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTItMTAtMDIgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8g
Z2V0IHRoZSB3ZWIgdmlldyB0aGF0IGluaXRpYXRlZCBhIGN1c3RvbSBVUkkgcmVxdWVzdCB0byBX
ZWJLaXQyIEdUSysKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4
dG1lbnUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKaW5k
ZXggZTc5MmM2ZC4uNGVhMmM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19jb250ZXh0bWVudS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0
bWVudS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0l0ZW0g
ewogCiAgICAgY29uc3QgY2hhciogdGl0bGU7IC8qKjwgY29udGFpbnMgdGhlIHRpdGxlIG9mIHRo
ZSBpdGVtICovCiAgICAgRXdrX0NvbnRleHRfTWVudSogc3VibWVudTsgLyoqPCBjb250YWlucyB0
aGUgcG9pbnRlciB0byB0aGUgc3VibWVudSBvZiB0aGUgaXRlbSAqLworICAgIEV3a19Db250ZXh0
X01lbnUqIHBhcmVudG1lbnU7IC8qKjwgY29udGFpbnMgdGhlIHBvaW50ZXIgdG8gcGFyZW50IG1l
bnUgb2YgdGhlIGl0ZW0gKi8KIAogICAgIGJvb2wgY2hlY2tlZCA6IDE7CiAgICAgYm9vbCBlbmFi
bGVkIDogMTsKQEAgLTk4LDE1ICs5OSwxNSBAQCBjb25zdCBFaW5hX0xpc3QqIGV3a19jb250ZXh0
X21lbnVfaXRlbV9saXN0X2dldChjb25zdCBFd2tfQ29udGV4dF9NZW51KiBtZW51KQogICAgIHJl
dHVybiBtZW51LT5pdGVtczsKIH0KIAotRXdrX0NvbnRleHRfTWVudV9JdGVtKiBld2tfY29udGV4
dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXdrX0NvbnRleHRfTWVu
dV9BY3Rpb24gYWN0aW9uLCBFd2tfQ29udGV4dF9NZW51KiBzdWJtZW51LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHRpdGxlLCBF
aW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29sIGVuYWJsZWQpCitFd2tfQ29udGV4dF9NZW51X0l0
ZW0qIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUg
dHlwZSwgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uLCBFd2tfQ29udGV4dF9NZW51KiBz
dWJtZW51LAorICAgIEV3a19Db250ZXh0X01lbnUqIHBhcmVudG1lbnUsIGNvbnN0IGNoYXIqIHRp
dGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29sIGVuYWJsZWQpCiB7CiAgICAgRXdrX0Nv
bnRleHRfTWVudV9JdGVtKiBpdGVtID0gbmV3IEV3a19Db250ZXh0X01lbnVfSXRlbTsKICAgICBp
dGVtLT50eXBlID0gdHlwZTsKICAgICBpdGVtLT5hY3Rpb24gPSBhY3Rpb247CiAgICAgaXRlbS0+
dGl0bGUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZCh0aXRsZSk7CiAgICAgaXRlbS0+c3VibWVudSA9
IHN1Ym1lbnU7CisgICAgaXRlbS0+cGFyZW50bWVudSA9IHBhcmVudG1lbnU7CiAgICAgaXRlbS0+
Y2hlY2tlZCA9IGNoZWNrZWQ7CiAgICAgaXRlbS0+ZW5hYmxlZCA9IGVuYWJsZWQ7CiAKQEAgLTIw
Myw2ICsyMDQsMTEgQEAgRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3Nl
dChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0sIEVpbmFfQm8KICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQo
Y29uc3QgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtKQoreworICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChpdGVtLCAwKTsKKyAgICByZXR1cm4gaXRlbS0+cGFyZW50bWVudTsK
K30KIAogLyogaW50ZXJuYWwgbWV0aG9kcyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0yNzYsOSArMjgyLDcgQEAgdm9pZCBld2tfY29u
dGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUqIG1lbnUsIGNvbnN0IFdlYkNv
cmU6OkNvbnRleHQKICAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlID0gc3RhdGlj
X2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGU+KGNvcmUudHlwZSgpKTsKICAgICBFd2tf
Q29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24gPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51
X0FjdGlvbj4oY29yZS5hY3Rpb24oKSk7CiAKLSAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG1l
bnVfaXRlbSA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAodHlwZSwgYWN0aW9uLCAwLCBjb3JlLnRpdGxlKCkudXRm
OCgpLmRhdGEoKSwgY29yZS5jaGVja2VkKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29yZS5lbmFibGVkKCkpOworICAgIEV3a19Db250ZXh0X01lbnVfSXRl
bSogbWVudV9pdGVtID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyh0eXBlLCBhY3Rpb24sIDAs
IG1lbnUsIGNvcmUudGl0bGUoKS51dGY4KCkuZGF0YSgpLCBjb3JlLmNoZWNrZWQoKSwgY29yZS5l
bmFibGVkKCkpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKG1lbnVfaXRlbSk7CiAK
ICAgICBtZW51LT5pdGVtcyA9IGVpbmFfbGlzdF9hcHBlbmQobWVudS0+aXRlbXMsIG1lbnVfaXRl
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKaW5kZXggYWY2ZDRhOC4u
ZTkxODQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVu
dS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaApAQCAtMjAw
LDcgKzIwMCw3IEBAIEVBUEkgY29uc3QgRWluYV9MaXN0ICAgICAgICAgICAgKmV3a19jb250ZXh0
X21lbnVfaXRlbV9saXN0X2dldChjb25zdCBFd2tfQ29udGV4CiAgKgogICogQG5vdGUgVGhlIHJl
dHVybiB2YWx1ZSBAYiBzaG91bGQgQGIgYmUgZnJlZWQgYWZ0ZXIgdXNlLgogICovCi1FQVBJIEV3
a19Db250ZXh0X01lbnVfSXRlbSAgICAgICpld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19D
b250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUsIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlv
biwgRXdrX0NvbnRleHRfTWVudSAqc3VibWVudSwgY29uc3QgY2hhciAqdGl0bGUsIEVpbmFfQm9v
bCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxlZCk7CitFQVBJIEV3a19Db250ZXh0X01lbnVfSXRl
bSAgICAgICpld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9U
eXBlIHR5cGUsIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVu
dSAqc3VibWVudSwgRXdrX0NvbnRleHRfTWVudSAqcGFyZW50bWVudSwgY29uc3QgY2hhciAqdGl0
bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxlZCk7CiAKIC8qKgogICogRGVz
dHJveXMgdGhlIGl0ZW0gb2YgdGhlIGNvbnRleHQgbWVudSBvYmplY3QuCkBAIC0zMjIsNiArMzIy
LDE0IEBAIEVBUEkgRWluYV9Cb29sICAgICAgICAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVf
aXRlbV9lbmFibGVkX2dldChjb25zdCBFd2tfQ29uCiAgKi8KIEVBUEkgRWluYV9Cb29sICAgICAg
ICAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4
dF9NZW51X0l0ZW0gKm8sIEVpbmFfQm9vbCBlbmFibGVkKTsKIAorLyoqCisgKiBHZXRzIHRoZSBw
YXJlbnQgbWVudSBmb3IgY29udGV4dCBtZW51IGl0ZW0uCisgKgorICogQHBhcmFtIG8gdGhlIGNv
bnRleHQgbWVudSBpdGVtIG9iamVjdAorICogQHJldHVybiBhIGNvbnRleHQgbWVudSBvYmplY3Qg
b24gc3VjY2VzcyBvciBAYyBOVUxMIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFd2tfQ29udGV4dF9N
ZW51ICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoY29uc3QgRXdrX0NvbnRl
eHRfTWVudV9JdGVtICpvKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IGVmMzU2NGQuLmZlNjliNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNDY0MSw2ICs0NjQxLDEzIEBAIHZvaWQgZXdrX3ZpZXdf
ZnVsbHNjcmVlbl9leGl0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogfQogI2VuZGlmCiAK
K0V3a19Db250ZXh0X01lbnUqIGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3
LCBzbWFydERhdGEsIDApOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERh
dGEsIHByaXYsIDApOworICAgIHJldHVybiBwcml2LT5jb250ZXh0TWVudTsKK30KKwogbmFtZXNw
YWNlIEVXS1ByaXZhdGUgewogCiBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZShjb25zdCBFdmFzX09i
amVjdCogZXdrVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggN2E4YjVkNy4uODk2
OTM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTExMyw2ICsxMTMsNyBAQAogI2lm
bmRlZiBld2tfdmlld19oCiAjZGVmaW5lIGV3a192aWV3X2gKIAorI2luY2x1ZGUgImV3a19jb250
ZXh0bWVudS5oIgogI2luY2x1ZGUgImV3a19maWxlX2Nob29zZXIuaCIKICNpbmNsdWRlICJld2tf
ZnJhbWUuaCIKICNpbmNsdWRlICJld2tfaGlzdG9yeS5oIgpAQCAtMjc3NCw2ICsyNzc1LDE0IEBA
IEVBUEkgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2Z1bGxzY3JlZW5fc2V0KEV2
YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wKICAqLwogRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0
dGluZ19lbmFibGVfZnVsbHNjcmVlbl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogCisvKioK
KyAqIEdldHMgdGhlIGNvbnRleHQgbWVudSBvYmplY3QuCisgKiBAcGFyYW0gbyBUaGUgdmlldyB0
aGF0IGNvbnRhaW5zIGNvbnRleHQgbWVudS4KKyAqCisgKiBAcmV0dXJuIGNvbnRleHQgbWVudSBz
dHJ1Y3R1cmUgb24gc3VjY2VzcyBvciBAYyBOVUxMIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFd2tf
Q29udGV4dF9NZW51KiBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
KiBvKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX2NvbnRleHRtZW51LmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX2NvbnRleHRtZW51LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jMWI1OTIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvdGVzdHMvdGVzdF9ld2tfY29udGV4dG1lbnUuY3BwCkBAIC0wLDAgKzEsMTIzIEBACisv
KgorICAgIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
IFNlZSB0aGUgR05VCisgICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisgICAg
SW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBV
U0EKKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlVuaXRUZXN0VXRpbHMv
RVdLVGVzdEJhc2UuaCIKKyNpbmNsdWRlICJVbml0VGVzdFV0aWxzL0VXS1Rlc3RDb25maWcuaCIK
KyNpbmNsdWRlIDxFV2ViS2l0Lmg+CisjaW5jbHVkZSA8RWNvcmUuaD4KKworI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgRVdLVW5pdFRlc3RzOworCisvKioKKyAqIEBicmllZiBDaGVja2luZyB3aGV0aGVyIGZ1bmN0
aW9uIGNyZWF0ZXMgcHJvcGVyIG1lbnUgaXRlbS4KKyAqCisgKiBUaGlzIHRlc3QgY3JlYXRlcyBh
IG1lbnUgaXRlbSBhbmQgY2hlY2tzIGlmIGFsbCBtZW51IGl0ZW0ncyBhdHRyaWJ1dGVzIGFyZQor
ICogdGhlIHNhbWUgYXMgcGFzc2VkIHRvIHRlc3RlZCBmdW5jdGlvbi4KKyAqLworVEVTVF9GKEVX
S1Rlc3RCYXNlLCBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KQoreworICAgIGxvYWRVcmwoKTsK
KworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldCh3ZWJWaWV3KCkpOworICAg
IEFTU0VSVF9UUlVFKGV2YXMpOworCisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duIG1vdXNlRG93
bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3VzZURvd24ub3V0cHV0LnggPSAw
OworICAgIG1vdXNlRG93bi5vdXRwdXQueSA9IDA7CisgICAgbW91c2VEb3duLmNhbnZhcy54ID0g
MDsKKyAgICBtb3VzZURvd24uY2FudmFzLnkgPSAwOworICAgIG1vdXNlRG93bi5kYXRhID0gMDsK
KyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0gY29uc3RfY2FzdDxFdmFzX01vZGlmaWVyKj4oZXZh
c19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24ubG9ja3MgPSBjb25zdF9j
YXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xvY2tfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24u
ZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1vdXNlRG93bi50aW1lc3RhbXAgPSBlY29y
ZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3duLmV2ZW50X2ZsYWdzID0gRVZBU19FVkVO
VF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9IDA7CisKKyAgICBBU1NFUlRfVFJVRShl
d2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh3ZWJWaWV3KCksICZtb3VzZURvd24p
KTsKKworICAgIEV3a19Db250ZXh0X01lbnUqIGNvbnRleHRNZW51ID0gZXdrX3ZpZXdfY29udGV4
dF9tZW51X2dldCh3ZWJWaWV3KCkpOworCisgICAgQVNTRVJUX1RSVUUoY29udGV4dE1lbnUpOwor
CisgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgaXRlbVR5cGUgPSBFV0tfQUNUSU9OX1RZ
UEU7CisgICAgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gaXRlbUFjdGlvbiA9IEVXS19DT05URVhU
X01FTlVfSVRFTV9DVVNUT01fVEFHX05PX0FDVElPTjsKKyAgICBjb25zdCBjaGFyKiBpdGVtVGl0
bGUgPSAiVGVzdCBJdGVtIjsKKyAgICBFaW5hX0Jvb2wgaXRlbUNoZWNrZWQgPSBFSU5BX0ZBTFNF
OworICAgIEVpbmFfQm9vbCBpdGVtRW5hYmxlZCA9IEVJTkFfRkFMU0U7CisKKyAgICBFd2tfQ29u
dGV4dF9NZW51X0l0ZW0qIGNvbnRleHRNZW51SXRlbSA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9u
ZXcoaXRlbVR5cGUsIGl0ZW1BY3Rpb24sIDAsIGNvbnRleHRNZW51LCBpdGVtVGl0bGUsIGl0ZW1D
aGVja2VkLCBpdGVtRW5hYmxlZCk7CisKKyAgICBBU1NFUlRfVFJVRShjb250ZXh0TWVudUl0ZW0p
OworCisgICAgRVhQRUNUX0VRKGl0ZW1UeXBlLCBld2tfY29udGV4dF9tZW51X2l0ZW1fdHlwZV9n
ZXQoY29udGV4dE1lbnVJdGVtKSk7CisgICAgRVhQRUNUX0VRKGl0ZW1BY3Rpb24sIGV3a19jb250
ZXh0X21lbnVfaXRlbV9hY3Rpb25fZ2V0KGNvbnRleHRNZW51SXRlbSkpOworICAgIEVYUEVDVF9F
UShjb250ZXh0TWVudSwgZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoY29udGV4dE1l
bnVJdGVtKSk7CisgICAgRVhQRUNUX1NUUkVRKGl0ZW1UaXRsZSwgZXdrX2NvbnRleHRfbWVudV9p
dGVtX3RpdGxlX2dldChjb250ZXh0TWVudUl0ZW0pKTsKKyAgICBFWFBFQ1RfRVEoaXRlbUNoZWNr
ZWQsIGV3a19jb250ZXh0X21lbnVfaXRlbV9jaGVja2VkX2dldChjb250ZXh0TWVudUl0ZW0pKTsK
KyAgICBFWFBFQ1RfRVEoaXRlbUVuYWJsZWQsIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVk
X2dldChjb250ZXh0TWVudUl0ZW0pKTsKK30KKworLyoqCisgKiBAYnJpZWYgQ2hlY2tpbmcgd2hl
dGhlciBmdW5jdGlvbiByZXR1cm5zIHByb3BlciBwYXJlbnQgbWVudS4KKyAqCisgKiBUaGlzIHRl
c3QgY3JlYXRlcyBhIGNvbnRleHQgbWVudXMsIGFuZCBjaGVja3MgaWYgY3JlYXRlZCBjb250ZXh0
IG1lbnUncworICogcGFyZW50IGlzIHRoZSBzYW1lIGZvciBlYWNoIG9mIG1lbnUgaXRlbXMuCisg
Ki8KK1RFU1RfRihFV0tUZXN0QmFzZSwgZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQp
Cit7CisgICAgbG9hZFVybCgpOworCisgICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNf
Z2V0KHdlYlZpZXcoKSk7CisgICAgQVNTRVJUX1RSVUUoZXZhcyk7CisKKyAgICBFdmFzX0V2ZW50
X01vdXNlX0Rvd24gbW91c2VEb3duOworICAgIG1vdXNlRG93bi5idXR0b24gPSAzOworICAgIG1v
dXNlRG93bi5vdXRwdXQueCA9IDA7CisgICAgbW91c2VEb3duLm91dHB1dC55ID0gMDsKKyAgICBt
b3VzZURvd24uY2FudmFzLnggPSAwOworICAgIG1vdXNlRG93bi5jYW52YXMueSA9IDA7CisgICAg
bW91c2VEb3duLmRhdGEgPSAwOworICAgIG1vdXNlRG93bi5tb2RpZmllcnMgPSBjb25zdF9jYXN0
PEV2YXNfTW9kaWZpZXIqPihldmFzX2tleV9tb2RpZmllcl9nZXQoZXZhcykpOworICAgIG1vdXNl
RG93bi5sb2NrcyA9IGNvbnN0X2Nhc3Q8RXZhc19Mb2NrKj4oZXZhc19rZXlfbG9ja19nZXQoZXZh
cykpOworICAgIG1vdXNlRG93bi5mbGFncyA9IEVWQVNfQlVUVE9OX05PTkU7CisgICAgbW91c2VE
b3duLnRpbWVzdGFtcCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKKyAgICBtb3VzZURvd24uZXZl
bnRfZmxhZ3MgPSBFVkFTX0VWRU5UX0ZMQUdfTk9ORTsKKyAgICBtb3VzZURvd24uZGV2ID0gMDsK
KworICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KHdl
YlZpZXcoKSwgJm1vdXNlRG93bikpOworCisgICAgRXdrX0NvbnRleHRfTWVudSogY29udGV4dE1l
bnUgPSBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KHdlYlZpZXcoKSk7CisKKyAgICBBU1NFUlRf
VFJVRShjb250ZXh0TWVudSk7CisKKyAgICBjb25zdCBFaW5hX0xpc3QqIGNvbnRleHRNZW51SXRl
bXMgPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoY29udGV4dE1lbnUpOworCisgICAg
QVNTRVJUX1RSVUUoY29udGV4dE1lbnVJdGVtcyk7CisKKyAgICBjb25zdCBFaW5hX0xpc3QqIGxp
c3RJdGVyYXRvcjsKKyAgICB2b2lkKiBkYXRhOworICAgIEVJTkFfTElTVF9GT1JFQUNIKGNvbnRl
eHRNZW51SXRlbXMsIGxpc3RJdGVyYXRvciwgZGF0YSkKKyAgICAgICAgRVhQRUNUX0VRKGNvbnRl
eHRNZW51LCBld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldChzdGF0aWNfY2FzdDxFd2tf
Q29udGV4dF9NZW51X0l0ZW0qPihkYXRhKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvdGVzdHMvdGVzdF9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90
ZXN0X2V3a192aWV3LmNwcAppbmRleCA5NzUzYzQ2Li44NTI0YWEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC90ZXN0cy90ZXN0X2V3a192aWV3LmNwcApAQCAtNzAsMyArNzAsMzUgQEAgVEVTVF9GKEVX
S1Rlc3RCYXNlLCBld2tfdmlld19zZXR0aW5nX2VuYWJsZV9mdWxsc2NyZWVuKQogICAgIEFTU0VS
VF9GQUxTRShld2tfdmlld19zZXR0aW5nX2VuYWJsZV9mdWxsc2NyZWVuX2dldCh3ZWJWaWV3KCkp
KTsKICNlbmRpZgogfQorCisvKioKKyAqIEBicmllZiBDaGVja2luZyB3aGV0aGVyIGZ1bmN0aW9u
IHJldHVybnMgcHJvcGVyIGNvbnRleHQgbWVudSBzdHJ1Y3R1cmUuCisgKgorICogVGhpcyB0ZXN0
IGNyZWF0ZXMgYSBjb250ZXh0IG1lbnUgYW5kIGNoZWNrcyBpZiBjb250ZXh0IG1lbnUgc3RydWN0
dXJlCisgKiBpcyBub3QgTlVMTDsKKyAqLworVEVTVF9GKEVXS1Rlc3RCYXNlLCBld2tfdmlld19j
b250ZXh0X21lbnVfZ2V0KQoreworICAgIGxvYWRVcmwoKTsKKworICAgIEV2YXMqIGV2YXMgPSBl
dmFzX29iamVjdF9ldmFzX2dldCh3ZWJWaWV3KCkpOworICAgIEFTU0VSVF9UUlVFKGV2YXMpOwor
CisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duIG1vdXNlRG93bjsKKyAgICBtb3VzZURvd24uYnV0
dG9uID0gMzsKKyAgICBtb3VzZURvd24ub3V0cHV0LnggPSAwOworICAgIG1vdXNlRG93bi5vdXRw
dXQueSA9IDA7CisgICAgbW91c2VEb3duLmNhbnZhcy54ID0gMDsKKyAgICBtb3VzZURvd24uY2Fu
dmFzLnkgPSAwOworICAgIG1vdXNlRG93bi5kYXRhID0gMDsKKyAgICBtb3VzZURvd24ubW9kaWZp
ZXJzID0gY29uc3RfY2FzdDxFdmFzX01vZGlmaWVyKj4oZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2
YXMpKTsKKyAgICBtb3VzZURvd24ubG9ja3MgPSBjb25zdF9jYXN0PEV2YXNfTG9jayo+KGV2YXNf
a2V5X2xvY2tfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9O
T05FOworICAgIG1vdXNlRG93bi50aW1lc3RhbXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7Cisg
ICAgbW91c2VEb3duLmV2ZW50X2ZsYWdzID0gRVZBU19FVkVOVF9GTEFHX05PTkU7CisgICAgbW91
c2VEb3duLmRldiA9IDA7CisKKyAgICBBU1NFUlRfVFJVRShld2tfdmlld19jb250ZXh0X21lbnVf
Zm9yd2FyZF9ldmVudCh3ZWJWaWV3KCksICZtb3VzZURvd24pKTsKKworICAgIEFTU0VSVF9UUlVF
KGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQod2ViVmlldygpKSk7Cit9CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDVmYmRmMS4uNjgwYmEyYiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDEyLTEwLTAzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1
bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF1bRFJUXSBFdmVudFNlbmRlciByZXF1aXJl
cyBjb250ZXh0Q2xpY2sgaW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBjb250ZXh0Q2xpY2sgZm9yIER1bXBSZW5kZXJUcmVl
RXZlbnRTZW5kZXIgYmFzaW5nIG9uIFdlYktpdCBHVEsKKyAgICAgICAgaW1wbGVtZW50YXRpb24u
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwOgorICAgICAg
ICAoZ2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrKToKKyAgICAgICAgKHNldE1lbnVJdGVtVGl0bGVD
YWxsYmFjayk6CisgICAgICAgIChtZW51SXRlbUNsaWNrQ2FsbGJhY2spOgorICAgICAgICAoY29u
dGV4dENsaWNrQ2FsbGJhY2spOgorCiAyMDEyLTEwLTAzICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEg
IDxyYXBoYWVsLmt1Ym8uZGEuY29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtRdF1bRFJUXSBB
ZGQgc3VwcG9ydCBmb3Igb3ZlcnJpZGluZyB0aGUgIldlYktpdERpc3BsYXlJbWFnZXNLZXkiIHBy
ZWZlcmVuY2UuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5k
ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcAppbmRleCA3
OGQyZGJjLi5lNjFmNjVkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZl
bnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5j
cHAKQEAgLTI2OSw2ICsyNjksMTAxIEBAIHN0YXRpYyB1bnNpZ25lZCBtb2RpZmllcnNGcm9tSlNW
YWx1ZShKU0NvbnRleHRSZWYgY29udGV4dCwgY29uc3QgSlNWYWx1ZVJlZiBtb2RpCiAgICAgcmV0
dXJuIG1vZGlmaWVyOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBnZXRNZW51SXRlbVRpdGxlQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdS
ZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgRXdrX0NvbnRl
eHRfTWVudV9JdGVtKiBpdGVtID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4o
SlNPYmplY3RHZXRQcml2YXRlKG9iamVjdCkpOworICAgIENTdHJpbmcgbGFiZWw7CisgICAgaWYg
KGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX2dldChpdGVtKSA9PSBFV0tfU0VQQVJBVE9SX1RZ
UEUpCisgICAgICAgIGxhYmVsID0gIjxzZXBhcmF0b3I+IjsKKyAgICBlbHNlCisgICAgICAgIGxh
YmVsID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX3RpdGxlX2dldChpdGVtKTsKKworICAgIHJldHVy
biBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZyhsYWJlbC5kYXRhKCkpKTsKK30KKworc3RhdGljIGJvb2wgc2V0TWVudUl0ZW1UaXRsZUNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQor
eworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBtZW51SXRlbUNsaWNr
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEV3a19Db250ZXh0
X01lbnVfSXRlbSogaXRlbSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbSo+KEpT
T2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgZXdrX2NvbnRleHRfbWVudV9pdGVt
X3NlbGVjdChld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldChpdGVtKSwgaXRlbSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCitzdGF0aWMgSlNT
dGF0aWNGdW5jdGlvbiBzdGF0aWNNZW51SXRlbUZ1bmN0aW9uc1tdID0geworICAgIHsgImNsaWNr
IiwgbWVudUl0ZW1DbGlja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgeyAwLCAwLCAwIH0KK307CisK
K3N0YXRpYyBKU1N0YXRpY1ZhbHVlIHN0YXRpY01lbnVJdGVtVmFsdWVzW10gPSB7CisgICAgeyAi
dGl0bGUiLCBnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2ssIHNldE1lbnVJdGVtVGl0bGVDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lIH0sCisgICAgeyAwLCAwLCAwLCAwIH0KK307CisK
K3N0YXRpYyBKU0NsYXNzUmVmIGdldE1lbnVJdGVtQ2xhc3MoKQoreworICAgIHN0YXRpYyBKU0Ns
YXNzUmVmIG1lbnVJdGVtQ2xhc3MgPSAwOworCisgICAgaWYgKCFtZW51SXRlbUNsYXNzKSB7Cisg
ICAgICAgIEpTQ2xhc3NEZWZpbml0aW9uIGNsYXNzRGVmaW5pdGlvbiA9IHsKKyAgICAgICAgICAg
IDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwfTsKKyAgICAgICAgY2xhc3NEZWZpbml0aW9uLnN0YXRpY0Z1bmN0aW9ucyA9IHN0YXRp
Y01lbnVJdGVtRnVuY3Rpb25zOworICAgICAgICBjbGFzc0RlZmluaXRpb24uc3RhdGljVmFsdWVz
ID0gc3RhdGljTWVudUl0ZW1WYWx1ZXM7CisKKyAgICAgICAgbWVudUl0ZW1DbGFzcyA9IEpTQ2xh
c3NDcmVhdGUoJmNsYXNzRGVmaW5pdGlvbik7CisgICAgfQorCisgICAgcmV0dXJuIG1lbnVJdGVt
Q2xhc3M7Cit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIGNvbnRleHRDbGlja0NhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqICAgIGV4Y2VwdGlvbikKK3sKKyAgICBFdmFzX09iamVjdCogdmlldyA9IGV3
a19mcmFtZV92aWV3X2dldChicm93c2VyLT5tYWluRnJhbWUoKSk7CisgICAgaWYgKCF2aWV3KQor
ICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBFdmFz
KiBldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQodmlldyk7CisgICAgaWYgKCFldmFzKQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBFdmFzX0V2
ZW50X01vdXNlX0Rvd24gbW91c2VEb3duOworICAgIG1vdXNlRG93bi5idXR0b24gPSAzOworICAg
IG1vdXNlRG93bi5vdXRwdXQueCA9IGdMYXN0TW91c2VQb3NpdGlvblg7CisgICAgbW91c2VEb3du
Lm91dHB1dC55ID0gZ0xhc3RNb3VzZVBvc2l0aW9uWTsKKyAgICBtb3VzZURvd24uY2FudmFzLngg
PSBnTGFzdE1vdXNlUG9zaXRpb25YOworICAgIG1vdXNlRG93bi5jYW52YXMueSA9IGdMYXN0TW91
c2VQb3NpdGlvblk7CisgICAgbW91c2VEb3duLmRhdGEgPSAwOworICAgIG1vdXNlRG93bi5tb2Rp
ZmllcnMgPSBjb25zdF9jYXN0PEV2YXNfTW9kaWZpZXIqPihldmFzX2tleV9tb2RpZmllcl9nZXQo
ZXZhcykpOworICAgIG1vdXNlRG93bi5sb2NrcyA9IGNvbnN0X2Nhc3Q8RXZhc19Mb2NrKj4oZXZh
c19rZXlfbG9ja19nZXQoZXZhcykpOworICAgIG1vdXNlRG93bi5mbGFncyA9IEVWQVNfQlVUVE9O
X05PTkU7CisgICAgbW91c2VEb3duLnRpbWVzdGFtcCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsK
KyAgICBtb3VzZURvd24uZXZlbnRfZmxhZ3MgPSBFVkFTX0VWRU5UX0ZMQUdfTk9ORTsKKyAgICBt
b3VzZURvd24uZGV2ID0gMDsKKworICAgIGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2
ZW50KHZpZXcsICZtb3VzZURvd24pOworICAgIEV3a19Db250ZXh0X01lbnUqIGV3a01lbnUgPSBl
d2tfdmlld19jb250ZXh0X21lbnVfZ2V0KHZpZXcpOworCisgICAgSlNWYWx1ZVJlZiB2YWx1ZVJl
ZiA9IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIDAsIDAsIDApOworICAgIGlmIChld2tNZW51
KSB7CisgICAgICAgIGNvbnN0IEVpbmFfTGlzdCogZXdrTWVudUl0ZW1zID0gZXdrX2NvbnRleHRf
bWVudV9pdGVtX2xpc3RfZ2V0KGV3a01lbnUpOworICAgICAgICBKU1ZhbHVlUmVmIGFycmF5VmFs
dWVzW2VpbmFfbGlzdF9jb3VudChld2tNZW51SXRlbXMpXTsKKworICAgICAgICBjb25zdCBFaW5h
X0xpc3QqIGxpc3RJdGVyYXRvcjsKKyAgICAgICAgdm9pZCogZGF0YTsKKyAgICAgICAgaW50IGlu
ZGV4ID0gMDsKKyAgICAgICAgRUlOQV9MSVNUX0ZPUkVBQ0goZXdrTWVudUl0ZW1zLCBsaXN0SXRl
cmF0b3IsIGRhdGEpCisgICAgICAgICAgICBhcnJheVZhbHVlc1tpbmRleCsrXSA9IEpTT2JqZWN0
TWFrZShjb250ZXh0LCBnZXRNZW51SXRlbUNsYXNzKCksIGRhdGEpOworCisgICAgICAgIGlmIChp
bmRleCkKKyAgICAgICAgICAgIHZhbHVlUmVmID0gSlNPYmplY3RNYWtlQXJyYXkoY29udGV4dCwg
aW5kZXggLSAxLCBhcnJheVZhbHVlcywgMCk7CisgICAgfQorICAgIHJldHVybiB2YWx1ZVJlZjsK
K30KKwogc3RhdGljIEpTVmFsdWVSZWYgbW91c2VEb3duQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQogewogICAgIGludCBidXR0b24gPSAwOwpAQCAtODAzLDYgKzg5OCw3IEBA
IHN0YXRpYyBKU1ZhbHVlUmVmIHNldFRvdWNoTW9kaWZpZXJDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuCiB9CiAKIHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIHN0
YXRpY0Z1bmN0aW9uc1tdID0geworICAgIHsgImNvbnRleHRDbGljayIsIGNvbnRleHRDbGlja0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgeyAibW91c2VTY3JvbGxCeSIsIG1vdXNlU2Nyb2xsQnlDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgIHsgImNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5IiwgY29udGludW91
c01vdXNlU2Nyb2xsQnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgIHsgIm1vdXNlRG93biIsIG1vdXNl
RG93bkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166851</attachid>
            <date>2012-10-03 03:54:24 -0700</date>
            <delta_ts>2012-10-03 06:59:20 -0700</delta_ts>
            <desc>rebased again</desc>
            <filename>contextclick-unittests3.diff</filename>
            <type>text/plain</type>
            <size>28083</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYmE2YWNlLi44MDcxZDc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAt
MDMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSBjb250ZXh0Q2xpY2sgZGVwZW5kZW50IHRlc3RzIHRvIFdlYktpdDIgVGVzdEV4cGVj
dGF0aW9ucyBhbmQKKyAgICAgICAgYWRkIG5ldyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorCiAyMDEyLTEwLTAzICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0Bp
bnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gR2FyZGVuaW5nIGFmdGVyIHIxMzAxODYgYW5kIHIx
MzAyMzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA5MjY2M2VjLi5jMzQ0YTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
Zmwtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMDcsMyArMjA3LDIxIEBAIHdlYmtpdC5vcmcvYi85Njc5
NCBpbnNwZWN0b3IvY29uc29sZS9hbGVydC10b1N0cmluZy1leGNlcHRpb24uaHRtbCBbIEZhaWx1
cmUgXQogIyBGYWlscyBhZnRlciBpdCB3YXMgdW5za2lwcGVkIGluIHIxMjkzNzIuCiB3ZWJraXQu
b3JnL2IvOTc1NDUgaW5zcGVjdG9yL3N0eWxlcy92YXJpYWJsZXMvY3NzLXZhcmlhYmxlcy5odG1s
IFsgRmFpbHVyZSBdCiAKKyMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBhbiBpbXBsZW1lbnRhdGlv
biBmb3IgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGlu
Zy9wYXN0ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFnZS1jcmFzaC5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0xLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTIu
aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcvc2VsZWN0aW9uL2J1
dHRvbi1yaWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRp
dGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
a2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVj
dGlvbi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rp
b24vZW1wdHktY2VsbC1yaWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2Iv
ODY4ODEgZWRpdGluZy9zaGFkb3cvcmlnaHRjbGljay1vbi1tZXRlci1pbi1zaGFkb3ctY3Jhc2gu
aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcvc3BlbGxpbmcvY29u
dGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4
MSBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2staW5wdXQtc2VhcmNoLWNyYXNoLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBmYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRlc2Vs
ZWN0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBmYXN0L2V2ZW50cy9jb250
ZXh0LW9ubW91c2Vkb3duLWV2ZW50Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4
MSBmYXN0L2V2ZW50cy9jb250ZXh0bWVudS1zY3JvbGxlZC1wYWdlLXdpdGgtZnJhbWUuaHRtbCBb
IEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZlbnRzL3JpZ2h0LWNsaWNrLWZv
Y3VzLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBmYXN0L2V2ZW50cy9zZWxl
Y3RzdGFydC1wcmV2ZW50LXNlbGVjdGlvbi1vbi1yaWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvODY4ODEgbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCBbIEZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIG1lZGlhL2NvbnRyb2xzLXJpZ2h0LWNsaWNrLW9u
LXRpbWViYXIuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBjZjYzNTU5Li45ZDE0ODUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTIzOCwyNyArMTIzOCw2IEBAIHdlYmtpdC5vcmcv
Yi84MjE0MCBpbnNwZWN0b3IvZ2VvbG9jYXRpb24tZXJyb3IuaHRtbCBbIEZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzgyMTQwIGluc3BlY3Rvci9nZW9sb2NhdGlvbi1zdWNjZXNzLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi84MjE0MCBpbnNwZWN0b3IvZ2VvbG9jYXRpb24td2F0Y2hQb3Np
dGlvbi5odG1sIFsgRmFpbHVyZSBdCiAKLSMgRUZMJ3MgRXZlbnRTZW5kZXIgZG9lcyBub3QgaW1w
bGVtZW50IGNvbnRleHRDbGljayB5ZXQKLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvY29weS1zdGFuZGFsb25lLWltYWdlLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi84NjA5MSBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTEuaHRtbCBbIEZhaWx1cmUg
XQotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc2VsZWN0aW9uL2J1dHRvbi1yaWdodC1jbGlj
ay5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24v
Y29udGV4dC1tZW51LW9uLXRleHQuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkx
IGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi5odG1sIFsgRmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24vZW1wdHktY2VsbC1y
aWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9z
cGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0
Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1pbnB1dC1zZWFyY2gtY3Jh
c2guaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGZhc3QvZXZlbnRzL2NvbnRl
eHQtb25tb3VzZWRvd24tZXZlbnQuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkx
IGZhc3QvZXZlbnRzL2NvbnRleHRtZW51LXNjcm9sbGVkLXBhZ2Utd2l0aC1mcmFtZS5odG1sIFsg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZmFzdC9ldmVudHMvcmlnaHQtY2xpY2stZm9j
dXMuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGZhc3QvZXZlbnRzL3NlbGVj
dHN0YXJ0LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0K
LXdlYmtpdC5vcmcvYi84NjA5MSBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sIFsgRmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgbWVkaWEvY29udHJvbHMtcmlnaHQtY2xpY2stb24t
dGltZWJhci5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zaGFk
b3cvcmlnaHRjbGljay1vbi1tZXRlci1pbi1zaGFkb3ctY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQot
Ci0jIEVGTCdzIEV2ZW50U2VuZGVyIGNvbnRleHRDbGljaywgbmVlZHMgYmFzZWxpbmVzCi13ZWJr
aXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0yLmh0bWwgWyBNaXNzaW5n
IF0KLXdlYmtpdC5vcmcvYi84NjA5MSBmYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0Lmh0
bWwgWyBNaXNzaW5nIF0KLQogIyBJRVRDIG5hbWVzcGFjZSBmYWlsdXJlcwogd2Via2l0Lm9yZy9i
Lzg2MTQyIGlldGVzdGNlbnRlci9jc3MzL25hbWVzcGFjZXMvc3ludGF4LTAyMS54bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIApAQCAtMTMwOSw2ICsxMjg4LDcgQEAgd2Via2l0Lm9yZy9iLzg2NjMz
IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaGFzc3BlbGxpbmdtYXJrZXIuaHRtbCBbIEZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzg2NjMzIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0
LWh0bWwuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg2NjMzIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctbGluZWJyZWFrLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84NjYz
MyBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi84NjYzMyBlZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1z
dWdnZXN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCiAKICMgRUZMJ3MgTGF5b3V0VGVzdENvbnRyb2xs
ZXIgZG9lcyBub3Qgc3VwcG9ydCBzZXRTdWJwaXhlbFRleHRQb3NpdGlvbmluZygpCiB3ZWJraXQu
b3JnL2IvOTEzNDEgZmFzdC90ZXh0L2Rlc2NlbnQtY2xpcC1pbi1zY2FsZWQtcGFnZS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCkBAIC0xNTAxLDMgKzE0ODEsOSBAQCB3ZWJraXQub3JnL2IvOTc5
OTAgbWF0aG1sL3ByZXNlbnRhdGlvbi9zdWJzdXAueGh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi85ODI0NyBmYXN0L3RleHQvYXRzdWktbXVsdGlwbGUtcmVuZGVyZXJzLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi85ODI0NyBmYXN0L3RleHQvYXRzdWktc3BhY2luZy1mZWF0dXJl
cy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTgyNDcgZmFzdC90ZXh0L3dpZGUtemVy
by13aWR0aC1zcGFjZS5odG1sIFsgRmFpbHVyZSBdCisKKyMgRW50ZXJpbmcgaW50byBmdWxsIHNj
cmVlbiBwbGF5YmFjayBtb2RlIGZhaWxzIHdoZW4gdHJpZ2dlcmVkIGJ5IGNvbnRleHQgbWVudQor
QnVnKEVGTCkgbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCBbIEZhaWx1cmUgXQorCisj
IEVTQyBrZXkgZG9lcyBub3QgY2FuY2VsIGNvbnRleHQgbWVudSBpbiBFRkwgcG9ydAorQnVnKEVG
TCkgZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0xLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9lZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2VkaXRpbmcvc2VsZWN0aW9u
LzUzNTQ0NTUtMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYzkzNTlhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9l
ZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAK
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICg4LDgpIHNpemUgNjEyeDE0MgorICBS
ZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDYxMngxNDIgW2JvcmRlcjogKDFweCBzb2xp
ZCAjMDAwMDAwKV0KKyAgICBSZW5kZXJCbG9jayB7SDF9IGF0ICg2LDYpIHNpemUgNjAweDM3Cisg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NTF4MzYKKyAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNDUxOiAiV29yZCBzZWxlY3Rpb24gb24gcmlnaHQgY2xpY2sg
dGVzdCIKKyAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoNiw2NCkgc2l6ZSA2MDB4NzIK
KyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU5N3gzNworICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1OTc6ICJUaGlzIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0
IHJpZ2h0IGNsaWNraW5nIG5vbi1lZGl0YWJsZSBjb250ZW50IG9ubHkgY3JlYXRlcyBhIHdvcmQg
c2VsZWN0aW9uIGZvciIKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDEwMzogImNs
aWNrcyBvdmVyIHRleHQuICIKKyAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6
ZSAxOHgxOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwMywxOCkgc2l6ZSAxOHgx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMDMsMTgpIHdpZHRoIDE4OiAiVG8iCisgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEyMSwxOCkgc2l6ZSA1Nzd4NTUKKyAgICAgICAgdGV4dCBy
dW4gYXQgKDEyMSwxOCkgd2lkdGggNDExOiAiIHJ1biBtYW51YWxseSwgcmlnaHQgY2xpY2sgb24g
dGV4dCwgYW5kIGEgd29yZCBzaG91bGQgYmUgc2VsZWN0ZWQuICIKKyAgICAgICAgdGV4dCBydW4g
YXQgKDUzMiwxOCkgd2lkdGggMzU6ICJSaWdodCIKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYp
IHdpZHRoIDU3NzogImNsaWNrIG9uIHRoZSBlbXB0eSBzcGFjZSBvdXRzaWRlIGFuZCB0byB0aGUg
cmlnaHQgb2YgdGhlIGJsYWNrIGJvcmRlciwgdGhlIHNlbGVjdGlvbiBzaG91bGQgYmUiCisgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDU0KSB3aWR0aCA1OTogInJlbW92ZWQuIgorICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitjYXJldDogcG9zaXRpb24gMCBvZiBjaGls
ZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7SDF9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRl
c2VsZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5l
YWJkN2I2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2Zhc3Qv
ZXZlbnRzL2NvbnRleHQtbm8tZGVzZWxlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAK
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
ODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDc4NHg1ODQKKyAgICAgIFJlbmRlclRleHRDb250cm9sIHtJTlBVVH0gYXQgKDIsMikgc2l6
ZSAxOTN4MjggW2JnY29sb3I9I0ZGRkZGRl0KKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgw
CitsYXllciBhdCAoMTQsMTYpIHNpemUgMTg2eDE4IHNjcm9sbEhlaWdodCAxOQorICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoNCw2KSBzaXplIDE4NngxOAorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDEyNHgxOQorICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTI0OiAi
c29tZSBzYW1wbGUgdGV4dCIKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gNSBvZiBjaGlsZCAw
IHsjdGV4dH0gb2YgY2hpbGQgMCB7RElWfSBvZiB7I3NoYWRvdy1yb290fSBvZiBjaGlsZCAxIHtJ
TlBVVH0gb2YgYm9keQorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiAxNSBvZiBjaGlsZCAwIHsj
dGV4dH0gb2YgY2hpbGQgMCB7RElWfSBvZiB7I3NoYWRvdy1yb290fSBvZiBjaGlsZCAxIHtJTlBV
VH0gb2YgYm9keQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBmYzc3ZWNjLi5hODU3ZmE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDEyLTEwLTAzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1
bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF1bRFJUXSBFdmVudFNlbmRlciByZXF1aXJl
cyBjb250ZXh0Q2xpY2sgaW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgdW5pdCB0ZXN0IGZpbGUsIG5lZWRlZCBkdWUg
dG8gZXdrIEFQSSBjaGFuZ2VzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisKIDIw
MTItMTAtMDIgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF0gQWRkIGZpbGUgRVdLVGVzdEVudmlyb25tZW50LmNwcCB0byBidWlsZCBzeXN0ZW0u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA3YTU0NzEzLi4zZTA2YTJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm1FZmwuY21ha2UKQEAgLTM1Miw2ICszNTIsNyBAQCBUQVJHRVRfTElOS19MSUJSQVJJRVMo
ZXdrVGVzdFV0aWxzICR7RVdLVW5pdFRlc3RzX0xJQlJBUklFU30pCiBTRVQoV0VCS0lUX0VGTF9U
RVNUX0RJUiAiJHtXRUJLSVRfRElSfS9lZmwvdGVzdHMvIikKIAogU0VUKEVXS1VuaXRUZXN0c19C
SU5BUklFUworICAgIHRlc3RfZXdrX2NvbnRleHRtZW51CiAgICAgdGVzdF9ld2tfdmlldwogKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKaW5kZXggODlkNmYyMS4uOGU1ZWUwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTAzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8
bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF1bRFJUXSBFdmVudFNlbmRlciBy
ZXF1aXJlcyBjb250ZXh0Q2xpY2sgaW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHBvaW50ZXIgdG8gcGFyZW50IG1lbnUg
aW4gRXdrX0NvbnRleHRfTWVudV9JdGVtIGFuZCBhIGdldHRlcgorICAgICAgICBmdW5jdGlvbiB0
byBhbGxvdyBzZWxlY3RpbmcgYSBjb250ZXh0IG1lbnUgaXRlbSB3aXRob3V0IGhhdmluZworICAg
ICAgICBwYXJlbnQgbWVudSBwb2ludGVyIGluIER1bXBSZW5kZXJUcmVlIEV2ZW50U2VuZGVyLgor
ICAgICAgICBUaHJlZSB1bml0IHRlc3RzIGFkZGVkIGR1ZSBld2sgQVBJIGNoYW5nZXMuCisKKyAg
ICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51LmNwcDoKKyAgICAgICAgKF9Fd2tfQ29udGV4dF9N
ZW51X0l0ZW0pOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyk6CisgICAgICAg
IChld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldCk6CisgICAgICAgIChld2tfY29udGV4
dF9tZW51X2l0ZW1fYXBwZW5kKToKKyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51Lmg6Cisg
ICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2NvbnRleHRfbWVu
dV9nZXQpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOgorICAgICAgICAqIHRlc3RzL3Rlc3Rf
ZXdrX2NvbnRleHRtZW51LmNwcDogQWRkZWQuCisgICAgICAgIChURVNUX0YpOgorICAgICAgICAq
IHRlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwOgorICAgICAgICAoVEVTVF9GKToKKwogMjAxMi0xMC0w
MiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS10gQWRkIEFQSSB0byBnZXQgdGhlIHdlYiB2aWV3IHRoYXQgaW5pdGlhdGVkIGEgY3VzdG9t
IFVSSSByZXF1ZXN0IHRvIFdlYktpdDIgR1RLKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nv
bnRleHRtZW51LmNwcAppbmRleCBlNzkyYzZkLi40ZWEyYzdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2NvbnRleHRtZW51LmNwcApAQCAtNTMsNiArNTMsNyBAQCBzdHJ1Y3QgX0V3a19D
b250ZXh0X01lbnVfSXRlbSB7CiAKICAgICBjb25zdCBjaGFyKiB0aXRsZTsgLyoqPCBjb250YWlu
cyB0aGUgdGl0bGUgb2YgdGhlIGl0ZW0gKi8KICAgICBFd2tfQ29udGV4dF9NZW51KiBzdWJtZW51
OyAvKio8IGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHRoZSBzdWJtZW51IG9mIHRoZSBpdGVtICov
CisgICAgRXdrX0NvbnRleHRfTWVudSogcGFyZW50bWVudTsgLyoqPCBjb250YWlucyB0aGUgcG9p
bnRlciB0byBwYXJlbnQgbWVudSBvZiB0aGUgaXRlbSAqLwogCiAgICAgYm9vbCBjaGVja2VkIDog
MTsKICAgICBib29sIGVuYWJsZWQgOiAxOwpAQCAtOTgsMTUgKzk5LDE1IEBAIGNvbnN0IEVpbmFf
TGlzdCogZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KGNvbnN0IEV3a19Db250ZXh0X01l
bnUqIG1lbnUpCiAgICAgcmV0dXJuIG1lbnUtPml0ZW1zOwogfQogCi1Fd2tfQ29udGV4dF9NZW51
X0l0ZW0qIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5
cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24sIEV3a19Db250ZXh0X01lbnUqIHN1Ym1l
bnUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgY2hhciogdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxlZCkKK0V3
a19Db250ZXh0X01lbnVfSXRlbSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4
dF9NZW51X0l0ZW1fVHlwZSB0eXBlLCBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24sIEV3
a19Db250ZXh0X01lbnUqIHN1Ym1lbnUsCisgICAgRXdrX0NvbnRleHRfTWVudSogcGFyZW50bWVu
dSwgY29uc3QgY2hhciogdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxl
ZCkKIHsKICAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSBuZXcgRXdrX0NvbnRleHRf
TWVudV9JdGVtOwogICAgIGl0ZW0tPnR5cGUgPSB0eXBlOwogICAgIGl0ZW0tPmFjdGlvbiA9IGFj
dGlvbjsKICAgICBpdGVtLT50aXRsZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKHRpdGxlKTsKICAg
ICBpdGVtLT5zdWJtZW51ID0gc3VibWVudTsKKyAgICBpdGVtLT5wYXJlbnRtZW51ID0gcGFyZW50
bWVudTsKICAgICBpdGVtLT5jaGVja2VkID0gY2hlY2tlZDsKICAgICBpdGVtLT5lbmFibGVkID0g
ZW5hYmxlZDsKIApAQCAtMjAzLDYgKzIwNCwxMSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2VuYWJsZWRfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSwgRWluYV9Cbwog
ICAgIHJldHVybiB0cnVlOwogfQogCitFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51
X2l0ZW1fcGFyZW50X2dldChjb25zdCBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0pCit7Cisg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGl0ZW0sIDApOworICAgIHJldHVybiBp
dGVtLT5wYXJlbnRtZW51OworfQogCiAvKiBpbnRlcm5hbCBtZXRob2RzICoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTI3Niw5ICsyODIs
NyBAQCB2b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSog
bWVudSwgY29uc3QgV2ViQ29yZTo6Q29udGV4dAogICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9U
eXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZT4oY29yZS50
eXBlKCkpOwogICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiA9IHN0YXRpY19jYXN0
PEV3a19Db250ZXh0X01lbnVfQWN0aW9uPihjb3JlLmFjdGlvbigpKTsKIAotICAgIEV3a19Db250
ZXh0X01lbnVfSXRlbSogbWVudV9pdGVtID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlLCBhY3Rpb24sIDAs
IGNvcmUudGl0bGUoKS51dGY4KCkuZGF0YSgpLCBjb3JlLmNoZWNrZWQoKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlLmVuYWJsZWQoKSk7CisgICAgRXdr
X0NvbnRleHRfTWVudV9JdGVtKiBtZW51X2l0ZW0gPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3
KHR5cGUsIGFjdGlvbiwgMCwgbWVudSwgY29yZS50aXRsZSgpLnV0ZjgoKS5kYXRhKCksIGNvcmUu
Y2hlY2tlZCgpLCBjb3JlLmVuYWJsZWQoKSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk4obWVudV9pdGVtKTsKIAogICAgIG1lbnUtPml0ZW1zID0gZWluYV9saXN0X2FwcGVuZChtZW51
LT5pdGVtcywgbWVudV9pdGVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfY29udGV4dG1lbnUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUu
aAppbmRleCBhZjZkNGE4Li5lOTE4NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2NvbnRleHRtZW51LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250
ZXh0bWVudS5oCkBAIC0yMDAsNyArMjAwLDcgQEAgRUFQSSBjb25zdCBFaW5hX0xpc3QgICAgICAg
ICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KGNvbnN0IEV3a19Db250ZXgKICAq
CiAgKiBAbm90ZSBUaGUgcmV0dXJuIHZhbHVlIEBiIHNob3VsZCBAYiBiZSBmcmVlZCBhZnRlciB1
c2UuCiAgKi8KLUVBUEkgRXdrX0NvbnRleHRfTWVudV9JdGVtICAgICAgKmV3a19jb250ZXh0X21l
bnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSwgRXdrX0NvbnRleHRf
TWVudV9BY3Rpb24gYWN0aW9uLCBFd2tfQ29udGV4dF9NZW51ICpzdWJtZW51LCBjb25zdCBjaGFy
ICp0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKTsKK0VBUEkgRXdr
X0NvbnRleHRfTWVudV9JdGVtICAgICAgKmV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0Nv
bnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSwgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9u
LCBFd2tfQ29udGV4dF9NZW51ICpzdWJtZW51LCBFd2tfQ29udGV4dF9NZW51ICpwYXJlbnRtZW51
LCBjb25zdCBjaGFyICp0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVk
KTsKIAogLyoqCiAgKiBEZXN0cm95cyB0aGUgaXRlbSBvZiB0aGUgY29udGV4dCBtZW51IG9iamVj
dC4KQEAgLTMyMiw2ICszMjIsMTQgQEAgRUFQSSBFaW5hX0Jvb2wgICAgICAgICAgICAgICAgICAg
ZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19Db24KICAqLwogRUFQ
SSBFaW5hX0Jvb2wgICAgICAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJs
ZWRfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSAqbywgRWluYV9Cb29sIGVuYWJsZWQpOwogCisv
KioKKyAqIEdldHMgdGhlIHBhcmVudCBtZW51IGZvciBjb250ZXh0IG1lbnUgaXRlbS4KKyAqCisg
KiBAcGFyYW0gbyB0aGUgY29udGV4dCBtZW51IGl0ZW0gb2JqZWN0CisgKiBAcmV0dXJuIGEgY29u
dGV4dCBtZW51IG9iamVjdCBvbiBzdWNjZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVyZQorICovCitF
QVBJIEV3a19Db250ZXh0X01lbnUgICAgICpld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dl
dChjb25zdCBFd2tfQ29udGV4dF9NZW51X0l0ZW0gKm8pOworCiAjaWZkZWYgX19jcGx1c3BsdXMK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggZWYzNTY0ZC4uZmU2
OWI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC00NjQxLDYgKzQ2NDEsMTMg
QEAgdm9pZCBld2tfdmlld19mdWxsc2NyZWVuX2V4aXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcpCiB9CiAjZW5kaWYKIAorRXdrX0NvbnRleHRfTWVudSogZXdrX3ZpZXdfY29udGV4dF9tZW51
X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRf
T1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisgICAgcmV0dXJuIHByaXYtPmNvbnRleHRN
ZW51OworfQorCiBuYW1lc3BhY2UgRVdLUHJpdmF0ZSB7CiAKIFdlYkNvcmU6OlBhZ2UqIGNvcmVQ
YWdlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApp
bmRleCA3YThiNWQ3Li44OTY5MzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtMTEz
LDYgKzExMyw3IEBACiAjaWZuZGVmIGV3a192aWV3X2gKICNkZWZpbmUgZXdrX3ZpZXdfaAogCisj
aW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjaW5jbHVkZSAiZXdrX2ZpbGVfY2hvb3Nlci5o
IgogI2luY2x1ZGUgImV3a19mcmFtZS5oIgogI2luY2x1ZGUgImV3a19oaXN0b3J5LmgiCkBAIC0y
Nzc0LDYgKzI3NzUsMTQgQEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVf
ZnVsbHNjcmVlbl9zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbAogICovCiBFQVBJIEVpbmFf
Qm9vbCBld2tfdmlld19zZXR0aW5nX2VuYWJsZV9mdWxsc2NyZWVuX2dldChjb25zdCBFdmFzX09i
amVjdCAqbyk7CiAKKy8qKgorICogR2V0cyB0aGUgY29udGV4dCBtZW51IG9iamVjdC4KKyAqIEBw
YXJhbSBvIFRoZSB2aWV3IHRoYXQgY29udGFpbnMgY29udGV4dCBtZW51LgorICoKKyAqIEByZXR1
cm4gY29udGV4dCBtZW51IHN0cnVjdHVyZSBvbiBzdWNjZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVy
ZQorICovCitFQVBJIEV3a19Db250ZXh0X01lbnUqIGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQo
Y29uc3QgRXZhc19PYmplY3QqIG8pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tfY29udGV4dG1lbnUu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tfY29udGV4dG1lbnUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxYjU5MjEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a19jb250ZXh0bWVudS5jcHAKQEAg
LTAsMCArMSwxMjMgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyLjEgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUKKyAgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwKKyAgICBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9u
LCBNQSAwMjExMS0xMzA3IFVTQQorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVk
ZSAiVW5pdFRlc3RVdGlscy9FV0tUZXN0QmFzZS5oIgorI2luY2x1ZGUgIlVuaXRUZXN0VXRpbHMv
RVdLVGVzdENvbmZpZy5oIgorI2luY2x1ZGUgPEVXZWJLaXQuaD4KKyNpbmNsdWRlIDxFY29yZS5o
PgorCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBFV0tVbml0VGVzdHM7CisKKy8qKgorICogQGJyaWVmIENoZWNr
aW5nIHdoZXRoZXIgZnVuY3Rpb24gY3JlYXRlcyBwcm9wZXIgbWVudSBpdGVtLgorICoKKyAqIFRo
aXMgdGVzdCBjcmVhdGVzIGEgbWVudSBpdGVtIGFuZCBjaGVja3MgaWYgYWxsIG1lbnUgaXRlbSdz
IGF0dHJpYnV0ZXMgYXJlCisgKiB0aGUgc2FtZSBhcyBwYXNzZWQgdG8gdGVzdGVkIGZ1bmN0aW9u
LgorICovCitURVNUX0YoRVdLVGVzdEJhc2UsIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcpCit7
CisgICAgbG9hZFVybCgpOworCisgICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0
KHdlYlZpZXcoKSk7CisgICAgQVNTRVJUX1RSVUUoZXZhcyk7CisKKyAgICBFdmFzX0V2ZW50X01v
dXNlX0Rvd24gbW91c2VEb3duOworICAgIG1vdXNlRG93bi5idXR0b24gPSAzOworICAgIG1vdXNl
RG93bi5vdXRwdXQueCA9IDA7CisgICAgbW91c2VEb3duLm91dHB1dC55ID0gMDsKKyAgICBtb3Vz
ZURvd24uY2FudmFzLnggPSAwOworICAgIG1vdXNlRG93bi5jYW52YXMueSA9IDA7CisgICAgbW91
c2VEb3duLmRhdGEgPSAwOworICAgIG1vdXNlRG93bi5tb2RpZmllcnMgPSBjb25zdF9jYXN0PEV2
YXNfTW9kaWZpZXIqPihldmFzX2tleV9tb2RpZmllcl9nZXQoZXZhcykpOworICAgIG1vdXNlRG93
bi5sb2NrcyA9IGNvbnN0X2Nhc3Q8RXZhc19Mb2NrKj4oZXZhc19rZXlfbG9ja19nZXQoZXZhcykp
OworICAgIG1vdXNlRG93bi5mbGFncyA9IEVWQVNfQlVUVE9OX05PTkU7CisgICAgbW91c2VEb3du
LnRpbWVzdGFtcCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKKyAgICBtb3VzZURvd24uZXZlbnRf
ZmxhZ3MgPSBFVkFTX0VWRU5UX0ZMQUdfTk9ORTsKKyAgICBtb3VzZURvd24uZGV2ID0gMDsKKwor
ICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KHdlYlZp
ZXcoKSwgJm1vdXNlRG93bikpOworCisgICAgRXdrX0NvbnRleHRfTWVudSogY29udGV4dE1lbnUg
PSBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KHdlYlZpZXcoKSk7CisKKyAgICBBU1NFUlRfVFJV
RShjb250ZXh0TWVudSk7CisKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSBpdGVtVHlw
ZSA9IEVXS19BQ1RJT05fVFlQRTsKKyAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBpdGVtQWN0
aW9uID0gRVdLX0NPTlRFWFRfTUVOVV9JVEVNX0NVU1RPTV9UQUdfTk9fQUNUSU9OOworICAgIGNv
bnN0IGNoYXIqIGl0ZW1UaXRsZSA9ICJUZXN0IEl0ZW0iOworICAgIEVpbmFfQm9vbCBpdGVtQ2hl
Y2tlZCA9IEVJTkFfRkFMU0U7CisgICAgRWluYV9Cb29sIGl0ZW1FbmFibGVkID0gRUlOQV9GQUxT
RTsKKworICAgIEV3a19Db250ZXh0X01lbnVfSXRlbSogY29udGV4dE1lbnVJdGVtID0gZXdrX2Nv
bnRleHRfbWVudV9pdGVtX25ldyhpdGVtVHlwZSwgaXRlbUFjdGlvbiwgMCwgY29udGV4dE1lbnUs
IGl0ZW1UaXRsZSwgaXRlbUNoZWNrZWQsIGl0ZW1FbmFibGVkKTsKKworICAgIEFTU0VSVF9UUlVF
KGNvbnRleHRNZW51SXRlbSk7CisKKyAgICBFWFBFQ1RfRVEoaXRlbVR5cGUsIGV3a19jb250ZXh0
X21lbnVfaXRlbV90eXBlX2dldChjb250ZXh0TWVudUl0ZW0pKTsKKyAgICBFWFBFQ1RfRVEoaXRl
bUFjdGlvbiwgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9nZXQoY29udGV4dE1lbnVJdGVt
KSk7CisgICAgRVhQRUNUX0VRKGNvbnRleHRNZW51LCBld2tfY29udGV4dF9tZW51X2l0ZW1fcGFy
ZW50X2dldChjb250ZXh0TWVudUl0ZW0pKTsKKyAgICBFWFBFQ1RfU1RSRVEoaXRlbVRpdGxlLCBl
d2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfZ2V0KGNvbnRleHRNZW51SXRlbSkpOworICAgIEVY
UEVDVF9FUShpdGVtQ2hlY2tlZCwgZXdrX2NvbnRleHRfbWVudV9pdGVtX2NoZWNrZWRfZ2V0KGNv
bnRleHRNZW51SXRlbSkpOworICAgIEVYUEVDVF9FUShpdGVtRW5hYmxlZCwgZXdrX2NvbnRleHRf
bWVudV9pdGVtX2VuYWJsZWRfZ2V0KGNvbnRleHRNZW51SXRlbSkpOworfQorCisvKioKKyAqIEBi
cmllZiBDaGVja2luZyB3aGV0aGVyIGZ1bmN0aW9uIHJldHVybnMgcHJvcGVyIHBhcmVudCBtZW51
LgorICoKKyAqIFRoaXMgdGVzdCBjcmVhdGVzIGEgY29udGV4dCBtZW51cywgYW5kIGNoZWNrcyBp
ZiBjcmVhdGVkIGNvbnRleHQgbWVudSdzCisgKiBwYXJlbnQgaXMgdGhlIHNhbWUgZm9yIGVhY2gg
b2YgbWVudSBpdGVtcy4KKyAqLworVEVTVF9GKEVXS1Rlc3RCYXNlLCBld2tfY29udGV4dF9tZW51
X2l0ZW1fcGFyZW50X2dldCkKK3sKKyAgICBsb2FkVXJsKCk7CisKKyAgICBFdmFzKiBldmFzID0g
ZXZhc19vYmplY3RfZXZhc19nZXQod2ViVmlldygpKTsKKyAgICBBU1NFUlRfVFJVRShldmFzKTsK
KworICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biBtb3VzZURvd247CisgICAgbW91c2VEb3duLmJ1
dHRvbiA9IDM7CisgICAgbW91c2VEb3duLm91dHB1dC54ID0gMDsKKyAgICBtb3VzZURvd24ub3V0
cHV0LnkgPSAwOworICAgIG1vdXNlRG93bi5jYW52YXMueCA9IDA7CisgICAgbW91c2VEb3duLmNh
bnZhcy55ID0gMDsKKyAgICBtb3VzZURvd24uZGF0YSA9IDA7CisgICAgbW91c2VEb3duLm1vZGlm
aWVycyA9IGNvbnN0X2Nhc3Q8RXZhc19Nb2RpZmllcio+KGV2YXNfa2V5X21vZGlmaWVyX2dldChl
dmFzKSk7CisgICAgbW91c2VEb3duLmxvY2tzID0gY29uc3RfY2FzdDxFdmFzX0xvY2sqPihldmFz
X2tleV9sb2NrX2dldChldmFzKSk7CisgICAgbW91c2VEb3duLmZsYWdzID0gRVZBU19CVVRUT05f
Tk9ORTsKKyAgICBtb3VzZURvd24udGltZXN0YW1wID0gZWNvcmVfbG9vcF90aW1lX2dldCgpOwor
ICAgIG1vdXNlRG93bi5ldmVudF9mbGFncyA9IEVWQVNfRVZFTlRfRkxBR19OT05FOworICAgIG1v
dXNlRG93bi5kZXYgPSAwOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdfY29udGV4dF9tZW51
X2ZvcndhcmRfZXZlbnQod2ViVmlldygpLCAmbW91c2VEb3duKSk7CisKKyAgICBFd2tfQ29udGV4
dF9NZW51KiBjb250ZXh0TWVudSA9IGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQod2ViVmlldygp
KTsKKworICAgIEFTU0VSVF9UUlVFKGNvbnRleHRNZW51KTsKKworICAgIGNvbnN0IEVpbmFfTGlz
dCogY29udGV4dE1lbnVJdGVtcyA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldChjb250
ZXh0TWVudSk7CisKKyAgICBBU1NFUlRfVFJVRShjb250ZXh0TWVudUl0ZW1zKTsKKworICAgIGNv
bnN0IEVpbmFfTGlzdCogbGlzdEl0ZXJhdG9yOworICAgIHZvaWQqIGRhdGE7CisgICAgRUlOQV9M
SVNUX0ZPUkVBQ0goY29udGV4dE1lbnVJdGVtcywgbGlzdEl0ZXJhdG9yLCBkYXRhKQorICAgICAg
ICBFWFBFQ1RfRVEoY29udGV4dE1lbnUsIGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0
KHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbSo+KGRhdGEpKSk7Cit9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a192aWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCmluZGV4IDk3NTNjNDYuLjg1MjRhYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCkBAIC03MCwzICs3
MCwzNSBAQCBURVNUX0YoRVdLVGVzdEJhc2UsIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2Z1bGxz
Y3JlZW4pCiAgICAgQVNTRVJUX0ZBTFNFKGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2Z1bGxzY3Jl
ZW5fZ2V0KHdlYlZpZXcoKSkpOwogI2VuZGlmCiB9CisKKy8qKgorICogQGJyaWVmIENoZWNraW5n
IHdoZXRoZXIgZnVuY3Rpb24gcmV0dXJucyBwcm9wZXIgY29udGV4dCBtZW51IHN0cnVjdHVyZS4K
KyAqCisgKiBUaGlzIHRlc3QgY3JlYXRlcyBhIGNvbnRleHQgbWVudSBhbmQgY2hlY2tzIGlmIGNv
bnRleHQgbWVudSBzdHJ1Y3R1cmUKKyAqIGlzIG5vdCBOVUxMOworICovCitURVNUX0YoRVdLVGVz
dEJhc2UsIGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQpCit7CisgICAgbG9hZFVybCgpOworCisg
ICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KHdlYlZpZXcoKSk7CisgICAgQVNT
RVJUX1RSVUUoZXZhcyk7CisKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gbW91c2VEb3duOwor
ICAgIG1vdXNlRG93bi5idXR0b24gPSAzOworICAgIG1vdXNlRG93bi5vdXRwdXQueCA9IDA7Cisg
ICAgbW91c2VEb3duLm91dHB1dC55ID0gMDsKKyAgICBtb3VzZURvd24uY2FudmFzLnggPSAwOwor
ICAgIG1vdXNlRG93bi5jYW52YXMueSA9IDA7CisgICAgbW91c2VEb3duLmRhdGEgPSAwOworICAg
IG1vdXNlRG93bi5tb2RpZmllcnMgPSBjb25zdF9jYXN0PEV2YXNfTW9kaWZpZXIqPihldmFzX2tl
eV9tb2RpZmllcl9nZXQoZXZhcykpOworICAgIG1vdXNlRG93bi5sb2NrcyA9IGNvbnN0X2Nhc3Q8
RXZhc19Mb2NrKj4oZXZhc19rZXlfbG9ja19nZXQoZXZhcykpOworICAgIG1vdXNlRG93bi5mbGFn
cyA9IEVWQVNfQlVUVE9OX05PTkU7CisgICAgbW91c2VEb3duLnRpbWVzdGFtcCA9IGVjb3JlX2xv
b3BfdGltZV9nZXQoKTsKKyAgICBtb3VzZURvd24uZXZlbnRfZmxhZ3MgPSBFVkFTX0VWRU5UX0ZM
QUdfTk9ORTsKKyAgICBtb3VzZURvd24uZGV2ID0gMDsKKworICAgIEFTU0VSVF9UUlVFKGV3a192
aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KHdlYlZpZXcoKSwgJm1vdXNlRG93bikpOwor
CisgICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldCh3ZWJWaWV3KCkpKTsK
K30KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAw
NWZiZGYxLi42ODBiYTJiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAtMDMgIE1pY2hhxYIgUGFrdcWCYSB2
ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdIEV2
ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDkxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbnRleHRDbGljayBm
b3IgRHVtcFJlbmRlclRyZWVFdmVudFNlbmRlciBiYXNpbmcgb24gV2ViS2l0IEdUSworICAgICAg
ICBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNl
bmRlci5jcHA6CisgICAgICAgIChnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2spOgorICAgICAgICAo
c2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrKToKKyAgICAgICAgKG1lbnVJdGVtQ2xpY2tDYWxsYmFj
ayk6CisgICAgICAgIChjb250ZXh0Q2xpY2tDYWxsYmFjayk6CisKIDIwMTItMTAtMDMgIFJhcGhh
ZWwgS3VibyBkYSBDb3N0YSAgPHJhcGhhZWwua3Viby5kYS5jb3N0YUBpbnRlbC5jb20+CiAKICAg
ICAgICAgW1F0XVtEUlRdIEFkZCBzdXBwb3J0IGZvciBvdmVycmlkaW5nIHRoZSAiV2ViS2l0RGlz
cGxheUltYWdlc0tleSIgcHJlZmVyZW5jZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRT
ZW5kZXIuY3BwCmluZGV4IDc4ZDJkYmMuLmU2MWY2NWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL0V2ZW50U2VuZGVyLmNwcApAQCAtMjY5LDYgKzI2OSwxMDEgQEAgc3RhdGljIHVuc2lnbmVk
IG1vZGlmaWVyc0Zyb21KU1ZhbHVlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCBKU1ZhbHVl
UmVmIG1vZGkKICAgICByZXR1cm4gbW9kaWZpZXI7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGdl
dE1lbnVJdGVtVGl0bGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
b2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
K3sKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSBzdGF0aWNfY2FzdDxFd2tfQ29u
dGV4dF9NZW51X0l0ZW0qPihKU09iamVjdEdldFByaXZhdGUob2JqZWN0KSk7CisgICAgQ1N0cmlu
ZyBsYWJlbDsKKyAgICBpZiAoZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfZ2V0KGl0ZW0pID09
IEVXS19TRVBBUkFUT1JfVFlQRSkKKyAgICAgICAgbGFiZWwgPSAiPHNlcGFyYXRvcj4iOworICAg
IGVsc2UKKyAgICAgICAgbGFiZWwgPSBld2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfZ2V0KGl0
ZW0pOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKGxhYmVsLmRhdGEoKSkpOworfQorCitzdGF0aWMgYm9vbCBzZXRN
ZW51SXRlbVRpdGxlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIG9i
amVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBKU1ZhbHVl
UmVmIG1lbnVJdGVtQ2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7
CisgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRl
eHRfTWVudV9JdGVtKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBld2tf
Y29udGV4dF9tZW51X2l0ZW1fc2VsZWN0KGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0
KGl0ZW0pLCBpdGVtKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
Cit9CisKK3N0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIHN0YXRpY01lbnVJdGVtRnVuY3Rpb25zW10g
PSB7CisgICAgeyAiY2xpY2siLCBtZW51SXRlbUNsaWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICB7
IDAsIDAsIDAgfQorfTsKKworc3RhdGljIEpTU3RhdGljVmFsdWUgc3RhdGljTWVudUl0ZW1WYWx1
ZXNbXSA9IHsKKyAgICB7ICJ0aXRsZSIsIGdldE1lbnVJdGVtVGl0bGVDYWxsYmFjaywgc2V0TWVu
dUl0ZW1UaXRsZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUgfSwKKyAgICB7IDAs
IDAsIDAsIDAgfQorfTsKKworc3RhdGljIEpTQ2xhc3NSZWYgZ2V0TWVudUl0ZW1DbGFzcygpCit7
CisgICAgc3RhdGljIEpTQ2xhc3NSZWYgbWVudUl0ZW1DbGFzcyA9IDA7CisKKyAgICBpZiAoIW1l
bnVJdGVtQ2xhc3MpIHsKKyAgICAgICAgSlNDbGFzc0RlZmluaXRpb24gY2xhc3NEZWZpbml0aW9u
ID0geworICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAgICAgICAgIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgICAgICBjbGFzc0RlZmluaXRpb24uc3RhdGlj
RnVuY3Rpb25zID0gc3RhdGljTWVudUl0ZW1GdW5jdGlvbnM7CisgICAgICAgIGNsYXNzRGVmaW5p
dGlvbi5zdGF0aWNWYWx1ZXMgPSBzdGF0aWNNZW51SXRlbVZhbHVlczsKKworICAgICAgICBtZW51
SXRlbUNsYXNzID0gSlNDbGFzc0NyZWF0ZSgmY2xhc3NEZWZpbml0aW9uKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gbWVudUl0ZW1DbGFzczsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgY29udGV4dENs
aWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogICAgZXhjZXB0aW9uKQoreworICAgIEV2YXNf
T2JqZWN0KiB2aWV3ID0gZXdrX2ZyYW1lX3ZpZXdfZ2V0KGJyb3dzZXItPm1haW5GcmFtZSgpKTsK
KyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKKworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldCh2aWV3KTsKKyAg
ICBpZiAoIWV2YXMpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKKworICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biBtb3VzZURvd247CisgICAgbW91c2VEb3du
LmJ1dHRvbiA9IDM7CisgICAgbW91c2VEb3duLm91dHB1dC54ID0gZ0xhc3RNb3VzZVBvc2l0aW9u
WDsKKyAgICBtb3VzZURvd24ub3V0cHV0LnkgPSBnTGFzdE1vdXNlUG9zaXRpb25ZOworICAgIG1v
dXNlRG93bi5jYW52YXMueCA9IGdMYXN0TW91c2VQb3NpdGlvblg7CisgICAgbW91c2VEb3duLmNh
bnZhcy55ID0gZ0xhc3RNb3VzZVBvc2l0aW9uWTsKKyAgICBtb3VzZURvd24uZGF0YSA9IDA7Cisg
ICAgbW91c2VEb3duLm1vZGlmaWVycyA9IGNvbnN0X2Nhc3Q8RXZhc19Nb2RpZmllcio+KGV2YXNf
a2V5X21vZGlmaWVyX2dldChldmFzKSk7CisgICAgbW91c2VEb3duLmxvY2tzID0gY29uc3RfY2Fz
dDxFdmFzX0xvY2sqPihldmFzX2tleV9sb2NrX2dldChldmFzKSk7CisgICAgbW91c2VEb3duLmZs
YWdzID0gRVZBU19CVVRUT05fTk9ORTsKKyAgICBtb3VzZURvd24udGltZXN0YW1wID0gZWNvcmVf
bG9vcF90aW1lX2dldCgpOworICAgIG1vdXNlRG93bi5ldmVudF9mbGFncyA9IEVWQVNfRVZFTlRf
RkxBR19OT05FOworICAgIG1vdXNlRG93bi5kZXYgPSAwOworCisgICAgZXdrX3ZpZXdfY29udGV4
dF9tZW51X2ZvcndhcmRfZXZlbnQodmlldywgJm1vdXNlRG93bik7CisgICAgRXdrX0NvbnRleHRf
TWVudSogZXdrTWVudSA9IGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQodmlldyk7CisKKyAgICBK
U1ZhbHVlUmVmIHZhbHVlUmVmID0gSlNPYmplY3RNYWtlQXJyYXkoY29udGV4dCwgMCwgMCwgMCk7
CisgICAgaWYgKGV3a01lbnUpIHsKKyAgICAgICAgY29uc3QgRWluYV9MaXN0KiBld2tNZW51SXRl
bXMgPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoZXdrTWVudSk7CisgICAgICAgIEpT
VmFsdWVSZWYgYXJyYXlWYWx1ZXNbZWluYV9saXN0X2NvdW50KGV3a01lbnVJdGVtcyldOworCisg
ICAgICAgIGNvbnN0IEVpbmFfTGlzdCogbGlzdEl0ZXJhdG9yOworICAgICAgICB2b2lkKiBkYXRh
OworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICBFSU5BX0xJU1RfRk9SRUFDSChld2tN
ZW51SXRlbXMsIGxpc3RJdGVyYXRvciwgZGF0YSkKKyAgICAgICAgICAgIGFycmF5VmFsdWVzW2lu
ZGV4KytdID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIGdldE1lbnVJdGVtQ2xhc3MoKSwgZGF0YSk7
CisKKyAgICAgICAgaWYgKGluZGV4KQorICAgICAgICAgICAgdmFsdWVSZWYgPSBKU09iamVjdE1h
a2VBcnJheShjb250ZXh0LCBpbmRleCAtIDEsIGFycmF5VmFsdWVzLCAwKTsKKyAgICB9CisgICAg
cmV0dXJuIHZhbHVlUmVmOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBtb3VzZURvd25DYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaW50IGJ1dHRvbiA9IDA7CkBA
IC04MDMsNiArODk4LDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0VG91Y2hNb2RpZmllckNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW4KIH0KIAogc3RhdGljIEpT
U3RhdGljRnVuY3Rpb24gc3RhdGljRnVuY3Rpb25zW10gPSB7CisgICAgeyAiY29udGV4dENsaWNr
IiwgY29udGV4dENsaWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICB7ICJtb3VzZVNjcm9sbEJ5Iiwg
bW91c2VTY3JvbGxCeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgeyAiY29udGludW91c01vdXNlU2Ny
b2xsQnkiLCBjb250aW51b3VzTW91c2VTY3JvbGxCeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgeyAi
bW91c2VEb3duIiwgbW91c2VEb3duQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166886</attachid>
            <date>2012-10-03 06:59:20 -0700</date>
            <delta_ts>2012-10-15 07:00:00 -0700</delta_ts>
            <desc>fixes</desc>
            <filename>contextclick-unittests4.diff</filename>
            <type>text/plain</type>
            <size>28102</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxZmVhYjNkLi45MjZhZmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAt
MDMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSBjb250ZXh0Q2xpY2sgZGVwZW5kZW50IHRlc3RzIHRvIFdlYktpdDIgVGVzdEV4cGVj
dGF0aW9ucyBhbmQKKyAgICAgICAgYWRkIG5ldyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorCiAyMDEyLTEwLTAzICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8uZGEu
Y29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFVwZGF0ZSBwaXhlbCBleHBlY3RhdGlv
bnMgZm9yIHNvbWUgY3NzMi4xIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDkyNjYzZWMuLmMzNDRhOTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwNywzICsyMDcsMjEg
QEAgd2Via2l0Lm9yZy9iLzk2Nzk0IGluc3BlY3Rvci9jb25zb2xlL2FsZXJ0LXRvU3RyaW5nLWV4
Y2VwdGlvbi5odG1sIFsgRmFpbHVyZSBdCiAjIEZhaWxzIGFmdGVyIGl0IHdhcyB1bnNraXBwZWQg
aW4gcjEyOTM3Mi4KIHdlYmtpdC5vcmcvYi85NzU0NSBpbnNwZWN0b3Ivc3R5bGVzL3ZhcmlhYmxl
cy9jc3MtdmFyaWFibGVzLmh0bWwgWyBGYWlsdXJlIF0KIAorIyBXZWJLaXRUZXN0UnVubmVyIG5l
ZWRzIGFuIGltcGxlbWVudGF0aW9uIGZvciBldmVudFNlbmRlci5jb250ZXh0Q2xpY2sKK3dlYmtp
dC5vcmcvYi84Njg4MSBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1zdGFuZGFsb25lLWltYWdlLWNy
YXNoLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NlbGVjdGlv
bi81MzU0NDU1LTEuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcv
c2VsZWN0aW9uLzUzNTQ0NTUtMi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEg
ZWRpdGluZy9zZWxlY3Rpb24vYnV0dG9uLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KK3dl
YmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24vY29u
dGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84
Njg4MSBlZGl0aW5nL3NlbGVjdGlvbi9lbXB0eS1jZWxsLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1l
dGVyLWluLXNoYWRvdy1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEg
ZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbCBbIEZhaWx1cmUg
XQord2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1pbnB1dC1z
ZWFyY2gtY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZl
bnRzL2NvbnRleHQtbm8tZGVzZWxlY3QuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2
ODgxIGZhc3QvZXZlbnRzL2NvbnRleHQtb25tb3VzZWRvd24tZXZlbnQuaHRtbCBbIEZhaWx1cmUg
XQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZlbnRzL2NvbnRleHRtZW51LXNjcm9sbGVkLXBh
Z2Utd2l0aC1mcmFtZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZmFzdC9l
dmVudHMvcmlnaHQtY2xpY2stZm9jdXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2
ODgxIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0LWNs
aWNrLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBtZWRpYS9jb250ZXh0LW1l
bnUtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgbWVkaWEvY29u
dHJvbHMtcmlnaHQtY2xpY2stb24tdGltZWJhci5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGNmNjM1NTkuLmEzM2QyMzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjM4LDI3ICsx
MjM4LDYgQEAgd2Via2l0Lm9yZy9iLzgyMTQwIGluc3BlY3Rvci9nZW9sb2NhdGlvbi1lcnJvci5o
dG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODIxNDAgaW5zcGVjdG9yL2dlb2xvY2F0aW9u
LXN1Y2Nlc3MuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzgyMTQwIGluc3BlY3Rvci9n
ZW9sb2NhdGlvbi13YXRjaFBvc2l0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIAotIyBFRkwncyBFdmVu
dFNlbmRlciBkb2VzIG5vdCBpbXBsZW1lbnQgY29udGV4dENsaWNrIHlldAotd2Via2l0Lm9yZy9i
Lzg2MDkxIGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXN0YW5kYWxvbmUtaW1hZ2UtY3Jhc2guaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0
NTUtMS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rp
b24vYnV0dG9uLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5
MSBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQt
c2VsZWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3Nl
bGVjdGlvbi9lbXB0eS1jZWxsLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5v
cmcvYi84NjA5MSBlZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1s
IFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLWlucHV0LXNlYXJjaC1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYw
OTEgZmFzdC9ldmVudHMvY29udGV4dC1vbm1vdXNlZG93bi1ldmVudC5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvODYwOTEgZmFzdC9ldmVudHMvY29udGV4dG1lbnUtc2Nyb2xsZWQtcGFn
ZS13aXRoLWZyYW1lLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBmYXN0L2V2
ZW50cy9yaWdodC1jbGljay1mb2N1cy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYw
OTEgZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtcHJldmVudC1zZWxlY3Rpb24tb24tcmlnaHQtY2xp
Y2suaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIG1lZGlhL2NvbnRleHQtbWVu
dS1hY3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBtZWRpYS9jb250
cm9scy1yaWdodC1jbGljay1vbi10aW1lYmFyLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi84NjA5MSBlZGl0aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1ldGVyLWluLXNoYWRvdy1jcmFz
aC5odG1sIFsgRmFpbHVyZSBdCi0KLSMgRUZMJ3MgRXZlbnRTZW5kZXIgY29udGV4dENsaWNrLCBu
ZWVkcyBiYXNlbGluZXMKLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NlbGVjdGlvbi81MzU0
NDU1LTIuaHRtbCBbIE1pc3NpbmcgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGZhc3QvZXZlbnRzL2Nv
bnRleHQtbm8tZGVzZWxlY3QuaHRtbCBbIE1pc3NpbmcgXQotCiAjIElFVEMgbmFtZXNwYWNlIGZh
aWx1cmVzCiB3ZWJraXQub3JnL2IvODYxNDIgaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlcy9z
eW50YXgtMDIxLnhtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCkBAIC0xMjk4LDYgKzEyNzcsNyBA
QCB3ZWJraXQub3JnL2IvODY2MTUgZWRpdGluZy9kZWxldGluZy9yZWdpb25hbC1pbmRpY2F0b3Jz
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi80OTk2NCBmYXN0L2NhbnZhcy9jYW52YXMt
ZmlsbFBhdGgtc2hhZG93Lmh0bWwgWyBGYWlsdXJlIF0KIAogIyBNaXNzaW5nIHNwZWxsIGNoZWNr
aW5nIHN1cHBvcnQgKEVmbCdzIHBvcnQgZG9lcyBub3Qgc3VwcG9ydCBzcGVsbCBjaGVja2luZywg
R3RrIHBvcnQgdXNlcyBFbmNoYW50IGxpYnJhcnkgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYxNzg3KQord2Via2l0Lm9yZy9iLzg2NjMzIGVkaXRpbmcvc3BlbGxpbmcv
Y29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84
NjYzNyBlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXIuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzg2NjM3IGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci1wYXN0ZS5odG1sIFsgRmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvODY2MzcgZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwgWyBGYWls
dXJlIF0KQEAgLTE1MDEsMyArMTQ4MSw5IEBAIHdlYmtpdC5vcmcvYi85Nzk5MCBtYXRobWwvcHJl
c2VudGF0aW9uL3N1YnN1cC54aHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzk4MjQ3IGZh
c3QvdGV4dC9hdHN1aS1tdWx0aXBsZS1yZW5kZXJlcnMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzk4MjQ3IGZhc3QvdGV4dC9hdHN1aS1zcGFjaW5nLWZlYXR1cmVzLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi85ODI0NyBmYXN0L3RleHQvd2lkZS16ZXJvLXdpZHRoLXNwYWNl
Lmh0bWwgWyBGYWlsdXJlIF0KKworIyBFbnRlcmluZyBpbnRvIGZ1bGwgc2NyZWVuIHBsYXliYWNr
IG1vZGUgZmFpbHMgd2hlbiB0cmlnZ2VyZWQgYnkgY29udGV4dCBtZW51CitCdWcoRUZMKSBtZWRp
YS9jb250ZXh0LW1lbnUtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCisKKyMgRVNDIGtleSBkb2Vz
IG5vdCBjYW5jZWwgY29udGV4dCBtZW51IGluIEVGTCBwb3J0CitCdWcoRUZMKSBlZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTEuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL2VkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0yLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTM1OWExCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2VkaXRpbmcvc2VsZWN0
aW9uLzUzNTQ0NTUtMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDYwMAorbGF5ZXIgYXQgKDgsOCkgc2l6ZSA2MTJ4MTQyCisgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDgpIHNpemUgNjEyeDE0MiBbYm9yZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQor
ICAgIFJlbmRlckJsb2NrIHtIMX0gYXQgKDYsNikgc2l6ZSA2MDB4MzcKKyAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ1MXgzNgorICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0NTE6ICJXb3JkIHNlbGVjdGlvbiBvbiByaWdodCBjbGljayB0ZXN0IgorICAgIFJl
bmRlckJsb2NrIChhbm9ueW1vdXMpIGF0ICg2LDY0KSBzaXplIDYwMHg3MgorICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTk3eDM3CisgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDU5NzogIlRoaXMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgcmlnaHQgY2xpY2tp
bmcgbm9uLWVkaXRhYmxlIGNvbnRlbnQgb25seSBjcmVhdGVzIGEgd29yZCBzZWxlY3Rpb24gZm9y
IgorICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMTAzOiAiY2xpY2tzIG92ZXIgdGV4
dC4gIgorICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDE4eDE5CisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTAzLDE4KSBzaXplIDE4eDE5CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDEwMywxOCkgd2lkdGggMTg6ICJUbyIKKyAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMTIxLDE4KSBzaXplIDU3N3g1NQorICAgICAgICB0ZXh0IHJ1biBhdCAoMTIxLDE4
KSB3aWR0aCA0MTE6ICIgcnVuIG1hbnVhbGx5LCByaWdodCBjbGljayBvbiB0ZXh0LCBhbmQgYSB3
b3JkIHNob3VsZCBiZSBzZWxlY3RlZC4gIgorICAgICAgICB0ZXh0IHJ1biBhdCAoNTMyLDE4KSB3
aWR0aCAzNTogIlJpZ2h0IgorICAgICAgICB0ZXh0IHJ1biBhdCAoMCwzNikgd2lkdGggNTc3OiAi
Y2xpY2sgb24gdGhlIGVtcHR5IHNwYWNlIG91dHNpZGUgYW5kIHRvIHRoZSByaWdodCBvZiB0aGUg
YmxhY2sgYm9yZGVyLCB0aGUgc2VsZWN0aW9uIHNob3VsZCBiZSIKKyAgICAgICAgdGV4dCBydW4g
YXQgKDAsNTQpIHdpZHRoIDU5OiAicmVtb3ZlZC4iCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKK2NhcmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBv
ZiBjaGlsZCAxIHtIMX0gb2YgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL2Zhc3QvZXZlbnRzL2NvbnRleHQtbm8tZGVzZWxlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL2Zhc3QvZXZlbnRzL2NvbnRleHQtbm8tZGVzZWxlY3QtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhYmQ3YjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZmFzdC9ldmVudHMvY29udGV4
dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAor
ICAgICAgUmVuZGVyVGV4dENvbnRyb2wge0lOUFVUfSBhdCAoMiwyKSBzaXplIDE5M3gyOCBbYmdj
b2xvcj0jRkZGRkZGXQorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgw
CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgx
NCwxNikgc2l6ZSAxODZ4MTggc2Nyb2xsSGVpZ2h0IDE5CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICg0LDYpIHNpemUgMTg2eDE4CisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MTI0eDE5CisgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxMjQ6ICJzb21lIHNhbXBsZSB0
ZXh0Igorc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiA1IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBj
aGlsZCAwIHtESVZ9IG9mIHsjc2hhZG93LXJvb3R9IG9mIGNoaWxkIDEge0lOUFVUfSBvZiBib2R5
CitzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDE1IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGls
ZCAwIHtESVZ9IG9mIHsjc2hhZG93LXJvb3R9IG9mIGNoaWxkIDEge0lOUFVUfSBvZiBib2R5CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGZjNzdlY2MuLmE4NTdmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTItMTAtMDMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGlj
ayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIG5ldyB1bml0IHRlc3QgZmlsZSwgbmVlZGVkIGR1ZSB0byBld2sgQVBJIGNo
YW5nZXMuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKwogMjAxMi0xMC0wMiAgS3J6
eXN6dG9mIEN6ZWNoICA8ay5jemVjaEBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQg
ZmlsZSBFV0tUZXN0RW52aXJvbm1lbnQuY3BwIHRvIGJ1aWxkIHN5c3RlbS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
RWZsLmNtYWtlCmluZGV4IDdhNTQ3MTMuLjNlMDZhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFr
ZQpAQCAtMzUyLDYgKzM1Miw3IEBAIFRBUkdFVF9MSU5LX0xJQlJBUklFUyhld2tUZXN0VXRpbHMg
JHtFV0tVbml0VGVzdHNfTElCUkFSSUVTfSkKIFNFVChXRUJLSVRfRUZMX1RFU1RfRElSICIke1dF
QktJVF9ESVJ9L2VmbC90ZXN0cy8iKQogCiBTRVQoRVdLVW5pdFRlc3RzX0JJTkFSSUVTCisgICAg
dGVzdF9ld2tfY29udGV4dG1lbnUKICAgICB0ZXN0X2V3a192aWV3CiApCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwppbmRleCA4OWQ2ZjIxLi44ZTVlZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTItMTAtMDMgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1z
dW5nLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRl
eHRDbGljayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgcG9pbnRlciB0byBwYXJlbnQgbWVudSBpbiBFd2tfQ29udGV4
dF9NZW51X0l0ZW0gYW5kIGEgZ2V0dGVyCisgICAgICAgIGZ1bmN0aW9uIHRvIGFsbG93IHNlbGVj
dGluZyBhIGNvbnRleHQgbWVudSBpdGVtIHdpdGhvdXQgaGF2aW5nCisgICAgICAgIHBhcmVudCBt
ZW51IHBvaW50ZXIgaW4gRHVtcFJlbmRlclRyZWUgRXZlbnRTZW5kZXIuCisgICAgICAgIFRocmVl
IHVuaXQgdGVzdHMgYWRkZWQgZHVlIGV3ayBBUEkgY2hhbmdlcy4KKworICAgICAgICAqIGV3ay9l
d2tfY29udGV4dG1lbnUuY3BwOgorICAgICAgICAoX0V3a19Db250ZXh0X01lbnVfSXRlbSk6Cisg
ICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KToKKyAgICAgICAgKGV3a19jb250ZXh0
X21lbnVfaXRlbV9wYXJlbnRfZ2V0KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9h
cHBlbmQpOgorICAgICAgICAqIGV3ay9ld2tfY29udGV4dG1lbnUuaDoKKyAgICAgICAgKiBld2sv
ZXdrX3ZpZXcuY3BwOgorICAgICAgICAoZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldCk6CisgICAg
ICAgICogZXdrL2V3a192aWV3Lmg6CisgICAgICAgICogdGVzdHMvdGVzdF9ld2tfY29udGV4dG1l
bnUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogdGVzdHMvdGVzdF9l
d2tfdmlldy5jcHA6CisgICAgICAgIChURVNUX0YpOgorCiAyMDEyLTEwLTAyICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgQVBJ
IHRvIGdldCB0aGUgd2ViIHZpZXcgdGhhdCBpbml0aWF0ZWQgYSBjdXN0b20gVVJJIHJlcXVlc3Qg
dG8gV2ViS2l0MiBHVEsrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2Nv
bnRleHRtZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3Bw
CmluZGV4IGU3OTJjNmQuLjRlYTJjN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfY29udGV4dG1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29u
dGV4dG1lbnUuY3BwCkBAIC01Myw2ICs1Myw3IEBAIHN0cnVjdCBfRXdrX0NvbnRleHRfTWVudV9J
dGVtIHsKIAogICAgIGNvbnN0IGNoYXIqIHRpdGxlOyAvKio8IGNvbnRhaW5zIHRoZSB0aXRsZSBv
ZiB0aGUgaXRlbSAqLwogICAgIEV3a19Db250ZXh0X01lbnUqIHN1Ym1lbnU7IC8qKjwgY29udGFp
bnMgdGhlIHBvaW50ZXIgdG8gdGhlIHN1Ym1lbnUgb2YgdGhlIGl0ZW0gKi8KKyAgICBFd2tfQ29u
dGV4dF9NZW51KiBwYXJlbnRtZW51OyAvKio8IGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHBhcmVu
dCBtZW51IG9mIHRoZSBpdGVtICovCiAKICAgICBib29sIGNoZWNrZWQgOiAxOwogICAgIGJvb2wg
ZW5hYmxlZCA6IDE7CkBAIC05OCwxNSArOTksMTUgQEAgY29uc3QgRWluYV9MaXN0KiBld2tfY29u
dGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoY29uc3QgRXdrX0NvbnRleHRfTWVudSogbWVudSkKICAg
ICByZXR1cm4gbWVudS0+aXRlbXM7CiB9CiAKLUV3a19Db250ZXh0X01lbnVfSXRlbSogZXdrX2Nv
bnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV3a19Db250ZXh0
X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVudSogc3VibWVudSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0aXRs
ZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKQorRXdrX0NvbnRleHRfTWVu
dV9JdGVtKiBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9U
eXBlIHR5cGUsIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVu
dSogc3VibWVudSwKKyAgICBFd2tfQ29udGV4dF9NZW51KiBwYXJlbnRtZW51LCBjb25zdCBjaGFy
KiB0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKQogewogICAgIEV3
a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSA9IG5ldyBFd2tfQ29udGV4dF9NZW51X0l0ZW07CiAg
ICAgaXRlbS0+dHlwZSA9IHR5cGU7CiAgICAgaXRlbS0+YWN0aW9uID0gYWN0aW9uOwogICAgIGl0
ZW0tPnRpdGxlID0gZWluYV9zdHJpbmdzaGFyZV9hZGQodGl0bGUpOwogICAgIGl0ZW0tPnN1Ym1l
bnUgPSBzdWJtZW51OworICAgIGl0ZW0tPnBhcmVudG1lbnUgPSBwYXJlbnRtZW51OwogICAgIGl0
ZW0tPmNoZWNrZWQgPSBjaGVja2VkOwogICAgIGl0ZW0tPmVuYWJsZWQgPSBlbmFibGVkOwogCkBA
IC0yMDMsNiArMjA0LDExIEBAIEVpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxl
ZF9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtLCBFaW5hX0JvCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK0V3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRf
Z2V0KGNvbnN0IEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSkKK3sKKyAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTl9WQUwoaXRlbSwgMCk7CisgICAgcmV0dXJuIGl0ZW0tPnBhcmVudG1l
bnU7Cit9CiAKIC8qIGludGVybmFsIG1ldGhvZHMgKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtMjc2LDkgKzI4Miw3IEBAIHZvaWQgZXdr
X2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBjb25zdCBX
ZWJDb3JlOjpDb250ZXh0CiAgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSA9IHN0
YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlPihjb3JlLnR5cGUoKSk7CiAgICAg
RXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRf
TWVudV9BY3Rpb24+KGNvcmUuYWN0aW9uKCkpOwogCi0gICAgRXdrX0NvbnRleHRfTWVudV9JdGVt
KiBtZW51X2l0ZW0gPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUsIGFjdGlvbiwgMCwgY29yZS50aXRsZSgp
LnV0ZjgoKS5kYXRhKCksIGNvcmUuY2hlY2tlZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvcmUuZW5hYmxlZCgpKTsKKyAgICBFd2tfQ29udGV4dF9NZW51
X0l0ZW0qIG1lbnVfaXRlbSA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcodHlwZSwgYWN0aW9u
LCAwLCBtZW51LCBjb3JlLnRpdGxlKCkudXRmOCgpLmRhdGEoKSwgY29yZS5jaGVja2VkKCksIGNv
cmUuZW5hYmxlZCgpKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtZW51X2l0ZW0p
OwogCiAgICAgbWVudS0+aXRlbXMgPSBlaW5hX2xpc3RfYXBwZW5kKG1lbnUtPml0ZW1zLCBtZW51
X2l0ZW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVu
dS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCmluZGV4IGFmNmQ0
YTguLmU5MTg0MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4
dG1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKQEAg
LTIwMCw3ICsyMDAsNyBAQCBFQVBJIGNvbnN0IEVpbmFfTGlzdCAgICAgICAgICAgICpld2tfY29u
dGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoY29uc3QgRXdrX0NvbnRleAogICoKICAqIEBub3RlIFRo
ZSByZXR1cm4gdmFsdWUgQGIgc2hvdWxkIEBiIGJlIGZyZWVkIGFmdGVyIHVzZS4KICAqLwotRUFQ
SSBFd2tfQ29udGV4dF9NZW51X0l0ZW0gICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhF
d2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLCBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBh
Y3Rpb24sIEV3a19Db250ZXh0X01lbnUgKnN1Ym1lbnUsIGNvbnN0IGNoYXIgKnRpdGxlLCBFaW5h
X0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29sIGVuYWJsZWQpOworRUFQSSBFd2tfQ29udGV4dF9NZW51
X0l0ZW0gICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0
ZW1fVHlwZSB0eXBlLCBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24sIEV3a19Db250ZXh0
X01lbnUgKnN1Ym1lbnUsIEV3a19Db250ZXh0X01lbnUgKnBhcmVudG1lbnUsIGNvbnN0IGNoYXIg
KnRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29sIGVuYWJsZWQpOwogCiAvKioKICAq
IERlc3Ryb3lzIHRoZSBpdGVtIG9mIHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0LgpAQCAtMzIyLDYg
KzMyMiwxNCBAQCBFQVBJIEVpbmFfQm9vbCAgICAgICAgICAgICAgICAgICBld2tfY29udGV4dF9t
ZW51X2l0ZW1fZW5hYmxlZF9nZXQoY29uc3QgRXdrX0NvbgogICovCiBFQVBJIEVpbmFfQm9vbCAg
ICAgICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9zZXQoRXdrX0Nv
bnRleHRfTWVudV9JdGVtICpvLCBFaW5hX0Jvb2wgZW5hYmxlZCk7CiAKKy8qKgorICogR2V0cyB0
aGUgcGFyZW50IG1lbnUgZm9yIGNvbnRleHQgbWVudSBpdGVtLgorICoKKyAqIEBwYXJhbSBvIHRo
ZSBjb250ZXh0IG1lbnUgaXRlbSBvYmplY3QKKyAqIEByZXR1cm4gYSBjb250ZXh0IG1lbnUgb2Jq
ZWN0IG9uIHN1Y2Nlc3Mgb3IgQGMgTlVMTCBvbiBmYWlsdXJlCisgKi8KK0VBUEkgRXdrX0NvbnRl
eHRfTWVudSAgICAgKmV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KGNvbnN0IEV3a19D
b250ZXh0X01lbnVfSXRlbSAqbyk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCBlZjM1NjRkLi5mZTY5Yjc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTQ2NDEsNiArNDY0MSwxMyBAQCB2b2lkIGV3a192
aWV3X2Z1bGxzY3JlZW5fZXhpdChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKIH0KICNlbmRp
ZgogCitFd2tfQ29udGV4dF9NZW51KiBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdr
Vmlldywgc21hcnREYXRhLCAwKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21h
cnREYXRhLCBwcml2LCAwKTsKKyAgICByZXR1cm4gcHJpdi0+Y29udGV4dE1lbnU7Cit9CisKIG5h
bWVzcGFjZSBFV0tQcml2YXRlIHsKIAogV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IDdhOGI1ZDcu
Ljg5NjkzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0xMTMsNiArMTEzLDcgQEAK
ICNpZm5kZWYgZXdrX3ZpZXdfaAogI2RlZmluZSBld2tfdmlld19oCiAKKyNpbmNsdWRlICJld2tf
Y29udGV4dG1lbnUuaCIKICNpbmNsdWRlICJld2tfZmlsZV9jaG9vc2VyLmgiCiAjaW5jbHVkZSAi
ZXdrX2ZyYW1lLmgiCiAjaW5jbHVkZSAiZXdrX2hpc3RvcnkuaCIKQEAgLTI3NzQsNiArMjc3NSwx
NCBAQCBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2VuYWJsZV9mdWxsc2NyZWVuX3Nl
dChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sCiAgKi8KIEVBUEkgRWluYV9Cb29sIGV3a192aWV3
X3NldHRpbmdfZW5hYmxlX2Z1bGxzY3JlZW5fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKIAor
LyoqCisgKiBHZXRzIHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0LgorICogQHBhcmFtIG8gVGhlIHZp
ZXcgdGhhdCBjb250YWlucyBjb250ZXh0IG1lbnUuCisgKgorICogQHJldHVybiBjb250ZXh0IG1l
bnUgc3RydWN0dXJlIG9uIHN1Y2Nlc3Mgb3IgQGMgTlVMTCBvbiBmYWlsdXJlCisgKi8KK0VBUEkg
RXdrX0NvbnRleHRfTWVudSogZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldChjb25zdCBFdmFzX09i
amVjdCogbyk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a19jb250ZXh0bWVudS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a19jb250ZXh0bWVudS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNDRkYmViNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX2NvbnRleHRtZW51LmNwcApAQCAtMCwwICsxLDEyMiBA
QAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworCisgICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiBTZWUgdGhlIEdOVQorICAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAor
ICAgIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEz
MDcgVVNBCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJVbml0VGVzdFV0
aWxzL0VXS1Rlc3RCYXNlLmgiCisjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0tUZXN0Q29uZmln
LmgiCisjaW5jbHVkZSA8RVdlYktpdC5oPgorI2luY2x1ZGUgPEVjb3JlLmg+CisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBFV0tVbml0VGVzdHM7CisKKy8qKgorICogQGJyaWVmIENoZWNraW5nIHdoZXRoZXIgZnVu
Y3Rpb24gY3JlYXRlcyBwcm9wZXIgbWVudSBpdGVtLgorICoKKyAqIFRoaXMgdGVzdCBjcmVhdGVz
IGEgbWVudSBpdGVtIGFuZCBjaGVja3MgaWYgYWxsIG1lbnUgaXRlbSdzIGF0dHJpYnV0ZXMgYXJl
CisgKiB0aGUgc2FtZSBhcyBwYXNzZWQgdG8gdGVzdGVkIGZ1bmN0aW9uLgorICovCitURVNUX0Yo
RVdLVGVzdEJhc2UsIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcpCit7CisgICAgbG9hZFVybCgp
OworCisgICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KHdlYlZpZXcoKSk7Cisg
ICAgQVNTRVJUX1RSVUUoZXZhcyk7CisKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gbW91c2VE
b3duOworICAgIG1vdXNlRG93bi5idXR0b24gPSAzOworICAgIG1vdXNlRG93bi5vdXRwdXQueCA9
IDA7CisgICAgbW91c2VEb3duLm91dHB1dC55ID0gMDsKKyAgICBtb3VzZURvd24uY2FudmFzLngg
PSAwOworICAgIG1vdXNlRG93bi5jYW52YXMueSA9IDA7CisgICAgbW91c2VEb3duLmRhdGEgPSAw
OworICAgIG1vdXNlRG93bi5tb2RpZmllcnMgPSBjb25zdF9jYXN0PEV2YXNfTW9kaWZpZXIqPihl
dmFzX2tleV9tb2RpZmllcl9nZXQoZXZhcykpOworICAgIG1vdXNlRG93bi5sb2NrcyA9IGNvbnN0
X2Nhc3Q8RXZhc19Mb2NrKj4oZXZhc19rZXlfbG9ja19nZXQoZXZhcykpOworICAgIG1vdXNlRG93
bi5mbGFncyA9IEVWQVNfQlVUVE9OX05PTkU7CisgICAgbW91c2VEb3duLnRpbWVzdGFtcCA9IGVj
b3JlX2xvb3BfdGltZV9nZXQoKTsKKyAgICBtb3VzZURvd24uZXZlbnRfZmxhZ3MgPSBFVkFTX0VW
RU5UX0ZMQUdfTk9ORTsKKyAgICBtb3VzZURvd24uZGV2ID0gMDsKKworICAgIEFTU0VSVF9UUlVF
KGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KHdlYlZpZXcoKSwgJm1vdXNlRG93
bikpOworCisgICAgRXdrX0NvbnRleHRfTWVudSogY29udGV4dE1lbnUgPSBld2tfdmlld19jb250
ZXh0X21lbnVfZ2V0KHdlYlZpZXcoKSk7CisKKyAgICBBU1NFUlRfVFJVRShjb250ZXh0TWVudSk7
CisKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSBpdGVtVHlwZSA9IEVXS19BQ1RJT05f
VFlQRTsKKyAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBpdGVtQWN0aW9uID0gRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX0NVU1RPTV9UQUdfTk9fQUNUSU9OOworICAgIGNvbnN0IGNoYXIqIGl0ZW1U
aXRsZSA9ICJUZXN0IEl0ZW0iOworICAgIGJvb2wgaXRlbUNoZWNrZWQgPSBmYWxzZTsKKyAgICBi
b29sIGl0ZW1FbmFibGVkID0gZmFsc2U7CisKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGNv
bnRleHRNZW51SXRlbSA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoaXRlbVR5cGUsIGl0ZW1B
Y3Rpb24sIDAsIGNvbnRleHRNZW51LCBpdGVtVGl0bGUsIGl0ZW1DaGVja2VkLCBpdGVtRW5hYmxl
ZCk7CisKKyAgICBBU1NFUlRfVFJVRShjb250ZXh0TWVudUl0ZW0pOworCisgICAgRVhQRUNUX0VR
KGl0ZW1UeXBlLCBld2tfY29udGV4dF9tZW51X2l0ZW1fdHlwZV9nZXQoY29udGV4dE1lbnVJdGVt
KSk7CisgICAgRVhQRUNUX0VRKGl0ZW1BY3Rpb24sIGV3a19jb250ZXh0X21lbnVfaXRlbV9hY3Rp
b25fZ2V0KGNvbnRleHRNZW51SXRlbSkpOworICAgIEVYUEVDVF9FUShjb250ZXh0TWVudSwgZXdr
X2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoY29udGV4dE1lbnVJdGVtKSk7CisgICAgRVhQ
RUNUX1NUUkVRKGl0ZW1UaXRsZSwgZXdrX2NvbnRleHRfbWVudV9pdGVtX3RpdGxlX2dldChjb250
ZXh0TWVudUl0ZW0pKTsKKyAgICBFWFBFQ1RfRVEoaXRlbUNoZWNrZWQsIGV3a19jb250ZXh0X21l
bnVfaXRlbV9jaGVja2VkX2dldChjb250ZXh0TWVudUl0ZW0pKTsKKyAgICBFWFBFQ1RfRVEoaXRl
bUVuYWJsZWQsIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX2dldChjb250ZXh0TWVudUl0
ZW0pKTsKK30KKworLyoqCisgKiBAYnJpZWYgQ2hlY2tpbmcgd2hldGhlciBmdW5jdGlvbiByZXR1
cm5zIHByb3BlciBwYXJlbnQgbWVudS4KKyAqCisgKiBUaGlzIHRlc3QgY3JlYXRlcyBhIGNvbnRl
eHQgbWVudXMsIGFuZCBjaGVja3MgaWYgY3JlYXRlZCBjb250ZXh0IG1lbnUncworICogcGFyZW50
IGlzIHRoZSBzYW1lIGZvciBlYWNoIG9mIG1lbnUgaXRlbXMuCisgKi8KK1RFU1RfRihFV0tUZXN0
QmFzZSwgZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQpCit7CisgICAgbG9hZFVybCgp
OworCisgICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KHdlYlZpZXcoKSk7Cisg
ICAgQVNTRVJUX1RSVUUoZXZhcyk7CisKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gbW91c2VE
b3duOworICAgIG1vdXNlRG93bi5idXR0b24gPSAzOworICAgIG1vdXNlRG93bi5vdXRwdXQueCA9
IDA7CisgICAgbW91c2VEb3duLm91dHB1dC55ID0gMDsKKyAgICBtb3VzZURvd24uY2FudmFzLngg
PSAwOworICAgIG1vdXNlRG93bi5jYW52YXMueSA9IDA7CisgICAgbW91c2VEb3duLmRhdGEgPSAw
OworICAgIG1vdXNlRG93bi5tb2RpZmllcnMgPSBjb25zdF9jYXN0PEV2YXNfTW9kaWZpZXIqPihl
dmFzX2tleV9tb2RpZmllcl9nZXQoZXZhcykpOworICAgIG1vdXNlRG93bi5sb2NrcyA9IGNvbnN0
X2Nhc3Q8RXZhc19Mb2NrKj4oZXZhc19rZXlfbG9ja19nZXQoZXZhcykpOworICAgIG1vdXNlRG93
bi5mbGFncyA9IEVWQVNfQlVUVE9OX05PTkU7CisgICAgbW91c2VEb3duLnRpbWVzdGFtcCA9IGVj
b3JlX2xvb3BfdGltZV9nZXQoKTsKKyAgICBtb3VzZURvd24uZXZlbnRfZmxhZ3MgPSBFVkFTX0VW
RU5UX0ZMQUdfTk9ORTsKKyAgICBtb3VzZURvd24uZGV2ID0gMDsKKworICAgIEFTU0VSVF9UUlVF
KGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KHdlYlZpZXcoKSwgJm1vdXNlRG93
bikpOworCisgICAgRXdrX0NvbnRleHRfTWVudSogY29udGV4dE1lbnUgPSBld2tfdmlld19jb250
ZXh0X21lbnVfZ2V0KHdlYlZpZXcoKSk7CisKKyAgICBBU1NFUlRfVFJVRShjb250ZXh0TWVudSk7
CisKKyAgICBjb25zdCBFaW5hX0xpc3QqIGNvbnRleHRNZW51SXRlbXMgPSBld2tfY29udGV4dF9t
ZW51X2l0ZW1fbGlzdF9nZXQoY29udGV4dE1lbnUpOworCisgICAgQVNTRVJUX1RSVUUoY29udGV4
dE1lbnVJdGVtcyk7CisKKyAgICBjb25zdCBFaW5hX0xpc3QqIGxpc3RJdGVyYXRvcjsKKyAgICB2
b2lkKiBkYXRhOworICAgIEVJTkFfTElTVF9GT1JFQUNIKGNvbnRleHRNZW51SXRlbXMsIGxpc3RJ
dGVyYXRvciwgZGF0YSkKKyAgICAgICAgRVhQRUNUX0VRKGNvbnRleHRNZW51LCBld2tfY29udGV4
dF9tZW51X2l0ZW1fcGFyZW50X2dldChzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0q
PihkYXRhKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9l
d2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a192aWV3LmNwcApp
bmRleCA5NzUzYzQ2Li44NTI0YWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0
cy90ZXN0X2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3
a192aWV3LmNwcApAQCAtNzAsMyArNzAsMzUgQEAgVEVTVF9GKEVXS1Rlc3RCYXNlLCBld2tfdmll
d19zZXR0aW5nX2VuYWJsZV9mdWxsc2NyZWVuKQogICAgIEFTU0VSVF9GQUxTRShld2tfdmlld19z
ZXR0aW5nX2VuYWJsZV9mdWxsc2NyZWVuX2dldCh3ZWJWaWV3KCkpKTsKICNlbmRpZgogfQorCisv
KioKKyAqIEBicmllZiBDaGVja2luZyB3aGV0aGVyIGZ1bmN0aW9uIHJldHVybnMgcHJvcGVyIGNv
bnRleHQgbWVudSBzdHJ1Y3R1cmUuCisgKgorICogVGhpcyB0ZXN0IGNyZWF0ZXMgYSBjb250ZXh0
IG1lbnUgYW5kIGNoZWNrcyBpZiBjb250ZXh0IG1lbnUgc3RydWN0dXJlCisgKiBpcyBub3QgTlVM
TDsKKyAqLworVEVTVF9GKEVXS1Rlc3RCYXNlLCBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KQor
eworICAgIGxvYWRVcmwoKTsKKworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dl
dCh3ZWJWaWV3KCkpOworICAgIEFTU0VSVF9UUlVFKGV2YXMpOworCisgICAgRXZhc19FdmVudF9N
b3VzZV9Eb3duIG1vdXNlRG93bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3Vz
ZURvd24ub3V0cHV0LnggPSAwOworICAgIG1vdXNlRG93bi5vdXRwdXQueSA9IDA7CisgICAgbW91
c2VEb3duLmNhbnZhcy54ID0gMDsKKyAgICBtb3VzZURvd24uY2FudmFzLnkgPSAwOworICAgIG1v
dXNlRG93bi5kYXRhID0gMDsKKyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0gY29uc3RfY2FzdDxF
dmFzX01vZGlmaWVyKj4oZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURv
d24ubG9ja3MgPSBjb25zdF9jYXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xvY2tfZ2V0KGV2YXMp
KTsKKyAgICBtb3VzZURvd24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1vdXNlRG93
bi50aW1lc3RhbXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3duLmV2ZW50
X2ZsYWdzID0gRVZBU19FVkVOVF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9IDA7CisK
KyAgICBBU1NFUlRfVFJVRShld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh3ZWJW
aWV3KCksICZtb3VzZURvd24pKTsKKworICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X2NvbnRleHRf
bWVudV9nZXQod2ViVmlldygpKSk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMDVmYmRmMS4uNjgwYmEyYiAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEw
LTAzICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgW0VGTF1bRFJUXSBFdmVudFNlbmRlciByZXF1aXJlcyBjb250ZXh0Q2xpY2sgaW1w
bGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBjb250ZXh0Q2xpY2sgZm9yIER1bXBSZW5kZXJUcmVlRXZlbnRTZW5kZXIgYmFzaW5n
IG9uIFdlYktpdCBHVEsKKyAgICAgICAgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwOgorICAgICAgICAoZ2V0TWVudUl0ZW1UaXRs
ZUNhbGxiYWNrKToKKyAgICAgICAgKHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayk6CisgICAgICAg
IChtZW51SXRlbUNsaWNrQ2FsbGJhY2spOgorICAgICAgICAoY29udGV4dENsaWNrQ2FsbGJhY2sp
OgorCiAyMDEyLTEwLTAzICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYXBoYWVsLmt1Ym8uZGEu
Y29zdGFAaW50ZWwuY29tPgogCiAgICAgICAgIFtRdF1bRFJUXSBBZGQgc3VwcG9ydCBmb3Igb3Zl
cnJpZGluZyB0aGUgIldlYktpdERpc3BsYXlJbWFnZXNLZXkiIHByZWZlcmVuY2UuCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcAppbmRleCA3OGQyZGJjLi44NGJkNzEzIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAKQEAgLTI2OSw2ICsyNjks
MTAxIEBAIHN0YXRpYyB1bnNpZ25lZCBtb2RpZmllcnNGcm9tSlNWYWx1ZShKU0NvbnRleHRSZWYg
Y29udGV4dCwgY29uc3QgSlNWYWx1ZVJlZiBtb2RpCiAgICAgcmV0dXJuIG1vZGlmaWVyOwogfQog
CitzdGF0aWMgSlNWYWx1ZVJlZiBnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVt
ID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4oSlNPYmplY3RHZXRQcml2YXRl
KG9iamVjdCkpOworICAgIENTdHJpbmcgbGFiZWw7CisgICAgaWYgKGV3a19jb250ZXh0X21lbnVf
aXRlbV90eXBlX2dldChpdGVtKSA9PSBFV0tfU0VQQVJBVE9SX1RZUEUpCisgICAgICAgIGxhYmVs
ID0gIjxzZXBhcmF0b3I+IjsKKyAgICBlbHNlCisgICAgICAgIGxhYmVsID0gZXdrX2NvbnRleHRf
bWVudV9pdGVtX3RpdGxlX2dldChpdGVtKTsKKworICAgIHJldHVybiBKU1ZhbHVlTWFrZVN0cmlu
Zyhjb250ZXh0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhsYWJlbC5kYXRhKCkpKTsK
K30KKworc3RhdGljIGJvb2wgc2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIHJldHVybiB0cnVl
OworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBtZW51SXRlbUNsaWNrQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSA9
IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbSo+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0
aGlzT2JqZWN0KSk7CisgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX3NlbGVjdChld2tfY29udGV4
dF9tZW51X2l0ZW1fcGFyZW50X2dldChpdGVtKSwgaXRlbSk7CisgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCitzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0
aWNNZW51SXRlbUZ1bmN0aW9uc1tdID0geworICAgIHsgImNsaWNrIiwgbWVudUl0ZW1DbGlja0Nh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCisgICAgeyAwLCAwLCAwIH0KK307CisKK3N0YXRpYyBKU1N0YXRpY1Zh
bHVlIHN0YXRpY01lbnVJdGVtVmFsdWVzW10gPSB7CisgICAgeyAidGl0bGUiLCBnZXRNZW51SXRl
bVRpdGxlQ2FsbGJhY2ssIHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVOb25lIH0sCisgICAgeyAwLCAwLCAwLCAwIH0KK307CisKK3N0YXRpYyBKU0NsYXNzUmVm
IGdldE1lbnVJdGVtQ2xhc3MoKQoreworICAgIHN0YXRpYyBKU0NsYXNzUmVmIG1lbnVJdGVtQ2xh
c3MgPSAwOworCisgICAgaWYgKCFtZW51SXRlbUNsYXNzKSB7CisgICAgICAgIEpTQ2xhc3NEZWZp
bml0aW9uIGNsYXNzRGVmaW5pdGlvbiA9IHsKKyAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAs
CisgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICAgICAg
Y2xhc3NEZWZpbml0aW9uLnN0YXRpY0Z1bmN0aW9ucyA9IHN0YXRpY01lbnVJdGVtRnVuY3Rpb25z
OworICAgICAgICBjbGFzc0RlZmluaXRpb24uc3RhdGljVmFsdWVzID0gc3RhdGljTWVudUl0ZW1W
YWx1ZXM7CisKKyAgICAgICAgbWVudUl0ZW1DbGFzcyA9IEpTQ2xhc3NDcmVhdGUoJmNsYXNzRGVm
aW5pdGlvbik7CisgICAgfQorCisgICAgcmV0dXJuIG1lbnVJdGVtQ2xhc3M7Cit9CisKK3N0YXRp
YyBKU1ZhbHVlUmVmIGNvbnRleHRDbGlja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKK3sKKyAgICBFdmFzX09iamVjdCogdmlldyA9IGV3a19mcmFtZV92aWV3X2dldChicm93
c2VyLT5tYWluRnJhbWUoKSk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBFdmFzKiBldmFzID0gZXZhc19vYmplY3Rf
ZXZhc19nZXQodmlldyk7CisgICAgaWYgKCFldmFzKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gbW91c2VE
b3duOworICAgIG1vdXNlRG93bi5idXR0b24gPSAzOworICAgIG1vdXNlRG93bi5vdXRwdXQueCA9
IGdMYXN0TW91c2VQb3NpdGlvblg7CisgICAgbW91c2VEb3duLm91dHB1dC55ID0gZ0xhc3RNb3Vz
ZVBvc2l0aW9uWTsKKyAgICBtb3VzZURvd24uY2FudmFzLnggPSBnTGFzdE1vdXNlUG9zaXRpb25Y
OworICAgIG1vdXNlRG93bi5jYW52YXMueSA9IGdMYXN0TW91c2VQb3NpdGlvblk7CisgICAgbW91
c2VEb3duLmRhdGEgPSAwOworICAgIG1vdXNlRG93bi5tb2RpZmllcnMgPSBjb25zdF9jYXN0PEV2
YXNfTW9kaWZpZXIqPihldmFzX2tleV9tb2RpZmllcl9nZXQoZXZhcykpOworICAgIG1vdXNlRG93
bi5sb2NrcyA9IGNvbnN0X2Nhc3Q8RXZhc19Mb2NrKj4oZXZhc19rZXlfbG9ja19nZXQoZXZhcykp
OworICAgIG1vdXNlRG93bi5mbGFncyA9IEVWQVNfQlVUVE9OX05PTkU7CisgICAgbW91c2VEb3du
LnRpbWVzdGFtcCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKKyAgICBtb3VzZURvd24uZXZlbnRf
ZmxhZ3MgPSBFVkFTX0VWRU5UX0ZMQUdfTk9ORTsKKyAgICBtb3VzZURvd24uZGV2ID0gMDsKKwor
ICAgIGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KHZpZXcsICZtb3VzZURvd24p
OworICAgIEV3a19Db250ZXh0X01lbnUqIGV3a01lbnUgPSBld2tfdmlld19jb250ZXh0X21lbnVf
Z2V0KHZpZXcpOworCisgICAgSlNWYWx1ZVJlZiB2YWx1ZVJlZiA9IEpTT2JqZWN0TWFrZUFycmF5
KGNvbnRleHQsIDAsIDAsIDApOworICAgIGlmIChld2tNZW51KSB7CisgICAgICAgIGNvbnN0IEVp
bmFfTGlzdCogZXdrTWVudUl0ZW1zID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KGV3
a01lbnUpOworICAgICAgICBKU1ZhbHVlUmVmIGFycmF5VmFsdWVzW2VpbmFfbGlzdF9jb3VudChl
d2tNZW51SXRlbXMpXTsKKworICAgICAgICBjb25zdCBFaW5hX0xpc3QqIGxpc3RJdGVyYXRvcjsK
KyAgICAgICAgdm9pZCogZGF0YTsKKyAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgRUlO
QV9MSVNUX0ZPUkVBQ0goZXdrTWVudUl0ZW1zLCBsaXN0SXRlcmF0b3IsIGRhdGEpCisgICAgICAg
ICAgICBhcnJheVZhbHVlc1tpbmRleCsrXSA9IEpTT2JqZWN0TWFrZShjb250ZXh0LCBnZXRNZW51
SXRlbUNsYXNzKCksIGRhdGEpOworCisgICAgICAgIGlmIChpbmRleCkKKyAgICAgICAgICAgIHZh
bHVlUmVmID0gSlNPYmplY3RNYWtlQXJyYXkoY29udGV4dCwgaW5kZXggLSAxLCBhcnJheVZhbHVl
cywgMCk7CisgICAgfQorICAgIHJldHVybiB2YWx1ZVJlZjsKK30KKwogc3RhdGljIEpTVmFsdWVS
ZWYgbW91c2VEb3duQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAg
IGludCBidXR0b24gPSAwOwpAQCAtODAzLDYgKzg5OCw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNl
dFRvdWNoTW9kaWZpZXJDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuCiB9CiAKIHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIHN0YXRpY0Z1bmN0aW9uc1tdID0gewor
ICAgIHsgImNvbnRleHRDbGljayIsIGNvbnRleHRDbGlja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
eyAibW91c2VTY3JvbGxCeSIsIG1vdXNlU2Nyb2xsQnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgIHsg
ImNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5IiwgY29udGludW91c01vdXNlU2Nyb2xsQnlDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgIHsgIm1vdXNlRG93biIsIG1vdXNlRG93bkNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168705</attachid>
            <date>2012-10-15 07:00:00 -0700</date>
            <delta_ts>2012-10-30 04:05:27 -0700</delta_ts>
            <desc>fixed patch</desc>
            <filename>contextclick-fixes.diff</filename>
            <type>text/plain</type>
            <size>28494</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NDk4N2VkLi42ZTBlZmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAt
MTUgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSBjb250ZXh0Q2xpY2sgZGVwZW5kZW50IHRlc3RzIHRvIFdlYktpdDIgVGVzdEV4cGVj
dGF0aW9ucyBhbmQKKyAgICAgICAgYWRkIG5ldyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorCiAyMDEyLTEwLTE1ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLCBUZXN0RXhwZWN0YXRp
b25zIHVwZGF0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggYWFjYWJmMC4uYjRlZDViZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjU2LDMgKzI1NiwyMiBAQCB3ZWJraXQub3Jn
L2IvOTkxNTIgcGx1Z2lucy9pZnJhbWUtcGx1Z2luLWJnY29sb3IuaHRtbCBbIEZhaWx1cmUgXQog
CiAjIEZsYWt5IG9uIEVGTCBwb3J0Lgogd2Via2l0Lm9yZy9iLzk2NjQxIG1lZGlhL3ZpZGVvLXNl
ZWstcGFzdC1lbmQtcGxheWluZy5odG1sIFsgRmFpbHVyZSBdCisKKyMgV2ViS2l0VGVzdFJ1bm5l
ciBuZWVkcyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrCit3
ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFn
ZS1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxl
Y3Rpb24vNTM1NDQ1NS0xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0
aW5nL3NlbGVjdGlvbi81MzU0NDU1LTIuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2
ODgxIGVkaXRpbmcvc2VsZWN0aW9uL2J1dHRvbi1yaWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRl
eHQuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcvc2VsZWN0aW9u
L2NvbnRleHQtbWVudS10ZXh0LXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3Jn
L2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24vZW1wdHktY2VsbC1yaWdodC1jbGljay5odG1sIFsg
RmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zaGFkb3cvcmlnaHRjbGljay1v
bi1tZXRlci1pbi1zaGFkb3ctY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2
ODgxIGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2staW5w
dXQtc2VhcmNoLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBmYXN0
L2V2ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0Lmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcv
Yi84Njg4MSBmYXN0L2V2ZW50cy9jb250ZXh0LW9ubW91c2Vkb3duLWV2ZW50Lmh0bWwgWyBGYWls
dXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBmYXN0L2V2ZW50cy9jb250ZXh0bWVudS1zY3JvbGxl
ZC1wYWdlLXdpdGgtZnJhbWUuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZh
c3QvZXZlbnRzL3JpZ2h0LWNsaWNrLWZvY3VzLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcv
Yi84Njg4MSBmYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1wcmV2ZW50LXNlbGVjdGlvbi1vbi1yaWdo
dC1jbGljay5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgbWVkaWEvY29udGV4
dC1tZW51LWFjdGlvbnMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIG1lZGlh
L2NvbnRyb2xzLXJpZ2h0LWNsaWNrLW9uLXRpbWViYXIuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyMjA4NjVhLi43MDdhMzE0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI2NSwy
NyArMTI2NSw2IEBAIHdlYmtpdC5vcmcvYi84MjE0MCBpbnNwZWN0b3IvZ2VvbG9jYXRpb24tZXJy
b3IuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzgyMTQwIGluc3BlY3Rvci9nZW9sb2Nh
dGlvbi1zdWNjZXNzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84MjE0MCBpbnNwZWN0
b3IvZ2VvbG9jYXRpb24td2F0Y2hQb3NpdGlvbi5odG1sIFsgRmFpbHVyZSBdCiAKLSMgRUZMJ3Mg
RXZlbnRTZW5kZXIgZG9lcyBub3QgaW1wbGVtZW50IGNvbnRleHRDbGljayB5ZXQKLXdlYmtpdC5v
cmcvYi84NjA5MSBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1zdGFuZGFsb25lLWltYWdlLWNyYXNo
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NlbGVjdGlvbi81
MzU0NDU1LTEuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc2Vs
ZWN0aW9uL2J1dHRvbi1yaWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2Iv
ODYwOTEgZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQuaHRtbCBbIEZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10
ZXh0LXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGlu
Zy9zZWxlY3Rpb24vZW1wdHktY2VsbC1yaWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvODYwOTEgZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMu
aHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1pbnB1dC1zZWFyY2gtY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9i
Lzg2MDkxIGZhc3QvZXZlbnRzL2NvbnRleHQtb25tb3VzZWRvd24tZXZlbnQuaHRtbCBbIEZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGZhc3QvZXZlbnRzL2NvbnRleHRtZW51LXNjcm9sbGVk
LXBhZ2Utd2l0aC1mcmFtZS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZmFz
dC9ldmVudHMvcmlnaHQtY2xpY2stZm9jdXMuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9i
Lzg2MDkxIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0
LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBtZWRpYS9jb250ZXh0
LW1lbnUtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgbWVkaWEv
Y29udHJvbHMtcmlnaHQtY2xpY2stb24tdGltZWJhci5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvODYwOTEgZWRpdGluZy9zaGFkb3cvcmlnaHRjbGljay1vbi1tZXRlci1pbi1zaGFkb3ct
Y3Jhc2guaHRtbCBbIEZhaWx1cmUgXQotCi0jIEVGTCdzIEV2ZW50U2VuZGVyIGNvbnRleHRDbGlj
aywgbmVlZHMgYmFzZWxpbmVzCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24v
NTM1NDQ1NS0yLmh0bWwgWyBNaXNzaW5nIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBmYXN0L2V2ZW50
cy9jb250ZXh0LW5vLWRlc2VsZWN0Lmh0bWwgWyBNaXNzaW5nIF0KLQogIyBJRVRDIG5hbWVzcGFj
ZSBmYWlsdXJlcwogd2Via2l0Lm9yZy9iLzg2MTQyIGlldGVzdGNlbnRlci9jc3MzL25hbWVzcGFj
ZXMvc3ludGF4LTAyMS54bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIApAQCAtMTMyNSw2ICsxMzA0
LDcgQEAgd2Via2l0Lm9yZy9iLzg2NjE1IGVkaXRpbmcvZGVsZXRpbmcvcmVnaW9uYWwtaW5kaWNh
dG9ycy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvNDk5NjQgZmFzdC9jYW52YXMvY2Fu
dmFzLWZpbGxQYXRoLXNoYWRvdy5odG1sIFsgRmFpbHVyZSBdCiAKICMgTWlzc2luZyBzcGVsbCBj
aGVja2luZyBzdXBwb3J0IChFZmwncyBwb3J0IGRvZXMgbm90IHN1cHBvcnQgc3BlbGwgY2hlY2tp
bmcsIEd0ayBwb3J0IHVzZXMgRW5jaGFudCBsaWJyYXJ5IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MTc4NykKK3dlYmtpdC5vcmcvYi84NjYzMyBlZGl0aW5nL3NwZWxs
aW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3Jn
L2IvODY2MzcgZWRpdGluZy9zcGVsbGluZy9ncmFtbWFyLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi84NjYzNyBlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXItcGFzdGUuaHRtbCBbIEZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzg2NjM3IGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sIFsg
RmFpbHVyZSBdCkBAIC0xNTY3LDMgKzE1NDcsOSBAQCB3ZWJraXQub3JnL2IvOTkxODkgZmFzdC9i
b3JkZXJzL2lubGluZS1tYXNrLW92ZXJsYXktaW1hZ2Utb3V0c2V0Lmh0bWwgWyBJbWFnZU9ubAog
d2Via2l0Lm9yZy9iLzk5MTg5IGZhc3QvYm9yZGVycy9pbmxpbmUtbWFzay1vdmVybGF5LWltYWdl
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85OTE4OSBpZXRlc3RjZW50
ZXIvY3NzMy9ib3JkZXJzYmFja2dyb3VuZHMvYm9yZGVyLXJhZGl1cy1zdHlsZS0wMDEuaHRtIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvOTkxODkgaWV0ZXN0Y2VudGVyL2NzczMv
Ym9yZGVyc2JhY2tncm91bmRzL2JvcmRlci1yYWRpdXMtc3R5bGUtMDAyLmh0bSBbIEltYWdlT25s
eUZhaWx1cmUgXQorCisjIEVudGVyaW5nIGludG8gZnVsbCBzY3JlZW4gcGxheWJhY2sgbW9kZSBm
YWlscyB3aGVuIHRyaWdnZXJlZCBieSBjb250ZXh0IG1lbnUKK0J1ZyhFRkwpIG1lZGlhL2NvbnRl
eHQtbWVudS1hY3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KKworIyBFU0Mga2V5IGRvZXMgbm90IGNh
bmNlbCBjb250ZXh0IG1lbnUgaW4gRUZMIHBvcnQKK0J1ZyhFRkwpIGVkaXRpbmcvc2VsZWN0aW9u
LzUzNTQ0NTUtMS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0yLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9lZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MzU5YTEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZWRpdGluZy9zZWxlY3Rpb24vNTM1
NDQ1NS0yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCitsYXllciBhdCAoOCw4KSBzaXplIDYxMngxNDIKKyAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsOCkgc2l6ZSA2MTJ4MTQyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCisgICAgUmVu
ZGVyQmxvY2sge0gxfSBhdCAoNiw2KSBzaXplIDYwMHgzNworICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNDUxeDM2CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDQ1MTogIldvcmQgc2VsZWN0aW9uIG9uIHJpZ2h0IGNsaWNrIHRlc3QiCisgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDYsNjQpIHNpemUgNjAweDcyCisgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA1OTd4MzcKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNTk3OiAiVGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCByaWdodCBjbGlja2luZyBub24t
ZWRpdGFibGUgY29udGVudCBvbmx5IGNyZWF0ZXMgYSB3b3JkIHNlbGVjdGlvbiBmb3IiCisgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAxMDM6ICJjbGlja3Mgb3ZlciB0ZXh0LiAiCisg
ICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTh4MTkKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgxMDMsMTgpIHNpemUgMTh4MTkKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMTAzLDE4KSB3aWR0aCAxODogIlRvIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgxMjEsMTgpIHNpemUgNTc3eDU1CisgICAgICAgIHRleHQgcnVuIGF0ICgxMjEsMTgpIHdpZHRo
IDQxMTogIiBydW4gbWFudWFsbHksIHJpZ2h0IGNsaWNrIG9uIHRleHQsIGFuZCBhIHdvcmQgc2hv
dWxkIGJlIHNlbGVjdGVkLiAiCisgICAgICAgIHRleHQgcnVuIGF0ICg1MzIsMTgpIHdpZHRoIDM1
OiAiUmlnaHQiCisgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2KSB3aWR0aCA1Nzc6ICJjbGljayBv
biB0aGUgZW1wdHkgc3BhY2Ugb3V0c2lkZSBhbmQgdG8gdGhlIHJpZ2h0IG9mIHRoZSBibGFjayBi
b3JkZXIsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIgorICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1
NCkgd2lkdGggNTk6ICJyZW1vdmVkLiIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDB4MAorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxk
IDEge0gxfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZmFz
dC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFiZDdiNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRl
c2VsZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBS
ZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgyLDIpIHNpemUgMTkzeDI4IFtiZ2NvbG9yPSNG
RkZGRkZdCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE0LDE2KSBz
aXplIDE4NngxOCBzY3JvbGxIZWlnaHQgMTkKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQsNikg
c2l6ZSAxODZ4MTgKKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxMjR4MTkK
KyAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDEyNDogInNvbWUgc2FtcGxlIHRleHQiCitz
ZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAg
e0RJVn0gb2YgeyNzaGFkb3ctcm9vdH0gb2YgY2hpbGQgMSB7SU5QVVR9IG9mIGJvZHkKK3NlbGVj
dGlvbiBlbmQ6ICAgcG9zaXRpb24gMTUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0RJ
Vn0gb2YgeyNzaGFkb3ctcm9vdH0gb2YgY2hpbGQgMSB7SU5QVVR9IG9mIGJvZHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggY2YzNjk4OS4uNDNmMjczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0x
NSAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW0RSVF0gRXZlbnRTZW5kZXIgcmVxdWlyZXMgY29udGV4dENsaWNrIGltcGxl
bWVudGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODYwOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgbmV3IHVuaXQgdGVzdCBmaWxlLCBuZWVkZWQgZHVlIHRvIGV3ayBBUEkgY2hhbmdlcy4K
KworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorCiAyMDEyLTEwLTEzICBKYWtvYiBQZXRz
b3ZpdHMgIDxqcGV0c292aXRzQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEZldGNo
IGJsaXQgcmVjdHMgZnJvbSBhIHZpZXdwb3J0IGFjY2Vzc29yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFr
ZQppbmRleCBmOWI4ODU2Li4wZTc4MDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTI0
Miw2ICsyNDIsNyBAQCBUQVJHRVRfTElOS19MSUJSQVJJRVMoZXdrVGVzdFV0aWxzICR7RVdLVW5p
dFRlc3RzX0xJQlJBUklFU30pCiBTRVQoV0VCS0lUX0VGTF9URVNUX0RJUiAiJHtXRUJLSVRfRElS
fS9lZmwvdGVzdHMvIikKIAogU0VUKEVXS1VuaXRUZXN0c19CSU5BUklFUworICAgIHRlc3RfZXdr
X2NvbnRleHRtZW51CiAgICAgdGVzdF9ld2tfdmlldwogKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXgg
ZWFhMjMxNi4uZTgzY2Y3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEy
LTEwLTE1ICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+
CisKKyAgICAgICAgW0VGTF1bRFJUXSBFdmVudFNlbmRlciByZXF1aXJlcyBjb250ZXh0Q2xpY2sg
aW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIHBvaW50ZXIgdG8gcGFyZW50IG1lbnUgaW4gRXdrX0NvbnRleHRfTWVudV9J
dGVtIGFuZCBhIGdldHRlcgorICAgICAgICBmdW5jdGlvbiB0byBhbGxvdyBzZWxlY3RpbmcgYSBj
b250ZXh0IG1lbnUgaXRlbSB3aXRob3V0IGhhdmluZworICAgICAgICBwYXJlbnQgbWVudSBwb2lu
dGVyIGluIER1bXBSZW5kZXJUcmVlIEV2ZW50U2VuZGVyLgorICAgICAgICBUaHJlZSB1bml0IHRl
c3RzIGFkZGVkIGR1ZSBld2sgQVBJIGNoYW5nZXMuCisKKyAgICAgICAgKiBld2svZXdrX2NvbnRl
eHRtZW51LmNwcDoKKyAgICAgICAgKF9Fd2tfQ29udGV4dF9NZW51X0l0ZW0pOgorICAgICAgICAo
ZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0
ZW1fcGFyZW50X2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKToK
KyAgICAgICAgKiBld2svZXdrX2NvbnRleHRtZW51Lmg6CisgICAgICAgICogZXdrL2V3a192aWV3
LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQpOgorICAgICAgICAqIGV3
ay9ld2tfdmlldy5oOgorICAgICAgICAqIHRlc3RzL3Rlc3RfZXdrX2NvbnRleHRtZW51LmNwcDog
QWRkZWQuCisgICAgICAgIChURVNUX0YpOgorICAgICAgICAqIHRlc3RzL3Rlc3RfZXdrX3ZpZXcu
Y3BwOgorICAgICAgICAoVEVTVF9GKToKKwogMjAxMi0xMC0xNCAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgVXNlclNjcmlwdCBhbmQgVXNlclN0eWxlU2hlZXQg
dmFsdWUgb2JqZWN0cyB0aGF0IGFyZSBjb3B5YWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2NvbnRleHRtZW51LmNwcAppbmRleCBlNzkyYzZkLi4xZDM1OTc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcApAQCAtNTMsNiArNTMsNyBAQCBzdHJ1Y3QgX0V3
a19Db250ZXh0X01lbnVfSXRlbSB7CiAKICAgICBjb25zdCBjaGFyKiB0aXRsZTsgLyoqPCBjb250
YWlucyB0aGUgdGl0bGUgb2YgdGhlIGl0ZW0gKi8KICAgICBFd2tfQ29udGV4dF9NZW51KiBzdWJt
ZW51OyAvKio8IGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHRoZSBzdWJtZW51IG9mIHRoZSBpdGVt
ICovCisgICAgRXdrX0NvbnRleHRfTWVudSogcGFyZW50bWVudTsgLyoqPCBjb250YWlucyB0aGUg
cG9pbnRlciB0byBwYXJlbnQgbWVudSBvZiB0aGUgaXRlbSAqLwogCiAgICAgYm9vbCBjaGVja2Vk
IDogMTsKICAgICBib29sIGVuYWJsZWQgOiAxOwpAQCAtOTgsMTQgKzk5LDE0IEBAIGNvbnN0IEVp
bmFfTGlzdCogZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KGNvbnN0IEV3a19Db250ZXh0
X01lbnUqIG1lbnUpCiAgICAgcmV0dXJuIG1lbnUtPml0ZW1zOwogfQogCi1Fd2tfQ29udGV4dF9N
ZW51X0l0ZW0qIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVt
X1R5cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24sIEV3a19Db250ZXh0X01lbnUqIHN1
Ym1lbnUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciogdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxlZCkK
K0V3a19Db250ZXh0X01lbnVfSXRlbSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29u
dGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLCBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24s
IEV3a19Db250ZXh0X01lbnUqIHBhcmVudG1lbnUsCisgICAgRXdrX0NvbnRleHRfTWVudSogc3Vi
bWVudSwgY29uc3QgY2hhciogdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5h
YmxlZCkKIHsKICAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSBuZXcgRXdrX0NvbnRl
eHRfTWVudV9JdGVtOwogICAgIGl0ZW0tPnR5cGUgPSB0eXBlOwogICAgIGl0ZW0tPmFjdGlvbiA9
IGFjdGlvbjsKICAgICBpdGVtLT50aXRsZSA9IGVpbmFfc3RyaW5nc2hhcmVfYWRkKHRpdGxlKTsK
KyAgICBpdGVtLT5wYXJlbnRtZW51ID0gcGFyZW50bWVudTsKICAgICBpdGVtLT5zdWJtZW51ID0g
c3VibWVudTsKICAgICBpdGVtLT5jaGVja2VkID0gY2hlY2tlZDsKICAgICBpdGVtLT5lbmFibGVk
ID0gZW5hYmxlZDsKQEAgLTIwMyw2ICsyMDQsMTEgQEAgRWluYV9Cb29sIGV3a19jb250ZXh0X21l
bnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0sIEVpbmFfQm8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVu
dV9pdGVtX3BhcmVudF9nZXQoY29uc3QgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtKQorewor
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpdGVtLCAwKTsKKyAgICByZXR1cm4g
aXRlbS0+cGFyZW50bWVudTsKK30KIAogLyogaW50ZXJuYWwgbWV0aG9kcyAqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0yNzYsOSArMjgy
LDcgQEAgdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUq
IG1lbnUsIGNvbnN0IFdlYkNvcmU6OkNvbnRleHQKICAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW1f
VHlwZSB0eXBlID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGU+KGNvcmUu
dHlwZSgpKTsKICAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24gPSBzdGF0aWNfY2Fz
dDxFd2tfQ29udGV4dF9NZW51X0FjdGlvbj4oY29yZS5hY3Rpb24oKSk7CiAKLSAgICBFd2tfQ29u
dGV4dF9NZW51X0l0ZW0qIG1lbnVfaXRlbSA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZSwgYWN0aW9uLCAw
LCBjb3JlLnRpdGxlKCkudXRmOCgpLmRhdGEoKSwgY29yZS5jaGVja2VkKCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZS5lbmFibGVkKCkpOworICAgIEV3
a19Db250ZXh0X01lbnVfSXRlbSogbWVudV9pdGVtID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX25l
dyh0eXBlLCBhY3Rpb24sIG1lbnUsIDAsIGNvcmUudGl0bGUoKS51dGY4KCkuZGF0YSgpLCBjb3Jl
LmNoZWNrZWQoKSwgY29yZS5lbmFibGVkKCkpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOKG1lbnVfaXRlbSk7CiAKICAgICBtZW51LT5pdGVtcyA9IGVpbmFfbGlzdF9hcHBlbmQobWVu
dS0+aXRlbXMsIG1lbnVfaXRlbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX2NvbnRleHRtZW51LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51
LmgKaW5kZXggYWY2ZDRhOC4uMThmNmJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a19jb250ZXh0bWVudS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29u
dGV4dG1lbnUuaApAQCAtMTkyLDYgKzE5Miw3IEBAIEVBUEkgY29uc3QgRWluYV9MaXN0ICAgICAg
ICAgICAgKmV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldChjb25zdCBFd2tfQ29udGV4CiAg
KgogICogQHBhcmFtIHR5cGUgc3BlY2lmaWVzIGEgdHlwZSBvZiB0aGUgaXRlbQogICogQHBhcmFt
IGFjdGlvbiBzcGVjaWZpZXMgYSBhY3Rpb24gb2YgdGhlIGl0ZW0KKyAqIEBwYXJhbSBwYXJlbnRt
ZW51IHNwZWNpZmllcyBhIHBhcmVudCBtZW51IG9mIHRoZSBpdGVtCiAgKiBAcGFyYW0gc3VibWVu
dSBzcGVjaWZpZXMgYSBzdWJtZW51IG9mIHRoZSBpdGVtCiAgKiBAcGFyYW0gdGl0bGUgc3BlY2lm
aWVzIGEgdGl0bGUgb2YgdGhlIGl0ZW0KICAqIEBwYXJhbSBjaGVja2VkIEBjIEVJTkFfVFJVRSBp
ZiB0aGUgaXRlbSBzaG91bGQgYmUgdG9nZ2xlZCBvciBAYyBFSU5BX0ZBTFNFIGlmIG5vdApAQCAt
MjAwLDcgKzIwMSw3IEBAIEVBUEkgY29uc3QgRWluYV9MaXN0ICAgICAgICAgICAgKmV3a19jb250
ZXh0X21lbnVfaXRlbV9saXN0X2dldChjb25zdCBFd2tfQ29udGV4CiAgKgogICogQG5vdGUgVGhl
IHJldHVybiB2YWx1ZSBAYiBzaG91bGQgQGIgYmUgZnJlZWQgYWZ0ZXIgdXNlLgogICovCi1FQVBJ
IEV3a19Db250ZXh0X01lbnVfSXRlbSAgICAgICpld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3
a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUsIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFj
dGlvbiwgRXdrX0NvbnRleHRfTWVudSAqc3VibWVudSwgY29uc3QgY2hhciAqdGl0bGUsIEVpbmFf
Qm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxlZCk7CitFQVBJIEV3a19Db250ZXh0X01lbnVf
SXRlbSAgICAgICpld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRl
bV9UeXBlIHR5cGUsIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRf
TWVudSAqcGFyZW50bWVudSwgRXdrX0NvbnRleHRfTWVudSAqc3VibWVudSwgY29uc3QgY2hhciAq
dGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxlZCk7CiAKIC8qKgogICog
RGVzdHJveXMgdGhlIGl0ZW0gb2YgdGhlIGNvbnRleHQgbWVudSBvYmplY3QuCkBAIC0zMjIsNiAr
MzIzLDE0IEBAIEVBUEkgRWluYV9Cb29sICAgICAgICAgICAgICAgICAgIGV3a19jb250ZXh0X21l
bnVfaXRlbV9lbmFibGVkX2dldChjb25zdCBFd2tfQ29uCiAgKi8KIEVBUEkgRWluYV9Cb29sICAg
ICAgICAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29u
dGV4dF9NZW51X0l0ZW0gKm8sIEVpbmFfQm9vbCBlbmFibGVkKTsKIAorLyoqCisgKiBHZXRzIHRo
ZSBwYXJlbnQgbWVudSBmb3IgY29udGV4dCBtZW51IGl0ZW0uCisgKgorICogQHBhcmFtIG8gdGhl
IGNvbnRleHQgbWVudSBpdGVtIG9iamVjdAorICogQHJldHVybiBhIGNvbnRleHQgbWVudSBvYmpl
Y3Qgb24gc3VjY2VzcyBvciBAYyBOVUxMIG9uIGZhaWx1cmUKKyAqLworRUFQSSBFd2tfQ29udGV4
dF9NZW51ICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoY29uc3QgRXdrX0Nv
bnRleHRfTWVudV9JdGVtICpvKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDNhOGI3MTMuLjhiMzYxNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtNDY0Niw2ICs0NjQ2LDEzIEBAIHZvaWQgZXdrX3Zp
ZXdfZnVsbHNjcmVlbl9leGl0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogfQogI2VuZGlm
CiAKK0V3a19Db250ZXh0X01lbnUqIGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEsIDApOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFy
dERhdGEsIHByaXYsIDApOworICAgIHJldHVybiBwcml2LT5jb250ZXh0TWVudTsKK30KKwogbmFt
ZXNwYWNlIEVXS1ByaXZhdGUgewogCiBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZShjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggYzFhODE5Zi4u
ZjAxZGE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTExMyw2ICsxMTMsNyBAQAog
I2lmbmRlZiBld2tfdmlld19oCiAjZGVmaW5lIGV3a192aWV3X2gKIAorI2luY2x1ZGUgImV3a19j
b250ZXh0bWVudS5oIgogI2luY2x1ZGUgImV3a19maWxlX2Nob29zZXIuaCIKICNpbmNsdWRlICJl
d2tfZnJhbWUuaCIKICNpbmNsdWRlICJld2tfaGlzdG9yeS5oIgpAQCAtMjc3NCw2ICsyNzc1LDE0
IEBAIEVBUEkgRWluYV9Cb29sIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2Z1bGxzY3JlZW5fc2V0
KEV2YXNfT2JqZWN0ICpvLCBFaW5hX0Jvb2wKICAqLwogRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdf
c2V0dGluZ19lbmFibGVfZnVsbHNjcmVlbl9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOwogCisv
KioKKyAqIEdldHMgdGhlIGNvbnRleHQgbWVudSBvYmplY3QuCisgKiBAcGFyYW0gbyBUaGUgdmll
dyB0aGF0IGNvbnRhaW5zIGNvbnRleHQgbWVudS4KKyAqCisgKiBAcmV0dXJuIGNvbnRleHQgbWVu
dSBzdHJ1Y3R1cmUgb24gc3VjY2VzcyBvciBAYyBOVUxMIG9uIGZhaWx1cmUKKyAqLworRUFQSSBF
d2tfQ29udGV4dF9NZW51ICpld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KGNvbnN0IEV2YXNfT2Jq
ZWN0ICpvKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX2NvbnRleHRtZW51LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX2NvbnRleHRtZW51LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kZDAzMzI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvdGVzdHMvdGVzdF9ld2tfY29udGV4dG1lbnUuY3BwCkBAIC0wLDAgKzEsMTIyIEBA
CisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisKKyAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuIFNlZSB0aGUgR05VCisgICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisg
ICAgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NyBVU0EKKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlVuaXRUZXN0VXRp
bHMvRVdLVGVzdEJhc2UuaCIKKyNpbmNsdWRlICJVbml0VGVzdFV0aWxzL0VXS1Rlc3RDb25maWcu
aCIKKyNpbmNsdWRlIDxFV2ViS2l0Lmg+CisjaW5jbHVkZSA8RWNvcmUuaD4KKyNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwordXNpbmcgbmFtZXNw
YWNlIEVXS1VuaXRUZXN0czsKKworLyoqCisgKiBAYnJpZWYgQ2hlY2tpbmcgd2hldGhlciBmdW5j
dGlvbiBjcmVhdGVzIHByb3BlciBtZW51IGl0ZW0uCisgKgorICogVGhpcyB0ZXN0IGNyZWF0ZXMg
YSBtZW51IGl0ZW0gYW5kIGNoZWNrcyBpZiBhbGwgbWVudSBpdGVtJ3MgYXR0cmlidXRlcyBhcmUK
KyAqIHRoZSBzYW1lIGFzIHBhc3NlZCB0byB0ZXN0ZWQgZnVuY3Rpb24uCisgKi8KK1RFU1RfRihF
V0tUZXN0QmFzZSwgZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldykKK3sKKyAgICBsb2FkVXJsKCk7
CisKKyAgICBFdmFzKiBldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQod2ViVmlldygpKTsKKyAg
ICBBU1NFUlRfVFJVRShldmFzKTsKKworICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biBtb3VzZURv
d247CisgICAgbW91c2VEb3duLmJ1dHRvbiA9IDM7CisgICAgbW91c2VEb3duLm91dHB1dC54ID0g
MDsKKyAgICBtb3VzZURvd24ub3V0cHV0LnkgPSAwOworICAgIG1vdXNlRG93bi5jYW52YXMueCA9
IDA7CisgICAgbW91c2VEb3duLmNhbnZhcy55ID0gMDsKKyAgICBtb3VzZURvd24uZGF0YSA9IDA7
CisgICAgbW91c2VEb3duLm1vZGlmaWVycyA9IGNvbnN0X2Nhc3Q8RXZhc19Nb2RpZmllcio+KGV2
YXNfa2V5X21vZGlmaWVyX2dldChldmFzKSk7CisgICAgbW91c2VEb3duLmxvY2tzID0gY29uc3Rf
Y2FzdDxFdmFzX0xvY2sqPihldmFzX2tleV9sb2NrX2dldChldmFzKSk7CisgICAgbW91c2VEb3du
LmZsYWdzID0gRVZBU19CVVRUT05fTk9ORTsKKyAgICBtb3VzZURvd24udGltZXN0YW1wID0gZWNv
cmVfbG9vcF90aW1lX2dldCgpOworICAgIG1vdXNlRG93bi5ldmVudF9mbGFncyA9IEVWQVNfRVZF
TlRfRkxBR19OT05FOworICAgIG1vdXNlRG93bi5kZXYgPSAwOworCisgICAgQVNTRVJUX1RSVUUo
ZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQod2ViVmlldygpLCAmbW91c2VEb3du
KSk7CisKKyAgICBFd2tfQ29udGV4dF9NZW51KiBjb250ZXh0TWVudSA9IGV3a192aWV3X2NvbnRl
eHRfbWVudV9nZXQod2ViVmlldygpKTsKKworICAgIEFTU0VSVF9UUlVFKGNvbnRleHRNZW51KTsK
KworICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIGl0ZW1UeXBlID0gRVdLX0FDVElPTl9U
WVBFOworICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGl0ZW1BY3Rpb24gPSBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fQ1VTVE9NX1RBR19OT19BQ1RJT047CisgICAgY29uc3QgY2hhciogaXRlbVRp
dGxlID0gIlRlc3QgSXRlbSI7CisgICAgYm9vbCBpdGVtQ2hlY2tlZCA9IGZhbHNlOworICAgIGJv
b2wgaXRlbUVuYWJsZWQgPSBmYWxzZTsKKworICAgIEV3a19Db250ZXh0X01lbnVfSXRlbSogY29u
dGV4dE1lbnVJdGVtID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhpdGVtVHlwZSwgaXRlbUFj
dGlvbiwgY29udGV4dE1lbnUsIDAsIGl0ZW1UaXRsZSwgaXRlbUNoZWNrZWQsIGl0ZW1FbmFibGVk
KTsKKworICAgIEFTU0VSVF9UUlVFKGNvbnRleHRNZW51SXRlbSk7CisKKyAgICBFWFBFQ1RfRVEo
aXRlbVR5cGUsIGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX2dldChjb250ZXh0TWVudUl0ZW0p
KTsKKyAgICBFWFBFQ1RfRVEoaXRlbUFjdGlvbiwgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlv
bl9nZXQoY29udGV4dE1lbnVJdGVtKSk7CisgICAgRVhQRUNUX0VRKGNvbnRleHRNZW51LCBld2tf
Y29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldChjb250ZXh0TWVudUl0ZW0pKTsKKyAgICBFWFBF
Q1RfU1RSRVEoaXRlbVRpdGxlLCBld2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfZ2V0KGNvbnRl
eHRNZW51SXRlbSkpOworICAgIEVYUEVDVF9FUShpdGVtQ2hlY2tlZCwgZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2NoZWNrZWRfZ2V0KGNvbnRleHRNZW51SXRlbSkpOworICAgIEVYUEVDVF9FUShpdGVt
RW5hYmxlZCwgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfZ2V0KGNvbnRleHRNZW51SXRl
bSkpOworfQorCisvKioKKyAqIEBicmllZiBDaGVja2luZyB3aGV0aGVyIGZ1bmN0aW9uIHJldHVy
bnMgcHJvcGVyIHBhcmVudCBtZW51LgorICoKKyAqIFRoaXMgdGVzdCBjcmVhdGVzIGEgY29udGV4
dCBtZW51cywgYW5kIGNoZWNrcyBpZiBjcmVhdGVkIGNvbnRleHQgbWVudSdzCisgKiBwYXJlbnQg
aXMgdGhlIHNhbWUgZm9yIGVhY2ggb2YgbWVudSBpdGVtcy4KKyAqLworVEVTVF9GKEVXS1Rlc3RC
YXNlLCBld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldCkKK3sKKyAgICBsb2FkVXJsKCk7
CisKKyAgICBFdmFzKiBldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQod2ViVmlldygpKTsKKyAg
ICBBU1NFUlRfVFJVRShldmFzKTsKKworICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biBtb3VzZURv
d247CisgICAgbW91c2VEb3duLmJ1dHRvbiA9IDM7CisgICAgbW91c2VEb3duLm91dHB1dC54ID0g
MDsKKyAgICBtb3VzZURvd24ub3V0cHV0LnkgPSAwOworICAgIG1vdXNlRG93bi5jYW52YXMueCA9
IDA7CisgICAgbW91c2VEb3duLmNhbnZhcy55ID0gMDsKKyAgICBtb3VzZURvd24uZGF0YSA9IDA7
CisgICAgbW91c2VEb3duLm1vZGlmaWVycyA9IGNvbnN0X2Nhc3Q8RXZhc19Nb2RpZmllcio+KGV2
YXNfa2V5X21vZGlmaWVyX2dldChldmFzKSk7CisgICAgbW91c2VEb3duLmxvY2tzID0gY29uc3Rf
Y2FzdDxFdmFzX0xvY2sqPihldmFzX2tleV9sb2NrX2dldChldmFzKSk7CisgICAgbW91c2VEb3du
LmZsYWdzID0gRVZBU19CVVRUT05fTk9ORTsKKyAgICBtb3VzZURvd24udGltZXN0YW1wID0gZWNv
cmVfbG9vcF90aW1lX2dldCgpOworICAgIG1vdXNlRG93bi5ldmVudF9mbGFncyA9IEVWQVNfRVZF
TlRfRkxBR19OT05FOworICAgIG1vdXNlRG93bi5kZXYgPSAwOworCisgICAgQVNTRVJUX1RSVUUo
ZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQod2ViVmlldygpLCAmbW91c2VEb3du
KSk7CisKKyAgICBFd2tfQ29udGV4dF9NZW51KiBjb250ZXh0TWVudSA9IGV3a192aWV3X2NvbnRl
eHRfbWVudV9nZXQod2ViVmlldygpKTsKKworICAgIEFTU0VSVF9UUlVFKGNvbnRleHRNZW51KTsK
KworICAgIGNvbnN0IEVpbmFfTGlzdCogY29udGV4dE1lbnVJdGVtcyA9IGV3a19jb250ZXh0X21l
bnVfaXRlbV9saXN0X2dldChjb250ZXh0TWVudSk7CisKKyAgICBBU1NFUlRfVFJVRShjb250ZXh0
TWVudUl0ZW1zKTsKKworICAgIGNvbnN0IEVpbmFfTGlzdCogbGlzdEl0ZXJhdG9yOworICAgIHZv
aWQqIGRhdGE7CisgICAgRUlOQV9MSVNUX0ZPUkVBQ0goY29udGV4dE1lbnVJdGVtcywgbGlzdEl0
ZXJhdG9yLCBkYXRhKQorICAgICAgICBFWFBFQ1RfRVEoY29udGV4dE1lbnUsIGV3a19jb250ZXh0
X21lbnVfaXRlbV9wYXJlbnRfZ2V0KHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbSo+
KGRhdGEpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3
a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCmlu
ZGV4IDlmYTIzZmIuLjI0MTU4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3Rz
L3Rlc3RfZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdr
X3ZpZXcuY3BwCkBAIC03MCwzICs3MCwzNSBAQCBURVNUX0YoRVdLVGVzdEJhc2UsIGV3a192aWV3
X3NldHRpbmdfZW5hYmxlX2Z1bGxzY3JlZW4pCiAgICAgQVNTRVJUX0ZBTFNFKGV3a192aWV3X3Nl
dHRpbmdfZW5hYmxlX2Z1bGxzY3JlZW5fZ2V0KHdlYlZpZXcoKSkpOwogI2VuZGlmCiB9CisKKy8q
KgorICogQGJyaWVmIENoZWNraW5nIHdoZXRoZXIgZnVuY3Rpb24gcmV0dXJucyBwcm9wZXIgY29u
dGV4dCBtZW51IHN0cnVjdHVyZS4KKyAqCisgKiBUaGlzIHRlc3QgY3JlYXRlcyBhIGNvbnRleHQg
bWVudSBhbmQgY2hlY2tzIGlmIGNvbnRleHQgbWVudSBzdHJ1Y3R1cmUKKyAqIGlzIG5vdCBOVUxM
OworICovCitURVNUX0YoRVdLVGVzdEJhc2UsIGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQpCit7
CisgICAgbG9hZFVybCgpOworCisgICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0
KHdlYlZpZXcoKSk7CisgICAgQVNTRVJUX1RSVUUoZXZhcyk7CisKKyAgICBFdmFzX0V2ZW50X01v
dXNlX0Rvd24gbW91c2VEb3duOworICAgIG1vdXNlRG93bi5idXR0b24gPSAzOworICAgIG1vdXNl
RG93bi5vdXRwdXQueCA9IDA7CisgICAgbW91c2VEb3duLm91dHB1dC55ID0gMDsKKyAgICBtb3Vz
ZURvd24uY2FudmFzLnggPSAwOworICAgIG1vdXNlRG93bi5jYW52YXMueSA9IDA7CisgICAgbW91
c2VEb3duLmRhdGEgPSAwOworICAgIG1vdXNlRG93bi5tb2RpZmllcnMgPSBjb25zdF9jYXN0PEV2
YXNfTW9kaWZpZXIqPihldmFzX2tleV9tb2RpZmllcl9nZXQoZXZhcykpOworICAgIG1vdXNlRG93
bi5sb2NrcyA9IGNvbnN0X2Nhc3Q8RXZhc19Mb2NrKj4oZXZhc19rZXlfbG9ja19nZXQoZXZhcykp
OworICAgIG1vdXNlRG93bi5mbGFncyA9IEVWQVNfQlVUVE9OX05PTkU7CisgICAgbW91c2VEb3du
LnRpbWVzdGFtcCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKKyAgICBtb3VzZURvd24uZXZlbnRf
ZmxhZ3MgPSBFVkFTX0VWRU5UX0ZMQUdfTk9ORTsKKyAgICBtb3VzZURvd24uZGV2ID0gMDsKKwor
ICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KHdlYlZp
ZXcoKSwgJm1vdXNlRG93bikpOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdfY29udGV4dF9t
ZW51X2dldCh3ZWJWaWV3KCkpKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAzM2U2MjBmLi5kOGJkOGM1IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAt
MTUgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGNvbnRleHRDbGljayBmb3IgRHVtcFJlbmRlclRyZWVFdmVudFNlbmRlciBiYXNpbmcg
b24gV2ViS2l0IEdUSworICAgICAgICBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHA6CisgICAgICAgIChnZXRNZW51SXRlbVRpdGxl
Q2FsbGJhY2spOgorICAgICAgICAoc2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrKToKKyAgICAgICAg
KG1lbnVJdGVtQ2xpY2tDYWxsYmFjayk6CisgICAgICAgIChjb250ZXh0Q2xpY2tDYWxsYmFjayk6
CisKIDIwMTItMTAtMTUgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBbUXRdW1dLMl0gQnVpbGRmaXggZm9yIG5ld2VyIFF0NS4KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwCmluZGV4IDc4ZDJkYmMuLjg0YmQ3MTMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcApAQCAtMjY5LDYgKzI2OSwxMDEgQEAg
c3RhdGljIHVuc2lnbmVkIG1vZGlmaWVyc0Zyb21KU1ZhbHVlKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBjb25zdCBKU1ZhbHVlUmVmIG1vZGkKICAgICByZXR1cm4gbW9kaWZpZXI7CiB9CiAKK3N0YXRp
YyBKU1ZhbHVlUmVmIGdldE1lbnVJdGVtVGl0bGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSBzdGF0
aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihKU09iamVjdEdldFByaXZhdGUob2JqZWN0
KSk7CisgICAgQ1N0cmluZyBsYWJlbDsKKyAgICBpZiAoZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5
cGVfZ2V0KGl0ZW0pID09IEVXS19TRVBBUkFUT1JfVFlQRSkKKyAgICAgICAgbGFiZWwgPSAiPHNl
cGFyYXRvcj4iOworICAgIGVsc2UKKyAgICAgICAgbGFiZWwgPSBld2tfY29udGV4dF9tZW51X2l0
ZW1fdGl0bGVfZ2V0KGl0ZW0pOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRl
eHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGxhYmVsLmRhdGEoKSkpOworfQorCitz
dGF0aWMgYm9vbCBzZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVm
IHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3N0YXRpYyBKU1ZhbHVlUmVmIG1lbnVJdGVtQ2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCit7CisgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtID0gc3RhdGlj
X2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKKyAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fc2VsZWN0KGV3a19jb250ZXh0X21lbnVf
aXRlbV9wYXJlbnRfZ2V0KGl0ZW0pLCBpdGVtKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7Cit9CisKK3N0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIHN0YXRpY01lbnVJ
dGVtRnVuY3Rpb25zW10gPSB7CisgICAgeyAiY2xpY2siLCBtZW51SXRlbUNsaWNrQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKKyAgICB7IDAsIDAsIDAgfQorfTsKKworc3RhdGljIEpTU3RhdGljVmFsdWUgc3Rh
dGljTWVudUl0ZW1WYWx1ZXNbXSA9IHsKKyAgICB7ICJ0aXRsZSIsIGdldE1lbnVJdGVtVGl0bGVD
YWxsYmFjaywgc2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5v
bmUgfSwKKyAgICB7IDAsIDAsIDAsIDAgfQorfTsKKworc3RhdGljIEpTQ2xhc3NSZWYgZ2V0TWVu
dUl0ZW1DbGFzcygpCit7CisgICAgc3RhdGljIEpTQ2xhc3NSZWYgbWVudUl0ZW1DbGFzcyA9IDA7
CisKKyAgICBpZiAoIW1lbnVJdGVtQ2xhc3MpIHsKKyAgICAgICAgSlNDbGFzc0RlZmluaXRpb24g
Y2xhc3NEZWZpbml0aW9uID0geworICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAg
ICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgICAgICBjbGFzc0Rl
ZmluaXRpb24uc3RhdGljRnVuY3Rpb25zID0gc3RhdGljTWVudUl0ZW1GdW5jdGlvbnM7CisgICAg
ICAgIGNsYXNzRGVmaW5pdGlvbi5zdGF0aWNWYWx1ZXMgPSBzdGF0aWNNZW51SXRlbVZhbHVlczsK
KworICAgICAgICBtZW51SXRlbUNsYXNzID0gSlNDbGFzc0NyZWF0ZSgmY2xhc3NEZWZpbml0aW9u
KTsKKyAgICB9CisKKyAgICByZXR1cm4gbWVudUl0ZW1DbGFzczsKK30KKworc3RhdGljIEpTVmFs
dWVSZWYgY29udGV4dENsaWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3Vu
dCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQor
eworICAgIEV2YXNfT2JqZWN0KiB2aWV3ID0gZXdrX2ZyYW1lX3ZpZXdfZ2V0KGJyb3dzZXItPm1h
aW5GcmFtZSgpKTsKKyAgICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKKworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dl
dCh2aWV3KTsKKyAgICBpZiAoIWV2YXMpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKKworICAgIEV2YXNfRXZlbnRfTW91c2VfRG93biBtb3VzZURvd247Cisg
ICAgbW91c2VEb3duLmJ1dHRvbiA9IDM7CisgICAgbW91c2VEb3duLm91dHB1dC54ID0gZ0xhc3RN
b3VzZVBvc2l0aW9uWDsKKyAgICBtb3VzZURvd24ub3V0cHV0LnkgPSBnTGFzdE1vdXNlUG9zaXRp
b25ZOworICAgIG1vdXNlRG93bi5jYW52YXMueCA9IGdMYXN0TW91c2VQb3NpdGlvblg7CisgICAg
bW91c2VEb3duLmNhbnZhcy55ID0gZ0xhc3RNb3VzZVBvc2l0aW9uWTsKKyAgICBtb3VzZURvd24u
ZGF0YSA9IDA7CisgICAgbW91c2VEb3duLm1vZGlmaWVycyA9IGNvbnN0X2Nhc3Q8RXZhc19Nb2Rp
Zmllcio+KGV2YXNfa2V5X21vZGlmaWVyX2dldChldmFzKSk7CisgICAgbW91c2VEb3duLmxvY2tz
ID0gY29uc3RfY2FzdDxFdmFzX0xvY2sqPihldmFzX2tleV9sb2NrX2dldChldmFzKSk7CisgICAg
bW91c2VEb3duLmZsYWdzID0gRVZBU19CVVRUT05fTk9ORTsKKyAgICBtb3VzZURvd24udGltZXN0
YW1wID0gZWNvcmVfbG9vcF90aW1lX2dldCgpOworICAgIG1vdXNlRG93bi5ldmVudF9mbGFncyA9
IEVWQVNfRVZFTlRfRkxBR19OT05FOworICAgIG1vdXNlRG93bi5kZXYgPSAwOworCisgICAgZXdr
X3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQodmlldywgJm1vdXNlRG93bik7CisgICAg
RXdrX0NvbnRleHRfTWVudSogZXdrTWVudSA9IGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQodmll
dyk7CisKKyAgICBKU1ZhbHVlUmVmIHZhbHVlUmVmID0gSlNPYmplY3RNYWtlQXJyYXkoY29udGV4
dCwgMCwgMCwgMCk7CisgICAgaWYgKGV3a01lbnUpIHsKKyAgICAgICAgY29uc3QgRWluYV9MaXN0
KiBld2tNZW51SXRlbXMgPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoZXdrTWVudSk7
CisgICAgICAgIEpTVmFsdWVSZWYgYXJyYXlWYWx1ZXNbZWluYV9saXN0X2NvdW50KGV3a01lbnVJ
dGVtcyldOworCisgICAgICAgIGNvbnN0IEVpbmFfTGlzdCogbGlzdEl0ZXJhdG9yOworICAgICAg
ICB2b2lkKiBkYXRhOworICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICBFSU5BX0xJU1Rf
Rk9SRUFDSChld2tNZW51SXRlbXMsIGxpc3RJdGVyYXRvciwgZGF0YSkKKyAgICAgICAgICAgIGFy
cmF5VmFsdWVzW2luZGV4KytdID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIGdldE1lbnVJdGVtQ2xh
c3MoKSwgZGF0YSk7CisKKyAgICAgICAgaWYgKGluZGV4KQorICAgICAgICAgICAgdmFsdWVSZWYg
PSBKU09iamVjdE1ha2VBcnJheShjb250ZXh0LCBpbmRleCAtIDEsIGFycmF5VmFsdWVzLCAwKTsK
KyAgICB9CisgICAgcmV0dXJuIHZhbHVlUmVmOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBtb3Vz
ZURvd25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaW50IGJ1
dHRvbiA9IDA7CkBAIC04MDMsNiArODk4LDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0VG91Y2hN
b2RpZmllckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW4KIH0K
IAogc3RhdGljIEpTU3RhdGljRnVuY3Rpb24gc3RhdGljRnVuY3Rpb25zW10gPSB7CisgICAgeyAi
Y29udGV4dENsaWNrIiwgY29udGV4dENsaWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICB7ICJtb3Vz
ZVNjcm9sbEJ5IiwgbW91c2VTY3JvbGxCeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgeyAiY29udGlu
dW91c01vdXNlU2Nyb2xsQnkiLCBjb250aW51b3VzTW91c2VTY3JvbGxCeUNhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgeyAibW91c2VEb3duIiwgbW91c2VEb3duQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171413</attachid>
            <date>2012-10-30 04:05:27 -0700</date>
            <delta_ts>2012-10-30 09:19:24 -0700</delta_ts>
            <desc>rebased patch</desc>
            <filename>rebased.patch</filename>
            <type>text/plain</type>
            <size>33635</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MjBjODA0Li42YmRiNjBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAt
MzAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSBjb250ZXh0Q2xpY2sgZGVwZW5kZW50IHRlc3RzIHRvIFdlYktpdDIgVGVzdEV4cGVj
dGF0aW9ucyBhbmQKKyAgICAgICAgYWRkIG5ldyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorCiAyMDEyLTEwLTMwICBab2x0YW4gTnl1bCAgPHpvbHRhbi5ueXVsQGludGVsLmNvbT4KIAog
ICAgICAgICAzZCByb3RhdGlvbiB3aXRoIFswLCAwLCAwXSBkaXJlY3Rpb24gdmVjdG9yIHNob3Vs
ZCBub3QgYmUgYXBwbGllZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdr
Mi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IGFmZTRjY2YuLjI1NWY0OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI3MiwzICsyNzIsMjAgQEAgd2Via2l0
Lm9yZy9iLzk2NjQxIG1lZGlhL3ZpZGVvLXNlZWstcGFzdC1lbmQtcGxheWluZy5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvOTE4NTQgZWRpdGluZy9zcGVsbGluZyBbIFNraXAgXQogCiB3
ZWJraXQub3JnL2IvMTAwMjQ4IGZhc3QvZm9ybXMvc2VsZWN0LW11bHRpcGxlLWVsZW1lbnRzLXdp
dGgtbW91c2UtZHJhZy5odG1sIFsgRmFpbHVyZSBdCisKKyMgV2ViS2l0VGVzdFJ1bm5lciBuZWVk
cyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrCit3ZWJraXQu
b3JnL2IvODY4ODEgZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFnZS1jcmFz
aC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24v
NTM1NDQ1NS0xLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTIuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGVk
aXRpbmcvc2VsZWN0aW9uL2J1dHRvbi1yaWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBdCit3ZWJr
aXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQuaHRt
bCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRl
eHQtbWVudS10ZXh0LXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4
ODEgZWRpdGluZy9zZWxlY3Rpb24vZW1wdHktY2VsbC1yaWdodC1jbGljay5odG1sIFsgRmFpbHVy
ZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zaGFkb3cvcmlnaHRjbGljay1vbi1tZXRl
ci1pbi1zaGFkb3ctY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZh
c3QvZXZlbnRzL2NvbnRleHQtbm8tZGVzZWxlY3QuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9y
Zy9iLzg2ODgxIGZhc3QvZXZlbnRzL2NvbnRleHQtb25tb3VzZWRvd24tZXZlbnQuaHRtbCBbIEZh
aWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZlbnRzL2NvbnRleHRtZW51LXNjcm9s
bGVkLXBhZ2Utd2l0aC1mcmFtZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEg
ZmFzdC9ldmVudHMvcmlnaHQtY2xpY2stZm9jdXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9y
Zy9iLzg2ODgxIGZhc3QvZXZlbnRzL3NlbGVjdHN0YXJ0LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJp
Z2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBtZWRpYS9jb250
ZXh0LW1lbnUtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgbWVk
aWEvY29udHJvbHMtcmlnaHQtY2xpY2stb24tdGltZWJhci5odG1sIFsgRmFpbHVyZSBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDhjZTVmYmYuLmU2NTM1
NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzMw
LDI3ICsxMzMwLDYgQEAgd2Via2l0Lm9yZy9iLzgyMTQwIGluc3BlY3Rvci9nZW9sb2NhdGlvbi1l
cnJvci5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODIxNDAgaW5zcGVjdG9yL2dlb2xv
Y2F0aW9uLXN1Y2Nlc3MuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzgyMTQwIGluc3Bl
Y3Rvci9nZW9sb2NhdGlvbi13YXRjaFBvc2l0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIAotIyBFRkwn
cyBFdmVudFNlbmRlciBkb2VzIG5vdCBpbXBsZW1lbnQgY29udGV4dENsaWNrIHlldAotd2Via2l0
Lm9yZy9iLzg2MDkxIGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LXN0YW5kYWxvbmUtaW1hZ2UtY3Jh
c2guaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc2VsZWN0aW9u
LzUzNTQ0NTUtMS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9z
ZWxlY3Rpb24vYnV0dG9uLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi84NjA5MSBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sIFsgRmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51
LXRleHQtc2VsZWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0
aW5nL3NlbGVjdGlvbi9lbXB0eS1jZWxsLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KLXdl
YmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9u
cy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLWlucHV0LXNlYXJjaC1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvODYwOTEgZmFzdC9ldmVudHMvY29udGV4dC1vbm1vdXNlZG93bi1ldmVudC5odG1sIFsgRmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZmFzdC9ldmVudHMvY29udGV4dG1lbnUtc2Nyb2xs
ZWQtcGFnZS13aXRoLWZyYW1lLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBm
YXN0L2V2ZW50cy9yaWdodC1jbGljay1mb2N1cy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvODYwOTEgZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtcHJldmVudC1zZWxlY3Rpb24tb24tcmln
aHQtY2xpY2suaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIG1lZGlhL2NvbnRl
eHQtbWVudS1hY3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBtZWRp
YS9jb250cm9scy1yaWdodC1jbGljay1vbi10aW1lYmFyLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi84NjA5MSBlZGl0aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1ldGVyLWluLXNoYWRv
dy1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCi0KLSMgRUZMJ3MgRXZlbnRTZW5kZXIgY29udGV4dENs
aWNrLCBuZWVkcyBiYXNlbGluZXMKLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NlbGVjdGlv
bi81MzU0NDU1LTIuaHRtbCBbIE1pc3NpbmcgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGZhc3QvZXZl
bnRzL2NvbnRleHQtbm8tZGVzZWxlY3QuaHRtbCBbIE1pc3NpbmcgXQotCiAjIElFVEMgbmFtZXNw
YWNlIGZhaWx1cmVzCiB3ZWJraXQub3JnL2IvODYxNDIgaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNw
YWNlcy9zeW50YXgtMDIxLnhtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCkBAIC0xNjc4LDMgKzE2
NTcsOSBAQCB3ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNz
aW9uL0ludGVsL3Jlc291cmNlLXRpbWluZyBbIFNraQogIyBUaGUgcmVkIHNlY3Rpb24gaXMgcmVu
ZGVyZWQgYXQgdGhlIHdyb25nIHBvc2l0aW9uLgogd2Via2l0Lm9yZy9iLzEwMDUxOSBmYXN0L2lt
YWdlcy9qcGVnLXdpdGgtY29sb3ItcHJvZmlsZS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2Iv
MTAwNTE5IGZhc3QvaW1hZ2VzL3BuZy13aXRoLWNvbG9yLXByb2ZpbGUuaHRtbCBbIFNraXAgXQor
CisjIEVudGVyaW5nIGludG8gZnVsbCBzY3JlZW4gcGxheWJhY2sgbW9kZSBmYWlscyB3aGVuIHRy
aWdnZXJlZCBieSBjb250ZXh0IG1lbnUKK0J1ZyhFRkwpIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rp
b25zLmh0bWwgWyBGYWlsdXJlIF0KKworIyBFU0Mga2V5IGRvZXMgbm90IGNhbmNlbCBjb250ZXh0
IG1lbnUgaW4gRUZMIHBvcnQKK0J1ZyhFRkwpIGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5o
dG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZWRp
dGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9lZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5MzU5YTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0yLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoOCw4KSBzaXplIDYxMngxNDIKKyAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA2
MTJ4MTQyIFtib3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCisgICAgUmVuZGVyQmxvY2sge0gx
fSBhdCAoNiw2KSBzaXplIDYwMHgzNworICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNDUxeDM2CisgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ1MTogIldvcmQg
c2VsZWN0aW9uIG9uIHJpZ2h0IGNsaWNrIHRlc3QiCisgICAgUmVuZGVyQmxvY2sgKGFub255bW91
cykgYXQgKDYsNjQpIHNpemUgNjAweDcyCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA1OTd4MzcKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTk3OiAiVGhp
cyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCByaWdodCBjbGlja2luZyBub24tZWRpdGFibGUgY29u
dGVudCBvbmx5IGNyZWF0ZXMgYSB3b3JkIHNlbGVjdGlvbiBmb3IiCisgICAgICAgIHRleHQgcnVu
IGF0ICgwLDE4KSB3aWR0aCAxMDM6ICJjbGlja3Mgb3ZlciB0ZXh0LiAiCisgICAgICBSZW5kZXJJ
bmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTh4MTkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgxMDMsMTgpIHNpemUgMTh4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTAzLDE4
KSB3aWR0aCAxODogIlRvIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMjEsMTgpIHNp
emUgNTc3eDU1CisgICAgICAgIHRleHQgcnVuIGF0ICgxMjEsMTgpIHdpZHRoIDQxMTogIiBydW4g
bWFudWFsbHksIHJpZ2h0IGNsaWNrIG9uIHRleHQsIGFuZCBhIHdvcmQgc2hvdWxkIGJlIHNlbGVj
dGVkLiAiCisgICAgICAgIHRleHQgcnVuIGF0ICg1MzIsMTgpIHdpZHRoIDM1OiAiUmlnaHQiCisg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDM2KSB3aWR0aCA1Nzc6ICJjbGljayBvbiB0aGUgZW1wdHkg
c3BhY2Ugb3V0c2lkZSBhbmQgdG8gdGhlIHJpZ2h0IG9mIHRoZSBibGFjayBib3JkZXIsIHRoZSBz
ZWxlY3Rpb24gc2hvdWxkIGJlIgorICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1NCkgd2lkdGggNTk6
ICJyZW1vdmVkLiIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAor
Y2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge0gxfSBvZiBi
b2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZmFzdC9ldmVudHMvY29u
dGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
ZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFiZDdiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJUZXh0Q29u
dHJvbCB7SU5QVVR9IGF0ICgyLDIpIHNpemUgMTkzeDI4IFtiZ2NvbG9yPSNGRkZGRkZdCisgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE0LDE2KSBzaXplIDE4NngxOCBz
Y3JvbGxIZWlnaHQgMTkKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDQsNikgc2l6ZSAxODZ4MTgK
KyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxMjR4MTkKKyAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDEyNDogInNvbWUgc2FtcGxlIHRleHQiCitzZWxlY3Rpb24gc3Rh
cnQ6IHBvc2l0aW9uIDUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0RJVn0gb2YgeyNz
aGFkb3ctcm9vdH0gb2YgY2hpbGQgMSB7SU5QVVR9IG9mIGJvZHkKK3NlbGVjdGlvbiBlbmQ6ICAg
cG9zaXRpb24gMTUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDAge0RJVn0gb2YgeyNzaGFk
b3ctcm9vdH0gb2YgY2hpbGQgMSB7SU5QVVR9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW9ubW91c2Vkb3duLWV2ZW50LWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0
LW9ubW91c2Vkb3duLWV2ZW50LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzQ1MmU1OTA1NTll
MzcxMGE3YmFjZjJiNTE0OTEyYjAxMDc1NjM2CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3MTU3
CnpjbWVJMWBCIyV5eU18TE5yUnM7WVVsQSVHc05qSDFHUllXSHR3MTlKd1VqQjRwb302eldERyt7
dnt0UEhBUnUhOQp6aXZsVkYzSWRXcWY+Sn52ZkNgQW41YXV1azU9YU9NPFVEa3BiXmU2JmxQaFpf
RHxAeyFkJXdAVkA5VmlZeCVzUHUKenQ/VWteOVM4KE03WDhicS13PXB4YHckMnp3e045aldWaWg4
IXw8VVFZMyZ5MmJIVUZpQz9ZQlo7Y3Q1MCRKOV8/CnotYE1Ed3Y1fXYqdWRqaUxwU1FvU3NnYnd3
ZDNfJmFBS0s7aFUyeE1rLWdkVTk1UiRGZXtmM2U+MVZUOXFlZEAmVAp6Rl9lWCZfYEImKjg7IzJX
YnVTMClQaUUjYC1hamc+YDBjNlNwU0dXTmBwQFktSTxMZyl1ZWBPN0VYJmJNemZiOG4KemF0PnZx
cVVXUVlCeX18TjgyWD4qS2heRUlzYHpWKmM4MH1ZbzskWEdRczRfVyFscjU/TkhqSkR4bF8lMFZS
ZTArCnpTdDtfUXYpQ2RQTEM0fiNUV1dFajZ5aGd9Ty1VVEFzPSEha0N0X2IjcVpIIVhMKGRTMUtl
bFRsRX0jM3FwJHljcwp6KTJBKXRSO0olU3V1V0QpUDktcGpja09QUENgbHYhYSVNVGdePjE2Wi1t
USs/YjRmKUhIOGVsckkxQ0JOKzFZdlMKelcwQG1yVmBWS1lBI1ElNG1oKDE2eSg4QnxCNChxPVBn
K3UmOSVHOHtAKWxWUCQ8azwoZVU0RWVpPU5QK1QjJFAwCnohbjwhIzdpRCYtdE8qI0JwX2dJZnlZ
YHc+V31qMSgkYE1PcD9QXyt5WkNkdjFqJEZaVEpaRGxvSHVDREttWDtRdAp6d292b0V5M0pyYnI9
Z21ARjZNUk5LZmVlUnVQcS1vQTloUzVpXnRWYSFkQSE2KWpfb3YtV05Je0dnTzlTI3VKSXsKemtw
e0VhdkFhQiUtK3c9b2RweEF+aUYyK0F6RmhFN1Q0QyR+WkdUWVdRcU5+PClaRUhVY2N3MHU4WlRJ
Yzg9YWJWCnpCZGtKJldPP1VsVzRETVk9MWdBJllxelZYSzU9Y3l5fkA3flEkNT9KUlolfSoqXmEz
VlozeW5LKUdCe2o9K2x5OQp6TSN3Vl49KUFNWEBScThfUmtFJFNTWFpxez88Ymw2e0NIX05tWXZX
T1ZEP3Bab3VYVXVZWVBQeiZWTG9IQEZ7YTIKekQhZHFhV01SOD97KUAod00kXn1XP18kJn50SyRU
ViRlNSlPQyomPXNuV3srWGBqfkIyZCUyOG5PNVpzP3FsJXwoCnpVOW5ObFE7c0VoKFVeZ241SXk/
Wm08QyQrPDtXa3xoNS10dUxsMlV6RnQ4PWVNZz91UlhBJGhxZmx5am1SLSFWcwp6ZVk9WC1hUXNn
O1pYIXVLPDdIKUtDNiE4ejx4UCRIWGw+SFhnP3MxbnE9fUs2eHNuMHQwdDJCJF9qaD0xTm1AV3sK
el51bE5SZGBtTjQqIVl7b3o2dmklMzJOZ3BJXyhnQXZsemMpSUdpOUQ+Y2hwQ1M+SU1yeDRIOTY+
Y2hmOT9AbyVACnpqYV8/WktOUGlobjZNfXRkKj5QaSE9bHYrQD0lRm1MMHRyISNMSCFBPiohJFhX
MHAlUj0kfnNzMjAmfjl4U3JwRgp6MVBjU1QwaTRSOXpWWldkISV5OS1HSTRRJSY5YDwzPUhSMEh7
aEZASm1LczBxRXBeNUJSfkVUZTs5OFJRaXBKRj4KelpXdjVseUgyZiY2KXxSY3RhK2RvdWNxKCkm
JXNSM1JFXmQqaU9MZGdDV0U7Mk8yKkk2NCtMR2xEKXIjV2xQNXdSCnpgIUc4RW05KmwkJSo+S040
OGYtVlZuXnM/VFJMbiFFQ0FuP2tMKVkrNVAmMmJMSSFHRko7UiNZKHpSK3MyMyZBQgp6KG50M0lx
O01rYmZsY0Q8eVQ1PEZxVFpKaS18NSQ4bVB1OUFpRDwtWmRwVFdyZHpkV1EkVHtmSHk7OEB7X248
fEcKenEjZCUpRn5RU2VieGBaNSomYT1IRUhDZVgmJSk+R182IX0xJG13NiotVFJJRUppQjNpSWVO
WCtpWENgTCEqQGtSCnpNYUNCOFNYeGJDVlBTb0plUHR5VnsrZ0RLJlImeUhQeWc/Q0c3RGArZCVG
bT1pdUMzMU1RMV4kPH1vZilHZWdnZAp6MVYrJkRzRjdEYXZtRFdDI3c5aSM7bSlNLXZPcGwtb2Rm
aUBUMjNRN0NNPGBYOUZmamdZQFNCekhBUCZeZHV6cXMKejs1dHhscldlVCFveXo1TTx4dHtoamxK
YigzQ0JQPzltTDA4Mz0lU0sjZj9yQiFoJXZZZyMyMHRSLUJfaU48dEs5CnpPWEhzOUUwbjs3e2Fm
QUVjMEM0aGByWTUlQzV7WnFyaWQwYmNsPV97Qk9ga1d1UndBcC0/R2xCIzMzK2VAemU3TQp6UG9E
LTB4cyV7UWBzajcjcWVxV2M2M0VOVmlkfmpHPTV3REdVQyk8R3pAT1R8QGIrRjtGWU1XfiVPaDlp
cU5tQFQKej1MfFBRNXhSIWB4e0t8Yil4YFYoeXFiQ0JHPnQ+Mm9vfjgrV3Qpc2NqP3Y/Zm8+dDxl
Q2l0PlQkPj43Y0p4I3tPCnowKURIO0lHazFCaGxoZFAjajxLdl57QHtqeyhAY2lpVlNNKVJpWDlt
PT1vM2p7Pi1jajstcHF+MHo9VGlObU1hMgp6OzRMU2I0Nm0oP0MjeGFqak9ARnFoSFh8cEw7Vlha
MkUoSF5SNF5GZm17Vis8cT5fRT97N0Q5QiFAeT9fO0M2VGEKeiZvJShmYkImamA5ST0hVilQWkNo
T2o3TDFfRXphUkBEYUYjKSFyPihNOFlPe2k5WXckOzh9RHFSY0RAc1cxZXwrCno8M2I4WUp9X3M/
UG1gMEFiM2h2KShpUnU/ODJVZDlHelM3Zl4qPlQ4eEZNOD97Z25odWNxcXh7MjRsVXFxQkJlMQp6
WE5zQTwqQ0paUShFclMreUtqNWx5MEpQbHd6ZTtSZH4mZEthYjRqQDtYYCFWSSk1UnpQTSRDbjw/
OFA0UEgqflgKemtyYH1lbn4ocHwrQTFNailzUGs5SElkIyprbWx4PGdYSHwkR2YpeT83dlEkckN9
Q3JAdU9NZFpyamRRSjhmdFQ7CnorbVJKRlNDKmNoRT9wajdMJXIlPTg7Uyl0RUs9dm4hQ0F+bkI/
STVMSW1TVXNGTiZxfSlmLUVHKj0kXndFVHJvXwp6M3VTRVpuSm87XzVhJUxZaCtKeWltWXZNKkRx
dVohRGo5RHtFKHpSJVpxcDY5S0okfSg8PUI4dU5fTyF+djMraTsKek1sNEtqU2ZIbittMWBYMiht
NTBxdCtfZWtRNF80R3NWU1dFbEg+QCp3e35rTzhERCQ+MyZzcXtESVg3aHtwYUBWCnpXWj12JmZR
SCRVdDtuUXt4JFN7RHBgVmBaPWU1RkUmNHU+fGN3cnJhUmhZUm0qRj14a05gYWxsYn1rRiVgd2Ur
ewp6aHdRc0dvci08dy1NKEo0VkUhXzI7OElFekpBY1pubT1lKUN0bmF9YEBhT3hUc3tSNGBTUy1C
ZyZMP3RQbmZ8fisKejhjZWdaej1XK0N5KlN3YUJDczJyd1YmNkxBbVNyOFI9TlhTPW52Zm0maCoz
eC1CYkxlWU1Vcyo1UDwre1VlZDBkCnp0b0pybmVAZVVHSlF4IXRYZHwjRVJEQEY8eHB0PmRaJGpA
M3UjemtfJHB2cj1oWFpVbz53MW5IPDVIU194Z0UxRQp6WnxlV0FvenBsdzxWfl5CUE91Z31DOEcw
amN7eU13JHp0KFF6WkpfVVh1X2o3TWN0TShXOVJpR1RoenpjVCROSTAKelRpRFN7X0FsS2BsZ0t5
PXkoV2VtR3VAeWRXMXBWO1I5cDIhKW5MN3tka2xQcz50aFE8Z1h8c2tnPz0wQnRMVzdGCno8dX1T
KDx9fmNHYmkhYiRRMCYoPE1lPFUwUCt4SWkrQF9FbnU8M0B3O2pxfF4rMHFKeUVDPEt9TEFkSmZP
MjJqdQp6dl9UYlo+R2UpbEVJU1dpSl9HJjBrfGQ3ZD5xM3R0UE51dC1HZDk8eTQ5JVl9MmgwdURA
dF9telBeLUg8P3wxWkEKej1JZD55RmtqSDcraSQ7ZCRwU1peYFNOJVJ2fko4PXkle3VMKEFyVm4w
ZnEofCtKXi0mPTcpaW9BNVk0XmQqV1FtCnpkfn1PcUoqd3FHSUJ+bWZkM01wNmxiNDMlcmZhenQy
YnpPMTw3QiQ7KlUxYS1KPkZ4WlZeJn0jbzFtbCs+Jkx9agp6a3QoNmg2ejJqIz5BKlotOEdWQzR1
elVDSllfREIoO1oqTDFOS2ojc082Z3xTcDg0VWhnQ2Bnc0NJV0c7eXRpI2gKelJDWVojP3lZLWg+
MU1SSTxrciRlbSp8PXZAJS12Kz8rYFVnKiY7ZF5mVXhDaHFLQiRreENUMWFyM187bl5idlpTCnp6
a28lU0tzYEtUMVk+ZmZ3V1UhRnY7ISFMc2I8SXVIWWY8YjN2JnUpeTRrTn0pUl5fRlhaZXtmNn1T
ZkFUIztRUwp6OVNTUCNBTCVfX1E4Y1Z4RnlYMjZAYXpLe3BFcX02Q3NKJm9nIzAoa2N5MEdlLX16
Nl40X343RWR9RyVeTnYrWjAKenM8NUdKTXtNK345dG0jc1YmOGQoKT5HcStGQ0BzUlQwKCg4MDBh
TG0lcWdVdyEmSF92RX1RNmp6ajVaZXRnPyVYCnolVz9kMHtrNUhuTm9wdzR5WmF9cTA9alV1cCtr
KlZ3JXNtcHAhPFFfZSpxbUVxUjFGKFdaPX1udE5YaiRON0FQTQp6KzF4JGFUM30rfFpJIVVqJXR3
bTZCPHA/OUU7K3p6OFAlQTU/MkxmQ0QzPz9YY3RwO0pCRDw2PUVpcHlYRHlFbkEKek1Qd2wzYDVO
Zm89MnFMQS1Da1pBNj4lNzNSKVhMbEl2Z1ZEeWRJUXc/KFo5XzdlN0FqaHFPMmhBajs3M240K0Ft
Cno4RWYmZllwfUl5dHV5THpCKEhhR3xLWDczJURiTi1mfEJ8RDBpeEE4ZnxOfEZiXzspRGZKV2V1
NDN6dEBlO3R0ZAp6bTdfaHw7Mm92N0A7UnUmZXdHR2VTdU1qU1hsY2VKM3soZVk3U0c3MjUkfHNK
RypmUEwmfXAtSWMwRXAwekRlI0EKej45S1FWd2MkOFdPd2khVmV8eUE0bnF6KU1yJiUoUnt8V3JJ
MS1oK0dwM2VLUSEmM0l9blhGNTJ5JXFuSGsxSDxMCno0P3dYS3t+c2JYP0A3VkFqc2dfOUJnWXQ+
TitHUyFmYnEmaUZzWGc2fDdJdipyWU4lfWJaQzlfaEZVcDZrYn1MMgp6VDcmR3tXal47NW9hYmw3
QE5HP25DeWBTIW4qUTI5YV5oYERUVShuM2ByPH5GPFlTcX5WWUM1Y2pNPj4pM3JAV3UKej4mfFEq
dyQhQztIbGUqT0V9NyFuKGVRVktyaGlMdFoqT20oWEdGKlM2SWFWPWkmT3w8KUU2JmEzPlFSOVNU
QDUlCno1UGBePzIwXmopeUBWQD9iR29OU3c3RiNAbjt+aFBzVyt1R1NOJURVYWM7WXdve3JBTzI4
Wm0kSWozWmwqO3NOJAp6emw5aylwIWx6c1VPVE5WNSpXMTVBdTFFRVNeKjlSdng0U3slZVRGPk4j
QGNTR2F5aCloPm5MR0NeMy1TZFQzenwKenthcT4wPTdeXl9XOFp2ejxVNn1uSXc9VHBVcDhZbkZN
aEVPQ0Y8YHc5YGdCflBASDx1anY2QD00Jl5DX3tFYTd6CnoySD4wbD9MaGQ/NTAyWEsyYCZPUVB9
JXdNYExSPms1blZfQHJ2Km5tRG82ZVZZfEJYcXh9JTFvVmA8U1FnT3s0MQp6eG8kNHFLOzI3RSRB
LTVhZ2J0PHo4MylScnBeTD9BKXFFP1klOUVGTllxX2l9NHZCIU5TKkJzJFVfbzUkV0k5Rn0KekJA
eSRze0MoX1BCZC1ldUpYblYjJCYyOXJAYiM0JDg5N3lQWnZgbmBxWlAxZjU7X1IpRWooQlV1I3Z2
eyhMPm9KCnpSMUE1aDlNQHBaKF89IVFFLTBRY3ApVilHM2J0YlF8MGEjamV2bjJmcXl0NFM7eGQ4
RyVOdVJGUUh5N2hVaX40Ugp6WkhLJXgod0woZHMlUkM/QTFwYk9vZj9yMThRcXpuVGRqLWZjejtv
TFU7SXQqXiYwRkJOfGJjNV9ldCs8SiRlPzAKenxDVnNlJGlEQlhkanRSKm5qSF4xSGpWIXxofjFl
LWk9NnBUVDI2Z3BwTD19a3MwQjJyYmlAJEdpOTF0fXBRVSN5CnpeeFQ8VXNBWmBfenl8JnJxX3Zz
ZG8qI3ZfKXZ4YVA/QShiVj1gejhhX0VfWn1FRE9YcnNWdG9EdU5yc31YYyMmRAp6NHljcjxXYyZu
JWxUbio3b2xPZSljNGIjNFJidUpxPCN7WHBHeTxNcG4hPkJtPEYteEVxKmlmYU5TO2chUTswZWMK
eiNVUUJsNSs2N0FjRGpyTnVIRSgkan1fO0o5PDJ8JVFzcy1YckdrU3kmRGFrY09ZQW8je1NnVGd6
MUlodlUwZ3owCnpeYWZCZDtNPEhCM0xPWiNjWlljN1p6P3FvUERycDBiSjJWaVp5fj9JPyZffW07
PXJqOUduM0dGaz4tUiZQWWVkYgp6PFZPWWtGMVMkcmg3cih9NF5nO1IjR2t2Qz4+MEchKypPcGRI
JVFoODtEZyMrUFMlNFg3RXswRiZZb19OUGYzMjwKelFJX3NDJExBMVRmVTxjQntRaFJvKFFpVkMr
XlI9fSlkPH1TNEpOcUdoOC0zN0EkOHkzb18hK00hZk9TNG4rSUY+CnpKN3luOSZWfm95WUA0Vzt4
Pm9XRz91V0JqWUhGJG1kUTtkJSZkQThmWnhwcG5jQCNxK2EmPm1AamhsTnEpQExMIwp6K2QzRClS
Z1NNRV5aJExqcFI3RzhyK3d0TG9uQ3t7YFBZQlNEailBNVBFRjxGTDtLMnlBYnZRRUsybjtrKCUq
QCYKekdUWUlSN1hRfXEqOys2VmZ3eFA9Ym1eXm5AKFBFd2Jya1FpNjN4U0M2IyZIdlMkPHNAJSNe
eUVKYURyPEVxPTtRCno3NVB5Ukd0emphNHM4SXYjVHtNZy1GJDEtMzdJZE1hKnheaV9kcllYc3le
PzhGM0l7XiNDT19+MFY0JEIoI2Z3Qwp6NUktSGVCOH5YJiUoPEArVTtwNVNLKW1gZ15yYUdDSDFX
aj5VIWRAWGc8cmJEbTtVJUE3SkxhdnxEVTtWcDhWQyYKWVMzSVItbzVFQUA7fS0mTD9RcDk2PGhl
aW8yV2Q9Tl5aKTw9CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBkNzcxMTgu
LmU1MjYyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMzAgIE1pY2hhxYIg
UGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZM
XVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBsZW1lbnRhdGlvbi4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDkxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyB1
bml0IHRlc3QgZmlsZSwgbmVlZGVkIGR1ZSB0byBld2sgQVBJIGNoYW5nZXMuCisKKyAgICAgICAg
KiBQbGF0Zm9ybUVmbC5jbWFrZToKKwogMjAxMi0xMC0yOCAgTWFyayBSb3dlICA8bXJvd2VAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIHVuc3VwcG9ydGVkIE9TIGFu
ZCBYY29kZSB2ZXJzaW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwu
Y21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGU4YzAzMDcuLjM1
MzczZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMjUxLDYgKzI1MSw3IEBAIFRBUkdF
VF9MSU5LX0xJQlJBUklFUyhld2tUZXN0VXRpbHMgJHtFV0tVbml0VGVzdHNfTElCUkFSSUVTfSkK
IFNFVChXRUJLSVRfRUZMX1RFU1RfRElSICIke1dFQktJVF9ESVJ9L2VmbC90ZXN0cy8iKQogCiBT
RVQoRVdLVW5pdFRlc3RzX0JJTkFSSUVTCisgICAgdGVzdF9ld2tfY29udGV4dG1lbnUKICAgICB0
ZXN0X2V3a19mcmFtZQogICAgIHRlc3RfZXdrX3ZpZXcKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBh
ZjU0YTg3Li5lNTU2ZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTIt
MTAtMzAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4K
KworICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgcG9pbnRlciB0byBwYXJlbnQgbWVudSBpbiBFd2tfQ29udGV4dF9NZW51X0l0
ZW0gYW5kIGEgZ2V0dGVyCisgICAgICAgIGZ1bmN0aW9uIHRvIGFsbG93IHNlbGVjdGluZyBhIGNv
bnRleHQgbWVudSBpdGVtIHdpdGhvdXQgaGF2aW5nCisgICAgICAgIHBhcmVudCBtZW51IHBvaW50
ZXIgaW4gRHVtcFJlbmRlclRyZWUgRXZlbnRTZW5kZXIuCisgICAgICAgIFRocmVlIHVuaXQgdGVz
dHMgYWRkZWQgZHVlIGV3ayBBUEkgY2hhbmdlcy4KKworICAgICAgICAqIGV3ay9ld2tfY29udGV4
dG1lbnUuY3BwOgorICAgICAgICAoX0V3a19Db250ZXh0X01lbnVfSXRlbSk6CisgICAgICAgIChl
d2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRl
bV9wYXJlbnRfZ2V0KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQpOgor
ICAgICAgICAqIGV3ay9ld2tfY29udGV4dG1lbnUuaDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcu
Y3BwOgorICAgICAgICAoZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldCk6CisgICAgICAgICogZXdr
L2V3a192aWV3Lmg6CisgICAgICAgICogdGVzdHMvdGVzdF9ld2tfY29udGV4dG1lbnUuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICogdGVzdHMvdGVzdF9ld2tfdmlldy5j
cHA6CisgICAgICAgIChURVNUX0YpOgorCiAyMDEyLTEwLTMwICBKaW53b28gU29uZyAgPGppbndv
bzcuc29uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBSZWZhY3RvciB0b29sdGlwIGNh
bGxiYWNrIHNpZ25hbCBpbiBXZWJLaXQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX2NvbnRleHRtZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4
dG1lbnUuY3BwCmluZGV4IGU3OTJjNmQuLjFkMzU5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfY29udGV4dG1lbnUuY3BwCkBAIC01Myw2ICs1Myw3IEBAIHN0cnVjdCBfRXdrX0NvbnRl
eHRfTWVudV9JdGVtIHsKIAogICAgIGNvbnN0IGNoYXIqIHRpdGxlOyAvKio8IGNvbnRhaW5zIHRo
ZSB0aXRsZSBvZiB0aGUgaXRlbSAqLwogICAgIEV3a19Db250ZXh0X01lbnUqIHN1Ym1lbnU7IC8q
KjwgY29udGFpbnMgdGhlIHBvaW50ZXIgdG8gdGhlIHN1Ym1lbnUgb2YgdGhlIGl0ZW0gKi8KKyAg
ICBFd2tfQ29udGV4dF9NZW51KiBwYXJlbnRtZW51OyAvKio8IGNvbnRhaW5zIHRoZSBwb2ludGVy
IHRvIHBhcmVudCBtZW51IG9mIHRoZSBpdGVtICovCiAKICAgICBib29sIGNoZWNrZWQgOiAxOwog
ICAgIGJvb2wgZW5hYmxlZCA6IDE7CkBAIC05OCwxNCArOTksMTQgQEAgY29uc3QgRWluYV9MaXN0
KiBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoY29uc3QgRXdrX0NvbnRleHRfTWVudSog
bWVudSkKICAgICByZXR1cm4gbWVudS0+aXRlbXM7CiB9CiAKLUV3a19Db250ZXh0X01lbnVfSXRl
bSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0
eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV3
a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVudSogc3VibWVudSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyKiB0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKQorRXdrX0Nv
bnRleHRfTWVudV9JdGVtKiBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01l
bnVfSXRlbV9UeXBlIHR5cGUsIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0Nv
bnRleHRfTWVudSogcGFyZW50bWVudSwKKyAgICBFd2tfQ29udGV4dF9NZW51KiBzdWJtZW51LCBj
b25zdCBjaGFyKiB0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKQog
ewogICAgIEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSA9IG5ldyBFd2tfQ29udGV4dF9NZW51
X0l0ZW07CiAgICAgaXRlbS0+dHlwZSA9IHR5cGU7CiAgICAgaXRlbS0+YWN0aW9uID0gYWN0aW9u
OwogICAgIGl0ZW0tPnRpdGxlID0gZWluYV9zdHJpbmdzaGFyZV9hZGQodGl0bGUpOworICAgIGl0
ZW0tPnBhcmVudG1lbnUgPSBwYXJlbnRtZW51OwogICAgIGl0ZW0tPnN1Ym1lbnUgPSBzdWJtZW51
OwogICAgIGl0ZW0tPmNoZWNrZWQgPSBjaGVja2VkOwogICAgIGl0ZW0tPmVuYWJsZWQgPSBlbmFi
bGVkOwpAQCAtMjAzLDYgKzIwNCwxMSBAQCBFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVt
X2VuYWJsZWRfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSwgRWluYV9CbwogICAgIHJl
dHVybiB0cnVlOwogfQogCitFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X2l0ZW1f
cGFyZW50X2dldChjb25zdCBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0pCit7CisgICAgRUlO
QV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGl0ZW0sIDApOworICAgIHJldHVybiBpdGVtLT5w
YXJlbnRtZW51OworfQogCiAvKiBpbnRlcm5hbCBtZXRob2RzICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTI3Niw5ICsyODIsNyBAQCB2
b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoRXdrX0NvbnRleHRfTWVudSogbWVudSwg
Y29uc3QgV2ViQ29yZTo6Q29udGV4dAogICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5
cGUgPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZT4oY29yZS50eXBlKCkp
OwogICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiA9IHN0YXRpY19jYXN0PEV3a19D
b250ZXh0X01lbnVfQWN0aW9uPihjb3JlLmFjdGlvbigpKTsKIAotICAgIEV3a19Db250ZXh0X01l
bnVfSXRlbSogbWVudV9pdGVtID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0eXBlLCBhY3Rpb24sIDAsIGNvcmUu
dGl0bGUoKS51dGY4KCkuZGF0YSgpLCBjb3JlLmNoZWNrZWQoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlLmVuYWJsZWQoKSk7CisgICAgRXdrX0NvbnRl
eHRfTWVudV9JdGVtKiBtZW51X2l0ZW0gPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KHR5cGUs
IGFjdGlvbiwgbWVudSwgMCwgY29yZS50aXRsZSgpLnV0ZjgoKS5kYXRhKCksIGNvcmUuY2hlY2tl
ZCgpLCBjb3JlLmVuYWJsZWQoKSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVu
dV9pdGVtKTsKIAogICAgIG1lbnUtPml0ZW1zID0gZWluYV9saXN0X2FwcGVuZChtZW51LT5pdGVt
cywgbWVudV9pdGVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29u
dGV4dG1lbnUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaAppbmRl
eCBhZjZkNGE4Li44OTFkNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2NvbnRleHRtZW51LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVu
dS5oCkBAIC0xOTIsNiArMTkyLDcgQEAgRUFQSSBjb25zdCBFaW5hX0xpc3QgICAgICAgICAgICAq
ZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KGNvbnN0IEV3a19Db250ZXgKICAqCiAgKiBA
cGFyYW0gdHlwZSBzcGVjaWZpZXMgYSB0eXBlIG9mIHRoZSBpdGVtCiAgKiBAcGFyYW0gYWN0aW9u
IHNwZWNpZmllcyBhIGFjdGlvbiBvZiB0aGUgaXRlbQorICogQHBhcmFtIHBhcmVudG1lbnUgc3Bl
Y2lmaWVzIGEgcGFyZW50IG1lbnUgb2YgdGhlIGl0ZW0KICAqIEBwYXJhbSBzdWJtZW51IHNwZWNp
ZmllcyBhIHN1Ym1lbnUgb2YgdGhlIGl0ZW0KICAqIEBwYXJhbSB0aXRsZSBzcGVjaWZpZXMgYSB0
aXRsZSBvZiB0aGUgaXRlbQogICogQHBhcmFtIGNoZWNrZWQgQGMgRUlOQV9UUlVFIGlmIHRoZSBp
dGVtIHNob3VsZCBiZSB0b2dnbGVkIG9yIEBjIEVJTkFfRkFMU0UgaWYgbm90CkBAIC0yMDAsNyAr
MjAxLDcgQEAgRUFQSSBjb25zdCBFaW5hX0xpc3QgICAgICAgICAgICAqZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2xpc3RfZ2V0KGNvbnN0IEV3a19Db250ZXgKICAqCiAgKiBAbm90ZSBUaGUgcmV0dXJu
IHZhbHVlIEBiIHNob3VsZCBAYiBiZSBmcmVlZCBhZnRlciB1c2UuCiAgKi8KLUVBUEkgRXdrX0Nv
bnRleHRfTWVudV9JdGVtICAgICAgKmV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRl
eHRfTWVudV9JdGVtX1R5cGUgdHlwZSwgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uLCBF
d2tfQ29udGV4dF9NZW51ICpzdWJtZW51LCBjb25zdCBjaGFyICp0aXRsZSwgRWluYV9Cb29sIGNo
ZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKTsKK0VBUEkgRXdrX0NvbnRleHRfTWVudV9JdGVtICAg
ICAgKmV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUg
dHlwZSwgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uLCBFd2tfQ29udGV4dF9NZW51ICpw
YXJlbnRtZW51LCBFd2tfQ29udGV4dF9NZW51ICpzdWJtZW51LCBjb25zdCBjaGFyICp0aXRsZSwg
RWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKTsKIAogLyoqCiAgKiBEZXN0cm95
cyB0aGUgaXRlbSBvZiB0aGUgY29udGV4dCBtZW51IG9iamVjdC4KQEAgLTMyMiw2ICszMjMsMTQg
QEAgRUFQSSBFaW5hX0Jvb2wgICAgICAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVt
X2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19Db24KICAqLwogRUFQSSBFaW5hX0Jvb2wgICAgICAgICAg
ICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0KEV3a19Db250ZXh0X01l
bnVfSXRlbSAqbywgRWluYV9Cb29sIGVuYWJsZWQpOwogCisvKioKKyAqIEdldHMgdGhlIHBhcmVu
dCBtZW51IGZvciBjb250ZXh0IG1lbnUgaXRlbS4KKyAqCisgKiBAcGFyYW0gbyB0aGUgY29udGV4
dCBtZW51IGl0ZW0gb2JqZWN0CisgKiBAcmV0dXJuIGEgY29udGV4dCBtZW51IG9iamVjdCBvbiBz
dWNjZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVyZQorICovCitFQVBJIEV3a19Db250ZXh0X01lbnUg
ICAgICAgICAgICpld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldChjb25zdCBFd2tfQ29u
dGV4dF9NZW51X0l0ZW0gKm8pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggNDMyMjVlOS4uM2M5NGE3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC00NzMzLDYgKzQ3MzMsMTMgQEAgdm9pZCBld2tfdmll
d19mdWxsc2NyZWVuX2V4aXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB9CiAjZW5kaWYK
IAorRXdrX0NvbnRleHRfTWVudSogZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldChjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1Zp
ZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0
RGF0YSwgcHJpdiwgMCk7CisgICAgcmV0dXJuIHByaXYtPmNvbnRleHRNZW51OworfQorCiBuYW1l
c3BhY2UgRVdLUHJpdmF0ZSB7CiAKIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlKGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCBlOGJhZjg3Li4x
MDZiYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtMTE0LDYgKzExNCw3IEBACiAj
aWZuZGVmIGV3a192aWV3X2gKICNkZWZpbmUgZXdrX3ZpZXdfaAogCisjaW5jbHVkZSAiZXdrX2Nv
bnRleHRtZW51LmgiCiAjaW5jbHVkZSAiZXdrX2ZpbGVfY2hvb3Nlci5oIgogI2luY2x1ZGUgImV3
a19mcmFtZS5oIgogI2luY2x1ZGUgImV3a19oaXN0b3J5LmgiCkBAIC0yNzc1LDYgKzI3NzYsMTQg
QEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfZnVsbHNjcmVlbl9zZXQo
RXZhc19PYmplY3QgKm8sIEVpbmFfQm9vbAogICovCiBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19z
ZXR0aW5nX2VuYWJsZV9mdWxsc2NyZWVuX2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CiAKKy8q
KgorICogR2V0cyB0aGUgY29udGV4dCBtZW51IG9iamVjdC4KKyAqIEBwYXJhbSBvIFRoZSB2aWV3
IHRoYXQgY29udGFpbnMgY29udGV4dCBtZW51LgorICoKKyAqIEByZXR1cm4gY29udGV4dCBtZW51
IHN0cnVjdHVyZSBvbiBzdWNjZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVyZQorICovCitFQVBJIEV3
a19Db250ZXh0X01lbnUgKmV3a192aWV3X2NvbnRleHRfbWVudV9nZXQoY29uc3QgRXZhc19PYmpl
Y3QgKm8pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tfY29udGV4dG1lbnUuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvdGVzdHMvdGVzdF9ld2tfY29udGV4dG1lbnUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmRkMDMzMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC90ZXN0cy90ZXN0X2V3a19jb250ZXh0bWVudS5jcHAKQEAgLTAsMCArMSwxMjIgQEAK
Ky8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKworICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gU2VlIHRoZSBHTlUKKyAgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyAg
ICBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3
IFVTQQorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiVW5pdFRlc3RVdGls
cy9FV0tUZXN0QmFzZS5oIgorI2luY2x1ZGUgIlVuaXRUZXN0VXRpbHMvRVdLVGVzdENvbmZpZy5o
IgorI2luY2x1ZGUgPEVXZWJLaXQuaD4KKyNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgRVdLVW5pdFRlc3RzOworCisvKioKKyAqIEBicmllZiBDaGVja2luZyB3aGV0aGVyIGZ1bmN0
aW9uIGNyZWF0ZXMgcHJvcGVyIG1lbnUgaXRlbS4KKyAqCisgKiBUaGlzIHRlc3QgY3JlYXRlcyBh
IG1lbnUgaXRlbSBhbmQgY2hlY2tzIGlmIGFsbCBtZW51IGl0ZW0ncyBhdHRyaWJ1dGVzIGFyZQor
ICogdGhlIHNhbWUgYXMgcGFzc2VkIHRvIHRlc3RlZCBmdW5jdGlvbi4KKyAqLworVEVTVF9GKEVX
S1Rlc3RCYXNlLCBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KQoreworICAgIGxvYWRVcmwoKTsK
KworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldCh3ZWJWaWV3KCkpOworICAg
IEFTU0VSVF9UUlVFKGV2YXMpOworCisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duIG1vdXNlRG93
bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3VzZURvd24ub3V0cHV0LnggPSAw
OworICAgIG1vdXNlRG93bi5vdXRwdXQueSA9IDA7CisgICAgbW91c2VEb3duLmNhbnZhcy54ID0g
MDsKKyAgICBtb3VzZURvd24uY2FudmFzLnkgPSAwOworICAgIG1vdXNlRG93bi5kYXRhID0gMDsK
KyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0gY29uc3RfY2FzdDxFdmFzX01vZGlmaWVyKj4oZXZh
c19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24ubG9ja3MgPSBjb25zdF9j
YXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xvY2tfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24u
ZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1vdXNlRG93bi50aW1lc3RhbXAgPSBlY29y
ZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3duLmV2ZW50X2ZsYWdzID0gRVZBU19FVkVO
VF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9IDA7CisKKyAgICBBU1NFUlRfVFJVRShl
d2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh3ZWJWaWV3KCksICZtb3VzZURvd24p
KTsKKworICAgIEV3a19Db250ZXh0X01lbnUqIGNvbnRleHRNZW51ID0gZXdrX3ZpZXdfY29udGV4
dF9tZW51X2dldCh3ZWJWaWV3KCkpOworCisgICAgQVNTRVJUX1RSVUUoY29udGV4dE1lbnUpOwor
CisgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgaXRlbVR5cGUgPSBFV0tfQUNUSU9OX1RZ
UEU7CisgICAgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gaXRlbUFjdGlvbiA9IEVXS19DT05URVhU
X01FTlVfSVRFTV9DVVNUT01fVEFHX05PX0FDVElPTjsKKyAgICBjb25zdCBjaGFyKiBpdGVtVGl0
bGUgPSAiVGVzdCBJdGVtIjsKKyAgICBib29sIGl0ZW1DaGVja2VkID0gZmFsc2U7CisgICAgYm9v
bCBpdGVtRW5hYmxlZCA9IGZhbHNlOworCisgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBjb250
ZXh0TWVudUl0ZW0gPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KGl0ZW1UeXBlLCBpdGVtQWN0
aW9uLCBjb250ZXh0TWVudSwgMCwgaXRlbVRpdGxlLCBpdGVtQ2hlY2tlZCwgaXRlbUVuYWJsZWQp
OworCisgICAgQVNTRVJUX1RSVUUoY29udGV4dE1lbnVJdGVtKTsKKworICAgIEVYUEVDVF9FUShp
dGVtVHlwZSwgZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfZ2V0KGNvbnRleHRNZW51SXRlbSkp
OworICAgIEVYUEVDVF9FUShpdGVtQWN0aW9uLCBld2tfY29udGV4dF9tZW51X2l0ZW1fYWN0aW9u
X2dldChjb250ZXh0TWVudUl0ZW0pKTsKKyAgICBFWFBFQ1RfRVEoY29udGV4dE1lbnUsIGV3a19j
b250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KGNvbnRleHRNZW51SXRlbSkpOworICAgIEVYUEVD
VF9TVFJFUShpdGVtVGl0bGUsIGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9nZXQoY29udGV4
dE1lbnVJdGVtKSk7CisgICAgRVhQRUNUX0VRKGl0ZW1DaGVja2VkLCBld2tfY29udGV4dF9tZW51
X2l0ZW1fY2hlY2tlZF9nZXQoY29udGV4dE1lbnVJdGVtKSk7CisgICAgRVhQRUNUX0VRKGl0ZW1F
bmFibGVkLCBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQoY29udGV4dE1lbnVJdGVt
KSk7Cit9CisKKy8qKgorICogQGJyaWVmIENoZWNraW5nIHdoZXRoZXIgZnVuY3Rpb24gcmV0dXJu
cyBwcm9wZXIgcGFyZW50IG1lbnUuCisgKgorICogVGhpcyB0ZXN0IGNyZWF0ZXMgYSBjb250ZXh0
IG1lbnVzLCBhbmQgY2hlY2tzIGlmIGNyZWF0ZWQgY29udGV4dCBtZW51J3MKKyAqIHBhcmVudCBp
cyB0aGUgc2FtZSBmb3IgZWFjaCBvZiBtZW51IGl0ZW1zLgorICovCitURVNUX0YoRVdLVGVzdEJh
c2UsIGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KQoreworICAgIGxvYWRVcmwoKTsK
KworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldCh3ZWJWaWV3KCkpOworICAg
IEFTU0VSVF9UUlVFKGV2YXMpOworCisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duIG1vdXNlRG93
bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3VzZURvd24ub3V0cHV0LnggPSAw
OworICAgIG1vdXNlRG93bi5vdXRwdXQueSA9IDA7CisgICAgbW91c2VEb3duLmNhbnZhcy54ID0g
MDsKKyAgICBtb3VzZURvd24uY2FudmFzLnkgPSAwOworICAgIG1vdXNlRG93bi5kYXRhID0gMDsK
KyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0gY29uc3RfY2FzdDxFdmFzX01vZGlmaWVyKj4oZXZh
c19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24ubG9ja3MgPSBjb25zdF9j
YXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xvY2tfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24u
ZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1vdXNlRG93bi50aW1lc3RhbXAgPSBlY29y
ZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3duLmV2ZW50X2ZsYWdzID0gRVZBU19FVkVO
VF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9IDA7CisKKyAgICBBU1NFUlRfVFJVRShl
d2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh3ZWJWaWV3KCksICZtb3VzZURvd24p
KTsKKworICAgIEV3a19Db250ZXh0X01lbnUqIGNvbnRleHRNZW51ID0gZXdrX3ZpZXdfY29udGV4
dF9tZW51X2dldCh3ZWJWaWV3KCkpOworCisgICAgQVNTRVJUX1RSVUUoY29udGV4dE1lbnUpOwor
CisgICAgY29uc3QgRWluYV9MaXN0KiBjb250ZXh0TWVudUl0ZW1zID0gZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2xpc3RfZ2V0KGNvbnRleHRNZW51KTsKKworICAgIEFTU0VSVF9UUlVFKGNvbnRleHRN
ZW51SXRlbXMpOworCisgICAgY29uc3QgRWluYV9MaXN0KiBsaXN0SXRlcmF0b3I7CisgICAgdm9p
ZCogZGF0YTsKKyAgICBFSU5BX0xJU1RfRk9SRUFDSChjb250ZXh0TWVudUl0ZW1zLCBsaXN0SXRl
cmF0b3IsIGRhdGEpCisgICAgICAgIEVYUEVDVF9FUShjb250ZXh0TWVudSwgZXdrX2NvbnRleHRf
bWVudV9pdGVtX3BhcmVudF9nZXQoc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4o
ZGF0YSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdr
X3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tfdmlldy5jcHAKaW5k
ZXggOWZhMjNmYi4uMjQxNTgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMv
dGVzdF9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tf
dmlldy5jcHAKQEAgLTcwLDMgKzcwLDM1IEBAIFRFU1RfRihFV0tUZXN0QmFzZSwgZXdrX3ZpZXdf
c2V0dGluZ19lbmFibGVfZnVsbHNjcmVlbikKICAgICBBU1NFUlRfRkFMU0UoZXdrX3ZpZXdfc2V0
dGluZ19lbmFibGVfZnVsbHNjcmVlbl9nZXQod2ViVmlldygpKSk7CiAjZW5kaWYKIH0KKworLyoq
CisgKiBAYnJpZWYgQ2hlY2tpbmcgd2hldGhlciBmdW5jdGlvbiByZXR1cm5zIHByb3BlciBjb250
ZXh0IG1lbnUgc3RydWN0dXJlLgorICoKKyAqIFRoaXMgdGVzdCBjcmVhdGVzIGEgY29udGV4dCBt
ZW51IGFuZCBjaGVja3MgaWYgY29udGV4dCBtZW51IHN0cnVjdHVyZQorICogaXMgbm90IE5VTEw7
CisgKi8KK1RFU1RfRihFV0tUZXN0QmFzZSwgZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldCkKK3sK
KyAgICBsb2FkVXJsKCk7CisKKyAgICBFdmFzKiBldmFzID0gZXZhc19vYmplY3RfZXZhc19nZXQo
d2ViVmlldygpKTsKKyAgICBBU1NFUlRfVFJVRShldmFzKTsKKworICAgIEV2YXNfRXZlbnRfTW91
c2VfRG93biBtb3VzZURvd247CisgICAgbW91c2VEb3duLmJ1dHRvbiA9IDM7CisgICAgbW91c2VE
b3duLm91dHB1dC54ID0gMDsKKyAgICBtb3VzZURvd24ub3V0cHV0LnkgPSAwOworICAgIG1vdXNl
RG93bi5jYW52YXMueCA9IDA7CisgICAgbW91c2VEb3duLmNhbnZhcy55ID0gMDsKKyAgICBtb3Vz
ZURvd24uZGF0YSA9IDA7CisgICAgbW91c2VEb3duLm1vZGlmaWVycyA9IGNvbnN0X2Nhc3Q8RXZh
c19Nb2RpZmllcio+KGV2YXNfa2V5X21vZGlmaWVyX2dldChldmFzKSk7CisgICAgbW91c2VEb3du
LmxvY2tzID0gY29uc3RfY2FzdDxFdmFzX0xvY2sqPihldmFzX2tleV9sb2NrX2dldChldmFzKSk7
CisgICAgbW91c2VEb3duLmZsYWdzID0gRVZBU19CVVRUT05fTk9ORTsKKyAgICBtb3VzZURvd24u
dGltZXN0YW1wID0gZWNvcmVfbG9vcF90aW1lX2dldCgpOworICAgIG1vdXNlRG93bi5ldmVudF9m
bGFncyA9IEVWQVNfRVZFTlRfRkxBR19OT05FOworICAgIG1vdXNlRG93bi5kZXYgPSAwOworCisg
ICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQod2ViVmll
dygpLCAmbW91c2VEb3duKSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfdmlld19jb250ZXh0X21l
bnVfZ2V0KHdlYlZpZXcoKSkpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGE0NTY3MTAuLmIzNDlkNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0xMC0z
MCAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW0RSVF0gRXZlbnRTZW5kZXIgcmVxdWlyZXMgY29udGV4dENsaWNrIGltcGxl
bWVudGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODYwOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgY29udGV4dENsaWNrIGZvciBEdW1wUmVuZGVyVHJlZUV2ZW50U2VuZGVyIGJhc2luZyBv
biBXZWJLaXQgR1RLCisgICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKGdldE1lbnVJdGVtVGl0bGVD
YWxsYmFjayk6CisgICAgICAgIChzZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2spOgorICAgICAgICAo
bWVudUl0ZW1DbGlja0NhbGxiYWNrKToKKyAgICAgICAgKGNvbnRleHRDbGlja0NhbGxiYWNrKToK
KwogMjAxMi0xMC0zMCAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW0VGTF1bRFJUXSBCaXRtYXAgc2hvdWxkIHNob3cgd2hvbGUgdmlldyBhcmVhLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAKaW5kZXggNzhkMmRiYy4uODRiZDcx
MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwCkBAIC0yNjksNiAr
MjY5LDEwMSBAQCBzdGF0aWMgdW5zaWduZWQgbW9kaWZpZXJzRnJvbUpTVmFsdWUoSlNDb250ZXh0
UmVmIGNvbnRleHQsIGNvbnN0IEpTVmFsdWVSZWYgbW9kaQogICAgIHJldHVybiBtb2RpZmllcjsK
IH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZ2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEV3a19Db250ZXh0X01lbnVfSXRlbSog
aXRlbSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbSo+KEpTT2JqZWN0R2V0UHJp
dmF0ZShvYmplY3QpKTsKKyAgICBDU3RyaW5nIGxhYmVsOworICAgIGlmIChld2tfY29udGV4dF9t
ZW51X2l0ZW1fdHlwZV9nZXQoaXRlbSkgPT0gRVdLX1NFUEFSQVRPUl9UWVBFKQorICAgICAgICBs
YWJlbCA9ICI8c2VwYXJhdG9yPiI7CisgICAgZWxzZQorICAgICAgICBsYWJlbCA9IGV3a19jb250
ZXh0X21lbnVfaXRlbV90aXRsZV9nZXQoaXRlbSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VT
dHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobGFiZWwuZGF0YSgp
KSk7Cit9CisKK3N0YXRpYyBib29sIHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgbWVudUl0ZW1DbGlja0NhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10s
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0
ZW0gPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOworICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9zZWxlY3QoZXdrX2Nv
bnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoaXRlbSksIGl0ZW0pOworICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKworc3RhdGljIEpTU3RhdGljRnVuY3Rpb24g
c3RhdGljTWVudUl0ZW1GdW5jdGlvbnNbXSA9IHsKKyAgICB7ICJjbGljayIsIG1lbnVJdGVtQ2xp
Y2tDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAorICAgIHsgMCwgMCwgMCB9Cit9OworCitzdGF0aWMgSlNTdGF0
aWNWYWx1ZSBzdGF0aWNNZW51SXRlbVZhbHVlc1tdID0geworICAgIHsgInRpdGxlIiwgZ2V0TWVu
dUl0ZW1UaXRsZUNhbGxiYWNrLCBzZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlTm9uZSB9LAorICAgIHsgMCwgMCwgMCwgMCB9Cit9OworCitzdGF0aWMgSlNDbGFz
c1JlZiBnZXRNZW51SXRlbUNsYXNzKCkKK3sKKyAgICBzdGF0aWMgSlNDbGFzc1JlZiBtZW51SXRl
bUNsYXNzID0gMDsKKworICAgIGlmICghbWVudUl0ZW1DbGFzcykgeworICAgICAgICBKU0NsYXNz
RGVmaW5pdGlvbiBjbGFzc0RlZmluaXRpb24gPSB7CisgICAgICAgICAgICAwLCAwLCAwLCAwLCAw
LCAwLAorICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH07CisgICAg
ICAgIGNsYXNzRGVmaW5pdGlvbi5zdGF0aWNGdW5jdGlvbnMgPSBzdGF0aWNNZW51SXRlbUZ1bmN0
aW9uczsKKyAgICAgICAgY2xhc3NEZWZpbml0aW9uLnN0YXRpY1ZhbHVlcyA9IHN0YXRpY01lbnVJ
dGVtVmFsdWVzOworCisgICAgICAgIG1lbnVJdGVtQ2xhc3MgPSBKU0NsYXNzQ3JlYXRlKCZjbGFz
c0RlZmluaXRpb24pOworICAgIH0KKworICAgIHJldHVybiBtZW51SXRlbUNsYXNzOworfQorCitz
dGF0aWMgSlNWYWx1ZVJlZiBjb250ZXh0Q2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBh
cmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pCit7CisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBld2tfZnJhbWVfdmlld19nZXQo
YnJvd3Nlci0+bWFpbkZyYW1lKCkpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgRXZhcyogZXZhcyA9IGV2YXNfb2Jq
ZWN0X2V2YXNfZ2V0KHZpZXcpOworICAgIGlmICghZXZhcykKKyAgICAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duIG1v
dXNlRG93bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3VzZURvd24ub3V0cHV0
LnggPSBnTGFzdE1vdXNlUG9zaXRpb25YOworICAgIG1vdXNlRG93bi5vdXRwdXQueSA9IGdMYXN0
TW91c2VQb3NpdGlvblk7CisgICAgbW91c2VEb3duLmNhbnZhcy54ID0gZ0xhc3RNb3VzZVBvc2l0
aW9uWDsKKyAgICBtb3VzZURvd24uY2FudmFzLnkgPSBnTGFzdE1vdXNlUG9zaXRpb25ZOworICAg
IG1vdXNlRG93bi5kYXRhID0gMDsKKyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0gY29uc3RfY2Fz
dDxFdmFzX01vZGlmaWVyKj4oZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBtb3Vz
ZURvd24ubG9ja3MgPSBjb25zdF9jYXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xvY2tfZ2V0KGV2
YXMpKTsKKyAgICBtb3VzZURvd24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1vdXNl
RG93bi50aW1lc3RhbXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3duLmV2
ZW50X2ZsYWdzID0gRVZBU19FVkVOVF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9IDA7
CisKKyAgICBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh2aWV3LCAmbW91c2VE
b3duKTsKKyAgICBFd2tfQ29udGV4dF9NZW51KiBld2tNZW51ID0gZXdrX3ZpZXdfY29udGV4dF9t
ZW51X2dldCh2aWV3KTsKKworICAgIEpTVmFsdWVSZWYgdmFsdWVSZWYgPSBKU09iamVjdE1ha2VB
cnJheShjb250ZXh0LCAwLCAwLCAwKTsKKyAgICBpZiAoZXdrTWVudSkgeworICAgICAgICBjb25z
dCBFaW5hX0xpc3QqIGV3a01lbnVJdGVtcyA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dl
dChld2tNZW51KTsKKyAgICAgICAgSlNWYWx1ZVJlZiBhcnJheVZhbHVlc1tlaW5hX2xpc3RfY291
bnQoZXdrTWVudUl0ZW1zKV07CisKKyAgICAgICAgY29uc3QgRWluYV9MaXN0KiBsaXN0SXRlcmF0
b3I7CisgICAgICAgIHZvaWQqIGRhdGE7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAg
IEVJTkFfTElTVF9GT1JFQUNIKGV3a01lbnVJdGVtcywgbGlzdEl0ZXJhdG9yLCBkYXRhKQorICAg
ICAgICAgICAgYXJyYXlWYWx1ZXNbaW5kZXgrK10gPSBKU09iamVjdE1ha2UoY29udGV4dCwgZ2V0
TWVudUl0ZW1DbGFzcygpLCBkYXRhKTsKKworICAgICAgICBpZiAoaW5kZXgpCisgICAgICAgICAg
ICB2YWx1ZVJlZiA9IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIGluZGV4IC0gMSwgYXJyYXlW
YWx1ZXMsIDApOworICAgIH0KKyAgICByZXR1cm4gdmFsdWVSZWY7Cit9CisKIHN0YXRpYyBKU1Zh
bHVlUmVmIG1vdXNlRG93bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsK
ICAgICBpbnQgYnV0dG9uID0gMDsKQEAgLTgwMyw2ICs4OTgsNyBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiBzZXRUb3VjaE1vZGlmaWVyQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIGZ1bgogfQogCiBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNGdW5jdGlvbnNbXSA9
IHsKKyAgICB7ICJjb250ZXh0Q2xpY2siLCBjb250ZXh0Q2xpY2tDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgIHsgIm1vdXNlU2Nyb2xsQnkiLCBtb3VzZVNjcm9sbEJ5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICB7ICJjb250aW51b3VzTW91c2VTY3JvbGxCeSIsIGNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICB7ICJtb3VzZURvd24iLCBtb3VzZURvd25DYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171465</attachid>
            <date>2012-10-30 09:19:24 -0700</date>
            <delta_ts>2012-10-31 00:28:24 -0700</delta_ts>
            <desc>fixed patch</desc>
            <filename>rebased3.diff</filename>
            <type>text/plain</type>
            <size>33754</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNDBjMzRjLi5mYjFlNjUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAt
MzAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSBjb250ZXh0Q2xpY2sgZGVwZW5kZW50IHRlc3RzIHRvIFdlYktpdDIgVGVzdEV4cGVj
dGF0aW9ucyBhbmQKKyAgICAgICAgYWRkIG5ldyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW9ubW91c2Vkb3du
LWV2ZW50LWV4cGVjdGVkLnBuZzogQWRkZWQuCisKIDIwMTItMTAtMzAgIE1pa2hhaWwgUG96ZG55
YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bV1RS
XSBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRlc3RSdW5uZXIucXVldWVMb2FkSFRNTFN0cmluZwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFm
ZTRjY2YuLjI1NWY0OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC13azIv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTI3MiwzICsyNzIsMjAgQEAgd2Via2l0Lm9yZy9iLzk2NjQxIG1lZGlh
L3ZpZGVvLXNlZWstcGFzdC1lbmQtcGxheWluZy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3Jn
L2IvOTE4NTQgZWRpdGluZy9zcGVsbGluZyBbIFNraXAgXQogCiB3ZWJraXQub3JnL2IvMTAwMjQ4
IGZhc3QvZm9ybXMvc2VsZWN0LW11bHRpcGxlLWVsZW1lbnRzLXdpdGgtbW91c2UtZHJhZy5odG1s
IFsgRmFpbHVyZSBdCisKKyMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBhbiBpbXBsZW1lbnRhdGlv
biBmb3IgZXZlbnRTZW5kZXIuY29udGV4dENsaWNrCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGlu
Zy9wYXN0ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFnZS1jcmFzaC5odG1sIFsgRmFpbHVyZSBd
Cit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0xLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTIu
aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcvc2VsZWN0aW9uL2J1
dHRvbi1yaWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRp
dGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LW9uLXRleHQuaHRtbCBbIEZhaWx1cmUgXQord2Vi
a2l0Lm9yZy9iLzg2ODgxIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS10ZXh0LXNlbGVj
dGlvbi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rp
b24vZW1wdHktY2VsbC1yaWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2Iv
ODY4ODEgZWRpdGluZy9zaGFkb3cvcmlnaHRjbGljay1vbi1tZXRlci1pbi1zaGFkb3ctY3Jhc2gu
aHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZlbnRzL2NvbnRleHQt
bm8tZGVzZWxlY3QuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZl
bnRzL2NvbnRleHQtb25tb3VzZWRvd24tZXZlbnQuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9y
Zy9iLzg2ODgxIGZhc3QvZXZlbnRzL2NvbnRleHRtZW51LXNjcm9sbGVkLXBhZ2Utd2l0aC1mcmFt
ZS5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZmFzdC9ldmVudHMvcmlnaHQt
Y2xpY2stZm9jdXMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGZhc3QvZXZl
bnRzL3NlbGVjdHN0YXJ0LXByZXZlbnQtc2VsZWN0aW9uLW9uLXJpZ2h0LWNsaWNrLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBtZWRpYS9jb250ZXh0LW1lbnUtYWN0aW9ucy5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgbWVkaWEvY29udHJvbHMtcmlnaHQt
Y2xpY2stb24tdGltZWJhci5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA3ZDFiYWMuLjkzYmJkOWEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzM1LDI3ICsxMzM1LDYgQEAgd2Vi
a2l0Lm9yZy9iLzgyMTQwIGluc3BlY3Rvci9nZW9sb2NhdGlvbi1lcnJvci5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvODIxNDAgaW5zcGVjdG9yL2dlb2xvY2F0aW9uLXN1Y2Nlc3MuaHRt
bCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzgyMTQwIGluc3BlY3Rvci9nZW9sb2NhdGlvbi13
YXRjaFBvc2l0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIAotIyBFRkwncyBFdmVudFNlbmRlciBkb2Vz
IG5vdCBpbXBsZW1lbnQgY29udGV4dENsaWNrIHlldAotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRp
bmcvcGFzdGVib2FyZC9jb3B5LXN0YW5kYWxvbmUtaW1hZ2UtY3Jhc2guaHRtbCBbIEZhaWx1cmUg
XQotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sIFsg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24vYnV0dG9uLXJp
Z2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3Nl
bGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4dC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvODYwOTEgZWRpdGluZy9zZWxlY3Rpb24vY29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NlbGVjdGlvbi9lbXB0
eS1jZWxsLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBl
ZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWlucHV0LXNl
YXJjaC1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZmFzdC9ldmVu
dHMvY29udGV4dC1vbm1vdXNlZG93bi1ldmVudC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvODYwOTEgZmFzdC9ldmVudHMvY29udGV4dG1lbnUtc2Nyb2xsZWQtcGFnZS13aXRoLWZyYW1l
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBmYXN0L2V2ZW50cy9yaWdodC1j
bGljay1mb2N1cy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZmFzdC9ldmVu
dHMvc2VsZWN0c3RhcnQtcHJldmVudC1zZWxlY3Rpb24tb24tcmlnaHQtY2xpY2suaHRtbCBbIEZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkxIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBtZWRpYS9jb250cm9scy1yaWdodC1j
bGljay1vbi10aW1lYmFyLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0
aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9uLW1ldGVyLWluLXNoYWRvdy1jcmFzaC5odG1sIFsgRmFp
bHVyZSBdCi0KLSMgRUZMJ3MgRXZlbnRTZW5kZXIgY29udGV4dENsaWNrLCBuZWVkcyBiYXNlbGlu
ZXMKLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTIuaHRtbCBb
IE1pc3NpbmcgXQotd2Via2l0Lm9yZy9iLzg2MDkxIGZhc3QvZXZlbnRzL2NvbnRleHQtbm8tZGVz
ZWxlY3QuaHRtbCBbIE1pc3NpbmcgXQotCiAjIElFVEMgbmFtZXNwYWNlIGZhaWx1cmVzCiB3ZWJr
aXQub3JnL2IvODYxNDIgaWV0ZXN0Y2VudGVyL2NzczMvbmFtZXNwYWNlcy9zeW50YXgtMDIxLnht
bCBbIEltYWdlT25seUZhaWx1cmUgXQogCkBAIC0xNjc2LDMgKzE2NTUsOSBAQCB3ZWJraXQub3Jn
L2IvOTk2OTEgZ2FtZXBhZC9nYW1lcGFkLW91dC1vZi1yYW5nZS1jcmFzaGVyLmh0bWwgWyBGYWls
dXJlIF0KIAogIyBSZXNvdXJjZSBUaW1pbmcgaXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCiB3
ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3Jlc291cmNlLXRpbWluZyBbIFNraXAgXQorCisjIEVudGVyaW5nIGludG8gZnVsbCBzY3JlZW4g
cGxheWJhY2sgbW9kZSBmYWlscyB3aGVuIHRyaWdnZXJlZCBieSBjb250ZXh0IG1lbnUKK0J1ZyhF
RkwpIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KKworIyBFU0Mg
a2V5IGRvZXMgbm90IGNhbmNlbCBjb250ZXh0IG1lbnUgaW4gRUZMIHBvcnQKK0J1ZyhFRkwpIGVk
aXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9lZGl0aW5nL3NlbGVjdGlvbi81MzU0
NDU1LTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5
MzU5YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZWRpdGlu
Zy9zZWxlY3Rpb24vNTM1NDQ1NS0yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoOCw4KSBzaXplIDYxMngxNDIKKyAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA2MTJ4MTQyIFtib3JkZXI6ICgxcHggc29saWQgIzAw
MDAwMCldCisgICAgUmVuZGVyQmxvY2sge0gxfSBhdCAoNiw2KSBzaXplIDYwMHgzNworICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDUxeDM2CisgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDQ1MTogIldvcmQgc2VsZWN0aW9uIG9uIHJpZ2h0IGNsaWNrIHRlc3Qi
CisgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDYsNjQpIHNpemUgNjAweDcyCisgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1OTd4MzcKKyAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNTk3OiAiVGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCByaWdo
dCBjbGlja2luZyBub24tZWRpdGFibGUgY29udGVudCBvbmx5IGNyZWF0ZXMgYSB3b3JkIHNlbGVj
dGlvbiBmb3IiCisgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAxMDM6ICJjbGlja3Mg
b3ZlciB0ZXh0LiAiCisgICAgICBSZW5kZXJJbmxpbmUge1NQQU59IGF0ICgwLDApIHNpemUgMTh4
MTkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMDMsMTgpIHNpemUgMTh4MTkKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTAzLDE4KSB3aWR0aCAxODogIlRvIgorICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgxMjEsMTgpIHNpemUgNTc3eDU1CisgICAgICAgIHRleHQgcnVuIGF0
ICgxMjEsMTgpIHdpZHRoIDQxMTogIiBydW4gbWFudWFsbHksIHJpZ2h0IGNsaWNrIG9uIHRleHQs
IGFuZCBhIHdvcmQgc2hvdWxkIGJlIHNlbGVjdGVkLiAiCisgICAgICAgIHRleHQgcnVuIGF0ICg1
MzIsMTgpIHdpZHRoIDM1OiAiUmlnaHQiCisgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2KSB3aWR0
aCA1Nzc6ICJjbGljayBvbiB0aGUgZW1wdHkgc3BhY2Ugb3V0c2lkZSBhbmQgdG8gdGhlIHJpZ2h0
IG9mIHRoZSBibGFjayBib3JkZXIsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGJlIgorICAgICAgICB0
ZXh0IHJ1biBhdCAoMCw1NCkgd2lkdGggNTk6ICJyZW1vdmVkLiIKKyAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorY2FyZXQ6IHBvc2l0aW9uIDAgb2YgY2hpbGQgMCB7
I3RleHR9IG9mIGNoaWxkIDEge0gxfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVj
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFiZDdi
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50
cy9jb250ZXh0LW5vLWRlc2VsZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3
ODR4NTg0CisgICAgICBSZW5kZXJUZXh0Q29udHJvbCB7SU5QVVR9IGF0ICgyLDIpIHNpemUgMTkz
eDI4IFtiZ2NvbG9yPSNGRkZGRkZdCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5
ZXIgYXQgKDE0LDE2KSBzaXplIDE4NngxOCBzY3JvbGxIZWlnaHQgMTkKKyAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDQsNikgc2l6ZSAxODZ4MTgKKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAxMjR4MTkKKyAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDEyNDogInNvbWUg
c2FtcGxlIHRleHQiCitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDUgb2YgY2hpbGQgMCB7I3Rl
eHR9IG9mIGNoaWxkIDAge0RJVn0gb2YgeyNzaGFkb3ctcm9vdH0gb2YgY2hpbGQgMSB7SU5QVVR9
IG9mIGJvZHkKK3NlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gMTUgb2YgY2hpbGQgMCB7I3RleHR9
IG9mIGNoaWxkIDAge0RJVn0gb2YgeyNzaGFkb3ctcm9vdH0gb2YgY2hpbGQgMSB7SU5QVVR9IG9m
IGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9j
b250ZXh0LW9ubW91c2Vkb3duLWV2ZW50LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW9ubW91c2Vkb3duLWV2ZW50LWV4cGVjdGVkLnBu
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42NzQ1MmU1OTA1NTllMzcxMGE3YmFjZjJiNTE0OTEyYjAxMDc1NjM2CkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3MTU3CnpjbWVJMWBCIyV5eU18TE5yUnM7WVVsQSVHc05q
SDFHUllXSHR3MTlKd1VqQjRwb302eldERyt7dnt0UEhBUnUhOQp6aXZsVkYzSWRXcWY+Sn52ZkNg
QW41YXV1azU9YU9NPFVEa3BiXmU2JmxQaFpfRHxAeyFkJXdAVkA5VmlZeCVzUHUKenQ/VWteOVM4
KE03WDhicS13PXB4YHckMnp3e045aldWaWg4IXw8VVFZMyZ5MmJIVUZpQz9ZQlo7Y3Q1MCRKOV8/
CnotYE1Ed3Y1fXYqdWRqaUxwU1FvU3NnYnd3ZDNfJmFBS0s7aFUyeE1rLWdkVTk1UiRGZXtmM2U+
MVZUOXFlZEAmVAp6Rl9lWCZfYEImKjg7IzJXYnVTMClQaUUjYC1hamc+YDBjNlNwU0dXTmBwQFkt
STxMZyl1ZWBPN0VYJmJNemZiOG4KemF0PnZxcVVXUVlCeX18TjgyWD4qS2heRUlzYHpWKmM4MH1Z
bzskWEdRczRfVyFscjU/TkhqSkR4bF8lMFZSZTArCnpTdDtfUXYpQ2RQTEM0fiNUV1dFajZ5aGd9
Ty1VVEFzPSEha0N0X2IjcVpIIVhMKGRTMUtlbFRsRX0jM3FwJHljcwp6KTJBKXRSO0olU3V1V0Qp
UDktcGpja09QUENgbHYhYSVNVGdePjE2Wi1tUSs/YjRmKUhIOGVsckkxQ0JOKzFZdlMKelcwQG1y
VmBWS1lBI1ElNG1oKDE2eSg4QnxCNChxPVBnK3UmOSVHOHtAKWxWUCQ8azwoZVU0RWVpPU5QK1Qj
JFAwCnohbjwhIzdpRCYtdE8qI0JwX2dJZnlZYHc+V31qMSgkYE1PcD9QXyt5WkNkdjFqJEZaVEpa
RGxvSHVDREttWDtRdAp6d292b0V5M0pyYnI9Z21ARjZNUk5LZmVlUnVQcS1vQTloUzVpXnRWYSFk
QSE2KWpfb3YtV05Je0dnTzlTI3VKSXsKemtwe0VhdkFhQiUtK3c9b2RweEF+aUYyK0F6RmhFN1Q0
QyR+WkdUWVdRcU5+PClaRUhVY2N3MHU4WlRJYzg9YWJWCnpCZGtKJldPP1VsVzRETVk9MWdBJllx
elZYSzU9Y3l5fkA3flEkNT9KUlolfSoqXmEzVlozeW5LKUdCe2o9K2x5OQp6TSN3Vl49KUFNWEBS
cThfUmtFJFNTWFpxez88Ymw2e0NIX05tWXZXT1ZEP3Bab3VYVXVZWVBQeiZWTG9IQEZ7YTIKekQh
ZHFhV01SOD97KUAod00kXn1XP18kJn50SyRUViRlNSlPQyomPXNuV3srWGBqfkIyZCUyOG5PNVpz
P3FsJXwoCnpVOW5ObFE7c0VoKFVeZ241SXk/Wm08QyQrPDtXa3xoNS10dUxsMlV6RnQ4PWVNZz91
UlhBJGhxZmx5am1SLSFWcwp6ZVk9WC1hUXNnO1pYIXVLPDdIKUtDNiE4ejx4UCRIWGw+SFhnP3Mx
bnE9fUs2eHNuMHQwdDJCJF9qaD0xTm1AV3sKel51bE5SZGBtTjQqIVl7b3o2dmklMzJOZ3BJXyhn
QXZsemMpSUdpOUQ+Y2hwQ1M+SU1yeDRIOTY+Y2hmOT9AbyVACnpqYV8/WktOUGlobjZNfXRkKj5Q
aSE9bHYrQD0lRm1MMHRyISNMSCFBPiohJFhXMHAlUj0kfnNzMjAmfjl4U3JwRgp6MVBjU1QwaTRS
OXpWWldkISV5OS1HSTRRJSY5YDwzPUhSMEh7aEZASm1LczBxRXBeNUJSfkVUZTs5OFJRaXBKRj4K
elpXdjVseUgyZiY2KXxSY3RhK2RvdWNxKCkmJXNSM1JFXmQqaU9MZGdDV0U7Mk8yKkk2NCtMR2xE
KXIjV2xQNXdSCnpgIUc4RW05KmwkJSo+S040OGYtVlZuXnM/VFJMbiFFQ0FuP2tMKVkrNVAmMmJM
SSFHRko7UiNZKHpSK3MyMyZBQgp6KG50M0lxO01rYmZsY0Q8eVQ1PEZxVFpKaS18NSQ4bVB1OUFp
RDwtWmRwVFdyZHpkV1EkVHtmSHk7OEB7X248fEcKenEjZCUpRn5RU2VieGBaNSomYT1IRUhDZVgm
JSk+R182IX0xJG13NiotVFJJRUppQjNpSWVOWCtpWENgTCEqQGtSCnpNYUNCOFNYeGJDVlBTb0pl
UHR5VnsrZ0RLJlImeUhQeWc/Q0c3RGArZCVGbT1pdUMzMU1RMV4kPH1vZilHZWdnZAp6MVYrJkRz
RjdEYXZtRFdDI3c5aSM7bSlNLXZPcGwtb2RmaUBUMjNRN0NNPGBYOUZmamdZQFNCekhBUCZeZHV6
cXMKejs1dHhscldlVCFveXo1TTx4dHtoamxKYigzQ0JQPzltTDA4Mz0lU0sjZj9yQiFoJXZZZyMy
MHRSLUJfaU48dEs5CnpPWEhzOUUwbjs3e2FmQUVjMEM0aGByWTUlQzV7WnFyaWQwYmNsPV97Qk9g
a1d1UndBcC0/R2xCIzMzK2VAemU3TQp6UG9ELTB4cyV7UWBzajcjcWVxV2M2M0VOVmlkfmpHPTV3
REdVQyk8R3pAT1R8QGIrRjtGWU1XfiVPaDlpcU5tQFQKej1MfFBRNXhSIWB4e0t8Yil4YFYoeXFi
Q0JHPnQ+Mm9vfjgrV3Qpc2NqP3Y/Zm8+dDxlQ2l0PlQkPj43Y0p4I3tPCnowKURIO0lHazFCaGxo
ZFAjajxLdl57QHtqeyhAY2lpVlNNKVJpWDltPT1vM2p7Pi1jajstcHF+MHo9VGlObU1hMgp6OzRM
U2I0Nm0oP0MjeGFqak9ARnFoSFh8cEw7VlhaMkUoSF5SNF5GZm17Vis8cT5fRT97N0Q5QiFAeT9f
O0M2VGEKeiZvJShmYkImamA5ST0hVilQWkNoT2o3TDFfRXphUkBEYUYjKSFyPihNOFlPe2k5WXck
Ozh9RHFSY0RAc1cxZXwrCno8M2I4WUp9X3M/UG1gMEFiM2h2KShpUnU/ODJVZDlHelM3Zl4qPlQ4
eEZNOD97Z25odWNxcXh7MjRsVXFxQkJlMQp6WE5zQTwqQ0paUShFclMreUtqNWx5MEpQbHd6ZTtS
ZH4mZEthYjRqQDtYYCFWSSk1UnpQTSRDbjw/OFA0UEgqflgKemtyYH1lbn4ocHwrQTFNailzUGs5
SElkIyprbWx4PGdYSHwkR2YpeT83dlEkckN9Q3JAdU9NZFpyamRRSjhmdFQ7CnorbVJKRlNDKmNo
RT9wajdMJXIlPTg7Uyl0RUs9dm4hQ0F+bkI/STVMSW1TVXNGTiZxfSlmLUVHKj0kXndFVHJvXwp6
M3VTRVpuSm87XzVhJUxZaCtKeWltWXZNKkRxdVohRGo5RHtFKHpSJVpxcDY5S0okfSg8PUI4dU5f
TyF+djMraTsKek1sNEtqU2ZIbittMWBYMihtNTBxdCtfZWtRNF80R3NWU1dFbEg+QCp3e35rTzhE
RCQ+MyZzcXtESVg3aHtwYUBWCnpXWj12JmZRSCRVdDtuUXt4JFN7RHBgVmBaPWU1RkUmNHU+fGN3
cnJhUmhZUm0qRj14a05gYWxsYn1rRiVgd2Urewp6aHdRc0dvci08dy1NKEo0VkUhXzI7OElFekpB
Y1pubT1lKUN0bmF9YEBhT3hUc3tSNGBTUy1CZyZMP3RQbmZ8fisKejhjZWdaej1XK0N5KlN3YUJD
czJyd1YmNkxBbVNyOFI9TlhTPW52Zm0maCozeC1CYkxlWU1Vcyo1UDwre1VlZDBkCnp0b0pybmVA
ZVVHSlF4IXRYZHwjRVJEQEY8eHB0PmRaJGpAM3UjemtfJHB2cj1oWFpVbz53MW5IPDVIU194Z0Ux
RQp6WnxlV0FvenBsdzxWfl5CUE91Z31DOEcwamN7eU13JHp0KFF6WkpfVVh1X2o3TWN0TShXOVJp
R1RoenpjVCROSTAKelRpRFN7X0FsS2BsZ0t5PXkoV2VtR3VAeWRXMXBWO1I5cDIhKW5MN3tka2xQ
cz50aFE8Z1h8c2tnPz0wQnRMVzdGCno8dX1TKDx9fmNHYmkhYiRRMCYoPE1lPFUwUCt4SWkrQF9F
bnU8M0B3O2pxfF4rMHFKeUVDPEt9TEFkSmZPMjJqdQp6dl9UYlo+R2UpbEVJU1dpSl9HJjBrfGQ3
ZD5xM3R0UE51dC1HZDk8eTQ5JVl9MmgwdURAdF9telBeLUg8P3wxWkEKej1JZD55RmtqSDcraSQ7
ZCRwU1peYFNOJVJ2fko4PXkle3VMKEFyVm4wZnEofCtKXi0mPTcpaW9BNVk0XmQqV1FtCnpkfn1P
cUoqd3FHSUJ+bWZkM01wNmxiNDMlcmZhenQyYnpPMTw3QiQ7KlUxYS1KPkZ4WlZeJn0jbzFtbCs+
Jkx9agp6a3QoNmg2ejJqIz5BKlotOEdWQzR1elVDSllfREIoO1oqTDFOS2ojc082Z3xTcDg0VWhn
Q2Bnc0NJV0c7eXRpI2gKelJDWVojP3lZLWg+MU1SSTxrciRlbSp8PXZAJS12Kz8rYFVnKiY7ZF5m
VXhDaHFLQiRreENUMWFyM187bl5idlpTCnp6a28lU0tzYEtUMVk+ZmZ3V1UhRnY7ISFMc2I8SXVI
WWY8YjN2JnUpeTRrTn0pUl5fRlhaZXtmNn1TZkFUIztRUwp6OVNTUCNBTCVfX1E4Y1Z4RnlYMjZA
YXpLe3BFcX02Q3NKJm9nIzAoa2N5MEdlLX16Nl40X343RWR9RyVeTnYrWjAKenM8NUdKTXtNK345
dG0jc1YmOGQoKT5HcStGQ0BzUlQwKCg4MDBhTG0lcWdVdyEmSF92RX1RNmp6ajVaZXRnPyVYCnol
Vz9kMHtrNUhuTm9wdzR5WmF9cTA9alV1cCtrKlZ3JXNtcHAhPFFfZSpxbUVxUjFGKFdaPX1udE5Y
aiRON0FQTQp6KzF4JGFUM30rfFpJIVVqJXR3bTZCPHA/OUU7K3p6OFAlQTU/MkxmQ0QzPz9YY3Rw
O0pCRDw2PUVpcHlYRHlFbkEKek1Qd2wzYDVOZm89MnFMQS1Da1pBNj4lNzNSKVhMbEl2Z1ZEeWRJ
UXc/KFo5XzdlN0FqaHFPMmhBajs3M240K0FtCno4RWYmZllwfUl5dHV5THpCKEhhR3xLWDczJURi
Ti1mfEJ8RDBpeEE4ZnxOfEZiXzspRGZKV2V1NDN6dEBlO3R0ZAp6bTdfaHw7Mm92N0A7UnUmZXdH
R2VTdU1qU1hsY2VKM3soZVk3U0c3MjUkfHNKRypmUEwmfXAtSWMwRXAwekRlI0EKej45S1FWd2Mk
OFdPd2khVmV8eUE0bnF6KU1yJiUoUnt8V3JJMS1oK0dwM2VLUSEmM0l9blhGNTJ5JXFuSGsxSDxM
Cno0P3dYS3t+c2JYP0A3VkFqc2dfOUJnWXQ+TitHUyFmYnEmaUZzWGc2fDdJdipyWU4lfWJaQzlf
aEZVcDZrYn1MMgp6VDcmR3tXal47NW9hYmw3QE5HP25DeWBTIW4qUTI5YV5oYERUVShuM2ByPH5G
PFlTcX5WWUM1Y2pNPj4pM3JAV3UKej4mfFEqdyQhQztIbGUqT0V9NyFuKGVRVktyaGlMdFoqT20o
WEdGKlM2SWFWPWkmT3w8KUU2JmEzPlFSOVNUQDUlCno1UGBePzIwXmopeUBWQD9iR29OU3c3RiNA
bjt+aFBzVyt1R1NOJURVYWM7WXdve3JBTzI4Wm0kSWozWmwqO3NOJAp6emw5aylwIWx6c1VPVE5W
NSpXMTVBdTFFRVNeKjlSdng0U3slZVRGPk4jQGNTR2F5aCloPm5MR0NeMy1TZFQzenwKenthcT4w
PTdeXl9XOFp2ejxVNn1uSXc9VHBVcDhZbkZNaEVPQ0Y8YHc5YGdCflBASDx1anY2QD00Jl5DX3tF
YTd6CnoySD4wbD9MaGQ/NTAyWEsyYCZPUVB9JXdNYExSPms1blZfQHJ2Km5tRG82ZVZZfEJYcXh9
JTFvVmA8U1FnT3s0MQp6eG8kNHFLOzI3RSRBLTVhZ2J0PHo4MylScnBeTD9BKXFFP1klOUVGTllx
X2l9NHZCIU5TKkJzJFVfbzUkV0k5Rn0KekJAeSRze0MoX1BCZC1ldUpYblYjJCYyOXJAYiM0JDg5
N3lQWnZgbmBxWlAxZjU7X1IpRWooQlV1I3Z2eyhMPm9KCnpSMUE1aDlNQHBaKF89IVFFLTBRY3Ap
VilHM2J0YlF8MGEjamV2bjJmcXl0NFM7eGQ4RyVOdVJGUUh5N2hVaX40Ugp6WkhLJXgod0woZHMl
UkM/QTFwYk9vZj9yMThRcXpuVGRqLWZjejtvTFU7SXQqXiYwRkJOfGJjNV9ldCs8SiRlPzAKenxD
VnNlJGlEQlhkanRSKm5qSF4xSGpWIXxofjFlLWk9NnBUVDI2Z3BwTD19a3MwQjJyYmlAJEdpOTF0
fXBRVSN5CnpeeFQ8VXNBWmBfenl8JnJxX3ZzZG8qI3ZfKXZ4YVA/QShiVj1gejhhX0VfWn1FRE9Y
cnNWdG9EdU5yc31YYyMmRAp6NHljcjxXYyZuJWxUbio3b2xPZSljNGIjNFJidUpxPCN7WHBHeTxN
cG4hPkJtPEYteEVxKmlmYU5TO2chUTswZWMKeiNVUUJsNSs2N0FjRGpyTnVIRSgkan1fO0o5PDJ8
JVFzcy1YckdrU3kmRGFrY09ZQW8je1NnVGd6MUlodlUwZ3owCnpeYWZCZDtNPEhCM0xPWiNjWllj
N1p6P3FvUERycDBiSjJWaVp5fj9JPyZffW07PXJqOUduM0dGaz4tUiZQWWVkYgp6PFZPWWtGMVMk
cmg3cih9NF5nO1IjR2t2Qz4+MEchKypPcGRIJVFoODtEZyMrUFMlNFg3RXswRiZZb19OUGYzMjwK
elFJX3NDJExBMVRmVTxjQntRaFJvKFFpVkMrXlI9fSlkPH1TNEpOcUdoOC0zN0EkOHkzb18hK00h
Zk9TNG4rSUY+CnpKN3luOSZWfm95WUA0Vzt4Pm9XRz91V0JqWUhGJG1kUTtkJSZkQThmWnhwcG5j
QCNxK2EmPm1AamhsTnEpQExMIwp6K2QzRClSZ1NNRV5aJExqcFI3RzhyK3d0TG9uQ3t7YFBZQlNE
ailBNVBFRjxGTDtLMnlBYnZRRUsybjtrKCUqQCYKekdUWUlSN1hRfXEqOys2VmZ3eFA9Ym1eXm5A
KFBFd2Jya1FpNjN4U0M2IyZIdlMkPHNAJSNeeUVKYURyPEVxPTtRCno3NVB5Ukd0emphNHM4SXYj
VHtNZy1GJDEtMzdJZE1hKnheaV9kcllYc3lePzhGM0l7XiNDT19+MFY0JEIoI2Z3Qwp6NUktSGVC
OH5YJiUoPEArVTtwNVNLKW1gZ15yYUdDSDFXaj5VIWRAWGc8cmJEbTtVJUE3SkxhdnxEVTtWcDhW
QyYKWVMzSVItbzVFQUA7fS0mTD9RcDk2PGhlaW8yV2Q9Tl5aKTw9CgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDBkNzcxMTguLmU1MjYyZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTItMTAtMzAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBz
YW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNv
bnRleHRDbGljayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIG5ldyB1bml0IHRlc3QgZmlsZSwgbmVlZGVkIGR1ZSB0byBl
d2sgQVBJIGNoYW5nZXMuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKwogMjAxMi0x
MC0yOCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByZWZl
cmVuY2VzIHRvIHVuc3VwcG9ydGVkIE9TIGFuZCBYY29kZSB2ZXJzaW9ucy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
RWZsLmNtYWtlCmluZGV4IGU4YzAzMDcuLjM1MzczZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFr
ZQpAQCAtMjUxLDYgKzI1MSw3IEBAIFRBUkdFVF9MSU5LX0xJQlJBUklFUyhld2tUZXN0VXRpbHMg
JHtFV0tVbml0VGVzdHNfTElCUkFSSUVTfSkKIFNFVChXRUJLSVRfRUZMX1RFU1RfRElSICIke1dF
QktJVF9ESVJ9L2VmbC90ZXN0cy8iKQogCiBTRVQoRVdLVW5pdFRlc3RzX0JJTkFSSUVTCisgICAg
dGVzdF9ld2tfY29udGV4dG1lbnUKICAgICB0ZXN0X2V3a19mcmFtZQogICAgIHRlc3RfZXdrX3Zp
ZXcKICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBhZjU0YTg3Li5lNTU2ZDA0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMTAtMzAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0
a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2Vu
ZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgcG9pbnRlciB0byBwYXJlbnQg
bWVudSBpbiBFd2tfQ29udGV4dF9NZW51X0l0ZW0gYW5kIGEgZ2V0dGVyCisgICAgICAgIGZ1bmN0
aW9uIHRvIGFsbG93IHNlbGVjdGluZyBhIGNvbnRleHQgbWVudSBpdGVtIHdpdGhvdXQgaGF2aW5n
CisgICAgICAgIHBhcmVudCBtZW51IHBvaW50ZXIgaW4gRHVtcFJlbmRlclRyZWUgRXZlbnRTZW5k
ZXIuCisgICAgICAgIFRocmVlIHVuaXQgdGVzdHMgYWRkZWQgZHVlIGV3ayBBUEkgY2hhbmdlcy4K
KworICAgICAgICAqIGV3ay9ld2tfY29udGV4dG1lbnUuY3BwOgorICAgICAgICAoX0V3a19Db250
ZXh0X01lbnVfSXRlbSk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KToKKyAg
ICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KToKKyAgICAgICAgKGV3a19j
b250ZXh0X21lbnVfaXRlbV9hcHBlbmQpOgorICAgICAgICAqIGV3ay9ld2tfY29udGV4dG1lbnUu
aDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoZXdrX3ZpZXdfY29udGV4
dF9tZW51X2dldCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisgICAgICAgICogdGVzdHMv
dGVzdF9ld2tfY29udGV4dG1lbnUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRFU1RfRik6CisgICAg
ICAgICogdGVzdHMvdGVzdF9ld2tfdmlldy5jcHA6CisgICAgICAgIChURVNUX0YpOgorCiAyMDEy
LTEwLTMwICBKaW53b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbRUZMXSBSZWZhY3RvciB0b29sdGlwIGNhbGxiYWNrIHNpZ25hbCBpbiBXZWJLaXQxCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCmluZGV4IGU3OTJjNmQuLmM0YWQ0
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCkBAIC01Myw2
ICs1Myw3IEBAIHN0cnVjdCBfRXdrX0NvbnRleHRfTWVudV9JdGVtIHsKIAogICAgIGNvbnN0IGNo
YXIqIHRpdGxlOyAvKio8IGNvbnRhaW5zIHRoZSB0aXRsZSBvZiB0aGUgaXRlbSAqLwogICAgIEV3
a19Db250ZXh0X01lbnUqIHN1Ym1lbnU7IC8qKjwgY29udGFpbnMgdGhlIHBvaW50ZXIgdG8gdGhl
IHN1Ym1lbnUgb2YgdGhlIGl0ZW0gKi8KKyAgICBFd2tfQ29udGV4dF9NZW51KiBwYXJlbnRNZW51
OyAvKio8IGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHBhcmVudCBtZW51IG9mIHRoZSBpdGVtICov
CiAKICAgICBib29sIGNoZWNrZWQgOiAxOwogICAgIGJvb2wgZW5hYmxlZCA6IDE7CkBAIC05OCwx
NCArOTksMTQgQEAgY29uc3QgRWluYV9MaXN0KiBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9n
ZXQoY29uc3QgRXdrX0NvbnRleHRfTWVudSogbWVudSkKICAgICByZXR1cm4gbWVudS0+aXRlbXM7
CiB9CiAKLUV3a19Db250ZXh0X01lbnVfSXRlbSogZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhF
d2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwg
RXdrX0NvbnRleHRfTWVudSogc3VibWVudSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQs
IEVpbmFfQm9vbCBlbmFibGVkKQorRXdrX0NvbnRleHRfTWVudV9JdGVtKiBld2tfY29udGV4dF9t
ZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUsIEV3a19Db250ZXh0
X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVudSogcGFyZW50TWVudSwKKyAgICBF
d2tfQ29udGV4dF9NZW51KiBzdWJtZW51LCBjb25zdCBjaGFyKiB0aXRsZSwgRWluYV9Cb29sIGNo
ZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKQogewogICAgIEV3a19Db250ZXh0X01lbnVfSXRlbSog
aXRlbSA9IG5ldyBFd2tfQ29udGV4dF9NZW51X0l0ZW07CiAgICAgaXRlbS0+dHlwZSA9IHR5cGU7
CiAgICAgaXRlbS0+YWN0aW9uID0gYWN0aW9uOwogICAgIGl0ZW0tPnRpdGxlID0gZWluYV9zdHJp
bmdzaGFyZV9hZGQodGl0bGUpOworICAgIGl0ZW0tPnBhcmVudE1lbnUgPSBwYXJlbnRNZW51Owog
ICAgIGl0ZW0tPnN1Ym1lbnUgPSBzdWJtZW51OwogICAgIGl0ZW0tPmNoZWNrZWQgPSBjaGVja2Vk
OwogICAgIGl0ZW0tPmVuYWJsZWQgPSBlbmFibGVkOwpAQCAtMjAzLDYgKzIwNCwxMiBAQCBFaW5h
X0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0KEV3a19Db250ZXh0X01lbnVf
SXRlbSogaXRlbSwgRWluYV9CbwogICAgIHJldHVybiB0cnVlOwogfQogCitFd2tfQ29udGV4dF9N
ZW51KiBld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dldChjb25zdCBFd2tfQ29udGV4dF9N
ZW51X0l0ZW0qIGl0ZW0pCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGl0
ZW0sIDApOworCisgICAgcmV0dXJuIGl0ZW0tPnBhcmVudE1lbnU7Cit9CiAKIC8qIGludGVybmFs
IG1ldGhvZHMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKi8KIApAQCAtMjc2LDkgKzI4Myw3IEBAIHZvaWQgZXdrX2NvbnRleHRfbWVudV9pdGVtX2Fw
cGVuZChFd2tfQ29udGV4dF9NZW51KiBtZW51LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0CiAgICAg
RXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0
X01lbnVfSXRlbV9UeXBlPihjb3JlLnR5cGUoKSk7CiAgICAgRXdrX0NvbnRleHRfTWVudV9BY3Rp
b24gYWN0aW9uID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9BY3Rpb24+KGNvcmUuYWN0
aW9uKCkpOwogCi0gICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBtZW51X2l0ZW0gPSBld2tfY29u
dGV4dF9tZW51X2l0ZW1fbmV3Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHR5cGUsIGFjdGlvbiwgMCwgY29yZS50aXRsZSgpLnV0ZjgoKS5kYXRhKCksIGNvcmUu
Y2hlY2tlZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
cmUuZW5hYmxlZCgpKTsKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG1lbnVfaXRlbSA9IGV3
a19jb250ZXh0X21lbnVfaXRlbV9uZXcodHlwZSwgYWN0aW9uLCBtZW51LCAwLCBjb3JlLnRpdGxl
KCkudXRmOCgpLmRhdGEoKSwgY29yZS5jaGVja2VkKCksIGNvcmUuZW5hYmxlZCgpKTsKICAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtZW51X2l0ZW0pOwogCiAgICAgbWVudS0+aXRlbXMg
PSBlaW5hX2xpc3RfYXBwZW5kKG1lbnUtPml0ZW1zLCBtZW51X2l0ZW0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCmluZGV4IGFmNmQ0YTguLjQ5ZWJhZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKQEAgLTE5Miw2ICsxOTIsNyBAQCBFQVBJ
IGNvbnN0IEVpbmFfTGlzdCAgICAgICAgICAgICpld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9n
ZXQoY29uc3QgRXdrX0NvbnRleAogICoKICAqIEBwYXJhbSB0eXBlIHNwZWNpZmllcyBhIHR5cGUg
b2YgdGhlIGl0ZW0KICAqIEBwYXJhbSBhY3Rpb24gc3BlY2lmaWVzIGEgYWN0aW9uIG9mIHRoZSBp
dGVtCisgKiBAcGFyYW0gcGFyZW50X21lbnUgc3BlY2lmaWVzIGEgcGFyZW50IG1lbnUgb2YgdGhl
IGl0ZW0KICAqIEBwYXJhbSBzdWJtZW51IHNwZWNpZmllcyBhIHN1Ym1lbnUgb2YgdGhlIGl0ZW0K
ICAqIEBwYXJhbSB0aXRsZSBzcGVjaWZpZXMgYSB0aXRsZSBvZiB0aGUgaXRlbQogICogQHBhcmFt
IGNoZWNrZWQgQGMgRUlOQV9UUlVFIGlmIHRoZSBpdGVtIHNob3VsZCBiZSB0b2dnbGVkIG9yIEBj
IEVJTkFfRkFMU0UgaWYgbm90CkBAIC0yMDAsNyArMjAxLDcgQEAgRUFQSSBjb25zdCBFaW5hX0xp
c3QgICAgICAgICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KGNvbnN0IEV3a19D
b250ZXgKICAqCiAgKiBAbm90ZSBUaGUgcmV0dXJuIHZhbHVlIEBiIHNob3VsZCBAYiBiZSBmcmVl
ZCBhZnRlciB1c2UuCiAgKi8KLUVBUEkgRXdrX0NvbnRleHRfTWVudV9JdGVtICAgICAgKmV3a19j
b250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSwgRXdr
X0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uLCBFd2tfQ29udGV4dF9NZW51ICpzdWJtZW51LCBj
b25zdCBjaGFyICp0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKTsK
K0VBUEkgRXdrX0NvbnRleHRfTWVudV9JdGVtICAgICAgKmV3a19jb250ZXh0X21lbnVfaXRlbV9u
ZXcoRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSwgRXdrX0NvbnRleHRfTWVudV9BY3Rp
b24gYWN0aW9uLCBFd2tfQ29udGV4dF9NZW51ICpwYXJlbnRfbWVudSwgRXdrX0NvbnRleHRfTWVu
dSAqc3VibWVudSwgY29uc3QgY2hhciAqdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jv
b2wgZW5hYmxlZCk7CiAKIC8qKgogICogRGVzdHJveXMgdGhlIGl0ZW0gb2YgdGhlIGNvbnRleHQg
bWVudSBvYmplY3QuCkBAIC0zMjIsNiArMzIzLDE0IEBAIEVBUEkgRWluYV9Cb29sICAgICAgICAg
ICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX2dldChjb25zdCBFd2tfQ29u
CiAgKi8KIEVBUEkgRWluYV9Cb29sICAgICAgICAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVf
aXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0gKm8sIEVpbmFfQm9vbCBlbmFi
bGVkKTsKIAorLyoqCisgKiBHZXRzIHRoZSBwYXJlbnQgbWVudSBmb3IgY29udGV4dCBtZW51IGl0
ZW0uCisgKgorICogQHBhcmFtIG8gdGhlIGNvbnRleHQgbWVudSBpdGVtIG9iamVjdAorICogQHJl
dHVybiBhIGNvbnRleHQgbWVudSBvYmplY3Qgb24gc3VjY2VzcyBvciBAYyBOVUxMIG9uIGZhaWx1
cmUKKyAqLworRUFQSSBFd2tfQ29udGV4dF9NZW51ICAgICAgICAgICAqZXdrX2NvbnRleHRfbWVu
dV9pdGVtX3BhcmVudF9nZXQoY29uc3QgRXdrX0NvbnRleHRfTWVudV9JdGVtICpvKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmlu
ZGV4IDQzMjI1ZTkuLjQwMzAyOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAt
NDczMyw2ICs0NzMzLDE0IEBAIHZvaWQgZXdrX3ZpZXdfZnVsbHNjcmVlbl9leGl0KGNvbnN0IEV2
YXNfT2JqZWN0KiBld2tWaWV3KQogfQogI2VuZGlmCiAKK0V3a19Db250ZXh0X01lbnUqIGV3a192
aWV3X2NvbnRleHRfbWVudV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCit7CisgICAg
RVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOworICAgIEVX
S19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOworCisgICAgcmV0
dXJuIHByaXYtPmNvbnRleHRNZW51OworfQorCiBuYW1lc3BhY2UgRVdLUHJpdmF0ZSB7CiAKIFdl
YkNvcmU6OlBhZ2UqIGNvcmVQYWdlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuaAppbmRleCBlOGJhZjg3Li4xMDZiYTE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuaApAQCAtMTE0LDYgKzExNCw3IEBACiAjaWZuZGVmIGV3a192aWV3X2gKICNkZWZp
bmUgZXdrX3ZpZXdfaAogCisjaW5jbHVkZSAiZXdrX2NvbnRleHRtZW51LmgiCiAjaW5jbHVkZSAi
ZXdrX2ZpbGVfY2hvb3Nlci5oIgogI2luY2x1ZGUgImV3a19mcmFtZS5oIgogI2luY2x1ZGUgImV3
a19oaXN0b3J5LmgiCkBAIC0yNzc1LDYgKzI3NzYsMTQgQEAgRUFQSSBFaW5hX0Jvb2wgZXdrX3Zp
ZXdfc2V0dGluZ19lbmFibGVfZnVsbHNjcmVlbl9zZXQoRXZhc19PYmplY3QgKm8sIEVpbmFfQm9v
bAogICovCiBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2VuYWJsZV9mdWxsc2NyZWVu
X2dldChjb25zdCBFdmFzX09iamVjdCAqbyk7CiAKKy8qKgorICogR2V0cyB0aGUgY29udGV4dCBt
ZW51IG9iamVjdC4KKyAqIEBwYXJhbSBvIFRoZSB2aWV3IHRoYXQgY29udGFpbnMgY29udGV4dCBt
ZW51LgorICoKKyAqIEByZXR1cm4gY29udGV4dCBtZW51IHN0cnVjdHVyZSBvbiBzdWNjZXNzIG9y
IEBjIE5VTEwgb24gZmFpbHVyZQorICovCitFQVBJIEV3a19Db250ZXh0X01lbnUgKmV3a192aWV3
X2NvbnRleHRfbWVudV9nZXQoY29uc3QgRXZhc19PYmplY3QgKm8pOworCiAjaWZkZWYgX19jcGx1
c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVz
dF9ld2tfY29udGV4dG1lbnUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tf
Y29udGV4dG1lbnUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyOTQw
ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a19j
b250ZXh0bWVudS5jcHAKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAy
MDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUKKyAgICBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyAgICBJbmMuLCA1OSBUZW1wbGUgUGxhY2Us
IFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQorKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiVW5pdFRlc3RVdGlscy9FV0tUZXN0QmFzZS5oIgorI2luY2x1
ZGUgIlVuaXRUZXN0VXRpbHMvRVdLVGVzdENvbmZpZy5oIgorI2luY2x1ZGUgPEVXZWJLaXQuaD4K
KyNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgRVdLVW5pdFRlc3RzOworCisvKioK
KyAqIEBicmllZiBDaGVja2luZyB3aGV0aGVyIGZ1bmN0aW9uIGNyZWF0ZXMgcHJvcGVyIG1lbnUg
aXRlbS4KKyAqCisgKiBUaGlzIHRlc3QgY3JlYXRlcyBhIG1lbnUgaXRlbSBhbmQgY2hlY2tzIGlm
IGFsbCBtZW51IGl0ZW0ncyBhdHRyaWJ1dGVzIGFyZQorICogdGhlIHNhbWUgYXMgcGFzc2VkIHRv
IHRlc3RlZCBmdW5jdGlvbi4KKyAqLworVEVTVF9GKEVXS1Rlc3RCYXNlLCBld2tfY29udGV4dF9t
ZW51X2l0ZW1fbmV3KQoreworICAgIGxvYWRVcmwoKTsKKworICAgIEV2YXMqIGV2YXMgPSBldmFz
X29iamVjdF9ldmFzX2dldCh3ZWJWaWV3KCkpOworICAgIEFTU0VSVF9UUlVFKGV2YXMpOworCisg
ICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duIG1vdXNlRG93bjsKKyAgICBtb3VzZURvd24uYnV0dG9u
ID0gMzsKKyAgICBtb3VzZURvd24ub3V0cHV0LnggPSAwOworICAgIG1vdXNlRG93bi5vdXRwdXQu
eSA9IDA7CisgICAgbW91c2VEb3duLmNhbnZhcy54ID0gMDsKKyAgICBtb3VzZURvd24uY2FudmFz
LnkgPSAwOworICAgIG1vdXNlRG93bi5kYXRhID0gMDsKKyAgICBtb3VzZURvd24ubW9kaWZpZXJz
ID0gY29uc3RfY2FzdDxFdmFzX01vZGlmaWVyKj4oZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMp
KTsKKyAgICBtb3VzZURvd24ubG9ja3MgPSBjb25zdF9jYXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5
X2xvY2tfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05F
OworICAgIG1vdXNlRG93bi50aW1lc3RhbXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CisgICAg
bW91c2VEb3duLmV2ZW50X2ZsYWdzID0gRVZBU19FVkVOVF9GTEFHX05PTkU7CisgICAgbW91c2VE
b3duLmRldiA9IDA7CisKKyAgICBBU1NFUlRfVFJVRShld2tfdmlld19jb250ZXh0X21lbnVfZm9y
d2FyZF9ldmVudCh3ZWJWaWV3KCksICZtb3VzZURvd24pKTsKKworICAgIEV3a19Db250ZXh0X01l
bnUqIGNvbnRleHRNZW51ID0gZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldCh3ZWJWaWV3KCkpOwor
CisgICAgQVNTRVJUX1RSVUUoY29udGV4dE1lbnUpOworCisgICAgRXdrX0NvbnRleHRfTWVudV9J
dGVtX1R5cGUgaXRlbVR5cGUgPSBFV0tfQUNUSU9OX1RZUEU7CisgICAgRXdrX0NvbnRleHRfTWVu
dV9BY3Rpb24gaXRlbUFjdGlvbiA9IEVXS19DT05URVhUX01FTlVfSVRFTV9DVVNUT01fVEFHX05P
X0FDVElPTjsKKyAgICBjb25zdCBjaGFyKiBpdGVtVGl0bGUgPSAiVGVzdCBJdGVtIjsKKyAgICBi
b29sIGl0ZW1DaGVja2VkID0gZmFsc2U7CisgICAgYm9vbCBpdGVtRW5hYmxlZCA9IGZhbHNlOwor
CisgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBjb250ZXh0TWVudUl0ZW0gPSBld2tfY29udGV4
dF9tZW51X2l0ZW1fbmV3KGl0ZW1UeXBlLCBpdGVtQWN0aW9uLCBjb250ZXh0TWVudSwgMCwgaXRl
bVRpdGxlLCBpdGVtQ2hlY2tlZCwgaXRlbUVuYWJsZWQpOworCisgICAgQVNTRVJUX1RSVUUoY29u
dGV4dE1lbnVJdGVtKTsKKworICAgIEVYUEVDVF9FUShpdGVtVHlwZSwgZXdrX2NvbnRleHRfbWVu
dV9pdGVtX3R5cGVfZ2V0KGNvbnRleHRNZW51SXRlbSkpOworICAgIEVYUEVDVF9FUShpdGVtQWN0
aW9uLCBld2tfY29udGV4dF9tZW51X2l0ZW1fYWN0aW9uX2dldChjb250ZXh0TWVudUl0ZW0pKTsK
KyAgICBFWFBFQ1RfRVEoY29udGV4dE1lbnUsIGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRf
Z2V0KGNvbnRleHRNZW51SXRlbSkpOworICAgIEVYUEVDVF9TVFJFUShpdGVtVGl0bGUsIGV3a19j
b250ZXh0X21lbnVfaXRlbV90aXRsZV9nZXQoY29udGV4dE1lbnVJdGVtKSk7CisgICAgRVhQRUNU
X0VRKGl0ZW1DaGVja2VkLCBld2tfY29udGV4dF9tZW51X2l0ZW1fY2hlY2tlZF9nZXQoY29udGV4
dE1lbnVJdGVtKSk7CisgICAgRVhQRUNUX0VRKGl0ZW1FbmFibGVkLCBld2tfY29udGV4dF9tZW51
X2l0ZW1fZW5hYmxlZF9nZXQoY29udGV4dE1lbnVJdGVtKSk7CisKKyAgICBld2tfY29udGV4dF9t
ZW51X2l0ZW1fZnJlZShjb250ZXh0TWVudUl0ZW0pOworfQorCisvKioKKyAqIEBicmllZiBDaGVj
a2luZyB3aGV0aGVyIGZ1bmN0aW9uIHJldHVybnMgcHJvcGVyIHBhcmVudCBtZW51LgorICoKKyAq
IFRoaXMgdGVzdCBjcmVhdGVzIGEgY29udGV4dCBtZW51cywgYW5kIGNoZWNrcyBpZiBjcmVhdGVk
IGNvbnRleHQgbWVudSdzCisgKiBwYXJlbnQgaXMgdGhlIHNhbWUgZm9yIGVhY2ggb2YgbWVudSBp
dGVtcy4KKyAqLworVEVTVF9GKEVXS1Rlc3RCYXNlLCBld2tfY29udGV4dF9tZW51X2l0ZW1fcGFy
ZW50X2dldCkKK3sKKyAgICBsb2FkVXJsKCk7CisKKyAgICBFdmFzKiBldmFzID0gZXZhc19vYmpl
Y3RfZXZhc19nZXQod2ViVmlldygpKTsKKyAgICBBU1NFUlRfVFJVRShldmFzKTsKKworICAgIEV2
YXNfRXZlbnRfTW91c2VfRG93biBtb3VzZURvd247CisgICAgbW91c2VEb3duLmJ1dHRvbiA9IDM7
CisgICAgbW91c2VEb3duLm91dHB1dC54ID0gMDsKKyAgICBtb3VzZURvd24ub3V0cHV0LnkgPSAw
OworICAgIG1vdXNlRG93bi5jYW52YXMueCA9IDA7CisgICAgbW91c2VEb3duLmNhbnZhcy55ID0g
MDsKKyAgICBtb3VzZURvd24uZGF0YSA9IDA7CisgICAgbW91c2VEb3duLm1vZGlmaWVycyA9IGNv
bnN0X2Nhc3Q8RXZhc19Nb2RpZmllcio+KGV2YXNfa2V5X21vZGlmaWVyX2dldChldmFzKSk7Cisg
ICAgbW91c2VEb3duLmxvY2tzID0gY29uc3RfY2FzdDxFdmFzX0xvY2sqPihldmFzX2tleV9sb2Nr
X2dldChldmFzKSk7CisgICAgbW91c2VEb3duLmZsYWdzID0gRVZBU19CVVRUT05fTk9ORTsKKyAg
ICBtb3VzZURvd24udGltZXN0YW1wID0gZWNvcmVfbG9vcF90aW1lX2dldCgpOworICAgIG1vdXNl
RG93bi5ldmVudF9mbGFncyA9IEVWQVNfRVZFTlRfRkxBR19OT05FOworICAgIG1vdXNlRG93bi5k
ZXYgPSAwOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRf
ZXZlbnQod2ViVmlldygpLCAmbW91c2VEb3duKSk7CisKKyAgICBFd2tfQ29udGV4dF9NZW51KiBj
b250ZXh0TWVudSA9IGV3a192aWV3X2NvbnRleHRfbWVudV9nZXQod2ViVmlldygpKTsKKworICAg
IEFTU0VSVF9UUlVFKGNvbnRleHRNZW51KTsKKworICAgIGNvbnN0IEVpbmFfTGlzdCogY29udGV4
dE1lbnVJdGVtcyA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldChjb250ZXh0TWVudSk7
CisKKyAgICBBU1NFUlRfVFJVRShjb250ZXh0TWVudUl0ZW1zKTsKKworICAgIGNvbnN0IEVpbmFf
TGlzdCogbGlzdEl0ZXJhdG9yOworICAgIHZvaWQqIGRhdGE7CisgICAgRUlOQV9MSVNUX0ZPUkVB
Q0goY29udGV4dE1lbnVJdGVtcywgbGlzdEl0ZXJhdG9yLCBkYXRhKQorICAgICAgICBFWFBFQ1Rf
RVEoY29udGV4dE1lbnUsIGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KHN0YXRpY19j
YXN0PEV3a19Db250ZXh0X01lbnVfSXRlbSo+KGRhdGEpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZs
L3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCmluZGV4IDlmYTIzZmIuLjI0MTU4MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX3ZpZXcuY3BwCkBAIC03MCwzICs3MCwzNSBAQCBU
RVNUX0YoRVdLVGVzdEJhc2UsIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2Z1bGxzY3JlZW4pCiAg
ICAgQVNTRVJUX0ZBTFNFKGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2Z1bGxzY3JlZW5fZ2V0KHdl
YlZpZXcoKSkpOwogI2VuZGlmCiB9CisKKy8qKgorICogQGJyaWVmIENoZWNraW5nIHdoZXRoZXIg
ZnVuY3Rpb24gcmV0dXJucyBwcm9wZXIgY29udGV4dCBtZW51IHN0cnVjdHVyZS4KKyAqCisgKiBU
aGlzIHRlc3QgY3JlYXRlcyBhIGNvbnRleHQgbWVudSBhbmQgY2hlY2tzIGlmIGNvbnRleHQgbWVu
dSBzdHJ1Y3R1cmUKKyAqIGlzIG5vdCBOVUxMOworICovCitURVNUX0YoRVdLVGVzdEJhc2UsIGV3
a192aWV3X2NvbnRleHRfbWVudV9nZXQpCit7CisgICAgbG9hZFVybCgpOworCisgICAgRXZhcyog
ZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KHdlYlZpZXcoKSk7CisgICAgQVNTRVJUX1RSVUUo
ZXZhcyk7CisKKyAgICBFdmFzX0V2ZW50X01vdXNlX0Rvd24gbW91c2VEb3duOworICAgIG1vdXNl
RG93bi5idXR0b24gPSAzOworICAgIG1vdXNlRG93bi5vdXRwdXQueCA9IDA7CisgICAgbW91c2VE
b3duLm91dHB1dC55ID0gMDsKKyAgICBtb3VzZURvd24uY2FudmFzLnggPSAwOworICAgIG1vdXNl
RG93bi5jYW52YXMueSA9IDA7CisgICAgbW91c2VEb3duLmRhdGEgPSAwOworICAgIG1vdXNlRG93
bi5tb2RpZmllcnMgPSBjb25zdF9jYXN0PEV2YXNfTW9kaWZpZXIqPihldmFzX2tleV9tb2RpZmll
cl9nZXQoZXZhcykpOworICAgIG1vdXNlRG93bi5sb2NrcyA9IGNvbnN0X2Nhc3Q8RXZhc19Mb2Nr
Kj4oZXZhc19rZXlfbG9ja19nZXQoZXZhcykpOworICAgIG1vdXNlRG93bi5mbGFncyA9IEVWQVNf
QlVUVE9OX05PTkU7CisgICAgbW91c2VEb3duLnRpbWVzdGFtcCA9IGVjb3JlX2xvb3BfdGltZV9n
ZXQoKTsKKyAgICBtb3VzZURvd24uZXZlbnRfZmxhZ3MgPSBFVkFTX0VWRU5UX0ZMQUdfTk9ORTsK
KyAgICBtb3VzZURvd24uZGV2ID0gMDsKKworICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X2NvbnRl
eHRfbWVudV9mb3J3YXJkX2V2ZW50KHdlYlZpZXcoKSwgJm1vdXNlRG93bikpOworCisgICAgQVNT
RVJUX1RSVUUoZXdrX3ZpZXdfY29udGV4dF9tZW51X2dldCh3ZWJWaWV3KCkpKTsKK30KZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyYTg0OTI4Li5j
NzhkZTRhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAtMzAgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2Eg
IDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVy
IHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDkxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbnRleHRDbGljayBmb3IgRHVtcFJl
bmRlclRyZWVFdmVudFNlbmRlciBiYXNpbmcgb24gV2ViS2l0IEdUSworICAgICAgICBpbXBsZW1l
bnRhdGlvbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHA6
CisgICAgICAgIChnZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2spOgorICAgICAgICAoc2V0TWVudUl0
ZW1UaXRsZUNhbGxiYWNrKToKKyAgICAgICAgKG1lbnVJdGVtQ2xpY2tDYWxsYmFjayk6CisgICAg
ICAgIChjb250ZXh0Q2xpY2tDYWxsYmFjayk6CisKIDIwMTItMTAtMzAgIE1pa2hhaWwgUG96ZG55
YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bV1RS
XSBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRlc3RSdW5uZXIucXVldWVMb2FkSFRNTFN0cmluZwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAKaW5kZXggNzhkMmRiYy4uZTJm
ZjVlMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwCkBAIC0yNjks
NiArMjY5LDEwMiBAQCBzdGF0aWMgdW5zaWduZWQgbW9kaWZpZXJzRnJvbUpTVmFsdWUoSlNDb250
ZXh0UmVmIGNvbnRleHQsIGNvbnN0IEpTVmFsdWVSZWYgbW9kaQogICAgIHJldHVybiBtb2RpZmll
cjsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZ2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEV3a19Db250ZXh0X01lbnVfSXRl
bSogaXRlbSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbSo+KEpTT2JqZWN0R2V0
UHJpdmF0ZShvYmplY3QpKTsKKyAgICBDU3RyaW5nIGxhYmVsOworICAgIGlmIChld2tfY29udGV4
dF9tZW51X2l0ZW1fdHlwZV9nZXQoaXRlbSkgPT0gRVdLX1NFUEFSQVRPUl9UWVBFKQorICAgICAg
ICBsYWJlbCA9ICI8c2VwYXJhdG9yPiI7CisgICAgZWxzZQorICAgICAgICBsYWJlbCA9IGV3a19j
b250ZXh0X21lbnVfaXRlbV90aXRsZV9nZXQoaXRlbSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1h
a2VTdHJpbmcoY29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobGFiZWwuZGF0
YSgpKSk7Cit9CisKK3N0YXRpYyBib29sIHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgbWVudUl0ZW1DbGlja0NhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0q
IGl0ZW0gPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihKU09iamVjdEdldFBy
aXZhdGUodGhpc09iamVjdCkpOworICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9zZWxlY3QoZXdr
X2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoaXRlbSksIGl0ZW0pOworICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKworc3RhdGljIEpTU3RhdGljRnVuY3Rp
b24gc3RhdGljTWVudUl0ZW1GdW5jdGlvbnNbXSA9IHsKKyAgICB7ICJjbGljayIsIG1lbnVJdGVt
Q2xpY2tDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgIHsgMCwgMCwgMCB9Cit9OworCitzdGF0aWMgSlNT
dGF0aWNWYWx1ZSBzdGF0aWNNZW51SXRlbVZhbHVlc1tdID0geworICAgIHsgInRpdGxlIiwgZ2V0
TWVudUl0ZW1UaXRsZUNhbGxiYWNrLCBzZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlTm9uZSB9LAorICAgIHsgMCwgMCwgMCwgMCB9Cit9OworCitzdGF0aWMgSlND
bGFzc1JlZiBnZXRNZW51SXRlbUNsYXNzKCkKK3sKKyAgICBzdGF0aWMgSlNDbGFzc1JlZiBtZW51
SXRlbUNsYXNzID0gMDsKKworICAgIGlmICghbWVudUl0ZW1DbGFzcykgeworICAgICAgICBKU0Ns
YXNzRGVmaW5pdGlvbiBjbGFzc0RlZmluaXRpb24gPSB7CisgICAgICAgICAgICAwLCAwLCAwLCAw
LCAwLCAwLAorICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH07Cisg
ICAgICAgIGNsYXNzRGVmaW5pdGlvbi5zdGF0aWNGdW5jdGlvbnMgPSBzdGF0aWNNZW51SXRlbUZ1
bmN0aW9uczsKKyAgICAgICAgY2xhc3NEZWZpbml0aW9uLnN0YXRpY1ZhbHVlcyA9IHN0YXRpY01l
bnVJdGVtVmFsdWVzOworCisgICAgICAgIG1lbnVJdGVtQ2xhc3MgPSBKU0NsYXNzQ3JlYXRlKCZj
bGFzc0RlZmluaXRpb24pOworICAgIH0KKworICAgIHJldHVybiBtZW51SXRlbUNsYXNzOworfQor
CitzdGF0aWMgSlNWYWx1ZVJlZiBjb250ZXh0Q2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCit7CisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBld2tfZnJhbWVfdmlld19n
ZXQoYnJvd3Nlci0+bWFpbkZyYW1lKCkpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgRXZhcyogZXZhcyA9IGV2YXNf
b2JqZWN0X2V2YXNfZ2V0KHZpZXcpOworICAgIGlmICghZXZhcykKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3du
IG1vdXNlRG93bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3VzZURvd24ub3V0
cHV0LnggPSBnTGFzdE1vdXNlUG9zaXRpb25YOworICAgIG1vdXNlRG93bi5vdXRwdXQueSA9IGdM
YXN0TW91c2VQb3NpdGlvblk7CisgICAgbW91c2VEb3duLmNhbnZhcy54ID0gZ0xhc3RNb3VzZVBv
c2l0aW9uWDsKKyAgICBtb3VzZURvd24uY2FudmFzLnkgPSBnTGFzdE1vdXNlUG9zaXRpb25ZOwor
ICAgIG1vdXNlRG93bi5kYXRhID0gMDsKKyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0gY29uc3Rf
Y2FzdDxFdmFzX01vZGlmaWVyKj4oZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBt
b3VzZURvd24ubG9ja3MgPSBjb25zdF9jYXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xvY2tfZ2V0
KGV2YXMpKTsKKyAgICBtb3VzZURvd24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1v
dXNlRG93bi50aW1lc3RhbXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3du
LmV2ZW50X2ZsYWdzID0gRVZBU19FVkVOVF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9
IDA7CisKKyAgICBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh2aWV3LCAmbW91
c2VEb3duKTsKKyAgICBFd2tfQ29udGV4dF9NZW51KiBld2tNZW51ID0gZXdrX3ZpZXdfY29udGV4
dF9tZW51X2dldCh2aWV3KTsKKworICAgIEpTVmFsdWVSZWYgdmFsdWVSZWYgPSBKU09iamVjdE1h
a2VBcnJheShjb250ZXh0LCAwLCAwLCAwKTsKKyAgICBpZiAoZXdrTWVudSkgeworICAgICAgICBj
b25zdCBFaW5hX0xpc3QqIGV3a01lbnVJdGVtcyA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0
X2dldChld2tNZW51KTsKKyAgICAgICAgSlNWYWx1ZVJlZiBhcnJheVZhbHVlc1tlaW5hX2xpc3Rf
Y291bnQoZXdrTWVudUl0ZW1zKV07CisKKyAgICAgICAgY29uc3QgRWluYV9MaXN0KiBsaXN0SXRl
cmF0b3I7CisgICAgICAgIHZvaWQqIGRhdGE7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAg
ICAgIEVJTkFfTElTVF9GT1JFQUNIKGV3a01lbnVJdGVtcywgbGlzdEl0ZXJhdG9yLCBkYXRhKQor
ICAgICAgICAgICAgYXJyYXlWYWx1ZXNbaW5kZXgrK10gPSBKU09iamVjdE1ha2UoY29udGV4dCwg
Z2V0TWVudUl0ZW1DbGFzcygpLCBkYXRhKTsKKworICAgICAgICBpZiAoaW5kZXgpCisgICAgICAg
ICAgICB2YWx1ZVJlZiA9IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIGluZGV4IC0gMSwgYXJy
YXlWYWx1ZXMsIDApOworICAgIH0KKworICAgIHJldHVybiB2YWx1ZVJlZjsKK30KKwogc3RhdGlj
IEpTVmFsdWVSZWYgbW91c2VEb3duQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQogewogICAgIGludCBidXR0b24gPSAwOwpAQCAtODAzLDYgKzg5OSw3IEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIHNldFRvdWNoTW9kaWZpZXJDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgZnVuCiB9CiAKIHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIHN0YXRpY0Z1bmN0aW9u
c1tdID0geworICAgIHsgImNvbnRleHRDbGljayIsIGNvbnRleHRDbGlja0NhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgeyAibW91c2VTY3JvbGxCeSIsIG1vdXNlU2Nyb2xsQnlDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgIHsgImNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5IiwgY29udGludW91c01vdXNlU2Nyb2xs
QnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgIHsgIm1vdXNlRG93biIsIG1vdXNlRG93bkNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCg==
</data>
<flag name="review"
          id="185397"
          type_id="1"
          status="+"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171591</attachid>
            <date>2012-10-31 00:28:24 -0700</date>
            <delta_ts>2012-10-31 01:59:19 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>patchforlanding.diff</filename>
            <type>text/plain</type>
            <size>33802</size>
            <attacher name="Michal Pakula vel Rutka">mpakulavelrutka</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYTllNzM4Li42ODA3YjNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAt
MzEgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBbRUZMXVtEUlRdIEV2ZW50U2VuZGVyIHJlcXVpcmVzIGNvbnRleHRDbGljayBpbXBs
ZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODYwOTEKKworICAgICAgICBSZXZpZXdlZCBieSBHeXV5b3VuZyBLaW0uCisKKyAgICAgICAg
TW92ZSBjb250ZXh0Q2xpY2sgZGVwZW5kZW50IHRlc3RzIHRvIFdlYktpdDIgVGVzdEV4cGVjdGF0
aW9ucyBhbmQKKyAgICAgICAgYWRkIG5ldyBleHBlY3RlZCByZXN1bHRzLgorCisgICAgICAgICog
cGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2Vm
bC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9lZGl0aW5nL3NlbGVj
dGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9l
ZmwvZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW9ubW91c2Vkb3duLWV2
ZW50LWV4cGVjdGVkLnBuZzogQWRkZWQuCisKIDIwMTItMTAtMzAgIE5pY28gV2ViZXIgIDx0aGFr
aXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIGJhc2VsaW5lcyBmb3Ig
ZmFzdC9pbWFnZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MuaHRtbCBhbmQgZXhpZi1vcmllbnRhdGlv
bi1pbWFnZS1kb2N1bWVudC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
Zmwtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggYWZlNGNjZi4uMjU1ZjQ5OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjcyLDMgKzI3MiwyMCBAQCB3
ZWJraXQub3JnL2IvOTY2NDEgbWVkaWEvdmlkZW8tc2Vlay1wYXN0LWVuZC1wbGF5aW5nLmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85MTg1NCBlZGl0aW5nL3NwZWxsaW5nIFsgU2tpcCBd
CiAKIHdlYmtpdC5vcmcvYi8xMDAyNDggZmFzdC9mb3Jtcy9zZWxlY3QtbXVsdGlwbGUtZWxlbWVu
dHMtd2l0aC1tb3VzZS1kcmFnLmh0bWwgWyBGYWlsdXJlIF0KKworIyBXZWJLaXRUZXN0UnVubmVy
IG5lZWRzIGFuIGltcGxlbWVudGF0aW9uIGZvciBldmVudFNlbmRlci5jb250ZXh0Q2xpY2sKK3dl
YmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1zdGFuZGFsb25lLWltYWdl
LWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NlbGVj
dGlvbi81MzU0NDU1LTEuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIGVkaXRp
bmcvc2VsZWN0aW9uLzUzNTQ0NTUtMi5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4
ODEgZWRpdGluZy9zZWxlY3Rpb24vYnV0dG9uLXJpZ2h0LWNsaWNrLmh0bWwgWyBGYWlsdXJlIF0K
K3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0LW1lbnUtb24tdGV4
dC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZWRpdGluZy9zZWxlY3Rpb24v
Y29udGV4dC1tZW51LXRleHQtc2VsZWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcv
Yi84Njg4MSBlZGl0aW5nL3NlbGVjdGlvbi9lbXB0eS1jZWxsLXJpZ2h0LWNsaWNrLmh0bWwgWyBG
YWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4MSBlZGl0aW5nL3NoYWRvdy9yaWdodGNsaWNrLW9u
LW1ldGVyLWluLXNoYWRvdy1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4
ODEgZmFzdC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC5odG1sIFsgRmFpbHVyZSBdCit3ZWJr
aXQub3JnL2IvODY4ODEgZmFzdC9ldmVudHMvY29udGV4dC1vbm1vdXNlZG93bi1ldmVudC5odG1s
IFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvODY4ODEgZmFzdC9ldmVudHMvY29udGV4dG1lbnUt
c2Nyb2xsZWQtcGFnZS13aXRoLWZyYW1lLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84
Njg4MSBmYXN0L2V2ZW50cy9yaWdodC1jbGljay1mb2N1cy5odG1sIFsgRmFpbHVyZSBdCit3ZWJr
aXQub3JnL2IvODY4ODEgZmFzdC9ldmVudHMvc2VsZWN0c3RhcnQtcHJldmVudC1zZWxlY3Rpb24t
b24tcmlnaHQtY2xpY2suaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzg2ODgxIG1lZGlh
L2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi84Njg4
MSBtZWRpYS9jb250cm9scy1yaWdodC1jbGljay1vbi10aW1lYmFyLmh0bWwgWyBGYWlsdXJlIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDdkMWJhYy4u
OTNiYmQ5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTEzMzUsMjcgKzEzMzUsNiBAQCB3ZWJraXQub3JnL2IvODIxNDAgaW5zcGVjdG9yL2dlb2xvY2F0
aW9uLWVycm9yLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84MjE0MCBpbnNwZWN0b3Iv
Z2VvbG9jYXRpb24tc3VjY2Vzcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODIxNDAg
aW5zcGVjdG9yL2dlb2xvY2F0aW9uLXdhdGNoUG9zaXRpb24uaHRtbCBbIEZhaWx1cmUgXQogCi0j
IEVGTCdzIEV2ZW50U2VuZGVyIGRvZXMgbm90IGltcGxlbWVudCBjb250ZXh0Q2xpY2sgeWV0Ci13
ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktc3RhbmRhbG9uZS1pbWFn
ZS1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgZWRpdGluZy9zZWxl
Y3Rpb24vNTM1NDQ1NS0xLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0
aW5nL3NlbGVjdGlvbi9idXR0b24tcmlnaHQtY2xpY2suaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0
Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc2VsZWN0aW9uL2NvbnRleHQtbWVudS1vbi10ZXh0Lmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NlbGVjdGlvbi9jb250ZXh0
LW1lbnUtdGV4dC1zZWxlY3Rpb24uaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkx
IGVkaXRpbmcvc2VsZWN0aW9uL2VtcHR5LWNlbGwtcmlnaHQtY2xpY2suaHRtbCBbIEZhaWx1cmUg
XQotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dl
c3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsY2hlY2staW5wdXQtc2VhcmNoLWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi84NjA5MSBmYXN0L2V2ZW50cy9jb250ZXh0LW9ubW91c2Vkb3duLWV2ZW50Lmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi84NjA5MSBmYXN0L2V2ZW50cy9jb250ZXh0bWVudS1z
Y3JvbGxlZC1wYWdlLXdpdGgtZnJhbWUuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2
MDkxIGZhc3QvZXZlbnRzL3JpZ2h0LWNsaWNrLWZvY3VzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi84NjA5MSBmYXN0L2V2ZW50cy9zZWxlY3RzdGFydC1wcmV2ZW50LXNlbGVjdGlvbi1v
bi1yaWdodC1jbGljay5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvODYwOTEgbWVkaWEv
Y29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzg2MDkx
IG1lZGlhL2NvbnRyb2xzLXJpZ2h0LWNsaWNrLW9uLXRpbWViYXIuaHRtbCBbIEZhaWx1cmUgXQot
d2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc2hhZG93L3JpZ2h0Y2xpY2stb24tbWV0ZXItaW4t
c2hhZG93LWNyYXNoLmh0bWwgWyBGYWlsdXJlIF0KLQotIyBFRkwncyBFdmVudFNlbmRlciBjb250
ZXh0Q2xpY2ssIG5lZWRzIGJhc2VsaW5lcwotd2Via2l0Lm9yZy9iLzg2MDkxIGVkaXRpbmcvc2Vs
ZWN0aW9uLzUzNTQ0NTUtMi5odG1sIFsgTWlzc2luZyBdCi13ZWJraXQub3JnL2IvODYwOTEgZmFz
dC9ldmVudHMvY29udGV4dC1uby1kZXNlbGVjdC5odG1sIFsgTWlzc2luZyBdCi0KICMgSUVUQyBu
YW1lc3BhY2UgZmFpbHVyZXMKIHdlYmtpdC5vcmcvYi84NjE0MiBpZXRlc3RjZW50ZXIvY3NzMy9u
YW1lc3BhY2VzL3N5bnRheC0wMjEueG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKQEAgLTE2NzYs
MyArMTY1NSw5IEBAIHdlYmtpdC5vcmcvYi85OTY5MSBnYW1lcGFkL2dhbWVwYWQtb3V0LW9mLXJh
bmdlLWNyYXNoZXIuaHRtbCBbIEZhaWx1cmUgXQogCiAjIFJlc291cmNlIFRpbWluZyBpcyBub3Qg
ZW5hYmxlIHlldCwgc2tpcCBpdC4KIHdlYmtpdC5vcmcvYi82MTEzOCBodHRwL3Rlc3RzL3czYy93
ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nIFsgU2tpcCBdCisKKyMgRW50
ZXJpbmcgaW50byBmdWxsIHNjcmVlbiBwbGF5YmFjayBtb2RlIGZhaWxzIHdoZW4gdHJpZ2dlcmVk
IGJ5IGNvbnRleHQgbWVudQorQnVnKEVGTCkgbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRt
bCBbIEZhaWx1cmUgXQorCisjIEVTQyBrZXkgZG9lcyBub3QgY2FuY2VsIGNvbnRleHQgbWVudSBp
biBFRkwgcG9ydAorQnVnKEVGTCkgZWRpdGluZy9zZWxlY3Rpb24vNTM1NDQ1NS0xLmh0bWwgWyBG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9lZGl0aW5nL3Nl
bGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L2VkaXRpbmcvc2VsZWN0aW9uLzUzNTQ0NTUtMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYzkzNTlhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9lZGl0aW5nL3NlbGVjdGlvbi81MzU0NDU1LTItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMjMgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICg4LDgp
IHNpemUgNjEyeDE0MgorICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDYxMngxNDIg
W2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KKyAgICBSZW5kZXJCbG9jayB7SDF9IGF0ICg2
LDYpIHNpemUgNjAweDM3CisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0
NTF4MzYKKyAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDUxOiAiV29yZCBzZWxlY3Rp
b24gb24gcmlnaHQgY2xpY2sgdGVzdCIKKyAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAo
Niw2NCkgc2l6ZSA2MDB4NzIKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDU5N3gzNworICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1OTc6ICJUaGlzIHRlc3Rz
IHRvIG1ha2Ugc3VyZSB0aGF0IHJpZ2h0IGNsaWNraW5nIG5vbi1lZGl0YWJsZSBjb250ZW50IG9u
bHkgY3JlYXRlcyBhIHdvcmQgc2VsZWN0aW9uIGZvciIKKyAgICAgICAgdGV4dCBydW4gYXQgKDAs
MTgpIHdpZHRoIDEwMzogImNsaWNrcyBvdmVyIHRleHQuICIKKyAgICAgIFJlbmRlcklubGluZSB7
U1BBTn0gYXQgKDAsMCkgc2l6ZSAxOHgxOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDEwMywxOCkgc2l6ZSAxOHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMDMsMTgpIHdpZHRo
IDE4OiAiVG8iCisgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEyMSwxOCkgc2l6ZSA1Nzd4
NTUKKyAgICAgICAgdGV4dCBydW4gYXQgKDEyMSwxOCkgd2lkdGggNDExOiAiIHJ1biBtYW51YWxs
eSwgcmlnaHQgY2xpY2sgb24gdGV4dCwgYW5kIGEgd29yZCBzaG91bGQgYmUgc2VsZWN0ZWQuICIK
KyAgICAgICAgdGV4dCBydW4gYXQgKDUzMiwxOCkgd2lkdGggMzU6ICJSaWdodCIKKyAgICAgICAg
dGV4dCBydW4gYXQgKDAsMzYpIHdpZHRoIDU3NzogImNsaWNrIG9uIHRoZSBlbXB0eSBzcGFjZSBv
dXRzaWRlIGFuZCB0byB0aGUgcmlnaHQgb2YgdGhlIGJsYWNrIGJvcmRlciwgdGhlIHNlbGVjdGlv
biBzaG91bGQgYmUiCisgICAgICAgIHRleHQgcnVuIGF0ICgwLDU0KSB3aWR0aCA1OTogInJlbW92
ZWQuIgorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitjYXJldDog
cG9zaXRpb24gMCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7SDF9IG9mIGJvZHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2ZW50cy9jb250ZXh0LW5v
LWRlc2VsZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9mYXN0L2V2
ZW50cy9jb250ZXh0LW5vLWRlc2VsZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lYWJkN2I2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL2Zhc3QvZXZlbnRzL2NvbnRleHQtbm8tZGVzZWxlY3QtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTQgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlclRleHRDb250cm9sIHtJ
TlBVVH0gYXQgKDIsMikgc2l6ZSAxOTN4MjggW2JnY29sb3I9I0ZGRkZGRl0KKyAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoMTQsMTYpIHNpemUgMTg2eDE4IHNjcm9sbEhl
aWdodCAxOQorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNCw2KSBzaXplIDE4NngxOAorICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDEyNHgxOQorICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggMTI0OiAic29tZSBzYW1wbGUgdGV4dCIKK3NlbGVjdGlvbiBzdGFydDogcG9z
aXRpb24gNSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7RElWfSBvZiB7I3NoYWRvdy1y
b290fSBvZiBjaGlsZCAxIHtJTlBVVH0gb2YgYm9keQorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlv
biAxNSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7RElWfSBvZiB7I3NoYWRvdy1yb290
fSBvZiBjaGlsZCAxIHtJTlBVVH0gb2YgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL2Zhc3QvZXZlbnRzL2NvbnRleHQtb25tb3VzZWRvd24tZXZlbnQtZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL2Zhc3QvZXZlbnRzL2NvbnRleHQtb25tb3Vz
ZWRvd24tZXZlbnQtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NDUyZTU5MDU1OWUzNzEwYTdi
YWNmMmI1MTQ5MTJiMDEwNzU2MzYKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDcxNTcKemNtZUkx
YEIjJXl5TXxMTnJScztZVWxBJUdzTmpIMUdSWVdIdHcxOUp3VWpCNHBvfTZ6V0RHK3t2e3RQSEFS
dSE5CnppdmxWRjNJZFdxZj5KfnZmQ2BBbjVhdXVrNT1hT008VURrcGJeZTYmbFBoWl9EfEB7IWQl
d0BWQDlWaVl4JXNQdQp6dD9Va145UzgoTTdYOGJxLXc9cHhgdyQyend7TjlqV1ZpaDghfDxVUVkz
JnkyYkhVRmlDP1lCWjtjdDUwJEo5Xz8Kei1gTUR3djV9dip1ZGppTHBTUW9Tc2did3dkM18mYUFL
SztoVTJ4TWstZ2RVOTVSJEZle2YzZT4xVlQ5cWVkQCZUCnpGX2VYJl9gQiYqODsjMldidVMwKVBp
RSNgLWFqZz5gMGM2U3BTR1dOYHBAWS1JPExnKXVlYE83RVgmYk16ZmI4bgp6YXQ+dnFxVVdRWUJ5
fXxOODJYPipLaF5FSXNgelYqYzgwfVlvOyRYR1FzNF9XIWxyNT9OSGpKRHhsXyUwVlJlMCsKelN0
O19RdilDZFBMQzR+I1RXV0VqNnloZ31PLVVUQXM9ISFrQ3RfYiNxWkghWEwoZFMxS2VsVGxFfSMz
cXAkeWNzCnopMkEpdFI7SiVTdXVXRClQOS1wamNrT1BQQ2BsdiFhJU1UZ14+MTZaLW1RKz9iNGYp
SEg4ZWxySTFDQk4rMVl2Uwp6VzBAbXJWYFZLWUEjUSU0bWgoMTZ5KDhCfEI0KHE9UGcrdSY5JUc4
e0ApbFZQJDxrPChlVTRFZWk9TlArVCMkUDAKeiFuPCEjN2lEJi10TyojQnBfZ0lmeVlgdz5XfWox
KCRgTU9wP1BfK3laQ2R2MWokRlpUSlpEbG9IdUNES21YO1F0Cnp3b3ZvRXkzSnJicj1nbUBGNk1S
TktmZWVSdVBxLW9BOWhTNWledFZhIWRBITYpal9vdi1XTkl7R2dPOVMjdUpJewp6a3B7RWF2QWFC
JS0rdz1vZHB4QX5pRjIrQXpGaEU3VDRDJH5aR1RZV1FxTn48KVpFSFVjY3cwdThaVEljOD1hYlYK
ekJka0omV08/VWxXNERNWT0xZ0EmWXF6VlhLNT1jeXl+QDd+USQ1P0pSWiV9KipeYTNWWjN5bksp
R0J7aj0rbHk5CnpNI3dWXj0pQU1YQFJxOF9Sa0UkU1NYWnF7PzxibDZ7Q0hfTm1ZdldPVkQ/cFpv
dVhVdVlZUFB6JlZMb0hARnthMgp6RCFkcWFXTVI4P3spQCh3TSRefVc/XyQmfnRLJFRWJGU1KU9D
KiY9c25XeytYYGp+QjJkJTI4bk81WnM/cWwlfCgKelU5bk5sUTtzRWgoVV5nbjVJeT9abTxDJCs8
O1drfGg1LXR1TGwyVXpGdDg9ZU1nP3VSWEEkaHFmbHlqbVItIVZzCnplWT1YLWFRc2c7WlghdUs8
N0gpS0M2ITh6PHhQJEhYbD5IWGc/czFucT19SzZ4c24wdDB0MkIkX2poPTFObUBXewp6XnVsTlJk
YG1ONCohWXtvejZ2aSUzMk5ncElfKGdBdmx6YylJR2k5RD5jaHBDUz5JTXJ4NEg5Nj5jaGY5P0Bv
JUAKemphXz9aS05QaWhuNk19dGQqPlBpIT1sditAPSVGbUwwdHIhI0xIIUE+KiEkWFcwcCVSPSR+
c3MyMCZ+OXhTcnBGCnoxUGNTVDBpNFI5elZaV2QhJXk5LUdJNFElJjlgPDM9SFIwSHtoRkBKbUtz
MHFFcF41QlJ+RVRlOzk4UlFpcEpGPgp6Wld2NWx5SDJmJjYpfFJjdGErZG91Y3EoKSYlc1IzUkVe
ZCppT0xkZ0NXRTsyTzIqSTY0K0xHbEQpciNXbFA1d1IKemAhRzhFbTkqbCQlKj5LTjQ4Zi1WVm5e
cz9UUkxuIUVDQW4/a0wpWSs1UCYyYkxJIUdGSjtSI1koelIrczIzJkFCCnoobnQzSXE7TWtiZmxj
RDx5VDU8RnFUWkppLXw1JDhtUHU5QWlEPC1aZHBUV3JkemRXUSRUe2ZIeTs4QHtfbjx8Rwp6cSNk
JSlGflFTZWJ4YFo1KiZhPUhFSENlWCYlKT5HXzYhfTEkbXc2Ki1UUklFSmlCM2lJZU5YK2lYQ2BM
ISpAa1IKek1hQ0I4U1h4YkNWUFNvSmVQdHlWeytnREsmUiZ5SFB5Zz9DRzdEYCtkJUZtPWl1QzMx
TVExXiQ8fW9mKUdlZ2dkCnoxVismRHNGN0Rhdm1EV0MjdzlpIzttKU0tdk9wbC1vZGZpQFQyM1E3
Q008YFg5RmZqZ1lAU0J6SEFQJl5kdXpxcwp6OzV0eGxyV2VUIW95ejVNPHh0e2hqbEpiKDNDQlA/
OW1MMDgzPSVTSyNmP3JCIWgldllnIzIwdFItQl9pTjx0SzkKek9YSHM5RTBuOzd7YWZBRWMwQzRo
YHJZNSVDNXtacXJpZDBiY2w9X3tCT2BrV3VSd0FwLT9HbEIjMzMrZUB6ZTdNCnpQb0QtMHhzJXtR
YHNqNyNxZXFXYzYzRU5WaWR+akc9NXdER1VDKTxHekBPVHxAYitGO0ZZTVd+JU9oOWlxTm1AVAp6
PUx8UFE1eFIhYHh7S3xiKXhgVih5cWJDQkc+dD4yb29+OCtXdClzY2o/dj9mbz50PGVDaXQ+VCQ+
PjdjSngje08KejApREg7SUdrMUJobGhkUCNqPEt2XntAe2p7KEBjaWlWU00pUmlYOW09PW8zans+
LWNqOy1wcX4wej1UaU5tTWEyCno7NExTYjQ2bSg/QyN4YWpqT0BGcWhIWHxwTDtWWFoyRShIXlI0
XkZmbXtWKzxxPl9FP3s3RDlCIUB5P187QzZUYQp6Jm8lKGZiQiZqYDlJPSFWKVBaQ2hPajdMMV9F
emFSQERhRiMpIXI+KE04WU97aTlZdyQ7OH1EcVJjREBzVzFlfCsKejwzYjhZSn1fcz9QbWAwQWIz
aHYpKGlSdT84MlVkOUd6UzdmXio+VDh4Rk04P3tnbmh1Y3FxeHsyNGxVcXFCQmUxCnpYTnNBPCpD
SlpRKEVyUyt5S2o1bHkwSlBsd3plO1JkfiZkS2FiNGpAO1hgIVZJKTVSelBNJENuPD84UDRQSCp+
WAp6a3JgfWVufihwfCtBMU1qKXNQazlISWQjKmttbHg8Z1hIfCRHZil5Pzd2USRyQ31DckB1T01k
WnJqZFFKOGZ0VDsKeittUkpGU0MqY2hFP3BqN0wlciU9ODtTKXRFSz12biFDQX5uQj9JNUxJbVNV
c0ZOJnF9KWYtRUcqPSRed0VUcm9fCnozdVNFWm5KbztfNWElTFloK0p5aW1Zdk0qRHF1WiFEajlE
e0UoelIlWnFwNjlLSiR9KDw9Qjh1Tl9PIX52MytpOwp6TWw0S2pTZkhuK20xYFgyKG01MHF0K19l
a1E0XzRHc1ZTV0VsSD5AKnd7fmtPOEREJD4zJnNxe0RJWDdoe3BhQFYKeldaPXYmZlFIJFV0O25R
e3gkU3tEcGBWYFo9ZTVGRSY0dT58Y3dycmFSaFlSbSpGPXhrTmBhbGxifWtGJWB3ZSt7Cnpod1Fz
R29yLTx3LU0oSjRWRSFfMjs4SUV6SkFjWm5tPWUpQ3RuYX1gQGFPeFRze1I0YFNTLUJnJkw/dFBu
Znx+Kwp6OGNlZ1p6PVcrQ3kqU3dhQkNzMnJ3ViY2TEFtU3I4Uj1OWFM9bnZmbSZoKjN4LUJiTGVZ
TVVzKjVQPCt7VWVkMGQKenRvSnJuZUBlVUdKUXghdFhkfCNFUkRARjx4cHQ+ZFokakAzdSN6a18k
cHZyPWhYWlVvPncxbkg8NUhTX3hnRTFFCnpafGVXQW96cGx3PFZ+XkJQT3VnfUM4RzBqY3t5TXck
enQoUXpaSl9VWHVfajdNY3RNKFc5UmlHVGh6emNUJE5JMAp6VGlEU3tfQWxLYGxnS3k9eShXZW1H
dUB5ZFcxcFY7UjlwMiEpbkw3e2RrbFBzPnRoUTxnWHxza2c/PTBCdExXN0YKejx1fVMoPH1+Y0di
aSFiJFEwJig8TWU8VTBQK3hJaStAX0VudTwzQHc7anF8XiswcUp5RUM8S31MQWRKZk8yMmp1Cnp2
X1RiWj5HZSlsRUlTV2lKX0cmMGt8ZDdkPnEzdHRQTnV0LUdkOTx5NDklWX0yaDB1REB0X216UF4t
SDw/fDFaQQp6PUlkPnlGa2pINytpJDtkJHBTWl5gU04lUnZ+Sjg9eSV7dUwoQXJWbjBmcSh8K0pe
LSY9Nylpb0E1WTReZCpXUW0KemR+fU9xSip3cUdJQn5tZmQzTXA2bGI0MyVyZmF6dDJiek8xPDdC
JDsqVTFhLUo+RnhaVl4mfSNvMW1sKz4mTH1qCnprdCg2aDZ6MmojPkEqWi04R1ZDNHV6VUNKWV9E
Qig7WipMMU5LaiNzTzZnfFNwODRVaGdDYGdzQ0lXRzt5dGkjaAp6UkNZWiM/eVktaD4xTVJJPGty
JGVtKnw9dkAlLXYrPytgVWcqJjtkXmZVeENocUtCJGt4Q1QxYXIzXztuXmJ2WlMKenprbyVTS3Ng
S1QxWT5mZndXVSFGdjshIUxzYjxJdUhZZjxiM3YmdSl5NGtOfSlSXl9GWFple2Y2fVNmQVQjO1FT
Cno5U1NQI0FMJV9fUThjVnhGeVgyNkBhekt7cEVxfTZDc0omb2cjMChrY3kwR2UtfXo2XjRffjdF
ZH1HJV5OditaMAp6czw1R0pNe00rfjl0bSNzViY4ZCgpPkdxK0ZDQHNSVDAoKDgwMGFMbSVxZ1V3
ISZIX3ZFfVE2anpqNVpldGc/JVgKeiVXP2Qwe2s1SG5Ob3B3NHlaYX1xMD1qVXVwK2sqVnclc21w
cCE8UV9lKnFtRXFSMUYoV1o9fW50TlhqJE43QVBNCnorMXgkYVQzfSt8WkkhVWoldHdtNkI8cD85
RTsreno4UCVBNT8yTGZDRDM/P1hjdHA7SkJEPDY9RWlweVhEeUVuQQp6TVB3bDNgNU5mbz0ycUxB
LUNrWkE2PiU3M1IpWExsSXZnVkR5ZElRdz8oWjlfN2U3QWpocU8yaEFqOzczbjQrQW0KejhFZiZm
WXB9SXl0dXlMekIoSGFHfEtYNzMlRGJOLWZ8QnxEMGl4QThmfE58RmJfOylEZkpXZXU0M3p0QGU7
dHRkCnptN19ofDsyb3Y3QDtSdSZld0dHZVN1TWpTWGxjZUozeyhlWTdTRzcyNSR8c0pHKmZQTCZ9
cC1JYzBFcDB6RGUjQQp6PjlLUVZ3YyQ4V093aSFWZXx5QTRucXopTXImJShSe3xXckkxLWgrR3Az
ZUtRISYzSX1uWEY1MnklcW5IazFIPEwKejQ/d1hLe35zYlg/QDdWQWpzZ185QmdZdD5OK0dTIWZi
cSZpRnNYZzZ8N0l2KnJZTiV9YlpDOV9oRlVwNmtifUwyCnpUNyZHe1dqXjs1b2FibDdATkc/bkN5
YFMhbipRMjlhXmhgRFRVKG4zYHI8fkY8WVNxflZZQzVjak0+PikzckBXdQp6PiZ8USp3JCFDO0hs
ZSpPRX03IW4oZVFWS3JoaUx0WipPbShYR0YqUzZJYVY9aSZPfDwpRTYmYTM+UVI5U1RANSUKejVQ
YF4/MjBeail5QFZAP2JHb05TdzdGI0BuO35oUHNXK3VHU04lRFVhYztZd297ckFPMjhabSRJajNa
bCo7c04kCnp6bDlrKXAhbHpzVU9UTlY1KlcxNUF1MUVFU14qOVJ2eDRTeyVlVEY+TiNAY1NHYXlo
KWg+bkxHQ14zLVNkVDN6fAp6e2FxPjA9N15eX1c4WnZ6PFU2fW5Jdz1UcFVwOFluRk1oRU9DRjxg
dzlgZ0J+UEBIPHVqdjZAPTQmXkNfe0VhN3oKejJIPjBsP0xoZD81MDJYSzJgJk9RUH0ld01gTFI+
azVuVl9AcnYqbm1EbzZlVll8QlhxeH0lMW9WYDxTUWdPezQxCnp4byQ0cUs7MjdFJEEtNWFnYnQ8
ejgzKVJycF5MP0EpcUU/WSU5RUZOWXFfaX00dkIhTlMqQnMkVV9vNSRXSTlGfQp6QkB5JHN7Qyhf
UEJkLWV1SlhuViMkJjI5ckBiIzQkODk3eVBadmBuYHFaUDFmNTtfUilFaihCVXUjdnZ7KEw+b0oK
elIxQTVoOU1AcFooXz0hUUUtMFFjcClWKUczYnRiUXwwYSNqZXZuMmZxeXQ0Uzt4ZDhHJU51UkZR
SHk3aFVpfjRSCnpaSEsleCh3TChkcyVSQz9BMXBiT29mP3IxOFFxem5UZGotZmN6O29MVTtJdCpe
JjBGQk58YmM1X2V0KzxKJGU/MAp6fENWc2UkaURCWGRqdFIqbmpIXjFIalYhfGh+MWUtaT02cFRU
MjZncHBMPX1rczBCMnJiaUAkR2k5MXR9cFFVI3kKel54VDxVc0FaYF96eXwmcnFfdnNkbyojdl8p
dnhhUD9BKGJWPWB6OGFfRV9afUVET1hyc1Z0b0R1TnJzfVhjIyZECno0eWNyPFdjJm4lbFRuKjdv
bE9lKWM0YiM0UmJ1SnE8I3tYcEd5PE1wbiE+Qm08Ri14RXEqaWZhTlM7ZyFROzBlYwp6I1VRQmw1
KzY3QWNEanJOdUhFKCRqfV87Sjk8MnwlUXNzLVhyR2tTeSZEYWtjT1lBbyN7U2dUZ3oxSWh2VTBn
ejAKel5hZkJkO008SEIzTE9aI2NaWWM3Wno/cW9QRHJwMGJKMlZpWnl+P0k/Jl99bTs9cmo5R24z
R0ZrPi1SJlBZZWRiCno8Vk9Za0YxUyRyaDdyKH00Xmc7UiNHa3ZDPj4wRyErKk9wZEglUWg4O0Rn
IytQUyU0WDdFezBGJllvX05QZjMyPAp6UUlfc0MkTEExVGZVPGNCe1FoUm8oUWlWQyteUj19KWQ8
fVM0Sk5xR2g4LTM3QSQ4eTNvXyErTSFmT1M0bitJRj4Keko3eW45JlZ+b3lZQDRXO3g+b1dHP3VX
QmpZSEYkbWRRO2QlJmRBOGZaeHBwbmNAI3ErYSY+bUBqaGxOcSlATEwjCnorZDNEKVJnU01FXlok
TGpwUjdHOHIrd3RMb25De3tgUFlCU0RqKUE1UEVGPEZMO0syeUFidlFFSzJuO2soJSpAJgp6R1RZ
SVI3WFF9cSo7KzZWZnd4UD1ibV5ebkAoUEV3YnJrUWk2M3hTQzYjJkh2UyQ8c0AlI155RUphRHI8
RXE9O1EKejc1UHlSR3R6amE0czhJdiNUe01nLUYkMS0zN0lkTWEqeF5pX2RyWVhzeV4/OEYzSXte
I0NPX34wVjQkQigjZndDCno1SS1IZUI4flgmJSg8QCtVO3A1U0spbWBnXnJhR0NIMVdqPlUhZEBY
ZzxyYkRtO1UlQTdKTGF2fERVO1ZwOFZDJgpZUzNJUi1vNUVBQDt9LSZMP1FwOTY8aGVpbzJXZD1O
XlopPD0KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWNmZjc4NS4uYmFkNjUy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0zMSAgTWljaGHFgiBQYWt1xYJh
IHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW0RSVF0g
RXZlbnRTZW5kZXIgcmVxdWlyZXMgY29udGV4dENsaWNrIGltcGxlbWVudGF0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA5MQorCisgICAgICAg
IFJldmlld2VkIGJ5IEd5dXlvdW5nIEtpbS4KKworICAgICAgICBBZGQgbmV3IHVuaXQgdGVzdCBm
aWxlLCBuZWVkZWQgZHVlIHRvIGV3ayBBUEkgY2hhbmdlcy4KKworICAgICAgICAqIFBsYXRmb3Jt
RWZsLmNtYWtlOgorCiAyMDEyLTEwLTMwICBQZXRlciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1v
YmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnldIENsZWFuIHRoZSBjb2RlIG9mICJK
YXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXgg
ZThjMDMwNy4uMzUzNzNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0yNTEsNiArMjUx
LDcgQEAgVEFSR0VUX0xJTktfTElCUkFSSUVTKGV3a1Rlc3RVdGlscyAke0VXS1VuaXRUZXN0c19M
SUJSQVJJRVN9KQogU0VUKFdFQktJVF9FRkxfVEVTVF9ESVIgIiR7V0VCS0lUX0RJUn0vZWZsL3Rl
c3RzLyIpCiAKIFNFVChFV0tVbml0VGVzdHNfQklOQVJJRVMKKyAgICB0ZXN0X2V3a19jb250ZXh0
bWVudQogICAgIHRlc3RfZXdrX2ZyYW1lCiAgICAgdGVzdF9ld2tfdmlldwogKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IGM2YTY2OTcuLjdkYzM0NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OSBAQAorMjAxMi0xMC0zMSAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNh
bXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdW0RSVF0gRXZlbnRTZW5kZXIgcmVxdWlyZXMgY29u
dGV4dENsaWNrIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IEd5dXlvdW5nIEtp
bS4KKworICAgICAgICBBZGQgYSBwb2ludGVyIHRvIHBhcmVudCBtZW51IGluIEV3a19Db250ZXh0
X01lbnVfSXRlbSBhbmQgYSBnZXR0ZXIKKyAgICAgICAgZnVuY3Rpb24gdG8gYWxsb3cgc2VsZWN0
aW5nIGEgY29udGV4dCBtZW51IGl0ZW0gd2l0aG91dCBoYXZpbmcKKyAgICAgICAgcGFyZW50IG1l
bnUgcG9pbnRlciBpbiBEdW1wUmVuZGVyVHJlZSBFdmVudFNlbmRlci4KKyAgICAgICAgVGhyZWUg
dW5pdCB0ZXN0cyBhZGRlZCBkdWUgZXdrIEFQSSBjaGFuZ2VzLgorCisgICAgICAgICogZXdrL2V3
a19jb250ZXh0bWVudS5jcHA6CisgICAgICAgIChfRXdrX0NvbnRleHRfTWVudV9JdGVtKToKKyAg
ICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcpOgorICAgICAgICAoZXdrX2NvbnRleHRf
bWVudV9pdGVtX3BhcmVudF9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2Fw
cGVuZCk6CisgICAgICAgICogZXdrL2V3a19jb250ZXh0bWVudS5oOgorICAgICAgICAqIGV3ay9l
d2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KToKKyAgICAg
ICAgKiBld2svZXdrX3ZpZXcuaDoKKyAgICAgICAgKiB0ZXN0cy90ZXN0X2V3a19jb250ZXh0bWVu
dS5jcHA6IEFkZGVkLgorICAgICAgICAoVEVTVF9GKToKKyAgICAgICAgKiB0ZXN0cy90ZXN0X2V3
a192aWV3LmNwcDoKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTItMTAtMzAgIFNlb2tqdSBLd29u
ICA8c2Vva2p1Lmt3b25Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gRml4IGZhaWx1cmUg
dG8gaGlnaGxpZ2h0IG5vZGVzIG9uIHdlYiBpbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a19jb250ZXh0bWVudS5jcHAKaW5kZXggZTc5MmM2ZC4uYzRhZDQ1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgc3RydWN0
IF9Fd2tfQ29udGV4dF9NZW51X0l0ZW0gewogCiAgICAgY29uc3QgY2hhciogdGl0bGU7IC8qKjwg
Y29udGFpbnMgdGhlIHRpdGxlIG9mIHRoZSBpdGVtICovCiAgICAgRXdrX0NvbnRleHRfTWVudSog
c3VibWVudTsgLyoqPCBjb250YWlucyB0aGUgcG9pbnRlciB0byB0aGUgc3VibWVudSBvZiB0aGUg
aXRlbSAqLworICAgIEV3a19Db250ZXh0X01lbnUqIHBhcmVudE1lbnU7IC8qKjwgY29udGFpbnMg
dGhlIHBvaW50ZXIgdG8gcGFyZW50IG1lbnUgb2YgdGhlIGl0ZW0gKi8KIAogICAgIGJvb2wgY2hl
Y2tlZCA6IDE7CiAgICAgYm9vbCBlbmFibGVkIDogMTsKQEAgLTk4LDE0ICs5OSwxNCBAQCBjb25z
dCBFaW5hX0xpc3QqIGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldChjb25zdCBFd2tfQ29u
dGV4dF9NZW51KiBtZW51KQogICAgIHJldHVybiBtZW51LT5pdGVtczsKIH0KIAotRXdrX0NvbnRl
eHRfTWVudV9JdGVtKiBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVf
SXRlbV9UeXBlIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uLCBFd2tfQ29udGV4dF9NZW51
KiBzdWJtZW51LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGNoYXIqIHRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29sIGVuYWJs
ZWQpCitFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdr
X0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSwgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0
aW9uLCBFd2tfQ29udGV4dF9NZW51KiBwYXJlbnRNZW51LAorICAgIEV3a19Db250ZXh0X01lbnUq
IHN1Ym1lbnUsIGNvbnN0IGNoYXIqIHRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29s
IGVuYWJsZWQpCiB7CiAgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtID0gbmV3IEV3a19D
b250ZXh0X01lbnVfSXRlbTsKICAgICBpdGVtLT50eXBlID0gdHlwZTsKICAgICBpdGVtLT5hY3Rp
b24gPSBhY3Rpb247CiAgICAgaXRlbS0+dGl0bGUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZCh0aXRs
ZSk7CisgICAgaXRlbS0+cGFyZW50TWVudSA9IHBhcmVudE1lbnU7CiAgICAgaXRlbS0+c3VibWVu
dSA9IHN1Ym1lbnU7CiAgICAgaXRlbS0+Y2hlY2tlZCA9IGNoZWNrZWQ7CiAgICAgaXRlbS0+ZW5h
YmxlZCA9IGVuYWJsZWQ7CkBAIC0yMDMsNiArMjA0LDEyIEBAIEVpbmFfQm9vbCBld2tfY29udGV4
dF9tZW51X2l0ZW1fZW5hYmxlZF9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtLCBFaW5h
X0JvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0V3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0
X21lbnVfaXRlbV9wYXJlbnRfZ2V0KGNvbnN0IEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSkK
K3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoaXRlbSwgMCk7CisKKyAgICBy
ZXR1cm4gaXRlbS0+cGFyZW50TWVudTsKK30KIAogLyogaW50ZXJuYWwgbWV0aG9kcyAqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0yNzYs
OSArMjgzLDcgQEAgdm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0
X01lbnUqIG1lbnUsIGNvbnN0IFdlYkNvcmU6OkNvbnRleHQKICAgICBFd2tfQ29udGV4dF9NZW51
X0l0ZW1fVHlwZSB0eXBlID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGU+
KGNvcmUudHlwZSgpKTsKICAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24gPSBzdGF0
aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0FjdGlvbj4oY29yZS5hY3Rpb24oKSk7CiAKLSAgICBF
d2tfQ29udGV4dF9NZW51X0l0ZW0qIG1lbnVfaXRlbSA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9u
ZXcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZSwgYWN0
aW9uLCAwLCBjb3JlLnRpdGxlKCkudXRmOCgpLmRhdGEoKSwgY29yZS5jaGVja2VkKCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZS5lbmFibGVkKCkpOwor
ICAgIEV3a19Db250ZXh0X01lbnVfSXRlbSogbWVudV9pdGVtID0gZXdrX2NvbnRleHRfbWVudV9p
dGVtX25ldyh0eXBlLCBhY3Rpb24sIG1lbnUsIDAsIGNvcmUudGl0bGUoKS51dGY4KCkuZGF0YSgp
LCBjb3JlLmNoZWNrZWQoKSwgY29yZS5lbmFibGVkKCkpOwogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOKG1lbnVfaXRlbSk7CiAKICAgICBtZW51LT5pdGVtcyA9IGVpbmFfbGlzdF9hcHBl
bmQobWVudS0+aXRlbXMsIG1lbnVfaXRlbSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX2NvbnRleHRtZW51LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRl
eHRtZW51LmgKaW5kZXggYWY2ZDRhOC4uNDllYmFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfY29udGV4dG1lbnUuaApAQCAtMTkyLDYgKzE5Miw3IEBAIEVBUEkgY29uc3QgRWluYV9MaXN0
ICAgICAgICAgICAgKmV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldChjb25zdCBFd2tfQ29u
dGV4CiAgKgogICogQHBhcmFtIHR5cGUgc3BlY2lmaWVzIGEgdHlwZSBvZiB0aGUgaXRlbQogICog
QHBhcmFtIGFjdGlvbiBzcGVjaWZpZXMgYSBhY3Rpb24gb2YgdGhlIGl0ZW0KKyAqIEBwYXJhbSBw
YXJlbnRfbWVudSBzcGVjaWZpZXMgYSBwYXJlbnQgbWVudSBvZiB0aGUgaXRlbQogICogQHBhcmFt
IHN1Ym1lbnUgc3BlY2lmaWVzIGEgc3VibWVudSBvZiB0aGUgaXRlbQogICogQHBhcmFtIHRpdGxl
IHNwZWNpZmllcyBhIHRpdGxlIG9mIHRoZSBpdGVtCiAgKiBAcGFyYW0gY2hlY2tlZCBAYyBFSU5B
X1RSVUUgaWYgdGhlIGl0ZW0gc2hvdWxkIGJlIHRvZ2dsZWQgb3IgQGMgRUlOQV9GQUxTRSBpZiBu
b3QKQEAgLTIwMCw3ICsyMDEsNyBAQCBFQVBJIGNvbnN0IEVpbmFfTGlzdCAgICAgICAgICAgICpl
d2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoY29uc3QgRXdrX0NvbnRleAogICoKICAqIEBu
b3RlIFRoZSByZXR1cm4gdmFsdWUgQGIgc2hvdWxkIEBiIGJlIGZyZWVkIGFmdGVyIHVzZS4KICAq
LwotRUFQSSBFd2tfQ29udGV4dF9NZW51X0l0ZW0gICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVt
X25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLCBFd2tfQ29udGV4dF9NZW51X0Fj
dGlvbiBhY3Rpb24sIEV3a19Db250ZXh0X01lbnUgKnN1Ym1lbnUsIGNvbnN0IGNoYXIgKnRpdGxl
LCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9Cb29sIGVuYWJsZWQpOworRUFQSSBFd2tfQ29udGV4
dF9NZW51X0l0ZW0gICAgICAqZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9N
ZW51X0l0ZW1fVHlwZSB0eXBlLCBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24sIEV3a19D
b250ZXh0X01lbnUgKnBhcmVudF9tZW51LCBFd2tfQ29udGV4dF9NZW51ICpzdWJtZW51LCBjb25z
dCBjaGFyICp0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFfQm9vbCBlbmFibGVkKTsKIAog
LyoqCiAgKiBEZXN0cm95cyB0aGUgaXRlbSBvZiB0aGUgY29udGV4dCBtZW51IG9iamVjdC4KQEAg
LTMyMiw2ICszMjMsMTQgQEAgRUFQSSBFaW5hX0Jvb2wgICAgICAgICAgICAgICAgICAgZXdrX2Nv
bnRleHRfbWVudV9pdGVtX2VuYWJsZWRfZ2V0KGNvbnN0IEV3a19Db24KICAqLwogRUFQSSBFaW5h
X0Jvb2wgICAgICAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0
KEV3a19Db250ZXh0X01lbnVfSXRlbSAqbywgRWluYV9Cb29sIGVuYWJsZWQpOwogCisvKioKKyAq
IEdldHMgdGhlIHBhcmVudCBtZW51IGZvciBjb250ZXh0IG1lbnUgaXRlbS4KKyAqCisgKiBAcGFy
YW0gbyB0aGUgY29udGV4dCBtZW51IGl0ZW0gb2JqZWN0CisgKiBAcmV0dXJuIGEgY29udGV4dCBt
ZW51IG9iamVjdCBvbiBzdWNjZXNzIG9yIEBjIE5VTEwgb24gZmFpbHVyZQorICovCitFQVBJIEV3
a19Db250ZXh0X01lbnUgICAgICAgICAgICpld2tfY29udGV4dF9tZW51X2l0ZW1fcGFyZW50X2dl
dChjb25zdCBFd2tfQ29udGV4dF9NZW51X0l0ZW0gKm8pOworCiAjaWZkZWYgX19jcGx1c3BsdXMK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggNDMyMjVlOS4uNDAz
MDI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC00NzMzLDYgKzQ3MzMsMTQg
QEAgdm9pZCBld2tfdmlld19mdWxsc2NyZWVuX2V4aXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcpCiB9CiAjZW5kaWYKIAorRXdrX0NvbnRleHRfTWVudSogZXdrX3ZpZXdfY29udGV4dF9tZW51
X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKK3sKKyAgICBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgMCk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRf
T1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgMCk7CisKKyAgICByZXR1cm4gcHJpdi0+Y29udGV4
dE1lbnU7Cit9CisKIG5hbWVzcGFjZSBFV0tQcml2YXRlIHsKIAogV2ViQ29yZTo6UGFnZSogY29y
ZVBhZ2UoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5o
CmluZGV4IGU4YmFmODcuLjEwNmJhMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0x
MTQsNiArMTE0LDcgQEAKICNpZm5kZWYgZXdrX3ZpZXdfaAogI2RlZmluZSBld2tfdmlld19oCiAK
KyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIKICNpbmNsdWRlICJld2tfZmlsZV9jaG9vc2Vy
LmgiCiAjaW5jbHVkZSAiZXdrX2ZyYW1lLmgiCiAjaW5jbHVkZSAiZXdrX2hpc3RvcnkuaCIKQEAg
LTI3NzUsNiArMjc3NiwxNCBAQCBFQVBJIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2VuYWJs
ZV9mdWxsc2NyZWVuX3NldChFdmFzX09iamVjdCAqbywgRWluYV9Cb29sCiAgKi8KIEVBUEkgRWlu
YV9Cb29sIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX2Z1bGxzY3JlZW5fZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0ICpvKTsKIAorLyoqCisgKiBHZXRzIHRoZSBjb250ZXh0IG1lbnUgb2JqZWN0LgorICog
QHBhcmFtIG8gVGhlIHZpZXcgdGhhdCBjb250YWlucyBjb250ZXh0IG1lbnUuCisgKgorICogQHJl
dHVybiBjb250ZXh0IG1lbnUgc3RydWN0dXJlIG9uIHN1Y2Nlc3Mgb3IgQGMgTlVMTCBvbiBmYWls
dXJlCisgKi8KK0VBUEkgRXdrX0NvbnRleHRfTWVudSAqZXdrX3ZpZXdfY29udGV4dF9tZW51X2dl
dChjb25zdCBFdmFzX09iamVjdCAqbyk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a19jb250ZXh0bWVu
dS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC90ZXN0cy90ZXN0X2V3a19jb250ZXh0bWVudS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDI5NDBlMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL3Rlc3RzL3Rlc3RfZXdrX2NvbnRleHRtZW51LmNwcApA
QCAtMCwwICsxLDEyNCBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVj
dHJvbmljcworCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIuMSBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVQorICAgIExlc3NlciBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLAorICAgIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0
b24sIE1BIDAyMTExLTEzMDcgVVNBCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNs
dWRlICJVbml0VGVzdFV0aWxzL0VXS1Rlc3RCYXNlLmgiCisjaW5jbHVkZSAiVW5pdFRlc3RVdGls
cy9FV0tUZXN0Q29uZmlnLmgiCisjaW5jbHVkZSA8RVdlYktpdC5oPgorI2luY2x1ZGUgPEVjb3Jl
Lmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK3VzaW5nIG5hbWVzcGFjZSBFV0tVbml0VGVzdHM7CisKKy8qKgorICogQGJyaWVmIENoZWNr
aW5nIHdoZXRoZXIgZnVuY3Rpb24gY3JlYXRlcyBwcm9wZXIgbWVudSBpdGVtLgorICoKKyAqIFRo
aXMgdGVzdCBjcmVhdGVzIGEgbWVudSBpdGVtIGFuZCBjaGVja3MgaWYgYWxsIG1lbnUgaXRlbSdz
IGF0dHJpYnV0ZXMgYXJlCisgKiB0aGUgc2FtZSBhcyBwYXNzZWQgdG8gdGVzdGVkIGZ1bmN0aW9u
LgorICovCitURVNUX0YoRVdLVGVzdEJhc2UsIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcpCit7
CisgICAgbG9hZFVybCgpOworCisgICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0
KHdlYlZpZXcoKSk7CisgICAgQVNTRVJUX1RSVUUoZXZhcyk7CisKKyAgICBFdmFzX0V2ZW50X01v
dXNlX0Rvd24gbW91c2VEb3duOworICAgIG1vdXNlRG93bi5idXR0b24gPSAzOworICAgIG1vdXNl
RG93bi5vdXRwdXQueCA9IDA7CisgICAgbW91c2VEb3duLm91dHB1dC55ID0gMDsKKyAgICBtb3Vz
ZURvd24uY2FudmFzLnggPSAwOworICAgIG1vdXNlRG93bi5jYW52YXMueSA9IDA7CisgICAgbW91
c2VEb3duLmRhdGEgPSAwOworICAgIG1vdXNlRG93bi5tb2RpZmllcnMgPSBjb25zdF9jYXN0PEV2
YXNfTW9kaWZpZXIqPihldmFzX2tleV9tb2RpZmllcl9nZXQoZXZhcykpOworICAgIG1vdXNlRG93
bi5sb2NrcyA9IGNvbnN0X2Nhc3Q8RXZhc19Mb2NrKj4oZXZhc19rZXlfbG9ja19nZXQoZXZhcykp
OworICAgIG1vdXNlRG93bi5mbGFncyA9IEVWQVNfQlVUVE9OX05PTkU7CisgICAgbW91c2VEb3du
LnRpbWVzdGFtcCA9IGVjb3JlX2xvb3BfdGltZV9nZXQoKTsKKyAgICBtb3VzZURvd24uZXZlbnRf
ZmxhZ3MgPSBFVkFTX0VWRU5UX0ZMQUdfTk9ORTsKKyAgICBtb3VzZURvd24uZGV2ID0gMDsKKwor
ICAgIEFTU0VSVF9UUlVFKGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KHdlYlZp
ZXcoKSwgJm1vdXNlRG93bikpOworCisgICAgRXdrX0NvbnRleHRfTWVudSogY29udGV4dE1lbnUg
PSBld2tfdmlld19jb250ZXh0X21lbnVfZ2V0KHdlYlZpZXcoKSk7CisKKyAgICBBU1NFUlRfVFJV
RShjb250ZXh0TWVudSk7CisKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSBpdGVtVHlw
ZSA9IEVXS19BQ1RJT05fVFlQRTsKKyAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBpdGVtQWN0
aW9uID0gRVdLX0NPTlRFWFRfTUVOVV9JVEVNX0NVU1RPTV9UQUdfTk9fQUNUSU9OOworICAgIGNv
bnN0IGNoYXIqIGl0ZW1UaXRsZSA9ICJUZXN0IEl0ZW0iOworICAgIGJvb2wgaXRlbUNoZWNrZWQg
PSBmYWxzZTsKKyAgICBib29sIGl0ZW1FbmFibGVkID0gZmFsc2U7CisKKyAgICBFd2tfQ29udGV4
dF9NZW51X0l0ZW0qIGNvbnRleHRNZW51SXRlbSA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXco
aXRlbVR5cGUsIGl0ZW1BY3Rpb24sIGNvbnRleHRNZW51LCAwLCBpdGVtVGl0bGUsIGl0ZW1DaGVj
a2VkLCBpdGVtRW5hYmxlZCk7CisKKyAgICBBU1NFUlRfVFJVRShjb250ZXh0TWVudUl0ZW0pOwor
CisgICAgRVhQRUNUX0VRKGl0ZW1UeXBlLCBld2tfY29udGV4dF9tZW51X2l0ZW1fdHlwZV9nZXQo
Y29udGV4dE1lbnVJdGVtKSk7CisgICAgRVhQRUNUX0VRKGl0ZW1BY3Rpb24sIGV3a19jb250ZXh0
X21lbnVfaXRlbV9hY3Rpb25fZ2V0KGNvbnRleHRNZW51SXRlbSkpOworICAgIEVYUEVDVF9FUShj
b250ZXh0TWVudSwgZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoY29udGV4dE1lbnVJ
dGVtKSk7CisgICAgRVhQRUNUX1NUUkVRKGl0ZW1UaXRsZSwgZXdrX2NvbnRleHRfbWVudV9pdGVt
X3RpdGxlX2dldChjb250ZXh0TWVudUl0ZW0pKTsKKyAgICBFWFBFQ1RfRVEoaXRlbUNoZWNrZWQs
IGV3a19jb250ZXh0X21lbnVfaXRlbV9jaGVja2VkX2dldChjb250ZXh0TWVudUl0ZW0pKTsKKyAg
ICBFWFBFQ1RfRVEoaXRlbUVuYWJsZWQsIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX2dl
dChjb250ZXh0TWVudUl0ZW0pKTsKKworICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9mcmVlKGNv
bnRleHRNZW51SXRlbSk7Cit9CisKKy8qKgorICogQGJyaWVmIENoZWNraW5nIHdoZXRoZXIgZnVu
Y3Rpb24gcmV0dXJucyBwcm9wZXIgcGFyZW50IG1lbnUuCisgKgorICogVGhpcyB0ZXN0IGNyZWF0
ZXMgYSBjb250ZXh0IG1lbnVzLCBhbmQgY2hlY2tzIGlmIGNyZWF0ZWQgY29udGV4dCBtZW51J3MK
KyAqIHBhcmVudCBpcyB0aGUgc2FtZSBmb3IgZWFjaCBvZiBtZW51IGl0ZW1zLgorICovCitURVNU
X0YoRVdLVGVzdEJhc2UsIGV3a19jb250ZXh0X21lbnVfaXRlbV9wYXJlbnRfZ2V0KQoreworICAg
IGxvYWRVcmwoKTsKKworICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldCh3ZWJW
aWV3KCkpOworICAgIEFTU0VSVF9UUlVFKGV2YXMpOworCisgICAgRXZhc19FdmVudF9Nb3VzZV9E
b3duIG1vdXNlRG93bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3VzZURvd24u
b3V0cHV0LnggPSAwOworICAgIG1vdXNlRG93bi5vdXRwdXQueSA9IDA7CisgICAgbW91c2VEb3du
LmNhbnZhcy54ID0gMDsKKyAgICBtb3VzZURvd24uY2FudmFzLnkgPSAwOworICAgIG1vdXNlRG93
bi5kYXRhID0gMDsKKyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0gY29uc3RfY2FzdDxFdmFzX01v
ZGlmaWVyKj4oZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24ubG9j
a3MgPSBjb25zdF9jYXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xvY2tfZ2V0KGV2YXMpKTsKKyAg
ICBtb3VzZURvd24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1vdXNlRG93bi50aW1l
c3RhbXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3duLmV2ZW50X2ZsYWdz
ID0gRVZBU19FVkVOVF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9IDA7CisKKyAgICBB
U1NFUlRfVFJVRShld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh3ZWJWaWV3KCks
ICZtb3VzZURvd24pKTsKKworICAgIEV3a19Db250ZXh0X01lbnUqIGNvbnRleHRNZW51ID0gZXdr
X3ZpZXdfY29udGV4dF9tZW51X2dldCh3ZWJWaWV3KCkpOworCisgICAgQVNTRVJUX1RSVUUoY29u
dGV4dE1lbnUpOworCisgICAgY29uc3QgRWluYV9MaXN0KiBjb250ZXh0TWVudUl0ZW1zID0gZXdr
X2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KGNvbnRleHRNZW51KTsKKworICAgIEFTU0VSVF9U
UlVFKGNvbnRleHRNZW51SXRlbXMpOworCisgICAgY29uc3QgRWluYV9MaXN0KiBsaXN0SXRlcmF0
b3I7CisgICAgdm9pZCogZGF0YTsKKyAgICBFSU5BX0xJU1RfRk9SRUFDSChjb250ZXh0TWVudUl0
ZW1zLCBsaXN0SXRlcmF0b3IsIGRhdGEpCisgICAgICAgIEVYUEVDVF9FUShjb250ZXh0TWVudSwg
ZXdrX2NvbnRleHRfbWVudV9pdGVtX3BhcmVudF9nZXQoc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRf
TWVudV9JdGVtKj4oZGF0YSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL3Rl
c3RzL3Rlc3RfZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvdGVzdHMvdGVzdF9ld2tf
dmlldy5jcHAKaW5kZXggOWZhMjNmYi4uMjQxNTgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvdGVzdHMvdGVzdF9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvdGVz
dHMvdGVzdF9ld2tfdmlldy5jcHAKQEAgLTcwLDMgKzcwLDM1IEBAIFRFU1RfRihFV0tUZXN0QmFz
ZSwgZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfZnVsbHNjcmVlbikKICAgICBBU1NFUlRfRkFMU0Uo
ZXdrX3ZpZXdfc2V0dGluZ19lbmFibGVfZnVsbHNjcmVlbl9nZXQod2ViVmlldygpKSk7CiAjZW5k
aWYKIH0KKworLyoqCisgKiBAYnJpZWYgQ2hlY2tpbmcgd2hldGhlciBmdW5jdGlvbiByZXR1cm5z
IHByb3BlciBjb250ZXh0IG1lbnUgc3RydWN0dXJlLgorICoKKyAqIFRoaXMgdGVzdCBjcmVhdGVz
IGEgY29udGV4dCBtZW51IGFuZCBjaGVja3MgaWYgY29udGV4dCBtZW51IHN0cnVjdHVyZQorICog
aXMgbm90IE5VTEw7CisgKi8KK1RFU1RfRihFV0tUZXN0QmFzZSwgZXdrX3ZpZXdfY29udGV4dF9t
ZW51X2dldCkKK3sKKyAgICBsb2FkVXJsKCk7CisKKyAgICBFdmFzKiBldmFzID0gZXZhc19vYmpl
Y3RfZXZhc19nZXQod2ViVmlldygpKTsKKyAgICBBU1NFUlRfVFJVRShldmFzKTsKKworICAgIEV2
YXNfRXZlbnRfTW91c2VfRG93biBtb3VzZURvd247CisgICAgbW91c2VEb3duLmJ1dHRvbiA9IDM7
CisgICAgbW91c2VEb3duLm91dHB1dC54ID0gMDsKKyAgICBtb3VzZURvd24ub3V0cHV0LnkgPSAw
OworICAgIG1vdXNlRG93bi5jYW52YXMueCA9IDA7CisgICAgbW91c2VEb3duLmNhbnZhcy55ID0g
MDsKKyAgICBtb3VzZURvd24uZGF0YSA9IDA7CisgICAgbW91c2VEb3duLm1vZGlmaWVycyA9IGNv
bnN0X2Nhc3Q8RXZhc19Nb2RpZmllcio+KGV2YXNfa2V5X21vZGlmaWVyX2dldChldmFzKSk7Cisg
ICAgbW91c2VEb3duLmxvY2tzID0gY29uc3RfY2FzdDxFdmFzX0xvY2sqPihldmFzX2tleV9sb2Nr
X2dldChldmFzKSk7CisgICAgbW91c2VEb3duLmZsYWdzID0gRVZBU19CVVRUT05fTk9ORTsKKyAg
ICBtb3VzZURvd24udGltZXN0YW1wID0gZWNvcmVfbG9vcF90aW1lX2dldCgpOworICAgIG1vdXNl
RG93bi5ldmVudF9mbGFncyA9IEVWQVNfRVZFTlRfRkxBR19OT05FOworICAgIG1vdXNlRG93bi5k
ZXYgPSAwOworCisgICAgQVNTRVJUX1RSVUUoZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRf
ZXZlbnQod2ViVmlldygpLCAmbW91c2VEb3duKSk7CisKKyAgICBBU1NFUlRfVFJVRShld2tfdmll
d19jb250ZXh0X21lbnVfZ2V0KHdlYlZpZXcoKSkpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDlkZmQzYWQuLmFlNzM3NDYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxMi0xMC0zMSAgTWljaGHFgiBQYWt1xYJhIHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1
bmcuY29tPgorCisgICAgICAgIFtFRkxdW0RSVF0gRXZlbnRTZW5kZXIgcmVxdWlyZXMgY29udGV4
dENsaWNrIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjA5MQorCisgICAgICAgIFJldmlld2VkIGJ5IEd5dXlvdW5nIEtpbS4K
KworICAgICAgICBBZGQgY29udGV4dENsaWNrIGZvciBEdW1wUmVuZGVyVHJlZUV2ZW50U2VuZGVy
IGJhc2luZyBvbiBXZWJLaXQgR1RLCisgICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKGdldE1lbnVJ
dGVtVGl0bGVDYWxsYmFjayk6CisgICAgICAgIChzZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2spOgor
ICAgICAgICAobWVudUl0ZW1DbGlja0NhbGxiYWNrKToKKyAgICAgICAgKGNvbnRleHRDbGlja0Nh
bGxiYWNrKToKKwogMjAxMi0xMC0zMCAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5h
Z2luZW5pQGludGVsLmNvbT4KIAogICAgICAgICBbV1RSXSBNZW1vcnkgbGVha3MgaW4gVGVzdFdl
YktpdEFQSTo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9FdmVudFNlbmRlci5jcHAKaW5kZXggNzhkMmRiYy4uZTJmZjVlMSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0V2ZW50U2VuZGVyLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRXZlbnRTZW5kZXIuY3BwCkBAIC0yNjksNiArMjY5LDEw
MiBAQCBzdGF0aWMgdW5zaWduZWQgbW9kaWZpZXJzRnJvbUpTVmFsdWUoSlNDb250ZXh0UmVmIGNv
bnRleHQsIGNvbnN0IEpTVmFsdWVSZWYgbW9kaQogICAgIHJldHVybiBtb2RpZmllcjsKIH0KIAor
c3RhdGljIEpTVmFsdWVSZWYgZ2V0TWVudUl0ZW1UaXRsZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSA9
IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfSXRlbSo+KEpTT2JqZWN0R2V0UHJpdmF0ZShv
YmplY3QpKTsKKyAgICBDU3RyaW5nIGxhYmVsOworICAgIGlmIChld2tfY29udGV4dF9tZW51X2l0
ZW1fdHlwZV9nZXQoaXRlbSkgPT0gRVdLX1NFUEFSQVRPUl9UWVBFKQorICAgICAgICBsYWJlbCA9
ICI8c2VwYXJhdG9yPiI7CisgICAgZWxzZQorICAgICAgICBsYWJlbCA9IGV3a19jb250ZXh0X21l
bnVfaXRlbV90aXRsZV9nZXQoaXRlbSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmco
Y29udGV4dCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcobGFiZWwuZGF0YSgpKSk7Cit9
CisKK3N0YXRpYyBib29sIHNldE1lbnVJdGVtVGl0bGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworc3RhdGljIEpTVmFsdWVSZWYgbWVudUl0ZW1DbGlja0NhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSBz
dGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOworICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9zZWxlY3QoZXdrX2NvbnRleHRf
bWVudV9pdGVtX3BhcmVudF9nZXQoaXRlbSksIGl0ZW0pOworICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKworc3RhdGljIEpTU3RhdGljRnVuY3Rpb24gc3RhdGlj
TWVudUl0ZW1GdW5jdGlvbnNbXSA9IHsKKyAgICB7ICJjbGljayIsIG1lbnVJdGVtQ2xpY2tDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAorICAgIHsgMCwgMCwgMCB9Cit9OworCitzdGF0aWMgSlNTdGF0aWNWYWx1
ZSBzdGF0aWNNZW51SXRlbVZhbHVlc1tdID0geworICAgIHsgInRpdGxlIiwgZ2V0TWVudUl0ZW1U
aXRsZUNhbGxiYWNrLCBzZXRNZW51SXRlbVRpdGxlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlTm9uZSB9LAorICAgIHsgMCwgMCwgMCwgMCB9Cit9OworCitzdGF0aWMgSlNDbGFzc1JlZiBn
ZXRNZW51SXRlbUNsYXNzKCkKK3sKKyAgICBzdGF0aWMgSlNDbGFzc1JlZiBtZW51SXRlbUNsYXNz
ID0gMDsKKworICAgIGlmICghbWVudUl0ZW1DbGFzcykgeworICAgICAgICBKU0NsYXNzRGVmaW5p
dGlvbiBjbGFzc0RlZmluaXRpb24gPSB7CisgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLAor
ICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH07CisgICAgICAgIGNs
YXNzRGVmaW5pdGlvbi5zdGF0aWNGdW5jdGlvbnMgPSBzdGF0aWNNZW51SXRlbUZ1bmN0aW9uczsK
KyAgICAgICAgY2xhc3NEZWZpbml0aW9uLnN0YXRpY1ZhbHVlcyA9IHN0YXRpY01lbnVJdGVtVmFs
dWVzOworCisgICAgICAgIG1lbnVJdGVtQ2xhc3MgPSBKU0NsYXNzQ3JlYXRlKCZjbGFzc0RlZmlu
aXRpb24pOworICAgIH0KKworICAgIHJldHVybiBtZW51SXRlbUNsYXNzOworfQorCitzdGF0aWMg
SlNWYWx1ZVJlZiBjb250ZXh0Q2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVu
dENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pCit7CisgICAgRXZhc19PYmplY3QqIHZpZXcgPSBld2tfZnJhbWVfdmlld19nZXQoYnJvd3Nl
ci0+bWFpbkZyYW1lKCkpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2
YXNfZ2V0KHZpZXcpOworICAgIGlmICghZXZhcykKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duIG1vdXNlRG93
bjsKKyAgICBtb3VzZURvd24uYnV0dG9uID0gMzsKKyAgICBtb3VzZURvd24ub3V0cHV0LnggPSBn
TGFzdE1vdXNlUG9zaXRpb25YOworICAgIG1vdXNlRG93bi5vdXRwdXQueSA9IGdMYXN0TW91c2VQ
b3NpdGlvblk7CisgICAgbW91c2VEb3duLmNhbnZhcy54ID0gZ0xhc3RNb3VzZVBvc2l0aW9uWDsK
KyAgICBtb3VzZURvd24uY2FudmFzLnkgPSBnTGFzdE1vdXNlUG9zaXRpb25ZOworICAgIG1vdXNl
RG93bi5kYXRhID0gMDsKKyAgICBtb3VzZURvd24ubW9kaWZpZXJzID0gY29uc3RfY2FzdDxFdmFz
X01vZGlmaWVyKj4oZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBtb3VzZURvd24u
bG9ja3MgPSBjb25zdF9jYXN0PEV2YXNfTG9jayo+KGV2YXNfa2V5X2xvY2tfZ2V0KGV2YXMpKTsK
KyAgICBtb3VzZURvd24uZmxhZ3MgPSBFVkFTX0JVVFRPTl9OT05FOworICAgIG1vdXNlRG93bi50
aW1lc3RhbXAgPSBlY29yZV9sb29wX3RpbWVfZ2V0KCk7CisgICAgbW91c2VEb3duLmV2ZW50X2Zs
YWdzID0gRVZBU19FVkVOVF9GTEFHX05PTkU7CisgICAgbW91c2VEb3duLmRldiA9IDA7CisKKyAg
ICBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCh2aWV3LCAmbW91c2VEb3duKTsK
KyAgICBFd2tfQ29udGV4dF9NZW51KiBld2tNZW51ID0gZXdrX3ZpZXdfY29udGV4dF9tZW51X2dl
dCh2aWV3KTsKKworICAgIEpTVmFsdWVSZWYgdmFsdWVSZWYgPSBKU09iamVjdE1ha2VBcnJheShj
b250ZXh0LCAwLCAwLCAwKTsKKyAgICBpZiAoZXdrTWVudSkgeworICAgICAgICBjb25zdCBFaW5h
X0xpc3QqIGV3a01lbnVJdGVtcyA9IGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldChld2tN
ZW51KTsKKyAgICAgICAgSlNWYWx1ZVJlZiBhcnJheVZhbHVlc1tlaW5hX2xpc3RfY291bnQoZXdr
TWVudUl0ZW1zKV07CisKKyAgICAgICAgY29uc3QgRWluYV9MaXN0KiBsaXN0SXRlcmF0b3I7Cisg
ICAgICAgIHZvaWQqIGRhdGE7CisgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgIEVJTkFf
TElTVF9GT1JFQUNIKGV3a01lbnVJdGVtcywgbGlzdEl0ZXJhdG9yLCBkYXRhKQorICAgICAgICAg
ICAgYXJyYXlWYWx1ZXNbaW5kZXgrK10gPSBKU09iamVjdE1ha2UoY29udGV4dCwgZ2V0TWVudUl0
ZW1DbGFzcygpLCBkYXRhKTsKKworICAgICAgICBpZiAoaW5kZXgpCisgICAgICAgICAgICB2YWx1
ZVJlZiA9IEpTT2JqZWN0TWFrZUFycmF5KGNvbnRleHQsIGluZGV4IC0gMSwgYXJyYXlWYWx1ZXMs
IDApOworICAgIH0KKworICAgIHJldHVybiB2YWx1ZVJlZjsKK30KKwogc3RhdGljIEpTVmFsdWVS
ZWYgbW91c2VEb3duQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAg
IGludCBidXR0b24gPSAwOwpAQCAtODAzLDYgKzg5OSw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNl
dFRvdWNoTW9kaWZpZXJDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuCiB9CiAKIHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIHN0YXRpY0Z1bmN0aW9uc1tdID0gewor
ICAgIHsgImNvbnRleHRDbGljayIsIGNvbnRleHRDbGlja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
eyAibW91c2VTY3JvbGxCeSIsIG1vdXNlU2Nyb2xsQnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgIHsg
ImNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5IiwgY29udGludW91c01vdXNlU2Nyb2xsQnlDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgIHsgIm1vdXNlRG93biIsIG1vdXNlRG93bkNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>