<?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>127800</bug_id>
          
          <creation_ts>2014-01-28 14:27:22 -0800</creation_ts>
          <short_desc>WebKitGTK+ should stop using COMPILE_ASSERT_MATCHING_ENUM macros</short_desc>
          <delta_ts>2014-02-24 11:51:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bunhere</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eocanha</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
    
    <cc>svillar</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973100</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-28 14:27:22 -0800</bug_when>
    <thetext>Instead of having COMPILE_ASSERT_MATCHING_ENUM macros, WebKitGTK+ should have functions that can map between different types. For example:

inline WKSameDocumentNavigationType toAPI(SameDocumentNavigationType type)
{
    WKFrameNavigationType wkType = kWKSameDocumentNavigationAnchorNavigation;

    switch (type) {
    case SameDocumentNavigationAnchorNavigation:
        wkType = kWKSameDocumentNavigationAnchorNavigation;
        break;
    case SameDocumentNavigationSessionStatePush:
        wkType = kWKSameDocumentNavigationSessionStatePush;
        break;
    case SameDocumentNavigationSessionStateReplace:
        wkType = kWKSameDocumentNavigationSessionStateReplace;
        break;
    case SameDocumentNavigationSessionStatePop:
        wkType = kWKSameDocumentNavigationSessionStatePop;
        break;
    }
    
    return wkType;
}

This allows us to change the enum values in WebCore without breaking the builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979599</commentid>
    <comment_count>1</comment_count>
      <attachid>223899</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-11 14:03:36 -0800</bug_when>
    <thetext>Created attachment 223899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979614</commentid>
    <comment_count>2</comment_count>
      <attachid>223899</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-11 14:52:53 -0800</bug_when>
    <thetext>Comment on attachment 223899
Patch

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

Phwew! Great effort. Just needs a little bit of cleanup, though Carlos might have some more comments.

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:89
&gt; +static inline WebCore::FindOptions core(WebKitFindOptions type)

Let&apos;s use the WebKit2 style name and call this toWebCoreFindOptions.

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h:38
&gt; -    WebFindOptionsStartInSelection = 1 &lt;&lt; 5
&gt; +    WebFindOptionsStartInSelection = 1 &lt;&lt; 5,

Is this change actually necessary?

&gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:108
&gt; +inline int kit(int errorCode)

Ditto about the name here.

&gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:115
&gt; +    case NetworkErrorFailed:
&gt; +        wkErrorCode = WEBKIT_NETWORK_ERROR_FAILED;
&gt; +        break;

Just return WEBKIT_NETWORK_ERROR_FAILED and do the same for the rest. You can avoid having wkErrorCode entirely as well as the break statements.

&gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:162
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();

You should probably pick a default, just in case something goes wrong.

&gt; Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:1159
&gt; -    return !(error.isCancellation() || error.errorCode() == WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE || error.errorCode() == WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD);
&gt; +    return !(error.isCancellation() || error.errorCode() == PolicyErrorFrameLoadInterruptedByPolicyChange || error.errorCode() == PluginErrorWillHandleLoad);
&gt;  }

Great catch.

&gt; Source/WebKit/gtk/webkit/webkitwebnavigationaction.cpp:369
&gt; -WebKitWebNavigationReason kit(WebCore::NavigationType type)
&gt; +inline WebKitWebNavigationReason kit(WebCore::NavigationType type)
&gt;  {
&gt; -    return (WebKitWebNavigationReason)type;
&gt; +    WebKitWebNavigationReason wkType(WEBKIT_WEB_NAVIGATION_REASON_LINK_CLICKED);
&gt; +
&gt; +    switch(type) {

Please apply the same suggestions here and for the rest of the new methods.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:5616
&gt; +GtkTargetList* kit(GtkTargetList* coreGtkTargetList)

Probably best to call this something like copyGtkTargetListConvertingWebCoreEnumValuesToWebKitEnumValues.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:5618
&gt; +    GtkTargetList* kitGtkTargetList(0);

GtkTargetList* kitGtkTargetList = nullptr;

It&apos;d be better to call this something like targetListWithWebKitEnumValues.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:5620
&gt; +    if (coreGtkTargetList) {

Use an early return here.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:5621
&gt; +        gint tableSize(0);

Use int here and don&apos;t use a constructor to initialize a primitive.

So int tableSize = 0;

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:5624
&gt; +        for (gint i = 0; i &lt; tableSize; i++)

Here as well.

&gt; Source/WebKit/gtk/webkit/webkitwebviewprivate.h:103
&gt; +    GtkTargetList* targetList;

Using a GRefPtr will avoid all uses of gtk_target_list_ref and gtk_target_list_unref.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitAuthenticationRequest.cpp:72
&gt; +inline static WebKitAuthenticationScheme webCoreProtectionSpaceAuthenticationSchemeToWebKitAuthenticationScheme(WebCore::ProtectionSpaceAuthenticationScheme coreScheme)

You can probably omit the first part of the name of this function so that it is something like toWebKitAuthenticationScheme. I recommend this for all following functions too.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.cpp:26
&gt; +#include &quot;ErrorsGtk.h&quot;
&gt; +#include &quot;WebKitError.h&quot;
&gt; +
&gt;  #include &lt;gdk/gdk.h&gt;

These includes should be all one block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979826</commentid>
    <comment_count>3</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-12 03:20:12 -0800</bug_when>
    <thetext>Thanks for the review, Martin.

I&apos;d like to have opinions from you and Carlos about the way I handled the maintenance of the targetList, because I&apos;m not sure if I took the right approach or if it can be improved:

Before the patch, the inner PasteboardHelper::defaultPasteboardHelper()-&gt;targetList() was returned to the client app using WebKitGTK+. It worked because the values held by that GtkTargetList were of type PasteboardHelper::PasteboardTargetType, which was cast-compatible with WebKitWebViewTargetInfo (the type the client app expects). That inner GtkTargetList was owned and maintained by PasteBoardHelper. The client app just used it without worrying.

Now we have to maintain a converted GtkTargetList holding WebKitWebViewTargetInfo items and mirroring the original GtkTargetList in PasteBoardTargetType. I didn&apos;t examine the code deep enough to understand the implications of mirroring the inner list. In particular, I dont know if the original list:

- Is created once and never changes. I&apos;m re-creating a new list at each API request. This means that if the client asks for it twice, it will have two different lists! (maybe with different values). If the list never changes, I can save some code and use a single centralized mirror list.

- Is read-only or, on the contrary, is expected to be modified by the client app. I only synchronized the lists in the PasteBoardHelper --&gt; WebKitWebView direction, not the opposite. If the client adds values to the list, they will pass unnoticed. Moreover, due to the nature of GtkTargetList, I don&apos;t have any way of knowing if the client adds new elements and to trigger a synchronization in the the WebKitWebView --&gt; PasteBoardHelper direction.

So, please, can I have your opinion about all this?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979987</commentid>
    <comment_count>4</comment_count>
      <attachid>224000</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-12 13:21:50 -0800</bug_when>
    <thetext>Created attachment 224000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980033</commentid>
    <comment_count>5</comment_count>
      <attachid>224013</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-12 15:02:54 -0800</bug_when>
    <thetext>Created attachment 224013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980036</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-12 15:04:35 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982778</commentid>
    <comment_count>7</comment_count>
      <attachid>224745</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-20 04:04:21 -0800</bug_when>
    <thetext>Created attachment 224745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982829</commentid>
    <comment_count>8</comment_count>
      <attachid>224756</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-20 08:28:46 -0800</bug_when>
    <thetext>Created attachment 224756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982837</commentid>
    <comment_count>9</comment_count>
      <attachid>224759</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-20 08:42:27 -0800</bug_when>
    <thetext>Created attachment 224759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982873</commentid>
    <comment_count>10</comment_count>
      <attachid>224759</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-20 10:18:37 -0800</bug_when>
    <thetext>Comment on attachment 224759
Patch

Probably a bit late but I&apos;d replace the &quot;inline static&quot; by &quot;static inline&quot; which is much more used</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982875</commentid>
    <comment_count>11</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-02-20 10:20:22 -0800</bug_when>
    <thetext>Stop the presses! Okay. That sounds like a reasonable change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982887</commentid>
    <comment_count>12</comment_count>
      <attachid>224772</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-20 10:41:41 -0800</bug_when>
    <thetext>Created attachment 224772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982894</commentid>
    <comment_count>13</comment_count>
      <attachid>224774</attachid>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-20 10:50:38 -0800</bug_when>
    <thetext>Created attachment 224774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982896</commentid>
    <comment_count>14</comment_count>
      <attachid>224774</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-20 10:55:03 -0800</bug_when>
    <thetext>Comment on attachment 224774
Patch

Let&apos;s go!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982903</commentid>
    <comment_count>15</comment_count>
      <attachid>224774</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-20 11:25:44 -0800</bug_when>
    <thetext>Comment on attachment 224774
Patch

Clearing flags on attachment: 224774

Committed r164438: &lt;http://trac.webkit.org/changeset/164438&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982904</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-20 11:25:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983850</commentid>
    <comment_count>17</comment_count>
      <attachid>224774</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-02-24 02:00:46 -0800</bug_when>
    <thetext>Comment on attachment 224774
Patch

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

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitFindController.h:69
&gt; +  /*&lt; private &gt;*/
&gt; +  WEBKIT_FIND_OPTIONS_SHOW_OVERLAY =                       1 &lt;&lt; 5,
&gt; +  WEBKIT_FIND_OPTIONS_SHOW_FIND_INDICATOR =                1 &lt;&lt; 6,
&gt; +  WEBKIT_FIND_OPTIONS_SHOW_HIGHLIGHT =                     1 &lt;&lt; 7,

I don&apos;t think we should expose these here, even when using the private  comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983854</commentid>
    <comment_count>18</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-24 02:17:35 -0800</bug_when>
    <thetext>(In reply to comment #17)

&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitFindController.h:69
&gt; &gt; +  /*&lt; private &gt;*/
&gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_OVERLAY =                       1 &lt;&lt; 5,
&gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_FIND_INDICATOR =                1 &lt;&lt; 6,
&gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_HIGHLIGHT =                     1 &lt;&lt; 7,
&gt; 
&gt; I don&apos;t think we should expose these here, even when using the private  comment.

Then, what should we do in toWebKitFindOptions() when WebKitFindOptions has FindOptionsShowOverlay, FindOptionsShowFindIndicator or FindOptionsShowHighlight enabled? Assert?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983856</commentid>
    <comment_count>19</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-02-24 02:21:41 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitFindController.h:69
&gt; &gt; &gt; +  /*&lt; private &gt;*/
&gt; &gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_OVERLAY =                       1 &lt;&lt; 5,
&gt; &gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_FIND_INDICATOR =                1 &lt;&lt; 6,
&gt; &gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_HIGHLIGHT =                     1 &lt;&lt; 7,
&gt; &gt; 
&gt; &gt; I don&apos;t think we should expose these here, even when using the private  comment.
&gt; 
&gt; Then, what should we do in toWebKitFindOptions() when WebKitFindOptions has FindOptionsShowOverlay, FindOptionsShowFindIndicator or FindOptionsShowHighlight enabled? Assert?

You should not call the convert functions with those values, since they are used internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983862</commentid>
    <comment_count>20</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-02-24 03:01:48 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; (In reply to comment #17)
&gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitFindController.h:69
&gt; &gt; &gt; &gt; +  /*&lt; private &gt;*/
&gt; &gt; &gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_OVERLAY =                       1 &lt;&lt; 5,
&gt; &gt; &gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_FIND_INDICATOR =                1 &lt;&lt; 6,
&gt; &gt; &gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_HIGHLIGHT =                     1 &lt;&lt; 7,
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t think we should expose these here, even when using the private  comment.
&gt; &gt; 
&gt; &gt; Then, what should we do in toWebKitFindOptions() when WebKitFindOptions has FindOptionsShowOverlay, FindOptionsShowFindIndicator or FindOptionsShowHighlight enabled? Assert?
&gt; 
&gt; You should not call the convert functions with those values, since they are used internally.

I agree with Carlos FWIW</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983990</commentid>
    <comment_count>21</comment_count>
    <who name="Enrique Ocaña">eocanha</who>
    <bug_when>2014-02-24 11:51:36 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 224774 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=224774&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitFindController.h:69
&gt; &gt; +  /*&lt; private &gt;*/
&gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_OVERLAY =                       1 &lt;&lt; 5,
&gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_FIND_INDICATOR =                1 &lt;&lt; 6,
&gt; &gt; +  WEBKIT_FIND_OPTIONS_SHOW_HIGHLIGHT =                     1 &lt;&lt; 7,
&gt; 
&gt; I don&apos;t think we should expose these here, even when using the private  comment.

I&apos;ve created https://bugs.webkit.org/show_bug.cgi?id=129263 to address this matter.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223899</attachid>
            <date>2014-02-11 14:03:36 -0800</date>
            <delta_ts>2014-02-12 13:21:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127800-20140211220334.patch</filename>
            <type>text/plain</type>
            <size>75486</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA5NDY0Mzc3M2ZmODg2MmQz
NmRhZmIxODllM2VmODRmODQxMzlkZTEuLjJlNmExYmE3MDk4ODRjMWE0ZmY3ODk0ODJlZTlmYjI4
MTQ1MmU0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDItMTEgIEVucmlxdWUg
T2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXRH
VEsrIHNob3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRm
b3JtR1RLLmNtYWtlOiBSZW1vdmVkIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwCisKIDIwMTQtMDIt
MDkgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHJlbGlua2lu
ZyBXZWJLaXQgb24gZXZlcnkgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNDVjNmZlOGVhYzdh
NjI1M2I2MDRjY2MwYmM5Y2UyNGE2YjBjNTgxYy4uYjY3ZDVlZjhhZDQ3NWMzZTIzN2YxNDFkMWNi
NWY0MTBiNWJlNjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE0LTAy
LTExICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgV2ViS2l0R1RLKyBzaG91bGQgc3RvcCB1c2luZyBDT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI3ODAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogUmVtb3ZlZCBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcAor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6
IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKGNvcmUpOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaW5kU3RyaW5nKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDogQWRkZWQgY29tbWEu
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOiBEZWZp
bmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJLaXQ6OmtpdCk6
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2Fk
aW5nKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFp
bExvYWQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJh
Y2spOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDogRGVm
aW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoV2ViS2l0OjpraXQp
OgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3MuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAg
IChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogRGVm
aW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAod2Via2l0X3dlYl92
aWV3X2Rpc3Bvc2UpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOgorICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KToKKyAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3QpOgorICAgICAgICAoV2ViS2l0OjpraXQpOgor
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOiBBZGRlZCB0YXJnZXRMaXN0
IHByaXZhdGUgZmllbGQsIHdoaWNoIG1pcnJvcnMgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBh
c3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdCgpIGJ1dCB3aXRoIHRoZSBmbGFncyBjb252ZXJ0
ZWQgdG8gV2ViS2l0V2ViVmlld1RhcmdldEluZm8KKwogMjAxNC0wMi0wOSAgQ2FybG9zIEdhcm5h
Y2hvICA8Y2FybG9zZ0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gQWxsb3cgYnVpbGRpbmcg
d2l0aCB0b3VjaCBldmVudHMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGY0YzQ4ODUxODVlODhlMzVm
MWYzMzdlZjY3MWM5ZGNkMjVhNzllNGIuLmJjMDM1YzNmMjQ5OTczNGE3NjAyOTVmYTdmYzQyMTlh
MWUyOTNhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxNC0wMi0xMSAgRW5yaXF1
ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYktp
dEdUSysgc2hvdWxkIHN0b3AgdXNpbmcgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSBtYWNy
b3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgw
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDogRGVmaW5lZCBh
bmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAod2Via2l0X2F1dGhlbnRpY2F0
aW9uX3JlcXVlc3RfZ2V0X3NjaGVtZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0Q29va2llTWFuYWdlci5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9u
cy4KKyAgICAgICAgKGh0dHBDb29raWVBY2NlcHRQb2xpY3lUb1dlYktpdENvb2tpZUFjY2VwdFBv
bGljeSk6CisgICAgICAgICh3ZWJLaXRDb29raWVBY2NlcHRQb2xpY3lUb0hUVFBDb29raWVBY2Nl
cHRQb2xpY3kpOgorICAgICAgICAod2Via2l0X2Nvb2tpZV9tYW5hZ2VyX3NldF9wZXJzaXN0ZW50
X3N0b3JhZ2UpOgorICAgICAgICAod2Via2l0X2Nvb2tpZV9tYW5hZ2VyX3NldF9hY2NlcHRfcG9s
aWN5KToKKyAgICAgICAgKHdlYmtpdENvb2tpZU1hbmFnZXJHZXRBY2NlcHRQb2xpY3lDYWxsYmFj
ayk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q3JlZGVudGlhbC5jcHA6IERl
ZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHdlYkNvcmVDcmVk
ZW50aWFsUGVyc2lzdGVuY2VUb1dlYktpdENyZWRlbnRpYWxQZXJzaXN0ZW5jZSk6CisgICAgICAg
ICh3ZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2VUb1dlYkNvcmVDcmVkZW50aWFsUGVyc2lzdGVu
Y2UpOgorICAgICAgICAod2Via2l0X2NyZWRlbnRpYWxfbmV3KToKKyAgICAgICAgKHdlYmtpdF9j
cmVkZW50aWFsX2dldF9wZXJzaXN0ZW5jZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0RG93bmxvYWQuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMu
CisgICAgICAgICh3ZWJraXREb3dubG9hZEZhaWxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RXJyb3IuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lv
bnMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuY3Bw
OiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChraXQpOgor
ICAgICAgICAod2ViS2l0RmluZENvbnRyb2xsZXJQZXJmb3JtKToKKyAgICAgICAgKHdlYmtpdF9m
aW5kX2NvbnRyb2xsZXJfc2VhcmNoX25leHQpOgorICAgICAgICAod2Via2l0X2ZpbmRfY29udHJv
bGxlcl9zZWFyY2hfcHJldmlvdXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZpbmRDb250cm9sbGVyLmg6IEFkZGVkIG5ldyBwcml2YXRlIGZpZWxkcyB0byB0aGUgZW51bSwg
bmVlZGVkIHRvIG1hdGNoIGNvbnZlcnNpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBl
IGNvbnZlcnNpb25zLgorICAgICAgICAoZGlkUmVjZWl2ZVdlYlZpZXdNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGll
bnQuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChk
aWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAgICAgICAoZGlkRmFp
bExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBl
IGNvbnZlcnNpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvbGljeUNs
aWVudC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAg
KHdlYmtpdE5hdmlnYXRpb25UeXBlRm9yV0tGcmFtZU5hdmlnYXRpb25UeXBlKToKKyAgICAgICAg
KGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoZGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQ
cmludE9wZXJhdGlvbi5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4K
KyAgICAgICAgKGRyYXdQYWdlc0ZvclByaW50aW5nQ29tcGxldGVkKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBl
IGNvbnZlcnNpb25zLgorICAgICAgICAod2ViQ29yZUVycm9yVG9XZWJLaXRFcnJvcik6CisgICAg
ICAgICh3ZWJLaXRFcnJvclRvV2ViQ29yZUVycm9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRQcml2YXRlLmg6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9u
cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNw
cDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAod2Via2l0
X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29u
dmVyc2lvbnMuCisgICAgICAgIChwcm9jZXNzTW9kZWxUb1dlYktpdFByb2Nlc3NNb2RlbCk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwpOgorICAgICAgICAo
d2Via2l0X3dlYl9jb250ZXh0X2dldF9wcm9jZXNzX21vZGVsKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNv
bnZlcnNpb25zLgorICAgICAgICAod2ViS2l0U25hcHNob3RSZWdpb25Ub1NuYXBzaG90UmVnaW9u
KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHA6IERlZmluZWQgYW5kIGFwcGxp
ZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHdlYktpdEluamVjdGVkQ29udGVudEZyYW1l
c1RvV2ViQ29yZVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOgorICAgICAgICAod2Via2l0X3dl
Yl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KToKKwogMjAxNC0wMi0wOSAgQ2FybG9z
IEdhcm5hY2hvICA8Y2FybG9zZ0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gSW1wbGVtZW50
IHN1cHBvcnQgdG91Y2ggZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
R1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAxY2IyMTg0
ZWVhZTIxMTU2YWEyNjU3MWMwYjIyYWM3MjMxOGMwMWFkLi42MjgwMTI4NThmNDQ5MzBlYzQyYjRl
MDliNjUyZWQ3OTMzMGY5ODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RL
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQwLDcgKzQw
LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19X
RUJLSVRHVEtfQVBJX0RJUn0vd2Via2l0bWFyc2hhbC5jcHAKIAogICAgIGd0ay9XZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAotICAgIGd0ay9XZWJDb3Jl
U3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwCiAgICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xp
ZW50R3RrLmNwcAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRHdGsu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbSBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCmluZGV4IDY0ZWQ1M2UzOTRkZTIxMDQ2YjllMWM3
YTBlZjE2NzkzMzliYTEzZmUuLmQ1M2YxYjBjMGY4NTQ3MjE4MDZkNjZiYTJhMGUxOWFjMmIzNWYx
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCkBAIC0xOTAsNyArMTkwLDYgQEAgQlVJTFRf
U09VUkNFUyArPSAkKHdlYmtpdGd0a19idWlsdF9zb3VyY2VzKQogd2Via2l0Z3RrX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwIFwKLQlTb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMmZlODA5ZWRhMDlmYzEyYzgxMjgzMGYxYTMxOTkx
OWNmZjQ2ODEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIw
MTEgQ29sbGFib3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
Ci0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLS8vIFVz
ZSB0aGlzIGZpbGUgdG8gYXNzZXJ0IHRoYXQgdmFyaW91cyBXZWJLaXQgQVBJIGVudW0gdmFsdWVz
IGNvbnRpbnVlCi0vLyBtYXRjaGluZyBXZWJDb3JlIGRlZmluZWQgZW51bSB2YWx1ZXMuCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
IgotI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3Rr
LmgiCi0jaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVz
LmgiCi0jaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgotI2luY2x1ZGUgIndlYmtpdGVycm9y
LmgiCi0jaW5jbHVkZSAid2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oIgotI2luY2x1ZGUgIndl
YmtpdHdlYnNldHRpbmdzLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgotI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+Ci0KLSNkZWZpbmUgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TSh3ZWJraXRfbmFtZSwgd2ViY29yZV9uYW1lKSBcCi0gICAgQ09NUElMRV9BU1NFUlQoaW50KHdl
YmtpdF9uYW1lKSA9PSBpbnQoV2ViQ29yZTo6d2ViY29yZV9uYW1lKSwgbWlzbWF0Y2hpbmdfZW51
bXMpCi0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJ
T1JfTUFDLCBFZGl0aW5nTWFjQmVoYXZpb3IpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfRURJVElOR19CRUhBVklPUl9XSU5ET1dTLCBFZGl0aW5nV2luZG93c0JlaGF2aW9y
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1Jf
VU5JWCwgRWRpdGluZ1VuaXhCZWhhdmlvcik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQsIE5hdmlnYXRpb25U
eXBlTGlua0NsaWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VC
X05BVklHQVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJt
aXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklHQVRJ
T05fUkVBU09OX0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZCk7Ci1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fUkVM
T0FELCBOYXZpZ2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlv
blR5cGVGb3JtUmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfV0VCX05BVklHQVRJT05fUkVBU09OX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zQXRXb3Jk
U3RhcnRzLCBBdFdvcmRTdGFydHMpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJL
aXQ6OldlYkZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQsIFRyZWF0TWVk
aWFsQ2FwaXRhbEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
S2l0OjpXZWJGaW5kT3B0aW9uc0JhY2t3YXJkcywgQmFja3dhcmRzKTsKLUNPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV2ViS2l0OjpXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQsIFdyYXBBcm91
bmQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25z
U3RhcnRJblNlbGVjdGlvbiwgU3RhcnRJblNlbGVjdGlvbik7Ci0KLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUwsIFBhc3RlYm9hcmRI
ZWxwZXI6OlRhcmdldFR5cGVNYXJrdXApOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0
VHlwZVRleHQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdf
VEFSR0VUX0lORk9fSU1BR0UsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVJbWFnZSk7Ci1D
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19V
UklfTElTVCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3QpOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fTkVUU0NBUEVf
VVJMLCBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTmV0c2NhcGVVUkwpOwotCi1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRCwgTmV0d29y
a0Vycm9yRmFpbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdP
UktfRVJST1JfVFJBTlNQT1JULCBOZXR3b3JrRXJyb3JUcmFuc3BvcnQpOwotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MLCBO
ZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2wpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQsIE5ldHdvcmtFcnJvckNhbmNlbGxlZCk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVf
RE9FU19OT1RfRVhJU1QsIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QpOwotCi1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVELCBQb2xpY3lF
cnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lf
RVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlw
ZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FO
Tk9UX1NIT1dfVVJMLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwotQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURf
QllfUE9MSUNZX0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5
Q2hhbmdlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9FUlJP
Ul9DQU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmlj
dGVkUG9ydCk7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9F
UlJPUl9GQUlMRUQsIFBsdWdpbkVycm9yRmFpbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU4sIFBsdWdpbkVycm9y
Q2Fubm90RmluZFBsdWdpbik7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9Q
TFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOLCBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVn
aW4pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0pB
VkFfVU5BVkFJTEFCTEUsIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlKTsKLUNPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNFTExF
RCwgUGx1Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FELCBQbHVnaW5FcnJv
cldpbGxIYW5kbGVMb2FkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IGQxOWNkNDg4
NTI0YTViN2I2YWUxNjZiZTdmNDYwZDcxZTY3YzVjYzIuLjg1YjM0ODRlMmNmMTI1ODEyZGYzNDJk
MTYyOTViM2FhYzlhYTExMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtODYsNiAr
ODYsMTYgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZElu
VGFiQ2hhaW4gPSB0cnVlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpGcmFtZUxvYWRFdmVu
dENhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRFdmVudENhbGxi
YWNrID0gMDsKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGljYXRpb25DYWxsYmFj
ayBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxsYmFjayA9IDA7
CiAKK3N0YXRpYyBpbmxpbmUgV2ViQ29yZTo6RmluZE9wdGlvbnMgY29yZShXZWJLaXRGaW5kT3B0
aW9ucyB0eXBlKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpGaW5kT3B0aW9u
cz4oKHR5cGUgJiBXZWJGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSA/IENhc2VJbnNlbnNpdGl2
ZSA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXZWJGaW5kT3B0aW9uc0F0V29yZFN0YXJ0cyA/IEF0
V29yZFN0YXJ0cyA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXZWJGaW5kT3B0aW9uc1RyZWF0TWVk
aWFsQ2FwaXRhbEFzV29yZFN0YXJ0ID8gVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQgOiAw
KQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNCYWNrd2FyZHMgPyBCYWNrd2FyZHMg
OiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNXcmFwQXJvdW5kID8gV3JhcEFy
b3VuZCA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXZWJGaW5kT3B0aW9uc1N0YXJ0SW5TZWxlY3Rp
b24gPyBTdGFydEluU2VsZWN0aW9uIDogMCkpOworfQorCiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0aygpCiB7CiB9CkBAIC00NzUsNyArNDg1LDcgQEAg
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNsZWFyT3BlbmVyKFdlYktpdFdlYkZyYW1l
KiBmcmFtZSkKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpbmRTdHJpbmcoV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIHRhcmdldFN0cmluZywgV2ViS2l0Rmlu
ZE9wdGlvbnMgZmluZE9wdGlvbnMpCiB7Ci0gICAgcmV0dXJuIGNvcmUod2ViVmlldyktPmZpbmRT
dHJpbmcoU3RyaW5nOjpmcm9tVVRGOCh0YXJnZXRTdHJpbmcpLCBmaW5kT3B0aW9ucyk7CisgICAg
cmV0dXJuIGNvcmUod2ViVmlldyktPmZpbmRTdHJpbmcoU3RyaW5nOjpmcm9tVVRGOCh0YXJnZXRT
dHJpbmcpLCBjb3JlKGZpbmRPcHRpb25zKSk7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzZXRWYWx1ZUZvclVzZXIoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYg
bm9kZU9iamVjdCwgSlNTdHJpbmdSZWYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCmluZGV4
IDg0YjEyNjA2MGRiOTJlYWY4YTA1OTNlZDJiZTA4OTE1YWU4YjU1MTcuLmE3MzM3ZmYzMjA3ODAy
MzZjNDc3NGI3MTMwMDRjZTg3YWU5MThiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCkBAIC0z
NSw3ICszNSw3IEBAIGVudW0gewogICAgIFdlYkZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFs
QXNXb3JkU3RhcnQgPSAxIDw8IDIsCiAgICAgV2ViRmluZE9wdGlvbnNCYWNrd2FyZHMgPSAxIDw8
IDMsCiAgICAgV2ViRmluZE9wdGlvbnNXcmFwQXJvdW5kID0gMSA8PCA0LAotICAgIFdlYkZpbmRP
cHRpb25zU3RhcnRJblNlbGVjdGlvbiA9IDEgPDwgNQorICAgIFdlYkZpbmRPcHRpb25zU3RhcnRJ
blNlbGVjdGlvbiA9IDEgPDwgNSwKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCAyMTk1
YTg4ODNjODQ3NjJkZDYwYTQxOGRhMmI0NmIwMTQ3ZTE0YjcxLi4xZDY1NzI0ZDRkNjc0N2ZkODhk
NDZmMTA4MjU1YTgxNDZkYTA2MGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC0xMDUsNiArMTA1
LDY1IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAor
aW5saW5lIGludCBraXQoaW50IGVycm9yQ29kZSkKK3sKKyAgICBpbnQgd2tFcnJvckNvZGUoMCk7
CisKKyAgICBzd2l0Y2ggKGVycm9yQ29kZSkgeworICAgIGNhc2UgTmV0d29ya0Vycm9yRmFpbGVk
OgorICAgICAgICB3a0Vycm9yQ29kZSA9IFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JUcmFuc3BvcnQ6CisgICAgICAgIHdr
RXJyb3JDb2RlID0gV0VCS0lUX05FVFdPUktfRVJST1JfVFJBTlNQT1JUOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbDoKKyAgICAgICAgd2tFcnJv
ckNvZGUgPSBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIE5ldHdvcmtFcnJvckNhbmNlbGxlZDoKKyAgICAgICAgd2tFcnJvckNv
ZGUgPSBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdDoKKyAgICAgICAgd2tFcnJvckNvZGUg
PSBXRUJLSVRfTkVUV09SS19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNUOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFBvbGljeUVycm9yRmFpbGVkOgorICAgICAgICB3a0Vycm9yQ29kZSA9IFdF
QktJVF9QT0xJQ1lfRVJST1JfRkFJTEVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBvbGlj
eUVycm9yQ2Fubm90U2hvd01pbWVUeXBlOgorICAgICAgICB3a0Vycm9yQ29kZSA9IFdFQktJVF9Q
T0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDoKKyAgICAgICAgd2tFcnJvckNvZGUgPSBXRUJL
SVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U6CisgICAgICAg
IHdrRXJyb3JDb2RlID0gV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVE
X0JZX1BPTElDWV9DSEFOR0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUG9saWN5RXJyb3JD
YW5ub3RVc2VSZXN0cmljdGVkUG9ydDoKKyAgICAgICAgd2tFcnJvckNvZGUgPSBXRUJLSVRfUE9M
SUNZX0VSUk9SX0NBTk5PVF9VU0VfUkVTVFJJQ1RFRF9QT1JUOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFBsdWdpbkVycm9yRmFpbGVkOgorICAgICAgICB3a0Vycm9yQ29kZSA9IFdFQktJVF9Q
TFVHSU5fRVJST1JfRkFJTEVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBsdWdpbkVycm9y
Q2Fubm90RmluZFBsdWdpbjoKKyAgICAgICAgd2tFcnJvckNvZGUgPSBXRUJLSVRfUExVR0lOX0VS
Uk9SX0NBTk5PVF9GSU5EX1BMVUdJTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbHVnaW5F
cnJvckNhbm5vdExvYWRQbHVnaW46CisgICAgICAgIHdrRXJyb3JDb2RlID0gV0VCS0lUX1BMVUdJ
Tl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGx1
Z2luRXJyb3JKYXZhVW5hdmFpbGFibGU6CisgICAgICAgIHdrRXJyb3JDb2RlID0gV0VCS0lUX1BM
VUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBs
dWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZDoKKyAgICAgICAgd2tFcnJvckNvZGUgPSBXRUJL
SVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJT05fQ0FOQ0VMTEVEOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQ6CisgICAgICAgIHdrRXJyb3JDb2RlID0g
V0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOworICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0
dXJuIHdrRXJyb3JDb2RlOworfQorCiBGcmFtZUxvYWRlckNsaWVudDo6RnJhbWVMb2FkZXJDbGll
bnQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1f
cG9saWN5RGVjaXNpb24oMCkKQEAgLTk5Myw3ICsxMDUyLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9h
ZGVyLAogICAgICAgICByZXR1cm47CiAKICAgICBHVW5pcXVlUHRyPEdFcnJvcj4gd2ViRXJyb3Io
Z19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRvbWFpbigpLnV0
ZjgoKS5kYXRhKCkpLAotICAgICAgICBlcnJvci5lcnJvckNvZGUoKSwgZXJyb3IubG9jYWxpemVk
RGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGtpdChlcnJvci5lcnJvckNv
ZGUoKSksIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogCiAg
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlJlc291cmNlLCAibG9hZC1mYWlsZWQiLCB3ZWJF
cnJvci5nZXQoKSk7CiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJj
ZS1sb2FkLWZhaWxlZCIsIHdlYlJlc291cmNlLCB3ZWJFcnJvci5nZXQoKSk7CkBAIC0xMDIxLDkg
KzEwODAsMTAgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICBub3RpZnlTdGF0dXMobV9mcmFtZSwgV0VC
S0lUX0xPQURfRkFJTEVEKTsKIAogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3
RnJvbUZyYW1lKG1fZnJhbWUpOworCiAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVycm9yKGdf
ZXJyb3JfbmV3X2xpdGVyYWwoCiAgICAgICAgIGdfcXVhcmtfZnJvbV9zdHJpbmcoZXJyb3IuZG9t
YWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIGVycm9yLmVycm9yQ29kZSgpLAorICAgICAg
ICBraXQoZXJyb3IuZXJyb3JDb2RlKCkpLAogICAgICAgICBlcnJvci5sb2NhbGl6ZWREZXNjcmlw
dGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICBnYm9vbGVhbiBpc0hhbmRsZWQgPSBmYWxzZTsK
ICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgImxvYWQtZXJyb3IiLCBtX2ZyYW1l
LCBlcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCksICZpc0hh
bmRsZWQpOwpAQCAtMTA5NSw3ICsxMTU1LDcgQEAgUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlckNs
aWVudDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAog
Ym9vbCBGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCiB7Ci0gICAgcmV0dXJuICEoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSB8fCBlcnJv
ci5lcnJvckNvZGUoKSA9PSBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBU
RURfQllfUE9MSUNZX0NIQU5HRSB8fCBlcnJvci5lcnJvckNvZGUoKSA9PSBXRUJLSVRfUExVR0lO
X0VSUk9SX1dJTExfSEFORExFX0xPQUQpOworICAgIHJldHVybiAhKGVycm9yLmlzQ2FuY2VsbGF0
aW9uKCkgfHwgZXJyb3IuZXJyb3JDb2RlKCkgPT0gUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1
cHRlZEJ5UG9saWN5Q2hhbmdlIHx8IGVycm9yLmVycm9yQ29kZSgpID09IFBsdWdpbkVycm9yV2ls
bEhhbmRsZUxvYWQpOwogfQogCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2Uo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5h
dmlnYXRpb25hY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5h
dmlnYXRpb25hY3Rpb24uY3BwCmluZGV4IGM3OGU3NTRhZWVjYmU1YTJmY2QzY2QyMmY4YzFkZWQ0
NDgzZDk0MTEuLmM4YmExYzMxZDA4ZWZiOTc4YzMxZGRhNTVjMmE0YjA4OTg0M2Q4MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFj
dGlvbi5jcHAKQEAgLTM2MiwxNCArMzYyLDYzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2
aWdhdGlvbl9hY3Rpb25fc2V0X3RhcmdldF9mcmFtZShXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uIGtpdChXZWJD
b3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQoraW5saW5lIFdlYktpdFdlYk5hdmlnYXRpb25SZWFz
b24ga2l0KFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJuIChXZWJL
aXRXZWJOYXZpZ2F0aW9uUmVhc29uKXR5cGU7CisgICAgV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNv
biB3a1R5cGUoV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQpOworCisg
ICAgc3dpdGNoKHR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlTGlua0Ns
aWNrZWQ6CisgICAgICAgIHdrVHlwZSA9IFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fTElO
S19DTElDS0VEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25U
eXBlRm9ybVN1Ym1pdHRlZDoKKyAgICAgICAgd2tUeXBlID0gV0VCS0lUX1dFQl9OQVZJR0FUSU9O
X1JFQVNPTl9GT1JNX1NVQk1JVFRFRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3Jl
OjpOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJkOgorICAgICAgICB3a1R5cGUgPSBXRUJLSVRfV0VC
X05BVklHQVRJT05fUkVBU09OX0JBQ0tfRk9SV0FSRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgd2tUeXBlID0gV0VCS0lU
X1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9SRUxPQUQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V2ViQ29yZTo6TmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQ6CisgICAgICAgIHdrVHlwZSA9
IFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9SRVNVQk1JVFRFRDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZU90aGVyOgorICAgICAgICB3
a1R5cGUgPSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX09USEVSOworICAgICAgICBicmVh
azsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHdrVHlwZTsKIH0KIAotV2ViQ29yZTo6TmF2aWdhdGlvblR5cGUgY29yZShXZWJL
aXRXZWJOYXZpZ2F0aW9uUmVhc29uIHR5cGUpCitpbmxpbmUgV2ViQ29yZTo6TmF2aWdhdGlvblR5
cGUgY29yZShXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uIHR5cGUpCiB7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlPih0eXBlKTsKKyAgICBXZWJDb3JlOjpO
YXZpZ2F0aW9uVHlwZSB3Y1R5cGUoV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVMaW5rQ2xpY2tlZCk7
CisKKyAgICBzd2l0Y2godHlwZSkgeworICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JF
QVNPTl9MSU5LX0NMSUNLRUQ6CisgICAgICAgIHdjVHlwZSA9IFdlYkNvcmU6Ok5hdmlnYXRpb25U
eXBlTGlua0NsaWNrZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJ
R0FUSU9OX1JFQVNPTl9GT1JNX1NVQk1JVFRFRDoKKyAgICAgICAgd2NUeXBlID0gV2ViQ29yZTo6
TmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdF
QktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fQkFDS19GT1JXQVJEOgorICAgICAgICB3Y1R5cGUg
PSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJkOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fUkVMT0FEOgorICAgICAgICB3Y1R5
cGUgPSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZVJlbG9hZDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1fUkVTVUJNSVRURUQ6CisgICAg
ICAgIHdjVHlwZSA9IFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fT1RIRVI6
CisgICAgICAgIHdjVHlwZSA9IFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlT3RoZXI7CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IH0KKworICAgIHJldHVybiB3Y1R5cGU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCmluZGV4IDc0MmIyM2Q0MGFkNTQ3ODMzMmQ0MWM4
YzJiMjdhM2ZlNmUxNGE5MGQuLmQ5MDdkZWMyZjUyZjU2NDJlMTQxMzE0NTkzYzQxMjc2ZWQ5YmZi
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNw
cApAQCAtMTY1OCw5ICsxNjU4LDI1IEBAIGNoYXIqIHdlYmtpdFdlYlNldHRpbmdzVXNlckFnZW50
Rm9yVVJJKFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgY29uc3QgY2hhCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1XZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlIGNvcmUoV2ViS2l0
RWRpdGluZ0JlaGF2aW9yIHR5cGUpCitpbmxpbmUgV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yVHlw
ZSBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciB0eXBlKQogewotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlPih0eXBlKTsKKyAgICBXZWJDb3JlOjpF
ZGl0aW5nQmVoYXZpb3JUeXBlIHdjVHlwZShFZGl0aW5nTWFjQmVoYXZpb3IpOworCisgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9NQUM6CisgICAg
ICAgIHdjVHlwZSA9IEVkaXRpbmdNYWNCZWhhdmlvcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9XSU5ET1dTOgorICAgICAgICB3Y1R5cGUgPSBFZGl0
aW5nV2luZG93c0JlaGF2aW9yOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdFQktJVF9FRElU
SU5HX0JFSEFWSU9SX1VOSVg6CisgICAgICAgIHdjVHlwZSA9IEVkaXRpbmdVbml4QmVoYXZpb3I7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KKworICAgIHJldHVybiB3Y1R5cGU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCAwNzk3MTMxNmI3MGEyMmZmYzVmNzY5
ODM1OGU5NGM4NzczNTlkM2FkLi4wNGQ2NzM4Y2RkZTk5ODVhNmZkOGU0NWNjMDk1M2I4NDE3ZjEz
OTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0x
MTksNiArMTE5LDcgQEAKICNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgogI2luY2x1
ZGUgPGdkay9nZGtrZXlzeW1zLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNs
dWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtMTY3LDYgKzE2OCwxMCBAQAogdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCituYW1lc3BhY2UgV2Vi
S2l0IHsKK0d0a1RhcmdldExpc3QqIGtpdChHdGtUYXJnZXRMaXN0KiBjb3JlR3RrVGFyZ2V0TGlz
dCk7Cit9CisKIGVudW0gewogICAgIC8qIG5vcm1hbCBzaWduYWxzICovCiAgICAgTkFWSUdBVElP
Tl9SRVFVRVNURUQsCkBAIC0xMzgyLDYgKzEzODcsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfZGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCiAgICAgcHJpdi0+bWFpblJlc291cmNlLmNs
ZWFyKCk7CiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzLmNsZWFyKCk7CiAKKyAgICBndGtfdGFyZ2V0
X2xpc3RfdW5yZWYocHJpdi0+dGFyZ2V0TGlzdCk7CisKICAgICBHX09CSkVDVF9DTEFTUyh3ZWJr
aXRfd2ViX3ZpZXdfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShvYmplY3QpOwogCiAgICAgLy8gV2Ug
bmVlZCB0byBydW4gdGhlIHBhcmVudCdzIGRpc3Bvc2UgYmVmb3JlIGRlc3Ryb3lpbmcgdGhlIFBh
Z2UKQEAgLTM4NzQsMTAgKzM4ODEsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2lu
aXQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIAogICAgIHByaXYtPnN1YlJlc291cmNlcyA9IGFk
b3B0R1JlZihnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWwsIGdf
ZnJlZSwgZ19vYmplY3RfdW5yZWYpKTsKIAorICAgIHByaXYtPnRhcmdldExpc3QgPSBraXQoUGFz
dGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdCgpKTsK
KyAgICBndGtfdGFyZ2V0X2xpc3RfcmVmKHByaXYtPnRhcmdldExpc3QpOworCiAjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKICAgICBwcml2LT5kcmFnQW5kRHJvcEhlbHBlci5zZXRXaWRnZXQoR1RL
X1dJREdFVCh3ZWJWaWV3KSk7CiAgICAgZ3RrX2RyYWdfZGVzdF9zZXQoR1RLX1dJREdFVCh3ZWJW
aWV3KSwgc3RhdGljX2Nhc3Q8R3RrRGVzdERlZmF1bHRzPigwKSwgMCwgMCwgc3RhdGljX2Nhc3Q8
R2RrRHJhZ0FjdGlvbj4oR0RLX0FDVElPTl9DT1BZIHwgR0RLX0FDVElPTl9DT1BZIHwgR0RLX0FD
VElPTl9NT1ZFIHwgR0RLX0FDVElPTl9MSU5LIHwgR0RLX0FDVElPTl9QUklWQVRFKSk7Ci0gICAg
Z3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0X2xpc3QoR1RLX1dJREdFVCh3ZWJWaWV3KSwgUGFzdGVi
b2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdCgpKTsKKyAg
ICBndGtfZHJhZ19kZXN0X3NldF90YXJnZXRfbGlzdChHVEtfV0lER0VUKHdlYlZpZXcpLCBwcml2
LT50YXJnZXRMaXN0KTsKICNlbmRpZgogCiAgICAgcHJpdi0+c2VsZlNjcm9sbGluZyA9IGZhbHNl
OwpAQCAtNDY5Miw3ICs0NzAyLDEwIEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJs
ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBmbGFnKQogICoqLwogR3RrVGFyZ2V0
TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCiB7Ci0gICAgcmV0dXJuIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJv
YXJkSGVscGVyKCktPnRhcmdldExpc3QoKTsKKyAgICBndGtfdGFyZ2V0X2xpc3RfdW5yZWYod2Vi
Vmlldy0+cHJpdi0+dGFyZ2V0TGlzdCk7CisgICAgd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdCA9
IGtpdChQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRM
aXN0KCkpOworICAgIGd0a190YXJnZXRfbGlzdF9yZWYod2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlz
dCk7CisgICAgcmV0dXJuIHdlYlZpZXctPnByaXYtPnRhcmdldExpc3Q7CiB9CiAKIC8qKgpAQCAt
NDcwOSw3ICs0NzIyLDEwIEBAIEd0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRfY29w
eV90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICoqLwogR3RrVGFyZ2V0TGlz
dCogd2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogewotICAgIHJldHVybiBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2Fy
ZEhlbHBlcigpLT50YXJnZXRMaXN0KCk7CisgICAgZ3RrX3RhcmdldF9saXN0X3VucmVmKHdlYlZp
ZXctPnByaXYtPnRhcmdldExpc3QpOworICAgIHdlYlZpZXctPnByaXYtPnRhcmdldExpc3QgPSBr
aXQoUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlz
dCgpKTsKKyAgICBndGtfdGFyZ2V0X2xpc3RfcmVmKHdlYlZpZXctPnByaXYtPnRhcmdldExpc3Qp
OworICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT50YXJnZXRMaXN0OwogfQogCiAvKioKQEAgLTU1
NzIsNCArNTU4OCw0NyBAQCBXZWJLaXRXZWJWaWV3KiBraXQoV2ViQ29yZTo6UGFnZSogY29yZVBh
Z2UpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdDo6Q2hyb21lQ2xpZW50Jj4oY2hyb21l
Q2xpZW50KS53ZWJWaWV3KCk7CiB9CiAKK2lubGluZSBXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyBr
aXQoUGFzdGVib2FyZEhlbHBlcjo6UGFzdGVib2FyZFRhcmdldFR5cGUgZmxhZ3MpCit7CisgICAg
V2ViS2l0V2ViVmlld1RhcmdldEluZm8gd2tUeXBlKFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5G
T19IVE1MKTsKKyAgICBzd2l0Y2ggKGZsYWdzKSB7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVy
OjpUYXJnZXRUeXBlTWFya3VwOgorICAgICAgICB3a1R5cGUgPSBXRUJLSVRfV0VCX1ZJRVdfVEFS
R0VUX0lORk9fSFRNTDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVy
OjpUYXJnZXRUeXBlVGV4dDoKKyAgICAgICAgd2tUeXBlID0gV0VCS0lUX1dFQl9WSUVXX1RBUkdF
VF9JTkZPX1RFWFQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6
VGFyZ2V0VHlwZUltYWdlOgorICAgICAgICB3a1R5cGUgPSBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VU
X0lORk9fSU1BR0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6
VGFyZ2V0VHlwZVVSSUxpc3Q6CisgICAgICAgIHdrVHlwZSA9IFdFQktJVF9XRUJfVklFV19UQVJH
RVRfSU5GT19VUklfTElTVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVs
cGVyOjpUYXJnZXRUeXBlTmV0c2NhcGVVUkw6CisgICAgICAgIHdrVHlwZSA9IFdFQktJVF9XRUJf
VklFV19UQVJHRVRfSU5GT19ORVRTQ0FQRV9VUkw7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4gd2tU
eXBlOworfQorCitHdGtUYXJnZXRMaXN0KiBraXQoR3RrVGFyZ2V0TGlzdCogY29yZUd0a1Rhcmdl
dExpc3QpCit7CisgICAgR3RrVGFyZ2V0TGlzdCoga2l0R3RrVGFyZ2V0TGlzdCgwKTsKKworICAg
IGlmIChjb3JlR3RrVGFyZ2V0TGlzdCkgeworICAgICAgICBnaW50IHRhYmxlU2l6ZSgwKTsKKyAg
ICAgICAgR3RrVGFyZ2V0RW50cnkqIHRhYmxlKGd0a190YXJnZXRfdGFibGVfbmV3X2Zyb21fbGlz
dChjb3JlR3RrVGFyZ2V0TGlzdCwgJnRhYmxlU2l6ZSkpOworCisgICAgICAgIGZvciAoZ2ludCBp
ID0gMDsgaSA8IHRhYmxlU2l6ZTsgaSsrKQorICAgICAgICAgICAgdGFibGVbaV0uZmxhZ3MgPSBr
aXQoc3RhdGljX2Nhc3Q8UGFzdGVib2FyZEhlbHBlcjo6UGFzdGVib2FyZFRhcmdldFR5cGU+KHRh
YmxlW2ldLmZsYWdzKSk7CisKKyAgICAgICAga2l0R3RrVGFyZ2V0TGlzdCA9IGd0a190YXJnZXRf
bGlzdF9uZXcodGFibGUsIHRhYmxlU2l6ZSk7CisgICAgICAgIGd0a190YXJnZXRfdGFibGVfZnJl
ZSh0YWJsZSwgdGFibGVTaXplKTsKKyAgICB9CisKKyAgICByZXR1cm4ga2l0R3RrVGFyZ2V0TGlz
dDsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXdwcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3By
aXZhdGUuaAppbmRleCAzZjY5MjdlMTYyZGIxZDIwOTYyNTBmNTZlMzgzMzNjYWUwZGY3NDNiLi44
MzU3MzQyMWU5OGY5YzE5MzVhNTgxZTJkMWJkZTU3ODBkMDAxNDAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaApAQCAtMTAwLDYgKzEwMCw3
IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld1ByaXZhdGUgewogICAgIFdlYkNvcmU6Okd0a0NsaWNr
Q291bnRlciBjbGlja0NvdW50ZXI7CiAgICAgV2ViQ29yZTo6R3RrRHJhZ0FuZERyb3BIZWxwZXIg
ZHJhZ0FuZERyb3BIZWxwZXI7CiAgICAgYm9vbCBzZWxmU2Nyb2xsaW5nOworICAgIEd0a1Rhcmdl
dExpc3QqIHRhcmdldExpc3Q7CiAKICAgICBPd25QdHI8V2ViS2l0OjpBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dD4gYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9u
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRo
ZW50aWNhdGlvblJlcXVlc3QuY3BwCmluZGV4IDZmMGMzNzA3ZTM3OGU0MmE5M2IyZGZiOTNhZDBm
MzBhZTViN2IyZGEuLjRjNGUwYTYyNzhkNzkzMmQyNzU0OTE5NGMzMGVhYmJlYzMzNWFiNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRp
Y2F0aW9uUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcApAQCAtNjcsMTggKzY3LDQ2IEBAIHN0cnVj
dCBfV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0UHJpdmF0ZSB7CiAKIHN0YXRpYyBndWludCBz
aWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0RFRkFVTFQsIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfSFRUUF9CQVNJQywgUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfRElHRVNULCBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3QpOwotQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUTUxfRk9STSwgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybSk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfTlRMTSwgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ORUdPVElBVEUsIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlKTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9DTElFTlRfQ0VSVElGSUNB
VEVfUkVRVUVTVEVELCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENl
cnRpZmljYXRlUmVxdWVzdGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9TRVJWRVJfVFJVU1RfRVZBTFVBVElPTl9SRVFVRVNURUQs
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9u
UmVxdWVzdGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJ
Q0FUSU9OX1NDSEVNRV9VTktOT1dOLCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVVua25vd24pOwotCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0QXV0aGVudGljYXRpb25SZXF1
ZXN0LCB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdCwgR19UWVBFX09CSkVDVCkKIAoraW5s
aW5lIHN0YXRpYyBXZWJLaXRBdXRoZW50aWNhdGlvblNjaGVtZSB3ZWJDb3JlUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVUb1dlYktpdEF1dGhlbnRpY2F0aW9uU2NoZW1lKFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIGNvcmVTY2hlbWUpCit7Cisg
ICAgV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUgd2tTY2hlbWUoV0VCS0lUX0FVVEhFTlRJQ0FU
SU9OX1NDSEVNRV9ERUZBVUxUKTsKKworICAgIHN3aXRjaCAoY29yZVNjaGVtZSkgeworICAgIGNh
c2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0Ogor
ICAgICAgICB3a1NjaGVtZSA9IFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfREVGQVVMVDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICAgICAgd2tTY2hlbWUgPSBXRUJLSVRfQVVUSEVO
VElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgorICAg
ICAgICB3a1NjaGVtZSA9IFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfSFRUUF9ESUdFU1Q7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVIVE1MRm9ybToKKyAgICAgICAgd2tTY2hlbWUgPSBXRUJLSVRfQVVUSEVO
VElDQVRJT05fU0NIRU1FX0hUTUxfRk9STTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE06CisgICAgICAgIHdr
U2NoZW1lID0gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9OVExNOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
TmVnb3RpYXRlOgorICAgICAgICB3a1NjaGVtZSA9IFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hF
TUVfTkVHT1RJQVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6Cisg
ICAgICAgIHdrU2NoZW1lID0gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9DTElFTlRfQ0VS
VElGSUNBVEVfUkVRVUVTVEVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVx
dWVzdGVkOgorICAgICAgICB3a1NjaGVtZSA9IFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVf
U0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVEOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjoK
KyAgICAgICAgd2tTY2hlbWUgPSBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX1VOS05PV047
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KKyAgICByZXR1cm4gd2tTY2hlbWU7Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtp
dEF1dGhlbnRpY2F0aW9uUmVxdWVzdERpc3Bvc2UoR09iamVjdCogb2JqZWN0KQogewogICAgIFdl
YktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9BVVRIRU5USUNBVElP
Tl9SRVFVRVNUKG9iamVjdCk7CkBAIC0yNDQsNyArMjcyLDcgQEAgV2ViS2l0QXV0aGVudGljYXRp
b25TY2hlbWUgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3NjaGVtZShXZWJLaXRB
dXRoZW4KIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfQVVUSEVOVElDQVRJ
T05fUkVRVUVTVChyZXF1ZXN0KSwgV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9VTktOT1dO
KTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJLaXRBdXRoZW50aWNhdGlvblNjaGVtZT4o
cmVxdWVzdC0+cHJpdi0+YXV0aGVudGljYXRpb25DaGFsbGVuZ2UtPnByb3RlY3Rpb25TcGFjZSgp
LT5hdXRoZW50aWNhdGlvblNjaGVtZSgpKTsKKyAgICByZXR1cm4gd2ViQ29yZVByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lVG9XZWJLaXRBdXRoZW50aWNhdGlvblNjaGVtZShyZXF1
ZXN0LT5wcml2LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+cHJvdGVjdGlvblNwYWNlKCktPmF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvb2tpZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKaW5kZXggMmMx
ZWY0NTY4YWM3ODYxY2U4ZjJkYzUxMWYzODE5MTkzNmY3ZTJjMS4uMjBjZDI1MGMyNzQ3ODJkNGMw
OTExM2I5YmI1NDZmY2Y4YTZkYmM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5jcHAKQEAgLTY1LDEyICs2NSw2
MiBAQCBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKIFdFQktJ
VF9ERUZJTkVfVFlQRShXZWJLaXRDb29raWVNYW5hZ2VyLCB3ZWJraXRfY29va2llX21hbmFnZXIs
IEdfVFlQRV9PQkpFQ1QpCiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0NP
T0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfVEVYVCwgU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
VGV4dCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9DT09LSUVfUEVSU0lT
VEVOVF9TVE9SQUdFX1NRTElURSwgU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlU1FMaXRlKTsK
K2lubGluZSBzdGF0aWMgU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZSB3ZWJLaXRDb29r
aWVQZXJzaXN0ZW50U3RvcmFnZVRvU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZShXZWJL
aXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZSBraXRTdG9yYWdlKQoreworICAgIFNvdXBDb29raWVQ
ZXJzaXN0ZW50U3RvcmFnZVR5cGUgc291cFN0b3JhZ2UoU291cENvb2tpZVBlcnNpc3RlbnRTdG9y
YWdlVGV4dCk7CisKKyAgICBzd2l0Y2ggKGtpdFN0b3JhZ2UpIHsKKyAgICBjYXNlIFdFQktJVF9D
T09LSUVfUEVSU0lTVEVOVF9TVE9SQUdFX1RFWFQ6CisgICAgICAgIHNvdXBTdG9yYWdlID0gU291
cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVGV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
RUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9TUUxJVEU6CisgICAgICAgIHNvdXBTdG9y
YWdlID0gU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlU1FMaXRlOworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAg
cmV0dXJuIHNvdXBTdG9yYWdlOworfQorCitpbmxpbmUgc3RhdGljIFdlYktpdENvb2tpZUFjY2Vw
dFBvbGljeSBodHRwQ29va2llQWNjZXB0UG9saWN5VG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3ko
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBodHRwUG9saWN5KQoreworICAgIFdlYktpdENvb2tpZUFj
Y2VwdFBvbGljeSBraXRQb2xpY3koV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX0FMV0FZUyk7
CisKKyAgICBzd2l0Y2ggKGh0dHBQb2xpY3kpIHsKKyAgICBjYXNlIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3lBbHdheXM6CisgICAgICAgIGtpdFBvbGljeSA9IFdFQktJVF9DT09LSUVfUE9MSUNZX0FD
Q0VQVF9BTFdBWVM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBv
bGljeU5ldmVyOgorICAgICAgICBraXRQb2xpY3kgPSBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NF
UFRfTkVWRVI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGlj
eU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOgorICAgICAgICBraXRQb2xpY3kgPSBXRUJLSVRf
Q09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRfUEFSVFk7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1
cm4ga2l0UG9saWN5OworfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9D
T09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVMsIEhUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXMp
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NF
UFRfTkVWRVIsIEhUVFBDb29raWVBY2NlcHRQb2xpY3lOZXZlcik7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9OT19USElSRF9QQVJUWSwg
SFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluKTsKK2lubGlu
ZSBzdGF0aWMgSFRUUENvb2tpZUFjY2VwdFBvbGljeSB3ZWJLaXRDb29raWVBY2NlcHRQb2xpY3lU
b0hUVFBDb29raWVBY2NlcHRQb2xpY3koV2ViS2l0Q29va2llQWNjZXB0UG9saWN5IGtpdFBvbGlj
eSkKK3sKKyAgICBIVFRQQ29va2llQWNjZXB0UG9saWN5IGh0dHBQb2xpY3koSFRUUENvb2tpZUFj
Y2VwdFBvbGljeUFsd2F5cyk7CisKKyAgICBzd2l0Y2ggKGtpdFBvbGljeSkgeworICAgIGNhc2Ug
V0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX0FMV0FZUzoKKyAgICAgICAgaHR0cFBvbGljeSA9
IEhUVFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
V0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSOgorICAgICAgICBodHRwUG9saWN5ID0g
SFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdF
QktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9OT19USElSRF9QQVJUWToKKyAgICAgICAgaHR0cFBv
bGljeSA9IEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbjsK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgfQorICAgIHJldHVybiBodHRwUG9saWN5OworfQogCiBzdGF0aWMgdm9pZCB3ZWJr
aXRfY29va2llX21hbmFnZXJfY2xhc3NfaW5pdChXZWJLaXRDb29raWVNYW5hZ2VyQ2xhc3MqIGZp
bmRDbGFzcykKIHsKQEAgLTEzNCw3ICsxODQsNyBAQCB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdl
cl9zZXRfcGVyc2lzdGVudF9zdG9yYWdlKFdlYktpdENvb2tpZU1hbmFnZXIqIG1hbmFnZXIsCiAg
ICAgZ19yZXR1cm5faWZfZmFpbChmaWxlbmFtZSk7CiAKICAgICBtYW5hZ2VyLT5wcml2LT53ZWJD
b29raWVNYW5hZ2VyLT5zdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwotICAgIG1hbmFnZXIt
PnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFN0cmlu
Zzo6ZnJvbVVURjgoZmlsZW5hbWUpLCBzdG9yYWdlKTsKKyAgICBtYW5hZ2VyLT5wcml2LT53ZWJD
b29raWVNYW5hZ2VyLT5zZXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZShTdHJpbmc6OmZyb21VVEY4
KGZpbGVuYW1lKSwgd2ViS2l0Q29va2llUGVyc2lzdGVudFN0b3JhZ2VUb1NvdXBDb29raWVQZXJz
aXN0ZW50U3RvcmFnZVR5cGUoc3RvcmFnZSkpOwogICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tp
ZU1hbmFnZXItPnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwogfQogCkBAIC0xNDksMTMg
KzE5OSwxMyBAQCB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNjZXB0X3BvbGljeShX
ZWJLaXRDb29raWVNYW5hZ2VyKiBtYW5hZ2VyLCBXZWJLaQogewogICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0lTX0NPT0tJRV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAgIG1hbmFnZXItPnBy
aXYtPndlYkNvb2tpZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsK
KyAgICBtYW5hZ2VyLT5wcml2LT53ZWJDb29raWVNYW5hZ2VyLT5zZXRIVFRQQ29va2llQWNjZXB0
UG9saWN5KHdlYktpdENvb2tpZUFjY2VwdFBvbGljeVRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShw
b2xpY3kpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0Q29va2llTWFuYWdlckdldEFjY2VwdFBv
bGljeUNhbGxiYWNrKFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIFdLRXJyb3JSZWYs
IHZvaWQqIGNvbnRleHQpCiB7CiAgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1JlZihH
X1RBU0soY29udGV4dCkpOwotICAgIGdfdGFza19yZXR1cm5faW50KHRhc2suZ2V0KCksIHBvbGlj
eSk7CisgICAgZ190YXNrX3JldHVybl9pbnQodGFzay5nZXQoKSwgaHR0cENvb2tpZUFjY2VwdFBv
bGljeVRvV2ViS2l0Q29va2llQWNjZXB0UG9saWN5KHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShw
b2xpY3kpKSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0Q3JlZGVudGlhbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcAppbmRleCA1NzU1ZmQ1YzdjODA2NWY1YjFmNmY1
ZTEyODk3YjMyNzdiMDNkNGVlLi4zOTJjMzJkNjRkZTJhMzk4ZWRjNjU2YTYzODAwODhhMTRmYTcx
NjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
cmVkZW50aWFsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRDcmVkZW50aWFsLmNwcApAQCAtMzcsMTIgKzM3LDQ4IEBAIHN0cnVjdCBfV2ViS2l0Q3JlZGVu
dGlhbCB7CiAgICAgQ1N0cmluZyBwYXNzd29yZDsKIH07CiAKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfTk9ORSwgV2ViQ29yZTo6Q3Jl
ZGVudGlhbFBlcnNpc3RlbmNlTm9uZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX0ZPUl9TRVNTSU9OLCBXZWJDb3JlOjpDcmVkZW50
aWFsUGVyc2lzdGVuY2VGb3JTZXNzaW9uKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5ULCBXZWJDb3JlOjpDcmVkZW50
aWFsUGVyc2lzdGVuY2VQZXJtYW5lbnQpOwotCiBHX0RFRklORV9CT1hFRF9UWVBFKFdlYktpdENy
ZWRlbnRpYWwsIHdlYmtpdF9jcmVkZW50aWFsLCB3ZWJraXRfY3JlZGVudGlhbF9jb3B5LCB3ZWJr
aXRfY3JlZGVudGlhbF9mcmVlKQogCitpbmxpbmUgc3RhdGljIFdlYktpdENyZWRlbnRpYWxQZXJz
aXN0ZW5jZSB3ZWJDb3JlQ3JlZGVudGlhbFBlcnNpc3RlbmNlVG9XZWJLaXRDcmVkZW50aWFsUGVy
c2lzdGVuY2UoV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlIGNvcmVQZXJzaXN0ZW5jZSkK
K3sKKyAgICBXZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2Ugd2tQZXJzaXN0ZW5jZShXRUJLSVRf
Q1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FKTsKKworICAgIHN3aXRjaCAoY29yZVBlcnNpc3Rl
bmNlKSB7CisgICAgY2FzZSBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lOgorICAg
ICAgICB3a1BlcnNpc3RlbmNlID0gV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfTk9ORTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VG
b3JTZXNzaW9uOgorICAgICAgICB3a1BlcnNpc3RlbmNlID0gV0VCS0lUX0NSRURFTlRJQUxfUEVS
U0lTVEVOQ0VfRk9SX1NFU1NJT047CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6
Q3JlZGVudGlhbFBlcnNpc3RlbmNlUGVybWFuZW50OgorICAgICAgICB3a1BlcnNpc3RlbmNlID0g
V0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5UOworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAg
cmV0dXJuIHdrUGVyc2lzdGVuY2U7Cit9CisKK2lubGluZSBzdGF0aWMgV2ViQ29yZTo6Q3JlZGVu
dGlhbFBlcnNpc3RlbmNlIHdlYktpdENyZWRlbnRpYWxQZXJzaXN0ZW5jZVRvV2ViQ29yZUNyZWRl
bnRpYWxQZXJzaXN0ZW5jZShXZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2Uga2l0UGVyc2lzdGVu
Y2UpCit7CisgICAgV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlIHdjUGVyc2lzdGVuY2Uo
V2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZSk7CisKKyAgICBzd2l0Y2ggKGtpdFBl
cnNpc3RlbmNlKSB7CisgICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05F
OgorICAgICAgICB3Y1BlcnNpc3RlbmNlID0gV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNl
Tm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNU
RU5DRV9GT1JfU0VTU0lPTjoKKyAgICAgICAgd2NQZXJzaXN0ZW5jZSA9IFdlYkNvcmU6OkNyZWRl
bnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0VC
S0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5UOgorICAgICAgICB3Y1BlcnNpc3Rl
bmNlID0gV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlUGVybWFuZW50OworICAgICAgICBi
cmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9
CisgICAgcmV0dXJuIHdjUGVyc2lzdGVuY2U7Cit9CisKIFdlYktpdENyZWRlbnRpYWwqIHdlYmtp
dENyZWRlbnRpYWxDcmVhdGUoY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYgY29yZUNyZWRlbnRp
YWwpCiB7CiAgICAgV2ViS2l0Q3JlZGVudGlhbCogY3JlZGVudGlhbCA9IGdfc2xpY2VfbmV3KFdl
YktpdENyZWRlbnRpYWwpOwpAQCAtNzMsNyArMTA5LDcgQEAgV2ViS2l0Q3JlZGVudGlhbCogd2Vi
a2l0X2NyZWRlbnRpYWxfbmV3KGNvbnN0IGdjaGFyKiB1c2VybmFtZSwgY29uc3QgZ2NoYXIqIHBh
c3MKICAgICBnX3JldHVybl92YWxfaWZfZmFpbCh1c2VybmFtZSwgMCk7CiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwocGFzc3dvcmQsIDApOwogCi0gICAgcmV0dXJuIHdlYmtpdENyZWRlbnRpYWxD
cmVhdGUoV2ViQ29yZTo6Q3JlZGVudGlhbChTdHJpbmc6OmZyb21VVEY4KHVzZXJuYW1lKSwgU3Ry
aW5nOjpmcm9tVVRGOChwYXNzd29yZCksIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZT4ocGVyc2lzdGVuY2UpKSk7CisgICAgcmV0dXJuIHdlYmtpdENyZWRlbnRpYWxD
cmVhdGUoV2ViQ29yZTo6Q3JlZGVudGlhbChTdHJpbmc6OmZyb21VVEY4KHVzZXJuYW1lKSwgU3Ry
aW5nOjpmcm9tVVRGOChwYXNzd29yZCksIHdlYktpdENyZWRlbnRpYWxQZXJzaXN0ZW5jZVRvV2Vi
Q29yZUNyZWRlbnRpYWxQZXJzaXN0ZW5jZShwZXJzaXN0ZW5jZSkpKTsKIH0KIAogLyoqCkBAIC0x
NzgsNSArMjE0LDUgQEAgV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlIHdlYmtpdF9jcmVkZW50
aWFsX2dldF9wZXJzaXN0ZW5jZShXZWJLaXRDcmVkZW50aWFsKgogewogICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKGNyZWRlbnRpYWwsIFdFQktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX05PTkUp
OwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdENyZWRlbnRpYWxQZXJzaXN0ZW5jZT4o
Y3JlZGVudGlhbC0+Y3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgpKTsKKyAgICByZXR1cm4gd2ViQ29y
ZUNyZWRlbnRpYWxQZXJzaXN0ZW5jZVRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKGNyZWRl
bnRpYWwtPmNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKaW5kZXggZTk1ZTRjMDY1
MGIzOTNlOGM4YWFiYjY0M2NiMzcwZmVlNDQ5ZDU5My4uMTUwY2U1MDA5NmU0MmE3ZTIzY2ZjY2Ni
ZWRlYTQ3MTMzYTI5ODdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkRv
d25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXREb3dubG9hZFByaXZhdGUuaCIKICNpbmNs
dWRlICJXZWJLaXRNYXJzaGFsLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1
ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVzcG9u
c2VQcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KQEAgLTM0MCw3ICsz
NDEsNyBAQCB2b2lkIHdlYmtpdERvd25sb2FkTm90aWZ5UHJvZ3Jlc3MoV2ViS2l0RG93bmxvYWQq
IGRvd25sb2FkLCBndWludDY0IGJ5dGVzUmVjZWl2ZQogdm9pZCB3ZWJraXREb3dubG9hZEZhaWxl
ZChXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNl
RXJyb3IpCiB7CiAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVycm9yKGdfZXJyb3JfbmV3X2xp
dGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhyZXNvdXJjZUVycm9yLmRvbWFpbigpLnV0ZjgoKS5k
YXRhKCkpLAotICAgICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCByZXNvdXJjZUVycm9y
LmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICB3ZWJDb3Jl
RXJyb3JUb1dlYktpdEVycm9yKHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCkpLCByZXNvdXJjZUVy
cm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIGlmIChkb3du
bG9hZC0+cHJpdi0+dGltZXIpCiAgICAgICAgIGdfdGltZXJfc3RvcChkb3dubG9hZC0+cHJpdi0+
dGltZXIuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRFcnJvci5jcHAKaW5kZXggYzA2ZGM2MWE1OGNjNGFhMGE2YzE2ZGE2NTQ2NDA0YTYwZTAx
MjRmZS4uNzQxOWVlNzIxYTBmZTg2YWJjMzY0MzZkMjRlYzI1ZTQ2NDIzZThjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcApAQCAtNDAs
NTMgKzQwLDI2IEBAIEdRdWFyayB3ZWJraXRfbmV0d29ya19lcnJvcl9xdWFyaygpCiAgICAgcmV0
dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9yRG9tYWluTmV0d29y
ayk7CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJS
T1JfRkFJTEVELCBOZXR3b3JrRXJyb3JGYWlsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQsIE5ldHdvcmtFcnJvclRyYW5zcG9y
dCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX1VO
S05PV05fUFJPVE9DT0wsIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRCwgTmV0d29y
a0Vycm9yQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05F
VFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVCwgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RF
eGlzdCk7Ci0KIEdRdWFyayB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrKCkKIHsKICAgICByZXR1
cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5Qb2xpY3kp
OwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1Jf
RkFJTEVELCBQb2xpY3lFcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNh
bm5vdFNob3dNaW1lVHlwZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9Q
T0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xP
QURfSU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRl
cnJ1cHRlZEJ5UG9saWN5Q2hhbmdlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JD
YW5ub3RVc2VSZXN0cmljdGVkUG9ydCk7Ci0KIEdRdWFyayB3ZWJraXRfcGx1Z2luX2Vycm9yX3F1
YXJrKCkKIHsKICAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6
ZXJyb3JEb21haW5QbHVnaW4pOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9QTFVHSU5fRVJST1JfRkFJTEVELCBQbHVnaW5FcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lO
LCBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTiwgUGx1Z2luRXJyb3JD
YW5ub3RMb2FkUGx1Z2luKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BM
VUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFLCBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVD
VElPTl9DQU5DRUxMRUQsIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9B
RCwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCk7Ci0KIEdRdWFyayB3ZWJraXRfZG93bmxvYWRf
ZXJyb3JfcXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhX
ZWJDb3JlOjplcnJvckRvbWFpbkRvd25sb2FkKTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSywgRG93bmxvYWRFcnJvck5ldHdv
cmspOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1Jf
Q0FOQ0VMTEVEX0JZX1VTRVIsIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIpOwotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT04s
IERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbik7Ci0KIEdRdWFyayB3ZWJraXRfcHJpbnRfZXJyb3Jf
cXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3Jl
OjplcnJvckRvbWFpblByaW50KTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfUFJJTlRfRVJST1JfR0VORVJBTCwgUHJpbnRFcnJvckdlbmVyYWwpOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQs
IFByaW50RXJyb3JQcmludGVyTm90Rm91bmQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9QQUdFX1JBTkdFLCBQcmludEVycm9ySW52YWxp
ZFBhZ2VSYW5nZSk7Ci0KIEdRdWFyayB3ZWJraXRfamF2YXNjcmlwdF9lcnJvcl9xdWFyaygpCiB7
CiAgICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKCJXZWJLaXRKYXZhc2NyaXB0
RXJyb3IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZpbmRDb250cm9sbGVyLmNwcAppbmRleCA4NzU5MzA2ZTJiY2YxZjk2MWU1Nzg0MWNi
MTQ2YjYwZmMyNmQ1OWY2Li5jYTg1YTAxMGRlM2MzY2Y2ODYzNDVlZGE5YTJmZmI4NDQzZmQyNmU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5k
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RmluZENvbnRyb2xsZXIuY3BwCkBAIC04MiwxMSArODIsMjIgQEAgc3RhdGljIGd1aW50IHNp
Z25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0
RmluZENvbnRyb2xsZXIsIHdlYmtpdF9maW5kX2NvbnRyb2xsZXIsIEdfVFlQRV9PQkpFQ1QpCiAK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lO
U0VOU0lUSVZFLCBGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSk7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9GSU5EX09QVElPTlNfQVRfV09SRF9TVEFSVFMsIEZpbmRPcHRp
b25zQXRXb3JkU3RhcnRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJ
TkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJULCBGaW5kT3B0aW9u
c1RyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMsIEZpbmRPcHRpb25zQmFja3dhcmRz
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19XUkFQ
X0FST1VORCwgRmluZE9wdGlvbnNXcmFwQXJvdW5kKTsKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpG
aW5kT3B0aW9ucyBraXQoV2ViS2l0RmluZE9wdGlvbnMgdHlwZSkKK3sKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8V2ViS2l0OjpGaW5kT3B0aW9ucz4oKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05T
X0NBU0VfSU5TRU5TSVRJVkUgPyBGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSA6IDApCisgICAg
ICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX0FUX1dPUkRfU1RBUlRTID8gRmluZE9w
dGlvbnNBdFdvcmRTdGFydHMgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BU
SU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJUID8gRmluZE9wdGlvbnNUcmVh
dE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRf
RklORF9PUFRJT05TX0JBQ0tXQVJEUyA/IEZpbmRPcHRpb25zQmFja3dhcmRzIDogMCkKKyAgICAg
ICAgfCAodHlwZSAmIFdFQktJVF9GSU5EX09QVElPTlNfV1JBUF9BUk9VTkQgPyBGaW5kT3B0aW9u
c1dyYXBBcm91bmQgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19T
SE9XX09WRVJMQVkgPyBGaW5kT3B0aW9uc1Nob3dPdmVybGF5IDogMCkKKyAgICAgICAgfCAodHlw
ZSAmIFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19GSU5EX0lORElDQVRPUiA/IEZpbmRPcHRpb25z
U2hvd0ZpbmRJbmRpY2F0b3IgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BU
SU9OU19TSE9XX0hJR0hMSUdIVCA/IEZpbmRPcHRpb25zU2hvd0hpZ2hsaWdodCA6IDApKTsKK30K
Kworc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIGtpdCh1aW50MzJfdCB0eXBlKQor
eworICAgIHJldHVybiBraXQoc3RhdGljX2Nhc3Q8V2ViS2l0RmluZE9wdGlvbnM+KHR5cGUpKTsK
K30KIAogc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQog
ewpAQCAtMzQ5LDcgKzM2MCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdEZpbmRDb250cm9sbGVyUGVy
Zm9ybShXZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIsIFdlCiAgICAgV2ViS2l0
RmluZENvbnRyb2xsZXJQcml2YXRlKiBwcml2ID0gZmluZENvbnRyb2xsZXItPnByaXY7CiAgICAg
aWYgKG9wZXJhdGlvbiA9PSBDb3VudE9wZXJhdGlvbikgewogICAgICAgICBnZXRQYWdlKGZpbmRD
b250cm9sbGVyKS0+Y291bnRTdHJpbmdNYXRjaGVzKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2Vh
cmNoVGV4dC5kYXRhKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KHByaXYtPmZpbmRP
cHRpb25zKSwgcHJpdi0+bWF4TWF0Y2hDb3VudCk7CisgICAgICAgICAgICBraXQocHJpdi0+Zmlu
ZE9wdGlvbnMpLCBwcml2LT5tYXhNYXRjaENvdW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMzYyLDkgKzM3Myw5IEBAIHN0YXRpYyB2b2lkIHdlYktpdEZpbmRDb250cm9sbGVyUGVy
Zm9ybShXZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIsIFdlCiAgICAgICAgIC8v
IHVuY29uZGl0aW9uYWxseSBzaG93IGhpZ2hsaWdodHMuIEJvdGggc2VhcmNoX25leHQoKSBhbmQK
ICAgICAgICAgLy8gc2VhcmNoX3ByZXYoKSBzaG91bGQgbm90IGVuYWJsZSBoaWdobGlnaHRpbmcg
dG8gYXZvaWQgYW4KICAgICAgICAgLy8gZXh0cmEgdW5tYXJrQWxsVGV4dE1hdGNoZXMoKSArIG1h
cmtBbGxUZXh0TWF0Y2hlcygpCi0gICAgICAgIGZpbmRPcHRpb25zIHw9IEZpbmRPcHRpb25zU2hv
d0hpZ2hsaWdodDsKKyAgICAgICAgZmluZE9wdGlvbnMgfD0gV0VCS0lUX0ZJTkRfT1BUSU9OU19T
SE9XX0hJR0hMSUdIVDsKIAotICAgIGdldFBhZ2UoZmluZENvbnRyb2xsZXIpLT5maW5kU3RyaW5n
KFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4dC5kYXRhKCkpLCBzdGF0aWNfY2FzdDxX
ZWJLaXQ6OkZpbmRPcHRpb25zPihmaW5kT3B0aW9ucyksCisgICAgZ2V0UGFnZShmaW5kQ29udHJv
bGxlciktPmZpbmRTdHJpbmcoU3RyaW5nOjpmcm9tVVRGOChwcml2LT5zZWFyY2hUZXh0LmRhdGEo
KSksIGtpdChmaW5kT3B0aW9ucyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpdi0+bWF4TWF0Y2hDb3VudCk7CiB9CiAKQEAgLTQyNSw3ICs0MzYsNyBAQCB2b2lk
IHdlYmtpdF9maW5kX2NvbnRyb2xsZXJfc2VhcmNoX25leHQoV2ViS2l0RmluZENvbnRyb2xsZXIq
IGZpbmRDb250cm9sbGVyKQogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTkRfQ09O
VFJPTExFUihmaW5kQ29udHJvbGxlcikpOwogCiAgICAgZmluZENvbnRyb2xsZXItPnByaXYtPmZp
bmRPcHRpb25zICY9IH5XRUJLSVRfRklORF9PUFRJT05TX0JBQ0tXQVJEUzsKLSAgICBmaW5kQ29u
dHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0gfkZpbmRPcHRpb25zU2hvd0hpZ2hsaWdodDsK
KyAgICBmaW5kQ29udHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0gfldFQktJVF9GSU5EX09Q
VElPTlNfU0hPV19ISUdITElHSFQ7CiAgICAgd2ViS2l0RmluZENvbnRyb2xsZXJQZXJmb3JtKGZp
bmRDb250cm9sbGVyLCBGaW5kTmV4dFByZXZPcGVyYXRpb24pOwogfQogCkBAIC00NDMsNyArNDU0
LDcgQEAgdm9pZCB3ZWJraXRfZmluZF9jb250cm9sbGVyX3NlYXJjaF9wcmV2aW91cyhXZWJLaXRG
aW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJ
VF9JU19GSU5EX0NPTlRST0xMRVIoZmluZENvbnRyb2xsZXIpKTsKIAogICAgIGZpbmRDb250cm9s
bGVyLT5wcml2LT5maW5kT3B0aW9ucyB8PSBXRUJLSVRfRklORF9PUFRJT05TX0JBQ0tXQVJEUzsK
LSAgICBmaW5kQ29udHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0gfkZpbmRPcHRpb25zU2hv
d0hpZ2hsaWdodDsKKyAgICBmaW5kQ29udHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0gfldF
QktJVF9GSU5EX09QVElPTlNfU0hPV19ISUdITElHSFQ7CiAgICAgd2ViS2l0RmluZENvbnRyb2xs
ZXJQZXJmb3JtKGZpbmRDb250cm9sbGVyLCBGaW5kTmV4dFByZXZPcGVyYXRpb24pOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENv
bnRyb2xsZXIuaAppbmRleCA3YmFkMWQwNTE4NGQzMTU2ZDFkMWZkOTY0NDVjOWM5ZDE3ZmEzZjNl
Li5jODljMzg2NGZkZThkOTFlZWJlNDFjMDYxMGE2MTM4OGM3MzRkOTI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVy
LmgKQEAgLTYzLDYgKzYzLDEwIEBAIHR5cGVkZWYgZW51bSB7CiAgIFdFQktJVF9GSU5EX09QVElP
TlNfVFJFQVRfTUVESUFMX0NBUElUQUxfQVNfV09SRF9TVEFSVCA9IDEgPDwgMiwKICAgV0VCS0lU
X0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMgPSAgICAgICAgICAgICAgICAgICAgICAgICAgMSA8PCAz
LAogICBXRUJLSVRfRklORF9PUFRJT05TX1dSQVBfQVJPVU5EID0gICAgICAgICAgICAgICAgICAg
ICAgICAxIDw8IDQsCisgIC8qPCBwcml2YXRlID4qLworICBXRUJLSVRfRklORF9PUFRJT05TX1NI
T1dfT1ZFUkxBWSA9ICAgICAgICAgICAgICAgICAgICAgICAxIDw8IDUsCisgIFdFQktJVF9GSU5E
X09QVElPTlNfU0hPV19GSU5EX0lORElDQVRPUiA9ICAgICAgICAgICAgICAgIDEgPDwgNiwKKyAg
V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVCA9ICAgICAgICAgICAgICAgICAgICAg
MSA8PCA3LAogfSBXZWJLaXRGaW5kT3B0aW9uczsKIAogc3RydWN0IF9XZWJLaXRGaW5kQ29udHJv
bGxlciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKaW5kZXggMWI3N2I2ZWE3YjQ2NzBm
MTllOTYwNjEwNDM3NzJkMTk5NDlhOTIyMS4uNWMxZTI4OWM1ZmFlMmQ4MGE0MTMyMGMwZjlhODVj
Y2NiODFmNWJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApAQCAtMjEsNiArMjEs
NyBAQAogI2luY2x1ZGUgIldlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAKICNpbmNsdWRl
ICJXZWJJbWFnZS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJL
aXRVUklSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlc3BvbnNlUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgiCkBAIC04Nyw3ICs4OCw3
IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVXZWJWaWV3TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRs
ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjCiAgICAgICAgIEFQSTo6RXJyb3IqIHdlYkVycm9y
ID0gc3RhdGljX2Nhc3Q8QVBJOjpFcnJvcio+KG1lc3NhZ2UuZ2V0KFN0cmluZzo6ZnJvbVVURjgo
IkVycm9yIikpKTsKICAgICAgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgcGxhdGZvcm1FcnJvciA9
IHdlYkVycm9yLT5wbGF0Zm9ybUVycm9yKCk7CiAgICAgICAgIEdVbmlxdWVQdHI8R0Vycm9yPiBy
ZXNvdXJjZUVycm9yKGdfZXJyb3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhwbGF0
Zm9ybUVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICAgICAgcGxhdGZvcm1F
cnJvci5lcnJvckNvZGUoKSwgcGxhdGZvcm1FcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0
ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgICAgIHdlYkNvcmVFcnJvclRvV2ViS2l0RXJyb3IocGxh
dGZvcm1FcnJvci5lcnJvckNvZGUoKSksIHBsYXRmb3JtRXJyb3IubG9jYWxpemVkRGVzY3JpcHRp
b24oKS51dGY4KCkuZGF0YSgpKSk7CiAKICAgICAgICAgd2Via2l0V2ViUmVzb3VyY2VGYWlsZWQo
cmVzb3VyY2UuZ2V0KCksIHJlc291cmNlRXJyb3IuZ2V0KCkpOwogICAgICAgICB3ZWJraXRXZWJW
aWV3UmVtb3ZlTG9hZGluZ1dlYlJlc291cmNlKHdlYlZpZXcsIHJlc291cmNlSWRlbnRpZmllci0+
dmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0TG9hZGVyQ2xpZW50LmNwcAppbmRleCA0YjJlNTljMjVmZTdmODA1NWU3NDhiN2ZiN2Fh
OGNmYzEwYzM1ZDcxLi44NDlkYmVlZGE4NjQyMTRiNGQyZGI4MDIzZGZlMWQ1MTU4NjVkOTQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExv
YWRlckNsaWVudC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJXZWJLaXRMb2FkZXJD
bGllbnQuaCIKIAogI2luY2x1ZGUgIldlYktpdEJhY2tGb3J3YXJkTGlzdFByaXZhdGUuaCIKKyNp
bmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVzcG9uc2VQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0V2ViVmlld1ByaXZhdGUuaCIKQEAgLTU0LDcgKzU1LDcgQEAgc3RhdGljIHZvaWQgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0Zy
YW1lUmVmIGYKIAogICAgIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IgPSB0b0lt
cGwoZXJyb3IpLT5wbGF0Zm9ybUVycm9yKCk7CiAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVy
cm9yKGdfZXJyb3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhyZXNvdXJjZUVycm9y
LmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29k
ZSgpLCByZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkp
OworICAgICAgICB3ZWJDb3JlRXJyb3JUb1dlYktpdEVycm9yKHJlc291cmNlRXJyb3IuZXJyb3JD
b2RlKCkpLCByZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEo
KSkpOwogICAgIGlmIChyZXNvdXJjZUVycm9yLnRsc0Vycm9ycygpKSB7CiAgICAgICAgIHdlYmtp
dFdlYlZpZXdMb2FkRmFpbGVkV2l0aFRMU0Vycm9ycyhXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5m
byksIHJlc291cmNlRXJyb3IuZmFpbGluZ1VSTCgpLnV0ZjgoKS5kYXRhKCksIHdlYkVycm9yLmdl
dCgpLAogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KHJlc291
cmNlRXJyb3IudGxzRXJyb3JzKCkpLCByZXNvdXJjZUVycm9yLmNlcnRpZmljYXRlKCkpOwpAQCAt
ODUsNyArODYsNyBAQCBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0VycgogCiAgICAgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgcmVzb3VyY2VFcnJvciA9IHRvSW1wbChlcnJvciktPnBsYXRmb3JtRXJyb3IoKTsK
ICAgICBHVW5pcXVlUHRyPEdFcnJvcj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1
YXJrX2Zyb21fc3RyaW5nKHJlc291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0g
ICAgICAgIHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCksIHJlc291cmNlRXJyb3IubG9jYWxpemVk
RGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIHdlYkNvcmVFcnJvclRvV2Vi
S2l0RXJyb3IocmVzb3VyY2VFcnJvci5lcnJvckNvZGUoKSksIHJlc291cmNlRXJyb3IubG9jYWxp
emVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgd2Via2l0V2ViVmlld0xvYWRG
YWlsZWQoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8pLCBXRUJLSVRfTE9BRF9DT01NSVRURUQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCku
dXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbi5jcHAKaW5kZXggZjAzNDQ2YmFiNzMwY2Q0NmIwZjY5MmM3MWQxYzBlZTIzZTQy
NmJiMi4uODMzNjZkY2NkN2RhMWY0NTMwZDE4ZWQzZGFiNjQ2ZGVjYjEwMDBjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwCkBAIC0yNDMsMTMgKzI0Myw2IEBAIGNvbnN0
IGNoYXIqIHdlYmtpdF9uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9nZXRfZnJhbWVfbmFtZShX
ZWJLaXROYXZpZ2F0aW9uUG9sCiAgICAgcmV0dXJuIGRlY2lzaW9uLT5wcml2LT5mcmFtZU5hbWUu
ZGF0YSgpOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9OQVZJR0FU
SU9OX1RZUEVfTElOS19DTElDS0VELCBOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkKTsKLUNPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05BVklHQVRJT05fVFlQRV9GT1JNX1NVQk1J
VFRFRCwgTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX05BVklHQVRJT05fVFlQRV9CQUNLX0ZPUldBUkQsIE5hdmlnYXRpb25U
eXBlQmFja0ZvcndhcmQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkFW
SUdBVElPTl9UWVBFX1JFTE9BRCwgTmF2aWdhdGlvblR5cGVSZWxvYWQpOwotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0ZPUk1fUkVTVUJNSVRURUQs
IE5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX05BVklHQVRJT05fVFlQRV9PVEhFUiwgTmF2aWdhdGlvblR5cGVPdGhlcik7
Ci0KIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiogd2Via2l0TmF2aWdhdGlvblBvbGlj
eURlY2lzaW9uQ3JlYXRlKFdlYktpdE5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCB1bnNp
Z25lZCBtb3VzZUJ1dHRvbiwgdW5zaWduZWQgbW9kaWZpZXJzLCBBUEk6OlVSTFJlcXVlc3QqIHJl
cXVlc3QsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5
KiBsaXN0ZW5lcikKIHsKICAgICBXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24qIGRlY2lz
aW9uID0gV0VCS0lUX05BVklHQVRJT05fUE9MSUNZX0RFQ0lTSU9OKGdfb2JqZWN0X25ldyhXRUJL
SVRfVFlQRV9OQVZJR0FUSU9OX1BPTElDWV9ERUNJU0lPTiwgTlVMTCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAK
aW5kZXggMWViNmIxZWM2NjlhYmNjNzljOGYwOGQ0Nzc3OTY4MGY0MmVhYTVkNi4uOGRkNDk2OWRi
Zjk0MDYzNDEyMDc5YTAzMDE2YTgzNWNiYmM0YzNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCkBAIC0yOSwx
MCArMjksNDAgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAoraW5saW5lIHN0YXRpYyBX
ZWJLaXROYXZpZ2F0aW9uVHlwZSB3ZWJraXROYXZpZ2F0aW9uVHlwZUZvcldLRnJhbWVOYXZpZ2F0
aW9uVHlwZShXS0ZyYW1lTmF2aWdhdGlvblR5cGUgdHlwZSkKK3sKKyAgICBXZWJLaXROYXZpZ2F0
aW9uVHlwZSB3a1R5cGUoV0VCS0lUX05BVklHQVRJT05fVFlQRV9MSU5LX0NMSUNLRUQpOworCisg
ICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBrV0tGcmFtZU5hdmlnYXRpb25UeXBlTGlua0Ns
aWNrZWQ6CisgICAgICAgIHdrVHlwZSA9IFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfTElOS19DTElD
S0VEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVGb3Jt
U3VibWl0dGVkOgorICAgICAgICB3a1R5cGUgPSBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0ZPUk1f
U1VCTUlUVEVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5
cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgd2tUeXBlID0gV0VCS0lUX05BVklHQVRJT05fVFlQRV9C
QUNLX0ZPUldBUkQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Uga1dLRnJhbWVOYXZpZ2F0aW9u
VHlwZVJlbG9hZDoKKyAgICAgICAgd2tUeXBlID0gV0VCS0lUX05BVklHQVRJT05fVFlQRV9SRUxP
QUQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Uga1dLRnJhbWVOYXZpZ2F0aW9uVHlwZUZvcm1S
ZXN1Ym1pdHRlZDoKKyAgICAgICAgd2tUeXBlID0gV0VCS0lUX05BVklHQVRJT05fVFlQRV9GT1JN
X1JFU1VCTUlUVEVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlv
blR5cGVPdGhlcjoKKyAgICAgICAgd2tUeXBlID0gV0VCS0lUX05BVklHQVRJT05fVFlQRV9PVEhF
UjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgfQorCisgICAgcmV0dXJuIHdrVHlwZTsKK30KKwogc3RhdGljIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZp
ZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS0ZyYW1lUmVm
IG9yaWdpbmF0aW5nRnJhbWUsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS0ZyYW1lUG9saWN5
TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKIHsKICAgICBHUmVmUHRyPFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbj4g
ZGVjaXNpb24gPQotICAgICAgICBhZG9wdEdSZWYod2Via2l0TmF2aWdhdGlvblBvbGljeURlY2lz
aW9uQ3JlYXRlKHN0YXRpY19jYXN0PFdlYktpdE5hdmlnYXRpb25UeXBlPihuYXZpZ2F0aW9uVHlw
ZSksCisgICAgICAgIGFkb3B0R1JlZih3ZWJraXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DcmVh
dGUod2Via2l0TmF2aWdhdGlvblR5cGVGb3JXS0ZyYW1lTmF2aWdhdGlvblR5cGUobmF2aWdhdGlv
blR5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91c2VCdXR0b24obW91c2VCdXR0b24p
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhtb2RpZmllcnMpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW1wbChyZXF1ZXN0
KSwKQEAgLTQ2LDcgKzc2LDcgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0sKIHN0YXRpYyB2b2lk
IGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9k
aWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJl
cXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlz
dGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50
SW5mbykKIHsKICAgICBHUmVmUHRyPFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbj4gZGVj
aXNpb24gPQotICAgICAgICBhZG9wdEdSZWYod2Via2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9u
Q3JlYXRlKHN0YXRpY19jYXN0PFdlYktpdE5hdmlnYXRpb25UeXBlPihuYXZpZ2F0aW9uVHlwZSks
CisgICAgICAgIGFkb3B0R1JlZih3ZWJraXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DcmVhdGUo
d2Via2l0TmF2aWdhdGlvblR5cGVGb3JXS0ZyYW1lTmF2aWdhdGlvblR5cGUobmF2aWdhdGlvblR5
cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91c2VCdXR0b24obW91c2VCdXR0b24pLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdr
RXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhtb2RpZmllcnMpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW1wbChyZXF1ZXN0KSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50
T3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBy
aW50T3BlcmF0aW9uLmNwcAppbmRleCBlZTk3MjQ4NGQ4NTIwNmM0ZGZmM2M4NDc1MjI3Y2U1MDBl
NjhlYjRmLi5hZWQ1OWY2NmI0NDYzZDBkZmFmZDZkMGJiZDRkMmU5ZTY3ZGUyMzZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRP
cGVyYXRpb24uY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgc3RhdGljIHZvaWQgZHJhd1BhZ2VzRm9y
UHJpbnRpbmdDb21wbGV0ZWQoV0tFcnJvclJlZiB3a1ByaW50RXJyb3IsIFdLRXJyb3JSZWYsIHYK
ICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yID0gd2tQcmlu
dEVycm9yID8gdG9JbXBsKHdrUHJpbnRFcnJvciktPnBsYXRmb3JtRXJyb3IoKSA6IFdlYkNvcmU6
OlJlc291cmNlRXJyb3IoKTsKICAgICBpZiAoIXJlc291cmNlRXJyb3IuaXNOdWxsKCkpIHsKICAg
ICAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHByaW50RXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChn
X3F1YXJrX2Zyb21fc3RyaW5nKHJlc291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSks
Ci0gICAgICAgICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCByZXNvdXJjZUVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgd2ViQ29y
ZUVycm9yVG9XZWJLaXRFcnJvcihyZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VF
cnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgZ19z
aWduYWxfZW1pdChwcmludE9wZXJhdGlvbi5nZXQoKSwgc2lnbmFsc1tGQUlMRURdLCAwLCBwcmlu
dEVycm9yLmdldCgpKTsKICAgICB9CiAgICAgZ19zaWduYWxfZW1pdChwcmludE9wZXJhdGlvbi5n
ZXQoKSwgc2lnbmFsc1tGSU5JU0hFRF0sIDAsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcAppbmRleCBkMzRiOWM0NzE3MWEw
OGFmOWRjZWIyNzc2ZDg3OWJhOGU4ZTQyNjBiLi45MTQzMmRlMTU1M2JiZTk0M2Y0MzFhZDdiMzE5
NzFlOWZlOTEyYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRQcml2YXRlLmNwcApAQCAtMjAsNiArMjAsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKIAorI2luY2x1ZGUgIkVycm9yc0d0ay5oIgor
I2luY2x1ZGUgIldlYktpdEVycm9yLmgiCisKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAKIHVuc2ln
bmVkIHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhXS0V2ZW50TW9kaWZpZXJzIHdrTW9k
aWZpZXJzKQpAQCAtNTEsMyArNTQsMTU3IEBAIHVuc2lnbmVkIHdrRXZlbnRNb3VzZUJ1dHRvblRv
V2ViS2l0TW91c2VCdXR0b24oV0tFdmVudE1vdXNlQnV0dG9uIHdrQnV0dG9uKQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAwOwogfQorCitpbmxpbmUgdW5zaWduZWQgd2Vi
Q29yZUVycm9yVG9XZWJLaXRFcnJvcih1bnNpZ25lZCB3ZWJDb3JlRXJyb3IpCit7CisgICAgdW5z
aWduZWQgd2tFcnJvckNvZGUoMCk7CisKKyAgICBzd2l0Y2ggKHdlYkNvcmVFcnJvcikgeworICAg
IGNhc2UgV2ViQ29yZTo6TmV0d29ya0Vycm9yRmFpbGVkOgorICAgICAgICB3a0Vycm9yQ29kZSA9
IFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJDb3JlOjpOZXR3b3JrRXJyb3JUcmFuc3BvcnQ6CisgICAgICAgIHdrRXJyb3JDb2RlID0gV0VC
S0lUX05FVFdPUktfRVJST1JfVFJBTlNQT1JUOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkNvcmU6Ok5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbDoKKyAgICAgICAgd2tFcnJvckNvZGUg
PSBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckNhbmNlbGxlZDoKKyAgICAgICAgd2tFcnJv
ckNvZGUgPSBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQ29yZTo6TmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdDoKKyAgICAgICAg
d2tFcnJvckNvZGUgPSBXRUJLSVRfTkVUV09SS19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNUOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yRmFpbGVkOgorICAg
ICAgICB3a0Vycm9yQ29kZSA9IFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVEOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlOgor
ICAgICAgICB3a0Vycm9yQ29kZSA9IFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlN
RV9UWVBFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fu
bm90U2hvd1VSTDoKKyAgICAgICAgd2tFcnJvckNvZGUgPSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NB
Tk5PVF9TSE9XX1VSSTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpQb2xpY3lF
cnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U6CisgICAgICAgIHdrRXJyb3JD
b2RlID0gV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BPTElD
WV9DSEFOR0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6UG9saWN5RXJyb3JD
YW5ub3RVc2VSZXN0cmljdGVkUG9ydDoKKyAgICAgICAgd2tFcnJvckNvZGUgPSBXRUJLSVRfUE9M
SUNZX0VSUk9SX0NBTk5PVF9VU0VfUkVTVFJJQ1RFRF9QT1JUOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yRmFpbGVkOgorICAgICAgICB3a0Vycm9yQ29kZSA9
IFdFQktJVF9QTFVHSU5fRVJST1JfRkFJTEVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkNvcmU6OlBsdWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbjoKKyAgICAgICAgd2tFcnJvckNvZGUg
PSBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BMVUdJTjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVnaW46CisgICAgICAg
IHdrRXJyb3JDb2RlID0gV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU47Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFi
bGU6CisgICAgICAgIHdrRXJyb3JDb2RlID0gV0VCS0lUX1BMVUdJTl9FUlJPUl9KQVZBX1VOQVZB
SUxBQkxFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yQ29u
bmVjdGlvbkNhbmNlbGxlZDoKKyAgICAgICAgd2tFcnJvckNvZGUgPSBXRUJLSVRfUExVR0lOX0VS
Uk9SX0NPTk5FQ1RJT05fQ0FOQ0VMTEVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNv
cmU6OlBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQ6CisgICAgICAgIHdrRXJyb3JDb2RlID0gV0VC
S0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JOZXR3b3JrOgorICAgICAgICB3a0Vycm9yQ29kZSA9
IFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ORVRXT1JLOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdlYkNvcmU6OkRvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXI6CisgICAgICAgIHdrRXJyb3JD
b2RlID0gV0VCS0lUX0RPV05MT0FEX0VSUk9SX0NBTkNFTExFRF9CWV9VU0VSOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JEZXN0aW5hdGlvbjoKKyAgICAg
ICAgd2tFcnJvckNvZGUgPSBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT047CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvckdlbmVyYWw6CisgICAgICAg
IHdrRXJyb3JDb2RlID0gV0VCS0lUX1BSSU5UX0VSUk9SX0dFTkVSQUw7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZDoKKyAgICAgICAg
d2tFcnJvckNvZGUgPSBXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2U6
CisgICAgICAgIHdrRXJyb3JDb2RlID0gV0VCS0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFHRV9S
QU5HRTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgfQorICAgIHJldHVybiB3a0Vycm9yQ29kZTsKK30KKworaW5saW5lIHVu
c2lnbmVkIHdlYktpdEVycm9yVG9XZWJDb3JlRXJyb3IodW5zaWduZWQgd2ViS2l0RXJyb3IpCit7
CisgICAgdW5zaWduZWQgd2NFcnJvckNvZGUoMCk7CisKKyAgICBzd2l0Y2ggKHdlYktpdEVycm9y
KSB7CisgICAgY2FzZSBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlMRUQ6CisgICAgICAgIHdjRXJy
b3JDb2RlID0gV2ViQ29yZTo6TmV0d29ya0Vycm9yRmFpbGVkOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX1RSQU5TUE9SVDoKKyAgICAgICAgd2NFcnJvckNv
ZGUgPSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JUcmFuc3BvcnQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfVU5LTk9XTl9QUk9UT0NPTDoKKyAgICAgICAgd2NF
cnJvckNvZGUgPSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2w7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEOgorICAgICAg
ICB3Y0Vycm9yQ29kZSA9IFdlYkNvcmU6Ok5ldHdvcmtFcnJvckNhbmNlbGxlZDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXRUJLSVRfTkVUV09SS19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNU
OgorICAgICAgICB3Y0Vycm9yQ29kZSA9IFdlYkNvcmU6Ok5ldHdvcmtFcnJvckZpbGVEb2VzTm90
RXhpc3Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9GQUlM
RUQ6CisgICAgICAgIHdjRXJyb3JDb2RlID0gV2ViQ29yZTo6UG9saWN5RXJyb3JGYWlsZWQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19N
SU1FX1RZUEU6CisgICAgICAgIHdjRXJyb3JDb2RlID0gV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5u
b3RTaG93TWltZVR5cGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0VCS0lUX1BPTElDWV9F
UlJPUl9DQU5OT1RfU0hPV19VUkk6CisgICAgICAgIHdjRXJyb3JDb2RlID0gV2ViQ29yZTo6UG9s
aWN5RXJyb3JDYW5ub3RTaG93VVJMOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdFQktJVF9Q
T0xJQ1lfRVJST1JfRlJBTUVfTE9BRF9JTlRFUlJVUFRFRF9CWV9QT0xJQ1lfQ0hBTkdFOgorICAg
ICAgICB3Y0Vycm9yQ29kZSA9IFdlYkNvcmU6OlBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0
ZWRCeVBvbGljeUNoYW5nZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXRUJLSVRfUE9MSUNZ
X0VSUk9SX0NBTk5PVF9VU0VfUkVTVFJJQ1RFRF9QT1JUOgorICAgICAgICB3Y0Vycm9yQ29kZSA9
IFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ6CisgICAgICAgIHdjRXJy
b3JDb2RlID0gV2ViQ29yZTo6UGx1Z2luRXJyb3JGYWlsZWQ7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU46CisgICAgICAgIHdj
RXJyb3JDb2RlID0gV2ViQ29yZTo6UGx1Z2luRXJyb3JDYW5ub3RGaW5kUGx1Z2luOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lO
OgorICAgICAgICB3Y0Vycm9yQ29kZSA9IFdlYkNvcmU6OlBsdWdpbkVycm9yQ2Fubm90TG9hZFBs
dWdpbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFf
VU5BVkFJTEFCTEU6CisgICAgICAgIHdjRXJyb3JDb2RlID0gV2ViQ29yZTo6UGx1Z2luRXJyb3JK
YXZhVW5hdmFpbGFibGU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9F
UlJPUl9DT05ORUNUSU9OX0NBTkNFTExFRDoKKyAgICAgICAgd2NFcnJvckNvZGUgPSBXZWJDb3Jl
OjpQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOgorICAgICAgICB3Y0Vycm9y
Q29kZSA9IFdlYkNvcmU6OlBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQ7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgV0VCS0lUX0RPV05MT0FEX0VSUk9SX05FVFdPUks6CisgICAgICAgIHdjRXJy
b3JDb2RlID0gV2ViQ29yZTo6RG93bmxvYWRFcnJvck5ldHdvcms7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV0VCS0lUX0RPV05MT0FEX0VSUk9SX0NBTkNFTExFRF9CWV9VU0VSOgorICAgICAg
ICB3Y0Vycm9yQ29kZSA9IFdlYkNvcmU6OkRvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV0VCS0lUX0RPV05MT0FEX0VSUk9SX0RFU1RJTkFUSU9O
OgorICAgICAgICB3Y0Vycm9yQ29kZSA9IFdlYkNvcmU6OkRvd25sb2FkRXJyb3JEZXN0aW5hdGlv
bjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXRUJLSVRfUFJJTlRfRVJST1JfR0VORVJBTDoK
KyAgICAgICAgd2NFcnJvckNvZGUgPSBXZWJDb3JlOjpQcmludEVycm9yR2VuZXJhbDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQ6
CisgICAgICAgIHdjRXJyb3JDb2RlID0gV2ViQ29yZTo6UHJpbnRFcnJvclByaW50ZXJOb3RGb3Vu
ZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXRUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9Q
QUdFX1JBTkdFOgorICAgICAgICB3Y0Vycm9yQ29kZSA9IFdlYkNvcmU6OlByaW50RXJyb3JJbnZh
bGlkUGFnZVJhbmdlOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIHdjRXJyb3JDb2RlOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5oCmluZGV4
IGJkMDYwZWQzMjlmMWIyZjA4YjY4YzE4NTFiMWI2OTJkM2VmOTJjYTMuLjJhOWZlZjNjMGYyYTk2
ZGY3MTdlMWM2NDBkOWZjZDZkNTE4ZWZmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmgKQEAgLTQ5LDkgKzQ5LDYgQEAKICNkZWZpbmUg
V0VCS0lUX1BBUkFNX1dSSVRBQkxFIChzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9X
UklUQUJMRSB8IEdfUEFSQU1fU1RBVElDX05BTUUgfCBHX1BBUkFNX1NUQVRJQ19OSUNLIHwgR19Q
QVJBTV9TVEFUSUNfQkxVUkIpKQogI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIChzdGF0
aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX1NUQVRJQ19O
QU1FIHwgR19QQVJBTV9TVEFUSUNfTklDSyB8IEdfUEFSQU1fU1RBVElDX0JMVVJCKSkKIAotI2Rl
ZmluZSBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKHdlYmtpdE5hbWUsIHdlYmNvcmVOYW1l
KSBcCi0gICAgICAgIENPTVBJTEVfQVNTRVJUKGludCh3ZWJraXROYW1lKSA9PSBpbnQod2ViY29y
ZU5hbWUpLCBtaXNtYXRjaGluZ0VudW1zKQotCiAjZGVmaW5lIFdFQktJVF9ERUZJTkVfQVNZTkNf
REFUQV9TVFJVQ1Qoc3RydWN0TmFtZSkgXAogc3RhdGljIHN0cnVjdE5hbWUqIGNyZWF0ZSMjc3Ry
dWN0TmFtZSgpIFwKIHsgXApAQCAtMTE4LDYgKzExNSw4IEBAIEdUeXBlIHR5cGVfbmFtZSMjX2dl
dF90eXBlKHZvaWQpIFwKIAogdW5zaWduZWQgd2tFdmVudE1vZGlmaWVyc1RvR2RrTW9kaWZpZXJz
KFdLRXZlbnRNb2RpZmllcnMpOwogdW5zaWduZWQgd2tFdmVudE1vdXNlQnV0dG9uVG9XZWJLaXRN
b3VzZUJ1dHRvbihXS0V2ZW50TW91c2VCdXR0b24pOwordW5zaWduZWQgd2ViQ29yZUVycm9yVG9X
ZWJLaXRFcnJvcih1bnNpZ25lZCB3ZWJDb3JlRXJyb3IpOwordW5zaWduZWQgd2ViS2l0RXJyb3JU
b1dlYkNvcmVFcnJvcih1bnNpZ25lZCB3ZWJLaXRFcnJvcik7CiAKIGVudW0gU25hcHNob3RSZWdp
b24gewogICAgIFNuYXBzaG90UmVnaW9uVmlzaWJsZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKaW5k
ZXggZDYzMmQ0NDFiZDRiOTE4MjJlOTcxOTA5OTZmYWQ2MzJmMWNiNjg5Mi4uMWE2MjY5ZWIwOWU1
NDU1MTFkZjMyYTVhMmQ2MzQ3ZDg4NWM1NzNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKQEAg
LTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgiCiAKICNp
bmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29u
dGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3LmgiCkBAIC0yMzEsNyArMjMy
LDcgQEAgdm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcihXZWJLaXRV
UklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBHRXIKIAogICAgIFdlYktpdFVSSVNjaGVtZVJlcXVl
c3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKIAotICAgIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgcmVzb3VyY2VFcnJvcihnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSwgZXJy
b3ItPmNvZGUsIHByaXYtPnVyaS5kYXRhKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3Nh
Z2UpKTsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoZ19xdWFya190
b19zdHJpbmcoZXJyb3ItPmRvbWFpbiksIHdlYktpdEVycm9yVG9XZWJDb3JlRXJyb3IoZXJyb3It
PmNvZGUpLCBwcml2LT51cmkuZGF0YSgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdl
KSk7CiAgICAgcHJpdi0+d2ViUmVxdWVzdE1hbmFnZXItPmRpZEZhaWxXaXRoRXJyb3IocHJpdi0+
cmVxdWVzdElELCByZXNvdXJjZUVycm9yKTsKICAgICB3ZWJraXRXZWJDb250ZXh0RGlkRmluaXNo
TG9hZGluZ0N1c3RvbVByb3RvY29sKHByaXYtPndlYkNvbnRleHQsIHByaXYtPnJlcXVlc3RJRCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuY3BwCmluZGV4IGZlNjI2YzQ5ZjA3YWRhZjQ4YmRiODEwNTRmODYyZTc5MDE2ODE5
ZDYuLmYxN2MyNjU4MWU4ZmQwY2VlNjhmY2E4YTMxZWY5ZWE4NDRhNTJmNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3Bw
CkBAIC0xNjUsNiArMTY1LDQyIEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9
IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdFdlYkNvbnRleHQsIHdlYmtpdF93
ZWJfY29udGV4dCwgR19UWVBFX09CSkVDVCkKIAoraW5saW5lIHN0YXRpYyBXZWJLaXQ6OlByb2Nl
c3NNb2RlbCB3ZWJLaXRQcm9jZXNzTW9kZWxUb1Byb2Nlc3NNb2RlbChXZWJLaXRQcm9jZXNzTW9k
ZWwgd2ViS2l0UHJvY2Vzc01vZGVsKQoreworICAgIFdlYktpdDo6UHJvY2Vzc01vZGVsIHByb2Nl
c3NNb2RlbChQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzKTsKKworICAgIHN3aXRj
aCAod2ViS2l0UHJvY2Vzc01vZGVsKSB7CisgICAgY2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9T
SEFSRURfU0VDT05EQVJZX1BST0NFU1M6CisgICAgICAgIHByb2Nlc3NNb2RlbCA9IFByb2Nlc3NN
b2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0VC
S0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzoKKyAgICAgICAg
cHJvY2Vzc01vZGVsID0gUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXM7Cisg
ICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKworICAgIHJldHVybiBwcm9jZXNzTW9kZWw7Cit9CisKK2lubGluZSBzdGF0aWMg
V2ViS2l0UHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbFRvV2ViS2l0UHJvY2Vzc01vZGVsKFdlYktp
dDo6UHJvY2Vzc01vZGVsIHByb2Nlc3NNb2RlbCkKK3sKKyAgICBXZWJLaXRQcm9jZXNzTW9kZWwg
d2ViS2l0UHJvY2Vzc01vZGVsKFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllf
UFJPQ0VTUyk7CisKKyAgICBzd2l0Y2ggKHdlYktpdFByb2Nlc3NNb2RlbCkgeworICAgIGNhc2Ug
UHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAgICAgICAgd2ViS2l0UHJvY2Vz
c01vZGVsID0gV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJv
Y2Vzc2VzOgorICAgICAgICB3ZWJLaXRQcm9jZXNzTW9kZWwgPSBXRUJLSVRfUFJPQ0VTU19NT0RF
TF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTOworICAgICAgICBicmVhazsKKyAgICBkZWZh
dWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICByZXR1cm4g
d2ViS2l0UHJvY2Vzc01vZGVsOworfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRf
Y2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xhc3MqIHdlYkNvbnRleHRDbGFzcykKIHsKICAg
ICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYkNvbnRleHRD
bGFzcyk7CkBAIC05MTcsMTggKzk1Myw3IEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9w
cm9jZXNzX21vZGVsKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYktpdFByb2NlCiB7CiAg
ICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkpOwogCi0g
ICAgUHJvY2Vzc01vZGVsIG5ld1Byb2Nlc3NNb2RlbDsKLQotICAgIHN3aXRjaCAocHJvY2Vzc01v
ZGVsKSB7Ci0gICAgY2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BS
T0NFU1M6Ci0gICAgICAgIG5ld1Byb2Nlc3NNb2RlbCA9IFByb2Nlc3NNb2RlbFNoYXJlZFNlY29u
ZGFyeVByb2Nlc3M7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV0VCS0lUX1BST0NFU1NfTU9E
RUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzoKLSAgICAgICAgbmV3UHJvY2Vzc01vZGVs
ID0gUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXM7Ci0gICAgICAgIGJyZWFr
OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7Ci0gICAgfQor
ICAgIFByb2Nlc3NNb2RlbCBuZXdQcm9jZXNzTW9kZWwod2ViS2l0UHJvY2Vzc01vZGVsVG9Qcm9j
ZXNzTW9kZWwocHJvY2Vzc01vZGVsKSk7CiAKICAgICBpZiAobmV3UHJvY2Vzc01vZGVsID09IGNv
bnRleHQtPnByaXYtPmNvbnRleHQtPnByb2Nlc3NNb2RlbCgpKQogICAgICAgICByZXR1cm47CkBA
IC05NTIsMTQgKzk3Nyw3IEBAIFdlYktpdFByb2Nlc3NNb2RlbCB3ZWJraXRfd2ViX2NvbnRleHRf
Z2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCogY29udGV4CiB7CiAgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpLCBXRUJLSVRfUFJP
Q0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1MpOwogCi0gICAgc3dpdGNoIChjb250
ZXh0LT5wcml2LT5jb250ZXh0LT5wcm9jZXNzTW9kZWwoKSkgewotICAgIGNhc2UgUHJvY2Vzc01v
ZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9QUk9DRVNT
X01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzsKLSAgICBjYXNlIFByb2Nlc3NNb2RlbE11
bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgotICAgICAgICByZXR1cm4gV0VCS0lUX1BST0NFU1Nf
TU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzsKLSAgICBkZWZhdWx0OgotICAgICAg
ICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgIH0KKyAgICByZXR1cm4gcHJvY2Vzc01vZGVs
VG9XZWJLaXRQcm9jZXNzTW9kZWwoY29udGV4dC0+cHJpdi0+Y29udGV4dC0+cHJvY2Vzc01vZGVs
KCkpOwogfQogCiBXZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93
bmxvYWQoRG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggNTNhMTllM2Q0MjU5
OGI4N2IwZWFhNzJmZTlmZDI2N2I4MmQxY2YwMy4uOTlkMzZlYjlhZjhhZjhmNmZmMTg5NWQyOTIw
MjhlZTk4NjIzYTdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTMwNTQsOSArMzA1NCw2IEBAIHZvaWQgd2ViS2l0V2Vi
Vmlld0RpZFJlY2VpdmVTbmFwc2hvdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCB1aW50NjRfdCBj
YWxsYmFja0lECiAgICAgICAgIGdfdGFza19yZXR1cm5fcG9pbnRlcih0YXNrLmdldCgpLCAwLCAw
KTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfU05BUFNIT1RfUkVH
SU9OX1ZJU0lCTEUsIFNuYXBzaG90UmVnaW9uVmlzaWJsZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9TTkFQU0hPVF9SRUdJT05fRlVMTF9ET0NVTUVOVCwgU25hcHNob3RS
ZWdpb25GdWxsRG9jdW1lbnQpOwotCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHdlYktpdFNuYXBz
aG90T3B0aW9uc1RvU25hcHNob3RPcHRpb25zKFdlYktpdFNuYXBzaG90T3B0aW9ucyBvcHRpb25z
KQogewogICAgIFNuYXBzaG90T3B0aW9ucyBzbmFwc2hvdE9wdGlvbnMgPSAwOwpAQCAtMzA2Nyw2
ICszMDY0LDI0IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgd2ViS2l0U25hcHNob3RPcHRpb25z
VG9TbmFwc2hvdE9wdGlvbnMoV2ViS2l0U25hcHNob3RPcHRpCiAgICAgcmV0dXJuIHNuYXBzaG90
T3B0aW9uczsKIH0KIAorc3RhdGljIGlubGluZSBTbmFwc2hvdFJlZ2lvbiB3ZWJLaXRTbmFwc2hv
dFJlZ2lvblRvU25hcHNob3RSZWdpb24oV2ViS2l0U25hcHNob3RSZWdpb24gcmVnaW9uKQorewor
ICAgIFNuYXBzaG90UmVnaW9uIHNuYXBzaG90UmVnaW9uKFNuYXBzaG90UmVnaW9uVmlzaWJsZSk7
CisKKyAgICBzd2l0Y2ggKHJlZ2lvbikgeworICAgIGNhc2UgV0VCS0lUX1NOQVBTSE9UX1JFR0lP
Tl9WSVNJQkxFOgorICAgICAgICBzbmFwc2hvdFJlZ2lvbiA9IFNuYXBzaG90UmVnaW9uVmlzaWJs
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXRUJLSVRfU05BUFNIT1RfUkVHSU9OX0ZVTExf
RE9DVU1FTlQ6CisgICAgICAgIHNuYXBzaG90UmVnaW9uID0gU25hcHNob3RSZWdpb25GdWxsRG9j
dW1lbnQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIH0KKworICAgIHJldHVybiBzbmFwc2hvdFJlZ2lvbjsKK30KKwogc3Rh
dGljIGlubGluZSB1aW50NjRfdCBnZW5lcmF0ZVNuYXBzaG90Q2FsbGJhY2tJRCgpCiB7CiAgICAg
c3RhdGljIHVpbnQ2NF90IHVuaXF1ZUNhbGxiYWNrSUQgPSAxOwpAQCAtMzA5Niw3ICszMTExLDcg
QEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90KFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIFdlYktpdFNuYXBzaG90UmVnaW9uIHIKICAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBU
eXBlIG1lc3NhZ2U7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRlU25hcHNob3RD
YWxsYmFja0lEKCk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiU25hcHNob3RP
cHRpb25zIiksIEFQSTo6VUludDY0OjpjcmVhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHdlYktp
dFNuYXBzaG90T3B0aW9uc1RvU25hcHNob3RPcHRpb25zKG9wdGlvbnMpKSkpOwotICAgIG1lc3Nh
Z2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlNuYXBzaG90UmVnaW9uIiksIEFQSTo6VUludDY0Ojpj
cmVhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlZ2lvbikpKTsKKyAgICBtZXNzYWdlLnNldChT
dHJpbmc6OmZyb21VVEY4KCJTbmFwc2hvdFJlZ2lvbiIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKHN0
YXRpY19jYXN0PHVpbnQ2NF90Pih3ZWJLaXRTbmFwc2hvdFJlZ2lvblRvU25hcHNob3RSZWdpb24o
cmVnaW9uKSkpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJDYWxsYmFja0lE
IiksIEFQSTo6VUludDY0OjpjcmVhdGUoY2FsbGJhY2tJRCkpOwogCiAgICAgd2ViVmlldy0+cHJp
di0+c25hcHNob3RSZXN1bHRzTWFwLnNldChjYWxsYmFja0lELCBhZG9wdEdSZWYoZ190YXNrX25l
dyh3ZWJWaWV3LCBjYW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVzZXJEYXRhKSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dyb3VwLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5j
cHAKaW5kZXggMjg5ZWNkZjAzNmJhZGQ2YzY3YTI1Y2RjY2ZhM2ZiMjU3ZmY2MTRiMi4uM2M5NjM5
NzFhNGE1OWQ0YjJkZmNhYmY1NWZiOWFhMTQ2YjFiM2E1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dyb3VwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3R3JvdXAuY3BwCkBAIC02
Nyw2ICs2NywyMyBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdHcm91cFByaXZhdGUgewogCiBXRUJL
SVRfREVGSU5FX1RZUEUoV2ViS2l0V2ViVmlld0dyb3VwLCB3ZWJraXRfd2ViX3ZpZXdfZ3JvdXAs
IEdfVFlQRV9PQkpFQ1QpCiAKK2lubGluZSBzdGF0aWMgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmpl
Y3RlZEZyYW1lcyB3ZWJLaXRJbmplY3RlZENvbnRlbnRGcmFtZXNUb1dlYkNvcmVVc2VyQ29udGVu
dEluamVjdGVkRnJhbWVzKFdlYktpdEluamVjdGVkQ29udGVudEZyYW1lcyBraXRGcmFtZXMpCit7
CisgICAgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyB3Y0ZyYW1lcyhXZWJDb3Jl
OjpJbmplY3RJbkFsbEZyYW1lcyk7CisKKyAgICBzd2l0Y2ggKGtpdEZyYW1lcykgeworICAgIGNh
c2UgV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRfRlJBTUVTX0FMTDoKKyAgICAgICAgd2NGcmFtZXMg
PSBXZWJDb3JlOjpJbmplY3RJbkFsbEZyYW1lczsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
RUJLSVRfSU5KRUNURURfQ09OVEVOVF9GUkFNRVNfVE9QX09OTFk6CisgICAgICAgIHdjRnJhbWVz
ID0gV2ViQ29yZTo6SW5qZWN0SW5Ub3BGcmFtZU9ubHk7CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICByZXR1cm4g
d2NGcmFtZXM7Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdHcm91cFNldFByb3BlcnR5
KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFy
YW1TcGVjKiBwYXJhbVNwZWMpCiB7CiAgICAgV2ViS2l0V2ViVmlld0dyb3VwKiBncm91cCA9IFdF
QktJVF9XRUJfVklFV19HUk9VUChvYmplY3QpOwpAQCAtMjI0LDkgKzI0MSw2IEBAIHZvaWQgd2Vi
a2l0X3dlYl92aWV3X2dyb3VwX3NldF9zZXR0aW5ncyhXZWJLaXRXZWJWaWV3R3JvdXAqIGdyb3Vw
LCBXZWJLaXRTZXR0aW5nCiAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKGdyb3VwKSwgInNl
dHRpbmdzIik7CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0lOSkVD
VEVEX0NPTlRFTlRfRlJBTUVTX0FMTCwgV2ViQ29yZTo6SW5qZWN0SW5BbGxGcmFtZXMpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfSU5KRUNURURfQ09OVEVOVF9GUkFNRVNf
VE9QX09OTFksIFdlYkNvcmU6OkluamVjdEluVG9wRnJhbWVPbmx5KTsKLQogc3RhdGljIFBhc3NS
ZWZQdHI8QVBJOjpBcnJheT4gdG9BUElBcnJheShjb25zdCBjaGFyKiBjb25zdCogbGlzdCkKIHsK
ICAgICBpZiAoIWxpc3QpCkBAIC0yNzAsNyArMjg0LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
Z3JvdXBfYWRkX3VzZXJfc3R5bGVfc2hlZXQoV2ViS2l0V2ViVmlld0dyb3VwKiBncm91cCwgY29u
c3QKICAgICAgICAgU3RyaW5nOjpmcm9tVVRGOChiYXNlVVJJKSwKICAgICAgICAgd2ViV2hpdGVs
aXN0LmdldCgpLAogICAgICAgICB3ZWJCbGFja2xpc3QuZ2V0KCksCi0gICAgICAgIHN0YXRpY19j
YXN0PFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM+KGluamVjdGVkRnJhbWVzKSwK
KyAgICAgICAgd2ViS2l0SW5qZWN0ZWRDb250ZW50RnJhbWVzVG9XZWJDb3JlVXNlckNvbnRlbnRJ
bmplY3RlZEZyYW1lcyhpbmplY3RlZEZyYW1lcyksCiAgICAgICAgIFdlYkNvcmU6OlVzZXJTdHls
ZVVzZXJMZXZlbCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224000</attachid>
            <date>2014-02-12 13:21:50 -0800</date>
            <delta_ts>2014-02-12 15:02:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127800-20140212212147.patch</filename>
            <type>text/plain</type>
            <size>71054</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzNzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA5NDY0Mzc3M2ZmODg2MmQz
NmRhZmIxODllM2VmODRmODQxMzlkZTEuLmFkN2I5NDJmOTVjNTk5NjlkNjdkMGUwODcyYTIxMGM5
YmMyOTE4NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDItMTIgIEVucmlxdWUg
T2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXRH
VEsrIHNob3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRm
b3JtR1RLLmNtYWtlOiBSZW1vdmVkIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwCisKIDIwMTQtMDIt
MDkgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHJlbGlua2lu
ZyBXZWJLaXQgb24gZXZlcnkgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNDVjNmZlOGVhYzdh
NjI1M2I2MDRjY2MwYmM5Y2UyNGE2YjBjNTgxYy4uNWE5NjI0OTNkYWIyMjI3YzAxZDQ3ODRiYjFl
NTZkNWFlZmU4ODFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTAy
LTEyICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgV2ViS2l0R1RLKyBzaG91bGQgc3RvcCB1c2luZyBDT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI3ODAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogUmVtb3ZlZCBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcAor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6
IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViQ29y
ZUZpbmRPcHRpb25zKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZmluZFN0
cmluZyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
OiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJLaXQ6
OnRvV2ViS2l0TmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFjayk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5h
dmlnYXRpb25hY3Rpb24uY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMu
CisgICAgICAgIChXZWJLaXQ6OmtpdCk6CisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlw
ZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMu
CisgICAgICAgIChjb3B5R3RrVGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1Rv
V2ViS2l0RW51bVZhbHVlcyk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2NvcHlfdGFyZ2V0X2xpc3QpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wYXN0
ZV90YXJnZXRfbGlzdCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6
IEFkZGVkIHRhcmdldExpc3QgcHJpdmF0ZSBmaWVsZCwgd2hpY2ggbWlycm9ycyBQYXN0ZWJvYXJk
SGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkgYnV0IHdpdGgg
dGhlIGZsYWdzIGNvbnZlcnRlZCB0byBXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbworCiAyMDE0LTAy
LTA5ICBDYXJsb3MgR2FybmFjaG8gIDxjYXJsb3NnQGdub21lLm9yZz4KIAogICAgICAgICBbR1RL
XSBBbGxvdyBidWlsZGluZyB3aXRoIHRvdWNoIGV2ZW50cyBlbmFibGVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZjRjNDg4NTE4NWU4OGUzNWYxZjMzN2VmNjcxYzlkY2QyNWE3OWU0Yi4uNjExZmFhOGQyMjQ1NmY4
OGE3Y2NkOTAwYWFkYzgzMDRhMjg4Y2E0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisy
MDE0LTAyLTEyICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+
CisKKyAgICAgICAgV2ViS2l0R1RLKyBzaG91bGQgc3RvcCB1c2luZyBDT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI3ODAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVl
c3QuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh3
ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRfc2NoZW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcDogRGVmaW5lZCBhbmQgYXBwbGll
ZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kp
OgorICAgICAgICAodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKHdlYmtpdF9j
b29raWVfbWFuYWdlcl9zZXRfcGVyc2lzdGVudF9zdG9yYWdlKToKKyAgICAgICAgKHdlYmtpdF9j
b29raWVfbWFuYWdlcl9zZXRfYWNjZXB0X3BvbGljeSk6CisgICAgICAgICh3ZWJraXRDb29raWVN
YW5hZ2VyR2V0QWNjZXB0UG9saWN5Q2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENyZWRlbnRpYWwuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVy
c2lvbnMuCisgICAgICAgICh0b1dlYktpdENyZWRlbnRpYWxQZXJzaXN0ZW5jZSk6CisgICAgICAg
ICh0b1dlYkNvcmVDcmVkZW50aWFsUGVyc2lzdGVuY2UpOgorICAgICAgICAod2Via2l0X2NyZWRl
bnRpYWxfbmV3KToKKyAgICAgICAgKHdlYmtpdF9jcmVkZW50aWFsX2dldF9wZXJzaXN0ZW5jZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwOiBEZWZpbmVk
IGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh3ZWJraXREb3dubG9hZEZh
aWxlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwOiBEZWZp
bmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUg
Y29udmVyc2lvbnMuCisgICAgICAgICh0b1dlYktpdEZpbmRPcHRpb25zKToKKyAgICAgICAgKHdl
YktpdEZpbmRDb250cm9sbGVyUGVyZm9ybSk6CisgICAgICAgICh3ZWJraXRfZmluZF9jb250cm9s
bGVyX3NlYXJjaF9uZXh0KToKKyAgICAgICAgKHdlYmtpdF9maW5kX2NvbnRyb2xsZXJfc2VhcmNo
X3ByZXZpb3VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJv
bGxlci5oOiBBZGRlZCBuZXcgcHJpdmF0ZSBmaWVsZHMgdG8gdGhlIGVudW0sIG5lZWRlZCB0byBt
YXRjaCBjb252ZXJzaW9ucy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9u
cy4KKyAgICAgICAgKGRpZFJlY2VpdmVXZWJWaWV3TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcDogRGVm
aW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoZGlkRmFpbFByb3Zp
c2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKGRpZEZhaWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbi5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9u
cy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwOiBE
ZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1dlYktpdE5h
dmlnYXRpb25UeXBlKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24p
OgorICAgICAgICAoZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHA6IERlZmluZWQgYW5kIGFw
cGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKGRyYXdQYWdlc0ZvclByaW50aW5nQ29t
cGxldGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcDog
RGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRF
cnJvcik6CisgICAgICAgICh0b1dlYkNvcmVFcnJvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0UHJpdmF0ZS5oOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lv
bnMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5j
cHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHdlYmtp
dF91cmlfc2NoZW1lX3JlcXVlc3RfZmluaXNoX2Vycm9yKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNv
bnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRQcm9jZXNzTW9kZWwpOgorICAgICAgICAod2Vi
a2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJf
Y29udGV4dF9nZXRfcHJvY2Vzc19tb2RlbCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4K
KyAgICAgICAgKHRvU25hcHNob3RSZWdpb24pOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dl
dF9zbmFwc2hvdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dy
b3VwLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAo
dG9XZWJDb3JlVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyk6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfZ3JvdXBfYWRkX3VzZXJfc3R5bGVfc2hlZXQpOgorCiAyMDE0LTAyLTA5ICBDYXJsb3Mg
R2FybmFjaG8gIDxjYXJsb3NnQGdub21lLm9yZz4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQg
c3VwcG9ydCB0b3VjaCBldmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1H
VEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDFjYjIxODRl
ZWFlMjExNTZhYTI2NTcxYzBiMjJhYzcyMzE4YzAxYWQuLjYyODAxMjg1OGY0NDkzMGVjNDJiNGUw
OWI2NTJlZDc5MzMwZjk4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsu
Y21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNDAsNyArNDAs
NiBAQCBsaXN0KEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dF
QktJVEdUS19BUElfRElSfS93ZWJraXRtYXJzaGFsLmNwcAogCiAgICAgZ3RrL1dlYkNvcmVTdXBw
b3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwCi0gICAgZ3RrL1dlYkNvcmVT
dXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCiAgICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHAKICAgICBndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGll
bnRHdGsuY3BwCiAgICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudEd0ay5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvU291cmNl
L1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0KaW5kZXggNjRlZDUzZTM5NGRlMjEwNDZiOWUxYzdh
MGVmMTY3OTMzOWJhMTNmZS4uZDUzZjFiMGMwZjg1NDcyMTgwNmQ2NmJhMmEwZTE5YWMyYjM1ZjE2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0KKysrIGIvU291
cmNlL1dlYktpdC9ndGsvR05VbWFrZWZpbGUuYW0KQEAgLTE5MCw3ICsxOTAsNiBAQCBCVUlMVF9T
T1VSQ0VTICs9ICQod2Via2l0Z3RrX2J1aWx0X3NvdXJjZXMpCiB3ZWJraXRndGtfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAgXAotCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEd0ay5oIFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyZmU4MDllZGEwOWZjMTJjODEyODMwZjFhMzE5OTE5
Y2ZmNDY4MTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAx
MSBDb2xsYWJvcmEgTHRkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
LSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotLy8gVXNl
IHRoaXMgZmlsZSB0byBhc3NlcnQgdGhhdCB2YXJpb3VzIFdlYktpdCBBUEkgZW51bSB2YWx1ZXMg
Y29udGludWUKLS8vIG1hdGNoaW5nIFdlYkNvcmUgZGVmaW5lZCBlbnVtIHZhbHVlcy4KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgi
Ci0jaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKLSNpbmNsdWRlICJFcnJvcnNHdGsu
aCIKLSNpbmNsdWRlICJGaW5kT3B0aW9ucy5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMu
aCIKLSNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyLmgiCi0jaW5jbHVkZSAid2Via2l0ZXJyb3Iu
aCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmgiCi0jaW5jbHVkZSAid2Vi
a2l0d2Vic2V0dGluZ3MuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCi0jaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KLQotI2RlZmluZSBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KHdlYmtpdF9uYW1lLCB3ZWJjb3JlX25hbWUpIFwKLSAgICBDT01QSUxFX0FTU0VSVChpbnQod2Vi
a2l0X25hbWUpID09IGludChXZWJDb3JlOjp3ZWJjb3JlX25hbWUpLCBtaXNtYXRjaGluZ19lbnVt
cykKLQotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRURJVElOR19CRUhBVklP
Ul9NQUMsIEVkaXRpbmdNYWNCZWhhdmlvcik7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX1dJTkRPV1MsIEVkaXRpbmdXaW5kb3dzQmVoYXZpb3Ip
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRURJVElOR19CRUhBVklPUl9V
TklYLCBFZGl0aW5nVW5peEJlaGF2aW9yKTsKLQotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0xJTktfQ0xJQ0tFRCwgTmF2aWdhdGlvblR5
cGVMaW5rQ2xpY2tlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJf
TkFWSUdBVElPTl9SRUFTT05fRk9STV9TVUJNSVRURUQsIE5hdmlnYXRpb25UeXBlRm9ybVN1Ym1p
dHRlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfTkFWSUdBVElP
Tl9SRUFTT05fQkFDS19GT1JXQVJELCBOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJkKTsKLUNPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9SRUxP
QUQsIE5hdmlnYXRpb25UeXBlUmVsb2FkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9GT1JNX1JFU1VCTUlUVEVELCBOYXZpZ2F0aW9u
VHlwZUZvcm1SZXN1Ym1pdHRlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9XRUJfTkFWSUdBVElPTl9SRUFTT05fT1RIRVIsIE5hdmlnYXRpb25UeXBlT3RoZXIpOwotCi1D
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYktpdDo6V2ViRmluZE9wdGlvbnNBdFdvcmRT
dGFydHMsIEF0V29yZFN0YXJ0cyk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYktp
dDo6V2ViRmluZE9wdGlvbnNUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCwgVHJlYXRNZWRp
YWxDYXBpdGFsQXNXb3JkU3RhcnQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJL
aXQ6OldlYkZpbmRPcHRpb25zQmFja3dhcmRzLCBCYWNrd2FyZHMpOwotQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zV3JhcEFyb3VuZCwgV3JhcEFyb3Vu
ZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYktpdDo6V2ViRmluZE9wdGlvbnNT
dGFydEluU2VsZWN0aW9uLCBTdGFydEluU2VsZWN0aW9uKTsKLQotQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTCwgUGFzdGVib2FyZEhl
bHBlcjo6VGFyZ2V0VHlwZU1hcmt1cCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19URVhULCBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRU
eXBlVGV4dCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfVklFV19U
QVJHRVRfSU5GT19JTUFHRSwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZUltYWdlKTsKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX1VS
SV9MSVNULCBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlVVJJTGlzdCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19ORVRTQ0FQRV9V
UkwsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVOZXRzY2FwZVVSTCk7Ci0KLUNPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJST1JfRkFJTEVELCBOZXR3b3Jr
RXJyb3JGYWlsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkVUV09S
S19FUlJPUl9UUkFOU1BPUlQsIE5ldHdvcmtFcnJvclRyYW5zcG9ydCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05PV05fUFJPVE9DT0wsIE5l
dHdvcmtFcnJvclVua25vd25Qcm90b2NvbCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRCwgTmV0d29ya0Vycm9yQ2FuY2VsbGVkKTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJST1JfRklMRV9E
T0VTX05PVF9FWElTVCwgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCk7Ci0KLUNPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9FUlJPUl9GQUlMRUQsIFBvbGljeUVy
cm9yRmFpbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9F
UlJPUl9DQU5OT1RfU0hPV19NSU1FX1RZUEUsIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBl
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5O
T1RfU0hPV19VUkwsIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTCk7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfRlJBTUVfTE9BRF9JTlRFUlJVUFRFRF9C
WV9QT0xJQ1lfQ0hBTkdFLCBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lD
aGFuZ2UpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9S
X0NBTk5PVF9VU0VfUkVTVFJJQ1RFRF9QT1JULCBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0
ZWRQb3J0KTsKLQotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUExVR0lOX0VS
Uk9SX0ZBSUxFRCwgUGx1Z2luRXJyb3JGYWlsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BMVUdJTiwgUGx1Z2luRXJyb3JD
YW5ub3RGaW5kUGx1Z2luKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BM
VUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU4sIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdp
bik7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfSkFW
QV9VTkFWQUlMQUJMRSwgUGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFibGUpOwotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJT05fQ0FOQ0VMTEVE
LCBQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExfSEFORExFX0xPQUQsIFBsdWdpbkVycm9y
V2lsbEhhbmRsZUxvYWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggZDE5Y2Q0ODg1
MjRhNWI3YjZhZTE2NmJlN2Y0NjBkNzFlNjdjNWNjMi4uMWI0MmY3MjJhOWExMGZjYTc4YWU5NmUw
NmJmNjQ0NGFkN2Q3YjFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC04Niw2ICs4
NiwxNiBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19saW5rc0luY2x1ZGVkSW5U
YWJDaGFpbiA9IHRydWU7CiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OkZyYW1lTG9hZEV2ZW50
Q2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2ZyYW1lTG9hZEV2ZW50Q2FsbGJh
Y2sgPSAwOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpBdXRoZW50aWNhdGlvbkNhbGxiYWNr
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50aWNhdGlvbkNhbGxiYWNrID0gMDsK
IAorc3RhdGljIGlubGluZSBXZWJDb3JlOjpGaW5kT3B0aW9ucyB0b1dlYkNvcmVGaW5kT3B0aW9u
cyhXZWJLaXRGaW5kT3B0aW9ucyB0eXBlKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpGaW5kT3B0aW9ucz4oKHR5cGUgJiBXZWJGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSA/
IENhc2VJbnNlbnNpdGl2ZSA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXZWJGaW5kT3B0aW9uc0F0
V29yZFN0YXJ0cyA/IEF0V29yZFN0YXJ0cyA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXZWJGaW5k
T3B0aW9uc1RyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0ID8gVHJlYXRNZWRpYWxDYXBpdGFs
QXNXb3JkU3RhcnQgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNCYWNrd2Fy
ZHMgPyBCYWNrd2FyZHMgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNXcmFw
QXJvdW5kID8gV3JhcEFyb3VuZCA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXZWJGaW5kT3B0aW9u
c1N0YXJ0SW5TZWxlY3Rpb24gPyBTdGFydEluU2VsZWN0aW9uIDogMCkpOworfQorCiBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0aygpCiB7CiB9CkBAIC00
NzUsNyArNDg1LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNsZWFyT3BlbmVy
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OmZpbmRTdHJpbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIHRhcmdldFN0
cmluZywgV2ViS2l0RmluZE9wdGlvbnMgZmluZE9wdGlvbnMpCiB7Ci0gICAgcmV0dXJuIGNvcmUo
d2ViVmlldyktPmZpbmRTdHJpbmcoU3RyaW5nOjpmcm9tVVRGOCh0YXJnZXRTdHJpbmcpLCBmaW5k
T3B0aW9ucyk7CisgICAgcmV0dXJuIGNvcmUod2ViVmlldyktPmZpbmRTdHJpbmcoU3RyaW5nOjpm
cm9tVVRGOCh0YXJnZXRTdHJpbmcpLCB0b1dlYkNvcmVGaW5kT3B0aW9ucyhmaW5kT3B0aW9ucykp
OwogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0VmFsdWVGb3JVc2VyKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIG5vZGVPYmplY3QsIEpTU3RyaW5nUmVmIHZh
bHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDIxOTVhODg4M2M4NDc2MmRkNjBhNDE4ZGEyYjQ2
YjAxNDdlMTRiNzEuLmJmNjJmNGZiZTg3NGJjYzQzZTQ2YmQ0ZWI2MmIzOTdhOGUxNjQxNmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHAKQEAgLTEwNSw2ICsxMDUsNDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitpbmxpbmUgaW50IHRvV2ViS2l0TmV0d29y
a0Vycm9yKGludCBlcnJvckNvZGUpCit7CisgICAgc3dpdGNoIChlcnJvckNvZGUpIHsKKyAgICBj
YXNlIE5ldHdvcmtFcnJvckZhaWxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VS
Uk9SX0ZBSUxFRDsKKyAgICBjYXNlIE5ldHdvcmtFcnJvclRyYW5zcG9ydDoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX1RSQU5TUE9SVDsKKyAgICBjYXNlIE5ldHdvcmtFcnJv
clVua25vd25Qcm90b2NvbDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX1VO
S05PV05fUFJPVE9DT0w7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JDYW5jZWxsZWQ6CisgICAgICAg
IHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ7CisgICAgY2FzZSBOZXR3b3Jr
RXJyb3JGaWxlRG9lc05vdEV4aXN0OgorICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJS
T1JfRklMRV9ET0VTX05PVF9FWElTVDsKKyAgICBjYXNlIFBvbGljeUVycm9yRmFpbGVkOgorICAg
ICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GQUlMRUQ7CisgICAgY2FzZSBQb2xpY3lF
cnJvckNhbm5vdFNob3dNaW1lVHlwZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJS
T1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFOworICAgIGNhc2UgUG9saWN5RXJyb3JDYW5ub3RTaG93
VVJMOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkw7
CisgICAgY2FzZSBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U6
CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBU
RURfQllfUE9MSUNZX0NIQU5HRTsKKyAgICBjYXNlIFBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJp
Y3RlZFBvcnQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9VU0Vf
UkVTVFJJQ1RFRF9QT1JUOworICAgIGNhc2UgUGx1Z2luRXJyb3JGYWlsZWQ6CisgICAgICAgIHJl
dHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxFRDsKKyAgICBjYXNlIFBsdWdpbkVycm9yQ2Fu
bm90RmluZFBsdWdpbjoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9U
X0ZJTkRfUExVR0lOOworICAgIGNhc2UgUGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luOgorICAg
ICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU47CisgICAg
Y2FzZSBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9Q
TFVHSU5fRVJST1JfSkFWQV9VTkFWQUlMQUJMRTsKKyAgICBjYXNlIFBsdWdpbkVycm9yQ29ubmVj
dGlvbkNhbmNlbGxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVD
VElPTl9DQU5DRUxMRUQ7CisgICAgY2FzZSBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkOgorICAg
ICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV0VC
S0lUX05FVFdPUktfRVJST1JfRkFJTEVEOworICAgIH0KK30KKwogRnJhbWVMb2FkZXJDbGllbnQ6
OkZyYW1lTG9hZGVyQ2xpZW50KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKICAgICA6IG1fZnJhbWUo
ZnJhbWUpCiAgICAgLCBtX3BvbGljeURlY2lzaW9uKDApCkBAIC05OTMsNyArMTAzNCw3IEBAIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqIGxvYWRlciwKICAgICAgICAgcmV0dXJuOwogCiAgICAgR1VuaXF1ZVB0cjxH
RXJyb3I+IHdlYkVycm9yKGdfZXJyb3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhl
cnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwKLSAgICAgICAgZXJyb3IuZXJyb3JDb2RlKCks
IGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICB0
b1dlYktpdE5ldHdvcmtFcnJvcihlcnJvci5lcnJvckNvZGUoKSksIGVycm9yLmxvY2FsaXplZERl
c2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogCiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1l
KHdlYlJlc291cmNlLCAibG9hZC1mYWlsZWQiLCB3ZWJFcnJvci5nZXQoKSk7CiAgICAgZ19zaWdu
YWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUsICJyZXNvdXJjZS1sb2FkLWZhaWxlZCIsIHdlYlJlc291
cmNlLCB3ZWJFcnJvci5nZXQoKSk7CkBAIC0xMDIxLDkgKzEwNjIsMTAgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKICAgICBub3RpZnlTdGF0dXMobV9mcmFtZSwgV0VCS0lUX0xPQURfRkFJTEVEKTsKIAogICAg
IFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOworCiAg
ICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVycm9yKGdfZXJyb3JfbmV3X2xpdGVyYWwoCiAgICAg
ICAgIGdfcXVhcmtfZnJvbV9zdHJpbmcoZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0g
ICAgICAgIGVycm9yLmVycm9yQ29kZSgpLAorICAgICAgICB0b1dlYktpdE5ldHdvcmtFcnJvcihl
cnJvci5lcnJvckNvZGUoKSksCiAgICAgICAgIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCku
dXRmOCgpLmRhdGEoKSkpOwogICAgIGdib29sZWFuIGlzSGFuZGxlZCA9IGZhbHNlOwogICAgIGdf
c2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAibG9hZC1lcnJvciIsIG1fZnJhbWUsIGVycm9y
LmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgpLCB3ZWJFcnJvci5nZXQoKSwgJmlzSGFuZGxlZCk7
CkBAIC0xMDk1LDcgKzExMzcsNyBAQCBSZXNvdXJjZUVycm9yIEZyYW1lTG9hZGVyQ2xpZW50Ojpw
bHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9ucwogCiBib29sIEZy
YW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKIHsKLSAgICByZXR1cm4gIShlcnJvci5pc0NhbmNlbGxhdGlvbigpIHx8IGVycm9yLmVycm9y
Q29kZSgpID09IFdFQktJVF9QT0xJQ1lfRVJST1JfRlJBTUVfTE9BRF9JTlRFUlJVUFRFRF9CWV9Q
T0xJQ1lfQ0hBTkdFIHx8IGVycm9yLmVycm9yQ29kZSgpID09IFdFQktJVF9QTFVHSU5fRVJST1Jf
V0lMTF9IQU5ETEVfTE9BRCk7CisgICAgcmV0dXJuICEoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSB8
fCBlcnJvci5lcnJvckNvZGUoKSA9PSBQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQ
b2xpY3lDaGFuZ2UgfHwgZXJyb3IuZXJyb3JDb2RlKCkgPT0gUGx1Z2luRXJyb3JXaWxsSGFuZGxl
TG9hZCk7CiB9CiAKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OmNhbkNhY2hlUGFnZSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlv
bmFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlv
bmFjdGlvbi5jcHAKaW5kZXggYzc4ZTc1NGFlZWNiZTVhMmZjZDNjZDIyZjhjMWRlZDQ0ODNkOTQx
MS4uZTg1OGFjN2ViM2M3NjU3YTc3OTUwZjlkM2NmMmI3NTQzNmUwNTIyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNw
cApAQCAtMzYyLDE0ICszNjIsNDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9u
X2FjdGlvbl9zZXRfdGFyZ2V0X2ZyYW1lKFdlYktpdFdlYk5hdmlnYXRpb25BY3QKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLVdlYktpdFdlYk5hdmlnYXRpb25SZWFzb24ga2l0KFdlYkNvcmU6Ok5h
dmlnYXRpb25UeXBlIHR5cGUpCitpbmxpbmUgV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiBraXQo
V2ViQ29yZTo6TmF2aWdhdGlvblR5cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gKFdlYktpdFdlYk5h
dmlnYXRpb25SZWFzb24pdHlwZTsKKyAgICBzd2l0Y2godHlwZSkgeworICAgIGNhc2UgV2ViQ29y
ZTo6TmF2aWdhdGlvblR5cGVMaW5rQ2xpY2tlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJf
TkFWSUdBVElPTl9SRUFTT05fTElOS19DTElDS0VEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdh
dGlvblR5cGVGb3JtU3VibWl0dGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FU
SU9OX1JFQVNPTl9GT1JNX1NVQk1JVFRFRDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25U
eXBlQmFja0ZvcndhcmQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVB
U09OX0JBQ0tfRk9SV0FSRDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlUmVsb2Fk
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9SRUxPQUQ7Cisg
ICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZDoKKyAgICAgICAg
cmV0dXJuIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9SRVNVQk1JVFRFRDsKKyAg
ICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlT3RoZXI6CisgICAgICAgIHJldHVybiBXRUJL
SVRfV0VCX05BVklHQVRJT05fUkVBU09OX09USEVSOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9O
X1JFQVNPTl9MSU5LX0NMSUNLRUQ7CisgICAgfQogfQogCi1XZWJDb3JlOjpOYXZpZ2F0aW9uVHlw
ZSBjb3JlKFdlYktpdFdlYk5hdmlnYXRpb25SZWFzb24gdHlwZSkKK2lubGluZSBXZWJDb3JlOjpO
YXZpZ2F0aW9uVHlwZSBjb3JlKFdlYktpdFdlYk5hdmlnYXRpb25SZWFzb24gdHlwZSkKIHsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6TmF2aWdhdGlvblR5cGU+KHR5cGUpOworICAg
IHN3aXRjaCh0eXBlKSB7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0xJ
TktfQ0xJQ0tFRDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlTGlua0Ns
aWNrZWQ7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1fU1VCTUlU
VEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVk
OworICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9CQUNLX0ZPUldBUkQ6Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJkOworICAgIGNh
c2UgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9SRUxPQUQ6CisgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZVJlbG9hZDsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdB
VElPTl9SRUFTT05fRk9STV9SRVNVQk1JVFRFRDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5h
dmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkOworICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJR0FU
SU9OX1JFQVNPTl9PVEhFUjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBl
T3RoZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkOworICAgIH0KIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRp
bmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAK
aW5kZXggNzQyYjIzZDQwYWQ1NDc4MzMyZDQxYzhjMmIyN2EzZmU2ZTE0YTkwZC4uYzEzYmMwZWRm
YWExM2RkNTZjNWJlODE3ZWM0ZWZmMjk4ZDZmNGI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCkBAIC0xNjU4LDkgKzE2NTgsMTkgQEAgY2hh
ciogd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkkoV2ViS2l0V2ViU2V0dGluZ3MqIHdl
YlNldHRpbmdzLCBjb25zdCBjaGEKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYkNvcmU6OkVk
aXRpbmdCZWhhdmlvclR5cGUgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3IgdHlwZSkKK2lubGlu
ZSBXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlIGNvcmUoV2ViS2l0RWRpdGluZ0JlaGF2aW9y
IHR5cGUpCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlv
clR5cGU+KHR5cGUpOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgV0VCS0lUX0VESVRJ
TkdfQkVIQVZJT1JfTUFDOgorICAgICAgICByZXR1cm4gRWRpdGluZ01hY0JlaGF2aW9yOworICAg
IGNhc2UgV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfV0lORE9XUzoKKyAgICAgICAgcmV0dXJuIEVk
aXRpbmdXaW5kb3dzQmVoYXZpb3I7CisgICAgY2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9V
TklYOgorICAgICAgICByZXR1cm4gRWRpdGluZ1VuaXhCZWhhdmlvcjsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIEVkaXRpbmdNYWNC
ZWhhdmlvcjsKKyAgICB9CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcAppbmRleCAwNzk3MTMxNmI3MGEyMmZmYzVmNzY5ODM1OGU5NGM4NzczNTlkM2Fk
Li45MDk3Y2UwOWYyZGQ3NjFmM2Y3NjRlNzM0NzZhMzcyMjMyYzFmMTYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0xMTksNiArMTE5LDcgQEAKICNp
bmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1z
Lmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNsdWRlIDxndGsvZ3RrLmg+CiAj
aW5jbHVkZSA8d3RmL2dvYmplY3QvR093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KIApAQCAtMjgzLDYgKzI4NCw0NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
c2V0dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1Bhcgogc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF93aW5kb3dfZmVhdHVyZXMoV2ViS2l0V2ViVmll
dyogd2ViVmlldywgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzKTsK
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdEaXJlY3Rpb25DaGFuZ2VkKFdlYktpdFdlYlZpZXcq
LCBHdGtUZXh0RGlyZWN0aW9uIHByZXZpb3VzRGlyZWN0aW9uLCBncG9pbnRlcik7CiAKK3N0YXRp
YyBpbmxpbmUgV2ViS2l0V2ViVmlld1RhcmdldEluZm8gdG9XZWJLaXRXZWJWaWV3VGFyZ2V0SW5m
byhQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0VHlwZSBmbGFncykKK3sKKyAgICBz
d2l0Y2ggKGZsYWdzKSB7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTWFy
a3VwOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUw7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQ6
CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlSW1hZ2U6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSU1BR0U7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3Q6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVVJJX0xJU1Q7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZU5ldHNjYXBl
VVJMOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX05FVFNDQVBF
X1VSTDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRN
TDsKKyAgICB9Cit9CisKK3N0YXRpYyBHdGtUYXJnZXRMaXN0KiBjb3B5R3RrVGFyZ2V0TGlzdENv
bnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhHdGtUYXJnZXRMaXN0
KiBjb3JlR3RrVGFyZ2V0TGlzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlR3Rr
VGFyZ2V0TGlzdCwgbnVsbHB0cik7CisKKyAgICBHdGtUYXJnZXRMaXN0KiB0YXJnZXRMaXN0V2l0
aFdlYktpdEVudW1WYWx1ZXMgPSBudWxscHRyOworICAgIGludCB0YWJsZVNpemUgPSAwOworICAg
IEd0a1RhcmdldEVudHJ5KiB0YWJsZShndGtfdGFyZ2V0X3RhYmxlX25ld19mcm9tX2xpc3QoY29y
ZUd0a1RhcmdldExpc3QsICZ0YWJsZVNpemUpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
dGFibGVTaXplOyBpKyspCisgICAgICAgIHRhYmxlW2ldLmZsYWdzID0gdG9XZWJLaXRXZWJWaWV3
VGFyZ2V0SW5mbyhzdGF0aWNfY2FzdDxQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0
VHlwZT4odGFibGVbaV0uZmxhZ3MpKTsKKworICAgIHRhcmdldExpc3RXaXRoV2ViS2l0RW51bVZh
bHVlcyA9IGd0a190YXJnZXRfbGlzdF9uZXcodGFibGUsIHRhYmxlU2l6ZSk7CisgICAgZ3RrX3Rh
cmdldF90YWJsZV9mcmVlKHRhYmxlLCB0YWJsZVNpemUpOworCisgICAgcmV0dXJuIHRhcmdldExp
c3RXaXRoV2ViS2l0RW51bVZhbHVlczsKK30KKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
c3RhdGljIHZvaWQgUG9wdXBNZW51UG9zaXRpb25GdW5jKEd0a01lbnUqIG1lbnUsIGdpbnQgKngs
IGdpbnQgKnksIGdib29sZWFuICpwdXNoSW4sIGdwb2ludGVyIHVzZXJEYXRhKQogewpAQCAtMTM4
MSw2ICsxNDIzLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UoR09iamVj
dCogb2JqZWN0KQogICAgIHByaXYtPndlYldpbmRvd0ZlYXR1cmVzLmNsZWFyKCk7CiAgICAgcHJp
di0+bWFpblJlc291cmNlLmNsZWFyKCk7CiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzLmNsZWFyKCk7
CisgICAgcHJpdi0+dGFyZ2V0TGlzdC5jbGVhcigpOwogCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Vi
a2l0X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKIApAQCAtMzg3NCwx
MCArMzkxNywxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQogCiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzID0gYWRvcHRHUmVmKGdfaGFz
aF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwgZ19mcmVlLCBnX29iamVj
dF91bnJlZikpOwogCisgICAgcHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5R3RrVGFy
Z2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQYXN0
ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpKTsK
KwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgcHJpdi0+ZHJhZ0FuZERyb3BIZWxwZXIu
c2V0V2lkZ2V0KEdUS19XSURHRVQod2ViVmlldykpOwogICAgIGd0a19kcmFnX2Rlc3Rfc2V0KEdU
S19XSURHRVQod2ViVmlldyksIHN0YXRpY19jYXN0PEd0a0Rlc3REZWZhdWx0cz4oMCksIDAsIDAs
IHN0YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KEdES19BQ1RJT05fQ09QWSB8IEdES19BQ1RJT05f
Q09QWSB8IEdES19BQ1RJT05fTU9WRSB8IEdES19BQ1RJT05fTElOSyB8IEdES19BQ1RJT05fUFJJ
VkFURSkpOwotICAgIGd0a19kcmFnX2Rlc3Rfc2V0X3RhcmdldF9saXN0KEdUS19XSURHRVQod2Vi
VmlldyksIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdl
dExpc3QoKSk7CisgICAgZ3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0X2xpc3QoR1RLX1dJREdFVCh3
ZWJWaWV3KSwgcHJpdi0+dGFyZ2V0TGlzdC5nZXQoKSk7CiAjZW5kaWYKIAogICAgIHByaXYtPnNl
bGZTY3JvbGxpbmcgPSBmYWxzZTsKQEAgLTQ2OTIsNyArNDczNyw4IEBAIHZvaWQgd2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBmbGFn
KQogICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9s
aXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7Ci0gICAgcmV0dXJuIFBhc3RlYm9hcmRIZWxw
ZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKTsKKyAgICB3ZWJWaWV3
LT5wcml2LT50YXJnZXRMaXN0ID0gYWRvcHRHUmVmKGNvcHlHdGtUYXJnZXRMaXN0Q29udmVydGlu
Z1dlYkNvcmVFbnVtVmFsdWVzVG9XZWJLaXRFbnVtVmFsdWVzKFBhc3RlYm9hcmRIZWxwZXI6OmRl
ZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKSkpOworICAgIHJldHVybiB3ZWJW
aWV3LT5wcml2LT50YXJnZXRMaXN0LmdldCgpOwogfQogCiAvKioKQEAgLTQ3MDksNyArNDc1NSw4
IEBAIEd0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdChX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92
aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotICAg
IHJldHVybiBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJn
ZXRMaXN0KCk7CisgICAgd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5
R3RrVGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVl
cyhQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0
KCkpKTsKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdC5nZXQoKTsKIH0KIAog
LyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5o
CmluZGV4IDNmNjkyN2UxNjJkYjFkMjA5NjI1MGY1NmUzODMzM2NhZTBkZjc0M2IuLjZiOTAzNmNk
ZjRlMWY1N2ViMjkyODU5ZTg3ODFmMzgxM2I3MjYyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgc3Ry
dWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVy
IGNsaWNrQ291bnRlcjsKICAgICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5k
RHJvcEhlbHBlcjsKICAgICBib29sIHNlbGZTY3JvbGxpbmc7CisgICAgR1JlZlB0cjxHdGtUYXJn
ZXRMaXN0PiB0YXJnZXRMaXN0OwogCiAgICAgT3duUHRyPFdlYktpdDo6QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQ+IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlv
blJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0
aGVudGljYXRpb25SZXF1ZXN0LmNwcAppbmRleCA2ZjBjMzcwN2UzNzhlNDJhOTNiMmRmYjkzYWQw
ZjMwYWU1YjdiMmRhLi5jYTc0ODBjZDkyMjI0NTlkNDcyMDNkYzk0M2RlNTMxZmI3MWUwYjljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50
aWNhdGlvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5jcHAKQEAgLTY3LDE4ICs2NywzNSBAQCBzdHJ1
Y3QgX1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdFByaXZhdGUgewogCiBzdGF0aWMgZ3VpbnQg
c2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxULCBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUMsIFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0RJR0VTVCwgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0KTsKLUNPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVE1MX0ZPUk0sIFBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm0pOwotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05UTE0sIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfTkVHT1RJQVRFLCBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZSk7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfQ0xJRU5UX0NFUlRJRklD
QVRFX1JFUVVFU1RFRCwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRD
ZXJ0aWZpY2F0ZVJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVE
LCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlv
blJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5U
SUNBVElPTl9TQ0hFTUVfVU5LTk9XTiwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVVbmtub3duKTsKLQogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVx
dWVzdCwgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpCiAKK2lu
bGluZSBzdGF0aWMgV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUgdG9XZWJLaXRBdXRoZW50aWNh
dGlvblNjaGVtZShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBj
b3JlU2NoZW1lKQoreworICAgIHN3aXRjaCAoY29yZVNjaGVtZSkgeworICAgIGNhc2UgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIGNhc2UgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUM7CisgICAg
Y2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdl
c3Q6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfRElH
RVNUOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVIVE1MRm9ybToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVf
SFRNTF9GT1JNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVOVExNOgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVN
RV9OVExNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVOZWdvdGlhdGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NI
RU1FX05FR09USUFURTsKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgICAgIHJldHVybiBX
RUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0NMSUVOVF9DRVJUSUZJQ0FURV9SRVFVRVNURUQ7
CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNl
cnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRI
RU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVEOworICAg
IGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3du
OgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9VTktOT1dOOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIH0KK30KKwogc3Rh
dGljIHZvaWQgd2Via2l0QXV0aGVudGljYXRpb25SZXF1ZXN0RGlzcG9zZShHT2JqZWN0KiBvYmpl
Y3QpCiB7CiAgICAgV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lU
X0FVVEhFTlRJQ0FUSU9OX1JFUVVFU1Qob2JqZWN0KTsKQEAgLTI0NCw3ICsyNjEsNyBAQCBXZWJL
aXRBdXRoZW50aWNhdGlvblNjaGVtZSB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRf
c2NoZW1lKFdlYktpdEF1dGhlbgogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19BVVRIRU5USUNBVElPTl9SRVFVRVNUKHJlcXVlc3QpLCBXRUJLSVRfQVVUSEVOVElDQVRJT05f
U0NIRU1FX1VOS05PV04pOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdEF1dGhlbnRp
Y2F0aW9uU2NoZW1lPihyZXF1ZXN0LT5wcml2LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+cHJv
dGVjdGlvblNwYWNlKCktPmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkpOworICAgIHJldHVybiB0b1dl
YktpdEF1dGhlbnRpY2F0aW9uU2NoZW1lKHJlcXVlc3QtPnByaXYtPmF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLT5wcm90ZWN0aW9uU3BhY2UoKS0+YXV0aGVudGljYXRpb25TY2hlbWUoKSk7CiB9CiAK
IC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
Q29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRDb29raWVNYW5hZ2VyLmNwcAppbmRleCAyYzFlZjQ1NjhhYzc4NjFjZThmMmRjNTExZjM4MTkx
OTM2ZjdlMmMxLi5mYzFmOTFhM2Q4MGY4OWVjZWVkZWYwM2U3OGZiOGQ4NDY4NjVmMWIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29r
aWVNYW5hZ2VyLmNwcApAQCAtNjUsMTIgKzY1LDQ4IEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xB
U1RfU0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdENvb2tpZU1h
bmFnZXIsIHdlYmtpdF9jb29raWVfbWFuYWdlciwgR19UWVBFX09CSkVDVCkKIAotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhU
LCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUZXh0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfU1FMSVRFLCBTb3VwQ29v
a2llUGVyc2lzdGVudFN0b3JhZ2VTUUxpdGUpOworaW5saW5lIHN0YXRpYyBTb3VwQ29va2llUGVy
c2lzdGVudFN0b3JhZ2VUeXBlIHRvU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZShXZWJL
aXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZSBraXRTdG9yYWdlKQoreworICAgIHN3aXRjaCAoa2l0
U3RvcmFnZSkgeworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfVEVY
VDoKKyAgICAgICAgcmV0dXJuIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVRleHQ7CisgICAg
Y2FzZSBXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9TUUxJVEU6CisgICAgICAgIHJl
dHVybiBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VTUUxpdGU7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBTb3VwQ29va2llUGVy
c2lzdGVudFN0b3JhZ2VUZXh0OworICAgIH0KK30KKworaW5saW5lIHN0YXRpYyBXZWJLaXRDb29r
aWVBY2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBodHRwUG9saWN5KQoreworICAgIHN3aXRjaCAoaHR0cFBvbGljeSkgeworICAgIGNh
c2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9D
T09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9s
aWN5TmV2ZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVW
RVI7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnRE
b21haW46CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJ
UkRfUEFSVFk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfQUxXQVlTOworICAgIH0K
K30KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BPTElDWV9B
Q0NFUFRfQUxXQVlTLCBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKTsKLUNPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSLCBIVFRQ
Q29va2llQWNjZXB0UG9saWN5TmV2ZXIpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRfUEFSVFksIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbik7CitpbmxpbmUgc3RhdGljIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdENvb2tpZUFj
Y2VwdFBvbGljeSBraXRQb2xpY3kpCit7CisgICAgc3dpdGNoIChraXRQb2xpY3kpIHsKKyAgICBj
YXNlIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM6CisgICAgICAgIHJldHVybiBI
VFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJ
Q1lfQUNDRVBUX05FVkVSOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU5l
dmVyOworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZ
OgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKKyAgICB9Cit9CiAK
IHN0YXRpYyB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9jbGFzc19pbml0KFdlYktpdENvb2tp
ZU1hbmFnZXJDbGFzcyogZmluZENsYXNzKQogewpAQCAtMTM0LDcgKzE3MCw3IEBAIHZvaWQgd2Vi
a2l0X2Nvb2tpZV9tYW5hZ2VyX3NldF9wZXJzaXN0ZW50X3N0b3JhZ2UoV2ViS2l0Q29va2llTWFu
YWdlciogbWFuYWdlciwKICAgICBnX3JldHVybl9pZl9mYWlsKGZpbGVuYW1lKTsKIAogICAgIG1h
bmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2Vz
KCk7Ci0gICAgbWFuYWdlci0+cHJpdi0+d2ViQ29va2llTWFuYWdlci0+c2V0Q29va2llUGVyc2lz
dGVudFN0b3JhZ2UoU3RyaW5nOjpmcm9tVVRGOChmaWxlbmFtZSksIHN0b3JhZ2UpOworICAgIG1h
bmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
KFN0cmluZzo6ZnJvbVVURjgoZmlsZW5hbWUpLCB0b1NvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFn
ZVR5cGUoc3RvcmFnZSkpOwogICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwogfQogCkBAIC0xNDksMTMgKzE4NSwxMyBAQCB2
b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNjZXB0X3BvbGljeShXZWJLaXRDb29raWVN
YW5hZ2VyKiBtYW5hZ2VyLCBXZWJLaQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lT
X0NPT0tJRV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tp
ZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKKyAgICBtYW5hZ2Vy
LT5wcml2LT53ZWJDb29raWVNYW5hZ2VyLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHRvSFRU
UENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0Q29v
a2llTWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKFdLSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCiB7CiAgICAgR1JlZlB0cjxHVGFz
az4gdGFzayA9IGFkb3B0R1JlZihHX1RBU0soY29udGV4dCkpOwotICAgIGdfdGFza19yZXR1cm5f
aW50KHRhc2suZ2V0KCksIHBvbGljeSk7CisgICAgZ190YXNrX3JldHVybl9pbnQodGFzay5nZXQo
KSwgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBv
bGljeSkpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdENyZWRlbnRpYWwuY3BwCmluZGV4IDU3NTVmZDVjN2M4MDY1ZjViMWY2ZjVl
MTI4OTdiMzI3N2IwM2Q0ZWUuLjBiOTA2ZDY3ODhkMzhmYmE3Y2Y0NTk4MjYzY2U3ZTIwMmI0MWE2
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENy
ZWRlbnRpYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dENyZWRlbnRpYWwuY3BwCkBAIC0zNywxMiArMzcsMzggQEAgc3RydWN0IF9XZWJLaXRDcmVkZW50
aWFsIHsKICAgICBDU3RyaW5nIHBhc3N3b3JkOwogfTsKIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FLCBXZWJDb3JlOjpDcmVk
ZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfRk9SX1NFU1NJT04sIFdlYkNvcmU6OkNyZWRlbnRp
YWxQZXJzaXN0ZW5jZUZvclNlc3Npb24pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQsIFdlYkNvcmU6OkNyZWRlbnRp
YWxQZXJzaXN0ZW5jZVBlcm1hbmVudCk7Ci0KIEdfREVGSU5FX0JPWEVEX1RZUEUoV2ViS2l0Q3Jl
ZGVudGlhbCwgd2Via2l0X2NyZWRlbnRpYWwsIHdlYmtpdF9jcmVkZW50aWFsX2NvcHksIHdlYmtp
dF9jcmVkZW50aWFsX2ZyZWUpCiAKK2lubGluZSBzdGF0aWMgV2ViS2l0Q3JlZGVudGlhbFBlcnNp
c3RlbmNlIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZSBjb3JlUGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChjb3JlUGVyc2lzdGVu
Y2UpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FOworICAgIGNhc2Ug
V2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbjoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX0ZPUl9TRVNTSU9OOworICAgIGNhc2UgV2Vi
Q29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlUGVybWFuZW50OgorICAgICAgICByZXR1cm4gV0VC
S0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5UOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV0VCS0lUX0NSRURFTlRJ
QUxfUEVSU0lTVEVOQ0VfTk9ORTsKKyAgICB9Cit9CisKK2lubGluZSBzdGF0aWMgV2ViQ29yZTo6
Q3JlZGVudGlhbFBlcnNpc3RlbmNlIHRvV2ViQ29yZUNyZWRlbnRpYWxQZXJzaXN0ZW5jZShXZWJL
aXRDcmVkZW50aWFsUGVyc2lzdGVuY2Uga2l0UGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChr
aXRQZXJzaXN0ZW5jZSkgeworICAgIGNhc2UgV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0Vf
Tk9ORToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU7
CisgICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9GT1JfU0VTU0lPTjoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb247Cisg
ICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQ6CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VQZXJtYW5lbnQ7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lOworICAgIH0KK30KKwogV2ViS2l0Q3JlZGVu
dGlhbCogd2Via2l0Q3JlZGVudGlhbENyZWF0ZShjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiBj
b3JlQ3JlZGVudGlhbCkKIHsKICAgICBXZWJLaXRDcmVkZW50aWFsKiBjcmVkZW50aWFsID0gZ19z
bGljZV9uZXcoV2ViS2l0Q3JlZGVudGlhbCk7CkBAIC03Myw3ICs5OSw3IEBAIFdlYktpdENyZWRl
bnRpYWwqIHdlYmtpdF9jcmVkZW50aWFsX25ldyhjb25zdCBnY2hhciogdXNlcm5hbWUsIGNvbnN0
IGdjaGFyKiBwYXNzCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwodXNlcm5hbWUsIDApOwogICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHBhc3N3b3JkLCAwKTsKIAotICAgIHJldHVybiB3ZWJraXRD
cmVkZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2Vy
bmFtZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpD
cmVkZW50aWFsUGVyc2lzdGVuY2U+KHBlcnNpc3RlbmNlKSkpOworICAgIHJldHVybiB3ZWJraXRD
cmVkZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2Vy
bmFtZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCB0b1dlYkNvcmVDcmVkZW50aWFsUGVy
c2lzdGVuY2UocGVyc2lzdGVuY2UpKSk7CiB9CiAKIC8qKgpAQCAtMTc4LDUgKzIwNCw1IEBAIFdl
YktpdENyZWRlbnRpYWxQZXJzaXN0ZW5jZSB3ZWJraXRfY3JlZGVudGlhbF9nZXRfcGVyc2lzdGVu
Y2UoV2ViS2l0Q3JlZGVudGlhbCoKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjcmVkZW50
aWFsLCBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FKTsKIAotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGNyZWRlbnRpYWwtPmNyZWRl
bnRpYWwucGVyc2lzdGVuY2UoKSk7CisgICAgcmV0dXJuIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNp
c3RlbmNlKGNyZWRlbnRpYWwtPmNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKaW5k
ZXggZTk1ZTRjMDY1MGIzOTNlOGM4YWFiYjY0M2NiMzcwZmVlNDQ5ZDU5My4uYzQ4M2I5MjdjZmQy
MzY3MDVjMjI4NmQ3NmM3Nzc2MmRlMGVjMDA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcApAQCAtMjMsNiArMjMsNyBAQAog
I2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXREb3dubG9hZFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4K
QEAgLTM0MCw3ICszNDEsNyBAQCB2b2lkIHdlYmtpdERvd25sb2FkTm90aWZ5UHJvZ3Jlc3MoV2Vi
S2l0RG93bmxvYWQqIGRvd25sb2FkLCBndWludDY0IGJ5dGVzUmVjZWl2ZQogdm9pZCB3ZWJraXRE
b3dubG9hZEZhaWxlZChXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IFJlc291cmNlRXJy
b3ImIHJlc291cmNlRXJyb3IpCiB7CiAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVycm9yKGdf
ZXJyb3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhyZXNvdXJjZUVycm9yLmRvbWFp
bigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCBy
ZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAg
ICAgICB0b1dlYktpdEVycm9yKHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCkpLCByZXNvdXJjZUVy
cm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIGlmIChkb3du
bG9hZC0+cHJpdi0+dGltZXIpCiAgICAgICAgIGdfdGltZXJfc3RvcChkb3dubG9hZC0+cHJpdi0+
dGltZXIuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRFcnJvci5jcHAKaW5kZXggYzA2ZGM2MWE1OGNjNGFhMGE2YzE2ZGE2NTQ2NDA0YTYwZTAx
MjRmZS4uNzQxOWVlNzIxYTBmZTg2YWJjMzY0MzZkMjRlYzI1ZTQ2NDIzZThjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcApAQCAtNDAs
NTMgKzQwLDI2IEBAIEdRdWFyayB3ZWJraXRfbmV0d29ya19lcnJvcl9xdWFyaygpCiAgICAgcmV0
dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9yRG9tYWluTmV0d29y
ayk7CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJS
T1JfRkFJTEVELCBOZXR3b3JrRXJyb3JGYWlsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQsIE5ldHdvcmtFcnJvclRyYW5zcG9y
dCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX1VO
S05PV05fUFJPVE9DT0wsIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRCwgTmV0d29y
a0Vycm9yQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05F
VFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVCwgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RF
eGlzdCk7Ci0KIEdRdWFyayB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrKCkKIHsKICAgICByZXR1
cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5Qb2xpY3kp
OwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1Jf
RkFJTEVELCBQb2xpY3lFcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNh
bm5vdFNob3dNaW1lVHlwZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9Q
T0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xP
QURfSU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRl
cnJ1cHRlZEJ5UG9saWN5Q2hhbmdlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JD
YW5ub3RVc2VSZXN0cmljdGVkUG9ydCk7Ci0KIEdRdWFyayB3ZWJraXRfcGx1Z2luX2Vycm9yX3F1
YXJrKCkKIHsKICAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6
ZXJyb3JEb21haW5QbHVnaW4pOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9QTFVHSU5fRVJST1JfRkFJTEVELCBQbHVnaW5FcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lO
LCBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTiwgUGx1Z2luRXJyb3JD
YW5ub3RMb2FkUGx1Z2luKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BM
VUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFLCBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVD
VElPTl9DQU5DRUxMRUQsIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9B
RCwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCk7Ci0KIEdRdWFyayB3ZWJraXRfZG93bmxvYWRf
ZXJyb3JfcXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhX
ZWJDb3JlOjplcnJvckRvbWFpbkRvd25sb2FkKTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSywgRG93bmxvYWRFcnJvck5ldHdv
cmspOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1Jf
Q0FOQ0VMTEVEX0JZX1VTRVIsIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIpOwotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT04s
IERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbik7Ci0KIEdRdWFyayB3ZWJraXRfcHJpbnRfZXJyb3Jf
cXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3Jl
OjplcnJvckRvbWFpblByaW50KTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfUFJJTlRfRVJST1JfR0VORVJBTCwgUHJpbnRFcnJvckdlbmVyYWwpOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQs
IFByaW50RXJyb3JQcmludGVyTm90Rm91bmQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9QQUdFX1JBTkdFLCBQcmludEVycm9ySW52YWxp
ZFBhZ2VSYW5nZSk7Ci0KIEdRdWFyayB3ZWJraXRfamF2YXNjcmlwdF9lcnJvcl9xdWFyaygpCiB7
CiAgICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKCJXZWJLaXRKYXZhc2NyaXB0
RXJyb3IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZpbmRDb250cm9sbGVyLmNwcAppbmRleCA4NzU5MzA2ZTJiY2YxZjk2MWU1Nzg0MWNi
MTQ2YjYwZmMyNmQ1OWY2Li42ZTcxNDFlNGU4M2Q4NTEwZmUzODRhZTA3YTVkNzIwNzc4YTljMzBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5k
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RmluZENvbnRyb2xsZXIuY3BwCkBAIC04MiwxMSArODIsMjIgQEAgc3RhdGljIGd1aW50IHNp
Z25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0
RmluZENvbnRyb2xsZXIsIHdlYmtpdF9maW5kX2NvbnRyb2xsZXIsIEdfVFlQRV9PQkpFQ1QpCiAK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lO
U0VOU0lUSVZFLCBGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSk7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9GSU5EX09QVElPTlNfQVRfV09SRF9TVEFSVFMsIEZpbmRPcHRp
b25zQXRXb3JkU3RhcnRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJ
TkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJULCBGaW5kT3B0aW9u
c1RyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMsIEZpbmRPcHRpb25zQmFja3dhcmRz
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19XUkFQ
X0FST1VORCwgRmluZE9wdGlvbnNXcmFwQXJvdW5kKTsKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpG
aW5kT3B0aW9ucyB0b1dlYktpdEZpbmRPcHRpb25zKFdlYktpdEZpbmRPcHRpb25zIHR5cGUpCit7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KCh0eXBlICYgV0VC
S0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VOU0lUSVZFID8gRmluZE9wdGlvbnNDYXNlSW5zZW5z
aXRpdmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19BVF9XT1JE
X1NUQVJUUyA/IEZpbmRPcHRpb25zQXRXb3JkU3RhcnRzIDogMCkKKyAgICAgICAgfCAodHlwZSAm
IFdFQktJVF9GSU5EX09QVElPTlNfVFJFQVRfTUVESUFMX0NBUElUQUxfQVNfV09SRF9TVEFSVCA/
IEZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQgOiAwKQorICAgICAgICB8
ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMgPyBGaW5kT3B0aW9uc0JhY2t3
YXJkcyA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1dSQVBfQVJP
VU5EID8gRmluZE9wdGlvbnNXcmFwQXJvdW5kIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdFQktJ
VF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID8gRmluZE9wdGlvbnNTaG93T3ZlcmxheSA6IDAp
CisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfRklORF9JTkRJQ0FU
T1IgPyBGaW5kT3B0aW9uc1Nob3dGaW5kSW5kaWNhdG9yIDogMCkKKyAgICAgICAgfCAodHlwZSAm
IFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19ISUdITElHSFQgPyBGaW5kT3B0aW9uc1Nob3dIaWdo
bGlnaHQgOiAwKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b1dl
YktpdEZpbmRPcHRpb25zKHVpbnQzMl90IHR5cGUpCit7CisgICAgcmV0dXJuIHRvV2ViS2l0Rmlu
ZE9wdGlvbnMoc3RhdGljX2Nhc3Q8V2ViS2l0RmluZE9wdGlvbnM+KHR5cGUpKTsKK30KIAogc3Rh
dGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5n
LCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewpAQCAtMzQ5
LDcgKzM2MCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdEZpbmRDb250cm9sbGVyUGVyZm9ybShXZWJL
aXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIsIFdlCiAgICAgV2ViS2l0RmluZENvbnRy
b2xsZXJQcml2YXRlKiBwcml2ID0gZmluZENvbnRyb2xsZXItPnByaXY7CiAgICAgaWYgKG9wZXJh
dGlvbiA9PSBDb3VudE9wZXJhdGlvbikgewogICAgICAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVy
KS0+Y291bnRTdHJpbmdNYXRjaGVzKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4dC5k
YXRhKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KHByaXYtPmZpbmRPcHRpb25zKSwg
cHJpdi0+bWF4TWF0Y2hDb3VudCk7CisgICAgICAgICAgICB0b1dlYktpdEZpbmRPcHRpb25zKHBy
aXYtPmZpbmRPcHRpb25zKSwgcHJpdi0+bWF4TWF0Y2hDb3VudCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTM2Miw5ICszNzMsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRGaW5kQ29udHJv
bGxlclBlcmZvcm0oV2ViS2l0RmluZENvbnRyb2xsZXIqIGZpbmRDb250cm9sbGVyLCBXZQogICAg
ICAgICAvLyB1bmNvbmRpdGlvbmFsbHkgc2hvdyBoaWdobGlnaHRzLiBCb3RoIHNlYXJjaF9uZXh0
KCkgYW5kCiAgICAgICAgIC8vIHNlYXJjaF9wcmV2KCkgc2hvdWxkIG5vdCBlbmFibGUgaGlnaGxp
Z2h0aW5nIHRvIGF2b2lkIGFuCiAgICAgICAgIC8vIGV4dHJhIHVubWFya0FsbFRleHRNYXRjaGVz
KCkgKyBtYXJrQWxsVGV4dE1hdGNoZXMoKQotICAgICAgICBmaW5kT3B0aW9ucyB8PSBGaW5kT3B0
aW9uc1Nob3dIaWdobGlnaHQ7CisgICAgICAgIGZpbmRPcHRpb25zIHw9IFdFQktJVF9GSU5EX09Q
VElPTlNfU0hPV19ISUdITElHSFQ7CiAKLSAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVyKS0+Zmlu
ZFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHByaXYtPnNlYXJjaFRleHQuZGF0YSgpKSwgc3RhdGlj
X2Nhc3Q8V2ViS2l0OjpGaW5kT3B0aW9ucz4oZmluZE9wdGlvbnMpLAorICAgIGdldFBhZ2UoZmlu
ZENvbnRyb2xsZXIpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4
dC5kYXRhKCkpLCB0b1dlYktpdEZpbmRPcHRpb25zKGZpbmRPcHRpb25zKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tYXhNYXRjaENvdW50KTsKIH0KIApA
QCAtNDI1LDcgKzQzNiw3IEBAIHZvaWQgd2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4
dChXZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIpCiAgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfRklORF9DT05UUk9MTEVSKGZpbmRDb250cm9sbGVyKSk7CiAKICAgICBm
aW5kQ29udHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0gfldFQktJVF9GSU5EX09QVElPTlNf
QkFDS1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9ucyAmPSB+Rmlu
ZE9wdGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0
aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsKICAgICB3ZWJLaXRG
aW5kQ29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0UHJldk9wZXJhdGlv
bik7CiB9CiAKQEAgLTQ0Myw3ICs0NTQsNyBAQCB2b2lkIHdlYmtpdF9maW5kX2NvbnRyb2xsZXJf
c2VhcmNoX3ByZXZpb3VzKFdlYktpdEZpbmRDb250cm9sbGVyKiBmaW5kQ29udHJvbGxlcgogICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTkRfQ09OVFJPTExFUihmaW5kQ29udHJvbGxl
cikpOwogCiAgICAgZmluZENvbnRyb2xsZXItPnByaXYtPmZpbmRPcHRpb25zIHw9IFdFQktJVF9G
SU5EX09QVElPTlNfQkFDS1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0
aW9ucyAmPSB+RmluZE9wdGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5w
cml2LT5maW5kT3B0aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsK
ICAgICB3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0
UHJldk9wZXJhdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCmluZGV4IDdiYWQxZDA1MTg0ZDMxNTZk
MWQxZmQ5NjQ0NWM5YzlkMTdmYTNmM2UuLmM4OWMzODY0ZmRlOGQ5MWVlYmU0MWMwNjEwYTYxMzg4
YzczNGQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaApAQCAtNjMsNiArNjMsMTAgQEAgdHlwZWRlZiBlbnVt
IHsKICAgV0VCS0lUX0ZJTkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NU
QVJUID0gMSA8PCAyLAogICBXRUJLSVRfRklORF9PUFRJT05TX0JBQ0tXQVJEUyA9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAxIDw8IDMsCiAgIFdFQktJVF9GSU5EX09QVElPTlNfV1JBUF9BUk9V
TkQgPSAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgNCwKKyAgLyo8IHByaXZhdGUgPiovCisg
IFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID0gICAgICAgICAgICAgICAgICAgICAg
IDEgPDwgNSwKKyAgV0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0ZJTkRfSU5ESUNBVE9SID0gICAg
ICAgICAgICAgICAgMSA8PCA2LAorICBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfSElHSExJR0hU
ID0gICAgICAgICAgICAgICAgICAgICAxIDw8IDcsCiB9IFdlYktpdEZpbmRPcHRpb25zOwogCiBz
dHJ1Y3QgX1dlYktpdEZpbmRDb250cm9sbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNw
cAppbmRleCAxYjc3YjZlYTdiNDY3MGYxOWU5NjA2MTA0Mzc3MmQxOTk0OWE5MjIxLi5iOWFjMjM0
YmY3YzMwZDVhMzUzOTk2N2YyNzdlZDExMTZkNGQwZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5k
bGVDbGllbnQuaCIKIAogI2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUuaCIKQEAgLTg3LDcgKzg4LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVdlYlZpZXdN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGMKICAgICAg
ICAgQVBJOjpFcnJvciogd2ViRXJyb3IgPSBzdGF0aWNfY2FzdDxBUEk6OkVycm9yKj4obWVzc2Fn
ZS5nZXQoU3RyaW5nOjpmcm9tVVRGOCgiRXJyb3IiKSkpOwogICAgICAgICBjb25zdCBSZXNvdXJj
ZUVycm9yJiBwbGF0Zm9ybUVycm9yID0gd2ViRXJyb3ItPnBsYXRmb3JtRXJyb3IoKTsKICAgICAg
ICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHJlc291cmNlRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChn
X3F1YXJrX2Zyb21fc3RyaW5nKHBsYXRmb3JtRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSks
Ci0gICAgICAgICAgICBwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpLCBwbGF0Zm9ybUVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJL
aXRFcnJvcihwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpKSwgcGxhdGZvcm1FcnJvci5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgICAgICB3ZWJraXRXZWJSZXNv
dXJjZUZhaWxlZChyZXNvdXJjZS5nZXQoKSwgcmVzb3VyY2VFcnJvci5nZXQoKSk7CiAgICAgICAg
IHdlYmtpdFdlYlZpZXdSZW1vdmVMb2FkaW5nV2ViUmVzb3VyY2Uod2ViVmlldywgcmVzb3VyY2VJ
ZGVudGlmaWVyLT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCmluZGV4IDRiMmU1OWMyNWZlN2Y4MDU1
ZTc0OGI3ZmI3YWE4Y2ZjMTBjMzVkNzEuLmFiOTdkMjkwODNjOTI4ZWFmOTU1YTRlMzJkNDc5MzBk
MDA1NmQyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdExvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIldl
YktpdExvYWRlckNsaWVudC5oIgogCiAjaW5jbHVkZSAiV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklS
ZXNwb25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgpAQCAtNTQsNyArNTUsNyBAQCBzdGF0
aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVm
IHBhZ2UsIFdLRnJhbWVSZWYgZgogCiAgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VF
cnJvciA9IHRvSW1wbChlcnJvciktPnBsYXRmb3JtRXJyb3IoKTsKICAgICBHVW5pcXVlUHRyPEdF
cnJvcj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21fc3RyaW5nKHJl
c291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIHJlc291cmNlRXJy
b3IuZXJyb3JDb2RlKCksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgICAgIHRvV2ViS2l0RXJyb3IocmVzb3VyY2VFcnJvci5lcnJvckNv
ZGUoKSksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgp
KSk7CiAgICAgaWYgKHJlc291cmNlRXJyb3IudGxzRXJyb3JzKCkpIHsKICAgICAgICAgd2Via2l0
V2ViVmlld0xvYWRGYWlsZWRXaXRoVExTRXJyb3JzKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZv
KSwgcmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0
KCksCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4ocmVzb3Vy
Y2VFcnJvci50bHNFcnJvcnMoKSksIHJlc291cmNlRXJyb3IuY2VydGlmaWNhdGUoKSk7CkBAIC04
NSw3ICs4Niw3IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyCiAKICAgICBjb25zdCBSZXNvdXJj
ZUVycm9yJiByZXNvdXJjZUVycm9yID0gdG9JbXBsKGVycm9yKS0+cGxhdGZvcm1FcnJvcigpOwog
ICAgIEdVbmlxdWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVh
cmtfZnJvbV9zdHJpbmcocmVzb3VyY2VFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwKLSAg
ICAgICAgcmVzb3VyY2VFcnJvci5lcnJvckNvZGUoKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWRE
ZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJLaXRFcnJvcihyZXNv
dXJjZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICB3ZWJraXRXZWJWaWV3TG9hZEZhaWxlZChXRUJLSVRf
V0VCX1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9MT0FEX0NPTU1JVFRFRCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXNvdXJjZUVycm9yLmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgp
LCB3ZWJFcnJvci5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmNw
cAppbmRleCBmMDM0NDZiYWI3MzBjZDQ2YjBmNjkyYzcxZDFjMGVlMjNlNDI2YmIyLi44MzM2NmRj
Y2Q3ZGExZjQ1MzBkMThlZDNkYWI2NDZkZWNiMTAwMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbi5jcHAKQEAgLTI0MywxMyArMjQzLDYgQEAgY29uc3QgY2hhciogd2Via2l0
X25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF9mcmFtZV9uYW1lKFdlYktpdE5hdmlnYXRp
b25Qb2wKICAgICByZXR1cm4gZGVjaXNpb24tPnByaXYtPmZyYW1lTmFtZS5kYXRhKCk7CiB9CiAK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05BVklHQVRJT05fVFlQRV9MSU5L
X0NMSUNLRUQsIE5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0
aW9uVHlwZUZvcm1TdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfTkFWSUdBVElPTl9UWVBFX0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2Fy
ZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9OQVZJR0FUSU9OX1RZUEVf
UkVMT0FELCBOYXZpZ2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5
cGVGb3JtUmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
TkFWSUdBVElPTl9UWVBFX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQogV2ViS2l0TmF2
aWdhdGlvblBvbGljeURlY2lzaW9uKiB3ZWJraXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DcmVh
dGUoV2ViS2l0TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIHVuc2lnbmVkIG1vdXNlQnV0
dG9uLCB1bnNpZ25lZCBtb2RpZmllcnMsIEFQSTo6VVJMUmVxdWVzdCogcmVxdWVzdCwgY29uc3Qg
Y2hhciogZnJhbWVOYW1lLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIGxpc3RlbmVyKQog
ewogICAgIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiogZGVjaXNpb24gPSBXRUJLSVRf
TkFWSUdBVElPTl9QT0xJQ1lfREVDSVNJT04oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05BVklH
QVRJT05fUE9MSUNZX0RFQ0lTSU9OLCBOVUxMKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcAppbmRleCAxZWI2YjFl
YzY2OWFiY2M3OWM4ZjA4ZDQ3Nzc5NjgwZjQyZWFhNWQ2Li4wZTQ0YTQwMTA0Y2JjMWJlNDg5ZDM2
YzIxOTM5Nzg2NTNlZTMwZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAKQEAgLTI5LDEwICsyOSwzMSBAQAog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCitpbmxpbmUgc3RhdGljIFdlYktpdE5hdmlnYXRp
b25UeXBlIHRvV2ViS2l0TmF2aWdhdGlvblR5cGUoV0tGcmFtZU5hdmlnYXRpb25UeXBlIHR5cGUp
Cit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBrV0tGcmFtZU5hdmlnYXRpb25UeXBl
TGlua0NsaWNrZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0xJTktf
Q0xJQ0tFRDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fVFlQRV9GT1JNX1NVQk1JVFRFRDsKKyAg
ICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfQkFDS19GT1JXQVJEOworICAgIGNhc2Uga1dLRnJhbWVO
YXZpZ2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZ
UEVfUkVMT0FEOworICAgIGNhc2Uga1dLRnJhbWVOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRl
ZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRF
RDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfT1RIRVI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBF
X0xJTktfQ0xJQ0tFRDsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVO
YXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0Zy
YW1lLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxp
c3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAg
ICAgR1JlZlB0cjxXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24+IGRlY2lzaW9uID0KLSAg
ICAgICAgYWRvcHRHUmVmKHdlYmtpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkNyZWF0ZShzdGF0
aWNfY2FzdDxXZWJLaXROYXZpZ2F0aW9uVHlwZT4obmF2aWdhdGlvblR5cGUpLAorICAgICAgICBh
ZG9wdEdSZWYod2Via2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHRvV2ViS2l0TmF2
aWdhdGlvblR5cGUobmF2aWdhdGlvblR5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91
c2VCdXR0b24obW91c2VCdXR0b24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhtb2Rp
ZmllcnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRvSW1wbChyZXF1ZXN0KSwKQEAgLTQ2LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0sKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmln
YXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9u
IG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVO
YW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBHUmVmUHRyPFdlYktpdE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbj4gZGVjaXNpb24gPQotICAgICAgICBhZG9wdEdSZWYod2Via2l0TmF2
aWdhdGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHN0YXRpY19jYXN0PFdlYktpdE5hdmlnYXRpb25U
eXBlPihuYXZpZ2F0aW9uVHlwZSksCisgICAgICAgIGFkb3B0R1JlZih3ZWJraXROYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb25DcmVhdGUodG9XZWJLaXROYXZpZ2F0aW9uVHlwZShuYXZpZ2F0aW9uVHlw
ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2tFdmVudE1vdXNlQnV0dG9uVG9XZWJLaXRNb3VzZUJ1dHRvbihtb3VzZUJ1dHRvbiksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2tF
dmVudE1vZGlmaWVyc1RvR2RrTW9kaWZpZXJzKG1vZGlmaWVycyksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbXBsKHJlcXVlc3QpLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRP
cGVyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJp
bnRPcGVyYXRpb24uY3BwCmluZGV4IGVlOTcyNDg0ZDg1MjA2YzRkZmYzYzg0NzUyMjdjZTUwMGU2
OGViNGYuLmRhYTUwOWIyNDlhYmFjZmYzYjdhODJlZjU5MzQwODdlNjVmZDY5ZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9w
ZXJhdGlvbi5jcHAKQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0aWMgdm9pZCBkcmF3UGFnZXNGb3JQ
cmludGluZ0NvbXBsZXRlZChXS0Vycm9yUmVmIHdrUHJpbnRFcnJvciwgV0tFcnJvclJlZiwgdgog
ICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IgPSB3a1ByaW50
RXJyb3IgPyB0b0ltcGwod2tQcmludEVycm9yKS0+cGxhdGZvcm1FcnJvcigpIDogV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcigpOwogICAgIGlmICghcmVzb3VyY2VFcnJvci5pc051bGwoKSkgewogICAg
ICAgICBHVW5pcXVlUHRyPEdFcnJvcj4gcHJpbnRFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdf
cXVhcmtfZnJvbV9zdHJpbmcocmVzb3VyY2VFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwK
LSAgICAgICAgICAgIHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCksIHJlc291cmNlRXJyb3IubG9j
YWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgICAgICB0b1dlYktp
dEVycm9yKHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCkpLCByZXNvdXJjZUVycm9yLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogICAgICAgICBnX3NpZ25hbF9lbWl0KHBy
aW50T3BlcmF0aW9uLmdldCgpLCBzaWduYWxzW0ZBSUxFRF0sIDAsIHByaW50RXJyb3IuZ2V0KCkp
OwogICAgIH0KICAgICBnX3NpZ25hbF9lbWl0KHByaW50T3BlcmF0aW9uLmdldCgpLCBzaWduYWxz
W0ZJTklTSEVEXSwgMCwgTlVMTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCmluZGV4IGQzNGI5YzQ3MTcxYTA4YWY5ZGNlYjI3NzZk
ODc5YmE4ZThlNDI2MGIuLjRjMjUxN2NiZjMwMzlkZmI2ZjgzYTNiZWZjNzI5NjQxMGQ3MDhlNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZh
dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZh
dGUuY3BwCkBAIC0yMCw2ICsyMCw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
V2ViS2l0UHJpdmF0ZS5oIgogCisjaW5jbHVkZSAiRXJyb3JzR3RrLmgiCisjaW5jbHVkZSAiV2Vi
S2l0RXJyb3IuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAKIHVuc2lnbmVkIHdrRXZlbnRNb2Rp
ZmllcnNUb0dka01vZGlmaWVycyhXS0V2ZW50TW9kaWZpZXJzIHdrTW9kaWZpZXJzKQpAQCAtNTEs
MyArNTMsMTA5IEBAIHVuc2lnbmVkIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91c2VCdXR0
b24oV0tFdmVudE1vdXNlQnV0dG9uIHdrQnV0dG9uKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiAwOwogfQorCitpbmxpbmUgdW5zaWduZWQgdG9XZWJLaXRFcnJvcih1bnNp
Z25lZCB3ZWJDb3JlRXJyb3IpCit7CisgICAgc3dpdGNoICh3ZWJDb3JlRXJyb3IpIHsKKyAgICBj
YXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckZhaWxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9O
RVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclRyYW5z
cG9ydDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX1RSQU5TUE9SVDsKKyAg
ICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbDoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05PV05fUFJPVE9DT0w7CisgICAgY2FzZSBXZWJD
b3JlOjpOZXR3b3JrRXJyb3JDYW5jZWxsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09S
S19FUlJPUl9DQU5DRUxMRUQ7CisgICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JGaWxlRG9l
c05vdEV4aXN0OgorICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfRklMRV9ET0VT
X05PVF9FWElTVDsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yRmFpbGVkOgorICAgICAg
ICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GQUlMRUQ7CisgICAgY2FzZSBXZWJDb3JlOjpQ
b2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJ
Q1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFOworICAgIGNhc2UgV2ViQ29yZTo6UG9saWN5
RXJyb3JDYW5ub3RTaG93VVJMOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9D
QU5OT1RfU0hPV19VUkk7CisgICAgY2FzZSBXZWJDb3JlOjpQb2xpY3lFcnJvckZyYW1lTG9hZElu
dGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VS
Uk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRTsKKyAgICBjYXNlIFdl
YkNvcmU6OlBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQ6CisgICAgICAgIHJldHVy
biBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9VU0VfUkVTVFJJQ1RFRF9QT1JUOworICAgIGNh
c2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JGYWlsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExV
R0lOX0VSUk9SX0ZBSUxFRDsKKyAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yQ2Fubm90Rmlu
ZFBsdWdpbjoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRf
UExVR0lOOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU47Cisg
ICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZToKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfSkFWQV9VTkFWQUlMQUJMRTsKKyAgICBjYXNlIFdlYkNv
cmU6OlBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJ
VF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9DQU5DRUxMRUQ7CisgICAgY2FzZSBXZWJDb3JlOjpQ
bHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9F
UlJPUl9XSUxMX0hBTkRMRV9MT0FEOworICAgIGNhc2UgV2ViQ29yZTo6RG93bmxvYWRFcnJvck5l
dHdvcms6CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSzsKKyAg
ICBjYXNlIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXI6CisgICAgICAgIHJl
dHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1JfQ0FOQ0VMTEVEX0JZX1VTRVI7CisgICAgY2FzZSBX
ZWJDb3JlOjpEb3dubG9hZEVycm9yRGVzdGluYXRpb246CisgICAgICAgIHJldHVybiBXRUJLSVRf
RE9XTkxPQURfRVJST1JfREVTVElOQVRJT047CisgICAgY2FzZSBXZWJDb3JlOjpQcmludEVycm9y
R2VuZXJhbDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUklOVF9FUlJPUl9HRU5FUkFMOworICAg
IGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZDoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9QUklOVF9FUlJPUl9QUklOVEVSX05PVF9GT1VORDsKKyAgICBjYXNlIFdlYkNvcmU6
OlByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BSSU5U
X0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxF
RDsKKyAgICB9Cit9CisKK2lubGluZSB1bnNpZ25lZCB0b1dlYkNvcmVFcnJvcih1bnNpZ25lZCB3
ZWJLaXRFcnJvcikKK3sKKyAgICBzd2l0Y2ggKHdlYktpdEVycm9yKSB7CisgICAgY2FzZSBXRUJL
SVRfTkVUV09SS19FUlJPUl9GQUlMRUQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3Jr
RXJyb3JGYWlsZWQ7CisgICAgY2FzZSBXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQ6Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrRXJyb3JUcmFuc3BvcnQ7CisgICAgY2FzZSBX
RUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MOgorICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6TmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sOworICAgIGNhc2UgV0VCS0lUX05FVFdP
UktfRVJST1JfQ0FOQ0VMTEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0d29ya0Vycm9y
Q2FuY2VsbGVkOworICAgIGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9F
WElTVDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhp
c3Q7CisgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZBSUxFRDoKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OlBvbGljeUVycm9yRmFpbGVkOworICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJP
Ul9DQU5OT1RfU0hPV19NSU1FX1RZUEU6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQb2xpY3lF
cnJvckNhbm5vdFNob3dNaW1lVHlwZTsKKyAgICBjYXNlIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FO
Tk9UX1NIT1dfVVJJOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RT
aG93VVJMOworICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQ
VEVEX0JZX1BPTElDWV9DSEFOR0U6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQb2xpY3lFcnJv
ckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U7CisgICAgY2FzZSBXRUJLSVRfUE9M
SUNZX0VSUk9SX0NBTk5PVF9VU0VfUkVTVFJJQ1RFRF9QT1JUOgorICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6UG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydDsKKyAgICBjYXNlIFdFQktJ
VF9QTFVHSU5fRVJST1JfRkFJTEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJy
b3JGYWlsZWQ7CisgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BMVUdJ
TjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbjsK
KyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luOworICAgIGNhc2Ug
V0VCS0lUX1BMVUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFOgorICAgICAgICByZXR1cm4gV2Vi
Q29yZTo6UGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFibGU7CisgICAgY2FzZSBXRUJLSVRfUExVR0lO
X0VSUk9SX0NPTk5FQ1RJT05fQ0FOQ0VMTEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1
Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkOworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJP
Ul9XSUxMX0hBTkRMRV9MT0FEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJyb3JX
aWxsSGFuZGxlTG9hZDsKKyAgICBjYXNlIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ORVRXT1JLOgor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6RG93bmxvYWRFcnJvck5ldHdvcms7CisgICAgY2FzZSBX
RUJLSVRfRE9XTkxPQURfRVJST1JfQ0FOQ0VMTEVEX0JZX1VTRVI6CisgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2VyOworICAgIGNhc2UgV0VCS0lUX0RP
V05MT0FEX0VSUk9SX0RFU1RJTkFUSU9OOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RG93bmxv
YWRFcnJvckRlc3RpbmF0aW9uOworICAgIGNhc2UgV0VCS0lUX1BSSU5UX0VSUk9SX0dFTkVSQUw6
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQcmludEVycm9yR2VuZXJhbDsKKyAgICBjYXNlIFdF
QktJVF9QUklOVF9FUlJPUl9QUklOVEVSX05PVF9GT1VORDoKKyAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OlByaW50RXJyb3JQcmludGVyTm90Rm91bmQ7CisgICAgY2FzZSBXRUJLSVRfUFJJTlRfRVJS
T1JfSU5WQUxJRF9QQUdFX1JBTkdFOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UHJpbnRFcnJv
ckludmFsaWRQYWdlUmFuZ2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrRXJyb3JGYWlsZWQ7CisgICAg
fQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0
ZS5oCmluZGV4IGJkMDYwZWQzMjlmMWIyZjA4YjY4YzE4NTFiMWI2OTJkM2VmOTJjYTMuLjMxNWJk
MTZiZmMwM2UwN2EyYjI4MmJlMWNjM2JmNWVhYzIyODA2MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmgKQEAgLTQ5LDkgKzQ5LDYgQEAK
ICNkZWZpbmUgV0VCS0lUX1BBUkFNX1dSSVRBQkxFIChzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4o
R19QQVJBTV9XUklUQUJMRSB8IEdfUEFSQU1fU1RBVElDX05BTUUgfCBHX1BBUkFNX1NUQVRJQ19O
SUNLIHwgR19QQVJBTV9TVEFUSUNfQkxVUkIpKQogI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBRFdS
SVRFIChzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFN
X1NUQVRJQ19OQU1FIHwgR19QQVJBTV9TVEFUSUNfTklDSyB8IEdfUEFSQU1fU1RBVElDX0JMVVJC
KSkKIAotI2RlZmluZSBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKHdlYmtpdE5hbWUsIHdl
YmNvcmVOYW1lKSBcCi0gICAgICAgIENPTVBJTEVfQVNTRVJUKGludCh3ZWJraXROYW1lKSA9PSBp
bnQod2ViY29yZU5hbWUpLCBtaXNtYXRjaGluZ0VudW1zKQotCiAjZGVmaW5lIFdFQktJVF9ERUZJ
TkVfQVNZTkNfREFUQV9TVFJVQ1Qoc3RydWN0TmFtZSkgXAogc3RhdGljIHN0cnVjdE5hbWUqIGNy
ZWF0ZSMjc3RydWN0TmFtZSgpIFwKIHsgXApAQCAtMTE4LDYgKzExNSw4IEBAIEdUeXBlIHR5cGVf
bmFtZSMjX2dldF90eXBlKHZvaWQpIFwKIAogdW5zaWduZWQgd2tFdmVudE1vZGlmaWVyc1RvR2Rr
TW9kaWZpZXJzKFdLRXZlbnRNb2RpZmllcnMpOwogdW5zaWduZWQgd2tFdmVudE1vdXNlQnV0dG9u
VG9XZWJLaXRNb3VzZUJ1dHRvbihXS0V2ZW50TW91c2VCdXR0b24pOwordW5zaWduZWQgdG9XZWJL
aXRFcnJvcih1bnNpZ25lZCB3ZWJDb3JlRXJyb3IpOwordW5zaWduZWQgdG9XZWJDb3JlRXJyb3Io
dW5zaWduZWQgd2ViS2l0RXJyb3IpOwogCiBlbnVtIFNuYXBzaG90UmVnaW9uIHsKICAgICBTbmFw
c2hvdFJlZ2lvblZpc2libGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCmluZGV4IGQ2MzJkNDQxYmQ0
YjkxODIyZTk3MTkwOTk2ZmFkNjMyZjFjYjY4OTIuLjIyZjA5YzM2NDZlZDE1NjRmYzU1Mjg4MTY5
ZDhhY2UzMWZkYjA4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCkBAIC0yMSw2ICsyMSw3IEBA
CiAjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5oIgogCiAjaW5jbHVkZSAiQVBJRGF0
YS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYkNvbnRleHRQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlldy5oIgpAQCAtMjMxLDcgKzIzMiw3IEBAIHZvaWQgd2Vi
a2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3IoV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZSogcHJp
diA9IHJlcXVlc3QtPnByaXY7CiAKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHJlc291cmNl
RXJyb3IoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbiksIGVycm9yLT5jb2RlLCBwcml2
LT51cmkuZGF0YSgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9yLT5tZXNzYWdlKSk7CisgICAgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdfcXVhcmtfdG9fc3RyaW5nKGVycm9y
LT5kb21haW4pLCB0b1dlYkNvcmVFcnJvcihlcnJvci0+Y29kZSksIHByaXYtPnVyaS5kYXRhKCks
IFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKICAgICBwcml2LT53ZWJSZXF1ZXN0
TWFuYWdlci0+ZGlkRmFpbFdpdGhFcnJvcihwcml2LT5yZXF1ZXN0SUQsIHJlc291cmNlRXJyb3Ip
OwogICAgIHdlYmtpdFdlYkNvbnRleHREaWRGaW5pc2hMb2FkaW5nQ3VzdG9tUHJvdG9jb2wocHJp
di0+d2ViQ29udGV4dCwgcHJpdi0+cmVxdWVzdElEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggZmU2MjZj
NDlmMDdhZGFmNDhiZGI4MTA1NGY4NjJlNzkwMTY4MTlkNi4uZTZlMTRiNmExYTYyMDcxNDlkZDgz
YmUyNDFlNWEwODA0ZWRhZjU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTE2NSw2ICsxNjUsMzIgQEAgc3Rh
dGljIGd1aW50IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5F
X1RZUEUoV2ViS2l0V2ViQ29udGV4dCwgd2Via2l0X3dlYl9jb250ZXh0LCBHX1RZUEVfT0JKRUNU
KQogCitpbmxpbmUgc3RhdGljIFdlYktpdDo6UHJvY2Vzc01vZGVsIHRvUHJvY2Vzc01vZGVsKFdl
YktpdFByb2Nlc3NNb2RlbCB3ZWJLaXRQcm9jZXNzTW9kZWwpCit7CisgICAgc3dpdGNoICh3ZWJL
aXRQcm9jZXNzTW9kZWwpIHsKKyAgICBjYXNlIFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9T
RUNPTkRBUllfUFJPQ0VTUzoKKyAgICAgICAgcmV0dXJuIFByb2Nlc3NNb2RlbFNoYXJlZFNlY29u
ZGFyeVByb2Nlc3M7CisgICAgY2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNP
TkRBUllfUFJPQ0VTU0VTOgorICAgICAgICByZXR1cm4gUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNv
bmRhcnlQcm9jZXNzZXM7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHJldHVybiBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOwor
ICAgIH0KK30KKworaW5saW5lIHN0YXRpYyBXZWJLaXRQcm9jZXNzTW9kZWwgdG9XZWJLaXRQcm9j
ZXNzTW9kZWwoV2ViS2l0OjpQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsKQoreworICAgIHN3aXRj
aCAocHJvY2Vzc01vZGVsKSB7CisgICAgY2FzZSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQ
cm9jZXNzOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09O
REFSWV9QUk9DRVNTOworICAgIGNhc2UgUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9j
ZXNzZXM6CisgICAgICAgIHJldHVybiBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNP
TkRBUllfUFJPQ0VTU0VTOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm4gV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFS
WV9QUk9DRVNTOworICAgIH0KK30KKwogc3RhdGljIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X2Ns
YXNzX2luaXQoV2ViS2l0V2ViQ29udGV4dENsYXNzKiB3ZWJDb250ZXh0Q2xhc3MpCiB7CiAgICAg
R09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3ZWJDb250ZXh0Q2xh
c3MpOwpAQCAtOTE3LDE4ICs5NDMsNyBAQCB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJv
Y2Vzc19tb2RlbChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJLaXRQcm9jZQogewogICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpKTsKIAotICAg
IFByb2Nlc3NNb2RlbCBuZXdQcm9jZXNzTW9kZWw7Ci0KLSAgICBzd2l0Y2ggKHByb2Nlc3NNb2Rl
bCkgewotICAgIGNhc2UgV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9D
RVNTOgotICAgICAgICBuZXdQcm9jZXNzTW9kZWwgPSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRh
cnlQcm9jZXNzOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdFQktJVF9QUk9DRVNTX01PREVM
X01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM6Ci0gICAgICAgIG5ld1Byb2Nlc3NNb2RlbCA9
IFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOwotICAgICAgICBicmVhazsK
LSAgICBkZWZhdWx0OgotICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgIH0KKyAg
ICBQcm9jZXNzTW9kZWwgbmV3UHJvY2Vzc01vZGVsKHRvUHJvY2Vzc01vZGVsKHByb2Nlc3NNb2Rl
bCkpOwogCiAgICAgaWYgKG5ld1Byb2Nlc3NNb2RlbCA9PSBjb250ZXh0LT5wcml2LT5jb250ZXh0
LT5wcm9jZXNzTW9kZWwoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtOTUyLDE0ICs5NjcsNyBAQCBX
ZWJLaXRQcm9jZXNzTW9kZWwgd2Via2l0X3dlYl9jb250ZXh0X2dldF9wcm9jZXNzX21vZGVsKFdl
YktpdFdlYkNvbnRleHQqIGNvbnRleAogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSwgV0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NF
Q09OREFSWV9QUk9DRVNTKTsKIAotICAgIHN3aXRjaCAoY29udGV4dC0+cHJpdi0+Y29udGV4dC0+
cHJvY2Vzc01vZGVsKCkpIHsKLSAgICBjYXNlIFByb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVBy
b2Nlc3M6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05E
QVJZX1BST0NFU1M7Ci0gICAgY2FzZSBQcm9jZXNzTW9kZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nl
c3NlczoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09O
REFSWV9QUk9DRVNTRVM7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNo
ZWQoKTsKLSAgICB9CisgICAgcmV0dXJuIHRvV2ViS2l0UHJvY2Vzc01vZGVsKGNvbnRleHQtPnBy
aXYtPmNvbnRleHQtPnByb2Nlc3NNb2RlbCgpKTsKIH0KIAogV2ViS2l0RG93bmxvYWQqIHdlYmtp
dFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKERvd25sb2FkUHJveHkqIGRvd25sb2FkUHJv
eHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuY3BwCmluZGV4IDUzYTE5ZTNkNDI1OThiODdiMGVhYTcyZmU5ZmQyNjdiODJkMWNmMDMuLmE1
NjkyOTZkZWYwMzBkNmUyNjAyZDA3NTllZjI5Mzg5ZWJlNGFjYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0zMDU0LDkg
KzMwNTQsNiBAQCB2b2lkIHdlYktpdFdlYlZpZXdEaWRSZWNlaXZlU25hcHNob3QoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgdWludDY0X3QgY2FsbGJhY2tJRAogICAgICAgICBnX3Rhc2tfcmV0dXJu
X3BvaW50ZXIodGFzay5nZXQoKSwgMCwgMCk7CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxFLCBTbmFwc2hvdFJlZ2lvblZpc2li
bGUpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfU05BUFNIT1RfUkVHSU9O
X0ZVTExfRE9DVU1FTlQsIFNuYXBzaG90UmVnaW9uRnVsbERvY3VtZW50KTsKLQogc3RhdGljIGlu
bGluZSB1bnNpZ25lZCB3ZWJLaXRTbmFwc2hvdE9wdGlvbnNUb1NuYXBzaG90T3B0aW9ucyhXZWJL
aXRTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucykKIHsKICAgICBTbmFwc2hvdE9wdGlvbnMgc25hcHNo
b3RPcHRpb25zID0gMDsKQEAgLTMwNjcsNiArMzA2NCwxOSBAQCBzdGF0aWMgaW5saW5lIHVuc2ln
bmVkIHdlYktpdFNuYXBzaG90T3B0aW9uc1RvU25hcHNob3RPcHRpb25zKFdlYktpdFNuYXBzaG90
T3B0aQogICAgIHJldHVybiBzbmFwc2hvdE9wdGlvbnM7CiB9CiAKK3N0YXRpYyBpbmxpbmUgU25h
cHNob3RSZWdpb24gdG9TbmFwc2hvdFJlZ2lvbihXZWJLaXRTbmFwc2hvdFJlZ2lvbiByZWdpb24p
Cit7CisgICAgc3dpdGNoIChyZWdpb24pIHsKKyAgICBjYXNlIFdFQktJVF9TTkFQU0hPVF9SRUdJ
T05fVklTSUJMRToKKyAgICAgICAgcmV0dXJuIFNuYXBzaG90UmVnaW9uVmlzaWJsZTsKKyAgICBj
YXNlIFdFQktJVF9TTkFQU0hPVF9SRUdJT05fRlVMTF9ET0NVTUVOVDoKKyAgICAgICAgcmV0dXJu
IFNuYXBzaG90UmVnaW9uRnVsbERvY3VtZW50OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gU25hcHNob3RSZWdpb25WaXNpYmxlOwor
ICAgIH0KK30KKwogc3RhdGljIGlubGluZSB1aW50NjRfdCBnZW5lcmF0ZVNuYXBzaG90Q2FsbGJh
Y2tJRCgpCiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZUNhbGxiYWNrSUQgPSAxOwpAQCAt
MzA5Niw3ICszMTA2LDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90KFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFNuYXBzaG90UmVnaW9uIHIKICAgICBJbW11dGFibGVE
aWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGdl
bmVyYXRlU25hcHNob3RDYWxsYmFja0lEKCk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9t
VVRGOCgiU25hcHNob3RPcHRpb25zIiksIEFQSTo6VUludDY0OjpjcmVhdGUoc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KHdlYktpdFNuYXBzaG90T3B0aW9uc1RvU25hcHNob3RPcHRpb25zKG9wdGlvbnMp
KSkpOwotICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlNuYXBzaG90UmVnaW9uIiks
IEFQSTo6VUludDY0OjpjcmVhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlZ2lvbikpKTsKKyAg
ICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJTbmFwc2hvdFJlZ2lvbiIpLCBBUEk6OlVJ
bnQ2NDo6Y3JlYXRlKHN0YXRpY19jYXN0PHVpbnQ2NF90Pih0b1NuYXBzaG90UmVnaW9uKHJlZ2lv
bikpKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiQ2FsbGJhY2tJRCIpLCBB
UEk6OlVJbnQ2NDo6Y3JlYXRlKGNhbGxiYWNrSUQpKTsKIAogICAgIHdlYlZpZXctPnByaXYtPnNu
YXBzaG90UmVzdWx0c01hcC5zZXQoY2FsbGJhY2tJRCwgYWRvcHRHUmVmKGdfdGFza19uZXcod2Vi
VmlldywgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0YSkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3R3JvdXAuY3BwCmlu
ZGV4IDI4OWVjZGYwMzZiYWRkNmM2N2EyNWNkY2NmYTNmYjI1N2ZmNjE0YjIuLmIxNTY4Y2VhODI2
MWNlYWU4MTQ2OTMzMzUwOWVlNmNkNDM3ZDVjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dyb3VwLmNwcApAQCAtNjcsNiAr
NjcsMTkgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3R3JvdXBQcml2YXRlIHsKIAogV0VCS0lUX0RF
RklORV9UWVBFKFdlYktpdFdlYlZpZXdHcm91cCwgd2Via2l0X3dlYl92aWV3X2dyb3VwLCBHX1RZ
UEVfT0JKRUNUKQogCitpbmxpbmUgc3RhdGljIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRG
cmFtZXMgdG9XZWJDb3JlVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyhXZWJLaXRJbmplY3RlZENv
bnRlbnRGcmFtZXMga2l0RnJhbWVzKQoreworICAgIHN3aXRjaCAoa2l0RnJhbWVzKSB7CisgICAg
Y2FzZSBXRUJLSVRfSU5KRUNURURfQ09OVEVOVF9GUkFNRVNfQUxMOgorICAgICAgICByZXR1cm4g
V2ViQ29yZTo6SW5qZWN0SW5BbGxGcmFtZXM7CisgICAgY2FzZSBXRUJLSVRfSU5KRUNURURfQ09O
VEVOVF9GUkFNRVNfVE9QX09OTFk6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpJbmplY3RJblRv
cEZyYW1lT25seTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkluamVjdEluQWxsRnJhbWVzOworICAgIH0KK30KKwog
c3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0dyb3VwU2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0
LCBndWludCBwcm9wSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBhcmFtU3Bl
YykKIHsKICAgICBXZWJLaXRXZWJWaWV3R3JvdXAqIGdyb3VwID0gV0VCS0lUX1dFQl9WSUVXX0dS
T1VQKG9iamVjdCk7CkBAIC0yMjQsOSArMjM3LDYgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ3Jv
dXBfc2V0X3NldHRpbmdzKFdlYktpdFdlYlZpZXdHcm91cCogZ3JvdXAsIFdlYktpdFNldHRpbmcK
ICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1QoZ3JvdXApLCAic2V0dGluZ3MiKTsKIH0KIAot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfSU5KRUNURURfQ09OVEVOVF9GUkFN
RVNfQUxMLCBXZWJDb3JlOjpJbmplY3RJbkFsbEZyYW1lcyk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19UT1BfT05MWSwgV2ViQ29y
ZTo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkpOwotCiBzdGF0aWMgUGFzc1JlZlB0cjxBUEk6OkFycmF5
PiB0b0FQSUFycmF5KGNvbnN0IGNoYXIqIGNvbnN0KiBsaXN0KQogewogICAgIGlmICghbGlzdCkK
QEAgLTI3MCw3ICsyODAsNyBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19ncm91cF9hZGRfdXNlcl9z
dHlsZV9zaGVldChXZWJLaXRXZWJWaWV3R3JvdXAqIGdyb3VwLCBjb25zdAogICAgICAgICBTdHJp
bmc6OmZyb21VVEY4KGJhc2VVUkkpLAogICAgICAgICB3ZWJXaGl0ZWxpc3QuZ2V0KCksCiAgICAg
ICAgIHdlYkJsYWNrbGlzdC5nZXQoKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VXNl
ckNvbnRlbnRJbmplY3RlZEZyYW1lcz4oaW5qZWN0ZWRGcmFtZXMpLAorICAgICAgICB0b1dlYkNv
cmVVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKGluamVjdGVkRnJhbWVzKSwKICAgICAgICAgV2Vi
Q29yZTo6VXNlclN0eWxlVXNlckxldmVsKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224013</attachid>
            <date>2014-02-12 15:02:54 -0800</date>
            <delta_ts>2014-02-20 04:04:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127800-20140212230251.patch</filename>
            <type>text/plain</type>
            <size>71075</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzOTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk4OGZlOGMxY2MwY2ZjZmEy
Mjc2NTE1NzUzYTNiMGI5YmYyNGViNmYuLmY0NzQzNzk0MWY3YWMxMDU4Yjg4N2NmMzYzODRmNTJl
M2Q3Nzk0NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDItMTIgIEVucmlxdWUg
T2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXRH
VEsrIHNob3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRm
b3JtR1RLLmNtYWtlOiBSZW1vdmVkIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwCisKIDIwMTQtMDIt
MTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBGaXhlZCBsaW5raW5nIG9uIFdpbjY0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDExZjBkYmI0YjU2
NWEzZjg3YzhjNzRiYzgzZTcyYTM5OWNiY2EwZjQuLmY1NDM5Y2IxZDc0ZDA0OTU3ZWNmOTkwMTc4
ZDg5NzNjYTk1MWY2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNC0w
Mi0xMiAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFdlYktpdEdUSysgc2hvdWxkIHN0b3AgdXNpbmcgQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTSBtYWNyb3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNzgwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06IFJlbW92ZWQgQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3Bw
OiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1dlYkNv
cmVGaW5kT3B0aW9ucyk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpbmRT
dHJpbmcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoV2ViS2l0
Ojp0b1dlYktpdE5ldHdvcmtFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2spOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJu
YXZpZ2F0aW9uYWN0aW9uLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25z
LgorICAgICAgICAoV2ViS2l0OjpraXQpOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5
cGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25z
LgorICAgICAgICAoY29weUd0a1RhcmdldExpc3RDb252ZXJ0aW5nV2ViQ29yZUVudW1WYWx1ZXNU
b1dlYktpdEVudW1WYWx1ZXMpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UpOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3
X2dldF9jb3B5X3RhcmdldF9saXN0KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcGFz
dGVfdGFyZ2V0X2xpc3QpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5o
OiBBZGRlZCB0YXJnZXRMaXN0IHByaXZhdGUgZmllbGQsIHdoaWNoIG1pcnJvcnMgUGFzdGVib2Fy
ZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdCgpIGJ1dCB3aXRo
IHRoZSBmbGFncyBjb252ZXJ0ZWQgdG8gV2ViS2l0V2ViVmlld1RhcmdldEluZm8KKwogMjAxNC0w
Mi0xMSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN1YnBpeGVs
IHJlbmRlcmluZzogTWFrZSBHcmFwaGljc0xheWVyQ2xpZW50OjpwYWludENvbnRlbnRzJ3MgY2xp
cCByZWN0IHN1YnBpeGVsIGJhc2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk4NjVhYTdjM2ZjZGUxZmYwMDI1
ZDRmY2FhOWUwZjQxMzk3MTZkMTMuLmI0M2E2MGUxZTA0Nzk3NmY2NDkwN2NhZDQyYzkyNmQ4MGFh
ZDIxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxNC0wMi0xMiAgRW5yaXF1ZSBP
Y2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYktpdEdU
Sysgc2hvdWxkIHN0b3AgdXNpbmcgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSBtYWNyb3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDogRGVmaW5lZCBhbmQg
YXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAod2Via2l0X2F1dGhlbnRpY2F0aW9u
X3JlcXVlc3RfZ2V0X3NjaGVtZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
Q29va2llTWFuYWdlci5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4K
KyAgICAgICAgKHRvV2ViS2l0Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKHRvSFRUUENv
b2tpZUFjY2VwdFBvbGljeSk6CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X3Bl
cnNpc3RlbnRfc3RvcmFnZSk6CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X2Fj
Y2VwdF9wb2xpY3kpOgorICAgICAgICAod2Via2l0Q29va2llTWFuYWdlckdldEFjY2VwdFBvbGlj
eUNhbGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDcmVkZW50aWFs
LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9X
ZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2UpOgorICAgICAgICAodG9XZWJDb3JlQ3JlZGVudGlh
bFBlcnNpc3RlbmNlKToKKyAgICAgICAgKHdlYmtpdF9jcmVkZW50aWFsX25ldyk6CisgICAgICAg
ICh3ZWJraXRfY3JlZGVudGlhbF9nZXRfcGVyc2lzdGVuY2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNv
bnZlcnNpb25zLgorICAgICAgICAod2Via2l0RG93bmxvYWRGYWlsZWQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBl
IGNvbnZlcnNpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250
cm9sbGVyLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAg
ICAodG9XZWJLaXRGaW5kT3B0aW9ucyk6CisgICAgICAgICh3ZWJLaXRGaW5kQ29udHJvbGxlclBl
cmZvcm0pOgorICAgICAgICAod2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4dCk6Cisg
ICAgICAgICh3ZWJraXRfZmluZF9jb250cm9sbGVyX3NlYXJjaF9wcmV2aW91cyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaDogQWRkZWQgbmV3IHBy
aXZhdGUgZmllbGRzIHRvIHRoZSBlbnVtLCBuZWVkZWQgdG8gbWF0Y2ggY29udmVyc2lvbnMuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
OiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChkaWRSZWNl
aXZlV2ViVmlld01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlw
ZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JG
b3JGcmFtZSk6CisgICAgICAgIChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3Bw
OiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0
eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXROYXZpZ2F0aW9uVHlwZSk6CisgICAg
ICAgIChkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0UHJpbnRPcGVyYXRpb24uY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lv
bnMuCisgICAgICAgIChkcmF3UGFnZXNGb3JQcmludGluZ0NvbXBsZXRlZCk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQg
dHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViS2l0RXJyb3IpOgorICAgICAgICAodG9X
ZWJDb3JlRXJyb3IpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUu
aDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0
X2ZpbmlzaF9lcnJvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29u
dGV4dC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAg
KHRvV2ViS2l0UHJvY2Vzc01vZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRf
cHJvY2Vzc19tb2RlbCk6CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3Nf
bW9kZWwpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOiBE
ZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1NuYXBzaG90
UmVnaW9uKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHA6IERlZmluZWQgYW5k
IGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViQ29yZVVzZXJDb250ZW50
SW5qZWN0ZWRGcmFtZXMpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2Vy
X3N0eWxlX3NoZWV0KToKKwogMjAxNC0wMi0xMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIEJldHRlciBpT1MgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1H
VEsuY21ha2UKaW5kZXggMWNiMjE4NGVlYWUyMTE1NmFhMjY1NzFjMGIyMmFjNzIzMThjMDFhZC4u
NjI4MDEyODU4ZjQ0OTMwZWM0MmI0ZTA5YjY1MmVkNzkzMzBmOTgxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
R1RLLmNtYWtlCkBAIC00MCw3ICs0MCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAg
ICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUR1RLX0FQSV9ESVJ9L3dlYmtpdG1hcnNoYWwuY3Bw
CiAKICAgICBndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRH
TC5jcHAKLSAgICBndGsvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKICAg
ICBndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAogICAgIGd0ay9XZWJDb3Jl
U3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0ay5jcHAKICAgICBndGsvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlTW90aW9uQ2xpZW50R3RrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQppbmRleCA2
NGVkNTNlMzk0ZGUyMTA0NmI5ZTFjN2EwZWYxNjc5MzM5YmExM2ZlLi5kNTNmMWIwYzBmODU0NzIx
ODA2ZDY2YmEyYTBlMTlhYzJiMzVmMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9H
TlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbQpAQCAt
MTkwLDcgKzE5MCw2IEBAIEJVSUxUX1NPVVJDRVMgKz0gJCh3ZWJraXRndGtfYnVpbHRfc291cmNl
cykKIHdlYmtpdGd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcCBcCi0J
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAg
XAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRHdGsuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50R3RrLmgg
XAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0
Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRN
YXRjaGluZ0VudW1zLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzJmZTgwOWVk
YTA5ZmMxMmM4MTI4MzBmMWEzMTk5MTljZmY0NjgxMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLS8q
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDExIENvbGxhYm9yYSBMdGQuCi0gKgotICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0x
MzAxICBVU0EKLSAqLwotCi0vLyBVc2UgdGhpcyBmaWxlIHRvIGFzc2VydCB0aGF0IHZhcmlvdXMg
V2ViS2l0IEFQSSBlbnVtIHZhbHVlcyBjb250aW51ZQotLy8gbWF0Y2hpbmcgV2ViQ29yZSBkZWZp
bmVkIGVudW0gdmFsdWVzLgotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuaCIKLSNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5o
IgotI2luY2x1ZGUgIkVycm9yc0d0ay5oIgotI2luY2x1ZGUgIkZpbmRPcHRpb25zLmgiCi0jaW5j
bHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgotI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXIuaCIK
LSNpbmNsdWRlICJ3ZWJraXRlcnJvci5oIgotI2luY2x1ZGUgIndlYmtpdHdlYm5hdmlnYXRpb25h
Y3Rpb24uaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJzZXR0aW5ncy5oIgotI2luY2x1ZGUgIndlYmtp
dHdlYnZpZXcuaCIKLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotCi0jZGVmaW5lIENPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0od2Via2l0X25hbWUsIHdlYmNvcmVfbmFtZSkgXAotICAg
IENPTVBJTEVfQVNTRVJUKGludCh3ZWJraXRfbmFtZSkgPT0gaW50KFdlYkNvcmU6OndlYmNvcmVf
bmFtZSksIG1pc21hdGNoaW5nX2VudW1zKQotCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX01BQywgRWRpdGluZ01hY0JlaGF2aW9yKTsKLUNPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfV0lORE9XUywg
RWRpdGluZ1dpbmRvd3NCZWhhdmlvcik7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9FRElUSU5HX0JFSEFWSU9SX1VOSVgsIEVkaXRpbmdVbml4QmVoYXZpb3IpOwotCi1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fTElO
S19DTElDS0VELCBOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkKTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9GT1JNX1NVQk1JVFRFRCwg
TmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9CQUNLX0ZPUldBUkQsIE5hdmlnYXRpb25U
eXBlQmFja0ZvcndhcmQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VC
X05BVklHQVRJT05fUkVBU09OX1JFTE9BRCwgTmF2aWdhdGlvblR5cGVSZWxvYWQpOwotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1f
UkVTVUJNSVRURUQsIE5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkKTsKLUNPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9PVEhFUiwgTmF2
aWdhdGlvblR5cGVPdGhlcik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViS2l0
OjpXZWJGaW5kT3B0aW9uc0F0V29yZFN0YXJ0cywgQXRXb3JkU3RhcnRzKTsKLUNPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViS2l0OjpXZWJGaW5kT3B0aW9uc1RyZWF0TWVkaWFsQ2FwaXRh
bEFzV29yZFN0YXJ0LCBUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYktpdDo6V2ViRmluZE9wdGlvbnNCYWNrd2FyZHMsIEJhY2t3
YXJkcyk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYktpdDo6V2ViRmluZE9wdGlv
bnNXcmFwQXJvdW5kLCBXcmFwQXJvdW5kKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V2ViS2l0OjpXZWJGaW5kT3B0aW9uc1N0YXJ0SW5TZWxlY3Rpb24sIFN0YXJ0SW5TZWxlY3Rpb24p
OwotCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfVklFV19UQVJHRVRf
SU5GT19IVE1MLCBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTWFya3VwKTsKLUNPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX1RFWFQsIFBh
c3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVUZXh0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0lNQUdFLCBQYXN0ZWJvYXJkSGVscGVy
OjpUYXJnZXRUeXBlSW1hZ2UpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
V0VCX1ZJRVdfVEFSR0VUX0lORk9fVVJJX0xJU1QsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5
cGVVUklMaXN0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1dFQl9WSUVX
X1RBUkdFVF9JTkZPX05FVFNDQVBFX1VSTCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZU5l
dHNjYXBlVVJMKTsKLQotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkVUV09S
S19FUlJPUl9GQUlMRUQsIE5ldHdvcmtFcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX1RSQU5TUE9SVCwgTmV0d29ya0Vycm9yVHJh
bnNwb3J0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJS
T1JfVU5LTk9XTl9QUk9UT0NPTCwgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sKTsKLUNPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVELCBO
ZXR3b3JrRXJyb3JDYW5jZWxsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfTkVUV09SS19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNULCBOZXR3b3JrRXJyb3JGaWxlRG9l
c05vdEV4aXN0KTsKLQotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUE9MSUNZ
X0VSUk9SX0ZBSUxFRCwgUG9saWN5RXJyb3JGYWlsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX01JTUVfVFlQRSwgUG9saWN5
RXJyb3JDYW5ub3RTaG93TWltZVR5cGUpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSTCwgUG9saWN5RXJyb3JDYW5ub3RTaG93
VVJMKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9FUlJPUl9G
UkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BPTElDWV9DSEFOR0UsIFBvbGljeUVycm9yRnJhbWVM
b2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1VTRV9SRVNUUklDVEVEX1BPUlQsIFBvbGlj
eUVycm9yQ2Fubm90VXNlUmVzdHJpY3RlZFBvcnQpOwotCi1DT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfRkFJTEVELCBQbHVnaW5FcnJvckZhaWxlZCk7Ci1D
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJ
TkRfUExVR0lOLCBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4pOwotQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTiwgUGx1
Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V0VCS0lUX1BMVUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFLCBQbHVnaW5FcnJvckphdmFVbmF2
YWlsYWJsZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJS
T1JfQ09OTkVDVElPTl9DQU5DRUxMRUQsIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9I
QU5ETEVfTE9BRCwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3Bw
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcAppbmRleCBkMTljZDQ4ODUyNGE1YjdiNmFlMTY2YmU3ZjQ2MGQ3MWU2N2M1Y2MyLi4x
YjQyZjcyMmE5YTEwZmNhNzhhZTk2ZTA2YmY2NDQ0YWQ3ZDdiMWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5jcHAKQEAgLTg2LDYgKzg2LDE2IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluID0gdHJ1ZTsKIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6RnJhbWVMb2FkRXZlbnRDYWxsYmFjayBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNfZnJhbWVMb2FkRXZlbnRDYWxsYmFjayA9IDA7CiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OkF1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2F1dGhl
bnRpY2F0aW9uQ2FsbGJhY2sgPSAwOwogCitzdGF0aWMgaW5saW5lIFdlYkNvcmU6OkZpbmRPcHRp
b25zIHRvV2ViQ29yZUZpbmRPcHRpb25zKFdlYktpdEZpbmRPcHRpb25zIHR5cGUpCit7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkZpbmRPcHRpb25zPigodHlwZSAmIFdlYkZpbmRP
cHRpb25zQ2FzZUluc2Vuc2l0aXZlID8gQ2FzZUluc2Vuc2l0aXZlIDogMCkKKyAgICAgICAgfCAo
dHlwZSAmIFdlYkZpbmRPcHRpb25zQXRXb3JkU3RhcnRzID8gQXRXb3JkU3RhcnRzIDogMCkKKyAg
ICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3Rh
cnQgPyBUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCA6IDApCisgICAgICAgIHwgKHR5cGUg
JiBXZWJGaW5kT3B0aW9uc0JhY2t3YXJkcyA/IEJhY2t3YXJkcyA6IDApCisgICAgICAgIHwgKHR5
cGUgJiBXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQgPyBXcmFwQXJvdW5kIDogMCkKKyAgICAgICAg
fCAodHlwZSAmIFdlYkZpbmRPcHRpb25zU3RhcnRJblNlbGVjdGlvbiA/IFN0YXJ0SW5TZWxlY3Rp
b24gOiAwKSk7Cit9CisKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6RHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrKCkKIHsKIH0KQEAgLTQ3NSw3ICs0ODUsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6Y2xlYXJPcGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQogCiBib29sIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZmluZFN0cmluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBjb25zdCBnY2hhciogdGFyZ2V0U3RyaW5nLCBXZWJLaXRGaW5kT3B0aW9ucyBmaW5kT3B0aW9u
cykKIHsKLSAgICByZXR1cm4gY29yZSh3ZWJWaWV3KS0+ZmluZFN0cmluZyhTdHJpbmc6OmZyb21V
VEY4KHRhcmdldFN0cmluZyksIGZpbmRPcHRpb25zKTsKKyAgICByZXR1cm4gY29yZSh3ZWJWaWV3
KS0+ZmluZFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHRhcmdldFN0cmluZyksIHRvV2ViQ29yZUZp
bmRPcHRpb25zKGZpbmRPcHRpb25zKSk7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzZXRWYWx1ZUZvclVzZXIoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgbm9k
ZU9iamVjdCwgSlNTdHJpbmdSZWYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKaW5kZXggYjI0ZTA4
OWM5ZDEzMTEyY2E2MmEwY2QwMTRmNWM4YWQ2ZmMyN2UwMS4uMmY4YWNiYjNmYjBkZTkwZGQ1N2U5
MDBkYmIxOGRhZDg4MDljZTYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMTA0LDYgKzEwNCw0
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2lu
bGluZSBpbnQgdG9XZWJLaXROZXR3b3JrRXJyb3IoaW50IGVycm9yQ29kZSkKK3sKKyAgICBzd2l0
Y2ggKGVycm9yQ29kZSkgeworICAgIGNhc2UgTmV0d29ya0Vycm9yRmFpbGVkOgorICAgICAgICBy
ZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfRkFJTEVEOworICAgIGNhc2UgTmV0d29ya0Vycm9y
VHJhbnNwb3J0OgorICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfVFJBTlNQT1JU
OworICAgIGNhc2UgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sOgorICAgICAgICByZXR1cm4g
V0VCS0lUX05FVFdPUktfRVJST1JfVU5LTk9XTl9QUk9UT0NPTDsKKyAgICBjYXNlIE5ldHdvcmtF
cnJvckNhbmNlbGxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNF
TExFRDsKKyAgICBjYXNlIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3Q6CisgICAgICAgIHJl
dHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNUOworICAgIGNhc2Ug
UG9saWN5RXJyb3JGYWlsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZB
SUxFRDsKKyAgICBjYXNlIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlOgorICAgICAgICBy
ZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19NSU1FX1RZUEU7CisgICAgY2Fz
ZSBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkw6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZ
X0VSUk9SX0NBTk5PVF9TSE9XX1VSTDsKKyAgICBjYXNlIFBvbGljeUVycm9yRnJhbWVMb2FkSW50
ZXJydXB0ZWRCeVBvbGljeUNoYW5nZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJS
T1JfRlJBTUVfTE9BRF9JTlRFUlJVUFRFRF9CWV9QT0xJQ1lfQ0hBTkdFOworICAgIGNhc2UgUG9s
aWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9Q
T0xJQ1lfRVJST1JfQ0FOTk9UX1VTRV9SRVNUUklDVEVEX1BPUlQ7CisgICAgY2FzZSBQbHVnaW5F
cnJvckZhaWxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfRkFJTEVEOwor
ICAgIGNhc2UgUGx1Z2luRXJyb3JDYW5ub3RGaW5kUGx1Z2luOgorICAgICAgICByZXR1cm4gV0VC
S0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU47CisgICAgY2FzZSBQbHVnaW5FcnJv
ckNhbm5vdExvYWRQbHVnaW46CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NB
Tk5PVF9MT0FEX1BMVUdJTjsKKyAgICBjYXNlIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFOworICAg
IGNhc2UgUGx1Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkOgorICAgICAgICByZXR1cm4gV0VC
S0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNFTExFRDsKKyAgICBjYXNlIFBsdWdpbkVy
cm9yV2lsbEhhbmRsZUxvYWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX1dJ
TExfSEFORExFX0xPQUQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlMRUQ7CisgICAgfQor
fQorCiBGcmFtZUxvYWRlckNsaWVudDo6RnJhbWVMb2FkZXJDbGllbnQoV2ViS2l0V2ViRnJhbWUq
IGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1fcG9saWN5RGVjaXNpb24oMCkK
QEAgLTk5Miw3ICsxMDMzLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRG
YWlsTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLAogICAgICAgICByZXR1
cm47CiAKICAgICBHVW5pcXVlUHRyPEdFcnJvcj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJh
bChnX3F1YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAotICAg
ICAgICBlcnJvci5lcnJvckNvZGUoKSwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgICAgIHRvV2ViS2l0TmV0d29ya0Vycm9yKGVycm9yLmVycm9yQ29k
ZSgpKSwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7CiAKICAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViUmVzb3VyY2UsICJsb2FkLWZhaWxlZCIsIHdlYkVy
cm9yLmdldCgpKTsKICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV9mcmFtZSwgInJlc291cmNl
LWxvYWQtZmFpbGVkIiwgd2ViUmVzb3VyY2UsIHdlYkVycm9yLmdldCgpKTsKQEAgLTEwMjAsOSAr
MTA2MSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIG5vdGlmeVN0YXR1cyhtX2ZyYW1lLCBXRUJL
SVRfTE9BRF9GQUlMRUQpOwogCiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdG
cm9tRnJhbWUobV9mcmFtZSk7CisKICAgICBHVW5pcXVlUHRyPEdFcnJvcj4gd2ViRXJyb3IoZ19l
cnJvcl9uZXdfbGl0ZXJhbCgKICAgICAgICAgZ19xdWFya19mcm9tX3N0cmluZyhlcnJvci5kb21h
aW4oKS51dGY4KCkuZGF0YSgpKSwKLSAgICAgICAgZXJyb3IuZXJyb3JDb2RlKCksCisgICAgICAg
IHRvV2ViS2l0TmV0d29ya0Vycm9yKGVycm9yLmVycm9yQ29kZSgpKSwKICAgICAgICAgZXJyb3Iu
bG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgZ2Jvb2xlYW4gaXNI
YW5kbGVkID0gZmFsc2U7CiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJsb2Fk
LWVycm9yIiwgbV9mcmFtZSwgZXJyb3IuZmFpbGluZ1VSTCgpLnV0ZjgoKS5kYXRhKCksIHdlYkVy
cm9yLmdldCgpLCAmaXNIYW5kbGVkKTsKQEAgLTEwOTQsNyArMTEzNiw3IEBAIFJlc291cmNlRXJy
b3IgRnJhbWVMb2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVz
b3VyY2VSZXNwb25zCiAKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxCYWNrKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIHJldHVybiAhKGVycm9yLmlzQ2FuY2Vs
bGF0aW9uKCkgfHwgZXJyb3IuZXJyb3JDb2RlKCkgPT0gV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFN
RV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BPTElDWV9DSEFOR0UgfHwgZXJyb3IuZXJyb3JDb2RlKCkg
PT0gV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEKTsKKyAgICByZXR1cm4gIShl
cnJvci5pc0NhbmNlbGxhdGlvbigpIHx8IGVycm9yLmVycm9yQ29kZSgpID09IFBvbGljeUVycm9y
RnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSB8fCBlcnJvci5lcnJvckNvZGUoKSA9
PSBQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkKTsKIH0KIAogYm9vbCBGcmFtZUxvYWRlckNsaWVu
dDo6Y2FuQ2FjaGVQYWdlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcAppbmRleCBjNzhlNzU0YWVlY2JlNWEy
ZmNkM2NkMjJmOGMxZGVkNDQ4M2Q5NDExLi5lODU4YWM3ZWIzYzc2NTdhNzc5NTBmOWQzY2YyYjc1
NDM2ZTA1MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
bmF2aWdhdGlvbmFjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCkBAIC0zNjIsMTQgKzM2Miw0NiBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF90YXJnZXRfZnJhbWUoV2ViS2l0V2Vi
TmF2aWdhdGlvbkFjdAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViS2l0V2ViTmF2aWdhdGlv
blJlYXNvbiBraXQoV2ViQ29yZTo6TmF2aWdhdGlvblR5cGUgdHlwZSkKK2lubGluZSBXZWJLaXRX
ZWJOYXZpZ2F0aW9uUmVhc29uIGtpdChXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQogewot
ICAgIHJldHVybiAoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbil0eXBlOworICAgIHN3aXRjaCh0
eXBlKSB7CisgICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkOgorICAg
ICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQ7Cisg
ICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ6CisgICAgICAgIHJl
dHVybiBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVEOworICAgIGNh
c2UgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fQkFDS19GT1JXQVJEOworICAgIGNhc2UgV2ViQ29y
ZTo6TmF2aWdhdGlvblR5cGVSZWxvYWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX05BVklH
QVRJT05fUkVBU09OX1JFTE9BRDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlRm9y
bVJlc3VibWl0dGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNP
Tl9GT1JNX1JFU1VCTUlUVEVEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVPdGhl
cjoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fT1RIRVI7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0xJTktfQ0xJQ0tFRDsKKyAgICB9CiB9CiAK
LVdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiB0
eXBlKQoraW5saW5lIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdh
dGlvblJlYXNvbiB0eXBlKQogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOYXZp
Z2F0aW9uVHlwZT4odHlwZSk7CisgICAgc3dpdGNoKHR5cGUpIHsKKyAgICBjYXNlIFdFQktJVF9X
RUJfTkFWSUdBVElPTl9SRUFTT05fTElOS19DTElDS0VEOgorICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6TmF2aWdhdGlvblR5cGVMaW5rQ2xpY2tlZDsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdB
VElPTl9SRUFTT05fRk9STV9TVUJNSVRURUQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXZp
Z2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05f
UkVBU09OX0JBQ0tfRk9SV0FSRDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25U
eXBlQmFja0ZvcndhcmQ7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX1JF
TE9BRDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlUmVsb2FkOworICAg
IGNhc2UgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9GT1JNX1JFU1VCTUlUVEVEOgorICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQ7CisgICAg
Y2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX09USEVSOgorICAgICAgICByZXR1cm4g
V2ViQ29yZTo6TmF2aWdhdGlvblR5cGVPdGhlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBl
TGlua0NsaWNrZWQ7CisgICAgfQogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcAppbmRleCA3NDJiMjNkNDBhZDU0NzgzMzJkNDFjOGMyYjI3
YTNmZTZlMTRhOTBkLi5jMTNiYzBlZGZhYTEzZGQ1NmM1YmU4MTdlYzRlZmYyOThkNmY0YjU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKQEAg
LTE2NTgsOSArMTY1OCwxOSBAQCBjaGFyKiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVS
SShXZWJLaXRXZWJTZXR0aW5ncyogd2ViU2V0dGluZ3MsIGNvbnN0IGNoYQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZSBjb3JlKFdlYktpdEVkaXRp
bmdCZWhhdmlvciB0eXBlKQoraW5saW5lIFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5cGUgY29y
ZShXZWJLaXRFZGl0aW5nQmVoYXZpb3IgdHlwZSkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yVHlwZT4odHlwZSk7CisgICAgc3dpdGNoICh0eXBlKSB7
CisgICAgY2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9NQUM6CisgICAgICAgIHJldHVybiBF
ZGl0aW5nTWFjQmVoYXZpb3I7CisgICAgY2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9XSU5E
T1dTOgorICAgICAgICByZXR1cm4gRWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICBjYXNlIFdF
QktJVF9FRElUSU5HX0JFSEFWSU9SX1VOSVg6CisgICAgICAgIHJldHVybiBFZGl0aW5nVW5peEJl
aGF2aW9yOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gRWRpdGluZ01hY0JlaGF2aW9yOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IGRlNDZhMmY4MTljZWRmM2Vh
OTg1ZjM3ZmNlMDMyMzZjMmI4Yjg2OTIuLjQxZWUxYzNiODQ1MGZlZWNkYTMwYmVhNjZhYmU2OTE1
NmE1YmFkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAK
QEAgLTExOSw2ICsxMTksNyBAQAogI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CiAj
aW5jbHVkZSA8Z2RrL2dka2tleXN5bXMuaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgor
I2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpAQCAtMjgyLDYgKzI4Myw0NyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3
ZWJTZXR0aW5ncywgR1Bhcgogc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF93aW5kb3df
ZmVhdHVyZXMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMq
IHdlYldpbmRvd0ZlYXR1cmVzKTsKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdEaXJlY3Rpb25D
aGFuZ2VkKFdlYktpdFdlYlZpZXcqLCBHdGtUZXh0RGlyZWN0aW9uIHByZXZpb3VzRGlyZWN0aW9u
LCBncG9pbnRlcik7CiAKK3N0YXRpYyBpbmxpbmUgV2ViS2l0V2ViVmlld1RhcmdldEluZm8gdG9X
ZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyhQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0
VHlwZSBmbGFncykKK3sKKyAgICBzd2l0Y2ggKGZsYWdzKSB7CisgICAgY2FzZSBQYXN0ZWJvYXJk
SGVscGVyOjpUYXJnZXRUeXBlTWFya3VwOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVX
X1RBUkdFVF9JTkZPX0hUTUw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhl
bHBlcjo6VGFyZ2V0VHlwZVRleHQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFS
R0VUX0lORk9fVEVYVDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVy
OjpUYXJnZXRUeXBlSW1hZ2U6CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VU
X0lORk9fSU1BR0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6
VGFyZ2V0VHlwZVVSSUxpc3Q6CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VU
X0lORk9fVVJJX0xJU1Q7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBl
cjo6VGFyZ2V0VHlwZU5ldHNjYXBlVVJMOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVX
X1RBUkdFVF9JTkZPX05FVFNDQVBFX1VSTDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VC
X1ZJRVdfVEFSR0VUX0lORk9fSFRNTDsKKyAgICB9Cit9CisKK3N0YXRpYyBHdGtUYXJnZXRMaXN0
KiBjb3B5R3RrVGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51
bVZhbHVlcyhHdGtUYXJnZXRMaXN0KiBjb3JlR3RrVGFyZ2V0TGlzdCkKK3sKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChjb3JlR3RrVGFyZ2V0TGlzdCwgbnVsbHB0cik7CisKKyAgICBHdGtUYXJn
ZXRMaXN0KiB0YXJnZXRMaXN0V2l0aFdlYktpdEVudW1WYWx1ZXMgPSBudWxscHRyOworICAgIGlu
dCB0YWJsZVNpemUgPSAwOworICAgIEd0a1RhcmdldEVudHJ5KiB0YWJsZShndGtfdGFyZ2V0X3Rh
YmxlX25ld19mcm9tX2xpc3QoY29yZUd0a1RhcmdldExpc3QsICZ0YWJsZVNpemUpKTsKKworICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgdGFibGVTaXplOyBpKyspCisgICAgICAgIHRhYmxlW2ldLmZs
YWdzID0gdG9XZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyhzdGF0aWNfY2FzdDxQYXN0ZWJvYXJkSGVs
cGVyOjpQYXN0ZWJvYXJkVGFyZ2V0VHlwZT4odGFibGVbaV0uZmxhZ3MpKTsKKworICAgIHRhcmdl
dExpc3RXaXRoV2ViS2l0RW51bVZhbHVlcyA9IGd0a190YXJnZXRfbGlzdF9uZXcodGFibGUsIHRh
YmxlU2l6ZSk7CisgICAgZ3RrX3RhcmdldF90YWJsZV9mcmVlKHRhYmxlLCB0YWJsZVNpemUpOwor
CisgICAgcmV0dXJuIHRhcmdldExpc3RXaXRoV2ViS2l0RW51bVZhbHVlczsKK30KKwogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQogc3RhdGljIHZvaWQgUG9wdXBNZW51UG9zaXRpb25GdW5jKEd0
a01lbnUqIG1lbnUsIGdpbnQgKngsIGdpbnQgKnksIGdib29sZWFuICpwdXNoSW4sIGdwb2ludGVy
IHVzZXJEYXRhKQogewpAQCAtMTM4MCw2ICsxNDIyLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X2Rpc3Bvc2UoR09iamVjdCogb2JqZWN0KQogICAgIHByaXYtPndlYldpbmRvd0ZlYXR1
cmVzLmNsZWFyKCk7CiAgICAgcHJpdi0+bWFpblJlc291cmNlLmNsZWFyKCk7CiAgICAgcHJpdi0+
c3ViUmVzb3VyY2VzLmNsZWFyKCk7CisgICAgcHJpdi0+dGFyZ2V0TGlzdC5jbGVhcigpOwogCiAg
ICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uo
b2JqZWN0KTsKIApAQCAtMzg3MywxMCArMzkxNiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfaW5pdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogCiAgICAgcHJpdi0+c3ViUmVzb3Vy
Y2VzID0gYWRvcHRHUmVmKGdfaGFzaF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9l
cXVhbCwgZ19mcmVlLCBnX29iamVjdF91bnJlZikpOwogCisgICAgcHJpdi0+dGFyZ2V0TGlzdCA9
IGFkb3B0R1JlZihjb3B5R3RrVGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1Rv
V2ViS2l0RW51bVZhbHVlcyhQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBl
cigpLT50YXJnZXRMaXN0KCkpKTsKKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgcHJp
di0+ZHJhZ0FuZERyb3BIZWxwZXIuc2V0V2lkZ2V0KEdUS19XSURHRVQod2ViVmlldykpOwogICAg
IGd0a19kcmFnX2Rlc3Rfc2V0KEdUS19XSURHRVQod2ViVmlldyksIHN0YXRpY19jYXN0PEd0a0Rl
c3REZWZhdWx0cz4oMCksIDAsIDAsIHN0YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KEdES19BQ1RJ
T05fQ09QWSB8IEdES19BQ1RJT05fQ09QWSB8IEdES19BQ1RJT05fTU9WRSB8IEdES19BQ1RJT05f
TElOSyB8IEdES19BQ1RJT05fUFJJVkFURSkpOwotICAgIGd0a19kcmFnX2Rlc3Rfc2V0X3Rhcmdl
dF9saXN0KEdUS19XSURHRVQod2ViVmlldyksIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0
ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKSk7CisgICAgZ3RrX2RyYWdfZGVzdF9zZXRfdGFy
Z2V0X2xpc3QoR1RLX1dJREdFVCh3ZWJWaWV3KSwgcHJpdi0+dGFyZ2V0TGlzdC5nZXQoKSk7CiAj
ZW5kaWYKIAogICAgIHByaXYtPnNlbGZTY3JvbGxpbmcgPSBmYWxzZTsKQEAgLTQ2OTEsNyArNDcz
Niw4IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBnYm9vbGVhbiBmbGFnKQogICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92
aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7Ci0gICAg
cmV0dXJuIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdl
dExpc3QoKTsKKyAgICB3ZWJWaWV3LT5wcml2LT50YXJnZXRMaXN0ID0gYWRvcHRHUmVmKGNvcHlH
dGtUYXJnZXRMaXN0Q29udmVydGluZ1dlYkNvcmVFbnVtVmFsdWVzVG9XZWJLaXRFbnVtVmFsdWVz
KFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3Qo
KSkpOworICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT50YXJnZXRMaXN0LmdldCgpOwogfQogCiAv
KioKQEAgLTQ3MDgsNyArNDc1NCw4IEBAIEd0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19n
ZXRfY29weV90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICoqLwogR3RrVGFy
Z2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdChXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQogewotICAgIHJldHVybiBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFz
dGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCk7CisgICAgd2ViVmlldy0+cHJpdi0+dGFyZ2V0
TGlzdCA9IGFkb3B0R1JlZihjb3B5R3RrVGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZh
bHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2Fy
ZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpKTsKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dGFy
Z2V0TGlzdC5nZXQoKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCmluZGV4IDNmNjkyN2UxNjJkYjFkMjA5NjI1MGY1NmUzODMz
M2NhZTBkZjc0M2IuLjZiOTAzNmNkZjRlMWY1N2ViMjkyODU5ZTg3ODFmMzgxM2I3MjYyOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBA
IC0xMDAsNiArMTAwLDcgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAgV2Vi
Q29yZTo6R3RrQ2xpY2tDb3VudGVyIGNsaWNrQ291bnRlcjsKICAgICBXZWJDb3JlOjpHdGtEcmFn
QW5kRHJvcEhlbHBlciBkcmFnQW5kRHJvcEhlbHBlcjsKICAgICBib29sIHNlbGZTY3JvbGxpbmc7
CisgICAgR1JlZlB0cjxHdGtUYXJnZXRMaXN0PiB0YXJnZXRMaXN0OwogCiAgICAgT3duUHRyPFdl
YktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ+IGFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcAppbmRleCA2ZjBjMzcw
N2UzNzhlNDJhOTNiMmRmYjkzYWQwZjMwYWU1YjdiMmRhLi5jYTc0ODBjZDkyMjI0NTlkNDcyMDNk
Yzk0M2RlNTMxZmI3MWUwYjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5jcHAKQEAg
LTY3LDE4ICs2NywzNSBAQCBzdHJ1Y3QgX1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdFByaXZh
dGUgewogCiBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9E
RUZBVUxULCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hU
VFBfQkFTSUMsIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVN
RV9IVFRQX0RJR0VTVCwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGln
ZXN0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9O
X1NDSEVNRV9IVE1MX0ZPUk0sIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRN
TEZvcm0pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQVVUSEVOVElDQVRJ
T05fU0NIRU1FX05UTE0sIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hF
TUVfTkVHT1RJQVRFLCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0
ZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9T
Q0hFTUVfQ0xJRU5UX0NFUlRJRklDQVRFX1JFUVVFU1RFRCwgUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNU
X0VWQUxVQVRJT05fUkVRVUVTVEVELCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfVU5LTk9XTiwgUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duKTsKLQogV0VCS0lUX0RFRklORV9UWVBFKFdl
YktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCwgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3Qs
IEdfVFlQRV9PQkpFQ1QpCiAKK2lubGluZSBzdGF0aWMgV2ViS2l0QXV0aGVudGljYXRpb25TY2hl
bWUgdG9XZWJLaXRBdXRoZW50aWNhdGlvblNjaGVtZShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZSBjb3JlU2NoZW1lKQoreworICAgIHN3aXRjaCAoY29yZVNjaGVt
ZSkgeworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVEZWZhdWx0OgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9E
RUZBVUxUOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVIVFRQQmFzaWM6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NI
RU1FX0hUVFBfQkFTSUM7CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElD
QVRJT05fU0NIRU1FX0hUVFBfRElHRVNUOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9B
VVRIRU5USUNBVElPTl9TQ0hFTUVfSFRNTF9GT1JNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAgICAgICByZXR1cm4gV0VCS0lU
X0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9OVExNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6CisgICAgICAgIHJldHVybiBXRUJL
SVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05FR09USUFURTsKKyAgICBjYXNlIFdlYkNvcmU6OlBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0
ZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0NMSUVOVF9D
RVJUSUZJQ0FURV9SRVFVRVNURUQ7CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICAg
ICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxV
QVRJT05fUkVRVUVTVEVEOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVVbmtub3duOgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FU
SU9OX1NDSEVNRV9VTktOT1dOOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZB
VUxUOworICAgIH0KK30KKwogc3RhdGljIHZvaWQgd2Via2l0QXV0aGVudGljYXRpb25SZXF1ZXN0
RGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgV2ViS2l0QXV0aGVudGljYXRpb25SZXF1
ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1JFUVVFU1Qob2JqZWN0KTsKQEAg
LTI0NCw3ICsyNjEsNyBAQCBXZWJLaXRBdXRoZW50aWNhdGlvblNjaGVtZSB3ZWJraXRfYXV0aGVu
dGljYXRpb25fcmVxdWVzdF9nZXRfc2NoZW1lKFdlYktpdEF1dGhlbgogewogICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19BVVRIRU5USUNBVElPTl9SRVFVRVNUKHJlcXVlc3QpLCBX
RUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX1VOS05PV04pOwogCi0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFdlYktpdEF1dGhlbnRpY2F0aW9uU2NoZW1lPihyZXF1ZXN0LT5wcml2LT5hdXRoZW50
aWNhdGlvbkNoYWxsZW5nZS0+cHJvdGVjdGlvblNwYWNlKCktPmF1dGhlbnRpY2F0aW9uU2NoZW1l
KCkpOworICAgIHJldHVybiB0b1dlYktpdEF1dGhlbnRpY2F0aW9uU2NoZW1lKHJlcXVlc3QtPnBy
aXYtPmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLT5wcm90ZWN0aW9uU3BhY2UoKS0+YXV0aGVudGlj
YXRpb25TY2hlbWUoKSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcAppbmRleCAyYzFlZjQ1Njhh
Yzc4NjFjZThmMmRjNTExZjM4MTkxOTM2ZjdlMmMxLi5mYzFmOTFhM2Q4MGY4OWVjZWVkZWYwM2U3
OGZiOGQ4NDY4NjVmMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2VyLmNwcApAQCAtNjUsMTIgKzY1LDQ4IEBAIHN0
YXRpYyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklO
RV9UWVBFKFdlYktpdENvb2tpZU1hbmFnZXIsIHdlYmtpdF9jb29raWVfbWFuYWdlciwgR19UWVBF
X09CSkVDVCkKIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BF
UlNJU1RFTlRfU1RPUkFHRV9URVhULCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUZXh0KTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NU
T1JBR0VfU1FMSVRFLCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VTUUxpdGUpOworaW5saW5l
IHN0YXRpYyBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUeXBlIHRvU291cENvb2tpZVBlcnNp
c3RlbnRTdG9yYWdlVHlwZShXZWJLaXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZSBraXRTdG9yYWdl
KQoreworICAgIHN3aXRjaCAoa2l0U3RvcmFnZSkgeworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9Q
RVJTSVNURU5UX1NUT1JBR0VfVEVYVDoKKyAgICAgICAgcmV0dXJuIFNvdXBDb29raWVQZXJzaXN0
ZW50U3RvcmFnZVRleHQ7CisgICAgY2FzZSBXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFH
RV9TUUxJVEU6CisgICAgICAgIHJldHVybiBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VTUUxp
dGU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUZXh0OworICAgIH0KK30KKworaW5s
aW5lIHN0YXRpYyBXZWJLaXRDb29raWVBY2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2NlcHRQ
b2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBodHRwUG9saWN5KQoreworICAgIHN3aXRjaCAo
aHR0cFBvbGljeSkgeworICAgIGNhc2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKKyAg
ICAgICAgcmV0dXJuIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM7CisgICAgY2Fz
ZSBIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09P
S0lFX1BPTElDWV9BQ0NFUFRfTkVWRVI7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5
T25seUZyb21NYWluRG9jdW1lbnREb21haW46CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lF
X1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRfUEFSVFk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9B
Q0NFUFRfQUxXQVlTOworICAgIH0KK30KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfQUxXQVlTLCBIVFRQQ29va2llQWNjZXB0UG9saWN5
QWx3YXlzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QT0xJ
Q1lfQUNDRVBUX05FVkVSLCBIVFRQQ29va2llQWNjZXB0UG9saWN5TmV2ZXIpOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRf
UEFSVFksIEhUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbik7
CitpbmxpbmUgc3RhdGljIEhUVFBDb29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0
UG9saWN5KFdlYktpdENvb2tpZUFjY2VwdFBvbGljeSBraXRQb2xpY3kpCit7CisgICAgc3dpdGNo
IChraXRQb2xpY3kpIHsKKyAgICBjYXNlIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdB
WVM6CisgICAgICAgIHJldHVybiBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAgIGNh
c2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSOgorICAgICAgICByZXR1cm4gSFRU
UENvb2tpZUFjY2VwdFBvbGljeU5ldmVyOworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lf
QUNDRVBUX05PX1RISVJEX1BBUlRZOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBv
bGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGlj
eUFsd2F5czsKKyAgICB9Cit9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9j
bGFzc19pbml0KFdlYktpdENvb2tpZU1hbmFnZXJDbGFzcyogZmluZENsYXNzKQogewpAQCAtMTM0
LDcgKzE3MCw3IEBAIHZvaWQgd2Via2l0X2Nvb2tpZV9tYW5hZ2VyX3NldF9wZXJzaXN0ZW50X3N0
b3JhZ2UoV2ViS2l0Q29va2llTWFuYWdlciogbWFuYWdlciwKICAgICBnX3JldHVybl9pZl9mYWls
KGZpbGVuYW1lKTsKIAogICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0b3BP
YnNlcnZpbmdDb29raWVDaGFuZ2VzKCk7Ci0gICAgbWFuYWdlci0+cHJpdi0+d2ViQ29va2llTWFu
YWdlci0+c2V0Q29va2llUGVyc2lzdGVudFN0b3JhZ2UoU3RyaW5nOjpmcm9tVVRGOChmaWxlbmFt
ZSksIHN0b3JhZ2UpOworICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnNldENv
b2tpZVBlcnNpc3RlbnRTdG9yYWdlKFN0cmluZzo6ZnJvbVVURjgoZmlsZW5hbWUpLCB0b1NvdXBD
b29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUoc3RvcmFnZSkpOwogICAgIG1hbmFnZXItPnByaXYt
PndlYkNvb2tpZU1hbmFnZXItPnN0YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwogfQogCkBA
IC0xNDksMTMgKzE4NSwxMyBAQCB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNjZXB0
X3BvbGljeShXZWJLaXRDb29raWVNYW5hZ2VyKiBtYW5hZ2VyLCBXZWJLaQogewogICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0NPT0tJRV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAgIG1h
bmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3ko
cG9saWN5KTsKKyAgICBtYW5hZ2VyLT5wcml2LT53ZWJDb29raWVNYW5hZ2VyLT5zZXRIVFRQQ29v
a2llQWNjZXB0UG9saWN5KHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKIH0KIAog
c3RhdGljIHZvaWQgd2Via2l0Q29va2llTWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKFdL
SFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQp
CiB7CiAgICAgR1JlZlB0cjxHVGFzaz4gdGFzayA9IGFkb3B0R1JlZihHX1RBU0soY29udGV4dCkp
OwotICAgIGdfdGFza19yZXR1cm5faW50KHRhc2suZ2V0KCksIHBvbGljeSk7CisgICAgZ190YXNr
X3JldHVybl9pbnQodGFzay5nZXQoKSwgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kodG9IVFRQ
Q29va2llQWNjZXB0UG9saWN5KHBvbGljeSkpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENyZWRlbnRpYWwuY3BwCmluZGV4IDU3
NTVmZDVjN2M4MDY1ZjViMWY2ZjVlMTI4OTdiMzI3N2IwM2Q0ZWUuLjBiOTA2ZDY3ODhkMzhmYmE3
Y2Y0NTk4MjYzY2U3ZTIwMmI0MWE2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdENyZWRlbnRpYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENyZWRlbnRpYWwuY3BwCkBAIC0zNywxMiArMzcsMzggQEAg
c3RydWN0IF9XZWJLaXRDcmVkZW50aWFsIHsKICAgICBDU3RyaW5nIHBhc3N3b3JkOwogfTsKIAot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5D
RV9OT05FLCBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKLUNPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfRk9SX1NFU1NJ
T04sIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24pOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5F
TlQsIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZVBlcm1hbmVudCk7Ci0KIEdfREVGSU5F
X0JPWEVEX1RZUEUoV2ViS2l0Q3JlZGVudGlhbCwgd2Via2l0X2NyZWRlbnRpYWwsIHdlYmtpdF9j
cmVkZW50aWFsX2NvcHksIHdlYmtpdF9jcmVkZW50aWFsX2ZyZWUpCiAKK2lubGluZSBzdGF0aWMg
V2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNl
KFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZSBjb3JlUGVyc2lzdGVuY2UpCit7CisgICAg
c3dpdGNoIChjb3JlUGVyc2lzdGVuY2UpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZU5vbmU6CisgICAgICAgIHJldHVybiBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNU
RU5DRV9OT05FOworICAgIGNhc2UgV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vz
c2lvbjoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX0ZPUl9T
RVNTSU9OOworICAgIGNhc2UgV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlUGVybWFuZW50
OgorICAgICAgICByZXR1cm4gV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5U
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4gV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfTk9ORTsKKyAgICB9Cit9CisKK2lu
bGluZSBzdGF0aWMgV2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlIHRvV2ViQ29yZUNyZWRl
bnRpYWxQZXJzaXN0ZW5jZShXZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2Uga2l0UGVyc2lzdGVu
Y2UpCit7CisgICAgc3dpdGNoIChraXRQZXJzaXN0ZW5jZSkgeworICAgIGNhc2UgV0VCS0lUX0NS
RURFTlRJQUxfUEVSU0lTVEVOQ0VfTk9ORToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRl
bnRpYWxQZXJzaXN0ZW5jZU5vbmU7CisgICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNU
RU5DRV9GT1JfU0VTU0lPTjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJz
aXN0ZW5jZUZvclNlc3Npb247CisgICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5D
RV9QRVJNQU5FTlQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVu
Y2VQZXJtYW5lbnQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lOworICAg
IH0KK30KKwogV2ViS2l0Q3JlZGVudGlhbCogd2Via2l0Q3JlZGVudGlhbENyZWF0ZShjb25zdCBX
ZWJDb3JlOjpDcmVkZW50aWFsJiBjb3JlQ3JlZGVudGlhbCkKIHsKICAgICBXZWJLaXRDcmVkZW50
aWFsKiBjcmVkZW50aWFsID0gZ19zbGljZV9uZXcoV2ViS2l0Q3JlZGVudGlhbCk7CkBAIC03Myw3
ICs5OSw3IEBAIFdlYktpdENyZWRlbnRpYWwqIHdlYmtpdF9jcmVkZW50aWFsX25ldyhjb25zdCBn
Y2hhciogdXNlcm5hbWUsIGNvbnN0IGdjaGFyKiBwYXNzCiAgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwodXNlcm5hbWUsIDApOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHBhc3N3b3JkLCAwKTsK
IAotICAgIHJldHVybiB3ZWJraXRDcmVkZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwo
U3RyaW5nOjpmcm9tVVRGOCh1c2VybmFtZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2U+KHBlcnNpc3RlbmNlKSkp
OworICAgIHJldHVybiB3ZWJraXRDcmVkZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwo
U3RyaW5nOjpmcm9tVVRGOCh1c2VybmFtZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCB0
b1dlYkNvcmVDcmVkZW50aWFsUGVyc2lzdGVuY2UocGVyc2lzdGVuY2UpKSk7CiB9CiAKIC8qKgpA
QCAtMTc4LDUgKzIwNCw1IEBAIFdlYktpdENyZWRlbnRpYWxQZXJzaXN0ZW5jZSB3ZWJraXRfY3Jl
ZGVudGlhbF9nZXRfcGVyc2lzdGVuY2UoV2ViS2l0Q3JlZGVudGlhbCoKIHsKICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChjcmVkZW50aWFsLCBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9O
T05FKTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVu
Y2U+KGNyZWRlbnRpYWwtPmNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSk7CisgICAgcmV0dXJuIHRv
V2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKGNyZWRlbnRpYWwtPmNyZWRlbnRpYWwucGVyc2lz
dGVuY2UoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXREb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXREb3dubG9hZC5jcHAKaW5kZXggZTk1ZTRjMDY1MGIzOTNlOGM4YWFiYjY0M2NiMzcwZmVl
NDQ5ZDU5My4uYzQ4M2I5MjdjZmQyMzY3MDVjMjI4NmQ3NmM3Nzc2MmRlMGVjMDA2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNw
cApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJLaXREb3dubG9hZFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCisj
aW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9FcnJvcnNHdGsuaD4KQEAgLTM0MCw3ICszNDEsNyBAQCB2b2lkIHdlYmtpdERvd25s
b2FkTm90aWZ5UHJvZ3Jlc3MoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkLCBndWludDY0IGJ5dGVz
UmVjZWl2ZQogdm9pZCB3ZWJraXREb3dubG9hZEZhaWxlZChXZWJLaXREb3dubG9hZCogZG93bmxv
YWQsIGNvbnN0IFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCiB7CiAgICAgR1VuaXF1ZVB0
cjxHRXJyb3I+IHdlYkVycm9yKGdfZXJyb3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmlu
ZyhyZXNvdXJjZUVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICByZXNvdXJj
ZUVycm9yLmVycm9yQ29kZSgpLCByZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCku
dXRmOCgpLmRhdGEoKSkpOworICAgICAgICB0b1dlYktpdEVycm9yKHJlc291cmNlRXJyb3IuZXJy
b3JDb2RlKCkpLCByZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRh
dGEoKSkpOwogICAgIGlmIChkb3dubG9hZC0+cHJpdi0+dGltZXIpCiAgICAgICAgIGdfdGltZXJf
c3RvcChkb3dubG9hZC0+cHJpdi0+dGltZXIuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRFcnJvci5jcHAKaW5kZXggYzA2ZGM2MWE1OGNjNGFh
MGE2YzE2ZGE2NTQ2NDA0YTYwZTAxMjRmZS4uNzQxOWVlNzIxYTBmZTg2YWJjMzY0MzZkMjRlYzI1
ZTQ2NDIzZThjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0RXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEVycm9yLmNwcApAQCAtNDAsNTMgKzQwLDI2IEBAIEdRdWFyayB3ZWJraXRfbmV0d29ya19l
cnJvcl9xdWFyaygpCiAgICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNv
cmU6OmVycm9yRG9tYWluTmV0d29yayk7CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX05FVFdPUktfRVJST1JfRkFJTEVELCBOZXR3b3JrRXJyb3JGYWlsZWQpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQs
IE5ldHdvcmtFcnJvclRyYW5zcG9ydCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9ORVRXT1JLX0VSUk9SX1VOS05PV05fUFJPVE9DT0wsIE5ldHdvcmtFcnJvclVua25vd25Q
cm90b2NvbCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VS
Uk9SX0NBTkNFTExFRCwgTmV0d29ya0Vycm9yQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVCwgTmV0
d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdCk7Ci0KIEdRdWFyayB3ZWJraXRfcG9saWN5X2Vycm9y
X3F1YXJrKCkKIHsKICAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29y
ZTo6ZXJyb3JEb21haW5Qb2xpY3kpOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVELCBQb2xpY3lFcnJvckZhaWxlZCk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlN
RV9UWVBFLCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSk7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJLCBQb2xpY3lF
cnJvckNhbm5vdFNob3dVUkwpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
UE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRSwgUG9s
aWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlKTsKLUNPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNU
RURfUE9SVCwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCk7Ci0KIEdRdWFyayB3
ZWJraXRfcGx1Z2luX2Vycm9yX3F1YXJrKCkKIHsKICAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0
YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5QbHVnaW4pOwogfQogCi1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfRkFJTEVELCBQbHVnaW5FcnJv
ckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJS
T1JfQ0FOTk9UX0ZJTkRfUExVR0lOLCBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4pOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FE
X1BMVUdJTiwgUGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luKTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFLCBQbHVnaW5F
cnJvckphdmFVbmF2YWlsYWJsZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9DQU5DRUxMRUQsIFBsdWdpbkVycm9yQ29ubmVjdGlv
bkNhbmNlbGxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5f
RVJST1JfV0lMTF9IQU5ETEVfTE9BRCwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCk7Ci0KIEdR
dWFyayB3ZWJraXRfZG93bmxvYWRfZXJyb3JfcXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJr
X2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3JlOjplcnJvckRvbWFpbkRvd25sb2FkKTsKIH0KIAot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09S
SywgRG93bmxvYWRFcnJvck5ldHdvcmspOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfRE9XTkxPQURfRVJST1JfQ0FOQ0VMTEVEX0JZX1VTRVIsIERvd25sb2FkRXJyb3JDYW5j
ZWxsZWRCeVVzZXIpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxP
QURfRVJST1JfREVTVElOQVRJT04sIERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbik7Ci0KIEdRdWFy
ayB3ZWJraXRfcHJpbnRfZXJyb3JfcXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21f
c3RhdGljX3N0cmluZyhXZWJDb3JlOjplcnJvckRvbWFpblByaW50KTsKIH0KIAotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUFJJTlRfRVJST1JfR0VORVJBTCwgUHJpbnRFcnJv
ckdlbmVyYWwpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUFJJTlRfRVJS
T1JfUFJJTlRFUl9OT1RfRk9VTkQsIFByaW50RXJyb3JQcmludGVyTm90Rm91bmQpOwotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9QQUdFX1JB
TkdFLCBQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZSk7Ci0KIEdRdWFyayB3ZWJraXRfamF2YXNj
cmlwdF9lcnJvcl9xdWFyaygpCiB7CiAgICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3Ry
aW5nKCJXZWJLaXRKYXZhc2NyaXB0RXJyb3IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcAppbmRleCA4NzU5
MzA2ZTJiY2YxZjk2MWU1Nzg0MWNiMTQ2YjYwZmMyNmQ1OWY2Li42ZTcxNDFlNGU4M2Q4NTEwZmUz
ODRhZTA3YTVkNzIwNzc4YTljMzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuY3BwCkBAIC04MiwxMSArODIs
MjIgQEAgc3RhdGljIGd1aW50IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJL
SVRfREVGSU5FX1RZUEUoV2ViS2l0RmluZENvbnRyb2xsZXIsIHdlYmtpdF9maW5kX2NvbnRyb2xs
ZXIsIEdfVFlQRV9PQkpFQ1QpCiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VOU0lUSVZFLCBGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2
ZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9GSU5EX09QVElPTlNfQVRf
V09SRF9TVEFSVFMsIEZpbmRPcHRpb25zQXRXb3JkU3RhcnRzKTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19X
T1JEX1NUQVJULCBGaW5kT3B0aW9uc1RyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0KTsKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMs
IEZpbmRPcHRpb25zQmFja3dhcmRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX0ZJTkRfT1BUSU9OU19XUkFQX0FST1VORCwgRmluZE9wdGlvbnNXcmFwQXJvdW5kKTsKK3N0
YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b1dlYktpdEZpbmRPcHRpb25zKFdlYktp
dEZpbmRPcHRpb25zIHR5cGUpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdDo6Rmlu
ZE9wdGlvbnM+KCh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VOU0lUSVZFID8g
RmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lU
X0ZJTkRfT1BUSU9OU19BVF9XT1JEX1NUQVJUUyA/IEZpbmRPcHRpb25zQXRXb3JkU3RhcnRzIDog
MCkKKyAgICAgICAgfCAodHlwZSAmIFdFQktJVF9GSU5EX09QVElPTlNfVFJFQVRfTUVESUFMX0NB
UElUQUxfQVNfV09SRF9TVEFSVCA/IEZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3Jk
U3RhcnQgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FS
RFMgPyBGaW5kT3B0aW9uc0JhY2t3YXJkcyA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRf
RklORF9PUFRJT05TX1dSQVBfQVJPVU5EID8gRmluZE9wdGlvbnNXcmFwQXJvdW5kIDogMCkKKyAg
ICAgICAgfCAodHlwZSAmIFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID8gRmluZE9w
dGlvbnNTaG93T3ZlcmxheSA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJ
T05TX1NIT1dfRklORF9JTkRJQ0FUT1IgPyBGaW5kT3B0aW9uc1Nob3dGaW5kSW5kaWNhdG9yIDog
MCkKKyAgICAgICAgfCAodHlwZSAmIFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19ISUdITElHSFQg
PyBGaW5kT3B0aW9uc1Nob3dIaWdobGlnaHQgOiAwKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgV2Vi
S2l0OjpGaW5kT3B0aW9ucyB0b1dlYktpdEZpbmRPcHRpb25zKHVpbnQzMl90IHR5cGUpCit7Cisg
ICAgcmV0dXJuIHRvV2ViS2l0RmluZE9wdGlvbnMoc3RhdGljX2Nhc3Q8V2ViS2l0RmluZE9wdGlv
bnM+KHR5cGUpKTsKK30KIAogc3RhdGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFn
ZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogewpAQCAtMzQ5LDcgKzM2MCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdEZpbmRD
b250cm9sbGVyUGVyZm9ybShXZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIsIFdl
CiAgICAgV2ViS2l0RmluZENvbnRyb2xsZXJQcml2YXRlKiBwcml2ID0gZmluZENvbnRyb2xsZXIt
PnByaXY7CiAgICAgaWYgKG9wZXJhdGlvbiA9PSBDb3VudE9wZXJhdGlvbikgewogICAgICAgICBn
ZXRQYWdlKGZpbmRDb250cm9sbGVyKS0+Y291bnRTdHJpbmdNYXRjaGVzKFN0cmluZzo6ZnJvbVVU
RjgocHJpdi0+c2VhcmNoVGV4dC5kYXRhKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+
KHByaXYtPmZpbmRPcHRpb25zKSwgcHJpdi0+bWF4TWF0Y2hDb3VudCk7CisgICAgICAgICAgICB0
b1dlYktpdEZpbmRPcHRpb25zKHByaXYtPmZpbmRPcHRpb25zKSwgcHJpdi0+bWF4TWF0Y2hDb3Vu
dCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM2Miw5ICszNzMsOSBAQCBzdGF0aWMg
dm9pZCB3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0oV2ViS2l0RmluZENvbnRyb2xsZXIqIGZp
bmRDb250cm9sbGVyLCBXZQogICAgICAgICAvLyB1bmNvbmRpdGlvbmFsbHkgc2hvdyBoaWdobGln
aHRzLiBCb3RoIHNlYXJjaF9uZXh0KCkgYW5kCiAgICAgICAgIC8vIHNlYXJjaF9wcmV2KCkgc2hv
dWxkIG5vdCBlbmFibGUgaGlnaGxpZ2h0aW5nIHRvIGF2b2lkIGFuCiAgICAgICAgIC8vIGV4dHJh
IHVubWFya0FsbFRleHRNYXRjaGVzKCkgKyBtYXJrQWxsVGV4dE1hdGNoZXMoKQotICAgICAgICBm
aW5kT3B0aW9ucyB8PSBGaW5kT3B0aW9uc1Nob3dIaWdobGlnaHQ7CisgICAgICAgIGZpbmRPcHRp
b25zIHw9IFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19ISUdITElHSFQ7CiAKLSAgICBnZXRQYWdl
KGZpbmRDb250cm9sbGVyKS0+ZmluZFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHByaXYtPnNlYXJj
aFRleHQuZGF0YSgpKSwgc3RhdGljX2Nhc3Q8V2ViS2l0OjpGaW5kT3B0aW9ucz4oZmluZE9wdGlv
bnMpLAorICAgIGdldFBhZ2UoZmluZENvbnRyb2xsZXIpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJv
bVVURjgocHJpdi0+c2VhcmNoVGV4dC5kYXRhKCkpLCB0b1dlYktpdEZpbmRPcHRpb25zKGZpbmRP
cHRpb25zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5t
YXhNYXRjaENvdW50KTsKIH0KIApAQCAtNDI1LDcgKzQzNiw3IEBAIHZvaWQgd2Via2l0X2ZpbmRf
Y29udHJvbGxlcl9zZWFyY2hfbmV4dChXZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xs
ZXIpCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfRklORF9DT05UUk9MTEVSKGZpbmRD
b250cm9sbGVyKSk7CiAKICAgICBmaW5kQ29udHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0g
fldFQktJVF9GSU5EX09QVElPTlNfQkFDS1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2
LT5maW5kT3B0aW9ucyAmPSB+RmluZE9wdGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250
cm9sbGVyLT5wcml2LT5maW5kT3B0aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJ
R0hMSUdIVDsKICAgICB3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIs
IEZpbmROZXh0UHJldk9wZXJhdGlvbik7CiB9CiAKQEAgLTQ0Myw3ICs0NTQsNyBAQCB2b2lkIHdl
YmtpdF9maW5kX2NvbnRyb2xsZXJfc2VhcmNoX3ByZXZpb3VzKFdlYktpdEZpbmRDb250cm9sbGVy
KiBmaW5kQ29udHJvbGxlcgogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTkRfQ09O
VFJPTExFUihmaW5kQ29udHJvbGxlcikpOwogCiAgICAgZmluZENvbnRyb2xsZXItPnByaXYtPmZp
bmRPcHRpb25zIHw9IFdFQktJVF9GSU5EX09QVElPTlNfQkFDS1dBUkRTOwotICAgIGZpbmRDb250
cm9sbGVyLT5wcml2LT5maW5kT3B0aW9ucyAmPSB+RmluZE9wdGlvbnNTaG93SGlnaGxpZ2h0Owor
ICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BU
SU9OU19TSE9XX0hJR0hMSUdIVDsKICAgICB3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0oZmlu
ZENvbnRyb2xsZXIsIEZpbmROZXh0UHJldk9wZXJhdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCmlu
ZGV4IDdiYWQxZDA1MTg0ZDMxNTZkMWQxZmQ5NjQ0NWM5YzlkMTdmYTNmM2UuLmM4OWMzODY0ZmRl
OGQ5MWVlYmU0MWMwNjEwYTYxMzg4YzczNGQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaApAQCAtNjMsNiAr
NjMsMTAgQEAgdHlwZWRlZiBlbnVtIHsKICAgV0VCS0lUX0ZJTkRfT1BUSU9OU19UUkVBVF9NRURJ
QUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJUID0gMSA8PCAyLAogICBXRUJLSVRfRklORF9PUFRJT05T
X0JBQ0tXQVJEUyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAxIDw8IDMsCiAgIFdFQktJVF9G
SU5EX09QVElPTlNfV1JBUF9BUk9VTkQgPSAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgNCwK
KyAgLyo8IHByaXZhdGUgPiovCisgIFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID0g
ICAgICAgICAgICAgICAgICAgICAgIDEgPDwgNSwKKyAgV0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9X
X0ZJTkRfSU5ESUNBVE9SID0gICAgICAgICAgICAgICAgMSA8PCA2LAorICBXRUJLSVRfRklORF9P
UFRJT05TX1NIT1dfSElHSExJR0hUID0gICAgICAgICAgICAgICAgICAgICAxIDw8IDcsCiB9IFdl
YktpdEZpbmRPcHRpb25zOwogCiBzdHJ1Y3QgX1dlYktpdEZpbmRDb250cm9sbGVyIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVu
ZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdElu
amVjdGVkQnVuZGxlQ2xpZW50LmNwcAppbmRleCAxYjc3YjZlYTdiNDY3MGYxOWU5NjA2MTA0Mzc3
MmQxOTk0OWE5MjIxLi5iOWFjMjM0YmY3YzMwZDVhMzUzOTk2N2YyNzdlZDExMTZkNGQwZmIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVk
ZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKIAogI2luY2x1ZGUgIldlYkltYWdlLmgi
CisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKQEAgLTg3LDcgKzg4LDcgQEAgc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZVdlYlZpZXdNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIGMKICAgICAgICAgQVBJOjpFcnJvciogd2ViRXJyb3IgPSBzdGF0aWNfY2Fz
dDxBUEk6OkVycm9yKj4obWVzc2FnZS5nZXQoU3RyaW5nOjpmcm9tVVRGOCgiRXJyb3IiKSkpOwog
ICAgICAgICBjb25zdCBSZXNvdXJjZUVycm9yJiBwbGF0Zm9ybUVycm9yID0gd2ViRXJyb3ItPnBs
YXRmb3JtRXJyb3IoKTsKICAgICAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHJlc291cmNlRXJyb3Io
Z19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21fc3RyaW5nKHBsYXRmb3JtRXJyb3IuZG9t
YWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgICAgICBwbGF0Zm9ybUVycm9yLmVycm9yQ29k
ZSgpLCBwbGF0Zm9ybUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkp
OworICAgICAgICAgICAgdG9XZWJLaXRFcnJvcihwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpKSwg
cGxhdGZvcm1FcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKIAog
ICAgICAgICB3ZWJraXRXZWJSZXNvdXJjZUZhaWxlZChyZXNvdXJjZS5nZXQoKSwgcmVzb3VyY2VF
cnJvci5nZXQoKSk7CiAgICAgICAgIHdlYmtpdFdlYlZpZXdSZW1vdmVMb2FkaW5nV2ViUmVzb3Vy
Y2Uod2ViVmlldywgcmVzb3VyY2VJZGVudGlmaWVyLT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IDRiMmU1OWMyNWZlN2Y4MDU1ZTc0OGI3ZmI3YWE4Y2ZjMTBjMzVkNzEuLmFiOTdkMjkwODNj
OTI4ZWFmOTU1YTRlMzJkNDc5MzBkMDA1NmQyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAtMjIsNiAr
MjIsNyBAQAogI2luY2x1ZGUgIldlYktpdExvYWRlckNsaWVudC5oIgogCiAjaW5jbHVkZSAiV2Vi
S2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRVUklSZXNwb25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRX
ZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgpA
QCAtNTQsNyArNTUsNyBAQCBzdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZgogCiAgICAgY29uc3QgUmVz
b3VyY2VFcnJvciYgcmVzb3VyY2VFcnJvciA9IHRvSW1wbChlcnJvciktPnBsYXRmb3JtRXJyb3Io
KTsKICAgICBHVW5pcXVlUHRyPEdFcnJvcj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChn
X3F1YXJrX2Zyb21fc3RyaW5nKHJlc291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSks
Ci0gICAgICAgIHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCksIHJlc291cmNlRXJyb3IubG9jYWxp
emVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIHRvV2ViS2l0RXJyb3Io
cmVzb3VyY2VFcnJvci5lcnJvckNvZGUoKSksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3Jp
cHRpb24oKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgaWYgKHJlc291cmNlRXJyb3IudGxzRXJyb3Jz
KCkpIHsKICAgICAgICAgd2Via2l0V2ViVmlld0xvYWRGYWlsZWRXaXRoVExTRXJyb3JzKFdFQktJ
VF9XRUJfVklFVyhjbGllbnRJbmZvKSwgcmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgp
LmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCksCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHVGxzQ2Vy
dGlmaWNhdGVGbGFncz4ocmVzb3VyY2VFcnJvci50bHNFcnJvcnMoKSksIHJlc291cmNlRXJyb3Iu
Y2VydGlmaWNhdGUoKSk7CkBAIC04NSw3ICs4Niw3IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJy
CiAKICAgICBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yID0gdG9JbXBsKGVycm9y
KS0+cGxhdGZvcm1FcnJvcigpOwogICAgIEdVbmlxdWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vy
cm9yX25ld19saXRlcmFsKGdfcXVhcmtfZnJvbV9zdHJpbmcocmVzb3VyY2VFcnJvci5kb21haW4o
KS51dGY4KCkuZGF0YSgpKSwKLSAgICAgICAgcmVzb3VyY2VFcnJvci5lcnJvckNvZGUoKSwgcmVz
b3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAg
ICAgdG9XZWJLaXRFcnJvcihyZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJv
ci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICB3ZWJraXRXZWJW
aWV3TG9hZEZhaWxlZChXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9MT0FEX0NP
TU1JVFRFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZUVycm9yLmZhaWxp
bmdVUkwoKS51dGY4KCkuZGF0YSgpLCB3ZWJFcnJvci5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdh
dGlvblBvbGljeURlY2lzaW9uLmNwcAppbmRleCBmMDM0NDZiYWI3MzBjZDQ2YjBmNjkyYzcxZDFj
MGVlMjNlNDI2YmIyLi44MzM2NmRjY2Q3ZGExZjQ1MzBkMThlZDNkYWI2NDZkZWNiMTAwMGMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5jcHAKQEAgLTI0MywxMyArMjQzLDYg
QEAgY29uc3QgY2hhciogd2Via2l0X25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF9mcmFt
ZV9uYW1lKFdlYktpdE5hdmlnYXRpb25Qb2wKICAgICByZXR1cm4gZGVjaXNpb24tPnByaXYtPmZy
YW1lTmFtZS5kYXRhKCk7CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X05BVklHQVRJT05fVFlQRV9MSU5LX0NMSUNLRUQsIE5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQp
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0ZP
Uk1fU1VCTUlUVEVELCBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0JBQ0tfRk9SV0FSRCwgTmF2
aWdhdGlvblR5cGVCYWNrRm9yd2FyZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9OQVZJR0FUSU9OX1RZUEVfUkVMT0FELCBOYXZpZ2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNV
Qk1JVFRFRCwgTmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXRUJLSVRfTkFWSUdBVElPTl9UWVBFX09USEVSLCBOYXZpZ2F0aW9uVHlw
ZU90aGVyKTsKLQogV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uKiB3ZWJraXROYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb25DcmVhdGUoV2ViS2l0TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5
cGUsIHVuc2lnbmVkIG1vdXNlQnV0dG9uLCB1bnNpZ25lZCBtb2RpZmllcnMsIEFQSTo6VVJMUmVx
dWVzdCogcmVxdWVzdCwgY29uc3QgY2hhciogZnJhbWVOYW1lLCBXZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHkqIGxpc3RlbmVyKQogewogICAgIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
biogZGVjaXNpb24gPSBXRUJLSVRfTkFWSUdBVElPTl9QT0xJQ1lfREVDSVNJT04oZ19vYmplY3Rf
bmV3KFdFQktJVF9UWVBFX05BVklHQVRJT05fUE9MSUNZX0RFQ0lTSU9OLCBOVUxMKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xp
ZW50LmNwcAppbmRleCAxZWI2YjFlYzY2OWFiY2M3OWM4ZjA4ZDQ3Nzc5NjgwZjQyZWFhNWQ2Li4w
ZTQ0YTQwMTA0Y2JjMWJlNDg5ZDM2YzIxOTM5Nzg2NTNlZTMwZDBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAK
QEAgLTI5LDEwICsyOSwzMSBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCitpbmxpbmUg
c3RhdGljIFdlYktpdE5hdmlnYXRpb25UeXBlIHRvV2ViS2l0TmF2aWdhdGlvblR5cGUoV0tGcmFt
ZU5hdmlnYXRpb25UeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBr
V0tGcmFtZU5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRf
TkFWSUdBVElPTl9UWVBFX0xJTktfQ0xJQ0tFRDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlv
blR5cGVGb3JtU3VibWl0dGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fVFlQ
RV9GT1JNX1NVQk1JVFRFRDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVCYWNrRm9y
d2FyZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfQkFDS19GT1JXQVJE
OworICAgIGNhc2Uga1dLRnJhbWVOYXZpZ2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfUkVMT0FEOworICAgIGNhc2Uga1dLRnJhbWVOYXZpZ2F0
aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9O
X1RZUEVfRk9STV9SRVNVQk1JVFRFRDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVP
dGhlcjoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfT1RIRVI7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBX
RUJLSVRfTkFWSUdBVElPTl9UWVBFX0xJTktfQ0xJQ0tFRDsKKyAgICB9Cit9CisKIHN0YXRpYyB2
b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmIHBhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVu
dE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tG
cmFtZVJlZiBvcmlnaW5hdGluZ0ZyYW1lLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFt
ZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCiB7CiAgICAgR1JlZlB0cjxXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb24+IGRlY2lzaW9uID0KLSAgICAgICAgYWRvcHRHUmVmKHdlYmtpdE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbkNyZWF0ZShzdGF0aWNfY2FzdDxXZWJLaXROYXZpZ2F0aW9uVHlwZT4obmF2aWdh
dGlvblR5cGUpLAorICAgICAgICBhZG9wdEdSZWYod2Via2l0TmF2aWdhdGlvblBvbGljeURlY2lz
aW9uQ3JlYXRlKHRvV2ViS2l0TmF2aWdhdGlvblR5cGUobmF2aWdhdGlvblR5cGUpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRN
b3VzZUJ1dHRvblRvV2ViS2l0TW91c2VCdXR0b24obW91c2VCdXR0b24pLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb2RpZmll
cnNUb0dka01vZGlmaWVycyhtb2RpZmllcnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW1wbChyZXF1ZXN0KSwKQEAgLTQ2LDcgKzY3
LDcgQEAgc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0sKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZv
ck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFt
ZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVz
dCwgV0tTdHJpbmdSZWYgZnJhbWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVu
ZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBH
UmVmUHRyPFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbj4gZGVjaXNpb24gPQotICAgICAg
ICBhZG9wdEdSZWYod2Via2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHN0YXRpY19j
YXN0PFdlYktpdE5hdmlnYXRpb25UeXBlPihuYXZpZ2F0aW9uVHlwZSksCisgICAgICAgIGFkb3B0
R1JlZih3ZWJraXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DcmVhdGUodG9XZWJLaXROYXZpZ2F0
aW9uVHlwZShuYXZpZ2F0aW9uVHlwZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2tFdmVudE1vdXNlQnV0dG9uVG9XZWJLaXRNb3VzZUJ1
dHRvbihtb3VzZUJ1dHRvbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2tFdmVudE1vZGlmaWVyc1RvR2RrTW9kaWZpZXJzKG1vZGlmaWVy
cyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdG9JbXBsKHJlcXVlc3QpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uY3BwCmluZGV4IGVlOTcyNDg0ZDg1MjA2
YzRkZmYzYzg0NzUyMjdjZTUwMGU2OGViNGYuLmRhYTUwOWIyNDlhYmFjZmYzYjdhODJlZjU5MzQw
ODdlNjVmZDY5ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFByaW50T3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAKQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0
aWMgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZ0NvbXBsZXRlZChXS0Vycm9yUmVmIHdrUHJpbnRF
cnJvciwgV0tFcnJvclJlZiwgdgogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIHJl
c291cmNlRXJyb3IgPSB3a1ByaW50RXJyb3IgPyB0b0ltcGwod2tQcmludEVycm9yKS0+cGxhdGZv
cm1FcnJvcigpIDogV2ViQ29yZTo6UmVzb3VyY2VFcnJvcigpOwogICAgIGlmICghcmVzb3VyY2VF
cnJvci5pc051bGwoKSkgewogICAgICAgICBHVW5pcXVlUHRyPEdFcnJvcj4gcHJpbnRFcnJvcihn
X2Vycm9yX25ld19saXRlcmFsKGdfcXVhcmtfZnJvbV9zdHJpbmcocmVzb3VyY2VFcnJvci5kb21h
aW4oKS51dGY4KCkuZGF0YSgpKSwKLSAgICAgICAgICAgIHJlc291cmNlRXJyb3IuZXJyb3JDb2Rl
KCksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7
CisgICAgICAgICAgICB0b1dlYktpdEVycm9yKHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCkpLCBy
ZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogICAg
ICAgICBnX3NpZ25hbF9lbWl0KHByaW50T3BlcmF0aW9uLmdldCgpLCBzaWduYWxzW0ZBSUxFRF0s
IDAsIHByaW50RXJyb3IuZ2V0KCkpOwogICAgIH0KICAgICBnX3NpZ25hbF9lbWl0KHByaW50T3Bl
cmF0aW9uLmdldCgpLCBzaWduYWxzW0ZJTklTSEVEXSwgMCwgTlVMTCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCmluZGV4IGQzNGI5
YzQ3MTcxYTA4YWY5ZGNlYjI3NzZkODc5YmE4ZThlNDI2MGIuLjRjMjUxN2NiZjMwMzlkZmI2Zjgz
YTNiZWZjNzI5NjQxMGQ3MDhlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuY3BwCkBAIC0yMCw2ICsyMCw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogCisjaW5jbHVkZSAiRXJyb3Jz
R3RrLmgiCisjaW5jbHVkZSAiV2ViS2l0RXJyb3IuaCIKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAK
IHVuc2lnbmVkIHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhXS0V2ZW50TW9kaWZpZXJz
IHdrTW9kaWZpZXJzKQpAQCAtNTEsMyArNTMsMTA5IEBAIHVuc2lnbmVkIHdrRXZlbnRNb3VzZUJ1
dHRvblRvV2ViS2l0TW91c2VCdXR0b24oV0tFdmVudE1vdXNlQnV0dG9uIHdrQnV0dG9uKQogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAwOwogfQorCitpbmxpbmUgdW5zaWdu
ZWQgdG9XZWJLaXRFcnJvcih1bnNpZ25lZCB3ZWJDb3JlRXJyb3IpCit7CisgICAgc3dpdGNoICh3
ZWJDb3JlRXJyb3IpIHsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckZhaWxlZDoKKyAg
ICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICBjYXNlIFdlYkNv
cmU6Ok5ldHdvcmtFcnJvclRyYW5zcG9ydDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JL
X0VSUk9SX1RSQU5TUE9SVDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclVua25vd25Q
cm90b2NvbDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05PV05fUFJP
VE9DT0w7CisgICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JDYW5jZWxsZWQ6CisgICAgICAg
IHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ7CisgICAgY2FzZSBXZWJDb3Jl
OjpOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0OgorICAgICAgICByZXR1cm4gV0VCS0lUX05F
VFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVDsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGlj
eUVycm9yRmFpbGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GQUlMRUQ7
CisgICAgY2FzZSBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZToKKyAgICAg
ICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFOworICAg
IGNhc2UgV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93VVJMOgorICAgICAgICByZXR1cm4g
V0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkk7CisgICAgY2FzZSBXZWJDb3JlOjpQ
b2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U6CisgICAgICAgIHJl
dHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZ
X0NIQU5HRTsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90VXNlUmVzdHJpY3Rl
ZFBvcnQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9VU0VfUkVT
VFJJQ1RFRF9QT1JUOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JGYWlsZWQ6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxFRDsKKyAgICBjYXNlIFdlYkNvcmU6
OlBsdWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbjoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVH
SU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJy
b3JDYW5ub3RMb2FkUGx1Z2luOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9D
QU5OT1RfTE9BRF9QTFVHSU47CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvckphdmFVbmF2
YWlsYWJsZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfSkFWQV9VTkFWQUlM
QUJMRTsKKyAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZDoK
KyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9DQU5DRUxMRUQ7
CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkOgorICAgICAgICBy
ZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOworICAgIGNhc2UgV2Vi
Q29yZTo6RG93bmxvYWRFcnJvck5ldHdvcms6CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxP
QURfRVJST1JfTkVUV09SSzsKKyAgICBjYXNlIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JDYW5jZWxs
ZWRCeVVzZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1JfQ0FOQ0VMTEVE
X0JZX1VTRVI7CisgICAgY2FzZSBXZWJDb3JlOjpEb3dubG9hZEVycm9yRGVzdGluYXRpb246Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT047CisgICAgY2Fz
ZSBXZWJDb3JlOjpQcmludEVycm9yR2VuZXJhbDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUklO
VF9FUlJPUl9HRU5FUkFMOworICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvclByaW50ZXJOb3RG
b3VuZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUklOVF9FUlJPUl9QUklOVEVSX05PVF9GT1VO
RDsKKyAgICBjYXNlIFdlYkNvcmU6OlByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlOgorICAgICAg
ICByZXR1cm4gV0VCS0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRTsKKyAgICBkZWZh
dWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdFQktJ
VF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICB9Cit9CisKK2lubGluZSB1bnNpZ25lZCB0b1dl
YkNvcmVFcnJvcih1bnNpZ25lZCB3ZWJLaXRFcnJvcikKK3sKKyAgICBzd2l0Y2ggKHdlYktpdEVy
cm9yKSB7CisgICAgY2FzZSBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlMRUQ6CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpOZXR3b3JrRXJyb3JGYWlsZWQ7CisgICAgY2FzZSBXRUJLSVRfTkVUV09S
S19FUlJPUl9UUkFOU1BPUlQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrRXJyb3JU
cmFuc3BvcnQ7CisgICAgY2FzZSBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09M
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sOwor
ICAgIGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEOgorICAgICAgICByZXR1cm4g
V2ViQ29yZTo6TmV0d29ya0Vycm9yQ2FuY2VsbGVkOworICAgIGNhc2UgV0VCS0lUX05FVFdPUktf
RVJST1JfRklMRV9ET0VTX05PVF9FWElTVDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdv
cmtFcnJvckZpbGVEb2VzTm90RXhpc3Q7CisgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZB
SUxFRDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yRmFpbGVkOworICAgIGNh
c2UgV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19NSU1FX1RZUEU6CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZTsKKyAgICBjYXNlIFdF
QktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJOgorICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93VVJMOworICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJP
Ul9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BPTElDWV9DSEFOR0U6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U7
CisgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9VU0VfUkVTVFJJQ1RFRF9QT1JU
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVk
UG9ydDsKKyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfRkFJTEVEOgorICAgICAgICByZXR1
cm4gV2ViQ29yZTo6UGx1Z2luRXJyb3JGYWlsZWQ7CisgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VS
Uk9SX0NBTk5PVF9GSU5EX1BMVUdJTjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVy
cm9yQ2Fubm90RmluZFBsdWdpbjsKKyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9U
X0xPQURfUExVR0lOOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJyb3JDYW5ub3RM
b2FkUGx1Z2luOworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxF
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFibGU7Cisg
ICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJT05fQ0FOQ0VMTEVEOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkOworICAgIGNh
c2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOgorICAgICAgICByZXR1cm4g
V2ViQ29yZTo6UGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZDsKKyAgICBjYXNlIFdFQktJVF9ET1dO
TE9BRF9FUlJPUl9ORVRXT1JLOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RG93bmxvYWRFcnJv
ck5ldHdvcms7CisgICAgY2FzZSBXRUJLSVRfRE9XTkxPQURfRVJST1JfQ0FOQ0VMTEVEX0JZX1VT
RVI6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpEb3dubG9hZEVycm9yQ2FuY2VsbGVkQnlVc2Vy
OworICAgIGNhc2UgV0VCS0lUX0RPV05MT0FEX0VSUk9SX0RFU1RJTkFUSU9OOgorICAgICAgICBy
ZXR1cm4gV2ViQ29yZTo6RG93bmxvYWRFcnJvckRlc3RpbmF0aW9uOworICAgIGNhc2UgV0VCS0lU
X1BSSU5UX0VSUk9SX0dFTkVSQUw6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQcmludEVycm9y
R2VuZXJhbDsKKyAgICBjYXNlIFdFQktJVF9QUklOVF9FUlJPUl9QUklOVEVSX05PVF9GT1VORDoK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50RXJyb3JQcmludGVyTm90Rm91bmQ7CisgICAg
Y2FzZSBXRUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9QQUdFX1JBTkdFOgorICAgICAgICByZXR1
cm4gV2ViQ29yZTo6UHJpbnRFcnJvckludmFsaWRQYWdlUmFuZ2U7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3
b3JrRXJyb3JGYWlsZWQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5oCmluZGV4IGJkMDYwZWQzMjlmMWIyZjA4YjY4YzE4NTFi
MWI2OTJkM2VmOTJjYTMuLjMxNWJkMTZiZmMwM2UwN2EyYjI4MmJlMWNjM2JmNWVhYzIyODA2MWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRl
LmgKQEAgLTQ5LDkgKzQ5LDYgQEAKICNkZWZpbmUgV0VCS0lUX1BBUkFNX1dSSVRBQkxFIChzdGF0
aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9XUklUQUJMRSB8IEdfUEFSQU1fU1RBVElDX05B
TUUgfCBHX1BBUkFNX1NUQVRJQ19OSUNLIHwgR19QQVJBTV9TVEFUSUNfQkxVUkIpKQogI2RlZmlu
ZSBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFIChzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJB
TV9SRUFEV1JJVEUgfCBHX1BBUkFNX1NUQVRJQ19OQU1FIHwgR19QQVJBTV9TVEFUSUNfTklDSyB8
IEdfUEFSQU1fU1RBVElDX0JMVVJCKSkKIAotI2RlZmluZSBDT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKHdlYmtpdE5hbWUsIHdlYmNvcmVOYW1lKSBcCi0gICAgICAgIENPTVBJTEVfQVNTRVJU
KGludCh3ZWJraXROYW1lKSA9PSBpbnQod2ViY29yZU5hbWUpLCBtaXNtYXRjaGluZ0VudW1zKQot
CiAjZGVmaW5lIFdFQktJVF9ERUZJTkVfQVNZTkNfREFUQV9TVFJVQ1Qoc3RydWN0TmFtZSkgXAog
c3RhdGljIHN0cnVjdE5hbWUqIGNyZWF0ZSMjc3RydWN0TmFtZSgpIFwKIHsgXApAQCAtMTE4LDYg
KzExNSw4IEBAIEdUeXBlIHR5cGVfbmFtZSMjX2dldF90eXBlKHZvaWQpIFwKIAogdW5zaWduZWQg
d2tFdmVudE1vZGlmaWVyc1RvR2RrTW9kaWZpZXJzKFdLRXZlbnRNb2RpZmllcnMpOwogdW5zaWdu
ZWQgd2tFdmVudE1vdXNlQnV0dG9uVG9XZWJLaXRNb3VzZUJ1dHRvbihXS0V2ZW50TW91c2VCdXR0
b24pOwordW5zaWduZWQgdG9XZWJLaXRFcnJvcih1bnNpZ25lZCB3ZWJDb3JlRXJyb3IpOwordW5z
aWduZWQgdG9XZWJDb3JlRXJyb3IodW5zaWduZWQgd2ViS2l0RXJyb3IpOwogCiBlbnVtIFNuYXBz
aG90UmVnaW9uIHsKICAgICBTbmFwc2hvdFJlZ2lvblZpc2libGUsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwCmluZGV4IDZkOGM2ODQxODQyZTg2YjRjNTE2YTk0ZDBkMzFmODcxMjU1YmRiM2QuLmZjOGI0
YjY1Y2NjNmY0NmFmODM0NGFmNjYwNmEwODk2ZWRkYTAyMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3Qu
Y3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5o
IgogCiAjaW5jbHVkZSAiQVBJRGF0YS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dFdlYkNvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlldy5oIgpAQCAtMjMw
LDcgKzIzMSw3IEBAIHZvaWQgd2Via2l0X3VyaV9zY2hlbWVfcmVxdWVzdF9maW5pc2hfZXJyb3Io
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdCogcmVxdWVzdCwgR0VyCiAKICAgICBXZWJLaXRVUklTY2hl
bWVSZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IHJlcXVlc3QtPnByaXY7CiAKLSAgICBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoZ19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFp
biksIGVycm9yLT5jb2RlLCBwcml2LT51cmkuZGF0YSgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9y
LT5tZXNzYWdlKSk7CisgICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdf
cXVhcmtfdG9fc3RyaW5nKGVycm9yLT5kb21haW4pLCB0b1dlYkNvcmVFcnJvcihlcnJvci0+Y29k
ZSksIHByaXYtPnVyaS5kYXRhKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsK
ICAgICBwcml2LT53ZWJSZXF1ZXN0TWFuYWdlci0+ZGlkRmFpbFdpdGhFcnJvcihwcml2LT5yZXF1
ZXN0SUQsIHJlc291cmNlRXJyb3IpOwogICAgIHdlYmtpdFdlYkNvbnRleHREaWRGaW5pc2hMb2Fk
aW5nQ3VzdG9tUHJvdG9jb2wocHJpdi0+d2ViQ29udGV4dCwgcHJpdi0+cmVxdWVzdElEKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29u
dGV4dC5jcHAKaW5kZXggM2JkODkzMDg4ODNiMjM1M2ZkY2NiMjg2ZjAyNDNlMTJhNjcxOTA2OC4u
MmJmYjM4NDA5ZDE1ZDA1NGY0MTNmYmQ2NDI4YzViZWI3YzY5MzhkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAg
LTE2NSw2ICsxNjUsMzIgQEAgc3RhdGljIGd1aW50IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAw
LCB9OwogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0V2ViQ29udGV4dCwgd2Via2l0X3dlYl9j
b250ZXh0LCBHX1RZUEVfT0JKRUNUKQogCitpbmxpbmUgc3RhdGljIFdlYktpdDo6UHJvY2Vzc01v
ZGVsIHRvUHJvY2Vzc01vZGVsKFdlYktpdFByb2Nlc3NNb2RlbCB3ZWJLaXRQcm9jZXNzTW9kZWwp
Cit7CisgICAgc3dpdGNoICh3ZWJLaXRQcm9jZXNzTW9kZWwpIHsKKyAgICBjYXNlIFdFQktJVF9Q
Uk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzoKKyAgICAgICAgcmV0dXJuIFBy
b2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M7CisgICAgY2FzZSBXRUJLSVRfUFJPQ0VT
U19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTOgorICAgICAgICByZXR1cm4gUHJv
Y2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXM7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBQcm9jZXNzTW9kZWxTaGFy
ZWRTZWNvbmRhcnlQcm9jZXNzOworICAgIH0KK30KKworaW5saW5lIHN0YXRpYyBXZWJLaXRQcm9j
ZXNzTW9kZWwgdG9XZWJLaXRQcm9jZXNzTW9kZWwoV2ViS2l0OjpQcm9jZXNzTW9kZWwgcHJvY2Vz
c01vZGVsKQoreworICAgIHN3aXRjaCAocHJvY2Vzc01vZGVsKSB7CisgICAgY2FzZSBQcm9jZXNz
TW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BST0NF
U1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOworICAgIGNhc2UgUHJvY2Vzc01vZGVs
TXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXM6CisgICAgICAgIHJldHVybiBXRUJLSVRfUFJPQ0VT
U19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV0VCS0lUX1BST0NFU1Nf
TU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOworICAgIH0KK30KKwogc3RhdGljIHZvaWQg
d2Via2l0X3dlYl9jb250ZXh0X2NsYXNzX2luaXQoV2ViS2l0V2ViQ29udGV4dENsYXNzKiB3ZWJD
b250ZXh0Q2xhc3MpCiB7CiAgICAgR09iamVjdENsYXNzKiBnT2JqZWN0Q2xhc3MgPSBHX09CSkVD
VF9DTEFTUyh3ZWJDb250ZXh0Q2xhc3MpOwpAQCAtOTE3LDE4ICs5NDMsNyBAQCB2b2lkIHdlYmtp
dF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2RlbChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0
LCBXZWJLaXRQcm9jZQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05U
RVhUKGNvbnRleHQpKTsKIAotICAgIFByb2Nlc3NNb2RlbCBuZXdQcm9jZXNzTW9kZWw7Ci0KLSAg
ICBzd2l0Y2ggKHByb2Nlc3NNb2RlbCkgewotICAgIGNhc2UgV0VCS0lUX1BST0NFU1NfTU9ERUxf
U0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOgotICAgICAgICBuZXdQcm9jZXNzTW9kZWwgPSBQcm9j
ZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM6Ci0gICAg
ICAgIG5ld1Byb2Nlc3NNb2RlbCA9IFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vz
c2VzOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBnX2Fzc2VydF9ub3Rf
cmVhY2hlZCgpOwotICAgIH0KKyAgICBQcm9jZXNzTW9kZWwgbmV3UHJvY2Vzc01vZGVsKHRvUHJv
Y2Vzc01vZGVsKHByb2Nlc3NNb2RlbCkpOwogCiAgICAgaWYgKG5ld1Byb2Nlc3NNb2RlbCA9PSBj
b250ZXh0LT5wcml2LT5jb250ZXh0LT5wcm9jZXNzTW9kZWwoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtOTUyLDE0ICs5NjcsNyBAQCBXZWJLaXRQcm9jZXNzTW9kZWwgd2Via2l0X3dlYl9jb250ZXh0
X2dldF9wcm9jZXNzX21vZGVsKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleAogewogICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSwgV0VCS0lUX1BS
T0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTKTsKIAotICAgIHN3aXRjaCAoY29u
dGV4dC0+cHJpdi0+Y29udGV4dC0+cHJvY2Vzc01vZGVsKCkpIHsKLSAgICBjYXNlIFByb2Nlc3NN
b2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfUFJPQ0VT
U19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M7Ci0gICAgY2FzZSBQcm9jZXNzTW9kZWxN
dWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9QUk9DRVNT
X01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKLSAgICB9CisgICAgcmV0dXJuIHRvV2ViS2l0UHJv
Y2Vzc01vZGVsKGNvbnRleHQtPnByaXYtPmNvbnRleHQtPnByb2Nlc3NNb2RlbCgpKTsKIH0KIAog
V2ViS2l0RG93bmxvYWQqIHdlYmtpdFdlYkNvbnRleHRHZXRPckNyZWF0ZURvd25sb2FkKERvd25s
b2FkUHJveHkqIGRvd25sb2FkUHJveHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGJhMmM2NzdhNWUzYWU1MzRiMzRlN2Q1
ZjYzMGRhNzE5ZDcxMmI1NmMuLjk0YWM4MGYzMjgwYzViYWFkZTc0MDg4ODdlMGIxZjUxYmM0MjEx
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXcuY3BwCkBAIC0zMTA5LDkgKzMxMDksNiBAQCB2b2lkIHdlYktpdFdlYlZpZXdEaWRSZWNl
aXZlU25hcHNob3QoV2ViS2l0V2ViVmlldyogd2ViVmlldywgdWludDY0X3QgY2FsbGJhY2tJRAog
ICAgICAgICBnX3Rhc2tfcmV0dXJuX3BvaW50ZXIodGFzay5nZXQoKSwgMCwgMCk7CiB9CiAKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxF
LCBTbmFwc2hvdFJlZ2lvblZpc2libGUpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfU05BUFNIT1RfUkVHSU9OX0ZVTExfRE9DVU1FTlQsIFNuYXBzaG90UmVnaW9uRnVsbERv
Y3VtZW50KTsKLQogc3RhdGljIGlubGluZSB1bnNpZ25lZCB3ZWJLaXRTbmFwc2hvdE9wdGlvbnNU
b1NuYXBzaG90T3B0aW9ucyhXZWJLaXRTbmFwc2hvdE9wdGlvbnMgb3B0aW9ucykKIHsKICAgICBT
bmFwc2hvdE9wdGlvbnMgc25hcHNob3RPcHRpb25zID0gMDsKQEAgLTMxMjIsNiArMzExOSwxOSBA
QCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHdlYktpdFNuYXBzaG90T3B0aW9uc1RvU25hcHNob3RP
cHRpb25zKFdlYktpdFNuYXBzaG90T3B0aQogICAgIHJldHVybiBzbmFwc2hvdE9wdGlvbnM7CiB9
CiAKK3N0YXRpYyBpbmxpbmUgU25hcHNob3RSZWdpb24gdG9TbmFwc2hvdFJlZ2lvbihXZWJLaXRT
bmFwc2hvdFJlZ2lvbiByZWdpb24pCit7CisgICAgc3dpdGNoIChyZWdpb24pIHsKKyAgICBjYXNl
IFdFQktJVF9TTkFQU0hPVF9SRUdJT05fVklTSUJMRToKKyAgICAgICAgcmV0dXJuIFNuYXBzaG90
UmVnaW9uVmlzaWJsZTsKKyAgICBjYXNlIFdFQktJVF9TTkFQU0hPVF9SRUdJT05fRlVMTF9ET0NV
TUVOVDoKKyAgICAgICAgcmV0dXJuIFNuYXBzaG90UmVnaW9uRnVsbERvY3VtZW50OworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gU25h
cHNob3RSZWdpb25WaXNpYmxlOworICAgIH0KK30KKwogc3RhdGljIGlubGluZSB1aW50NjRfdCBn
ZW5lcmF0ZVNuYXBzaG90Q2FsbGJhY2tJRCgpCiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1
ZUNhbGxiYWNrSUQgPSAxOwpAQCAtMzE1MSw3ICszMTYxLDcgQEAgdm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X3NuYXBzaG90KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFNuYXBzaG90UmVn
aW9uIHIKICAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlIG1lc3NhZ2U7CiAgICAgdWlu
dDY0X3QgY2FsbGJhY2tJRCA9IGdlbmVyYXRlU25hcHNob3RDYWxsYmFja0lEKCk7CiAgICAgbWVz
c2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiU25hcHNob3RPcHRpb25zIiksIEFQSTo6VUludDY0
OjpjcmVhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHdlYktpdFNuYXBzaG90T3B0aW9uc1RvU25h
cHNob3RPcHRpb25zKG9wdGlvbnMpKSkpOwotICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVU
RjgoIlNuYXBzaG90UmVnaW9uIiksIEFQSTo6VUludDY0OjpjcmVhdGUoc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KHJlZ2lvbikpKTsKKyAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJTbmFw
c2hvdFJlZ2lvbiIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKHN0YXRpY19jYXN0PHVpbnQ2NF90Pih0
b1NuYXBzaG90UmVnaW9uKHJlZ2lvbikpKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9t
VVRGOCgiQ2FsbGJhY2tJRCIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGNhbGxiYWNrSUQpKTsKIAog
ICAgIHdlYlZpZXctPnByaXYtPnNuYXBzaG90UmVzdWx0c01hcC5zZXQoY2FsbGJhY2tJRCwgYWRv
cHRHUmVmKGdfdGFza19uZXcod2ViVmlldywgY2FuY2VsbGFibGUsIGNhbGxiYWNrLCB1c2VyRGF0
YSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdHcm91cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3R3JvdXAuY3BwCmluZGV4IDI4OWVjZGYwMzZiYWRkNmM2N2EyNWNkY2NmYTNmYjI1
N2ZmNjE0YjIuLmIxNTY4Y2VhODI2MWNlYWU4MTQ2OTMzMzUwOWVlNmNkNDM3ZDVjNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91
cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0dyb3VwLmNwcApAQCAtNjcsNiArNjcsMTkgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3R3JvdXBQ
cml2YXRlIHsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdFdlYlZpZXdHcm91cCwgd2Via2l0
X3dlYl92aWV3X2dyb3VwLCBHX1RZUEVfT0JKRUNUKQogCitpbmxpbmUgc3RhdGljIFdlYkNvcmU6
OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgdG9XZWJDb3JlVXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lcyhXZWJLaXRJbmplY3RlZENvbnRlbnRGcmFtZXMga2l0RnJhbWVzKQoreworICAgIHN3aXRj
aCAoa2l0RnJhbWVzKSB7CisgICAgY2FzZSBXRUJLSVRfSU5KRUNURURfQ09OVEVOVF9GUkFNRVNf
QUxMOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0SW5BbGxGcmFtZXM7CisgICAgY2Fz
ZSBXRUJLSVRfSU5KRUNURURfQ09OVEVOVF9GUkFNRVNfVE9QX09OTFk6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpJbmplY3RJblRvcEZyYW1lT25seTsKKyAgICBkZWZhdWx0OgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkluamVjdEluQWxs
RnJhbWVzOworICAgIH0KK30KKwogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0dyb3VwU2V0UHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUs
IEdQYXJhbVNwZWMqIHBhcmFtU3BlYykKIHsKICAgICBXZWJLaXRXZWJWaWV3R3JvdXAqIGdyb3Vw
ID0gV0VCS0lUX1dFQl9WSUVXX0dST1VQKG9iamVjdCk7CkBAIC0yMjQsOSArMjM3LDYgQEAgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfZ3JvdXBfc2V0X3NldHRpbmdzKFdlYktpdFdlYlZpZXdHcm91cCog
Z3JvdXAsIFdlYktpdFNldHRpbmcKICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1QoZ3JvdXAp
LCAic2V0dGluZ3MiKTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
SU5KRUNURURfQ09OVEVOVF9GUkFNRVNfQUxMLCBXZWJDb3JlOjpJbmplY3RJbkFsbEZyYW1lcyk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZS
QU1FU19UT1BfT05MWSwgV2ViQ29yZTo6SW5qZWN0SW5Ub3BGcmFtZU9ubHkpOwotCiBzdGF0aWMg
UGFzc1JlZlB0cjxBUEk6OkFycmF5PiB0b0FQSUFycmF5KGNvbnN0IGNoYXIqIGNvbnN0KiBsaXN0
KQogewogICAgIGlmICghbGlzdCkKQEAgLTI3MCw3ICsyODAsNyBAQCB2b2lkIHdlYmtpdF93ZWJf
dmlld19ncm91cF9hZGRfdXNlcl9zdHlsZV9zaGVldChXZWJLaXRXZWJWaWV3R3JvdXAqIGdyb3Vw
LCBjb25zdAogICAgICAgICBTdHJpbmc6OmZyb21VVEY4KGJhc2VVUkkpLAogICAgICAgICB3ZWJX
aGl0ZWxpc3QuZ2V0KCksCiAgICAgICAgIHdlYkJsYWNrbGlzdC5nZXQoKSwKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcz4oaW5qZWN0ZWRGcmFt
ZXMpLAorICAgICAgICB0b1dlYkNvcmVVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKGluamVjdGVk
RnJhbWVzKSwKICAgICAgICAgV2ViQ29yZTo6VXNlclN0eWxlVXNlckxldmVsKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224745</attachid>
            <date>2014-02-20 04:04:21 -0800</date>
            <delta_ts>2014-02-20 08:28:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127800-20140220120419.patch</filename>
            <type>text/plain</type>
            <size>70860</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMxZTlmNjc1MzQzYjAxODFm
YTQ3NDkyOWI1NjFlMjZjOWZhMDliZmQuLjBiYTBlNGU2MmEzYWFhYWJiMTIwYTRmNTMzMmFlMTBi
NTg4M2FkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDItMjAgIEVucmlxdWUg
T2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXRH
VEsrIHNob3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRm
b3JtR1RLLmNtYWtlOiBSZW1vdmVkIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwCisKIDIwMTQtMDIt
MTggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2hhbmdpbmcg
c2VsZWN0aW9uIHNob3VsZG4ndCBzeW5jaHJvbm91c2x5IHVwZGF0ZSBlZGl0b3IgVUkgY29tcG9u
ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGFmYTVlY2JmYzJlY2U1OGY0ZjUwZGZhZTI0ZjMwM2Yy
MmQ5ZmNmMmMuLjUzNmE5NmJhMmZiMjlhNzkzMmE2NDQ0ZDU3NWJlYTI4OTY0ZDFlNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNC0wMi0yMCAgRW5yaXF1ZSBPY2HDsWEg
R29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYktpdEdUSysgc2hv
dWxkIHN0b3AgdXNpbmcgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSBtYWNyb3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
YW06IFJlbW92ZWQgQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVk
IHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1dlYkNvcmVGaW5kT3B0aW9ucyk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpbmRTdHJpbmcpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDogRGVmaW5lZCBhbmQgYXBwbGll
ZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoV2ViS2l0Ojp0b1dlYktpdE5ldHdvcmtFcnJv
cik6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxM
b2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
RmFpbExvYWQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFs
bEJhY2spOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDog
RGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoV2ViS2l0Ojpr
aXQpOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAg
ICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDog
RGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoY29weUd0a1Rh
cmdldExpc3RDb252ZXJ0aW5nV2ViQ29yZUVudW1WYWx1ZXNUb1dlYktpdEVudW1WYWx1ZXMpOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UpOgorICAgICAgICAod2Via2l0X3dlYl92
aWV3X2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0
KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3QpOgorICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOiBBZGRlZCB0YXJnZXRMaXN0IHBy
aXZhdGUgZmllbGQsIHdoaWNoIG1pcnJvcnMgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3Rl
Ym9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdCgpIGJ1dCB3aXRoIHRoZSBmbGFncyBjb252ZXJ0ZWQg
dG8gV2ViS2l0V2ViVmlld1RhcmdldEluZm8KKwogMjAxNC0wMi0xNyAgU2VyZ2lvIENvcnJlaWEg
IDxzZXJnaW8uY29ycmVpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJlcGxhY2UgdXNlcyBv
ZiBQYXNzT3duUHRyL093blB0ciB3aXRoIHN0ZDo6dW5pcXVlX3B0ciBpbiBXZWJDb3JlL2luc3Bl
Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGU2NzI5YTNmYmU5ZjVjMDRhMzFjMmFhZTdlMzQ3OWE5NzQwNTQ0
ZjkuLmRhNDliNzdiN2UwYmVjZjExYWFhMjJiMzJiZDdjNzhjYzQ2NmIzNWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2MSBAQAorMjAxNC0wMi0yMCAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8
ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYktpdEdUSysgc2hvdWxkIHN0b3AgdXNp
bmcgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSBtYWNyb3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZl
cnNpb25zLgorICAgICAgICAod2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3NjaGVt
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5jcHA6
IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViS2l0
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6
CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X3BlcnNpc3RlbnRfc3RvcmFnZSk6
CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X2FjY2VwdF9wb2xpY3kpOgorICAg
ICAgICAod2Via2l0Q29va2llTWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcDogRGVmaW5lZCBhbmQg
YXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRDcmVkZW50aWFsUGVy
c2lzdGVuY2UpOgorICAgICAgICAodG9XZWJDb3JlQ3JlZGVudGlhbFBlcnNpc3RlbmNlKToKKyAg
ICAgICAgKHdlYmtpdF9jcmVkZW50aWFsX25ldyk6CisgICAgICAgICh3ZWJraXRfY3JlZGVudGlh
bF9nZXRfcGVyc2lzdGVuY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERv
d25sb2FkLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAg
ICAod2Via2l0RG93bmxvYWRGYWlsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEVycm9yLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcDogRGVmaW5l
ZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRGaW5kT3B0
aW9ucyk6CisgICAgICAgICh3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0pOgorICAgICAgICAo
d2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4dCk6CisgICAgICAgICh3ZWJraXRfZmlu
ZF9jb250cm9sbGVyX3NlYXJjaF9wcmV2aW91cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaDogQWRkZWQgbmV3IHByaXZhdGUgZmllbGRzIHRvIHRo
ZSBlbnVtLCBuZWVkZWQgdG8gbWF0Y2ggY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChkaWRSZWNlaXZlV2ViVmlld01lc3NhZ2VG
cm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExv
YWRlckNsaWVudC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAg
ICAgICAgKGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAg
IChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UG9saWN5Q2xpZW50LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgor
ICAgICAgICAodG9XZWJLaXROYXZpZ2F0aW9uVHlwZSk6CisgICAgICAgIChkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24u
Y3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChkcmF3
UGFnZXNGb3JQcmludGluZ0NvbXBsZXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UHJpdmF0ZS5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4K
KyAgICAgICAgKHRvV2ViS2l0RXJyb3IpOgorICAgICAgICAodG9XZWJDb3JlRXJyb3IpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaDogRGVmaW5lZCBhbmQgYXBw
bGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3QuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lv
bnMuCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHA6IERlZmluZWQg
YW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViS2l0UHJvY2Vzc01v
ZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2RlbCk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVk
IHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1NuYXBzaG90UmVnaW9uKToKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252
ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViQ29yZVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KToKKwog
MjAxNC0wMi0xOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAxY2IyMTg0ZWVhZTIxMTU2
YWEyNjU3MWMwYjIyYWM3MjMxOGMwMWFkLi42MjgwMTI4NThmNDQ5MzBlYzQyYjRlMDliNjUyZWQ3
OTMzMGY5ODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQwLDcgKzQwLDYgQEAgbGlz
dChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRHVEtf
QVBJX0RJUn0vd2Via2l0bWFyc2hhbC5jcHAKIAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9BY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAotICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCiAgICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNw
cAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRHdGsuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0dOVW1ha2VmaWxlLmFtCmluZGV4IDY0ZWQ1M2UzOTRkZTIxMDQ2YjllMWM3YTBlZjE2Nzkz
MzliYTEzZmUuLmQ1M2YxYjBjMGY4NTQ3MjE4MDZkNjZiYTJhMGUxOWFjMmIzNWYxNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0dOVW1ha2VmaWxlLmFtCkBAIC0xOTAsNyArMTkwLDYgQEAgQlVJTFRfU09VUkNFUyAr
PSAkKHdlYmtpdGd0a19idWlsdF9zb3VyY2VzKQogd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0R0wuY3BwIFwKLQlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQmF0dGVyeUNsaWVudEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0JhdHRlcnlDbGllbnRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMmZlODA5ZWRhMDlmYzEyYzgxMjgzMGYxYTMxOTkxOWNmZjQ2ODEw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTEgQ29sbGFi
b3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLS8vIFVzZSB0aGlzIGZp
bGUgdG8gYXNzZXJ0IHRoYXQgdmFyaW91cyBXZWJLaXQgQVBJIGVudW0gdmFsdWVzIGNvbnRpbnVl
Ci0vLyBtYXRjaGluZyBXZWJDb3JlIGRlZmluZWQgZW51bSB2YWx1ZXMuCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLQotI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgotI2luY2x1
ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCi0jaW5j
bHVkZSAiRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCi0jaW5j
bHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgotI2luY2x1ZGUgIndlYmtpdGVycm9yLmgiCi0jaW5j
bHVkZSAid2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnNl
dHRpbmdzLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgotI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+Ci0KLSNkZWZpbmUgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSh3ZWJraXRf
bmFtZSwgd2ViY29yZV9uYW1lKSBcCi0gICAgQ09NUElMRV9BU1NFUlQoaW50KHdlYmtpdF9uYW1l
KSA9PSBpbnQoV2ViQ29yZTo6d2ViY29yZV9uYW1lKSwgbWlzbWF0Y2hpbmdfZW51bXMpCi0KLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfTUFDLCBF
ZGl0aW5nTWFjQmVoYXZpb3IpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
RURJVElOR19CRUhBVklPUl9XSU5ET1dTLCBFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKLUNPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfVU5JWCwgRWRp
dGluZ1VuaXhCZWhhdmlvcik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQsIE5hdmlnYXRpb25UeXBlTGlua0Ns
aWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklHQVRJ
T05fUkVBU09OX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQpOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09O
X0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fUkVMT0FELCBOYXZp
Z2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9X
RUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5cGVGb3Jt
UmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05B
VklHQVRJT05fUkVBU09OX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zQXRXb3JkU3RhcnRzLCBB
dFdvcmRTdGFydHMpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZp
bmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQsIFRyZWF0TWVkaWFsQ2FwaXRh
bEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViS2l0OjpXZWJG
aW5kT3B0aW9uc0JhY2t3YXJkcywgQmFja3dhcmRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViS2l0OjpXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQsIFdyYXBBcm91bmQpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zU3RhcnRJblNl
bGVjdGlvbiwgU3RhcnRJblNlbGVjdGlvbik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUwsIFBhc3RlYm9hcmRIZWxwZXI6OlRh
cmdldFR5cGVNYXJrdXApOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VC
X1ZJRVdfVEFSR0VUX0lORk9fVEVYVCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQp
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lO
Rk9fSU1BR0UsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVJbWFnZSk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19VUklfTElTVCwg
UGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3QpOwotQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fTkVUU0NBUEVfVVJMLCBQYXN0
ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTmV0c2NhcGVVUkwpOwotCi1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRCwgTmV0d29ya0Vycm9yRmFp
bGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJST1Jf
VFJBTlNQT1JULCBOZXR3b3JrRXJyb3JUcmFuc3BvcnQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MLCBOZXR3b3JrRXJy
b3JVbmtub3duUHJvdG9jb2wpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
TkVUV09SS19FUlJPUl9DQU5DRUxMRUQsIE5ldHdvcmtFcnJvckNhbmNlbGxlZCk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19OT1Rf
RVhJU1QsIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QpOwotCi1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVELCBQb2xpY3lFcnJvckZhaWxl
ZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FO
Tk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSk7Ci1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1df
VVJMLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZ
X0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlKTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1Rf
VVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCk7
Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlM
RUQsIFBsdWdpbkVycm9yRmFpbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU4sIFBsdWdpbkVycm9yQ2Fubm90Rmlu
ZFBsdWdpbik7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJS
T1JfQ0FOTk9UX0xPQURfUExVR0lOLCBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVnaW4pOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5BVkFJ
TEFCTEUsIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNFTExFRCwgUGx1Z2lu
RXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FELCBQbHVnaW5FcnJvcldpbGxIYW5k
bGVMb2FkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDlkZDllNzE0ZDY0MzIzOWU5
NTg4NTExYWEyYzUwMzhmMmM1YjFiZmEuLmY0NTg3N2MwZmU2Y2ExOWFlOTEzZjkyYjI1NWUwN2Ri
YmEwNzdkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtODYsNiArODYsMTYgQEAg
Ym9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW4g
PSB0cnVlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpGcmFtZUxvYWRFdmVudENhbGxiYWNr
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRFdmVudENhbGxiYWNrID0gMDsK
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGljYXRpb25DYWxsYmFjayBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxsYmFjayA9IDA7CiAKK3N0YXRp
YyBpbmxpbmUgV2ViQ29yZTo6RmluZE9wdGlvbnMgdG9XZWJDb3JlRmluZE9wdGlvbnMoV2ViS2l0
RmluZE9wdGlvbnMgdHlwZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Rmlu
ZE9wdGlvbnM+KCh0eXBlICYgV2ViRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgPyBDYXNlSW5z
ZW5zaXRpdmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNBdFdvcmRTdGFy
dHMgPyBBdFdvcmRTdGFydHMgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNU
cmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCA/IFRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0
YXJ0IDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zQmFja3dhcmRzID8gQmFj
a3dhcmRzIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zV3JhcEFyb3VuZCA/
IFdyYXBBcm91bmQgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNTdGFydElu
U2VsZWN0aW9uID8gU3RhcnRJblNlbGVjdGlvbiA6IDApKTsKK30KKwogRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsoKQogewogfQpAQCAtNDc1LDcgKzQ4
NSw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjbGVhck9wZW5lcihXZWJLaXRX
ZWJGcmFtZSogZnJhbWUpCiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaW5kU3Ry
aW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiB0YXJnZXRTdHJpbmcsIFdl
YktpdEZpbmRPcHRpb25zIGZpbmRPcHRpb25zKQogewotICAgIHJldHVybiBjb3JlKHdlYlZpZXcp
LT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgodGFyZ2V0U3RyaW5nKSwgZmluZE9wdGlvbnMp
OworICAgIHJldHVybiBjb3JlKHdlYlZpZXcpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgo
dGFyZ2V0U3RyaW5nKSwgdG9XZWJDb3JlRmluZE9wdGlvbnMoZmluZE9wdGlvbnMpKTsKIH0KIAog
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFZhbHVlRm9yVXNlcihKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub2RlT2JqZWN0LCBKU1N0cmluZ1JlZiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcAppbmRleCBiMjRlMDg5YzlkMTMxMTJjYTYyYTBjZDAxNGY1YzhhZDZmYzI3
ZTAxLi4yZjhhY2JiM2ZiMGRlOTBkZDU3ZTkwMGRiYjE4ZGFkODgwOWNlNjE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCkBAIC0xMDQsNiArMTA0LDQ3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAoraW5saW5lIGludCB0b1dlYktpdE5ldHdvcmtFcnJvcihp
bnQgZXJyb3JDb2RlKQoreworICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7CisgICAgY2FzZSBOZXR3
b3JrRXJyb3JGYWlsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlM
RUQ7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JUcmFuc3BvcnQ6CisgICAgICAgIHJldHVybiBXRUJL
SVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQ7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JVbmtub3du
UHJvdG9jb2w6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BS
T1RPQ09MOworICAgIGNhc2UgTmV0d29ya0Vycm9yQ2FuY2VsbGVkOgorICAgICAgICByZXR1cm4g
V0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEOworICAgIGNhc2UgTmV0d29ya0Vycm9yRmls
ZURvZXNOb3RFeGlzdDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVf
RE9FU19OT1RfRVhJU1Q7CisgICAgY2FzZSBQb2xpY3lFcnJvckZhaWxlZDoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVEOworICAgIGNhc2UgUG9saWN5RXJyb3JDYW5u
b3RTaG93TWltZVR5cGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5P
VF9TSE9XX01JTUVfVFlQRTsKKyAgICBjYXNlIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDoKKyAg
ICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJMOworICAgIGNh
c2UgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlOgorICAgICAg
ICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BP
TElDWV9DSEFOR0U7CisgICAgY2FzZSBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNU
RURfUE9SVDsKKyAgICBjYXNlIFBsdWdpbkVycm9yRmFpbGVkOgorICAgICAgICByZXR1cm4gV0VC
S0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ7CisgICAgY2FzZSBQbHVnaW5FcnJvckNhbm5vdEZpbmRQ
bHVnaW46CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BM
VUdJTjsKKyAgICBjYXNlIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbjoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOworICAgIGNhc2UgUGx1
Z2luRXJyb3JKYXZhVW5hdmFpbGFibGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VS
Uk9SX0pBVkFfVU5BVkFJTEFCTEU7CisgICAgY2FzZSBQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5j
ZWxsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJT05fQ0FO
Q0VMTEVEOworICAgIGNhc2UgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZDoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRX
T1JLX0VSUk9SX0ZBSUxFRDsKKyAgICB9Cit9CisKIEZyYW1lTG9hZGVyQ2xpZW50OjpGcmFtZUxv
YWRlckNsaWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQog
ICAgICwgbV9wb2xpY3lEZWNpc2lvbigwKQpAQCAtOTkyLDcgKzEwMzMsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyKiBsb2FkZXIsCiAgICAgICAgIHJldHVybjsKIAogICAgIEdVbmlxdWVQdHI8R0Vycm9yPiB3
ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVhcmtfZnJvbV9zdHJpbmcoZXJyb3IuZG9t
YWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIGVycm9yLmVycm9yQ29kZSgpLCBlcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJLaXRO
ZXR3b3JrRXJyb3IoZXJyb3IuZXJyb3JDb2RlKCkpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJSZXNv
dXJjZSwgImxvYWQtZmFpbGVkIiwgd2ViRXJyb3IuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtbG9hZC1mYWlsZWQiLCB3ZWJSZXNvdXJjZSwgd2Vi
RXJyb3IuZ2V0KCkpOwpAQCAtMTAyMCw5ICsxMDYxLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAg
bm90aWZ5U3RhdHVzKG1fZnJhbWUsIFdFQktJVF9MT0FEX0ZBSUxFRCk7CiAKICAgICBXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKwogICAgIEdVbmlx
dWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKAogICAgICAgICBnX3F1
YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICBl
cnJvci5lcnJvckNvZGUoKSwKKyAgICAgICAgdG9XZWJLaXROZXR3b3JrRXJyb3IoZXJyb3IuZXJy
b3JDb2RlKCkpLAogICAgICAgICBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5k
YXRhKCkpKTsKICAgICBnYm9vbGVhbiBpc0hhbmRsZWQgPSBmYWxzZTsKICAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUod2ViVmlldywgImxvYWQtZXJyb3IiLCBtX2ZyYW1lLCBlcnJvci5mYWlsaW5n
VVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCksICZpc0hhbmRsZWQpOwpAQCAtMTA5
NCw3ICsxMTM2LDcgQEAgUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogYm9vbCBGcmFtZUxvYWRl
ckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0g
ICAgcmV0dXJuICEoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSB8fCBlcnJvci5lcnJvckNvZGUoKSA9
PSBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NI
QU5HRSB8fCBlcnJvci5lcnJvckNvZGUoKSA9PSBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExfSEFO
RExFX0xPQUQpOworICAgIHJldHVybiAhKGVycm9yLmlzQ2FuY2VsbGF0aW9uKCkgfHwgZXJyb3Iu
ZXJyb3JDb2RlKCkgPT0gUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hh
bmdlIHx8IGVycm9yLmVycm9yQ29kZSgpID09IFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQpOwog
fQogCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24u
Y3BwCmluZGV4IGM3OGU3NTRhZWVjYmU1YTJmY2QzY2QyMmY4YzFkZWQ0NDgzZDk0MTEuLmFkNmYw
YzhmNGQwMWU5OWIzN2VmYWRlMWQxYjE1MWI5NTNmMjBmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKQEAgLTM2
NCwxMiArMzY0LDQ0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRXZWJOYXZpZ2F0aW9u
UmVhc29uIGtpdChXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQogewotICAgIHJldHVybiAo
V2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbil0eXBlOworICAgIHN3aXRjaCh0eXBlKSB7CisgICAg
Y2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkOgorICAgICAgICByZXR1cm4g
V0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQ7CisgICAgY2FzZSBXZWJD
b3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRf
V0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVEOworICAgIGNhc2UgV2ViQ29yZTo6
TmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJfTkFW
SUdBVElPTl9SRUFTT05fQkFDS19GT1JXQVJEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdhdGlv
blR5cGVSZWxvYWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09O
X1JFTE9BRDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVk
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9GT1JNX1JFU1VC
TUlUVEVEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAg
cmV0dXJuIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fT1RIRVI7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VC
X05BVklHQVRJT05fUkVBU09OX0xJTktfQ0xJQ0tFRDsKKyAgICB9CiB9CiAKIFdlYkNvcmU6Ok5h
dmlnYXRpb25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiB0eXBlKQogewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZT4odHlwZSk7CisgICAg
c3dpdGNoKHR5cGUpIHsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fTElO
S19DTElDS0VEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVMaW5rQ2xp
Y2tlZDsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9TVUJNSVRU
RUQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ7
CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0JBQ0tfRk9SV0FSRDoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlQmFja0ZvcndhcmQ7CisgICAgY2Fz
ZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX1JFTE9BRDoKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Ok5hdmlnYXRpb25UeXBlUmVsb2FkOworICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJR0FU
SU9OX1JFQVNPTl9GT1JNX1JFU1VCTUlUVEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2
aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQ7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJ
T05fUkVBU09OX09USEVSOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVP
dGhlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQ7CisgICAgfQogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApp
bmRleCA3NDJiMjNkNDBhZDU0NzgzMzJkNDFjOGMyYjI3YTNmZTZlMTRhOTBkLi5jMTNiYzBlZGZh
YTEzZGQ1NmM1YmU4MTdlYzRlZmYyOThkNmY0YjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKQEAgLTE2NTgsOSArMTY1OCwxOSBAQCBjaGFy
KiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShXZWJLaXRXZWJTZXR0aW5ncyogd2Vi
U2V0dGluZ3MsIGNvbnN0IGNoYQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViQ29yZTo6RWRp
dGluZ0JlaGF2aW9yVHlwZSBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciB0eXBlKQoraW5saW5l
IFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5cGUgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3Ig
dHlwZSkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9y
VHlwZT4odHlwZSk7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBXRUJLSVRfRURJVElO
R19CRUhBVklPUl9NQUM6CisgICAgICAgIHJldHVybiBFZGl0aW5nTWFjQmVoYXZpb3I7CisgICAg
Y2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9XSU5ET1dTOgorICAgICAgICByZXR1cm4gRWRp
dGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICBjYXNlIFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX1VO
SVg6CisgICAgICAgIHJldHVybiBFZGl0aW5nVW5peEJlaGF2aW9yOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gRWRpdGluZ01hY0Jl
aGF2aW9yOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCmluZGV4IDQ4ZjE1YzljZDhmODk5NzY0Y2YwN2ZlODEyYjlmYjI0MGYwYTllMGMu
LjFhMmIwMTczMTY2OTdmZGE1ZGYzOWQ2Y2I2Y2FkZTE5YWY5OTRhOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTExOSw2ICsxMTksNyBAQAogI2lu
Y2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMu
aD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQpAQCAtMjgyLDYgKzI4Myw0NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0
dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1Bhcgogc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF93aW5kb3dfZmVhdHVyZXMoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzKTsKIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdEaXJlY3Rpb25DaGFuZ2VkKFdlYktpdFdlYlZpZXcqLCBH
dGtUZXh0RGlyZWN0aW9uIHByZXZpb3VzRGlyZWN0aW9uLCBncG9pbnRlcik7CiAKK3N0YXRpYyBp
bmxpbmUgV2ViS2l0V2ViVmlld1RhcmdldEluZm8gdG9XZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyhQ
YXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0VHlwZSBmbGFncykKK3sKKyAgICBzd2l0
Y2ggKGZsYWdzKSB7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTWFya3Vw
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUw7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQ6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlSW1hZ2U6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSU1BR0U7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3Q6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVVJJX0xJU1Q7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZU5ldHNjYXBlVVJM
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX05FVFNDQVBFX1VS
TDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTDsK
KyAgICB9Cit9CisKK3N0YXRpYyBHdGtUYXJnZXRMaXN0KiBjb3B5R3RrVGFyZ2V0TGlzdENvbnZl
cnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhHdGtUYXJnZXRMaXN0KiBj
b3JlR3RrVGFyZ2V0TGlzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlR3RrVGFy
Z2V0TGlzdCwgbnVsbHB0cik7CisKKyAgICBHdGtUYXJnZXRMaXN0KiB0YXJnZXRMaXN0V2l0aFdl
YktpdEVudW1WYWx1ZXMgPSBudWxscHRyOworICAgIGludCB0YWJsZVNpemUgPSAwOworICAgIEd0
a1RhcmdldEVudHJ5KiB0YWJsZShndGtfdGFyZ2V0X3RhYmxlX25ld19mcm9tX2xpc3QoY29yZUd0
a1RhcmdldExpc3QsICZ0YWJsZVNpemUpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFi
bGVTaXplOyBpKyspCisgICAgICAgIHRhYmxlW2ldLmZsYWdzID0gdG9XZWJLaXRXZWJWaWV3VGFy
Z2V0SW5mbyhzdGF0aWNfY2FzdDxQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0VHlw
ZT4odGFibGVbaV0uZmxhZ3MpKTsKKworICAgIHRhcmdldExpc3RXaXRoV2ViS2l0RW51bVZhbHVl
cyA9IGd0a190YXJnZXRfbGlzdF9uZXcodGFibGUsIHRhYmxlU2l6ZSk7CisgICAgZ3RrX3Rhcmdl
dF90YWJsZV9mcmVlKHRhYmxlLCB0YWJsZVNpemUpOworCisgICAgcmV0dXJuIHRhcmdldExpc3RX
aXRoV2ViS2l0RW51bVZhbHVlczsKK30KKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogc3Rh
dGljIHZvaWQgUG9wdXBNZW51UG9zaXRpb25GdW5jKEd0a01lbnUqIG1lbnUsIGdpbnQgKngsIGdp
bnQgKnksIGdib29sZWFuICpwdXNoSW4sIGdwb2ludGVyIHVzZXJEYXRhKQogewpAQCAtMTM4MCw2
ICsxNDIyLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UoR09iamVjdCog
b2JqZWN0KQogICAgIHByaXYtPndlYldpbmRvd0ZlYXR1cmVzLmNsZWFyKCk7CiAgICAgcHJpdi0+
bWFpblJlc291cmNlLmNsZWFyKCk7CiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzLmNsZWFyKCk7Cisg
ICAgcHJpdi0+dGFyZ2V0TGlzdC5jbGVhcigpOwogCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0
X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKIApAQCAtMzg3MywxMCAr
MzkxNiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQogCiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzID0gYWRvcHRHUmVmKGdfaGFzaF90
YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwgZ19mcmVlLCBnX29iamVjdF91
bnJlZikpOwogCisgICAgcHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5R3RrVGFyZ2V0
TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQYXN0ZWJv
YXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpKTsKKwog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgcHJpdi0+ZHJhZ0FuZERyb3BIZWxwZXIuc2V0
V2lkZ2V0KEdUS19XSURHRVQod2ViVmlldykpOwogICAgIGd0a19kcmFnX2Rlc3Rfc2V0KEdUS19X
SURHRVQod2ViVmlldyksIHN0YXRpY19jYXN0PEd0a0Rlc3REZWZhdWx0cz4oMCksIDAsIDAsIHN0
YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KEdES19BQ1RJT05fQ09QWSB8IEdES19BQ1RJT05fQ09Q
WSB8IEdES19BQ1RJT05fTU9WRSB8IEdES19BQ1RJT05fTElOSyB8IEdES19BQ1RJT05fUFJJVkFU
RSkpOwotICAgIGd0a19kcmFnX2Rlc3Rfc2V0X3RhcmdldF9saXN0KEdUS19XSURHRVQod2ViVmll
dyksIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExp
c3QoKSk7CisgICAgZ3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0X2xpc3QoR1RLX1dJREdFVCh3ZWJW
aWV3KSwgcHJpdi0+dGFyZ2V0TGlzdC5nZXQoKSk7CiAjZW5kaWYKIAogICAgIHByaXYtPnNlbGZT
Y3JvbGxpbmcgPSBmYWxzZTsKQEAgLTQ2OTEsNyArNDczNiw4IEBAIHZvaWQgd2Via2l0X3dlYl92
aWV3X3NldF9lZGl0YWJsZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBmbGFnKQog
ICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7Ci0gICAgcmV0dXJuIFBhc3RlYm9hcmRIZWxwZXI6
OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKTsKKyAgICB3ZWJWaWV3LT5w
cml2LT50YXJnZXRMaXN0ID0gYWRvcHRHUmVmKGNvcHlHdGtUYXJnZXRMaXN0Q29udmVydGluZ1dl
YkNvcmVFbnVtVmFsdWVzVG9XZWJLaXRFbnVtVmFsdWVzKFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1
bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKSkpOworICAgIHJldHVybiB3ZWJWaWV3
LT5wcml2LT50YXJnZXRMaXN0LmdldCgpOwogfQogCiAvKioKQEAgLTQ3MDgsNyArNDc1NCw4IEBA
IEd0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdChXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3KQogICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3
X2dldF9wYXN0ZV90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotICAgIHJl
dHVybiBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRM
aXN0KCk7CisgICAgd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5R3Rr
VGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQ
YXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkp
KTsKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdC5nZXQoKTsKIH0KIAogLyoq
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCmlu
ZGV4IDNmNjkyN2UxNjJkYjFkMjA5NjI1MGY1NmUzODMzM2NhZTBkZjc0M2IuLjZiOTAzNmNkZjRl
MWY1N2ViMjkyODU5ZTg3ODFmMzgxM2I3MjYyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgc3RydWN0
IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVyIGNs
aWNrQ291bnRlcjsKICAgICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5kRHJv
cEhlbHBlcjsKICAgICBib29sIHNlbGZTY3JvbGxpbmc7CisgICAgR1JlZlB0cjxHdGtUYXJnZXRM
aXN0PiB0YXJnZXRMaXN0OwogCiAgICAgT3duUHRyPFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQ+IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvblJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVu
dGljYXRpb25SZXF1ZXN0LmNwcAppbmRleCA2ZjBjMzcwN2UzNzhlNDJhOTNiMmRmYjkzYWQwZjMw
YWU1YjdiMmRhLi5jYTc0ODBjZDkyMjI0NTlkNDcyMDNkYzk0M2RlNTMxZmI3MWUwYjljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNh
dGlvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5jcHAKQEAgLTY3LDE4ICs2NywzNSBAQCBzdHJ1Y3Qg
X1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdFByaXZhdGUgewogCiBzdGF0aWMgZ3VpbnQgc2ln
bmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxULCBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUMsIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0RJR0VTVCwgUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0KTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVE1MX0ZPUk0sIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm0pOwotQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05UTE0sIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfTkVHT1RJQVRFLCBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfQ0xJRU5UX0NFUlRJRklDQVRF
X1JFUVVFU1RFRCwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9B
VVRIRU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVELCBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNB
VElPTl9TQ0hFTUVfVU5LTk9XTiwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVV
bmtub3duKTsKLQogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVz
dCwgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpCiAKK2lubGlu
ZSBzdGF0aWMgV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUgdG9XZWJLaXRBdXRoZW50aWNhdGlv
blNjaGVtZShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBjb3Jl
U2NoZW1lKQoreworICAgIHN3aXRjaCAoY29yZVNjaGVtZSkgeworICAgIGNhc2UgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgorICAgICAgICByZXR1
cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIGNhc2UgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6CisgICAgICAg
IHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUM7CisgICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6
CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfRElHRVNU
OworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVI
VE1MRm9ybToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfSFRN
TF9GT1JNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVOVExNOgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9O
VExNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVOZWdvdGlhdGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1F
X05FR09USUFURTsKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgICAgIHJldHVybiBXRUJL
SVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0NMSUVOVF9DRVJUSUZJQ0FURV9SRVFVRVNURUQ7Cisg
ICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZl
clRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5U
SUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVEOworICAgIGNh
c2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9VTktOT1dOOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
V0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIH0KK30KKwogc3RhdGlj
IHZvaWQgd2Via2l0QXV0aGVudGljYXRpb25SZXF1ZXN0RGlzcG9zZShHT2JqZWN0KiBvYmplY3Qp
CiB7CiAgICAgV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX0FV
VEhFTlRJQ0FUSU9OX1JFUVVFU1Qob2JqZWN0KTsKQEAgLTI0NCw3ICsyNjEsNyBAQCBXZWJLaXRB
dXRoZW50aWNhdGlvblNjaGVtZSB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRfc2No
ZW1lKFdlYktpdEF1dGhlbgogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19B
VVRIRU5USUNBVElPTl9SRVFVRVNUKHJlcXVlc3QpLCBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NI
RU1FX1VOS05PV04pOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdEF1dGhlbnRpY2F0
aW9uU2NoZW1lPihyZXF1ZXN0LT5wcml2LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+cHJvdGVj
dGlvblNwYWNlKCktPmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkpOworICAgIHJldHVybiB0b1dlYktp
dEF1dGhlbnRpY2F0aW9uU2NoZW1lKHJlcXVlc3QtPnByaXYtPmF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLT5wcm90ZWN0aW9uU3BhY2UoKS0+YXV0aGVudGljYXRpb25TY2hlbWUoKSk7CiB9CiAKIC8q
KgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29v
a2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
b29raWVNYW5hZ2VyLmNwcAppbmRleCAzNjRlNGU0N2RjYzNiYmNjMzgzZTgwNzlhNjAwZmUxYTU1
NDY0MmNlLi45MTg5M2I4MGQ0YmIxZTFlMDIyOWIzNzdlYWI3Zjk3ZTJkYTRhZTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVN
YW5hZ2VyLmNwcApAQCAtNjgsMTIgKzY4LDQ4IEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xBU1Rf
U0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdENvb2tpZU1hbmFn
ZXIsIHdlYmtpdF9jb29raWVfbWFuYWdlciwgR19UWVBFX09CSkVDVCkKIAotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhULCBT
b3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUZXh0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfU1FMSVRFLCBTb3VwQ29va2ll
UGVyc2lzdGVudFN0b3JhZ2VTUUxpdGUpOworaW5saW5lIHN0YXRpYyBTb3VwQ29va2llUGVyc2lz
dGVudFN0b3JhZ2VUeXBlIHRvU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZShXZWJLaXRD
b29raWVQZXJzaXN0ZW50U3RvcmFnZSBraXRTdG9yYWdlKQoreworICAgIHN3aXRjaCAoa2l0U3Rv
cmFnZSkgeworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfVEVYVDoK
KyAgICAgICAgcmV0dXJuIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVRleHQ7CisgICAgY2Fz
ZSBXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9TUUxJVEU6CisgICAgICAgIHJldHVy
biBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VTUUxpdGU7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBTb3VwQ29va2llUGVyc2lz
dGVudFN0b3JhZ2VUZXh0OworICAgIH0KK30KKworaW5saW5lIHN0YXRpYyBXZWJLaXRDb29raWVB
Y2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBv
bGljeSBodHRwUG9saWN5KQoreworICAgIHN3aXRjaCAoaHR0cFBvbGljeSkgeworICAgIGNhc2Ug
SFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9DT09L
SUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5
TmV2ZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVWRVI7
CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21h
aW46CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRf
UEFSVFk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfQUxXQVlTOworICAgIH0KK30K
IAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NF
UFRfQUxXQVlTLCBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKTsKLUNPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSLCBIVFRQQ29v
a2llQWNjZXB0UG9saWN5TmV2ZXIpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRfUEFSVFksIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbik7CitpbmxpbmUgc3RhdGljIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdENvb2tpZUFjY2Vw
dFBvbGljeSBraXRQb2xpY3kpCit7CisgICAgc3dpdGNoIChraXRQb2xpY3kpIHsKKyAgICBjYXNl
IFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM6CisgICAgICAgIHJldHVybiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lf
QUNDRVBUX05FVkVSOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVy
OworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZOgor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKKyAgICB9Cit9CiAKIHN0
YXRpYyB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9jbGFzc19pbml0KFdlYktpdENvb2tpZU1h
bmFnZXJDbGFzcyogZmluZENsYXNzKQogewpAQCAtMTM3LDcgKzE3Myw3IEBAIHZvaWQgd2Via2l0
X2Nvb2tpZV9tYW5hZ2VyX3NldF9wZXJzaXN0ZW50X3N0b3JhZ2UoV2ViS2l0Q29va2llTWFuYWdl
ciogbWFuYWdlciwKICAgICBnX3JldHVybl9pZl9mYWlsKGZpbGVuYW1lKTsKIAogICAgIG1hbmFn
ZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCk7
Ci0gICAgbWFuYWdlci0+cHJpdi0+d2ViQ29va2llTWFuYWdlci0+c2V0Q29va2llUGVyc2lzdGVu
dFN0b3JhZ2UoU3RyaW5nOjpmcm9tVVRGOChmaWxlbmFtZSksIHN0b3JhZ2UpOworICAgIG1hbmFn
ZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFN0
cmluZzo6ZnJvbVVURjgoZmlsZW5hbWUpLCB0b1NvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5
cGUoc3RvcmFnZSkpOwogICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0YXJ0
T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwogfQogCkBAIC0xNTIsMTMgKzE4OCwxMyBAQCB2b2lk
IHdlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNjZXB0X3BvbGljeShXZWJLaXRDb29raWVNYW5h
Z2VyKiBtYW5hZ2VyLCBXZWJLaQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0NP
T0tJRV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1h
bmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKKyAgICBtYW5hZ2VyLT5w
cml2LT53ZWJDb29raWVNYW5hZ2VyLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHRvSFRUUENv
b2tpZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0Q29va2ll
TWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCiB7CiAgICAgR1JlZlB0cjxHVGFzaz4g
dGFzayA9IGFkb3B0R1JlZihHX1RBU0soY29udGV4dCkpOwotICAgIGdfdGFza19yZXR1cm5faW50
KHRhc2suZ2V0KCksIHBvbGljeSk7CisgICAgZ190YXNrX3JldHVybl9pbnQodGFzay5nZXQoKSwg
dG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGlj
eSkpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENyZWRlbnRpYWwuY3BwCmluZGV4IDU3NTVmZDVjN2M4MDY1ZjViMWY2ZjVlMTI4
OTdiMzI3N2IwM2Q0ZWUuLjBiOTA2ZDY3ODhkMzhmYmE3Y2Y0NTk4MjYzY2U3ZTIwMmI0MWE2N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENyZWRl
bnRpYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENy
ZWRlbnRpYWwuY3BwCkBAIC0zNywxMiArMzcsMzggQEAgc3RydWN0IF9XZWJLaXRDcmVkZW50aWFs
IHsKICAgICBDU3RyaW5nIHBhc3N3b3JkOwogfTsKIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FLCBXZWJDb3JlOjpDcmVkZW50
aWFsUGVyc2lzdGVuY2VOb25lKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfRk9SX1NFU1NJT04sIFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZUZvclNlc3Npb24pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQsIFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZVBlcm1hbmVudCk7Ci0KIEdfREVGSU5FX0JPWEVEX1RZUEUoV2ViS2l0Q3JlZGVu
dGlhbCwgd2Via2l0X2NyZWRlbnRpYWwsIHdlYmtpdF9jcmVkZW50aWFsX2NvcHksIHdlYmtpdF9j
cmVkZW50aWFsX2ZyZWUpCiAKK2lubGluZSBzdGF0aWMgV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3Rl
bmNlIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJz
aXN0ZW5jZSBjb3JlUGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChjb3JlUGVyc2lzdGVuY2Up
IHsKKyAgICBjYXNlIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU6CisgICAgICAg
IHJldHVybiBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FOworICAgIGNhc2UgV2Vi
Q29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbjoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX0ZPUl9TRVNTSU9OOworICAgIGNhc2UgV2ViQ29y
ZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlUGVybWFuZW50OgorICAgICAgICByZXR1cm4gV0VCS0lU
X0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5UOworICAgIGRlZmF1bHQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV0VCS0lUX0NSRURFTlRJQUxf
UEVSU0lTVEVOQ0VfTk9ORTsKKyAgICB9Cit9CisKK2lubGluZSBzdGF0aWMgV2ViQ29yZTo6Q3Jl
ZGVudGlhbFBlcnNpc3RlbmNlIHRvV2ViQ29yZUNyZWRlbnRpYWxQZXJzaXN0ZW5jZShXZWJLaXRD
cmVkZW50aWFsUGVyc2lzdGVuY2Uga2l0UGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChraXRQ
ZXJzaXN0ZW5jZSkgeworICAgIGNhc2UgV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfTk9O
RToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU7Cisg
ICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9GT1JfU0VTU0lPTjoKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb247CisgICAg
Y2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQ6CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VQZXJtYW5lbnQ7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lOworICAgIH0KK30KKwogV2ViS2l0Q3JlZGVudGlh
bCogd2Via2l0Q3JlZGVudGlhbENyZWF0ZShjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiBjb3Jl
Q3JlZGVudGlhbCkKIHsKICAgICBXZWJLaXRDcmVkZW50aWFsKiBjcmVkZW50aWFsID0gZ19zbGlj
ZV9uZXcoV2ViS2l0Q3JlZGVudGlhbCk7CkBAIC03Myw3ICs5OSw3IEBAIFdlYktpdENyZWRlbnRp
YWwqIHdlYmtpdF9jcmVkZW50aWFsX25ldyhjb25zdCBnY2hhciogdXNlcm5hbWUsIGNvbnN0IGdj
aGFyKiBwYXNzCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwodXNlcm5hbWUsIDApOwogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHBhc3N3b3JkLCAwKTsKIAotICAgIHJldHVybiB3ZWJraXRDcmVk
ZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2VybmFt
ZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDcmVk
ZW50aWFsUGVyc2lzdGVuY2U+KHBlcnNpc3RlbmNlKSkpOworICAgIHJldHVybiB3ZWJraXRDcmVk
ZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2VybmFt
ZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCB0b1dlYkNvcmVDcmVkZW50aWFsUGVyc2lz
dGVuY2UocGVyc2lzdGVuY2UpKSk7CiB9CiAKIC8qKgpAQCAtMTc4LDUgKzIwNCw1IEBAIFdlYktp
dENyZWRlbnRpYWxQZXJzaXN0ZW5jZSB3ZWJraXRfY3JlZGVudGlhbF9nZXRfcGVyc2lzdGVuY2Uo
V2ViS2l0Q3JlZGVudGlhbCoKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjcmVkZW50aWFs
LCBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FKTsKIAotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxXZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGNyZWRlbnRpYWwtPmNyZWRlbnRp
YWwucGVyc2lzdGVuY2UoKSk7CisgICAgcmV0dXJuIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3Rl
bmNlKGNyZWRlbnRpYWwtPmNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKaW5kZXgg
ZTk1ZTRjMDY1MGIzOTNlOGM4YWFiYjY0M2NiMzcwZmVlNDQ5ZDU5My4uYzQ4M2I5MjdjZmQyMzY3
MDVjMjI4NmQ3NmM3Nzc2MmRlMGVjMDA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2lu
Y2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXREb3dubG9hZFByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KQEAg
LTM0MCw3ICszNDEsNyBAQCB2b2lkIHdlYmtpdERvd25sb2FkTm90aWZ5UHJvZ3Jlc3MoV2ViS2l0
RG93bmxvYWQqIGRvd25sb2FkLCBndWludDY0IGJ5dGVzUmVjZWl2ZQogdm9pZCB3ZWJraXREb3du
bG9hZEZhaWxlZChXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IFJlc291cmNlRXJyb3Im
IHJlc291cmNlRXJyb3IpCiB7CiAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVycm9yKGdfZXJy
b3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhyZXNvdXJjZUVycm9yLmRvbWFpbigp
LnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCByZXNv
dXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAg
ICB0b1dlYktpdEVycm9yKHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCkpLCByZXNvdXJjZUVycm9y
LmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIGlmIChkb3dubG9h
ZC0+cHJpdi0+dGltZXIpCiAgICAgICAgIGdfdGltZXJfc3RvcChkb3dubG9hZC0+cHJpdi0+dGlt
ZXIuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRFcnJvci5jcHAKaW5kZXggYzA2ZGM2MWE1OGNjNGFhMGE2YzE2ZGE2NTQ2NDA0YTYwZTAxMjRm
ZS4uNzQxOWVlNzIxYTBmZTg2YWJjMzY0MzZkMjRlYzI1ZTQ2NDIzZThjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcApAQCAtNDAsNTMg
KzQwLDI2IEBAIEdRdWFyayB3ZWJraXRfbmV0d29ya19lcnJvcl9xdWFyaygpCiAgICAgcmV0dXJu
IGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9yRG9tYWluTmV0d29yayk7
CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJST1Jf
RkFJTEVELCBOZXR3b3JrRXJyb3JGYWlsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQsIE5ldHdvcmtFcnJvclRyYW5zcG9ydCk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05P
V05fUFJPVE9DT0wsIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRCwgTmV0d29ya0Vy
cm9yQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdP
UktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVCwgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlz
dCk7Ci0KIEdRdWFyayB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrKCkKIHsKICAgICByZXR1cm4g
Z19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5Qb2xpY3kpOwog
fQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJ
TEVELCBQb2xpY3lFcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNhbm5v
dFNob3dNaW1lVHlwZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJ
Q1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURf
SU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1
cHRlZEJ5UG9saWN5Q2hhbmdlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JDYW5u
b3RVc2VSZXN0cmljdGVkUG9ydCk7Ci0KIEdRdWFyayB3ZWJraXRfcGx1Z2luX2Vycm9yX3F1YXJr
KCkKIHsKICAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJy
b3JEb21haW5QbHVnaW4pOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9QTFVHSU5fRVJST1JfRkFJTEVELCBQbHVnaW5FcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOLCBQ
bHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTiwgUGx1Z2luRXJyb3JDYW5u
b3RMb2FkUGx1Z2luKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BMVUdJ
Tl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFLCBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSk7Ci1D
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElP
Tl9DQU5DRUxMRUQsIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRCwg
UGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCk7Ci0KIEdRdWFyayB3ZWJraXRfZG93bmxvYWRfZXJy
b3JfcXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJD
b3JlOjplcnJvckRvbWFpbkRvd25sb2FkKTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSywgRG93bmxvYWRFcnJvck5ldHdvcmsp
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfQ0FO
Q0VMTEVEX0JZX1VTRVIsIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIpOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT04sIERv
d25sb2FkRXJyb3JEZXN0aW5hdGlvbik7Ci0KIEdRdWFyayB3ZWJraXRfcHJpbnRfZXJyb3JfcXVh
cmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3JlOjpl
cnJvckRvbWFpblByaW50KTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfUFJJTlRfRVJST1JfR0VORVJBTCwgUHJpbnRFcnJvckdlbmVyYWwpOwotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQsIFBy
aW50RXJyb3JQcmludGVyTm90Rm91bmQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9QQUdFX1JBTkdFLCBQcmludEVycm9ySW52YWxpZFBh
Z2VSYW5nZSk7Ci0KIEdRdWFyayB3ZWJraXRfamF2YXNjcmlwdF9lcnJvcl9xdWFyaygpCiB7CiAg
ICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKCJXZWJLaXRKYXZhc2NyaXB0RXJy
b3IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmNwcAppbmRleCA4NzU5MzA2ZTJiY2YxZjk2MWU1Nzg0MWNiMTQ2
YjYwZmMyNmQ1OWY2Li42ZTcxNDFlNGU4M2Q4NTEwZmUzODRhZTA3YTVkNzIwNzc4YTljMzBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
RmluZENvbnRyb2xsZXIuY3BwCkBAIC04MiwxMSArODIsMjIgQEAgc3RhdGljIGd1aW50IHNpZ25h
bHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0Rmlu
ZENvbnRyb2xsZXIsIHdlYmtpdF9maW5kX2NvbnRyb2xsZXIsIEdfVFlQRV9PQkpFQ1QpCiAKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VO
U0lUSVZFLCBGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9GSU5EX09QVElPTlNfQVRfV09SRF9TVEFSVFMsIEZpbmRPcHRpb25z
QXRXb3JkU3RhcnRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRf
T1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJULCBGaW5kT3B0aW9uc1Ry
ZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMsIEZpbmRPcHRpb25zQmFja3dhcmRzKTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19XUkFQX0FS
T1VORCwgRmluZE9wdGlvbnNXcmFwQXJvdW5kKTsKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5k
T3B0aW9ucyB0b1dlYktpdEZpbmRPcHRpb25zKFdlYktpdEZpbmRPcHRpb25zIHR5cGUpCit7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KCh0eXBlICYgV0VCS0lU
X0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VOU0lUSVZFID8gRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRp
dmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19BVF9XT1JEX1NU
QVJUUyA/IEZpbmRPcHRpb25zQXRXb3JkU3RhcnRzIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdF
QktJVF9GSU5EX09QVElPTlNfVFJFQVRfTUVESUFMX0NBUElUQUxfQVNfV09SRF9TVEFSVCA/IEZp
bmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQgOiAwKQorICAgICAgICB8ICh0
eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMgPyBGaW5kT3B0aW9uc0JhY2t3YXJk
cyA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1dSQVBfQVJPVU5E
ID8gRmluZE9wdGlvbnNXcmFwQXJvdW5kIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdFQktJVF9G
SU5EX09QVElPTlNfU0hPV19PVkVSTEFZID8gRmluZE9wdGlvbnNTaG93T3ZlcmxheSA6IDApCisg
ICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfRklORF9JTkRJQ0FUT1Ig
PyBGaW5kT3B0aW9uc1Nob3dGaW5kSW5kaWNhdG9yIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdF
QktJVF9GSU5EX09QVElPTlNfU0hPV19ISUdITElHSFQgPyBGaW5kT3B0aW9uc1Nob3dIaWdobGln
aHQgOiAwKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b1dlYktp
dEZpbmRPcHRpb25zKHVpbnQzMl90IHR5cGUpCit7CisgICAgcmV0dXJuIHRvV2ViS2l0RmluZE9w
dGlvbnMoc3RhdGljX2Nhc3Q8V2ViS2l0RmluZE9wdGlvbnM+KHR5cGUpKTsKK30KIAogc3RhdGlj
IHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCB1
bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewpAQCAtMzQ5LDcg
KzM2MCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdEZpbmRDb250cm9sbGVyUGVyZm9ybShXZWJLaXRG
aW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIsIFdlCiAgICAgV2ViS2l0RmluZENvbnRyb2xs
ZXJQcml2YXRlKiBwcml2ID0gZmluZENvbnRyb2xsZXItPnByaXY7CiAgICAgaWYgKG9wZXJhdGlv
biA9PSBDb3VudE9wZXJhdGlvbikgewogICAgICAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVyKS0+
Y291bnRTdHJpbmdNYXRjaGVzKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4dC5kYXRh
KCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KHByaXYtPmZpbmRPcHRpb25zKSwgcHJp
di0+bWF4TWF0Y2hDb3VudCk7CisgICAgICAgICAgICB0b1dlYktpdEZpbmRPcHRpb25zKHByaXYt
PmZpbmRPcHRpb25zKSwgcHJpdi0+bWF4TWF0Y2hDb3VudCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTM2Miw5ICszNzMsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRGaW5kQ29udHJvbGxl
clBlcmZvcm0oV2ViS2l0RmluZENvbnRyb2xsZXIqIGZpbmRDb250cm9sbGVyLCBXZQogICAgICAg
ICAvLyB1bmNvbmRpdGlvbmFsbHkgc2hvdyBoaWdobGlnaHRzLiBCb3RoIHNlYXJjaF9uZXh0KCkg
YW5kCiAgICAgICAgIC8vIHNlYXJjaF9wcmV2KCkgc2hvdWxkIG5vdCBlbmFibGUgaGlnaGxpZ2h0
aW5nIHRvIGF2b2lkIGFuCiAgICAgICAgIC8vIGV4dHJhIHVubWFya0FsbFRleHRNYXRjaGVzKCkg
KyBtYXJrQWxsVGV4dE1hdGNoZXMoKQotICAgICAgICBmaW5kT3B0aW9ucyB8PSBGaW5kT3B0aW9u
c1Nob3dIaWdobGlnaHQ7CisgICAgICAgIGZpbmRPcHRpb25zIHw9IFdFQktJVF9GSU5EX09QVElP
TlNfU0hPV19ISUdITElHSFQ7CiAKLSAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVyKS0+ZmluZFN0
cmluZyhTdHJpbmc6OmZyb21VVEY4KHByaXYtPnNlYXJjaFRleHQuZGF0YSgpKSwgc3RhdGljX2Nh
c3Q8V2ViS2l0OjpGaW5kT3B0aW9ucz4oZmluZE9wdGlvbnMpLAorICAgIGdldFBhZ2UoZmluZENv
bnRyb2xsZXIpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4dC5k
YXRhKCkpLCB0b1dlYktpdEZpbmRPcHRpb25zKGZpbmRPcHRpb25zKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tYXhNYXRjaENvdW50KTsKIH0KIApAQCAt
NDI1LDcgKzQzNiw3IEBAIHZvaWQgd2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4dChX
ZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIpCiAgICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfRklORF9DT05UUk9MTEVSKGZpbmRDb250cm9sbGVyKSk7CiAKICAgICBmaW5k
Q29udHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0gfldFQktJVF9GSU5EX09QVElPTlNfQkFD
S1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9ucyAmPSB+RmluZE9w
dGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9u
cyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsKICAgICB3ZWJLaXRGaW5k
Q29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0UHJldk9wZXJhdGlvbik7
CiB9CiAKQEAgLTQ0Myw3ICs0NTQsNyBAQCB2b2lkIHdlYmtpdF9maW5kX2NvbnRyb2xsZXJfc2Vh
cmNoX3ByZXZpb3VzKFdlYktpdEZpbmRDb250cm9sbGVyKiBmaW5kQ29udHJvbGxlcgogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTkRfQ09OVFJPTExFUihmaW5kQ29udHJvbGxlcikp
OwogCiAgICAgZmluZENvbnRyb2xsZXItPnByaXYtPmZpbmRPcHRpb25zIHw9IFdFQktJVF9GSU5E
X09QVElPTlNfQkFDS1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9u
cyAmPSB+RmluZE9wdGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5wcml2
LT5maW5kT3B0aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsKICAg
ICB3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0UHJl
dk9wZXJhdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCmluZGV4IDdiYWQxZDA1MTg0ZDMxNTZkMWQx
ZmQ5NjQ0NWM5YzlkMTdmYTNmM2UuLmM4OWMzODY0ZmRlOGQ5MWVlYmU0MWMwNjEwYTYxMzg4Yzcz
NGQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZpbmRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0RmluZENvbnRyb2xsZXIuaApAQCAtNjMsNiArNjMsMTAgQEAgdHlwZWRlZiBlbnVtIHsK
ICAgV0VCS0lUX0ZJTkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJU
ID0gMSA8PCAyLAogICBXRUJLSVRfRklORF9PUFRJT05TX0JBQ0tXQVJEUyA9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAxIDw8IDMsCiAgIFdFQktJVF9GSU5EX09QVElPTlNfV1JBUF9BUk9VTkQg
PSAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgNCwKKyAgLyo8IHByaXZhdGUgPiovCisgIFdF
QktJVF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID0gICAgICAgICAgICAgICAgICAgICAgIDEg
PDwgNSwKKyAgV0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0ZJTkRfSU5ESUNBVE9SID0gICAgICAg
ICAgICAgICAgMSA8PCA2LAorICBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfSElHSExJR0hUID0g
ICAgICAgICAgICAgICAgICAgICAxIDw8IDcsCiB9IFdlYktpdEZpbmRPcHRpb25zOwogCiBzdHJ1
Y3QgX1dlYktpdEZpbmRDb250cm9sbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApp
bmRleCAxYjc3YjZlYTdiNDY3MGYxOWU5NjA2MTA0Mzc3MmQxOTk0OWE5MjIxLi5iOWFjMjM0YmY3
YzMwZDVhMzUzOTk2N2YyNzdlZDExMTZkNGQwZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGll
bnQuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuaCIKIAogI2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZh
dGUuaCIKQEAgLTg3LDcgKzg4LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVdlYlZpZXdNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGMKICAgICAgICAg
QVBJOjpFcnJvciogd2ViRXJyb3IgPSBzdGF0aWNfY2FzdDxBUEk6OkVycm9yKj4obWVzc2FnZS5n
ZXQoU3RyaW5nOjpmcm9tVVRGOCgiRXJyb3IiKSkpOwogICAgICAgICBjb25zdCBSZXNvdXJjZUVy
cm9yJiBwbGF0Zm9ybUVycm9yID0gd2ViRXJyb3ItPnBsYXRmb3JtRXJyb3IoKTsKICAgICAgICAg
R1VuaXF1ZVB0cjxHRXJyb3I+IHJlc291cmNlRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1
YXJrX2Zyb21fc3RyaW5nKHBsYXRmb3JtRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0g
ICAgICAgICAgICBwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpLCBwbGF0Zm9ybUVycm9yLmxvY2Fs
aXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJLaXRF
cnJvcihwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpKSwgcGxhdGZvcm1FcnJvci5sb2NhbGl6ZWRE
ZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgICAgICB3ZWJraXRXZWJSZXNvdXJj
ZUZhaWxlZChyZXNvdXJjZS5nZXQoKSwgcmVzb3VyY2VFcnJvci5nZXQoKSk7CiAgICAgICAgIHdl
YmtpdFdlYlZpZXdSZW1vdmVMb2FkaW5nV2ViUmVzb3VyY2Uod2ViVmlldywgcmVzb3VyY2VJZGVu
dGlmaWVyLT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCmluZGV4IDRiMmU1OWMyNWZlN2Y4MDU1ZTc0
OGI3ZmI3YWE4Y2ZjMTBjMzVkNzEuLmFiOTdkMjkwODNjOTI4ZWFmOTU1YTRlMzJkNDc5MzBkMDA1
NmQyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dExvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIldlYktp
dExvYWRlckNsaWVudC5oIgogCiAjaW5jbHVkZSAiV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXNw
b25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgpAQCAtNTQsNyArNTUsNyBAQCBzdGF0aWMg
dm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZgogCiAgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJv
ciA9IHRvSW1wbChlcnJvciktPnBsYXRmb3JtRXJyb3IoKTsKICAgICBHVW5pcXVlUHRyPEdFcnJv
cj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21fc3RyaW5nKHJlc291
cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIHJlc291cmNlRXJyb3Iu
ZXJyb3JDb2RlKCksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgICAgIHRvV2ViS2l0RXJyb3IocmVzb3VyY2VFcnJvci5lcnJvckNvZGUo
KSksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7
CiAgICAgaWYgKHJlc291cmNlRXJyb3IudGxzRXJyb3JzKCkpIHsKICAgICAgICAgd2Via2l0V2Vi
Vmlld0xvYWRGYWlsZWRXaXRoVExTRXJyb3JzKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwg
cmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCks
CiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4ocmVzb3VyY2VF
cnJvci50bHNFcnJvcnMoKSksIHJlc291cmNlRXJyb3IuY2VydGlmaWNhdGUoKSk7CkBAIC04NSw3
ICs4Niw3IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyCiAKICAgICBjb25zdCBSZXNvdXJjZUVy
cm9yJiByZXNvdXJjZUVycm9yID0gdG9JbXBsKGVycm9yKS0+cGxhdGZvcm1FcnJvcigpOwogICAg
IEdVbmlxdWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVhcmtf
ZnJvbV9zdHJpbmcocmVzb3VyY2VFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwKLSAgICAg
ICAgcmVzb3VyY2VFcnJvci5lcnJvckNvZGUoKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNj
cmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJLaXRFcnJvcihyZXNvdXJj
ZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
LnV0ZjgoKS5kYXRhKCkpKTsKICAgICB3ZWJraXRXZWJWaWV3TG9hZEZhaWxlZChXRUJLSVRfV0VC
X1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9MT0FEX0NPTU1JVFRFRCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNvdXJjZUVycm9yLmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgpLCB3
ZWJFcnJvci5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmNwcApp
bmRleCBmMDM0NDZiYWI3MzBjZDQ2YjBmNjkyYzcxZDFjMGVlMjNlNDI2YmIyLi44MzM2NmRjY2Q3
ZGExZjQ1MzBkMThlZDNkYWI2NDZkZWNiMTAwMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbi5jcHAKQEAgLTI0MywxMyArMjQzLDYgQEAgY29uc3QgY2hhciogd2Via2l0X25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF9mcmFtZV9uYW1lKFdlYktpdE5hdmlnYXRpb25Q
b2wKICAgICByZXR1cm4gZGVjaXNpb24tPnByaXYtPmZyYW1lTmFtZS5kYXRhKCk7CiB9CiAKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05BVklHQVRJT05fVFlQRV9MSU5LX0NM
SUNLRUQsIE5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0aW9u
VHlwZUZvcm1TdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
TkFWSUdBVElPTl9UWVBFX0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZCk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfUkVM
T0FELCBOYXZpZ2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5cGVG
b3JtUmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkFW
SUdBVElPTl9UWVBFX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQogV2ViS2l0TmF2aWdh
dGlvblBvbGljeURlY2lzaW9uKiB3ZWJraXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DcmVhdGUo
V2ViS2l0TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIHVuc2lnbmVkIG1vdXNlQnV0dG9u
LCB1bnNpZ25lZCBtb2RpZmllcnMsIEFQSTo6VVJMUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hh
ciogZnJhbWVOYW1lLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIGxpc3RlbmVyKQogewog
ICAgIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiogZGVjaXNpb24gPSBXRUJLSVRfTkFW
SUdBVElPTl9QT0xJQ1lfREVDSVNJT04oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05BVklHQVRJ
T05fUE9MSUNZX0RFQ0lTSU9OLCBOVUxMKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcAppbmRleCAxZWI2YjFlYzY2
OWFiY2M3OWM4ZjA4ZDQ3Nzc5NjgwZjQyZWFhNWQ2Li4wZTQ0YTQwMTA0Y2JjMWJlNDg5ZDM2YzIx
OTM5Nzg2NTNlZTMwZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAKQEAgLTI5LDEwICsyOSwzMSBAQAogCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCitpbmxpbmUgc3RhdGljIFdlYktpdE5hdmlnYXRpb25U
eXBlIHRvV2ViS2l0TmF2aWdhdGlvblR5cGUoV0tGcmFtZU5hdmlnYXRpb25UeXBlIHR5cGUpCit7
CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBrV0tGcmFtZU5hdmlnYXRpb25UeXBlTGlu
a0NsaWNrZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0xJTktfQ0xJ
Q0tFRDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkOgorICAg
ICAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fVFlQRV9GT1JNX1NVQk1JVFRFRDsKKyAgICBj
YXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9OQVZJR0FUSU9OX1RZUEVfQkFDS19GT1JXQVJEOworICAgIGNhc2Uga1dLRnJhbWVOYXZp
Z2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVf
UkVMT0FEOworICAgIGNhc2Uga1dLRnJhbWVOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZDoK
KyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRFRDsK
KyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9OQVZJR0FUSU9OX1RZUEVfT1RIRVI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0xJ
TktfQ0xJQ0tFRDsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZp
Z2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdL
RXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0ZyYW1l
LCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3Rl
bmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAg
R1JlZlB0cjxXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24+IGRlY2lzaW9uID0KLSAgICAg
ICAgYWRvcHRHUmVmKHdlYmtpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkNyZWF0ZShzdGF0aWNf
Y2FzdDxXZWJLaXROYXZpZ2F0aW9uVHlwZT4obmF2aWdhdGlvblR5cGUpLAorICAgICAgICBhZG9w
dEdSZWYod2Via2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHRvV2ViS2l0TmF2aWdh
dGlvblR5cGUobmF2aWdhdGlvblR5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91c2VC
dXR0b24obW91c2VCdXR0b24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhtb2RpZmll
cnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRvSW1wbChyZXF1ZXN0KSwKQEAgLTQ2LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0sKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRp
b25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1v
dXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVOYW1l
LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBHUmVmUHRyPFdlYktpdE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbj4gZGVjaXNpb24gPQotICAgICAgICBhZG9wdEdSZWYod2Via2l0TmF2aWdh
dGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHN0YXRpY19jYXN0PFdlYktpdE5hdmlnYXRpb25UeXBl
PihuYXZpZ2F0aW9uVHlwZSksCisgICAgICAgIGFkb3B0R1JlZih3ZWJraXROYXZpZ2F0aW9uUG9s
aWN5RGVjaXNpb25DcmVhdGUodG9XZWJLaXROYXZpZ2F0aW9uVHlwZShuYXZpZ2F0aW9uVHlwZSks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2tFdmVudE1vdXNlQnV0dG9uVG9XZWJLaXRNb3VzZUJ1dHRvbihtb3VzZUJ1dHRvbiksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2tFdmVu
dE1vZGlmaWVyc1RvR2RrTW9kaWZpZXJzKG1vZGlmaWVycyksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbXBsKHJlcXVlc3QpLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVy
YXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRP
cGVyYXRpb24uY3BwCmluZGV4IDgxMGQyYzc5YTQ0YTIxMmU1MmQwMDM3ODQ0ZTdmNWE3MWU3ODI4
YjguLjBhMDM4NmFhZjdiNmUzOTk1OTVlYzk2YTM2ZTE0NTZkYzFkNGQzOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJh
dGlvbi5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdGF0aWMgdm9pZCBkcmF3UGFnZXNGb3JQcmlu
dGluZ0NvbXBsZXRlZChBUEk6OkVycm9yKiB3a1ByaW50RXJyb3IsIFdlYktpdFByaW50TwogICAg
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IgPSB3a1ByaW50RXJy
b3IgPyB3a1ByaW50RXJyb3ItPnBsYXRmb3JtRXJyb3IoKSA6IFdlYkNvcmU6OlJlc291cmNlRXJy
b3IoKTsKICAgICBpZiAoIXJlc291cmNlRXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgR1VuaXF1
ZVB0cjxHRXJyb3I+IHByaW50RXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21f
c3RyaW5nKHJlc291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgICAg
ICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCByZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2Ny
aXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJLaXRFcnJvcihyZXNv
dXJjZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgZ19zaWduYWxfZW1pdChwcmludE9wZXJhdGlv
biwgc2lnbmFsc1tGQUlMRURdLCAwLCBwcmludEVycm9yLmdldCgpKTsKICAgICB9CiAgICAgZ19z
aWduYWxfZW1pdChwcmludE9wZXJhdGlvbiwgc2lnbmFsc1tGSU5JU0hFRF0sIDAsIE5VTEwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNw
cAppbmRleCBkMzRiOWM0NzE3MWEwOGFmOWRjZWIyNzc2ZDg3OWJhOGU4ZTQyNjBiLi40YzI1MTdj
YmYzMDM5ZGZiNmY4M2EzYmVmYzcyOTY0MTBkNzA4ZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcApAQCAtMjAsNiArMjAsOCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKIAorI2lu
Y2x1ZGUgIkVycm9yc0d0ay5oIgorI2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAjaW5jbHVkZSA8
Z2RrL2dkay5oPgogCiB1bnNpZ25lZCB3a0V2ZW50TW9kaWZpZXJzVG9HZGtNb2RpZmllcnMoV0tF
dmVudE1vZGlmaWVycyB3a01vZGlmaWVycykKQEAgLTUxLDMgKzUzLDEwOSBAQCB1bnNpZ25lZCB3
a0V2ZW50TW91c2VCdXR0b25Ub1dlYktpdE1vdXNlQnV0dG9uKFdLRXZlbnRNb3VzZUJ1dHRvbiB3
a0J1dHRvbikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKIH0KKwor
aW5saW5lIHVuc2lnbmVkIHRvV2ViS2l0RXJyb3IodW5zaWduZWQgd2ViQ29yZUVycm9yKQorewor
ICAgIHN3aXRjaCAod2ViQ29yZUVycm9yKSB7CisgICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJy
b3JGYWlsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlMRUQ7Cisg
ICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JUcmFuc3BvcnQ6CisgICAgICAgIHJldHVybiBX
RUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQ7CisgICAgY2FzZSBXZWJDb3JlOjpOZXR3b3Jr
RXJyb3JVbmtub3duUHJvdG9jb2w6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJP
Ul9VTktOT1dOX1BST1RPQ09MOworICAgIGNhc2UgV2ViQ29yZTo6TmV0d29ya0Vycm9yQ2FuY2Vs
bGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEOworICAg
IGNhc2UgV2ViQ29yZTo6TmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdDoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19OT1RfRVhJU1Q7CisgICAgY2FzZSBX
ZWJDb3JlOjpQb2xpY3lFcnJvckZhaWxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lf
RVJST1JfRkFJTEVEOworICAgIGNhc2UgV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93TWlt
ZVR5cGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX01J
TUVfVFlQRTsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDoKKyAg
ICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJOworICAgIGNh
c2UgV2ViQ29yZTo6UG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdl
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQ
VEVEX0JZX1BPTElDWV9DSEFOR0U7CisgICAgY2FzZSBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5v
dFVzZVJlc3RyaWN0ZWRQb3J0OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9D
QU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVDsKKyAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9y
RmFpbGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ7CisgICAg
Y2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW46CisgICAgICAgIHJldHVy
biBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BMVUdJTjsKKyAgICBjYXNlIFdlYkNv
cmU6OlBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbjoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9Q
TFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2lu
RXJyb3JKYXZhVW5hdmFpbGFibGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9S
X0pBVkFfVU5BVkFJTEFCTEU7CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvckNvbm5lY3Rp
b25DYW5jZWxsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJ
T05fQ0FOQ0VMTEVEOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9h
ZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDsK
KyAgICBjYXNlIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JOZXR3b3JrOgorICAgICAgICByZXR1cm4g
V0VCS0lUX0RPV05MT0FEX0VSUk9SX05FVFdPUks7CisgICAgY2FzZSBXZWJDb3JlOjpEb3dubG9h
ZEVycm9yQ2FuY2VsbGVkQnlVc2VyOgorICAgICAgICByZXR1cm4gV0VCS0lUX0RPV05MT0FEX0VS
Uk9SX0NBTkNFTExFRF9CWV9VU0VSOworICAgIGNhc2UgV2ViQ29yZTo6RG93bmxvYWRFcnJvckRl
c3RpbmF0aW9uOgorICAgICAgICByZXR1cm4gV0VCS0lUX0RPV05MT0FEX0VSUk9SX0RFU1RJTkFU
SU9OOworICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvckdlbmVyYWw6CisgICAgICAgIHJldHVy
biBXRUJLSVRfUFJJTlRfRVJST1JfR0VORVJBTDsKKyAgICBjYXNlIFdlYkNvcmU6OlByaW50RXJy
b3JQcmludGVyTm90Rm91bmQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUFJJTlRfRVJST1JfUFJJ
TlRFUl9OT1RfRk9VTkQ7CisgICAgY2FzZSBXZWJDb3JlOjpQcmludEVycm9ySW52YWxpZFBhZ2VS
YW5nZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUklOVF9FUlJPUl9JTlZBTElEX1BBR0VfUkFO
R0U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlMRUQ7CisgICAgfQorfQorCitpbmxpbmUg
dW5zaWduZWQgdG9XZWJDb3JlRXJyb3IodW5zaWduZWQgd2ViS2l0RXJyb3IpCit7CisgICAgc3dp
dGNoICh3ZWJLaXRFcnJvcikgeworICAgIGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfRkFJTEVE
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0d29ya0Vycm9yRmFpbGVkOworICAgIGNhc2Ug
V0VCS0lUX05FVFdPUktfRVJST1JfVFJBTlNQT1JUOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6
TmV0d29ya0Vycm9yVHJhbnNwb3J0OworICAgIGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfVU5L
Tk9XTl9QUk9UT0NPTDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclVua25v
d25Qcm90b2NvbDsKKyAgICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRDoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckNhbmNlbGxlZDsKKyAgICBjYXNlIFdF
QktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19OT1RfRVhJU1Q6CisgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0OworICAgIGNhc2UgV0VCS0lUX1BP
TElDWV9FUlJPUl9GQUlMRUQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQb2xpY3lFcnJvckZh
aWxlZDsKKyAgICBjYXNlIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBF
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGU7
CisgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSToKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDsKKyAgICBjYXNlIFdFQktJ
VF9QT0xJQ1lfRVJST1JfRlJBTUVfTE9BRF9JTlRFUlJVUFRFRF9CWV9QT0xJQ1lfQ0hBTkdFOgor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5
UG9saWN5Q2hhbmdlOworICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JF
U1RSSUNURURfUE9SVDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90
VXNlUmVzdHJpY3RlZFBvcnQ7CisgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxFRDoK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yRmFpbGVkOworICAgIGNhc2UgV0VC
S0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU46CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW47CisgICAgY2FzZSBXRUJLSVRfUExVR0lO
X0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdp
bkVycm9yQ2Fubm90TG9hZFBsdWdpbjsKKyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfSkFW
QV9VTkFWQUlMQUJMRToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9ySmF2YVVu
YXZhaWxhYmxlOworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNF
TExFRDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNl
bGxlZDsKKyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQ7CisgICAgY2Fz
ZSBXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkRvd25sb2FkRXJyb3JOZXR3b3JrOworICAgIGNhc2UgV0VCS0lUX0RPV05MT0FEX0VSUk9SX0NB
TkNFTExFRF9CWV9VU0VSOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RG93bmxvYWRFcnJvckNh
bmNlbGxlZEJ5VXNlcjsKKyAgICBjYXNlIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ERVNUSU5BVElP
TjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JEZXN0aW5hdGlvbjsKKyAg
ICBjYXNlIFdFQktJVF9QUklOVF9FUlJPUl9HRU5FUkFMOgorICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6UHJpbnRFcnJvckdlbmVyYWw7CisgICAgY2FzZSBXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRF
Ul9OT1RfRk9VTkQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQcmludEVycm9yUHJpbnRlck5v
dEZvdW5kOworICAgIGNhc2UgV0VCS0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRToK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6TmV0d29ya0Vycm9yRmFpbGVkOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaAppbmRleCBiZDA2MGVkMzI5ZjFi
MmYwOGI2OGMxODUxYjFiNjkyZDNlZjkyY2EzLi4zMTViZDE2YmZjMDNlMDdhMmIyODJiZTFjYzNi
ZjVlYWMyMjgwNjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UHJpdmF0ZS5oCkBAIC00OSw5ICs0OSw2IEBACiAjZGVmaW5lIFdFQktJVF9QQVJBTV9X
UklUQUJMRSAoc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KEdfUEFSQU1fV1JJVEFCTEUgfCBHX1BB
UkFNX1NUQVRJQ19OQU1FIHwgR19QQVJBTV9TVEFUSUNfTklDSyB8IEdfUEFSQU1fU1RBVElDX0JM
VVJCKSkKICNkZWZpbmUgV0VCS0lUX1BBUkFNX1JFQURXUklURSAoc3RhdGljX2Nhc3Q8R1BhcmFt
RmxhZ3M+KEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9TVEFUSUNfTkFNRSB8IEdfUEFSQU1f
U1RBVElDX05JQ0sgfCBHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAKLSNkZWZpbmUgQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTSh3ZWJraXROYW1lLCB3ZWJjb3JlTmFtZSkgXAotICAgICAgICBD
T01QSUxFX0FTU0VSVChpbnQod2Via2l0TmFtZSkgPT0gaW50KHdlYmNvcmVOYW1lKSwgbWlzbWF0
Y2hpbmdFbnVtcykKLQogI2RlZmluZSBXRUJLSVRfREVGSU5FX0FTWU5DX0RBVEFfU1RSVUNUKHN0
cnVjdE5hbWUpIFwKIHN0YXRpYyBzdHJ1Y3ROYW1lKiBjcmVhdGUjI3N0cnVjdE5hbWUoKSBcCiB7
IFwKQEAgLTExOCw2ICsxMTUsOCBAQCBHVHlwZSB0eXBlX25hbWUjI19nZXRfdHlwZSh2b2lkKSBc
CiAKIHVuc2lnbmVkIHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhXS0V2ZW50TW9kaWZp
ZXJzKTsKIHVuc2lnbmVkIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91c2VCdXR0b24oV0tF
dmVudE1vdXNlQnV0dG9uKTsKK3Vuc2lnbmVkIHRvV2ViS2l0RXJyb3IodW5zaWduZWQgd2ViQ29y
ZUVycm9yKTsKK3Vuc2lnbmVkIHRvV2ViQ29yZUVycm9yKHVuc2lnbmVkIHdlYktpdEVycm9yKTsK
IAogZW51bSBTbmFwc2hvdFJlZ2lvbiB7CiAgICAgU25hcHNob3RSZWdpb25WaXNpYmxlLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LmNwcAppbmRleCA2ZDhjNjg0MTg0MmU4NmI0YzUxNmE5NGQwZDMxZjg3MTI1
NWJkYjNkLi5mYzhiNGI2NWNjYzZmNDZhZjgzNDRhZjY2MDZhMDg5NmVkZGEwMjAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgIldlYktpdFVSSVNj
aGVtZVJlcXVlc3QuaCIKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIKKyNpbmNsdWRlICJXZWJLaXRQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZp
ZXcuaCIKQEAgLTIzMCw3ICsyMzEsNyBAQCB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoX2Vycm9yKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIEdFcgogCiAgICAg
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogCi0g
ICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdfcXVhcmtfdG9fc3RyaW5n
KGVycm9yLT5kb21haW4pLCBlcnJvci0+Y29kZSwgcHJpdi0+dXJpLmRhdGEoKSwgU3RyaW5nOjpm
cm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOworICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcmVz
b3VyY2VFcnJvcihnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSwgdG9XZWJDb3JlRXJy
b3IoZXJyb3ItPmNvZGUpLCBwcml2LT51cmkuZGF0YSgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9y
LT5tZXNzYWdlKSk7CiAgICAgcHJpdi0+d2ViUmVxdWVzdE1hbmFnZXItPmRpZEZhaWxXaXRoRXJy
b3IocHJpdi0+cmVxdWVzdElELCByZXNvdXJjZUVycm9yKTsKICAgICB3ZWJraXRXZWJDb250ZXh0
RGlkRmluaXNoTG9hZGluZ0N1c3RvbVByb3RvY29sKHByaXYtPndlYkNvbnRleHQsIHByaXYtPnJl
cXVlc3RJRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDNiZDg5MzA4ODgzYjIzNTNmZGNjYjI4NmYwMjQz
ZTEyYTY3MTkwNjguLjJiZmIzODQwOWQxNWQwNTRmNDEzZmJkNjQyOGM1YmViN2M2OTM4ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuY3BwCkBAIC0xNjUsNiArMTY1LDMyIEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xBU1Rf
U0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdFdlYkNvbnRleHQs
IHdlYmtpdF93ZWJfY29udGV4dCwgR19UWVBFX09CSkVDVCkKIAoraW5saW5lIHN0YXRpYyBXZWJL
aXQ6OlByb2Nlc3NNb2RlbCB0b1Byb2Nlc3NNb2RlbChXZWJLaXRQcm9jZXNzTW9kZWwgd2ViS2l0
UHJvY2Vzc01vZGVsKQoreworICAgIHN3aXRjaCAod2ViS2l0UHJvY2Vzc01vZGVsKSB7CisgICAg
Y2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M6CisgICAg
ICAgIHJldHVybiBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOworICAgIGNhc2Ug
V0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzoKKyAgICAg
ICAgcmV0dXJuIFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gUHJv
Y2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczsKKyAgICB9Cit9CisKK2lubGluZSBzdGF0
aWMgV2ViS2l0UHJvY2Vzc01vZGVsIHRvV2ViS2l0UHJvY2Vzc01vZGVsKFdlYktpdDo6UHJvY2Vz
c01vZGVsIHByb2Nlc3NNb2RlbCkKK3sKKyAgICBzd2l0Y2ggKHByb2Nlc3NNb2RlbCkgeworICAg
IGNhc2UgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzsKKyAgICBjYXNl
IFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgorICAgICAgICByZXR1cm4g
V0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzsKKyAgICB9Cit9CisK
IHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KFdlYktpdFdlYkNvbnRl
eHRDbGFzcyogd2ViQ29udGV4dENsYXNzKQogewogICAgIEdPYmplY3RDbGFzcyogZ09iamVjdENs
YXNzID0gR19PQkpFQ1RfQ0xBU1Mod2ViQ29udGV4dENsYXNzKTsKQEAgLTkxNywxOCArOTQzLDcg
QEAgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29u
dGV4dCogY29udGV4dCwgV2ViS2l0UHJvY2UKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7CiAKLSAgICBQcm9jZXNzTW9kZWwgbmV3UHJvY2Vz
c01vZGVsOwotCi0gICAgc3dpdGNoIChwcm9jZXNzTW9kZWwpIHsKLSAgICBjYXNlIFdFQktJVF9Q
Uk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzoKLSAgICAgICAgbmV3UHJvY2Vz
c01vZGVsID0gUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJP
Q0VTU0VTOgotICAgICAgICBuZXdQcm9jZXNzTW9kZWwgPSBQcm9jZXNzTW9kZWxNdWx0aXBsZVNl
Y29uZGFyeVByb2Nlc3NlczsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
Z19hc3NlcnRfbm90X3JlYWNoZWQoKTsKLSAgICB9CisgICAgUHJvY2Vzc01vZGVsIG5ld1Byb2Nl
c3NNb2RlbCh0b1Byb2Nlc3NNb2RlbChwcm9jZXNzTW9kZWwpKTsKIAogICAgIGlmIChuZXdQcm9j
ZXNzTW9kZWwgPT0gY29udGV4dC0+cHJpdi0+Y29udGV4dC0+cHJvY2Vzc01vZGVsKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTk1MiwxNCArOTY3LDcgQEAgV2ViS2l0UHJvY2Vzc01vZGVsIHdlYmtp
dF93ZWJfY29udGV4dF9nZXRfcHJvY2Vzc19tb2RlbChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXgK
IHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4
dCksIFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUyk7CiAKLSAg
ICBzd2l0Y2ggKGNvbnRleHQtPnByaXYtPmNvbnRleHQtPnByb2Nlc3NNb2RlbCgpKSB7Ci0gICAg
Y2FzZSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOgotICAgICAgICByZXR1cm4g
V0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOwotICAgIGNhc2Ug
UHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXM6Ci0gICAgICAgIHJldHVybiBX
RUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTOwotICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7Ci0gICAgfQorICAgIHJldHVy
biB0b1dlYktpdFByb2Nlc3NNb2RlbChjb250ZXh0LT5wcml2LT5jb250ZXh0LT5wcm9jZXNzTW9k
ZWwoKSk7CiB9CiAKIFdlYktpdERvd25sb2FkKiB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVE
b3dubG9hZChEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCA4ZjcyOTBiOTMw
MDc0ZWU0ZmU5NmE3ZWE1ODlkNDFjYzRmZDdlYjU0Li5mN2UxM2ZkMjZlMzZkYzI1YWFhODU1OTVi
ZWZmMjA3OWIwYzdmNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMzEwNiw5ICszMTA2LDYgQEAgdm9pZCB3ZWJLaXRX
ZWJWaWV3RGlkUmVjZWl2ZVNuYXBzaG90KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIHVpbnQ2NF90
IGNhbGxiYWNrSUQKICAgICAgICAgZ190YXNrX3JldHVybl9wb2ludGVyKHRhc2suZ2V0KCksIDAs
IDApOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9TTkFQU0hPVF9S
RUdJT05fVklTSUJMRSwgU25hcHNob3RSZWdpb25WaXNpYmxlKTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9GVUxMX0RPQ1VNRU5ULCBTbmFwc2hv
dFJlZ2lvbkZ1bGxEb2N1bWVudCk7Ci0KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgd2ViS2l0U25h
cHNob3RPcHRpb25zVG9TbmFwc2hvdE9wdGlvbnMoV2ViS2l0U25hcHNob3RPcHRpb25zIG9wdGlv
bnMpCiB7CiAgICAgU25hcHNob3RPcHRpb25zIHNuYXBzaG90T3B0aW9ucyA9IDA7CkBAIC0zMTE5
LDYgKzMxMTYsMTkgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCB3ZWJLaXRTbmFwc2hvdE9wdGlv
bnNUb1NuYXBzaG90T3B0aW9ucyhXZWJLaXRTbmFwc2hvdE9wdGkKICAgICByZXR1cm4gc25hcHNo
b3RPcHRpb25zOwogfQogCitzdGF0aWMgaW5saW5lIFNuYXBzaG90UmVnaW9uIHRvU25hcHNob3RS
ZWdpb24oV2ViS2l0U25hcHNob3RSZWdpb24gcmVnaW9uKQoreworICAgIHN3aXRjaCAocmVnaW9u
KSB7CisgICAgY2FzZSBXRUJLSVRfU05BUFNIT1RfUkVHSU9OX1ZJU0lCTEU6CisgICAgICAgIHJl
dHVybiBTbmFwc2hvdFJlZ2lvblZpc2libGU7CisgICAgY2FzZSBXRUJLSVRfU05BUFNIT1RfUkVH
SU9OX0ZVTExfRE9DVU1FTlQ6CisgICAgICAgIHJldHVybiBTbmFwc2hvdFJlZ2lvbkZ1bGxEb2N1
bWVudDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIFNuYXBzaG90UmVnaW9uVmlzaWJsZTsKKyAgICB9Cit9CisKIHN0YXRpYyBpbmxp
bmUgdWludDY0X3QgZ2VuZXJhdGVTbmFwc2hvdENhbGxiYWNrSUQoKQogewogICAgIHN0YXRpYyB1
aW50NjRfdCB1bmlxdWVDYWxsYmFja0lEID0gMTsKQEAgLTMxNDgsNyArMzE1OCw3IEBAIHZvaWQg
d2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJL
aXRTbmFwc2hvdFJlZ2lvbiByCiAgICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSBtZXNz
YWdlOwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZVNuYXBzaG90Q2FsbGJhY2tJ
RCgpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlNuYXBzaG90T3B0aW9ucyIp
LCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKHN0YXRpY19jYXN0PHVpbnQ2NF90Pih3ZWJLaXRTbmFwc2hv
dE9wdGlvbnNUb1NuYXBzaG90T3B0aW9ucyhvcHRpb25zKSkpKTsKLSAgICBtZXNzYWdlLnNldChT
dHJpbmc6OmZyb21VVEY4KCJTbmFwc2hvdFJlZ2lvbiIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKHN0
YXRpY19jYXN0PHVpbnQ2NF90PihyZWdpb24pKSk7CisgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpm
cm9tVVRGOCgiU25hcHNob3RSZWdpb24iKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShzdGF0aWNfY2Fz
dDx1aW50NjRfdD4odG9TbmFwc2hvdFJlZ2lvbihyZWdpb24pKSkpOwogICAgIG1lc3NhZ2Uuc2V0
KFN0cmluZzo6ZnJvbVVURjgoIkNhbGxiYWNrSUQiKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShjYWxs
YmFja0lEKSk7CiAKICAgICB3ZWJWaWV3LT5wcml2LT5zbmFwc2hvdFJlc3VsdHNNYXAuc2V0KGNh
bGxiYWNrSUQsIGFkb3B0R1JlZihnX3Rhc2tfbmV3KHdlYlZpZXcsIGNhbmNlbGxhYmxlLCBjYWxs
YmFjaywgdXNlckRhdGEpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3R3JvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0dyb3VwLmNwcAppbmRleCAyODllY2RmMDM2YmFkZDZjNjdh
MjVjZGNjZmEzZmIyNTdmZjYxNGIyLi5iMTU2OGNlYTgyNjFjZWFlODE0NjkzMzM1MDllZTZjZDQz
N2Q1YzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdHcm91cC5jcHAKQEAgLTY3LDYgKzY3LDE5IEBAIHN0cnVjdCBfV2ViS2l0
V2ViVmlld0dyb3VwUHJpdmF0ZSB7CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRXZWJWaWV3
R3JvdXAsIHdlYmtpdF93ZWJfdmlld19ncm91cCwgR19UWVBFX09CSkVDVCkKIAoraW5saW5lIHN0
YXRpYyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIHRvV2ViQ29yZVVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMoV2ViS2l0SW5qZWN0ZWRDb250ZW50RnJhbWVzIGtpdEZyYW1lcykK
K3sKKyAgICBzd2l0Y2ggKGtpdEZyYW1lcykgeworICAgIGNhc2UgV0VCS0lUX0lOSkVDVEVEX0NP
TlRFTlRfRlJBTUVTX0FMTDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkluamVjdEluQWxsRnJh
bWVzOworICAgIGNhc2UgV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRfRlJBTUVTX1RPUF9PTkxZOgor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0SW5Ub3BGcmFtZU9ubHk7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpJbmplY3RJbkFsbEZyYW1lczsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZp
ZXdHcm91cFNldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25zdCBH
VmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwYXJhbVNwZWMpCiB7CiAgICAgV2ViS2l0V2ViVmll
d0dyb3VwKiBncm91cCA9IFdFQktJVF9XRUJfVklFV19HUk9VUChvYmplY3QpOwpAQCAtMjI0LDkg
KzIzNyw2IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X2dyb3VwX3NldF9zZXR0aW5ncyhXZWJLaXRX
ZWJWaWV3R3JvdXAqIGdyb3VwLCBXZWJLaXRTZXR0aW5nCiAgICAgZ19vYmplY3Rfbm90aWZ5KEdf
T0JKRUNUKGdyb3VwKSwgInNldHRpbmdzIik7CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRfRlJBTUVTX0FMTCwgV2ViQ29yZTo6SW5qZWN0
SW5BbGxGcmFtZXMpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfSU5KRUNU
RURfQ09OVEVOVF9GUkFNRVNfVE9QX09OTFksIFdlYkNvcmU6OkluamVjdEluVG9wRnJhbWVPbmx5
KTsKLQogc3RhdGljIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gdG9BUElBcnJheShjb25zdCBjaGFy
KiBjb25zdCogbGlzdCkKIHsKICAgICBpZiAoIWxpc3QpCkBAIC0yNzAsNyArMjgwLDcgQEAgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfZ3JvdXBfYWRkX3VzZXJfc3R5bGVfc2hlZXQoV2ViS2l0V2ViVmll
d0dyb3VwKiBncm91cCwgY29uc3QKICAgICAgICAgU3RyaW5nOjpmcm9tVVRGOChiYXNlVVJJKSwK
ICAgICAgICAgd2ViV2hpdGVsaXN0LmdldCgpLAogICAgICAgICB3ZWJCbGFja2xpc3QuZ2V0KCks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM+
KGluamVjdGVkRnJhbWVzKSwKKyAgICAgICAgdG9XZWJDb3JlVXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lcyhpbmplY3RlZEZyYW1lcyksCiAgICAgICAgIFdlYkNvcmU6OlVzZXJTdHlsZVVzZXJMZXZl
bCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224756</attachid>
            <date>2014-02-20 08:28:46 -0800</date>
            <delta_ts>2014-02-20 08:42:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127800-20140220162844.patch</filename>
            <type>text/plain</type>
            <size>70860</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMxZTlmNjc1MzQzYjAxODFm
YTQ3NDkyOWI1NjFlMjZjOWZhMDliZmQuLjBiYTBlNGU2MmEzYWFhYWJiMTIwYTRmNTMzMmFlMTBi
NTg4M2FkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDItMjAgIEVucmlxdWUg
T2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXRH
VEsrIHNob3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRm
b3JtR1RLLmNtYWtlOiBSZW1vdmVkIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwCisKIDIwMTQtMDIt
MTggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2hhbmdpbmcg
c2VsZWN0aW9uIHNob3VsZG4ndCBzeW5jaHJvbm91c2x5IHVwZGF0ZSBlZGl0b3IgVUkgY29tcG9u
ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGFmYTVlY2JmYzJlY2U1OGY0ZjUwZGZhZTI0ZjMwM2Yy
MmQ5ZmNmMmMuLjUzNmE5NmJhMmZiMjlhNzkzMmE2NDQ0ZDU3NWJlYTI4OTY0ZDFlNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNC0wMi0yMCAgRW5yaXF1ZSBPY2HDsWEg
R29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYktpdEdUSysgc2hv
dWxkIHN0b3AgdXNpbmcgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSBtYWNyb3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
YW06IFJlbW92ZWQgQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVk
IHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1dlYkNvcmVGaW5kT3B0aW9ucyk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpbmRTdHJpbmcpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDogRGVmaW5lZCBhbmQgYXBwbGll
ZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoV2ViS2l0Ojp0b1dlYktpdE5ldHdvcmtFcnJv
cik6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxM
b2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
RmFpbExvYWQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFs
bEJhY2spOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDog
RGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoV2ViS2l0Ojpr
aXQpOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAg
ICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDog
RGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoY29weUd0a1Rh
cmdldExpc3RDb252ZXJ0aW5nV2ViQ29yZUVudW1WYWx1ZXNUb1dlYktpdEVudW1WYWx1ZXMpOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UpOgorICAgICAgICAod2Via2l0X3dlYl92
aWV3X2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0
KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3QpOgorICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOiBBZGRlZCB0YXJnZXRMaXN0IHBy
aXZhdGUgZmllbGQsIHdoaWNoIG1pcnJvcnMgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3Rl
Ym9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdCgpIGJ1dCB3aXRoIHRoZSBmbGFncyBjb252ZXJ0ZWQg
dG8gV2ViS2l0V2ViVmlld1RhcmdldEluZm8KKwogMjAxNC0wMi0xNyAgU2VyZ2lvIENvcnJlaWEg
IDxzZXJnaW8uY29ycmVpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJlcGxhY2UgdXNlcyBv
ZiBQYXNzT3duUHRyL093blB0ciB3aXRoIHN0ZDo6dW5pcXVlX3B0ciBpbiBXZWJDb3JlL2luc3Bl
Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGU2NzI5YTNmYmU5ZjVjMDRhMzFjMmFhZTdlMzQ3OWE5NzQwNTQ0
ZjkuLmRhNDliNzdiN2UwYmVjZjExYWFhMjJiMzJiZDdjNzhjYzQ2NmIzNWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2MSBAQAorMjAxNC0wMi0yMCAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8
ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYktpdEdUSysgc2hvdWxkIHN0b3AgdXNp
bmcgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSBtYWNyb3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZl
cnNpb25zLgorICAgICAgICAod2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3NjaGVt
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5jcHA6
IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViS2l0
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6
CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X3BlcnNpc3RlbnRfc3RvcmFnZSk6
CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X2FjY2VwdF9wb2xpY3kpOgorICAg
ICAgICAod2Via2l0Q29va2llTWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcDogRGVmaW5lZCBhbmQg
YXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRDcmVkZW50aWFsUGVy
c2lzdGVuY2UpOgorICAgICAgICAodG9XZWJDb3JlQ3JlZGVudGlhbFBlcnNpc3RlbmNlKToKKyAg
ICAgICAgKHdlYmtpdF9jcmVkZW50aWFsX25ldyk6CisgICAgICAgICh3ZWJraXRfY3JlZGVudGlh
bF9nZXRfcGVyc2lzdGVuY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERv
d25sb2FkLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAg
ICAod2Via2l0RG93bmxvYWRGYWlsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEVycm9yLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcDogRGVmaW5l
ZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRGaW5kT3B0
aW9ucyk6CisgICAgICAgICh3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0pOgorICAgICAgICAo
d2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4dCk6CisgICAgICAgICh3ZWJraXRfZmlu
ZF9jb250cm9sbGVyX3NlYXJjaF9wcmV2aW91cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaDogQWRkZWQgbmV3IHByaXZhdGUgZmllbGRzIHRvIHRo
ZSBlbnVtLCBuZWVkZWQgdG8gbWF0Y2ggY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChkaWRSZWNlaXZlV2ViVmlld01lc3NhZ2VG
cm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExv
YWRlckNsaWVudC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAg
ICAgICAgKGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAg
IChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UG9saWN5Q2xpZW50LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgor
ICAgICAgICAodG9XZWJLaXROYXZpZ2F0aW9uVHlwZSk6CisgICAgICAgIChkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24u
Y3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChkcmF3
UGFnZXNGb3JQcmludGluZ0NvbXBsZXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UHJpdmF0ZS5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4K
KyAgICAgICAgKHRvV2ViS2l0RXJyb3IpOgorICAgICAgICAodG9XZWJDb3JlRXJyb3IpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaDogRGVmaW5lZCBhbmQgYXBw
bGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3QuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lv
bnMuCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHA6IERlZmluZWQg
YW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViS2l0UHJvY2Vzc01v
ZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2RlbCk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVk
IHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1NuYXBzaG90UmVnaW9uKToKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252
ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViQ29yZVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KToKKwog
MjAxNC0wMi0xOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAxY2IyMTg0ZWVhZTIxMTU2
YWEyNjU3MWMwYjIyYWM3MjMxOGMwMWFkLi42MjgwMTI4NThmNDQ5MzBlYzQyYjRlMDliNjUyZWQ3
OTMzMGY5ODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQwLDcgKzQwLDYgQEAgbGlz
dChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRHVEtf
QVBJX0RJUn0vd2Via2l0bWFyc2hhbC5jcHAKIAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9BY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAotICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCiAgICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNw
cAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRHdGsuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0dOVW1ha2VmaWxlLmFtCmluZGV4IDY0ZWQ1M2UzOTRkZTIxMDQ2YjllMWM3YTBlZjE2Nzkz
MzliYTEzZmUuLmQ1M2YxYjBjMGY4NTQ3MjE4MDZkNjZiYTJhMGUxOWFjMmIzNWYxNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0dOVW1ha2VmaWxlLmFtCkBAIC0xOTAsNyArMTkwLDYgQEAgQlVJTFRfU09VUkNFUyAr
PSAkKHdlYmtpdGd0a19idWlsdF9zb3VyY2VzKQogd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0R0wuY3BwIFwKLQlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQmF0dGVyeUNsaWVudEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0JhdHRlcnlDbGllbnRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMmZlODA5ZWRhMDlmYzEyYzgxMjgzMGYxYTMxOTkxOWNmZjQ2ODEw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTEgQ29sbGFi
b3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLS8vIFVzZSB0aGlzIGZp
bGUgdG8gYXNzZXJ0IHRoYXQgdmFyaW91cyBXZWJLaXQgQVBJIGVudW0gdmFsdWVzIGNvbnRpbnVl
Ci0vLyBtYXRjaGluZyBXZWJDb3JlIGRlZmluZWQgZW51bSB2YWx1ZXMuCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLQotI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgotI2luY2x1
ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCi0jaW5j
bHVkZSAiRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCi0jaW5j
bHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgotI2luY2x1ZGUgIndlYmtpdGVycm9yLmgiCi0jaW5j
bHVkZSAid2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnNl
dHRpbmdzLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgotI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+Ci0KLSNkZWZpbmUgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSh3ZWJraXRf
bmFtZSwgd2ViY29yZV9uYW1lKSBcCi0gICAgQ09NUElMRV9BU1NFUlQoaW50KHdlYmtpdF9uYW1l
KSA9PSBpbnQoV2ViQ29yZTo6d2ViY29yZV9uYW1lKSwgbWlzbWF0Y2hpbmdfZW51bXMpCi0KLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfTUFDLCBF
ZGl0aW5nTWFjQmVoYXZpb3IpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
RURJVElOR19CRUhBVklPUl9XSU5ET1dTLCBFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKLUNPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfVU5JWCwgRWRp
dGluZ1VuaXhCZWhhdmlvcik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQsIE5hdmlnYXRpb25UeXBlTGlua0Ns
aWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklHQVRJ
T05fUkVBU09OX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQpOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09O
X0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fUkVMT0FELCBOYXZp
Z2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9X
RUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5cGVGb3Jt
UmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05B
VklHQVRJT05fUkVBU09OX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zQXRXb3JkU3RhcnRzLCBB
dFdvcmRTdGFydHMpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZp
bmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQsIFRyZWF0TWVkaWFsQ2FwaXRh
bEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViS2l0OjpXZWJG
aW5kT3B0aW9uc0JhY2t3YXJkcywgQmFja3dhcmRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViS2l0OjpXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQsIFdyYXBBcm91bmQpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zU3RhcnRJblNl
bGVjdGlvbiwgU3RhcnRJblNlbGVjdGlvbik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUwsIFBhc3RlYm9hcmRIZWxwZXI6OlRh
cmdldFR5cGVNYXJrdXApOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VC
X1ZJRVdfVEFSR0VUX0lORk9fVEVYVCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQp
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lO
Rk9fSU1BR0UsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVJbWFnZSk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19VUklfTElTVCwg
UGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3QpOwotQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fTkVUU0NBUEVfVVJMLCBQYXN0
ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTmV0c2NhcGVVUkwpOwotCi1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRCwgTmV0d29ya0Vycm9yRmFp
bGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJST1Jf
VFJBTlNQT1JULCBOZXR3b3JrRXJyb3JUcmFuc3BvcnQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MLCBOZXR3b3JrRXJy
b3JVbmtub3duUHJvdG9jb2wpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
TkVUV09SS19FUlJPUl9DQU5DRUxMRUQsIE5ldHdvcmtFcnJvckNhbmNlbGxlZCk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19OT1Rf
RVhJU1QsIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QpOwotCi1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVELCBQb2xpY3lFcnJvckZhaWxl
ZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FO
Tk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSk7Ci1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1df
VVJMLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZ
X0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlKTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1Rf
VVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCk7
Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlM
RUQsIFBsdWdpbkVycm9yRmFpbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU4sIFBsdWdpbkVycm9yQ2Fubm90Rmlu
ZFBsdWdpbik7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJS
T1JfQ0FOTk9UX0xPQURfUExVR0lOLCBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVnaW4pOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5BVkFJ
TEFCTEUsIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNFTExFRCwgUGx1Z2lu
RXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FELCBQbHVnaW5FcnJvcldpbGxIYW5k
bGVMb2FkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDlkZDllNzE0ZDY0MzIzOWU5
NTg4NTExYWEyYzUwMzhmMmM1YjFiZmEuLmY0NTg3N2MwZmU2Y2ExOWFlOTEzZjkyYjI1NWUwN2Ri
YmEwNzdkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtODYsNiArODYsMTYgQEAg
Ym9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW4g
PSB0cnVlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpGcmFtZUxvYWRFdmVudENhbGxiYWNr
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRFdmVudENhbGxiYWNrID0gMDsK
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGljYXRpb25DYWxsYmFjayBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxsYmFjayA9IDA7CiAKK3N0YXRp
YyBpbmxpbmUgV2ViQ29yZTo6RmluZE9wdGlvbnMgdG9XZWJDb3JlRmluZE9wdGlvbnMoV2ViS2l0
RmluZE9wdGlvbnMgdHlwZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Rmlu
ZE9wdGlvbnM+KCh0eXBlICYgV2ViRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgPyBDYXNlSW5z
ZW5zaXRpdmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNBdFdvcmRTdGFy
dHMgPyBBdFdvcmRTdGFydHMgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNU
cmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCA/IFRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0
YXJ0IDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zQmFja3dhcmRzID8gQmFj
a3dhcmRzIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zV3JhcEFyb3VuZCA/
IFdyYXBBcm91bmQgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNTdGFydElu
U2VsZWN0aW9uID8gU3RhcnRJblNlbGVjdGlvbiA6IDApKTsKK30KKwogRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsoKQogewogfQpAQCAtNDc1LDcgKzQ4
NSw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjbGVhck9wZW5lcihXZWJLaXRX
ZWJGcmFtZSogZnJhbWUpCiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaW5kU3Ry
aW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiB0YXJnZXRTdHJpbmcsIFdl
YktpdEZpbmRPcHRpb25zIGZpbmRPcHRpb25zKQogewotICAgIHJldHVybiBjb3JlKHdlYlZpZXcp
LT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgodGFyZ2V0U3RyaW5nKSwgZmluZE9wdGlvbnMp
OworICAgIHJldHVybiBjb3JlKHdlYlZpZXcpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgo
dGFyZ2V0U3RyaW5nKSwgdG9XZWJDb3JlRmluZE9wdGlvbnMoZmluZE9wdGlvbnMpKTsKIH0KIAog
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFZhbHVlRm9yVXNlcihKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub2RlT2JqZWN0LCBKU1N0cmluZ1JlZiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcAppbmRleCBiMjRlMDg5YzlkMTMxMTJjYTYyYTBjZDAxNGY1YzhhZDZmYzI3
ZTAxLi4yZjhhY2JiM2ZiMGRlOTBkZDU3ZTkwMGRiYjE4ZGFkODgwOWNlNjE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCkBAIC0xMDQsNiArMTA0LDQ3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAoraW5saW5lIGludCB0b1dlYktpdE5ldHdvcmtFcnJvcihp
bnQgZXJyb3JDb2RlKQoreworICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7CisgICAgY2FzZSBOZXR3
b3JrRXJyb3JGYWlsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlM
RUQ7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JUcmFuc3BvcnQ6CisgICAgICAgIHJldHVybiBXRUJL
SVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQ7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JVbmtub3du
UHJvdG9jb2w6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BS
T1RPQ09MOworICAgIGNhc2UgTmV0d29ya0Vycm9yQ2FuY2VsbGVkOgorICAgICAgICByZXR1cm4g
V0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEOworICAgIGNhc2UgTmV0d29ya0Vycm9yRmls
ZURvZXNOb3RFeGlzdDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVf
RE9FU19OT1RfRVhJU1Q7CisgICAgY2FzZSBQb2xpY3lFcnJvckZhaWxlZDoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVEOworICAgIGNhc2UgUG9saWN5RXJyb3JDYW5u
b3RTaG93TWltZVR5cGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5P
VF9TSE9XX01JTUVfVFlQRTsKKyAgICBjYXNlIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDoKKyAg
ICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJMOworICAgIGNh
c2UgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlOgorICAgICAg
ICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BP
TElDWV9DSEFOR0U7CisgICAgY2FzZSBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNU
RURfUE9SVDsKKyAgICBjYXNlIFBsdWdpbkVycm9yRmFpbGVkOgorICAgICAgICByZXR1cm4gV0VC
S0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ7CisgICAgY2FzZSBQbHVnaW5FcnJvckNhbm5vdEZpbmRQ
bHVnaW46CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BM
VUdJTjsKKyAgICBjYXNlIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbjoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOworICAgIGNhc2UgUGx1
Z2luRXJyb3JKYXZhVW5hdmFpbGFibGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VS
Uk9SX0pBVkFfVU5BVkFJTEFCTEU7CisgICAgY2FzZSBQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5j
ZWxsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJT05fQ0FO
Q0VMTEVEOworICAgIGNhc2UgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZDoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRX
T1JLX0VSUk9SX0ZBSUxFRDsKKyAgICB9Cit9CisKIEZyYW1lTG9hZGVyQ2xpZW50OjpGcmFtZUxv
YWRlckNsaWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQog
ICAgICwgbV9wb2xpY3lEZWNpc2lvbigwKQpAQCAtOTkyLDcgKzEwMzMsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyKiBsb2FkZXIsCiAgICAgICAgIHJldHVybjsKIAogICAgIEdVbmlxdWVQdHI8R0Vycm9yPiB3
ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVhcmtfZnJvbV9zdHJpbmcoZXJyb3IuZG9t
YWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIGVycm9yLmVycm9yQ29kZSgpLCBlcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJLaXRO
ZXR3b3JrRXJyb3IoZXJyb3IuZXJyb3JDb2RlKCkpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJSZXNv
dXJjZSwgImxvYWQtZmFpbGVkIiwgd2ViRXJyb3IuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtbG9hZC1mYWlsZWQiLCB3ZWJSZXNvdXJjZSwgd2Vi
RXJyb3IuZ2V0KCkpOwpAQCAtMTAyMCw5ICsxMDYxLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAg
bm90aWZ5U3RhdHVzKG1fZnJhbWUsIFdFQktJVF9MT0FEX0ZBSUxFRCk7CiAKICAgICBXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKwogICAgIEdVbmlx
dWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKAogICAgICAgICBnX3F1
YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICBl
cnJvci5lcnJvckNvZGUoKSwKKyAgICAgICAgdG9XZWJLaXROZXR3b3JrRXJyb3IoZXJyb3IuZXJy
b3JDb2RlKCkpLAogICAgICAgICBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5k
YXRhKCkpKTsKICAgICBnYm9vbGVhbiBpc0hhbmRsZWQgPSBmYWxzZTsKICAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUod2ViVmlldywgImxvYWQtZXJyb3IiLCBtX2ZyYW1lLCBlcnJvci5mYWlsaW5n
VVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCksICZpc0hhbmRsZWQpOwpAQCAtMTA5
NCw3ICsxMTM2LDcgQEAgUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogYm9vbCBGcmFtZUxvYWRl
ckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0g
ICAgcmV0dXJuICEoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSB8fCBlcnJvci5lcnJvckNvZGUoKSA9
PSBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NI
QU5HRSB8fCBlcnJvci5lcnJvckNvZGUoKSA9PSBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExfSEFO
RExFX0xPQUQpOworICAgIHJldHVybiAhKGVycm9yLmlzQ2FuY2VsbGF0aW9uKCkgfHwgZXJyb3Iu
ZXJyb3JDb2RlKCkgPT0gUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hh
bmdlIHx8IGVycm9yLmVycm9yQ29kZSgpID09IFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQpOwog
fQogCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24u
Y3BwCmluZGV4IGM3OGU3NTRhZWVjYmU1YTJmY2QzY2QyMmY4YzFkZWQ0NDgzZDk0MTEuLmFkNmYw
YzhmNGQwMWU5OWIzN2VmYWRlMWQxYjE1MWI5NTNmMjBmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKQEAgLTM2
NCwxMiArMzY0LDQ0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRXZWJOYXZpZ2F0aW9u
UmVhc29uIGtpdChXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQogewotICAgIHJldHVybiAo
V2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbil0eXBlOworICAgIHN3aXRjaCh0eXBlKSB7CisgICAg
Y2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkOgorICAgICAgICByZXR1cm4g
V0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQ7CisgICAgY2FzZSBXZWJD
b3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRf
V0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVEOworICAgIGNhc2UgV2ViQ29yZTo6
TmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJfTkFW
SUdBVElPTl9SRUFTT05fQkFDS19GT1JXQVJEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdhdGlv
blR5cGVSZWxvYWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09O
X1JFTE9BRDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVk
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9GT1JNX1JFU1VC
TUlUVEVEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAg
cmV0dXJuIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fT1RIRVI7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VC
X05BVklHQVRJT05fUkVBU09OX0xJTktfQ0xJQ0tFRDsKKyAgICB9CiB9CiAKIFdlYkNvcmU6Ok5h
dmlnYXRpb25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiB0eXBlKQogewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZT4odHlwZSk7CisgICAg
c3dpdGNoKHR5cGUpIHsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fTElO
S19DTElDS0VEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVMaW5rQ2xp
Y2tlZDsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9TVUJNSVRU
RUQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ7
CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0JBQ0tfRk9SV0FSRDoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlQmFja0ZvcndhcmQ7CisgICAgY2Fz
ZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX1JFTE9BRDoKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Ok5hdmlnYXRpb25UeXBlUmVsb2FkOworICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJR0FU
SU9OX1JFQVNPTl9GT1JNX1JFU1VCTUlUVEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2
aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQ7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJ
T05fUkVBU09OX09USEVSOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVP
dGhlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQ7CisgICAgfQogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApp
bmRleCA3NDJiMjNkNDBhZDU0NzgzMzJkNDFjOGMyYjI3YTNmZTZlMTRhOTBkLi5jMTNiYzBlZGZh
YTEzZGQ1NmM1YmU4MTdlYzRlZmYyOThkNmY0YjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKQEAgLTE2NTgsOSArMTY1OCwxOSBAQCBjaGFy
KiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShXZWJLaXRXZWJTZXR0aW5ncyogd2Vi
U2V0dGluZ3MsIGNvbnN0IGNoYQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViQ29yZTo6RWRp
dGluZ0JlaGF2aW9yVHlwZSBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciB0eXBlKQoraW5saW5l
IFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5cGUgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3Ig
dHlwZSkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9y
VHlwZT4odHlwZSk7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBXRUJLSVRfRURJVElO
R19CRUhBVklPUl9NQUM6CisgICAgICAgIHJldHVybiBFZGl0aW5nTWFjQmVoYXZpb3I7CisgICAg
Y2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9XSU5ET1dTOgorICAgICAgICByZXR1cm4gRWRp
dGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICBjYXNlIFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX1VO
SVg6CisgICAgICAgIHJldHVybiBFZGl0aW5nVW5peEJlaGF2aW9yOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gRWRpdGluZ01hY0Jl
aGF2aW9yOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCmluZGV4IDQ4ZjE1YzljZDhmODk5NzY0Y2YwN2ZlODEyYjlmYjI0MGYwYTllMGMu
LjFhMmIwMTczMTY2OTdmZGE1ZGYzOWQ2Y2I2Y2FkZTE5YWY5OTRhOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTExOSw2ICsxMTksNyBAQAogI2lu
Y2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMu
aD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQpAQCAtMjgyLDYgKzI4Myw0NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0
dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1Bhcgogc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF93aW5kb3dfZmVhdHVyZXMoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzKTsKIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdEaXJlY3Rpb25DaGFuZ2VkKFdlYktpdFdlYlZpZXcqLCBH
dGtUZXh0RGlyZWN0aW9uIHByZXZpb3VzRGlyZWN0aW9uLCBncG9pbnRlcik7CiAKK3N0YXRpYyBp
bmxpbmUgV2ViS2l0V2ViVmlld1RhcmdldEluZm8gdG9XZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyhQ
YXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0VHlwZSBmbGFncykKK3sKKyAgICBzd2l0
Y2ggKGZsYWdzKSB7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTWFya3Vw
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUw7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQ6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlSW1hZ2U6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSU1BR0U7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3Q6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVVJJX0xJU1Q7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZU5ldHNjYXBlVVJM
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX05FVFNDQVBFX1VS
TDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTDsK
KyAgICB9Cit9CisKK3N0YXRpYyBHdGtUYXJnZXRMaXN0KiBjb3B5R3RrVGFyZ2V0TGlzdENvbnZl
cnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhHdGtUYXJnZXRMaXN0KiBj
b3JlR3RrVGFyZ2V0TGlzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlR3RrVGFy
Z2V0TGlzdCwgbnVsbHB0cik7CisKKyAgICBHdGtUYXJnZXRMaXN0KiB0YXJnZXRMaXN0V2l0aFdl
YktpdEVudW1WYWx1ZXMgPSBudWxscHRyOworICAgIGludCB0YWJsZVNpemUgPSAwOworICAgIEd0
a1RhcmdldEVudHJ5KiB0YWJsZShndGtfdGFyZ2V0X3RhYmxlX25ld19mcm9tX2xpc3QoY29yZUd0
a1RhcmdldExpc3QsICZ0YWJsZVNpemUpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFi
bGVTaXplOyBpKyspCisgICAgICAgIHRhYmxlW2ldLmZsYWdzID0gdG9XZWJLaXRXZWJWaWV3VGFy
Z2V0SW5mbyhzdGF0aWNfY2FzdDxQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0VHlw
ZT4odGFibGVbaV0uZmxhZ3MpKTsKKworICAgIHRhcmdldExpc3RXaXRoV2ViS2l0RW51bVZhbHVl
cyA9IGd0a190YXJnZXRfbGlzdF9uZXcodGFibGUsIHRhYmxlU2l6ZSk7CisgICAgZ3RrX3Rhcmdl
dF90YWJsZV9mcmVlKHRhYmxlLCB0YWJsZVNpemUpOworCisgICAgcmV0dXJuIHRhcmdldExpc3RX
aXRoV2ViS2l0RW51bVZhbHVlczsKK30KKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogc3Rh
dGljIHZvaWQgUG9wdXBNZW51UG9zaXRpb25GdW5jKEd0a01lbnUqIG1lbnUsIGdpbnQgKngsIGdp
bnQgKnksIGdib29sZWFuICpwdXNoSW4sIGdwb2ludGVyIHVzZXJEYXRhKQogewpAQCAtMTM4MCw2
ICsxNDIyLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UoR09iamVjdCog
b2JqZWN0KQogICAgIHByaXYtPndlYldpbmRvd0ZlYXR1cmVzLmNsZWFyKCk7CiAgICAgcHJpdi0+
bWFpblJlc291cmNlLmNsZWFyKCk7CiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzLmNsZWFyKCk7Cisg
ICAgcHJpdi0+dGFyZ2V0TGlzdC5jbGVhcigpOwogCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0
X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKIApAQCAtMzg3MywxMCAr
MzkxNiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQogCiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzID0gYWRvcHRHUmVmKGdfaGFzaF90
YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwgZ19mcmVlLCBnX29iamVjdF91
bnJlZikpOwogCisgICAgcHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5R3RrVGFyZ2V0
TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQYXN0ZWJv
YXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpKTsKKwog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgcHJpdi0+ZHJhZ0FuZERyb3BIZWxwZXIuc2V0
V2lkZ2V0KEdUS19XSURHRVQod2ViVmlldykpOwogICAgIGd0a19kcmFnX2Rlc3Rfc2V0KEdUS19X
SURHRVQod2ViVmlldyksIHN0YXRpY19jYXN0PEd0a0Rlc3REZWZhdWx0cz4oMCksIDAsIDAsIHN0
YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KEdES19BQ1RJT05fQ09QWSB8IEdES19BQ1RJT05fQ09Q
WSB8IEdES19BQ1RJT05fTU9WRSB8IEdES19BQ1RJT05fTElOSyB8IEdES19BQ1RJT05fUFJJVkFU
RSkpOwotICAgIGd0a19kcmFnX2Rlc3Rfc2V0X3RhcmdldF9saXN0KEdUS19XSURHRVQod2ViVmll
dyksIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExp
c3QoKSk7CisgICAgZ3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0X2xpc3QoR1RLX1dJREdFVCh3ZWJW
aWV3KSwgcHJpdi0+dGFyZ2V0TGlzdC5nZXQoKSk7CiAjZW5kaWYKIAogICAgIHByaXYtPnNlbGZT
Y3JvbGxpbmcgPSBmYWxzZTsKQEAgLTQ2OTEsNyArNDczNiw4IEBAIHZvaWQgd2Via2l0X3dlYl92
aWV3X3NldF9lZGl0YWJsZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBmbGFnKQog
ICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7Ci0gICAgcmV0dXJuIFBhc3RlYm9hcmRIZWxwZXI6
OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKTsKKyAgICB3ZWJWaWV3LT5w
cml2LT50YXJnZXRMaXN0ID0gYWRvcHRHUmVmKGNvcHlHdGtUYXJnZXRMaXN0Q29udmVydGluZ1dl
YkNvcmVFbnVtVmFsdWVzVG9XZWJLaXRFbnVtVmFsdWVzKFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1
bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKSkpOworICAgIHJldHVybiB3ZWJWaWV3
LT5wcml2LT50YXJnZXRMaXN0LmdldCgpOwogfQogCiAvKioKQEAgLTQ3MDgsNyArNDc1NCw4IEBA
IEd0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdChXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3KQogICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3
X2dldF9wYXN0ZV90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotICAgIHJl
dHVybiBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRM
aXN0KCk7CisgICAgd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5R3Rr
VGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQ
YXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkp
KTsKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdC5nZXQoKTsKIH0KIAogLyoq
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCmlu
ZGV4IDNmNjkyN2UxNjJkYjFkMjA5NjI1MGY1NmUzODMzM2NhZTBkZjc0M2IuLjZiOTAzNmNkZjRl
MWY1N2ViMjkyODU5ZTg3ODFmMzgxM2I3MjYyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgc3RydWN0
IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVyIGNs
aWNrQ291bnRlcjsKICAgICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5kRHJv
cEhlbHBlcjsKICAgICBib29sIHNlbGZTY3JvbGxpbmc7CisgICAgR1JlZlB0cjxHdGtUYXJnZXRM
aXN0PiB0YXJnZXRMaXN0OwogCiAgICAgT3duUHRyPFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQ+IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvblJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVu
dGljYXRpb25SZXF1ZXN0LmNwcAppbmRleCA2ZjBjMzcwN2UzNzhlNDJhOTNiMmRmYjkzYWQwZjMw
YWU1YjdiMmRhLi5jYTc0ODBjZDkyMjI0NTlkNDcyMDNkYzk0M2RlNTMxZmI3MWUwYjljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNh
dGlvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5jcHAKQEAgLTY3LDE4ICs2NywzNSBAQCBzdHJ1Y3Qg
X1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdFByaXZhdGUgewogCiBzdGF0aWMgZ3VpbnQgc2ln
bmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxULCBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUMsIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0RJR0VTVCwgUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0KTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVE1MX0ZPUk0sIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm0pOwotQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05UTE0sIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfTkVHT1RJQVRFLCBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfQ0xJRU5UX0NFUlRJRklDQVRF
X1JFUVVFU1RFRCwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9B
VVRIRU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVELCBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNB
VElPTl9TQ0hFTUVfVU5LTk9XTiwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVV
bmtub3duKTsKLQogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVz
dCwgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpCiAKK2lubGlu
ZSBzdGF0aWMgV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUgdG9XZWJLaXRBdXRoZW50aWNhdGlv
blNjaGVtZShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBjb3Jl
U2NoZW1lKQoreworICAgIHN3aXRjaCAoY29yZVNjaGVtZSkgeworICAgIGNhc2UgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgorICAgICAgICByZXR1
cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIGNhc2UgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6CisgICAgICAg
IHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUM7CisgICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6
CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfRElHRVNU
OworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVI
VE1MRm9ybToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfSFRN
TF9GT1JNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVOVExNOgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9O
VExNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVOZWdvdGlhdGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1F
X05FR09USUFURTsKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgICAgIHJldHVybiBXRUJL
SVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0NMSUVOVF9DRVJUSUZJQ0FURV9SRVFVRVNURUQ7Cisg
ICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZl
clRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5U
SUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVEOworICAgIGNh
c2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9VTktOT1dOOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
V0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIH0KK30KKwogc3RhdGlj
IHZvaWQgd2Via2l0QXV0aGVudGljYXRpb25SZXF1ZXN0RGlzcG9zZShHT2JqZWN0KiBvYmplY3Qp
CiB7CiAgICAgV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX0FV
VEhFTlRJQ0FUSU9OX1JFUVVFU1Qob2JqZWN0KTsKQEAgLTI0NCw3ICsyNjEsNyBAQCBXZWJLaXRB
dXRoZW50aWNhdGlvblNjaGVtZSB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRfc2No
ZW1lKFdlYktpdEF1dGhlbgogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19B
VVRIRU5USUNBVElPTl9SRVFVRVNUKHJlcXVlc3QpLCBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NI
RU1FX1VOS05PV04pOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdEF1dGhlbnRpY2F0
aW9uU2NoZW1lPihyZXF1ZXN0LT5wcml2LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+cHJvdGVj
dGlvblNwYWNlKCktPmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkpOworICAgIHJldHVybiB0b1dlYktp
dEF1dGhlbnRpY2F0aW9uU2NoZW1lKHJlcXVlc3QtPnByaXYtPmF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLT5wcm90ZWN0aW9uU3BhY2UoKS0+YXV0aGVudGljYXRpb25TY2hlbWUoKSk7CiB9CiAKIC8q
KgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29v
a2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
b29raWVNYW5hZ2VyLmNwcAppbmRleCAzNjRlNGU0N2RjYzNiYmNjMzgzZTgwNzlhNjAwZmUxYTU1
NDY0MmNlLi45MTg5M2I4MGQ0YmIxZTFlMDIyOWIzNzdlYWI3Zjk3ZTJkYTRhZTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVN
YW5hZ2VyLmNwcApAQCAtNjgsMTIgKzY4LDQ4IEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xBU1Rf
U0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdENvb2tpZU1hbmFn
ZXIsIHdlYmtpdF9jb29raWVfbWFuYWdlciwgR19UWVBFX09CSkVDVCkKIAotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhULCBT
b3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUZXh0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfU1FMSVRFLCBTb3VwQ29va2ll
UGVyc2lzdGVudFN0b3JhZ2VTUUxpdGUpOworaW5saW5lIHN0YXRpYyBTb3VwQ29va2llUGVyc2lz
dGVudFN0b3JhZ2VUeXBlIHRvU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZShXZWJLaXRD
b29raWVQZXJzaXN0ZW50U3RvcmFnZSBraXRTdG9yYWdlKQoreworICAgIHN3aXRjaCAoa2l0U3Rv
cmFnZSkgeworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfVEVYVDoK
KyAgICAgICAgcmV0dXJuIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVRleHQ7CisgICAgY2Fz
ZSBXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9TUUxJVEU6CisgICAgICAgIHJldHVy
biBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VTUUxpdGU7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBTb3VwQ29va2llUGVyc2lz
dGVudFN0b3JhZ2VUZXh0OworICAgIH0KK30KKworaW5saW5lIHN0YXRpYyBXZWJLaXRDb29raWVB
Y2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBv
bGljeSBodHRwUG9saWN5KQoreworICAgIHN3aXRjaCAoaHR0cFBvbGljeSkgeworICAgIGNhc2Ug
SFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9DT09L
SUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5
TmV2ZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVWRVI7
CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21h
aW46CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRf
UEFSVFk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfQUxXQVlTOworICAgIH0KK30K
IAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NF
UFRfQUxXQVlTLCBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKTsKLUNPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSLCBIVFRQQ29v
a2llQWNjZXB0UG9saWN5TmV2ZXIpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRfUEFSVFksIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbik7CitpbmxpbmUgc3RhdGljIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdENvb2tpZUFjY2Vw
dFBvbGljeSBraXRQb2xpY3kpCit7CisgICAgc3dpdGNoIChraXRQb2xpY3kpIHsKKyAgICBjYXNl
IFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM6CisgICAgICAgIHJldHVybiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lf
QUNDRVBUX05FVkVSOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVy
OworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZOgor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKKyAgICB9Cit9CiAKIHN0
YXRpYyB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9jbGFzc19pbml0KFdlYktpdENvb2tpZU1h
bmFnZXJDbGFzcyogZmluZENsYXNzKQogewpAQCAtMTM3LDcgKzE3Myw3IEBAIHZvaWQgd2Via2l0
X2Nvb2tpZV9tYW5hZ2VyX3NldF9wZXJzaXN0ZW50X3N0b3JhZ2UoV2ViS2l0Q29va2llTWFuYWdl
ciogbWFuYWdlciwKICAgICBnX3JldHVybl9pZl9mYWlsKGZpbGVuYW1lKTsKIAogICAgIG1hbmFn
ZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCk7
Ci0gICAgbWFuYWdlci0+cHJpdi0+d2ViQ29va2llTWFuYWdlci0+c2V0Q29va2llUGVyc2lzdGVu
dFN0b3JhZ2UoU3RyaW5nOjpmcm9tVVRGOChmaWxlbmFtZSksIHN0b3JhZ2UpOworICAgIG1hbmFn
ZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFN0
cmluZzo6ZnJvbVVURjgoZmlsZW5hbWUpLCB0b1NvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5
cGUoc3RvcmFnZSkpOwogICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0YXJ0
T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwogfQogCkBAIC0xNTIsMTMgKzE4OCwxMyBAQCB2b2lk
IHdlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNjZXB0X3BvbGljeShXZWJLaXRDb29raWVNYW5h
Z2VyKiBtYW5hZ2VyLCBXZWJLaQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0NP
T0tJRV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1h
bmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKKyAgICBtYW5hZ2VyLT5w
cml2LT53ZWJDb29raWVNYW5hZ2VyLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHRvSFRUUENv
b2tpZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0Q29va2ll
TWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCiB7CiAgICAgR1JlZlB0cjxHVGFzaz4g
dGFzayA9IGFkb3B0R1JlZihHX1RBU0soY29udGV4dCkpOwotICAgIGdfdGFza19yZXR1cm5faW50
KHRhc2suZ2V0KCksIHBvbGljeSk7CisgICAgZ190YXNrX3JldHVybl9pbnQodGFzay5nZXQoKSwg
dG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGlj
eSkpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENyZWRlbnRpYWwuY3BwCmluZGV4IDU3NTVmZDVjN2M4MDY1ZjViMWY2ZjVlMTI4
OTdiMzI3N2IwM2Q0ZWUuLjBiOTA2ZDY3ODhkMzhmYmE3Y2Y0NTk4MjYzY2U3ZTIwMmI0MWE2N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENyZWRl
bnRpYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENy
ZWRlbnRpYWwuY3BwCkBAIC0zNywxMiArMzcsMzggQEAgc3RydWN0IF9XZWJLaXRDcmVkZW50aWFs
IHsKICAgICBDU3RyaW5nIHBhc3N3b3JkOwogfTsKIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FLCBXZWJDb3JlOjpDcmVkZW50
aWFsUGVyc2lzdGVuY2VOb25lKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfRk9SX1NFU1NJT04sIFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZUZvclNlc3Npb24pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQsIFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZVBlcm1hbmVudCk7Ci0KIEdfREVGSU5FX0JPWEVEX1RZUEUoV2ViS2l0Q3JlZGVu
dGlhbCwgd2Via2l0X2NyZWRlbnRpYWwsIHdlYmtpdF9jcmVkZW50aWFsX2NvcHksIHdlYmtpdF9j
cmVkZW50aWFsX2ZyZWUpCiAKK2lubGluZSBzdGF0aWMgV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3Rl
bmNlIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJz
aXN0ZW5jZSBjb3JlUGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChjb3JlUGVyc2lzdGVuY2Up
IHsKKyAgICBjYXNlIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU6CisgICAgICAg
IHJldHVybiBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FOworICAgIGNhc2UgV2Vi
Q29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbjoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX0ZPUl9TRVNTSU9OOworICAgIGNhc2UgV2ViQ29y
ZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlUGVybWFuZW50OgorICAgICAgICByZXR1cm4gV0VCS0lU
X0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5UOworICAgIGRlZmF1bHQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV0VCS0lUX0NSRURFTlRJQUxf
UEVSU0lTVEVOQ0VfTk9ORTsKKyAgICB9Cit9CisKK2lubGluZSBzdGF0aWMgV2ViQ29yZTo6Q3Jl
ZGVudGlhbFBlcnNpc3RlbmNlIHRvV2ViQ29yZUNyZWRlbnRpYWxQZXJzaXN0ZW5jZShXZWJLaXRD
cmVkZW50aWFsUGVyc2lzdGVuY2Uga2l0UGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChraXRQ
ZXJzaXN0ZW5jZSkgeworICAgIGNhc2UgV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfTk9O
RToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU7Cisg
ICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9GT1JfU0VTU0lPTjoKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb247CisgICAg
Y2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQ6CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VQZXJtYW5lbnQ7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lOworICAgIH0KK30KKwogV2ViS2l0Q3JlZGVudGlh
bCogd2Via2l0Q3JlZGVudGlhbENyZWF0ZShjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiBjb3Jl
Q3JlZGVudGlhbCkKIHsKICAgICBXZWJLaXRDcmVkZW50aWFsKiBjcmVkZW50aWFsID0gZ19zbGlj
ZV9uZXcoV2ViS2l0Q3JlZGVudGlhbCk7CkBAIC03Myw3ICs5OSw3IEBAIFdlYktpdENyZWRlbnRp
YWwqIHdlYmtpdF9jcmVkZW50aWFsX25ldyhjb25zdCBnY2hhciogdXNlcm5hbWUsIGNvbnN0IGdj
aGFyKiBwYXNzCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwodXNlcm5hbWUsIDApOwogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHBhc3N3b3JkLCAwKTsKIAotICAgIHJldHVybiB3ZWJraXRDcmVk
ZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2VybmFt
ZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDcmVk
ZW50aWFsUGVyc2lzdGVuY2U+KHBlcnNpc3RlbmNlKSkpOworICAgIHJldHVybiB3ZWJraXRDcmVk
ZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2VybmFt
ZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCB0b1dlYkNvcmVDcmVkZW50aWFsUGVyc2lz
dGVuY2UocGVyc2lzdGVuY2UpKSk7CiB9CiAKIC8qKgpAQCAtMTc4LDUgKzIwNCw1IEBAIFdlYktp
dENyZWRlbnRpYWxQZXJzaXN0ZW5jZSB3ZWJraXRfY3JlZGVudGlhbF9nZXRfcGVyc2lzdGVuY2Uo
V2ViS2l0Q3JlZGVudGlhbCoKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjcmVkZW50aWFs
LCBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FKTsKIAotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxXZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGNyZWRlbnRpYWwtPmNyZWRlbnRp
YWwucGVyc2lzdGVuY2UoKSk7CisgICAgcmV0dXJuIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3Rl
bmNlKGNyZWRlbnRpYWwtPmNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKaW5kZXgg
ZTk1ZTRjMDY1MGIzOTNlOGM4YWFiYjY0M2NiMzcwZmVlNDQ5ZDU5My4uYzQ4M2I5MjdjZmQyMzY3
MDVjMjI4NmQ3NmM3Nzc2MmRlMGVjMDA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2lu
Y2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXREb3dubG9hZFByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KQEAg
LTM0MCw3ICszNDEsNyBAQCB2b2lkIHdlYmtpdERvd25sb2FkTm90aWZ5UHJvZ3Jlc3MoV2ViS2l0
RG93bmxvYWQqIGRvd25sb2FkLCBndWludDY0IGJ5dGVzUmVjZWl2ZQogdm9pZCB3ZWJraXREb3du
bG9hZEZhaWxlZChXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IFJlc291cmNlRXJyb3Im
IHJlc291cmNlRXJyb3IpCiB7CiAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVycm9yKGdfZXJy
b3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhyZXNvdXJjZUVycm9yLmRvbWFpbigp
LnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCByZXNv
dXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAg
ICB0b1dlYktpdEVycm9yKHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCkpLCByZXNvdXJjZUVycm9y
LmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIGlmIChkb3dubG9h
ZC0+cHJpdi0+dGltZXIpCiAgICAgICAgIGdfdGltZXJfc3RvcChkb3dubG9hZC0+cHJpdi0+dGlt
ZXIuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRFcnJvci5jcHAKaW5kZXggYzA2ZGM2MWE1OGNjNGFhMGE2YzE2ZGE2NTQ2NDA0YTYwZTAxMjRm
ZS4uNzQxOWVlNzIxYTBmZTg2YWJjMzY0MzZkMjRlYzI1ZTQ2NDIzZThjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcApAQCAtNDAsNTMg
KzQwLDI2IEBAIEdRdWFyayB3ZWJraXRfbmV0d29ya19lcnJvcl9xdWFyaygpCiAgICAgcmV0dXJu
IGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9yRG9tYWluTmV0d29yayk7
CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJST1Jf
RkFJTEVELCBOZXR3b3JrRXJyb3JGYWlsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQsIE5ldHdvcmtFcnJvclRyYW5zcG9ydCk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05P
V05fUFJPVE9DT0wsIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRCwgTmV0d29ya0Vy
cm9yQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdP
UktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVCwgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlz
dCk7Ci0KIEdRdWFyayB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrKCkKIHsKICAgICByZXR1cm4g
Z19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5Qb2xpY3kpOwog
fQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJ
TEVELCBQb2xpY3lFcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNhbm5v
dFNob3dNaW1lVHlwZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJ
Q1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURf
SU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1
cHRlZEJ5UG9saWN5Q2hhbmdlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JDYW5u
b3RVc2VSZXN0cmljdGVkUG9ydCk7Ci0KIEdRdWFyayB3ZWJraXRfcGx1Z2luX2Vycm9yX3F1YXJr
KCkKIHsKICAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJy
b3JEb21haW5QbHVnaW4pOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9QTFVHSU5fRVJST1JfRkFJTEVELCBQbHVnaW5FcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOLCBQ
bHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTiwgUGx1Z2luRXJyb3JDYW5u
b3RMb2FkUGx1Z2luKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BMVUdJ
Tl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFLCBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSk7Ci1D
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElP
Tl9DQU5DRUxMRUQsIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRCwg
UGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCk7Ci0KIEdRdWFyayB3ZWJraXRfZG93bmxvYWRfZXJy
b3JfcXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJD
b3JlOjplcnJvckRvbWFpbkRvd25sb2FkKTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSywgRG93bmxvYWRFcnJvck5ldHdvcmsp
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfQ0FO
Q0VMTEVEX0JZX1VTRVIsIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIpOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT04sIERv
d25sb2FkRXJyb3JEZXN0aW5hdGlvbik7Ci0KIEdRdWFyayB3ZWJraXRfcHJpbnRfZXJyb3JfcXVh
cmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3JlOjpl
cnJvckRvbWFpblByaW50KTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfUFJJTlRfRVJST1JfR0VORVJBTCwgUHJpbnRFcnJvckdlbmVyYWwpOwotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQsIFBy
aW50RXJyb3JQcmludGVyTm90Rm91bmQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9QQUdFX1JBTkdFLCBQcmludEVycm9ySW52YWxpZFBh
Z2VSYW5nZSk7Ci0KIEdRdWFyayB3ZWJraXRfamF2YXNjcmlwdF9lcnJvcl9xdWFyaygpCiB7CiAg
ICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKCJXZWJLaXRKYXZhc2NyaXB0RXJy
b3IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmNwcAppbmRleCA4NzU5MzA2ZTJiY2YxZjk2MWU1Nzg0MWNiMTQ2
YjYwZmMyNmQ1OWY2Li42ZTcxNDFlNGU4M2Q4NTEwZmUzODRhZTA3YTVkNzIwNzc4YTljMzBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
RmluZENvbnRyb2xsZXIuY3BwCkBAIC04MiwxMSArODIsMjIgQEAgc3RhdGljIGd1aW50IHNpZ25h
bHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0Rmlu
ZENvbnRyb2xsZXIsIHdlYmtpdF9maW5kX2NvbnRyb2xsZXIsIEdfVFlQRV9PQkpFQ1QpCiAKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VO
U0lUSVZFLCBGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9GSU5EX09QVElPTlNfQVRfV09SRF9TVEFSVFMsIEZpbmRPcHRpb25z
QXRXb3JkU3RhcnRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRf
T1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJULCBGaW5kT3B0aW9uc1Ry
ZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMsIEZpbmRPcHRpb25zQmFja3dhcmRzKTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19XUkFQX0FS
T1VORCwgRmluZE9wdGlvbnNXcmFwQXJvdW5kKTsKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5k
T3B0aW9ucyB0b1dlYktpdEZpbmRPcHRpb25zKFdlYktpdEZpbmRPcHRpb25zIHR5cGUpCit7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KCh0eXBlICYgV0VCS0lU
X0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VOU0lUSVZFID8gRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRp
dmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19BVF9XT1JEX1NU
QVJUUyA/IEZpbmRPcHRpb25zQXRXb3JkU3RhcnRzIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdF
QktJVF9GSU5EX09QVElPTlNfVFJFQVRfTUVESUFMX0NBUElUQUxfQVNfV09SRF9TVEFSVCA/IEZp
bmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQgOiAwKQorICAgICAgICB8ICh0
eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMgPyBGaW5kT3B0aW9uc0JhY2t3YXJk
cyA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1dSQVBfQVJPVU5E
ID8gRmluZE9wdGlvbnNXcmFwQXJvdW5kIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdFQktJVF9G
SU5EX09QVElPTlNfU0hPV19PVkVSTEFZID8gRmluZE9wdGlvbnNTaG93T3ZlcmxheSA6IDApCisg
ICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfRklORF9JTkRJQ0FUT1Ig
PyBGaW5kT3B0aW9uc1Nob3dGaW5kSW5kaWNhdG9yIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdF
QktJVF9GSU5EX09QVElPTlNfU0hPV19ISUdITElHSFQgPyBGaW5kT3B0aW9uc1Nob3dIaWdobGln
aHQgOiAwKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b1dlYktp
dEZpbmRPcHRpb25zKHVpbnQzMl90IHR5cGUpCit7CisgICAgcmV0dXJuIHRvV2ViS2l0RmluZE9w
dGlvbnMoc3RhdGljX2Nhc3Q8V2ViS2l0RmluZE9wdGlvbnM+KHR5cGUpKTsKK30KIAogc3RhdGlj
IHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCB1
bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewpAQCAtMzQ5LDcg
KzM2MCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdEZpbmRDb250cm9sbGVyUGVyZm9ybShXZWJLaXRG
aW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIsIFdlCiAgICAgV2ViS2l0RmluZENvbnRyb2xs
ZXJQcml2YXRlKiBwcml2ID0gZmluZENvbnRyb2xsZXItPnByaXY7CiAgICAgaWYgKG9wZXJhdGlv
biA9PSBDb3VudE9wZXJhdGlvbikgewogICAgICAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVyKS0+
Y291bnRTdHJpbmdNYXRjaGVzKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4dC5kYXRh
KCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KHByaXYtPmZpbmRPcHRpb25zKSwgcHJp
di0+bWF4TWF0Y2hDb3VudCk7CisgICAgICAgICAgICB0b1dlYktpdEZpbmRPcHRpb25zKHByaXYt
PmZpbmRPcHRpb25zKSwgcHJpdi0+bWF4TWF0Y2hDb3VudCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTM2Miw5ICszNzMsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRGaW5kQ29udHJvbGxl
clBlcmZvcm0oV2ViS2l0RmluZENvbnRyb2xsZXIqIGZpbmRDb250cm9sbGVyLCBXZQogICAgICAg
ICAvLyB1bmNvbmRpdGlvbmFsbHkgc2hvdyBoaWdobGlnaHRzLiBCb3RoIHNlYXJjaF9uZXh0KCkg
YW5kCiAgICAgICAgIC8vIHNlYXJjaF9wcmV2KCkgc2hvdWxkIG5vdCBlbmFibGUgaGlnaGxpZ2h0
aW5nIHRvIGF2b2lkIGFuCiAgICAgICAgIC8vIGV4dHJhIHVubWFya0FsbFRleHRNYXRjaGVzKCkg
KyBtYXJrQWxsVGV4dE1hdGNoZXMoKQotICAgICAgICBmaW5kT3B0aW9ucyB8PSBGaW5kT3B0aW9u
c1Nob3dIaWdobGlnaHQ7CisgICAgICAgIGZpbmRPcHRpb25zIHw9IFdFQktJVF9GSU5EX09QVElP
TlNfU0hPV19ISUdITElHSFQ7CiAKLSAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVyKS0+ZmluZFN0
cmluZyhTdHJpbmc6OmZyb21VVEY4KHByaXYtPnNlYXJjaFRleHQuZGF0YSgpKSwgc3RhdGljX2Nh
c3Q8V2ViS2l0OjpGaW5kT3B0aW9ucz4oZmluZE9wdGlvbnMpLAorICAgIGdldFBhZ2UoZmluZENv
bnRyb2xsZXIpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4dC5k
YXRhKCkpLCB0b1dlYktpdEZpbmRPcHRpb25zKGZpbmRPcHRpb25zKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tYXhNYXRjaENvdW50KTsKIH0KIApAQCAt
NDI1LDcgKzQzNiw3IEBAIHZvaWQgd2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4dChX
ZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIpCiAgICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfRklORF9DT05UUk9MTEVSKGZpbmRDb250cm9sbGVyKSk7CiAKICAgICBmaW5k
Q29udHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0gfldFQktJVF9GSU5EX09QVElPTlNfQkFD
S1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9ucyAmPSB+RmluZE9w
dGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9u
cyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsKICAgICB3ZWJLaXRGaW5k
Q29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0UHJldk9wZXJhdGlvbik7
CiB9CiAKQEAgLTQ0Myw3ICs0NTQsNyBAQCB2b2lkIHdlYmtpdF9maW5kX2NvbnRyb2xsZXJfc2Vh
cmNoX3ByZXZpb3VzKFdlYktpdEZpbmRDb250cm9sbGVyKiBmaW5kQ29udHJvbGxlcgogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTkRfQ09OVFJPTExFUihmaW5kQ29udHJvbGxlcikp
OwogCiAgICAgZmluZENvbnRyb2xsZXItPnByaXYtPmZpbmRPcHRpb25zIHw9IFdFQktJVF9GSU5E
X09QVElPTlNfQkFDS1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9u
cyAmPSB+RmluZE9wdGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5wcml2
LT5maW5kT3B0aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsKICAg
ICB3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0UHJl
dk9wZXJhdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCmluZGV4IDdiYWQxZDA1MTg0ZDMxNTZkMWQx
ZmQ5NjQ0NWM5YzlkMTdmYTNmM2UuLmM4OWMzODY0ZmRlOGQ5MWVlYmU0MWMwNjEwYTYxMzg4Yzcz
NGQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZpbmRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0RmluZENvbnRyb2xsZXIuaApAQCAtNjMsNiArNjMsMTAgQEAgdHlwZWRlZiBlbnVtIHsK
ICAgV0VCS0lUX0ZJTkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJU
ID0gMSA8PCAyLAogICBXRUJLSVRfRklORF9PUFRJT05TX0JBQ0tXQVJEUyA9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAxIDw8IDMsCiAgIFdFQktJVF9GSU5EX09QVElPTlNfV1JBUF9BUk9VTkQg
PSAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgNCwKKyAgLyo8IHByaXZhdGUgPiovCisgIFdF
QktJVF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID0gICAgICAgICAgICAgICAgICAgICAgIDEg
PDwgNSwKKyAgV0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0ZJTkRfSU5ESUNBVE9SID0gICAgICAg
ICAgICAgICAgMSA8PCA2LAorICBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfSElHSExJR0hUID0g
ICAgICAgICAgICAgICAgICAgICAxIDw8IDcsCiB9IFdlYktpdEZpbmRPcHRpb25zOwogCiBzdHJ1
Y3QgX1dlYktpdEZpbmRDb250cm9sbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApp
bmRleCAxYjc3YjZlYTdiNDY3MGYxOWU5NjA2MTA0Mzc3MmQxOTk0OWE5MjIxLi5iOWFjMjM0YmY3
YzMwZDVhMzUzOTk2N2YyNzdlZDExMTZkNGQwZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGll
bnQuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuaCIKIAogI2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZh
dGUuaCIKQEAgLTg3LDcgKzg4LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVdlYlZpZXdNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGMKICAgICAgICAg
QVBJOjpFcnJvciogd2ViRXJyb3IgPSBzdGF0aWNfY2FzdDxBUEk6OkVycm9yKj4obWVzc2FnZS5n
ZXQoU3RyaW5nOjpmcm9tVVRGOCgiRXJyb3IiKSkpOwogICAgICAgICBjb25zdCBSZXNvdXJjZUVy
cm9yJiBwbGF0Zm9ybUVycm9yID0gd2ViRXJyb3ItPnBsYXRmb3JtRXJyb3IoKTsKICAgICAgICAg
R1VuaXF1ZVB0cjxHRXJyb3I+IHJlc291cmNlRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1
YXJrX2Zyb21fc3RyaW5nKHBsYXRmb3JtRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0g
ICAgICAgICAgICBwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpLCBwbGF0Zm9ybUVycm9yLmxvY2Fs
aXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJLaXRF
cnJvcihwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpKSwgcGxhdGZvcm1FcnJvci5sb2NhbGl6ZWRE
ZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgICAgICB3ZWJraXRXZWJSZXNvdXJj
ZUZhaWxlZChyZXNvdXJjZS5nZXQoKSwgcmVzb3VyY2VFcnJvci5nZXQoKSk7CiAgICAgICAgIHdl
YmtpdFdlYlZpZXdSZW1vdmVMb2FkaW5nV2ViUmVzb3VyY2Uod2ViVmlldywgcmVzb3VyY2VJZGVu
dGlmaWVyLT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCmluZGV4IDRiMmU1OWMyNWZlN2Y4MDU1ZTc0
OGI3ZmI3YWE4Y2ZjMTBjMzVkNzEuLmFiOTdkMjkwODNjOTI4ZWFmOTU1YTRlMzJkNDc5MzBkMDA1
NmQyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dExvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIldlYktp
dExvYWRlckNsaWVudC5oIgogCiAjaW5jbHVkZSAiV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXNw
b25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgpAQCAtNTQsNyArNTUsNyBAQCBzdGF0aWMg
dm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZgogCiAgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJv
ciA9IHRvSW1wbChlcnJvciktPnBsYXRmb3JtRXJyb3IoKTsKICAgICBHVW5pcXVlUHRyPEdFcnJv
cj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21fc3RyaW5nKHJlc291
cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIHJlc291cmNlRXJyb3Iu
ZXJyb3JDb2RlKCksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgICAgIHRvV2ViS2l0RXJyb3IocmVzb3VyY2VFcnJvci5lcnJvckNvZGUo
KSksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7
CiAgICAgaWYgKHJlc291cmNlRXJyb3IudGxzRXJyb3JzKCkpIHsKICAgICAgICAgd2Via2l0V2Vi
Vmlld0xvYWRGYWlsZWRXaXRoVExTRXJyb3JzKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwg
cmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCks
CiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4ocmVzb3VyY2VF
cnJvci50bHNFcnJvcnMoKSksIHJlc291cmNlRXJyb3IuY2VydGlmaWNhdGUoKSk7CkBAIC04NSw3
ICs4Niw3IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyCiAKICAgICBjb25zdCBSZXNvdXJjZUVy
cm9yJiByZXNvdXJjZUVycm9yID0gdG9JbXBsKGVycm9yKS0+cGxhdGZvcm1FcnJvcigpOwogICAg
IEdVbmlxdWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVhcmtf
ZnJvbV9zdHJpbmcocmVzb3VyY2VFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwKLSAgICAg
ICAgcmVzb3VyY2VFcnJvci5lcnJvckNvZGUoKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNj
cmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJLaXRFcnJvcihyZXNvdXJj
ZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
LnV0ZjgoKS5kYXRhKCkpKTsKICAgICB3ZWJraXRXZWJWaWV3TG9hZEZhaWxlZChXRUJLSVRfV0VC
X1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9MT0FEX0NPTU1JVFRFRCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNvdXJjZUVycm9yLmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgpLCB3
ZWJFcnJvci5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmNwcApp
bmRleCBmMDM0NDZiYWI3MzBjZDQ2YjBmNjkyYzcxZDFjMGVlMjNlNDI2YmIyLi44MzM2NmRjY2Q3
ZGExZjQ1MzBkMThlZDNkYWI2NDZkZWNiMTAwMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbi5jcHAKQEAgLTI0MywxMyArMjQzLDYgQEAgY29uc3QgY2hhciogd2Via2l0X25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF9mcmFtZV9uYW1lKFdlYktpdE5hdmlnYXRpb25Q
b2wKICAgICByZXR1cm4gZGVjaXNpb24tPnByaXYtPmZyYW1lTmFtZS5kYXRhKCk7CiB9CiAKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05BVklHQVRJT05fVFlQRV9MSU5LX0NM
SUNLRUQsIE5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0aW9u
VHlwZUZvcm1TdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
TkFWSUdBVElPTl9UWVBFX0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZCk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfUkVM
T0FELCBOYXZpZ2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5cGVG
b3JtUmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkFW
SUdBVElPTl9UWVBFX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQogV2ViS2l0TmF2aWdh
dGlvblBvbGljeURlY2lzaW9uKiB3ZWJraXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DcmVhdGUo
V2ViS2l0TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIHVuc2lnbmVkIG1vdXNlQnV0dG9u
LCB1bnNpZ25lZCBtb2RpZmllcnMsIEFQSTo6VVJMUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hh
ciogZnJhbWVOYW1lLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIGxpc3RlbmVyKQogewog
ICAgIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiogZGVjaXNpb24gPSBXRUJLSVRfTkFW
SUdBVElPTl9QT0xJQ1lfREVDSVNJT04oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05BVklHQVRJ
T05fUE9MSUNZX0RFQ0lTSU9OLCBOVUxMKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcAppbmRleCAxZWI2YjFlYzY2
OWFiY2M3OWM4ZjA4ZDQ3Nzc5NjgwZjQyZWFhNWQ2Li4wZTQ0YTQwMTA0Y2JjMWJlNDg5ZDM2YzIx
OTM5Nzg2NTNlZTMwZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAKQEAgLTI5LDEwICsyOSwzMSBAQAogCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCitpbmxpbmUgc3RhdGljIFdlYktpdE5hdmlnYXRpb25U
eXBlIHRvV2ViS2l0TmF2aWdhdGlvblR5cGUoV0tGcmFtZU5hdmlnYXRpb25UeXBlIHR5cGUpCit7
CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBrV0tGcmFtZU5hdmlnYXRpb25UeXBlTGlu
a0NsaWNrZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0xJTktfQ0xJ
Q0tFRDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkOgorICAg
ICAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fVFlQRV9GT1JNX1NVQk1JVFRFRDsKKyAgICBj
YXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9OQVZJR0FUSU9OX1RZUEVfQkFDS19GT1JXQVJEOworICAgIGNhc2Uga1dLRnJhbWVOYXZp
Z2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVf
UkVMT0FEOworICAgIGNhc2Uga1dLRnJhbWVOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZDoK
KyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRFRDsK
KyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9OQVZJR0FUSU9OX1RZUEVfT1RIRVI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0xJ
TktfQ0xJQ0tFRDsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZp
Z2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdL
RXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0ZyYW1l
LCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3Rl
bmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAg
R1JlZlB0cjxXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24+IGRlY2lzaW9uID0KLSAgICAg
ICAgYWRvcHRHUmVmKHdlYmtpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkNyZWF0ZShzdGF0aWNf
Y2FzdDxXZWJLaXROYXZpZ2F0aW9uVHlwZT4obmF2aWdhdGlvblR5cGUpLAorICAgICAgICBhZG9w
dEdSZWYod2Via2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHRvV2ViS2l0TmF2aWdh
dGlvblR5cGUobmF2aWdhdGlvblR5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91c2VC
dXR0b24obW91c2VCdXR0b24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhtb2RpZmll
cnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRvSW1wbChyZXF1ZXN0KSwKQEAgLTQ2LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0sKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRp
b25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1v
dXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVOYW1l
LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBHUmVmUHRyPFdlYktpdE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbj4gZGVjaXNpb24gPQotICAgICAgICBhZG9wdEdSZWYod2Via2l0TmF2aWdh
dGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHN0YXRpY19jYXN0PFdlYktpdE5hdmlnYXRpb25UeXBl
PihuYXZpZ2F0aW9uVHlwZSksCisgICAgICAgIGFkb3B0R1JlZih3ZWJraXROYXZpZ2F0aW9uUG9s
aWN5RGVjaXNpb25DcmVhdGUodG9XZWJLaXROYXZpZ2F0aW9uVHlwZShuYXZpZ2F0aW9uVHlwZSks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2tFdmVudE1vdXNlQnV0dG9uVG9XZWJLaXRNb3VzZUJ1dHRvbihtb3VzZUJ1dHRvbiksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2tFdmVu
dE1vZGlmaWVyc1RvR2RrTW9kaWZpZXJzKG1vZGlmaWVycyksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbXBsKHJlcXVlc3QpLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVy
YXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRP
cGVyYXRpb24uY3BwCmluZGV4IDgxMGQyYzc5YTQ0YTIxMmU1MmQwMDM3ODQ0ZTdmNWE3MWU3ODI4
YjguLjBhMDM4NmFhZjdiNmUzOTk1OTVlYzk2YTM2ZTE0NTZkYzFkNGQzOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJh
dGlvbi5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdGF0aWMgdm9pZCBkcmF3UGFnZXNGb3JQcmlu
dGluZ0NvbXBsZXRlZChBUEk6OkVycm9yKiB3a1ByaW50RXJyb3IsIFdlYktpdFByaW50TwogICAg
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IgPSB3a1ByaW50RXJy
b3IgPyB3a1ByaW50RXJyb3ItPnBsYXRmb3JtRXJyb3IoKSA6IFdlYkNvcmU6OlJlc291cmNlRXJy
b3IoKTsKICAgICBpZiAoIXJlc291cmNlRXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgR1VuaXF1
ZVB0cjxHRXJyb3I+IHByaW50RXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21f
c3RyaW5nKHJlc291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgICAg
ICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCByZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2Ny
aXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJLaXRFcnJvcihyZXNv
dXJjZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgZ19zaWduYWxfZW1pdChwcmludE9wZXJhdGlv
biwgc2lnbmFsc1tGQUlMRURdLCAwLCBwcmludEVycm9yLmdldCgpKTsKICAgICB9CiAgICAgZ19z
aWduYWxfZW1pdChwcmludE9wZXJhdGlvbiwgc2lnbmFsc1tGSU5JU0hFRF0sIDAsIE5VTEwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNw
cAppbmRleCBkMzRiOWM0NzE3MWEwOGFmOWRjZWIyNzc2ZDg3OWJhOGU4ZTQyNjBiLi40YzI1MTdj
YmYzMDM5ZGZiNmY4M2EzYmVmYzcyOTY0MTBkNzA4ZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcApAQCAtMjAsNiArMjAsOCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKIAorI2lu
Y2x1ZGUgIkVycm9yc0d0ay5oIgorI2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAjaW5jbHVkZSA8
Z2RrL2dkay5oPgogCiB1bnNpZ25lZCB3a0V2ZW50TW9kaWZpZXJzVG9HZGtNb2RpZmllcnMoV0tF
dmVudE1vZGlmaWVycyB3a01vZGlmaWVycykKQEAgLTUxLDMgKzUzLDEwOSBAQCB1bnNpZ25lZCB3
a0V2ZW50TW91c2VCdXR0b25Ub1dlYktpdE1vdXNlQnV0dG9uKFdLRXZlbnRNb3VzZUJ1dHRvbiB3
a0J1dHRvbikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKIH0KKwor
aW5saW5lIHVuc2lnbmVkIHRvV2ViS2l0RXJyb3IodW5zaWduZWQgd2ViQ29yZUVycm9yKQorewor
ICAgIHN3aXRjaCAod2ViQ29yZUVycm9yKSB7CisgICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJy
b3JGYWlsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlMRUQ7Cisg
ICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JUcmFuc3BvcnQ6CisgICAgICAgIHJldHVybiBX
RUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQ7CisgICAgY2FzZSBXZWJDb3JlOjpOZXR3b3Jr
RXJyb3JVbmtub3duUHJvdG9jb2w6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJP
Ul9VTktOT1dOX1BST1RPQ09MOworICAgIGNhc2UgV2ViQ29yZTo6TmV0d29ya0Vycm9yQ2FuY2Vs
bGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEOworICAg
IGNhc2UgV2ViQ29yZTo6TmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdDoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19OT1RfRVhJU1Q7CisgICAgY2FzZSBX
ZWJDb3JlOjpQb2xpY3lFcnJvckZhaWxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lf
RVJST1JfRkFJTEVEOworICAgIGNhc2UgV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93TWlt
ZVR5cGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX01J
TUVfVFlQRTsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDoKKyAg
ICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJOworICAgIGNh
c2UgV2ViQ29yZTo6UG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdl
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQ
VEVEX0JZX1BPTElDWV9DSEFOR0U7CisgICAgY2FzZSBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5v
dFVzZVJlc3RyaWN0ZWRQb3J0OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9D
QU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVDsKKyAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9y
RmFpbGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ7CisgICAg
Y2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW46CisgICAgICAgIHJldHVy
biBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BMVUdJTjsKKyAgICBjYXNlIFdlYkNv
cmU6OlBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbjoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9Q
TFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2lu
RXJyb3JKYXZhVW5hdmFpbGFibGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9S
X0pBVkFfVU5BVkFJTEFCTEU7CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvckNvbm5lY3Rp
b25DYW5jZWxsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJ
T05fQ0FOQ0VMTEVEOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9h
ZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDsK
KyAgICBjYXNlIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JOZXR3b3JrOgorICAgICAgICByZXR1cm4g
V0VCS0lUX0RPV05MT0FEX0VSUk9SX05FVFdPUks7CisgICAgY2FzZSBXZWJDb3JlOjpEb3dubG9h
ZEVycm9yQ2FuY2VsbGVkQnlVc2VyOgorICAgICAgICByZXR1cm4gV0VCS0lUX0RPV05MT0FEX0VS
Uk9SX0NBTkNFTExFRF9CWV9VU0VSOworICAgIGNhc2UgV2ViQ29yZTo6RG93bmxvYWRFcnJvckRl
c3RpbmF0aW9uOgorICAgICAgICByZXR1cm4gV0VCS0lUX0RPV05MT0FEX0VSUk9SX0RFU1RJTkFU
SU9OOworICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvckdlbmVyYWw6CisgICAgICAgIHJldHVy
biBXRUJLSVRfUFJJTlRfRVJST1JfR0VORVJBTDsKKyAgICBjYXNlIFdlYkNvcmU6OlByaW50RXJy
b3JQcmludGVyTm90Rm91bmQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUFJJTlRfRVJST1JfUFJJ
TlRFUl9OT1RfRk9VTkQ7CisgICAgY2FzZSBXZWJDb3JlOjpQcmludEVycm9ySW52YWxpZFBhZ2VS
YW5nZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUklOVF9FUlJPUl9JTlZBTElEX1BBR0VfUkFO
R0U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlMRUQ7CisgICAgfQorfQorCitpbmxpbmUg
dW5zaWduZWQgdG9XZWJDb3JlRXJyb3IodW5zaWduZWQgd2ViS2l0RXJyb3IpCit7CisgICAgc3dp
dGNoICh3ZWJLaXRFcnJvcikgeworICAgIGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfRkFJTEVE
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0d29ya0Vycm9yRmFpbGVkOworICAgIGNhc2Ug
V0VCS0lUX05FVFdPUktfRVJST1JfVFJBTlNQT1JUOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6
TmV0d29ya0Vycm9yVHJhbnNwb3J0OworICAgIGNhc2UgV0VCS0lUX05FVFdPUktfRVJST1JfVU5L
Tk9XTl9QUk9UT0NPTDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclVua25v
d25Qcm90b2NvbDsKKyAgICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRDoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckNhbmNlbGxlZDsKKyAgICBjYXNlIFdF
QktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19OT1RfRVhJU1Q6CisgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0OworICAgIGNhc2UgV0VCS0lUX1BP
TElDWV9FUlJPUl9GQUlMRUQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQb2xpY3lFcnJvckZh
aWxlZDsKKyAgICBjYXNlIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBF
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93TWltZVR5cGU7
CisgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSToKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDsKKyAgICBjYXNlIFdFQktJ
VF9QT0xJQ1lfRVJST1JfRlJBTUVfTE9BRF9JTlRFUlJVUFRFRF9CWV9QT0xJQ1lfQ0hBTkdFOgor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5
UG9saWN5Q2hhbmdlOworICAgIGNhc2UgV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JF
U1RSSUNURURfUE9SVDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90
VXNlUmVzdHJpY3RlZFBvcnQ7CisgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxFRDoK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yRmFpbGVkOworICAgIGNhc2UgV0VC
S0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU46CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW47CisgICAgY2FzZSBXRUJLSVRfUExVR0lO
X0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdp
bkVycm9yQ2Fubm90TG9hZFBsdWdpbjsKKyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfSkFW
QV9VTkFWQUlMQUJMRToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9ySmF2YVVu
YXZhaWxhYmxlOworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNF
TExFRDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNl
bGxlZDsKKyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OlBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQ7CisgICAgY2Fz
ZSBXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkRvd25sb2FkRXJyb3JOZXR3b3JrOworICAgIGNhc2UgV0VCS0lUX0RPV05MT0FEX0VSUk9SX0NB
TkNFTExFRF9CWV9VU0VSOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6RG93bmxvYWRFcnJvckNh
bmNlbGxlZEJ5VXNlcjsKKyAgICBjYXNlIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ERVNUSU5BVElP
TjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JEZXN0aW5hdGlvbjsKKyAg
ICBjYXNlIFdFQktJVF9QUklOVF9FUlJPUl9HRU5FUkFMOgorICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6UHJpbnRFcnJvckdlbmVyYWw7CisgICAgY2FzZSBXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRF
Ul9OT1RfRk9VTkQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQcmludEVycm9yUHJpbnRlck5v
dEZvdW5kOworICAgIGNhc2UgV0VCS0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRToK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
V2ViQ29yZTo6TmV0d29ya0Vycm9yRmFpbGVkOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaAppbmRleCBiZDA2MGVkMzI5ZjFi
MmYwOGI2OGMxODUxYjFiNjkyZDNlZjkyY2EzLi4zMTViZDE2YmZjMDNlMDdhMmIyODJiZTFjYzNi
ZjVlYWMyMjgwNjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UHJpdmF0ZS5oCkBAIC00OSw5ICs0OSw2IEBACiAjZGVmaW5lIFdFQktJVF9QQVJBTV9X
UklUQUJMRSAoc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KEdfUEFSQU1fV1JJVEFCTEUgfCBHX1BB
UkFNX1NUQVRJQ19OQU1FIHwgR19QQVJBTV9TVEFUSUNfTklDSyB8IEdfUEFSQU1fU1RBVElDX0JM
VVJCKSkKICNkZWZpbmUgV0VCS0lUX1BBUkFNX1JFQURXUklURSAoc3RhdGljX2Nhc3Q8R1BhcmFt
RmxhZ3M+KEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9TVEFUSUNfTkFNRSB8IEdfUEFSQU1f
U1RBVElDX05JQ0sgfCBHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAKLSNkZWZpbmUgQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTSh3ZWJraXROYW1lLCB3ZWJjb3JlTmFtZSkgXAotICAgICAgICBD
T01QSUxFX0FTU0VSVChpbnQod2Via2l0TmFtZSkgPT0gaW50KHdlYmNvcmVOYW1lKSwgbWlzbWF0
Y2hpbmdFbnVtcykKLQogI2RlZmluZSBXRUJLSVRfREVGSU5FX0FTWU5DX0RBVEFfU1RSVUNUKHN0
cnVjdE5hbWUpIFwKIHN0YXRpYyBzdHJ1Y3ROYW1lKiBjcmVhdGUjI3N0cnVjdE5hbWUoKSBcCiB7
IFwKQEAgLTExOCw2ICsxMTUsOCBAQCBHVHlwZSB0eXBlX25hbWUjI19nZXRfdHlwZSh2b2lkKSBc
CiAKIHVuc2lnbmVkIHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhXS0V2ZW50TW9kaWZp
ZXJzKTsKIHVuc2lnbmVkIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91c2VCdXR0b24oV0tF
dmVudE1vdXNlQnV0dG9uKTsKK3Vuc2lnbmVkIHRvV2ViS2l0RXJyb3IodW5zaWduZWQgd2ViQ29y
ZUVycm9yKTsKK3Vuc2lnbmVkIHRvV2ViQ29yZUVycm9yKHVuc2lnbmVkIHdlYktpdEVycm9yKTsK
IAogZW51bSBTbmFwc2hvdFJlZ2lvbiB7CiAgICAgU25hcHNob3RSZWdpb25WaXNpYmxlLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1l
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LmNwcAppbmRleCA2ZDhjNjg0MTg0MmU4NmI0YzUxNmE5NGQwZDMxZjg3MTI1
NWJkYjNkLi5mYzhiNGI2NWNjYzZmNDZhZjgzNDRhZjY2MDZhMDg5NmVkZGEwMjAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklTY2hlbWVSZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklT
Y2hlbWVSZXF1ZXN0LmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgIldlYktpdFVSSVNj
aGVtZVJlcXVlc3QuaCIKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIKKyNpbmNsdWRlICJXZWJLaXRQ
cml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZp
ZXcuaCIKQEAgLTIzMCw3ICsyMzEsNyBAQCB2b2lkIHdlYmtpdF91cmlfc2NoZW1lX3JlcXVlc3Rf
ZmluaXNoX2Vycm9yKFdlYktpdFVSSVNjaGVtZVJlcXVlc3QqIHJlcXVlc3QsIEdFcgogCiAgICAg
V2ViS2l0VVJJU2NoZW1lUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwogCi0g
ICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciByZXNvdXJjZUVycm9yKGdfcXVhcmtfdG9fc3RyaW5n
KGVycm9yLT5kb21haW4pLCBlcnJvci0+Y29kZSwgcHJpdi0+dXJpLmRhdGEoKSwgU3RyaW5nOjpm
cm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOworICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcmVz
b3VyY2VFcnJvcihnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWluKSwgdG9XZWJDb3JlRXJy
b3IoZXJyb3ItPmNvZGUpLCBwcml2LT51cmkuZGF0YSgpLCBTdHJpbmc6OmZyb21VVEY4KGVycm9y
LT5tZXNzYWdlKSk7CiAgICAgcHJpdi0+d2ViUmVxdWVzdE1hbmFnZXItPmRpZEZhaWxXaXRoRXJy
b3IocHJpdi0+cmVxdWVzdElELCByZXNvdXJjZUVycm9yKTsKICAgICB3ZWJraXRXZWJDb250ZXh0
RGlkRmluaXNoTG9hZGluZ0N1c3RvbVByb3RvY29sKHByaXYtPndlYkNvbnRleHQsIHByaXYtPnJl
cXVlc3RJRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDNiZDg5MzA4ODgzYjIzNTNmZGNjYjI4NmYwMjQz
ZTEyYTY3MTkwNjguLjJiZmIzODQwOWQxNWQwNTRmNDEzZmJkNjQyOGM1YmViN2M2OTM4ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuY3BwCkBAIC0xNjUsNiArMTY1LDMyIEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xBU1Rf
U0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdFdlYkNvbnRleHQs
IHdlYmtpdF93ZWJfY29udGV4dCwgR19UWVBFX09CSkVDVCkKIAoraW5saW5lIHN0YXRpYyBXZWJL
aXQ6OlByb2Nlc3NNb2RlbCB0b1Byb2Nlc3NNb2RlbChXZWJLaXRQcm9jZXNzTW9kZWwgd2ViS2l0
UHJvY2Vzc01vZGVsKQoreworICAgIHN3aXRjaCAod2ViS2l0UHJvY2Vzc01vZGVsKSB7CisgICAg
Y2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M6CisgICAg
ICAgIHJldHVybiBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOworICAgIGNhc2Ug
V0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzoKKyAgICAg
ICAgcmV0dXJuIFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gUHJv
Y2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczsKKyAgICB9Cit9CisKK2lubGluZSBzdGF0
aWMgV2ViS2l0UHJvY2Vzc01vZGVsIHRvV2ViS2l0UHJvY2Vzc01vZGVsKFdlYktpdDo6UHJvY2Vz
c01vZGVsIHByb2Nlc3NNb2RlbCkKK3sKKyAgICBzd2l0Y2ggKHByb2Nlc3NNb2RlbCkgeworICAg
IGNhc2UgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzsKKyAgICBjYXNl
IFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgorICAgICAgICByZXR1cm4g
V0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzsKKyAgICB9Cit9CisK
IHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9jbGFzc19pbml0KFdlYktpdFdlYkNvbnRl
eHRDbGFzcyogd2ViQ29udGV4dENsYXNzKQogewogICAgIEdPYmplY3RDbGFzcyogZ09iamVjdENs
YXNzID0gR19PQkpFQ1RfQ0xBU1Mod2ViQ29udGV4dENsYXNzKTsKQEAgLTkxNywxOCArOTQzLDcg
QEAgdm9pZCB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29u
dGV4dCogY29udGV4dCwgV2ViS2l0UHJvY2UKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfQ09OVEVYVChjb250ZXh0KSk7CiAKLSAgICBQcm9jZXNzTW9kZWwgbmV3UHJvY2Vz
c01vZGVsOwotCi0gICAgc3dpdGNoIChwcm9jZXNzTW9kZWwpIHsKLSAgICBjYXNlIFdFQktJVF9Q
Uk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzoKLSAgICAgICAgbmV3UHJvY2Vz
c01vZGVsID0gUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJP
Q0VTU0VTOgotICAgICAgICBuZXdQcm9jZXNzTW9kZWwgPSBQcm9jZXNzTW9kZWxNdWx0aXBsZVNl
Y29uZGFyeVByb2Nlc3NlczsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
Z19hc3NlcnRfbm90X3JlYWNoZWQoKTsKLSAgICB9CisgICAgUHJvY2Vzc01vZGVsIG5ld1Byb2Nl
c3NNb2RlbCh0b1Byb2Nlc3NNb2RlbChwcm9jZXNzTW9kZWwpKTsKIAogICAgIGlmIChuZXdQcm9j
ZXNzTW9kZWwgPT0gY29udGV4dC0+cHJpdi0+Y29udGV4dC0+cHJvY2Vzc01vZGVsKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTk1MiwxNCArOTY3LDcgQEAgV2ViS2l0UHJvY2Vzc01vZGVsIHdlYmtp
dF93ZWJfY29udGV4dF9nZXRfcHJvY2Vzc19tb2RlbChXZWJLaXRXZWJDb250ZXh0KiBjb250ZXgK
IHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4
dCksIFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUyk7CiAKLSAg
ICBzd2l0Y2ggKGNvbnRleHQtPnByaXYtPmNvbnRleHQtPnByb2Nlc3NNb2RlbCgpKSB7Ci0gICAg
Y2FzZSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOgotICAgICAgICByZXR1cm4g
V0VCS0lUX1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOwotICAgIGNhc2Ug
UHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXM6Ci0gICAgICAgIHJldHVybiBX
RUJLSVRfUFJPQ0VTU19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTOwotICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7Ci0gICAgfQorICAgIHJldHVy
biB0b1dlYktpdFByb2Nlc3NNb2RlbChjb250ZXh0LT5wcml2LT5jb250ZXh0LT5wcm9jZXNzTW9k
ZWwoKSk7CiB9CiAKIFdlYktpdERvd25sb2FkKiB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVE
b3dubG9hZChEb3dubG9hZFByb3h5KiBkb3dubG9hZFByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCA4ZjcyOTBiOTMw
MDc0ZWU0ZmU5NmE3ZWE1ODlkNDFjYzRmZDdlYjU0Li5mN2UxM2ZkMjZlMzZkYzI1YWFhODU1OTVi
ZWZmMjA3OWIwYzdmNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMzEwNiw5ICszMTA2LDYgQEAgdm9pZCB3ZWJLaXRX
ZWJWaWV3RGlkUmVjZWl2ZVNuYXBzaG90KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIHVpbnQ2NF90
IGNhbGxiYWNrSUQKICAgICAgICAgZ190YXNrX3JldHVybl9wb2ludGVyKHRhc2suZ2V0KCksIDAs
IDApOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9TTkFQU0hPVF9S
RUdJT05fVklTSUJMRSwgU25hcHNob3RSZWdpb25WaXNpYmxlKTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9GVUxMX0RPQ1VNRU5ULCBTbmFwc2hv
dFJlZ2lvbkZ1bGxEb2N1bWVudCk7Ci0KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgd2ViS2l0U25h
cHNob3RPcHRpb25zVG9TbmFwc2hvdE9wdGlvbnMoV2ViS2l0U25hcHNob3RPcHRpb25zIG9wdGlv
bnMpCiB7CiAgICAgU25hcHNob3RPcHRpb25zIHNuYXBzaG90T3B0aW9ucyA9IDA7CkBAIC0zMTE5
LDYgKzMxMTYsMTkgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCB3ZWJLaXRTbmFwc2hvdE9wdGlv
bnNUb1NuYXBzaG90T3B0aW9ucyhXZWJLaXRTbmFwc2hvdE9wdGkKICAgICByZXR1cm4gc25hcHNo
b3RPcHRpb25zOwogfQogCitzdGF0aWMgaW5saW5lIFNuYXBzaG90UmVnaW9uIHRvU25hcHNob3RS
ZWdpb24oV2ViS2l0U25hcHNob3RSZWdpb24gcmVnaW9uKQoreworICAgIHN3aXRjaCAocmVnaW9u
KSB7CisgICAgY2FzZSBXRUJLSVRfU05BUFNIT1RfUkVHSU9OX1ZJU0lCTEU6CisgICAgICAgIHJl
dHVybiBTbmFwc2hvdFJlZ2lvblZpc2libGU7CisgICAgY2FzZSBXRUJLSVRfU05BUFNIT1RfUkVH
SU9OX0ZVTExfRE9DVU1FTlQ6CisgICAgICAgIHJldHVybiBTbmFwc2hvdFJlZ2lvbkZ1bGxEb2N1
bWVudDsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIFNuYXBzaG90UmVnaW9uVmlzaWJsZTsKKyAgICB9Cit9CisKIHN0YXRpYyBpbmxp
bmUgdWludDY0X3QgZ2VuZXJhdGVTbmFwc2hvdENhbGxiYWNrSUQoKQogewogICAgIHN0YXRpYyB1
aW50NjRfdCB1bmlxdWVDYWxsYmFja0lEID0gMTsKQEAgLTMxNDgsNyArMzE1OCw3IEBAIHZvaWQg
d2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJL
aXRTbmFwc2hvdFJlZ2lvbiByCiAgICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSBtZXNz
YWdlOwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBnZW5lcmF0ZVNuYXBzaG90Q2FsbGJhY2tJ
RCgpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlNuYXBzaG90T3B0aW9ucyIp
LCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKHN0YXRpY19jYXN0PHVpbnQ2NF90Pih3ZWJLaXRTbmFwc2hv
dE9wdGlvbnNUb1NuYXBzaG90T3B0aW9ucyhvcHRpb25zKSkpKTsKLSAgICBtZXNzYWdlLnNldChT
dHJpbmc6OmZyb21VVEY4KCJTbmFwc2hvdFJlZ2lvbiIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKHN0
YXRpY19jYXN0PHVpbnQ2NF90PihyZWdpb24pKSk7CisgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpm
cm9tVVRGOCgiU25hcHNob3RSZWdpb24iKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShzdGF0aWNfY2Fz
dDx1aW50NjRfdD4odG9TbmFwc2hvdFJlZ2lvbihyZWdpb24pKSkpOwogICAgIG1lc3NhZ2Uuc2V0
KFN0cmluZzo6ZnJvbVVURjgoIkNhbGxiYWNrSUQiKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShjYWxs
YmFja0lEKSk7CiAKICAgICB3ZWJWaWV3LT5wcml2LT5zbmFwc2hvdFJlc3VsdHNNYXAuc2V0KGNh
bGxiYWNrSUQsIGFkb3B0R1JlZihnX3Rhc2tfbmV3KHdlYlZpZXcsIGNhbmNlbGxhYmxlLCBjYWxs
YmFjaywgdXNlckRhdGEpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3R3JvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0dyb3VwLmNwcAppbmRleCAyODllY2RmMDM2YmFkZDZjNjdh
MjVjZGNjZmEzZmIyNTdmZjYxNGIyLi5iMTU2OGNlYTgyNjFjZWFlODE0NjkzMzM1MDllZTZjZDQz
N2Q1YzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXdHcm91cC5jcHAKQEAgLTY3LDYgKzY3LDE5IEBAIHN0cnVjdCBfV2ViS2l0
V2ViVmlld0dyb3VwUHJpdmF0ZSB7CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRXZWJWaWV3
R3JvdXAsIHdlYmtpdF93ZWJfdmlld19ncm91cCwgR19UWVBFX09CSkVDVCkKIAoraW5saW5lIHN0
YXRpYyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIHRvV2ViQ29yZVVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMoV2ViS2l0SW5qZWN0ZWRDb250ZW50RnJhbWVzIGtpdEZyYW1lcykK
K3sKKyAgICBzd2l0Y2ggKGtpdEZyYW1lcykgeworICAgIGNhc2UgV0VCS0lUX0lOSkVDVEVEX0NP
TlRFTlRfRlJBTUVTX0FMTDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkluamVjdEluQWxsRnJh
bWVzOworICAgIGNhc2UgV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRfRlJBTUVTX1RPUF9PTkxZOgor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0SW5Ub3BGcmFtZU9ubHk7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpJbmplY3RJbkFsbEZyYW1lczsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZp
ZXdHcm91cFNldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25zdCBH
VmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwYXJhbVNwZWMpCiB7CiAgICAgV2ViS2l0V2ViVmll
d0dyb3VwKiBncm91cCA9IFdFQktJVF9XRUJfVklFV19HUk9VUChvYmplY3QpOwpAQCAtMjI0LDkg
KzIzNyw2IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X2dyb3VwX3NldF9zZXR0aW5ncyhXZWJLaXRX
ZWJWaWV3R3JvdXAqIGdyb3VwLCBXZWJLaXRTZXR0aW5nCiAgICAgZ19vYmplY3Rfbm90aWZ5KEdf
T0JKRUNUKGdyb3VwKSwgInNldHRpbmdzIik7CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRfRlJBTUVTX0FMTCwgV2ViQ29yZTo6SW5qZWN0
SW5BbGxGcmFtZXMpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfSU5KRUNU
RURfQ09OVEVOVF9GUkFNRVNfVE9QX09OTFksIFdlYkNvcmU6OkluamVjdEluVG9wRnJhbWVPbmx5
KTsKLQogc3RhdGljIFBhc3NSZWZQdHI8QVBJOjpBcnJheT4gdG9BUElBcnJheShjb25zdCBjaGFy
KiBjb25zdCogbGlzdCkKIHsKICAgICBpZiAoIWxpc3QpCkBAIC0yNzAsNyArMjgwLDcgQEAgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfZ3JvdXBfYWRkX3VzZXJfc3R5bGVfc2hlZXQoV2ViS2l0V2ViVmll
d0dyb3VwKiBncm91cCwgY29uc3QKICAgICAgICAgU3RyaW5nOjpmcm9tVVRGOChiYXNlVVJJKSwK
ICAgICAgICAgd2ViV2hpdGVsaXN0LmdldCgpLAogICAgICAgICB3ZWJCbGFja2xpc3QuZ2V0KCks
Ci0gICAgICAgIHN0YXRpY19jYXN0PFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM+
KGluamVjdGVkRnJhbWVzKSwKKyAgICAgICAgdG9XZWJDb3JlVXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lcyhpbmplY3RlZEZyYW1lcyksCiAgICAgICAgIFdlYkNvcmU6OlVzZXJTdHlsZVVzZXJMZXZl
bCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224759</attachid>
            <date>2014-02-20 08:42:27 -0800</date>
            <delta_ts>2014-02-20 10:41:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127800-20140220164225.patch</filename>
            <type>text/plain</type>
            <size>70846</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMxZTlmNjc1MzQzYjAxODFm
YTQ3NDkyOWI1NjFlMjZjOWZhMDliZmQuLjBiYTBlNGU2MmEzYWFhYWJiMTIwYTRmNTMzMmFlMTBi
NTg4M2FkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDItMjAgIEVucmlxdWUg
T2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXRH
VEsrIHNob3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRm
b3JtR1RLLmNtYWtlOiBSZW1vdmVkIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwCisKIDIwMTQtMDIt
MTggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ2hhbmdpbmcg
c2VsZWN0aW9uIHNob3VsZG4ndCBzeW5jaHJvbm91c2x5IHVwZGF0ZSBlZGl0b3IgVUkgY29tcG9u
ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGFmYTVlY2JmYzJlY2U1OGY0ZjUwZGZhZTI0ZjMwM2Yy
MmQ5ZmNmMmMuLjUzNmE5NmJhMmZiMjlhNzkzMmE2NDQ0ZDU3NWJlYTI4OTY0ZDFlNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNC0wMi0yMCAgRW5yaXF1ZSBPY2HDsWEg
R29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYktpdEdUSysgc2hv
dWxkIHN0b3AgdXNpbmcgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSBtYWNyb3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
YW06IFJlbW92ZWQgQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVk
IHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1dlYkNvcmVGaW5kT3B0aW9ucyk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpbmRTdHJpbmcpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDogRGVmaW5lZCBhbmQgYXBwbGll
ZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoV2ViS2l0Ojp0b1dlYktpdE5ldHdvcmtFcnJv
cik6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxM
b2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
RmFpbExvYWQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFs
bEJhY2spOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDog
RGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoV2ViS2l0Ojpr
aXQpOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAg
ICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDog
RGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAoY29weUd0a1Rh
cmdldExpc3RDb252ZXJ0aW5nV2ViQ29yZUVudW1WYWx1ZXNUb1dlYktpdEVudW1WYWx1ZXMpOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UpOgorICAgICAgICAod2Via2l0X3dlYl92
aWV3X2luaXQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0
KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3QpOgorICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOiBBZGRlZCB0YXJnZXRMaXN0IHBy
aXZhdGUgZmllbGQsIHdoaWNoIG1pcnJvcnMgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3Rl
Ym9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdCgpIGJ1dCB3aXRoIHRoZSBmbGFncyBjb252ZXJ0ZWQg
dG8gV2ViS2l0V2ViVmlld1RhcmdldEluZm8KKwogMjAxNC0wMi0xNyAgU2VyZ2lvIENvcnJlaWEg
IDxzZXJnaW8uY29ycmVpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJlcGxhY2UgdXNlcyBv
ZiBQYXNzT3duUHRyL093blB0ciB3aXRoIHN0ZDo6dW5pcXVlX3B0ciBpbiBXZWJDb3JlL2luc3Bl
Y3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGU2NzI5YTNmYmU5ZjVjMDRhMzFjMmFhZTdlMzQ3OWE5NzQwNTQ0
ZjkuLmRhNDliNzdiN2UwYmVjZjExYWFhMjJiMzJiZDdjNzhjYzQ2NmIzNWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2MSBAQAorMjAxNC0wMi0yMCAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8
ZW9jYW5oYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFdlYktpdEdUSysgc2hvdWxkIHN0b3AgdXNp
bmcgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSBtYWNyb3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzgwMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZl
cnNpb25zLgorICAgICAgICAod2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3NjaGVt
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5jcHA6
IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViS2l0
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGljeSk6
CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X3BlcnNpc3RlbnRfc3RvcmFnZSk6
CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X2FjY2VwdF9wb2xpY3kpOgorICAg
ICAgICAod2Via2l0Q29va2llTWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcDogRGVmaW5lZCBhbmQg
YXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRDcmVkZW50aWFsUGVy
c2lzdGVuY2UpOgorICAgICAgICAodG9XZWJDb3JlQ3JlZGVudGlhbFBlcnNpc3RlbmNlKToKKyAg
ICAgICAgKHdlYmtpdF9jcmVkZW50aWFsX25ldyk6CisgICAgICAgICh3ZWJraXRfY3JlZGVudGlh
bF9nZXRfcGVyc2lzdGVuY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERv
d25sb2FkLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAg
ICAod2Via2l0RG93bmxvYWRGYWlsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEVycm9yLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcDogRGVmaW5l
ZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRGaW5kT3B0
aW9ucyk6CisgICAgICAgICh3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0pOgorICAgICAgICAo
d2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4dCk6CisgICAgICAgICh3ZWJraXRfZmlu
ZF9jb250cm9sbGVyX3NlYXJjaF9wcmV2aW91cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaDogQWRkZWQgbmV3IHByaXZhdGUgZmllbGRzIHRvIHRo
ZSBlbnVtLCBuZWVkZWQgdG8gbWF0Y2ggY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChkaWRSZWNlaXZlV2ViVmlld01lc3NhZ2VG
cm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExv
YWRlckNsaWVudC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAg
ICAgICAgKGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAg
IChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UG9saWN5Q2xpZW50LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgor
ICAgICAgICAodG9XZWJLaXROYXZpZ2F0aW9uVHlwZSk6CisgICAgICAgIChkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24u
Y3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChkcmF3
UGFnZXNGb3JQcmludGluZ0NvbXBsZXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UHJpdmF0ZS5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4K
KyAgICAgICAgKHRvV2ViS2l0RXJyb3IpOgorICAgICAgICAodG9XZWJDb3JlRXJyb3IpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaDogRGVmaW5lZCBhbmQgYXBw
bGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFVSSVNjaGVtZVJlcXVlc3QuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lv
bnMuCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcik6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHA6IERlZmluZWQg
YW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViS2l0UHJvY2Vzc01v
ZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2RlbCk6Cisg
ICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVk
IHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1NuYXBzaG90UmVnaW9uKToKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252
ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViQ29yZVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpOgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KToKKwog
MjAxNC0wMi0xOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtl
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAxY2IyMTg0ZWVhZTIxMTU2
YWEyNjU3MWMwYjIyYWM3MjMxOGMwMWFkLi42MjgwMTI4NThmNDQ5MzBlYzQyYjRlMDliNjUyZWQ3
OTMzMGY5ODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQwLDcgKzQwLDYgQEAgbGlz
dChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRHVEtf
QVBJX0RJUn0vd2Via2l0bWFyc2hhbC5jcHAKIAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9BY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAotICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9B
c3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCiAgICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNw
cAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRHdGsuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0dOVW1ha2VmaWxlLmFtCmluZGV4IDY0ZWQ1M2UzOTRkZTIxMDQ2YjllMWM3YTBlZjE2Nzkz
MzliYTEzZmUuLmQ1M2YxYjBjMGY4NTQ3MjE4MDZkNjZiYTJhMGUxOWFjMmIzNWYxNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0dOVW1ha2VmaWxlLmFtCkBAIC0xOTAsNyArMTkwLDYgQEAgQlVJTFRfU09VUkNFUyAr
PSAkKHdlYmtpdGd0a19idWlsdF9zb3VyY2VzKQogd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0R0wuY3BwIFwKLQlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQmF0dGVyeUNsaWVudEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0JhdHRlcnlDbGllbnRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMmZlODA5ZWRhMDlmYzEyYzgxMjgzMGYxYTMxOTkxOWNmZjQ2ODEw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTEgQ29sbGFi
b3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLS8vIFVzZSB0aGlzIGZp
bGUgdG8gYXNzZXJ0IHRoYXQgdmFyaW91cyBXZWJLaXQgQVBJIGVudW0gdmFsdWVzIGNvbnRpbnVl
Ci0vLyBtYXRjaGluZyBXZWJDb3JlIGRlZmluZWQgZW51bSB2YWx1ZXMuCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLQotI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgotI2luY2x1
ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCi0jaW5j
bHVkZSAiRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCi0jaW5j
bHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgotI2luY2x1ZGUgIndlYmtpdGVycm9yLmgiCi0jaW5j
bHVkZSAid2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnNl
dHRpbmdzLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgotI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+Ci0KLSNkZWZpbmUgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSh3ZWJraXRf
bmFtZSwgd2ViY29yZV9uYW1lKSBcCi0gICAgQ09NUElMRV9BU1NFUlQoaW50KHdlYmtpdF9uYW1l
KSA9PSBpbnQoV2ViQ29yZTo6d2ViY29yZV9uYW1lKSwgbWlzbWF0Y2hpbmdfZW51bXMpCi0KLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfTUFDLCBF
ZGl0aW5nTWFjQmVoYXZpb3IpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
RURJVElOR19CRUhBVklPUl9XSU5ET1dTLCBFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKLUNPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfVU5JWCwgRWRp
dGluZ1VuaXhCZWhhdmlvcik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQsIE5hdmlnYXRpb25UeXBlTGlua0Ns
aWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklHQVRJ
T05fUkVBU09OX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQpOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09O
X0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fUkVMT0FELCBOYXZp
Z2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9X
RUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5cGVGb3Jt
UmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05B
VklHQVRJT05fUkVBU09OX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zQXRXb3JkU3RhcnRzLCBB
dFdvcmRTdGFydHMpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZp
bmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQsIFRyZWF0TWVkaWFsQ2FwaXRh
bEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViS2l0OjpXZWJG
aW5kT3B0aW9uc0JhY2t3YXJkcywgQmFja3dhcmRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViS2l0OjpXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQsIFdyYXBBcm91bmQpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zU3RhcnRJblNl
bGVjdGlvbiwgU3RhcnRJblNlbGVjdGlvbik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUwsIFBhc3RlYm9hcmRIZWxwZXI6OlRh
cmdldFR5cGVNYXJrdXApOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VC
X1ZJRVdfVEFSR0VUX0lORk9fVEVYVCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQp
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lO
Rk9fSU1BR0UsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVJbWFnZSk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19VUklfTElTVCwg
UGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3QpOwotQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fTkVUU0NBUEVfVVJMLCBQYXN0
ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTmV0c2NhcGVVUkwpOwotCi1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRCwgTmV0d29ya0Vycm9yRmFp
bGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJST1Jf
VFJBTlNQT1JULCBOZXR3b3JrRXJyb3JUcmFuc3BvcnQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MLCBOZXR3b3JrRXJy
b3JVbmtub3duUHJvdG9jb2wpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
TkVUV09SS19FUlJPUl9DQU5DRUxMRUQsIE5ldHdvcmtFcnJvckNhbmNlbGxlZCk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19OT1Rf
RVhJU1QsIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QpOwotCi1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVELCBQb2xpY3lFcnJvckZhaWxl
ZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FO
Tk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSk7Ci1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1df
VVJMLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZ
X0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlKTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1Rf
VVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydCk7
Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlM
RUQsIFBsdWdpbkVycm9yRmFpbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU4sIFBsdWdpbkVycm9yQ2Fubm90Rmlu
ZFBsdWdpbik7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJS
T1JfQ0FOTk9UX0xPQURfUExVR0lOLCBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVnaW4pOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5BVkFJ
TEFCTEUsIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNFTExFRCwgUGx1Z2lu
RXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FELCBQbHVnaW5FcnJvcldpbGxIYW5k
bGVMb2FkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDlkZDllNzE0ZDY0MzIzOWU5
NTg4NTExYWEyYzUwMzhmMmM1YjFiZmEuLmY0NTg3N2MwZmU2Y2ExOWFlOTEzZjkyYjI1NWUwN2Ri
YmEwNzdkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtODYsNiArODYsMTYgQEAg
Ym9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW4g
PSB0cnVlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpGcmFtZUxvYWRFdmVudENhbGxiYWNr
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRFdmVudENhbGxiYWNrID0gMDsK
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGljYXRpb25DYWxsYmFjayBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxsYmFjayA9IDA7CiAKK3N0YXRp
YyBpbmxpbmUgV2ViQ29yZTo6RmluZE9wdGlvbnMgdG9XZWJDb3JlRmluZE9wdGlvbnMoV2ViS2l0
RmluZE9wdGlvbnMgdHlwZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Rmlu
ZE9wdGlvbnM+KCh0eXBlICYgV2ViRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgPyBDYXNlSW5z
ZW5zaXRpdmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNBdFdvcmRTdGFy
dHMgPyBBdFdvcmRTdGFydHMgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNU
cmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCA/IFRyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0
YXJ0IDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zQmFja3dhcmRzID8gQmFj
a3dhcmRzIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zV3JhcEFyb3VuZCA/
IFdyYXBBcm91bmQgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNTdGFydElu
U2VsZWN0aW9uID8gU3RhcnRJblNlbGVjdGlvbiA6IDApKTsKK30KKwogRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsoKQogewogfQpAQCAtNDc1LDcgKzQ4
NSw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjbGVhck9wZW5lcihXZWJLaXRX
ZWJGcmFtZSogZnJhbWUpCiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaW5kU3Ry
aW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiB0YXJnZXRTdHJpbmcsIFdl
YktpdEZpbmRPcHRpb25zIGZpbmRPcHRpb25zKQogewotICAgIHJldHVybiBjb3JlKHdlYlZpZXcp
LT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgodGFyZ2V0U3RyaW5nKSwgZmluZE9wdGlvbnMp
OworICAgIHJldHVybiBjb3JlKHdlYlZpZXcpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgo
dGFyZ2V0U3RyaW5nKSwgdG9XZWJDb3JlRmluZE9wdGlvbnMoZmluZE9wdGlvbnMpKTsKIH0KIAog
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFZhbHVlRm9yVXNlcihKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub2RlT2JqZWN0LCBKU1N0cmluZ1JlZiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcAppbmRleCBiMjRlMDg5YzlkMTMxMTJjYTYyYTBjZDAxNGY1YzhhZDZmYzI3
ZTAxLi4yZjhhY2JiM2ZiMGRlOTBkZDU3ZTkwMGRiYjE4ZGFkODgwOWNlNjE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwCkBAIC0xMDQsNiArMTA0LDQ3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAoraW5saW5lIGludCB0b1dlYktpdE5ldHdvcmtFcnJvcihp
bnQgZXJyb3JDb2RlKQoreworICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7CisgICAgY2FzZSBOZXR3
b3JrRXJyb3JGYWlsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlM
RUQ7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JUcmFuc3BvcnQ6CisgICAgICAgIHJldHVybiBXRUJL
SVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQ7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JVbmtub3du
UHJvdG9jb2w6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BS
T1RPQ09MOworICAgIGNhc2UgTmV0d29ya0Vycm9yQ2FuY2VsbGVkOgorICAgICAgICByZXR1cm4g
V0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEOworICAgIGNhc2UgTmV0d29ya0Vycm9yRmls
ZURvZXNOb3RFeGlzdDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVf
RE9FU19OT1RfRVhJU1Q7CisgICAgY2FzZSBQb2xpY3lFcnJvckZhaWxlZDoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVEOworICAgIGNhc2UgUG9saWN5RXJyb3JDYW5u
b3RTaG93TWltZVR5cGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5P
VF9TSE9XX01JTUVfVFlQRTsKKyAgICBjYXNlIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDoKKyAg
ICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJMOworICAgIGNh
c2UgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlOgorICAgICAg
ICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZX1BP
TElDWV9DSEFOR0U7CisgICAgY2FzZSBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQb3J0
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNU
RURfUE9SVDsKKyAgICBjYXNlIFBsdWdpbkVycm9yRmFpbGVkOgorICAgICAgICByZXR1cm4gV0VC
S0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ7CisgICAgY2FzZSBQbHVnaW5FcnJvckNhbm5vdEZpbmRQ
bHVnaW46CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5EX1BM
VUdJTjsKKyAgICBjYXNlIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbjoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOworICAgIGNhc2UgUGx1
Z2luRXJyb3JKYXZhVW5hdmFpbGFibGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VS
Uk9SX0pBVkFfVU5BVkFJTEFCTEU7CisgICAgY2FzZSBQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5j
ZWxsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJT05fQ0FO
Q0VMTEVEOworICAgIGNhc2UgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZDoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRX
T1JLX0VSUk9SX0ZBSUxFRDsKKyAgICB9Cit9CisKIEZyYW1lTG9hZGVyQ2xpZW50OjpGcmFtZUxv
YWRlckNsaWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQog
ICAgICwgbV9wb2xpY3lEZWNpc2lvbigwKQpAQCAtOTkyLDcgKzEwMzMsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyKiBsb2FkZXIsCiAgICAgICAgIHJldHVybjsKIAogICAgIEdVbmlxdWVQdHI8R0Vycm9yPiB3
ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVhcmtfZnJvbV9zdHJpbmcoZXJyb3IuZG9t
YWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIGVycm9yLmVycm9yQ29kZSgpLCBlcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJLaXRO
ZXR3b3JrRXJyb3IoZXJyb3IuZXJyb3JDb2RlKCkpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJSZXNv
dXJjZSwgImxvYWQtZmFpbGVkIiwgd2ViRXJyb3IuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtbG9hZC1mYWlsZWQiLCB3ZWJSZXNvdXJjZSwgd2Vi
RXJyb3IuZ2V0KCkpOwpAQCAtMTAyMCw5ICsxMDYxLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAg
bm90aWZ5U3RhdHVzKG1fZnJhbWUsIFdFQktJVF9MT0FEX0ZBSUxFRCk7CiAKICAgICBXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKwogICAgIEdVbmlx
dWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKAogICAgICAgICBnX3F1
YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICBl
cnJvci5lcnJvckNvZGUoKSwKKyAgICAgICAgdG9XZWJLaXROZXR3b3JrRXJyb3IoZXJyb3IuZXJy
b3JDb2RlKCkpLAogICAgICAgICBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5k
YXRhKCkpKTsKICAgICBnYm9vbGVhbiBpc0hhbmRsZWQgPSBmYWxzZTsKICAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUod2ViVmlldywgImxvYWQtZXJyb3IiLCBtX2ZyYW1lLCBlcnJvci5mYWlsaW5n
VVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCksICZpc0hhbmRsZWQpOwpAQCAtMTA5
NCw3ICsxMTM2LDcgQEAgUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2ls
bEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogYm9vbCBGcmFtZUxvYWRl
ckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0g
ICAgcmV0dXJuICEoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSB8fCBlcnJvci5lcnJvckNvZGUoKSA9
PSBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NI
QU5HRSB8fCBlcnJvci5lcnJvckNvZGUoKSA9PSBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExfSEFO
RExFX0xPQUQpOworICAgIHJldHVybiAhKGVycm9yLmlzQ2FuY2VsbGF0aW9uKCkgfHwgZXJyb3Iu
ZXJyb3JDb2RlKCkgPT0gUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hh
bmdlIHx8IGVycm9yLmVycm9yQ29kZSgpID09IFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQpOwog
fQogCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24u
Y3BwCmluZGV4IGM3OGU3NTRhZWVjYmU1YTJmY2QzY2QyMmY4YzFkZWQ0NDgzZDk0MTEuLmFkNmYw
YzhmNGQwMWU5OWIzN2VmYWRlMWQxYjE1MWI5NTNmMjBmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKQEAgLTM2
NCwxMiArMzY0LDQ0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRXZWJOYXZpZ2F0aW9u
UmVhc29uIGtpdChXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQogewotICAgIHJldHVybiAo
V2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbil0eXBlOworICAgIHN3aXRjaCh0eXBlKSB7CisgICAg
Y2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkOgorICAgICAgICByZXR1cm4g
V0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQ7CisgICAgY2FzZSBXZWJD
b3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRf
V0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVEOworICAgIGNhc2UgV2ViQ29yZTo6
TmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJfTkFW
SUdBVElPTl9SRUFTT05fQkFDS19GT1JXQVJEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdhdGlv
blR5cGVSZWxvYWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09O
X1JFTE9BRDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVk
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9GT1JNX1JFU1VC
TUlUVEVEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAg
cmV0dXJuIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fT1RIRVI7CisgICAgZGVmYXVsdDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VC
X05BVklHQVRJT05fUkVBU09OX0xJTktfQ0xJQ0tFRDsKKyAgICB9CiB9CiAKIFdlYkNvcmU6Ok5h
dmlnYXRpb25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiB0eXBlKQogewotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZT4odHlwZSk7CisgICAg
c3dpdGNoKHR5cGUpIHsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fTElO
S19DTElDS0VEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVMaW5rQ2xp
Y2tlZDsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9TVUJNSVRU
RUQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ7
CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0JBQ0tfRk9SV0FSRDoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlQmFja0ZvcndhcmQ7CisgICAgY2Fz
ZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX1JFTE9BRDoKKyAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Ok5hdmlnYXRpb25UeXBlUmVsb2FkOworICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJR0FU
SU9OX1JFQVNPTl9GT1JNX1JFU1VCTUlUVEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2
aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQ7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJ
T05fUkVBU09OX09USEVSOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVP
dGhlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQ7CisgICAgfQogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcApp
bmRleCA3NDJiMjNkNDBhZDU0NzgzMzJkNDFjOGMyYjI3YTNmZTZlMTRhOTBkLi5jMTNiYzBlZGZh
YTEzZGQ1NmM1YmU4MTdlYzRlZmYyOThkNmY0YjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKQEAgLTE2NTgsOSArMTY1OCwxOSBAQCBjaGFy
KiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShXZWJLaXRXZWJTZXR0aW5ncyogd2Vi
U2V0dGluZ3MsIGNvbnN0IGNoYQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViQ29yZTo6RWRp
dGluZ0JlaGF2aW9yVHlwZSBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciB0eXBlKQoraW5saW5l
IFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5cGUgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3Ig
dHlwZSkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9y
VHlwZT4odHlwZSk7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBXRUJLSVRfRURJVElO
R19CRUhBVklPUl9NQUM6CisgICAgICAgIHJldHVybiBFZGl0aW5nTWFjQmVoYXZpb3I7CisgICAg
Y2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9XSU5ET1dTOgorICAgICAgICByZXR1cm4gRWRp
dGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICBjYXNlIFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX1VO
SVg6CisgICAgICAgIHJldHVybiBFZGl0aW5nVW5peEJlaGF2aW9yOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gRWRpdGluZ01hY0Jl
aGF2aW9yOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCmluZGV4IDQ4ZjE1YzljZDhmODk5NzY0Y2YwN2ZlODEyYjlmYjI0MGYwYTllMGMu
LjFhMmIwMTczMTY2OTdmZGE1ZGYzOWQ2Y2I2Y2FkZTE5YWY5OTRhOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTExOSw2ICsxMTksNyBAQAogI2lu
Y2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMu
aD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQpAQCAtMjgyLDYgKzI4Myw0NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0
dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1Bhcgogc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF93aW5kb3dfZmVhdHVyZXMoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzKTsKIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdEaXJlY3Rpb25DaGFuZ2VkKFdlYktpdFdlYlZpZXcqLCBH
dGtUZXh0RGlyZWN0aW9uIHByZXZpb3VzRGlyZWN0aW9uLCBncG9pbnRlcik7CiAKK3N0YXRpYyBp
bmxpbmUgV2ViS2l0V2ViVmlld1RhcmdldEluZm8gdG9XZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyhQ
YXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0VHlwZSBmbGFncykKK3sKKyAgICBzd2l0
Y2ggKGZsYWdzKSB7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTWFya3Vw
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUw7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQ6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlSW1hZ2U6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSU1BR0U7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3Q6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVVJJX0xJU1Q7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZU5ldHNjYXBlVVJM
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX05FVFNDQVBFX1VS
TDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTDsK
KyAgICB9Cit9CisKK3N0YXRpYyBHdGtUYXJnZXRMaXN0KiBjb3B5R3RrVGFyZ2V0TGlzdENvbnZl
cnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhHdGtUYXJnZXRMaXN0KiBj
b3JlR3RrVGFyZ2V0TGlzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlR3RrVGFy
Z2V0TGlzdCwgbnVsbHB0cik7CisKKyAgICBHdGtUYXJnZXRMaXN0KiB0YXJnZXRMaXN0V2l0aFdl
YktpdEVudW1WYWx1ZXMgPSBudWxscHRyOworICAgIGludCB0YWJsZVNpemUgPSAwOworICAgIEd0
a1RhcmdldEVudHJ5KiB0YWJsZShndGtfdGFyZ2V0X3RhYmxlX25ld19mcm9tX2xpc3QoY29yZUd0
a1RhcmdldExpc3QsICZ0YWJsZVNpemUpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGFi
bGVTaXplOyBpKyspCisgICAgICAgIHRhYmxlW2ldLmZsYWdzID0gdG9XZWJLaXRXZWJWaWV3VGFy
Z2V0SW5mbyhzdGF0aWNfY2FzdDxQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0VHlw
ZT4odGFibGVbaV0uZmxhZ3MpKTsKKworICAgIHRhcmdldExpc3RXaXRoV2ViS2l0RW51bVZhbHVl
cyA9IGd0a190YXJnZXRfbGlzdF9uZXcodGFibGUsIHRhYmxlU2l6ZSk7CisgICAgZ3RrX3Rhcmdl
dF90YWJsZV9mcmVlKHRhYmxlLCB0YWJsZVNpemUpOworCisgICAgcmV0dXJuIHRhcmdldExpc3RX
aXRoV2ViS2l0RW51bVZhbHVlczsKK30KKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogc3Rh
dGljIHZvaWQgUG9wdXBNZW51UG9zaXRpb25GdW5jKEd0a01lbnUqIG1lbnUsIGdpbnQgKngsIGdp
bnQgKnksIGdib29sZWFuICpwdXNoSW4sIGdwb2ludGVyIHVzZXJEYXRhKQogewpAQCAtMTM4MCw2
ICsxNDIyLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UoR09iamVjdCog
b2JqZWN0KQogICAgIHByaXYtPndlYldpbmRvd0ZlYXR1cmVzLmNsZWFyKCk7CiAgICAgcHJpdi0+
bWFpblJlc291cmNlLmNsZWFyKCk7CiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzLmNsZWFyKCk7Cisg
ICAgcHJpdi0+dGFyZ2V0TGlzdC5jbGVhcigpOwogCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0
X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKIApAQCAtMzg3MywxMCAr
MzkxNiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQogCiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzID0gYWRvcHRHUmVmKGdfaGFzaF90
YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwgZ19mcmVlLCBnX29iamVjdF91
bnJlZikpOwogCisgICAgcHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5R3RrVGFyZ2V0
TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQYXN0ZWJv
YXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpKTsKKwog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgcHJpdi0+ZHJhZ0FuZERyb3BIZWxwZXIuc2V0
V2lkZ2V0KEdUS19XSURHRVQod2ViVmlldykpOwogICAgIGd0a19kcmFnX2Rlc3Rfc2V0KEdUS19X
SURHRVQod2ViVmlldyksIHN0YXRpY19jYXN0PEd0a0Rlc3REZWZhdWx0cz4oMCksIDAsIDAsIHN0
YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KEdES19BQ1RJT05fQ09QWSB8IEdES19BQ1RJT05fQ09Q
WSB8IEdES19BQ1RJT05fTU9WRSB8IEdES19BQ1RJT05fTElOSyB8IEdES19BQ1RJT05fUFJJVkFU
RSkpOwotICAgIGd0a19kcmFnX2Rlc3Rfc2V0X3RhcmdldF9saXN0KEdUS19XSURHRVQod2ViVmll
dyksIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExp
c3QoKSk7CisgICAgZ3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0X2xpc3QoR1RLX1dJREdFVCh3ZWJW
aWV3KSwgcHJpdi0+dGFyZ2V0TGlzdC5nZXQoKSk7CiAjZW5kaWYKIAogICAgIHByaXYtPnNlbGZT
Y3JvbGxpbmcgPSBmYWxzZTsKQEAgLTQ2OTEsNyArNDczNiw4IEBAIHZvaWQgd2Via2l0X3dlYl92
aWV3X3NldF9lZGl0YWJsZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBmbGFnKQog
ICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7Ci0gICAgcmV0dXJuIFBhc3RlYm9hcmRIZWxwZXI6
OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKTsKKyAgICB3ZWJWaWV3LT5w
cml2LT50YXJnZXRMaXN0ID0gYWRvcHRHUmVmKGNvcHlHdGtUYXJnZXRMaXN0Q29udmVydGluZ1dl
YkNvcmVFbnVtVmFsdWVzVG9XZWJLaXRFbnVtVmFsdWVzKFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1
bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKSkpOworICAgIHJldHVybiB3ZWJWaWV3
LT5wcml2LT50YXJnZXRMaXN0LmdldCgpOwogfQogCiAvKioKQEAgLTQ3MDgsNyArNDc1NCw4IEBA
IEd0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdChXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3KQogICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3
X2dldF9wYXN0ZV90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotICAgIHJl
dHVybiBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRM
aXN0KCk7CisgICAgd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5R3Rr
VGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQ
YXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkp
KTsKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdC5nZXQoKTsKIH0KIAogLyoq
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCmlu
ZGV4IDNmNjkyN2UxNjJkYjFkMjA5NjI1MGY1NmUzODMzM2NhZTBkZjc0M2IuLjZiOTAzNmNkZjRl
MWY1N2ViMjkyODU5ZTg3ODFmMzgxM2I3MjYyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgc3RydWN0
IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVyIGNs
aWNrQ291bnRlcjsKICAgICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5kRHJv
cEhlbHBlcjsKICAgICBib29sIHNlbGZTY3JvbGxpbmc7CisgICAgR1JlZlB0cjxHdGtUYXJnZXRM
aXN0PiB0YXJnZXRMaXN0OwogCiAgICAgT3duUHRyPFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQ+IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvblJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVu
dGljYXRpb25SZXF1ZXN0LmNwcAppbmRleCA2ZjBjMzcwN2UzNzhlNDJhOTNiMmRmYjkzYWQwZjMw
YWU1YjdiMmRhLi5jYTc0ODBjZDkyMjI0NTlkNDcyMDNkYzk0M2RlNTMxZmI3MWUwYjljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNh
dGlvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5jcHAKQEAgLTY3LDE4ICs2NywzNSBAQCBzdHJ1Y3Qg
X1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdFByaXZhdGUgewogCiBzdGF0aWMgZ3VpbnQgc2ln
bmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxULCBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUMsIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0RJR0VTVCwgUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0KTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVE1MX0ZPUk0sIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm0pOwotQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05UTE0sIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfTkVHT1RJQVRFLCBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfQ0xJRU5UX0NFUlRJRklDQVRF
X1JFUVVFU1RFRCwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9B
VVRIRU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVELCBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNB
VElPTl9TQ0hFTUVfVU5LTk9XTiwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVV
bmtub3duKTsKLQogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVz
dCwgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpCiAKK2lubGlu
ZSBzdGF0aWMgV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUgdG9XZWJLaXRBdXRoZW50aWNhdGlv
blNjaGVtZShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBjb3Jl
U2NoZW1lKQoreworICAgIHN3aXRjaCAoY29yZVNjaGVtZSkgeworICAgIGNhc2UgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgorICAgICAgICByZXR1
cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIGNhc2UgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6CisgICAgICAg
IHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUM7CisgICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6
CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfRElHRVNU
OworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVI
VE1MRm9ybToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfSFRN
TF9GT1JNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVOVExNOgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9O
VExNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVOZWdvdGlhdGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1F
X05FR09USUFURTsKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgICAgIHJldHVybiBXRUJL
SVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0NMSUVOVF9DRVJUSUZJQ0FURV9SRVFVRVNURUQ7Cisg
ICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZl
clRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5U
SUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVEOworICAgIGNh
c2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9VTktOT1dOOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
V0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIH0KK30KKwogc3RhdGlj
IHZvaWQgd2Via2l0QXV0aGVudGljYXRpb25SZXF1ZXN0RGlzcG9zZShHT2JqZWN0KiBvYmplY3Qp
CiB7CiAgICAgV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lUX0FV
VEhFTlRJQ0FUSU9OX1JFUVVFU1Qob2JqZWN0KTsKQEAgLTI0NCw3ICsyNjEsNyBAQCBXZWJLaXRB
dXRoZW50aWNhdGlvblNjaGVtZSB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRfc2No
ZW1lKFdlYktpdEF1dGhlbgogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19B
VVRIRU5USUNBVElPTl9SRVFVRVNUKHJlcXVlc3QpLCBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NI
RU1FX1VOS05PV04pOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdEF1dGhlbnRpY2F0
aW9uU2NoZW1lPihyZXF1ZXN0LT5wcml2LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+cHJvdGVj
dGlvblNwYWNlKCktPmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkpOworICAgIHJldHVybiB0b1dlYktp
dEF1dGhlbnRpY2F0aW9uU2NoZW1lKHJlcXVlc3QtPnByaXYtPmF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLT5wcm90ZWN0aW9uU3BhY2UoKS0+YXV0aGVudGljYXRpb25TY2hlbWUoKSk7CiB9CiAKIC8q
KgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29v
a2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRD
b29raWVNYW5hZ2VyLmNwcAppbmRleCAzNjRlNGU0N2RjYzNiYmNjMzgzZTgwNzlhNjAwZmUxYTU1
NDY0MmNlLi45MTg5M2I4MGQ0YmIxZTFlMDIyOWIzNzdlYWI3Zjk3ZTJkYTRhZTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVN
YW5hZ2VyLmNwcApAQCAtNjgsMTIgKzY4LDQ4IEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xBU1Rf
U0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdENvb2tpZU1hbmFn
ZXIsIHdlYmtpdF9jb29raWVfbWFuYWdlciwgR19UWVBFX09CSkVDVCkKIAotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhULCBT
b3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUZXh0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfU1FMSVRFLCBTb3VwQ29va2ll
UGVyc2lzdGVudFN0b3JhZ2VTUUxpdGUpOworaW5saW5lIHN0YXRpYyBTb3VwQ29va2llUGVyc2lz
dGVudFN0b3JhZ2VUeXBlIHRvU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZShXZWJLaXRD
b29raWVQZXJzaXN0ZW50U3RvcmFnZSBraXRTdG9yYWdlKQoreworICAgIHN3aXRjaCAoa2l0U3Rv
cmFnZSkgeworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfVEVYVDoK
KyAgICAgICAgcmV0dXJuIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVRleHQ7CisgICAgY2Fz
ZSBXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9TUUxJVEU6CisgICAgICAgIHJldHVy
biBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VTUUxpdGU7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBTb3VwQ29va2llUGVyc2lz
dGVudFN0b3JhZ2VUZXh0OworICAgIH0KK30KKworaW5saW5lIHN0YXRpYyBXZWJLaXRDb29raWVB
Y2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBv
bGljeSBodHRwUG9saWN5KQoreworICAgIHN3aXRjaCAoaHR0cFBvbGljeSkgeworICAgIGNhc2Ug
SFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9DT09L
SUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5
TmV2ZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVWRVI7
CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21h
aW46CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRf
UEFSVFk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfQUxXQVlTOworICAgIH0KK30K
IAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NF
UFRfQUxXQVlTLCBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKTsKLUNPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSLCBIVFRQQ29v
a2llQWNjZXB0UG9saWN5TmV2ZXIpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRfUEFSVFksIEhUVFBDb29raWVBY2NlcHRQ
b2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbik7CitpbmxpbmUgc3RhdGljIEhUVFBDb29r
aWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdENvb2tpZUFjY2Vw
dFBvbGljeSBraXRQb2xpY3kpCit7CisgICAgc3dpdGNoIChraXRQb2xpY3kpIHsKKyAgICBjYXNl
IFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM6CisgICAgICAgIHJldHVybiBIVFRQ
Q29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lf
QUNDRVBUX05FVkVSOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU5ldmVy
OworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZOgor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50
RG9tYWluOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKKyAgICB9Cit9CiAKIHN0
YXRpYyB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9jbGFzc19pbml0KFdlYktpdENvb2tpZU1h
bmFnZXJDbGFzcyogZmluZENsYXNzKQogewpAQCAtMTM3LDcgKzE3Myw3IEBAIHZvaWQgd2Via2l0
X2Nvb2tpZV9tYW5hZ2VyX3NldF9wZXJzaXN0ZW50X3N0b3JhZ2UoV2ViS2l0Q29va2llTWFuYWdl
ciogbWFuYWdlciwKICAgICBnX3JldHVybl9pZl9mYWlsKGZpbGVuYW1lKTsKIAogICAgIG1hbmFn
ZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2VzKCk7
Ci0gICAgbWFuYWdlci0+cHJpdi0+d2ViQ29va2llTWFuYWdlci0+c2V0Q29va2llUGVyc2lzdGVu
dFN0b3JhZ2UoU3RyaW5nOjpmcm9tVVRGOChmaWxlbmFtZSksIHN0b3JhZ2UpOworICAgIG1hbmFn
ZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlKFN0
cmluZzo6ZnJvbVVURjgoZmlsZW5hbWUpLCB0b1NvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5
cGUoc3RvcmFnZSkpOwogICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0YXJ0
T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwogfQogCkBAIC0xNTIsMTMgKzE4OCwxMyBAQCB2b2lk
IHdlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNjZXB0X3BvbGljeShXZWJLaXRDb29raWVNYW5h
Z2VyKiBtYW5hZ2VyLCBXZWJLaQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0NP
T0tJRV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1h
bmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKKyAgICBtYW5hZ2VyLT5w
cml2LT53ZWJDb29raWVNYW5hZ2VyLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHRvSFRUUENv
b2tpZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0Q29va2ll
TWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKFdLSFRUUENvb2tpZUFjY2VwdFBvbGljeSBw
b2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCiB7CiAgICAgR1JlZlB0cjxHVGFzaz4g
dGFzayA9IGFkb3B0R1JlZihHX1RBU0soY29udGV4dCkpOwotICAgIGdfdGFza19yZXR1cm5faW50
KHRhc2suZ2V0KCksIHBvbGljeSk7CisgICAgZ190YXNrX3JldHVybl9pbnQodGFzay5nZXQoKSwg
dG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGlj
eSkpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENyZWRlbnRpYWwuY3BwCmluZGV4IDU3NTVmZDVjN2M4MDY1ZjViMWY2ZjVlMTI4
OTdiMzI3N2IwM2Q0ZWUuLjBiOTA2ZDY3ODhkMzhmYmE3Y2Y0NTk4MjYzY2U3ZTIwMmI0MWE2N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENyZWRl
bnRpYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENy
ZWRlbnRpYWwuY3BwCkBAIC0zNywxMiArMzcsMzggQEAgc3RydWN0IF9XZWJLaXRDcmVkZW50aWFs
IHsKICAgICBDU3RyaW5nIHBhc3N3b3JkOwogfTsKIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FLCBXZWJDb3JlOjpDcmVkZW50
aWFsUGVyc2lzdGVuY2VOb25lKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfRk9SX1NFU1NJT04sIFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZUZvclNlc3Npb24pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQsIFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZVBlcm1hbmVudCk7Ci0KIEdfREVGSU5FX0JPWEVEX1RZUEUoV2ViS2l0Q3JlZGVu
dGlhbCwgd2Via2l0X2NyZWRlbnRpYWwsIHdlYmtpdF9jcmVkZW50aWFsX2NvcHksIHdlYmtpdF9j
cmVkZW50aWFsX2ZyZWUpCiAKK2lubGluZSBzdGF0aWMgV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3Rl
bmNlIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJz
aXN0ZW5jZSBjb3JlUGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChjb3JlUGVyc2lzdGVuY2Up
IHsKKyAgICBjYXNlIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU6CisgICAgICAg
IHJldHVybiBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FOworICAgIGNhc2UgV2Vi
Q29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbjoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX0ZPUl9TRVNTSU9OOworICAgIGNhc2UgV2ViQ29y
ZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlUGVybWFuZW50OgorICAgICAgICByZXR1cm4gV0VCS0lU
X0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5UOworICAgIGRlZmF1bHQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV0VCS0lUX0NSRURFTlRJQUxf
UEVSU0lTVEVOQ0VfTk9ORTsKKyAgICB9Cit9CisKK2lubGluZSBzdGF0aWMgV2ViQ29yZTo6Q3Jl
ZGVudGlhbFBlcnNpc3RlbmNlIHRvV2ViQ29yZUNyZWRlbnRpYWxQZXJzaXN0ZW5jZShXZWJLaXRD
cmVkZW50aWFsUGVyc2lzdGVuY2Uga2l0UGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChraXRQ
ZXJzaXN0ZW5jZSkgeworICAgIGNhc2UgV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfTk9O
RToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU7Cisg
ICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9GT1JfU0VTU0lPTjoKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb247CisgICAg
Y2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQ6CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VQZXJtYW5lbnQ7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lOworICAgIH0KK30KKwogV2ViS2l0Q3JlZGVudGlh
bCogd2Via2l0Q3JlZGVudGlhbENyZWF0ZShjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiBjb3Jl
Q3JlZGVudGlhbCkKIHsKICAgICBXZWJLaXRDcmVkZW50aWFsKiBjcmVkZW50aWFsID0gZ19zbGlj
ZV9uZXcoV2ViS2l0Q3JlZGVudGlhbCk7CkBAIC03Myw3ICs5OSw3IEBAIFdlYktpdENyZWRlbnRp
YWwqIHdlYmtpdF9jcmVkZW50aWFsX25ldyhjb25zdCBnY2hhciogdXNlcm5hbWUsIGNvbnN0IGdj
aGFyKiBwYXNzCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwodXNlcm5hbWUsIDApOwogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHBhc3N3b3JkLCAwKTsKIAotICAgIHJldHVybiB3ZWJraXRDcmVk
ZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2VybmFt
ZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDcmVk
ZW50aWFsUGVyc2lzdGVuY2U+KHBlcnNpc3RlbmNlKSkpOworICAgIHJldHVybiB3ZWJraXRDcmVk
ZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2VybmFt
ZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCB0b1dlYkNvcmVDcmVkZW50aWFsUGVyc2lz
dGVuY2UocGVyc2lzdGVuY2UpKSk7CiB9CiAKIC8qKgpAQCAtMTc4LDUgKzIwNCw1IEBAIFdlYktp
dENyZWRlbnRpYWxQZXJzaXN0ZW5jZSB3ZWJraXRfY3JlZGVudGlhbF9nZXRfcGVyc2lzdGVuY2Uo
V2ViS2l0Q3JlZGVudGlhbCoKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjcmVkZW50aWFs
LCBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FKTsKIAotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxXZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGNyZWRlbnRpYWwtPmNyZWRlbnRp
YWwucGVyc2lzdGVuY2UoKSk7CisgICAgcmV0dXJuIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3Rl
bmNlKGNyZWRlbnRpYWwtPmNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKaW5kZXgg
ZTk1ZTRjMDY1MGIzOTNlOGM4YWFiYjY0M2NiMzcwZmVlNDQ5ZDU5My4uYzQ4M2I5MjdjZmQyMzY3
MDVjMjI4NmQ3NmM3Nzc2MmRlMGVjMDA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2lu
Y2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXREb3dubG9hZFByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4KQEAg
LTM0MCw3ICszNDEsNyBAQCB2b2lkIHdlYmtpdERvd25sb2FkTm90aWZ5UHJvZ3Jlc3MoV2ViS2l0
RG93bmxvYWQqIGRvd25sb2FkLCBndWludDY0IGJ5dGVzUmVjZWl2ZQogdm9pZCB3ZWJraXREb3du
bG9hZEZhaWxlZChXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IFJlc291cmNlRXJyb3Im
IHJlc291cmNlRXJyb3IpCiB7CiAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVycm9yKGdfZXJy
b3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhyZXNvdXJjZUVycm9yLmRvbWFpbigp
LnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCByZXNv
dXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAg
ICB0b1dlYktpdEVycm9yKHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCkpLCByZXNvdXJjZUVycm9y
LmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIGlmIChkb3dubG9h
ZC0+cHJpdi0+dGltZXIpCiAgICAgICAgIGdfdGltZXJfc3RvcChkb3dubG9hZC0+cHJpdi0+dGlt
ZXIuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRFcnJvci5jcHAKaW5kZXggYzA2ZGM2MWE1OGNjNGFhMGE2YzE2ZGE2NTQ2NDA0YTYwZTAxMjRm
ZS4uNzQxOWVlNzIxYTBmZTg2YWJjMzY0MzZkMjRlYzI1ZTQ2NDIzZThjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcApAQCAtNDAsNTMg
KzQwLDI2IEBAIEdRdWFyayB3ZWJraXRfbmV0d29ya19lcnJvcl9xdWFyaygpCiAgICAgcmV0dXJu
IGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9yRG9tYWluTmV0d29yayk7
CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJST1Jf
RkFJTEVELCBOZXR3b3JrRXJyb3JGYWlsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQsIE5ldHdvcmtFcnJvclRyYW5zcG9ydCk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05P
V05fUFJPVE9DT0wsIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRCwgTmV0d29ya0Vy
cm9yQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdP
UktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVCwgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RFeGlz
dCk7Ci0KIEdRdWFyayB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrKCkKIHsKICAgICByZXR1cm4g
Z19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5Qb2xpY3kpOwog
fQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJ
TEVELCBQb2xpY3lFcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNhbm5v
dFNob3dNaW1lVHlwZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJ
Q1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURf
SU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1
cHRlZEJ5UG9saWN5Q2hhbmdlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lU
X1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JDYW5u
b3RVc2VSZXN0cmljdGVkUG9ydCk7Ci0KIEdRdWFyayB3ZWJraXRfcGx1Z2luX2Vycm9yX3F1YXJr
KCkKIHsKICAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJy
b3JEb21haW5QbHVnaW4pOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9QTFVHSU5fRVJST1JfRkFJTEVELCBQbHVnaW5FcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOLCBQ
bHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTiwgUGx1Z2luRXJyb3JDYW5u
b3RMb2FkUGx1Z2luKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BMVUdJ
Tl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFLCBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSk7Ci1D
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElP
Tl9DQU5DRUxMRUQsIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRCwg
UGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCk7Ci0KIEdRdWFyayB3ZWJraXRfZG93bmxvYWRfZXJy
b3JfcXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJD
b3JlOjplcnJvckRvbWFpbkRvd25sb2FkKTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSywgRG93bmxvYWRFcnJvck5ldHdvcmsp
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfQ0FO
Q0VMTEVEX0JZX1VTRVIsIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIpOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT04sIERv
d25sb2FkRXJyb3JEZXN0aW5hdGlvbik7Ci0KIEdRdWFyayB3ZWJraXRfcHJpbnRfZXJyb3JfcXVh
cmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3JlOjpl
cnJvckRvbWFpblByaW50KTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfUFJJTlRfRVJST1JfR0VORVJBTCwgUHJpbnRFcnJvckdlbmVyYWwpOwotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQsIFBy
aW50RXJyb3JQcmludGVyTm90Rm91bmQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9QQUdFX1JBTkdFLCBQcmludEVycm9ySW52YWxpZFBh
Z2VSYW5nZSk7Ci0KIEdRdWFyayB3ZWJraXRfamF2YXNjcmlwdF9lcnJvcl9xdWFyaygpCiB7CiAg
ICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKCJXZWJLaXRKYXZhc2NyaXB0RXJy
b3IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmNwcAppbmRleCA4NzU5MzA2ZTJiY2YxZjk2MWU1Nzg0MWNiMTQ2
YjYwZmMyNmQ1OWY2Li42ZTcxNDFlNGU4M2Q4NTEwZmUzODRhZTA3YTVkNzIwNzc4YTljMzBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
RmluZENvbnRyb2xsZXIuY3BwCkBAIC04MiwxMSArODIsMjIgQEAgc3RhdGljIGd1aW50IHNpZ25h
bHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0Rmlu
ZENvbnRyb2xsZXIsIHdlYmtpdF9maW5kX2NvbnRyb2xsZXIsIEdfVFlQRV9PQkpFQ1QpCiAKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VO
U0lUSVZFLCBGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9GSU5EX09QVElPTlNfQVRfV09SRF9TVEFSVFMsIEZpbmRPcHRpb25z
QXRXb3JkU3RhcnRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRf
T1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJULCBGaW5kT3B0aW9uc1Ry
ZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMsIEZpbmRPcHRpb25zQmFja3dhcmRzKTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19XUkFQX0FS
T1VORCwgRmluZE9wdGlvbnNXcmFwQXJvdW5kKTsKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5k
T3B0aW9ucyB0b1dlYktpdEZpbmRPcHRpb25zKFdlYktpdEZpbmRPcHRpb25zIHR5cGUpCit7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KCh0eXBlICYgV0VCS0lU
X0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VOU0lUSVZFID8gRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRp
dmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19BVF9XT1JEX1NU
QVJUUyA/IEZpbmRPcHRpb25zQXRXb3JkU3RhcnRzIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdF
QktJVF9GSU5EX09QVElPTlNfVFJFQVRfTUVESUFMX0NBUElUQUxfQVNfV09SRF9TVEFSVCA/IEZp
bmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQgOiAwKQorICAgICAgICB8ICh0
eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMgPyBGaW5kT3B0aW9uc0JhY2t3YXJk
cyA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1dSQVBfQVJPVU5E
ID8gRmluZE9wdGlvbnNXcmFwQXJvdW5kIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdFQktJVF9G
SU5EX09QVElPTlNfU0hPV19PVkVSTEFZID8gRmluZE9wdGlvbnNTaG93T3ZlcmxheSA6IDApCisg
ICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfRklORF9JTkRJQ0FUT1Ig
PyBGaW5kT3B0aW9uc1Nob3dGaW5kSW5kaWNhdG9yIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdF
QktJVF9GSU5EX09QVElPTlNfU0hPV19ISUdITElHSFQgPyBGaW5kT3B0aW9uc1Nob3dIaWdobGln
aHQgOiAwKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b1dlYktp
dEZpbmRPcHRpb25zKHVpbnQzMl90IHR5cGUpCit7CisgICAgcmV0dXJuIHRvV2ViS2l0RmluZE9w
dGlvbnMoc3RhdGljX2Nhc3Q8V2ViS2l0RmluZE9wdGlvbnM+KHR5cGUpKTsKK30KIAogc3RhdGlj
IHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5nLCB1
bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewpAQCAtMzQ5LDcg
KzM2MCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdEZpbmRDb250cm9sbGVyUGVyZm9ybShXZWJLaXRG
aW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIsIFdlCiAgICAgV2ViS2l0RmluZENvbnRyb2xs
ZXJQcml2YXRlKiBwcml2ID0gZmluZENvbnRyb2xsZXItPnByaXY7CiAgICAgaWYgKG9wZXJhdGlv
biA9PSBDb3VudE9wZXJhdGlvbikgewogICAgICAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVyKS0+
Y291bnRTdHJpbmdNYXRjaGVzKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4dC5kYXRh
KCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KHByaXYtPmZpbmRPcHRpb25zKSwgcHJp
di0+bWF4TWF0Y2hDb3VudCk7CisgICAgICAgICAgICB0b1dlYktpdEZpbmRPcHRpb25zKHByaXYt
PmZpbmRPcHRpb25zKSwgcHJpdi0+bWF4TWF0Y2hDb3VudCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTM2Miw5ICszNzMsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRGaW5kQ29udHJvbGxl
clBlcmZvcm0oV2ViS2l0RmluZENvbnRyb2xsZXIqIGZpbmRDb250cm9sbGVyLCBXZQogICAgICAg
ICAvLyB1bmNvbmRpdGlvbmFsbHkgc2hvdyBoaWdobGlnaHRzLiBCb3RoIHNlYXJjaF9uZXh0KCkg
YW5kCiAgICAgICAgIC8vIHNlYXJjaF9wcmV2KCkgc2hvdWxkIG5vdCBlbmFibGUgaGlnaGxpZ2h0
aW5nIHRvIGF2b2lkIGFuCiAgICAgICAgIC8vIGV4dHJhIHVubWFya0FsbFRleHRNYXRjaGVzKCkg
KyBtYXJrQWxsVGV4dE1hdGNoZXMoKQotICAgICAgICBmaW5kT3B0aW9ucyB8PSBGaW5kT3B0aW9u
c1Nob3dIaWdobGlnaHQ7CisgICAgICAgIGZpbmRPcHRpb25zIHw9IFdFQktJVF9GSU5EX09QVElP
TlNfU0hPV19ISUdITElHSFQ7CiAKLSAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVyKS0+ZmluZFN0
cmluZyhTdHJpbmc6OmZyb21VVEY4KHByaXYtPnNlYXJjaFRleHQuZGF0YSgpKSwgc3RhdGljX2Nh
c3Q8V2ViS2l0OjpGaW5kT3B0aW9ucz4oZmluZE9wdGlvbnMpLAorICAgIGdldFBhZ2UoZmluZENv
bnRyb2xsZXIpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4dC5k
YXRhKCkpLCB0b1dlYktpdEZpbmRPcHRpb25zKGZpbmRPcHRpb25zKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tYXhNYXRjaENvdW50KTsKIH0KIApAQCAt
NDI1LDcgKzQzNiw3IEBAIHZvaWQgd2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4dChX
ZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIpCiAgICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfRklORF9DT05UUk9MTEVSKGZpbmRDb250cm9sbGVyKSk7CiAKICAgICBmaW5k
Q29udHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0gfldFQktJVF9GSU5EX09QVElPTlNfQkFD
S1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9ucyAmPSB+RmluZE9w
dGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9u
cyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsKICAgICB3ZWJLaXRGaW5k
Q29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0UHJldk9wZXJhdGlvbik7
CiB9CiAKQEAgLTQ0Myw3ICs0NTQsNyBAQCB2b2lkIHdlYmtpdF9maW5kX2NvbnRyb2xsZXJfc2Vh
cmNoX3ByZXZpb3VzKFdlYktpdEZpbmRDb250cm9sbGVyKiBmaW5kQ29udHJvbGxlcgogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTkRfQ09OVFJPTExFUihmaW5kQ29udHJvbGxlcikp
OwogCiAgICAgZmluZENvbnRyb2xsZXItPnByaXYtPmZpbmRPcHRpb25zIHw9IFdFQktJVF9GSU5E
X09QVElPTlNfQkFDS1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9u
cyAmPSB+RmluZE9wdGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5wcml2
LT5maW5kT3B0aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsKICAg
ICB3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0UHJl
dk9wZXJhdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCmluZGV4IDdiYWQxZDA1MTg0ZDMxNTZkMWQx
ZmQ5NjQ0NWM5YzlkMTdmYTNmM2UuLmM4OWMzODY0ZmRlOGQ5MWVlYmU0MWMwNjEwYTYxMzg4Yzcz
NGQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dEZpbmRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0RmluZENvbnRyb2xsZXIuaApAQCAtNjMsNiArNjMsMTAgQEAgdHlwZWRlZiBlbnVtIHsK
ICAgV0VCS0lUX0ZJTkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJU
ID0gMSA8PCAyLAogICBXRUJLSVRfRklORF9PUFRJT05TX0JBQ0tXQVJEUyA9ICAgICAgICAgICAg
ICAgICAgICAgICAgICAxIDw8IDMsCiAgIFdFQktJVF9GSU5EX09QVElPTlNfV1JBUF9BUk9VTkQg
PSAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgNCwKKyAgLyo8IHByaXZhdGUgPiovCisgIFdF
QktJVF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID0gICAgICAgICAgICAgICAgICAgICAgIDEg
PDwgNSwKKyAgV0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0ZJTkRfSU5ESUNBVE9SID0gICAgICAg
ICAgICAgICAgMSA8PCA2LAorICBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfSElHSExJR0hUID0g
ICAgICAgICAgICAgICAgICAgICAxIDw8IDcsCiB9IFdlYktpdEZpbmRPcHRpb25zOwogCiBzdHJ1
Y3QgX1dlYktpdEZpbmRDb250cm9sbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApp
bmRleCAxYjc3YjZlYTdiNDY3MGYxOWU5NjA2MTA0Mzc3MmQxOTk0OWE5MjIxLi5iOWFjMjM0YmY3
YzMwZDVhMzUzOTk2N2YyNzdlZDExMTZkNGQwZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGll
bnQuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuaCIKIAogI2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZh
dGUuaCIKQEAgLTg3LDcgKzg4LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVdlYlZpZXdNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGMKICAgICAgICAg
QVBJOjpFcnJvciogd2ViRXJyb3IgPSBzdGF0aWNfY2FzdDxBUEk6OkVycm9yKj4obWVzc2FnZS5n
ZXQoU3RyaW5nOjpmcm9tVVRGOCgiRXJyb3IiKSkpOwogICAgICAgICBjb25zdCBSZXNvdXJjZUVy
cm9yJiBwbGF0Zm9ybUVycm9yID0gd2ViRXJyb3ItPnBsYXRmb3JtRXJyb3IoKTsKICAgICAgICAg
R1VuaXF1ZVB0cjxHRXJyb3I+IHJlc291cmNlRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1
YXJrX2Zyb21fc3RyaW5nKHBsYXRmb3JtRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0g
ICAgICAgICAgICBwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpLCBwbGF0Zm9ybUVycm9yLmxvY2Fs
aXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJLaXRF
cnJvcihwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpKSwgcGxhdGZvcm1FcnJvci5sb2NhbGl6ZWRE
ZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgICAgICB3ZWJraXRXZWJSZXNvdXJj
ZUZhaWxlZChyZXNvdXJjZS5nZXQoKSwgcmVzb3VyY2VFcnJvci5nZXQoKSk7CiAgICAgICAgIHdl
YmtpdFdlYlZpZXdSZW1vdmVMb2FkaW5nV2ViUmVzb3VyY2Uod2ViVmlldywgcmVzb3VyY2VJZGVu
dGlmaWVyLT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCmluZGV4IDRiMmU1OWMyNWZlN2Y4MDU1ZTc0
OGI3ZmI3YWE4Y2ZjMTBjMzVkNzEuLmFiOTdkMjkwODNjOTI4ZWFmOTU1YTRlMzJkNDc5MzBkMDA1
NmQyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dExvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIldlYktp
dExvYWRlckNsaWVudC5oIgogCiAjaW5jbHVkZSAiV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXNw
b25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgpAQCAtNTQsNyArNTUsNyBAQCBzdGF0aWMg
dm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZgogCiAgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VFcnJv
ciA9IHRvSW1wbChlcnJvciktPnBsYXRmb3JtRXJyb3IoKTsKICAgICBHVW5pcXVlUHRyPEdFcnJv
cj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21fc3RyaW5nKHJlc291
cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIHJlc291cmNlRXJyb3Iu
ZXJyb3JDb2RlKCksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgICAgIHRvV2ViS2l0RXJyb3IocmVzb3VyY2VFcnJvci5lcnJvckNvZGUo
KSksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7
CiAgICAgaWYgKHJlc291cmNlRXJyb3IudGxzRXJyb3JzKCkpIHsKICAgICAgICAgd2Via2l0V2Vi
Vmlld0xvYWRGYWlsZWRXaXRoVExTRXJyb3JzKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSwg
cmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCks
CiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4ocmVzb3VyY2VF
cnJvci50bHNFcnJvcnMoKSksIHJlc291cmNlRXJyb3IuY2VydGlmaWNhdGUoKSk7CkBAIC04NSw3
ICs4Niw3IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyCiAKICAgICBjb25zdCBSZXNvdXJjZUVy
cm9yJiByZXNvdXJjZUVycm9yID0gdG9JbXBsKGVycm9yKS0+cGxhdGZvcm1FcnJvcigpOwogICAg
IEdVbmlxdWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVhcmtf
ZnJvbV9zdHJpbmcocmVzb3VyY2VFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwKLSAgICAg
ICAgcmVzb3VyY2VFcnJvci5lcnJvckNvZGUoKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNj
cmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJLaXRFcnJvcihyZXNvdXJj
ZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
LnV0ZjgoKS5kYXRhKCkpKTsKICAgICB3ZWJraXRXZWJWaWV3TG9hZEZhaWxlZChXRUJLSVRfV0VC
X1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9MT0FEX0NPTU1JVFRFRCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNvdXJjZUVycm9yLmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgpLCB3
ZWJFcnJvci5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmNwcApp
bmRleCBmMDM0NDZiYWI3MzBjZDQ2YjBmNjkyYzcxZDFjMGVlMjNlNDI2YmIyLi44MzM2NmRjY2Q3
ZGExZjQ1MzBkMThlZDNkYWI2NDZkZWNiMTAwMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbi5jcHAKQEAgLTI0MywxMyArMjQzLDYgQEAgY29uc3QgY2hhciogd2Via2l0X25h
dmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF9mcmFtZV9uYW1lKFdlYktpdE5hdmlnYXRpb25Q
b2wKICAgICByZXR1cm4gZGVjaXNpb24tPnByaXYtPmZyYW1lTmFtZS5kYXRhKCk7CiB9CiAKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05BVklHQVRJT05fVFlQRV9MSU5LX0NM
SUNLRUQsIE5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0aW9u
VHlwZUZvcm1TdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
TkFWSUdBVElPTl9UWVBFX0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZCk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfUkVM
T0FELCBOYXZpZ2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5cGVG
b3JtUmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfTkFW
SUdBVElPTl9UWVBFX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQogV2ViS2l0TmF2aWdh
dGlvblBvbGljeURlY2lzaW9uKiB3ZWJraXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DcmVhdGUo
V2ViS2l0TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIHVuc2lnbmVkIG1vdXNlQnV0dG9u
LCB1bnNpZ25lZCBtb2RpZmllcnMsIEFQSTo6VVJMUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgY2hh
ciogZnJhbWVOYW1lLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIGxpc3RlbmVyKQogewog
ICAgIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiogZGVjaXNpb24gPSBXRUJLSVRfTkFW
SUdBVElPTl9QT0xJQ1lfREVDSVNJT04oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05BVklHQVRJ
T05fUE9MSUNZX0RFQ0lTSU9OLCBOVUxMKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcAppbmRleCAxZWI2YjFlYzY2
OWFiY2M3OWM4ZjA4ZDQ3Nzc5NjgwZjQyZWFhNWQ2Li4wZTQ0YTQwMTA0Y2JjMWJlNDg5ZDM2YzIx
OTM5Nzg2NTNlZTMwZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAKQEAgLTI5LDEwICsyOSwzMSBAQAogCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCitpbmxpbmUgc3RhdGljIFdlYktpdE5hdmlnYXRpb25U
eXBlIHRvV2ViS2l0TmF2aWdhdGlvblR5cGUoV0tGcmFtZU5hdmlnYXRpb25UeXBlIHR5cGUpCit7
CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBrV0tGcmFtZU5hdmlnYXRpb25UeXBlTGlu
a0NsaWNrZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0xJTktfQ0xJ
Q0tFRDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkOgorICAg
ICAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fVFlQRV9GT1JNX1NVQk1JVFRFRDsKKyAgICBj
YXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9OQVZJR0FUSU9OX1RZUEVfQkFDS19GT1JXQVJEOworICAgIGNhc2Uga1dLRnJhbWVOYXZp
Z2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVf
UkVMT0FEOworICAgIGNhc2Uga1dLRnJhbWVOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZDoK
KyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRFRDsK
KyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9OQVZJR0FUSU9OX1RZUEVfT1RIRVI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0xJ
TktfQ0xJQ0tFRDsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZp
Z2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdL
RXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0ZyYW1l
LCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3Rl
bmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAg
R1JlZlB0cjxXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24+IGRlY2lzaW9uID0KLSAgICAg
ICAgYWRvcHRHUmVmKHdlYmtpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkNyZWF0ZShzdGF0aWNf
Y2FzdDxXZWJLaXROYXZpZ2F0aW9uVHlwZT4obmF2aWdhdGlvblR5cGUpLAorICAgICAgICBhZG9w
dEdSZWYod2Via2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHRvV2ViS2l0TmF2aWdh
dGlvblR5cGUobmF2aWdhdGlvblR5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91c2VC
dXR0b24obW91c2VCdXR0b24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhtb2RpZmll
cnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRvSW1wbChyZXF1ZXN0KSwKQEAgLTQ2LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFt
ZSwgV0sKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRp
b25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1v
dXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVOYW1l
LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBHUmVmUHRyPFdlYktpdE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbj4gZGVjaXNpb24gPQotICAgICAgICBhZG9wdEdSZWYod2Via2l0TmF2aWdh
dGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHN0YXRpY19jYXN0PFdlYktpdE5hdmlnYXRpb25UeXBl
PihuYXZpZ2F0aW9uVHlwZSksCisgICAgICAgIGFkb3B0R1JlZih3ZWJraXROYXZpZ2F0aW9uUG9s
aWN5RGVjaXNpb25DcmVhdGUodG9XZWJLaXROYXZpZ2F0aW9uVHlwZShuYXZpZ2F0aW9uVHlwZSks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2tFdmVudE1vdXNlQnV0dG9uVG9XZWJLaXRNb3VzZUJ1dHRvbihtb3VzZUJ1dHRvbiksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2tFdmVu
dE1vZGlmaWVyc1RvR2RrTW9kaWZpZXJzKG1vZGlmaWVycyksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbXBsKHJlcXVlc3QpLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVy
YXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRP
cGVyYXRpb24uY3BwCmluZGV4IDgxMGQyYzc5YTQ0YTIxMmU1MmQwMDM3ODQ0ZTdmNWE3MWU3ODI4
YjguLjBhMDM4NmFhZjdiNmUzOTk1OTVlYzk2YTM2ZTE0NTZkYzFkNGQzOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJh
dGlvbi5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdGF0aWMgdm9pZCBkcmF3UGFnZXNGb3JQcmlu
dGluZ0NvbXBsZXRlZChBUEk6OkVycm9yKiB3a1ByaW50RXJyb3IsIFdlYktpdFByaW50TwogICAg
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IgPSB3a1ByaW50RXJy
b3IgPyB3a1ByaW50RXJyb3ItPnBsYXRmb3JtRXJyb3IoKSA6IFdlYkNvcmU6OlJlc291cmNlRXJy
b3IoKTsKICAgICBpZiAoIXJlc291cmNlRXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgR1VuaXF1
ZVB0cjxHRXJyb3I+IHByaW50RXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21f
c3RyaW5nKHJlc291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgICAg
ICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCByZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2Ny
aXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJLaXRFcnJvcihyZXNv
dXJjZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgZ19zaWduYWxfZW1pdChwcmludE9wZXJhdGlv
biwgc2lnbmFsc1tGQUlMRURdLCAwLCBwcmludEVycm9yLmdldCgpKTsKICAgICB9CiAgICAgZ19z
aWduYWxfZW1pdChwcmludE9wZXJhdGlvbiwgc2lnbmFsc1tGSU5JU0hFRF0sIDAsIE5VTEwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNw
cAppbmRleCBkMzRiOWM0NzE3MWEwOGFmOWRjZWIyNzc2ZDg3OWJhOGU4ZTQyNjBiLi42YTZkOTJh
NGJkOTliYmI4YzI0OTAzNDI5OTVlOGZmZDNhNmM2NGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcApAQCAtMjAsNiArMjAsOCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKIAorI2lu
Y2x1ZGUgIkVycm9yc0d0ay5oIgorI2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAjaW5jbHVkZSA8
Z2RrL2dkay5oPgogCiB1bnNpZ25lZCB3a0V2ZW50TW9kaWZpZXJzVG9HZGtNb2RpZmllcnMoV0tF
dmVudE1vZGlmaWVycyB3a01vZGlmaWVycykKQEAgLTUxLDMgKzUzLDEwOSBAQCB1bnNpZ25lZCB3
a0V2ZW50TW91c2VCdXR0b25Ub1dlYktpdE1vdXNlQnV0dG9uKFdLRXZlbnRNb3VzZUJ1dHRvbiB3
a0J1dHRvbikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKIH0KKwor
dW5zaWduZWQgdG9XZWJLaXRFcnJvcih1bnNpZ25lZCB3ZWJDb3JlRXJyb3IpCit7CisgICAgc3dp
dGNoICh3ZWJDb3JlRXJyb3IpIHsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckZhaWxl
ZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICBjYXNl
IFdlYkNvcmU6Ok5ldHdvcmtFcnJvclRyYW5zcG9ydDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9O
RVRXT1JLX0VSUk9SX1RSQU5TUE9SVDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclVu
a25vd25Qcm90b2NvbDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05P
V05fUFJPVE9DT0w7CisgICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JDYW5jZWxsZWQ6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ7CisgICAgY2FzZSBX
ZWJDb3JlOjpOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0OgorICAgICAgICByZXR1cm4gV0VC
S0lUX05FVFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVDsKKyAgICBjYXNlIFdlYkNvcmU6
OlBvbGljeUVycm9yRmFpbGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9G
QUlMRUQ7CisgICAgY2FzZSBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZToK
KyAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBF
OworICAgIGNhc2UgV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93VVJMOgorICAgICAgICBy
ZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkk7CisgICAgY2FzZSBXZWJD
b3JlOjpQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllf
UE9MSUNZX0NIQU5HRTsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90VXNlUmVz
dHJpY3RlZFBvcnQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9V
U0VfUkVTVFJJQ1RFRF9QT1JUOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JGYWlsZWQ6
CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxFRDsKKyAgICBjYXNlIFdl
YkNvcmU6OlBsdWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbjoKKyAgICAgICAgcmV0dXJuIFdFQktJ
VF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOOworICAgIGNhc2UgV2ViQ29yZTo6UGx1
Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9F
UlJPUl9DQU5OT1RfTE9BRF9QTFVHSU47CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvckph
dmFVbmF2YWlsYWJsZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfSkFWQV9V
TkFWQUlMQUJMRTsKKyAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNl
bGxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9DQU5D
RUxMRUQ7CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkOgorICAg
ICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOworICAgIGNh
c2UgV2ViQ29yZTo6RG93bmxvYWRFcnJvck5ldHdvcms6CisgICAgICAgIHJldHVybiBXRUJLSVRf
RE9XTkxPQURfRVJST1JfTkVUV09SSzsKKyAgICBjYXNlIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JD
YW5jZWxsZWRCeVVzZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1JfQ0FO
Q0VMTEVEX0JZX1VTRVI7CisgICAgY2FzZSBXZWJDb3JlOjpEb3dubG9hZEVycm9yRGVzdGluYXRp
b246CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT047Cisg
ICAgY2FzZSBXZWJDb3JlOjpQcmludEVycm9yR2VuZXJhbDoKKyAgICAgICAgcmV0dXJuIFdFQktJ
VF9QUklOVF9FUlJPUl9HRU5FUkFMOworICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvclByaW50
ZXJOb3RGb3VuZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUklOVF9FUlJPUl9QUklOVEVSX05P
VF9GT1VORDsKKyAgICBjYXNlIFdlYkNvcmU6OlByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdlOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRTsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICB9Cit9CisKK3Vuc2lnbmVkIHRvV2Vi
Q29yZUVycm9yKHVuc2lnbmVkIHdlYktpdEVycm9yKQoreworICAgIHN3aXRjaCAod2ViS2l0RXJy
b3IpIHsKKyAgICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDoKKyAgICAgICAgcmV0
dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckZhaWxlZDsKKyAgICBjYXNlIFdFQktJVF9ORVRXT1JL
X0VSUk9SX1RSQU5TUE9SVDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclRy
YW5zcG9ydDsKKyAgICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05PV05fUFJPVE9DT0w6
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2w7Cisg
ICAgY2FzZSBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ6CisgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpOZXR3b3JrRXJyb3JDYW5jZWxsZWQ7CisgICAgY2FzZSBXRUJLSVRfTkVUV09SS19F
UlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNUOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0d29y
a0Vycm9yRmlsZURvZXNOb3RFeGlzdDsKKyAgICBjYXNlIFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJ
TEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JGYWlsZWQ7CisgICAgY2Fz
ZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX01JTUVfVFlQRToKKyAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlOworICAgIGNhc2UgV0VC
S0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkk6CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpQb2xpY3lFcnJvckNhbm5vdFNob3dVUkw7CisgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9S
X0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRToKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OlBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZTsK
KyAgICBjYXNlIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1VTRV9SRVNUUklDVEVEX1BPUlQ6
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQ
b3J0OworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpQbHVnaW5FcnJvckZhaWxlZDsKKyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJS
T1JfQ0FOTk9UX0ZJTkRfUExVR0lOOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1Z2luRXJy
b3JDYW5ub3RGaW5kUGx1Z2luOworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1Rf
TE9BRF9QTFVHSU46CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckNhbm5vdExv
YWRQbHVnaW47CisgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5BVkFJTEFCTEU6
CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZTsKKyAg
ICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9DQU5DRUxMRUQ6CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQ7CisgICAgY2Fz
ZSBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExfSEFORExFX0xPQUQ6CisgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkOworICAgIGNhc2UgV0VCS0lUX0RPV05M
T0FEX0VSUk9SX05FVFdPUks6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpEb3dubG9hZEVycm9y
TmV0d29yazsKKyAgICBjYXNlIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9DQU5DRUxMRURfQllfVVNF
UjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXI7
CisgICAgY2FzZSBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT046CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpEb3dubG9hZEVycm9yRGVzdGluYXRpb247CisgICAgY2FzZSBXRUJLSVRf
UFJJTlRfRVJST1JfR0VORVJBTDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50RXJyb3JH
ZW5lcmFsOworICAgIGNhc2UgV0VCS0lUX1BSSU5UX0VSUk9SX1BSSU5URVJfTk9UX0ZPVU5EOgor
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6UHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZDsKKyAgICBj
YXNlIFdFQktJVF9QUklOVF9FUlJPUl9JTlZBTElEX1BBR0VfUkFOR0U6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdv
cmtFcnJvckZhaWxlZDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRQcml2YXRlLmgKaW5kZXggYmQwNjBlZDMyOWYxYjJmMDhiNjhjMTg1MWIx
YjY5MmQzZWY5MmNhMy4uMzE1YmQxNmJmYzAzZTA3YTJiMjgyYmUxY2MzYmY1ZWFjMjI4MDYxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUu
aApAQCAtNDksOSArNDksNiBAQAogI2RlZmluZSBXRUJLSVRfUEFSQU1fV1JJVEFCTEUgKHN0YXRp
Y19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1dSSVRBQkxFIHwgR19QQVJBTV9TVEFUSUNfTkFN
RSB8IEdfUEFSQU1fU1RBVElDX05JQ0sgfCBHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAjZGVmaW5l
IFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgKHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFN
X1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElDX05BTUUgfCBHX1BBUkFNX1NUQVRJQ19OSUNLIHwg
R19QQVJBTV9TVEFUSUNfQkxVUkIpKQogCi0jZGVmaW5lIENPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0od2Via2l0TmFtZSwgd2ViY29yZU5hbWUpIFwKLSAgICAgICAgQ09NUElMRV9BU1NFUlQo
aW50KHdlYmtpdE5hbWUpID09IGludCh3ZWJjb3JlTmFtZSksIG1pc21hdGNoaW5nRW51bXMpCi0K
ICNkZWZpbmUgV0VCS0lUX0RFRklORV9BU1lOQ19EQVRBX1NUUlVDVChzdHJ1Y3ROYW1lKSBcCiBz
dGF0aWMgc3RydWN0TmFtZSogY3JlYXRlIyNzdHJ1Y3ROYW1lKCkgXAogeyBcCkBAIC0xMTgsNiAr
MTE1LDggQEAgR1R5cGUgdHlwZV9uYW1lIyNfZ2V0X3R5cGUodm9pZCkgXAogCiB1bnNpZ25lZCB3
a0V2ZW50TW9kaWZpZXJzVG9HZGtNb2RpZmllcnMoV0tFdmVudE1vZGlmaWVycyk7CiB1bnNpZ25l
ZCB3a0V2ZW50TW91c2VCdXR0b25Ub1dlYktpdE1vdXNlQnV0dG9uKFdLRXZlbnRNb3VzZUJ1dHRv
bik7Cit1bnNpZ25lZCB0b1dlYktpdEVycm9yKHVuc2lnbmVkIHdlYkNvcmVFcnJvcik7Cit1bnNp
Z25lZCB0b1dlYkNvcmVFcnJvcih1bnNpZ25lZCB3ZWJLaXRFcnJvcik7CiAKIGVudW0gU25hcHNo
b3RSZWdpb24gewogICAgIFNuYXBzaG90UmVnaW9uVmlzaWJsZSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5j
cHAKaW5kZXggNmQ4YzY4NDE4NDJlODZiNGM1MTZhOTRkMGQzMWY4NzEyNTViZGIzZC4uZmM4YjRi
NjVjY2M2ZjQ2YWY4MzQ0YWY2NjA2YTA4OTZlZGRhMDIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5j
cHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmgi
CiAKICNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3LmgiCkBAIC0yMzAs
NyArMjMxLDcgQEAgdm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcihX
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBHRXIKIAogICAgIFdlYktpdFVSSVNjaGVt
ZVJlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKIAotICAgIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9tYWlu
KSwgZXJyb3ItPmNvZGUsIHByaXYtPnVyaS5kYXRhKCksIFN0cmluZzo6ZnJvbVVURjgoZXJyb3It
Pm1lc3NhZ2UpKTsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3IoZ19x
dWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbiksIHRvV2ViQ29yZUVycm9yKGVycm9yLT5jb2Rl
KSwgcHJpdi0+dXJpLmRhdGEoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkpOwog
ICAgIHByaXYtPndlYlJlcXVlc3RNYW5hZ2VyLT5kaWRGYWlsV2l0aEVycm9yKHByaXYtPnJlcXVl
c3RJRCwgcmVzb3VyY2VFcnJvcik7CiAgICAgd2Via2l0V2ViQ29udGV4dERpZEZpbmlzaExvYWRp
bmdDdXN0b21Qcm90b2NvbChwcml2LT53ZWJDb250ZXh0LCBwcml2LT5yZXF1ZXN0SUQpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0LmNwcAppbmRleCAzYmQ4OTMwODg4M2IyMzUzZmRjY2IyODZmMDI0M2UxMmE2NzE5MDY4Li4y
YmZiMzg0MDlkMTVkMDU0ZjQxM2ZiZDY0MjhjNWJlYjdjNjkzOGQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAt
MTY1LDYgKzE2NSwzMiBAQCBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAs
IH07CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRXZWJDb250ZXh0LCB3ZWJraXRfd2ViX2Nv
bnRleHQsIEdfVFlQRV9PQkpFQ1QpCiAKK2lubGluZSBzdGF0aWMgV2ViS2l0OjpQcm9jZXNzTW9k
ZWwgdG9Qcm9jZXNzTW9kZWwoV2ViS2l0UHJvY2Vzc01vZGVsIHdlYktpdFByb2Nlc3NNb2RlbCkK
K3sKKyAgICBzd2l0Y2ggKHdlYktpdFByb2Nlc3NNb2RlbCkgeworICAgIGNhc2UgV0VCS0lUX1BS
T0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOgorICAgICAgICByZXR1cm4gUHJv
Y2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczsKKyAgICBjYXNlIFdFQktJVF9QUk9DRVNT
X01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM6CisgICAgICAgIHJldHVybiBQcm9j
ZXNzTW9kZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFByb2Nlc3NNb2RlbFNoYXJl
ZFNlY29uZGFyeVByb2Nlc3M7CisgICAgfQorfQorCitpbmxpbmUgc3RhdGljIFdlYktpdFByb2Nl
c3NNb2RlbCB0b1dlYktpdFByb2Nlc3NNb2RlbChXZWJLaXQ6OlByb2Nlc3NNb2RlbCBwcm9jZXNz
TW9kZWwpCit7CisgICAgc3dpdGNoIChwcm9jZXNzTW9kZWwpIHsKKyAgICBjYXNlIFByb2Nlc3NN
b2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M6CisgICAgICAgIHJldHVybiBXRUJLSVRfUFJPQ0VT
U19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M7CisgICAgY2FzZSBQcm9jZXNzTW9kZWxN
dWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUk9DRVNT
X01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM7CisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfUFJPQ0VTU19N
T0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M7CisgICAgfQorfQorCiBzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xhc3MqIHdlYkNv
bnRleHRDbGFzcykKIHsKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JKRUNU
X0NMQVNTKHdlYkNvbnRleHRDbGFzcyk7CkBAIC05MTcsMTggKzk0Myw3IEBAIHZvaWQgd2Via2l0
X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQs
IFdlYktpdFByb2NlCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRF
WFQoY29udGV4dCkpOwogCi0gICAgUHJvY2Vzc01vZGVsIG5ld1Byb2Nlc3NNb2RlbDsKLQotICAg
IHN3aXRjaCAocHJvY2Vzc01vZGVsKSB7Ci0gICAgY2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9T
SEFSRURfU0VDT05EQVJZX1BST0NFU1M6Ci0gICAgICAgIG5ld1Byb2Nlc3NNb2RlbCA9IFByb2Nl
c3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
V0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzoKLSAgICAg
ICAgbmV3UHJvY2Vzc01vZGVsID0gUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNz
ZXM7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGdfYXNzZXJ0X25vdF9y
ZWFjaGVkKCk7Ci0gICAgfQorICAgIFByb2Nlc3NNb2RlbCBuZXdQcm9jZXNzTW9kZWwodG9Qcm9j
ZXNzTW9kZWwocHJvY2Vzc01vZGVsKSk7CiAKICAgICBpZiAobmV3UHJvY2Vzc01vZGVsID09IGNv
bnRleHQtPnByaXYtPmNvbnRleHQtPnByb2Nlc3NNb2RlbCgpKQogICAgICAgICByZXR1cm47CkBA
IC05NTIsMTQgKzk2Nyw3IEBAIFdlYktpdFByb2Nlc3NNb2RlbCB3ZWJraXRfd2ViX2NvbnRleHRf
Z2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCogY29udGV4CiB7CiAgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpLCBXRUJLSVRfUFJP
Q0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1MpOwogCi0gICAgc3dpdGNoIChjb250
ZXh0LT5wcml2LT5jb250ZXh0LT5wcm9jZXNzTW9kZWwoKSkgewotICAgIGNhc2UgUHJvY2Vzc01v
ZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9QUk9DRVNT
X01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzsKLSAgICBjYXNlIFByb2Nlc3NNb2RlbE11
bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgotICAgICAgICByZXR1cm4gV0VCS0lUX1BST0NFU1Nf
TU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzsKLSAgICBkZWZhdWx0OgotICAgICAg
ICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgIH0KKyAgICByZXR1cm4gdG9XZWJLaXRQcm9j
ZXNzTW9kZWwoY29udGV4dC0+cHJpdi0+Y29udGV4dC0+cHJvY2Vzc01vZGVsKCkpOwogfQogCiBX
ZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQoRG93bmxv
YWRQcm94eSogZG93bmxvYWRQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggOGY3MjkwYjkzMDA3NGVlNGZlOTZhN2Vh
NTg5ZDQxY2M0ZmQ3ZWI1NC4uZjdlMTNmZDI2ZTM2ZGMyNWFhYTg1NTk1YmVmZjIwNzliMGM3ZjYy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlldy5jcHAKQEAgLTMxMDYsOSArMzEwNiw2IEBAIHZvaWQgd2ViS2l0V2ViVmlld0RpZFJlY2Vp
dmVTbmFwc2hvdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCB1aW50NjRfdCBjYWxsYmFja0lECiAg
ICAgICAgIGdfdGFza19yZXR1cm5fcG9pbnRlcih0YXNrLmdldCgpLCAwLCAwKTsKIH0KIAotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfU05BUFNIT1RfUkVHSU9OX1ZJU0lCTEUs
IFNuYXBzaG90UmVnaW9uVmlzaWJsZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9TTkFQU0hPVF9SRUdJT05fRlVMTF9ET0NVTUVOVCwgU25hcHNob3RSZWdpb25GdWxsRG9j
dW1lbnQpOwotCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHdlYktpdFNuYXBzaG90T3B0aW9uc1Rv
U25hcHNob3RPcHRpb25zKFdlYktpdFNuYXBzaG90T3B0aW9ucyBvcHRpb25zKQogewogICAgIFNu
YXBzaG90T3B0aW9ucyBzbmFwc2hvdE9wdGlvbnMgPSAwOwpAQCAtMzExOSw2ICszMTE2LDE5IEBA
IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgd2ViS2l0U25hcHNob3RPcHRpb25zVG9TbmFwc2hvdE9w
dGlvbnMoV2ViS2l0U25hcHNob3RPcHRpCiAgICAgcmV0dXJuIHNuYXBzaG90T3B0aW9uczsKIH0K
IAorc3RhdGljIGlubGluZSBTbmFwc2hvdFJlZ2lvbiB0b1NuYXBzaG90UmVnaW9uKFdlYktpdFNu
YXBzaG90UmVnaW9uIHJlZ2lvbikKK3sKKyAgICBzd2l0Y2ggKHJlZ2lvbikgeworICAgIGNhc2Ug
V0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxFOgorICAgICAgICByZXR1cm4gU25hcHNob3RS
ZWdpb25WaXNpYmxlOworICAgIGNhc2UgV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9GVUxMX0RPQ1VN
RU5UOgorICAgICAgICByZXR1cm4gU25hcHNob3RSZWdpb25GdWxsRG9jdW1lbnQ7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBTbmFw
c2hvdFJlZ2lvblZpc2libGU7CisgICAgfQorfQorCiBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGdl
bmVyYXRlU25hcHNob3RDYWxsYmFja0lEKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVl
Q2FsbGJhY2tJRCA9IDE7CkBAIC0zMTQ4LDcgKzMxNTgsNyBAQCB2b2lkIHdlYmtpdF93ZWJfdmll
d19nZXRfc25hcHNob3QoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0U25hcHNob3RSZWdp
b24gcgogICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAgICB1aW50
NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVTbmFwc2hvdENhbGxiYWNrSUQoKTsKICAgICBtZXNz
YWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJTbmFwc2hvdE9wdGlvbnMiKSwgQVBJOjpVSW50NjQ6
OmNyZWF0ZShzdGF0aWNfY2FzdDx1aW50NjRfdD4od2ViS2l0U25hcHNob3RPcHRpb25zVG9TbmFw
c2hvdE9wdGlvbnMob3B0aW9ucykpKSk7Ci0gICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRG
OCgiU25hcHNob3RSZWdpb24iKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShzdGF0aWNfY2FzdDx1aW50
NjRfdD4ocmVnaW9uKSkpOworICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlNuYXBz
aG90UmVnaW9uIiksIEFQSTo6VUludDY0OjpjcmVhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHRv
U25hcHNob3RSZWdpb24ocmVnaW9uKSkpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21V
VEY4KCJDYWxsYmFja0lEIiksIEFQSTo6VUludDY0OjpjcmVhdGUoY2FsbGJhY2tJRCkpOwogCiAg
ICAgd2ViVmlldy0+cHJpdi0+c25hcHNob3RSZXN1bHRzTWFwLnNldChjYWxsYmFja0lELCBhZG9w
dEdSZWYoZ190YXNrX25ldyh3ZWJWaWV3LCBjYW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVzZXJEYXRh
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlld0dyb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdHcm91cC5jcHAKaW5kZXggMjg5ZWNkZjAzNmJhZGQ2YzY3YTI1Y2RjY2ZhM2ZiMjU3
ZmY2MTRiMi4uYjE1NjhjZWE4MjYxY2VhZTgxNDY5MzMzNTA5ZWU2Y2Q0MzdkNWM2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dyb3Vw
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
R3JvdXAuY3BwCkBAIC02Nyw2ICs2NywxOSBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdHcm91cFBy
aXZhdGUgewogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0V2ViVmlld0dyb3VwLCB3ZWJraXRf
d2ViX3ZpZXdfZ3JvdXAsIEdfVFlQRV9PQkpFQ1QpCiAKK2lubGluZSBzdGF0aWMgV2ViQ29yZTo6
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyB0b1dlYkNvcmVVc2VyQ29udGVudEluamVjdGVkRnJh
bWVzKFdlYktpdEluamVjdGVkQ29udGVudEZyYW1lcyBraXRGcmFtZXMpCit7CisgICAgc3dpdGNo
IChraXRGcmFtZXMpIHsKKyAgICBjYXNlIFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19B
TEw6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpJbmplY3RJbkFsbEZyYW1lczsKKyAgICBjYXNl
IFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19UT1BfT05MWToKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkluamVjdEluVG9wRnJhbWVPbmx5OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0SW5BbGxG
cmFtZXM7CisgICAgfQorfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R3JvdXBTZXRQcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
R1BhcmFtU3BlYyogcGFyYW1TcGVjKQogewogICAgIFdlYktpdFdlYlZpZXdHcm91cCogZ3JvdXAg
PSBXRUJLSVRfV0VCX1ZJRVdfR1JPVVAob2JqZWN0KTsKQEAgLTIyNCw5ICsyMzcsNiBAQCB2b2lk
IHdlYmtpdF93ZWJfdmlld19ncm91cF9zZXRfc2V0dGluZ3MoV2ViS2l0V2ViVmlld0dyb3VwKiBn
cm91cCwgV2ViS2l0U2V0dGluZwogICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChncm91cCks
ICJzZXR0aW5ncyIpOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9J
TkpFQ1RFRF9DT05URU5UX0ZSQU1FU19BTEwsIFdlYkNvcmU6OkluamVjdEluQWxsRnJhbWVzKTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRfRlJB
TUVTX1RPUF9PTkxZLCBXZWJDb3JlOjpJbmplY3RJblRvcEZyYW1lT25seSk7Ci0KIHN0YXRpYyBQ
YXNzUmVmUHRyPEFQSTo6QXJyYXk+IHRvQVBJQXJyYXkoY29uc3QgY2hhciogY29uc3QqIGxpc3Qp
CiB7CiAgICAgaWYgKCFsaXN0KQpAQCAtMjcwLDcgKzI4MCw3IEBAIHZvaWQgd2Via2l0X3dlYl92
aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KFdlYktpdFdlYlZpZXdHcm91cCogZ3JvdXAs
IGNvbnN0CiAgICAgICAgIFN0cmluZzo6ZnJvbVVURjgoYmFzZVVSSSksCiAgICAgICAgIHdlYldo
aXRlbGlzdC5nZXQoKSwKICAgICAgICAgd2ViQmxhY2tsaXN0LmdldCgpLAotICAgICAgICBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzPihpbmplY3RlZEZyYW1l
cyksCisgICAgICAgIHRvV2ViQ29yZVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMoaW5qZWN0ZWRG
cmFtZXMpLAogICAgICAgICBXZWJDb3JlOjpVc2VyU3R5bGVVc2VyTGV2ZWwpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224772</attachid>
            <date>2014-02-20 10:41:41 -0800</date>
            <delta_ts>2014-02-20 10:50:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127800-20140220184139.patch</filename>
            <type>text/plain</type>
            <size>70849</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMxZTlmNjc1MzQzYjAxODFm
YTQ3NDkyOWI1NjFlMjZjOWZhMDliZmQuLmFhYWE2YmM4NDkxMWQyNGYxY2RiNmRjYzE3ZDNkZDZi
MjI1NzZiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDItMjAgIEVucmlxdWUg
T2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXRH
VEsrIHNob3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCisKKyAgICAgICAgKiBQbGF0
Zm9ybUdUSy5jbWFrZTogUmVtb3ZlZCBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorCiAyMDE0LTAy
LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENoYW5naW5n
IHNlbGVjdGlvbiBzaG91bGRuJ3Qgc3luY2hyb25vdXNseSB1cGRhdGUgZWRpdG9yIFVJIGNvbXBv
bmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhZmE1ZWNiZmMyZWNlNThmNGY1MGRmYWUyNGYzMDNm
MjJkOWZjZjJjLi5jY2NkZmMwZDRlY2EzYTZiOTgzNmQzOGQ4Njg3ODkwM2MzYTRlNmJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTQtMDItMjAgIEVucmlxdWUgT2Nhw7Fh
IEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXRHVEsrIHNo
b3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbTogUmVtb3ZlZCBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6IERlZmluZWQgYW5kIGFwcGxp
ZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViQ29yZUZpbmRPcHRpb25zKToKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZmluZFN0cmluZyk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJLaXQ6OnRvV2ViS2l0TmV0d29ya0Vy
cm9yKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFp
bExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRGYWlsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRG
YWxsQmFjayk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3Bw
OiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJLaXQ6
OmtpdCk6CisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJzZXR0aW5ncy5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAg
ICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChjb3B5R3Rr
VGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyk6
CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvcHlfdGFyZ2V0X2xp
c3QpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdCk6Cisg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6IEFkZGVkIHRhcmdldExpc3Qg
cHJpdmF0ZSBmaWVsZCwgd2hpY2ggbWlycm9ycyBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFz
dGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkgYnV0IHdpdGggdGhlIGZsYWdzIGNvbnZlcnRl
ZCB0byBXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbworCiAyMDE0LTAyLTE3ICBTZXJnaW8gQ29ycmVp
YSAgPHNlcmdpby5jb3JyZWlhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmVwbGFjZSB1c2Vz
IG9mIFBhc3NPd25QdHIvT3duUHRyIHdpdGggc3RkOjp1bmlxdWVfcHRyIGluIFdlYkNvcmUvaW5z
cGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTY3MjlhM2ZiZTlmNWMwNGEzMWMyYWFlN2UzNDc5YTk3NDA1
NDRmOS4uMWE0MDBjNGNiNWUxNWY1MmQwZDQxOTk5NDhhMGIxOWY5NjJlODE5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDYxIEBACisyMDE0LTAyLTIwICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXog
IDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViS2l0R1RLKyBzaG91bGQgc3RvcCB1
c2luZyBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNIG1hY3JvcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3ODAwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTWFydGluIFJvYmluc29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNv
bnZlcnNpb25zLgorICAgICAgICAod2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3Nj
aGVtZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5j
cHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2Vi
S2l0Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk6CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X3BlcnNpc3RlbnRfc3RvcmFn
ZSk6CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X2FjY2VwdF9wb2xpY3kpOgor
ICAgICAgICAod2Via2l0Q29va2llTWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcDogRGVmaW5lZCBh
bmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRDcmVkZW50aWFs
UGVyc2lzdGVuY2UpOgorICAgICAgICAodG9XZWJDb3JlQ3JlZGVudGlhbFBlcnNpc3RlbmNlKToK
KyAgICAgICAgKHdlYmtpdF9jcmVkZW50aWFsX25ldyk6CisgICAgICAgICh3ZWJraXRfY3JlZGVu
dGlhbF9nZXRfcGVyc2lzdGVuY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dERvd25sb2FkLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAg
ICAgICAod2Via2l0RG93bmxvYWRGYWlsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEVycm9yLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcDogRGVm
aW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRGaW5k
T3B0aW9ucyk6CisgICAgICAgICh3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0pOgorICAgICAg
ICAod2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4dCk6CisgICAgICAgICh3ZWJraXRf
ZmluZF9jb250cm9sbGVyX3NlYXJjaF9wcmV2aW91cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaDogQWRkZWQgbmV3IHByaXZhdGUgZmllbGRzIHRv
IHRoZSBlbnVtLCBuZWVkZWQgdG8gbWF0Y2ggY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwOiBEZWZpbmVkIGFuZCBh
cHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChkaWRSZWNlaXZlV2ViVmlld01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dExvYWRlckNsaWVudC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4K
KyAgICAgICAgKGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAg
ICAgIChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwOiBEZWZpbmVkIGFuZCBh
cHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0UG9saWN5Q2xpZW50LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25z
LgorICAgICAgICAodG9XZWJLaXROYXZpZ2F0aW9uVHlwZSk6CisgICAgICAgIChkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRp
b24uY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChk
cmF3UGFnZXNGb3JQcmludGluZ0NvbXBsZXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UHJpdmF0ZS5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9u
cy4KKyAgICAgICAgKHRvV2ViS2l0RXJyb3IpOgorICAgICAgICAodG9XZWJDb3JlRXJyb3IpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaDogRGVmaW5lZCBhbmQg
YXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVy
c2lvbnMuCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcik6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHA6IERlZmlu
ZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViS2l0UHJvY2Vz
c01vZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2RlbCk6
CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1NuYXBzaG90UmVnaW9uKToKKyAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBj
b252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViQ29yZVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMp
OgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KToK
KwogMjAxNC0wMi0xOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAg
ICAgICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNt
YWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAxY2IyMTg0ZWVhZTIx
MTU2YWEyNjU3MWMwYjIyYWM3MjMxOGMwMWFkLi42MjgwMTI4NThmNDQ5MzBlYzQyYjRlMDliNjUy
ZWQ3OTMzMGY5ODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQwLDcgKzQwLDYgQEAg
bGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRH
VEtfQVBJX0RJUn0vd2Via2l0bWFyc2hhbC5jcHAKIAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAotICAgIGd0ay9XZWJDb3JlU3VwcG9y
dC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwCiAgICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3Rr
LmNwcAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRHdGsuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0dOVW1ha2VmaWxlLmFtCmluZGV4IDY0ZWQ1M2UzOTRkZTIxMDQ2YjllMWM3YTBlZjE2
NzkzMzliYTEzZmUuLmQ1M2YxYjBjMGY4NTQ3MjE4MDZkNjZiYTJhMGUxOWFjMmIzNWYxNjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCkBAIC0xOTAsNyArMTkwLDYgQEAgQlVJTFRfU09VUkNF
UyArPSAkKHdlYmtpdGd0a19idWlsdF9zb3VyY2VzKQogd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0R0wuY3BwIFwKLQlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQmF0dGVyeUNsaWVudEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0JhdHRlcnlDbGllbnRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjMmZlODA5ZWRhMDlmYzEyYzgxMjgzMGYxYTMxOTkxOWNmZjQ2
ODEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTEgQ29s
bGFib3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLS8vIFVzZSB0aGlz
IGZpbGUgdG8gYXNzZXJ0IHRoYXQgdmFyaW91cyBXZWJLaXQgQVBJIGVudW0gdmFsdWVzIGNvbnRp
bnVlCi0vLyBtYXRjaGluZyBXZWJDb3JlIGRlZmluZWQgZW51bSB2YWx1ZXMuCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgotI2lu
Y2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCi0j
aW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCi0j
aW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgotI2luY2x1ZGUgIndlYmtpdGVycm9yLmgiCi0j
aW5jbHVkZSAid2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oIgotI2luY2x1ZGUgIndlYmtpdHdl
YnNldHRpbmdzLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgotI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+Ci0KLSNkZWZpbmUgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSh3ZWJr
aXRfbmFtZSwgd2ViY29yZV9uYW1lKSBcCi0gICAgQ09NUElMRV9BU1NFUlQoaW50KHdlYmtpdF9u
YW1lKSA9PSBpbnQoV2ViQ29yZTo6d2ViY29yZV9uYW1lKSwgbWlzbWF0Y2hpbmdfZW51bXMpCi0K
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfTUFD
LCBFZGl0aW5nTWFjQmVoYXZpb3IpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfRURJVElOR19CRUhBVklPUl9XSU5ET1dTLCBFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfVU5JWCwg
RWRpdGluZ1VuaXhCZWhhdmlvcik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQsIE5hdmlnYXRpb25UeXBlTGlu
a0NsaWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklH
QVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQp
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklHQVRJT05fUkVB
U09OX0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fUkVMT0FELCBO
YXZpZ2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9XRUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5cGVG
b3JtUmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VC
X05BVklHQVRJT05fUkVBU09OX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zQXRXb3JkU3RhcnRz
LCBBdFdvcmRTdGFydHMpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6Oldl
YkZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQsIFRyZWF0TWVkaWFsQ2Fw
aXRhbEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViS2l0OjpX
ZWJGaW5kT3B0aW9uc0JhY2t3YXJkcywgQmFja3dhcmRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViS2l0OjpXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQsIFdyYXBBcm91bmQpOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zU3RhcnRJ
blNlbGVjdGlvbiwgU3RhcnRJblNlbGVjdGlvbik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUwsIFBhc3RlYm9hcmRIZWxwZXI6
OlRhcmdldFR5cGVNYXJrdXApOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
V0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRl
eHQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VU
X0lORk9fSU1BR0UsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVJbWFnZSk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19VUklfTElT
VCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3QpOwotQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fTkVUU0NBUEVfVVJMLCBQ
YXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTmV0c2NhcGVVUkwpOwotCi1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRCwgTmV0d29ya0Vycm9y
RmFpbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJS
T1JfVFJBTlNQT1JULCBOZXR3b3JrRXJyb3JUcmFuc3BvcnQpOwotQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MLCBOZXR3b3Jr
RXJyb3JVbmtub3duUHJvdG9jb2wpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQsIE5ldHdvcmtFcnJvckNhbmNlbGxlZCk7Ci1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19O
T1RfRVhJU1QsIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QpOwotCi1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVELCBQb2xpY3lFcnJvckZh
aWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1Jf
Q0FOTk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSk7Ci1D
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NI
T1dfVVJMLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9M
SUNZX0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdl
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5O
T1RfVVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9y
dCk7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9G
QUlMRUQsIFBsdWdpbkVycm9yRmFpbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU4sIFBsdWdpbkVycm9yQ2Fubm90
RmluZFBsdWdpbik7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5f
RVJST1JfQ0FOTk9UX0xPQURfUExVR0lOLCBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVnaW4pOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5B
VkFJTEFCTEUsIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlKTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNFTExFRCwgUGx1
Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FELCBQbHVnaW5FcnJvcldpbGxI
YW5kbGVMb2FkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDlkZDllNzE0ZDY0MzIz
OWU5NTg4NTExYWEyYzUwMzhmMmM1YjFiZmEuLmY0NTg3N2MwZmU2Y2ExOWFlOTEzZjkyYjI1NWUw
N2RiYmEwNzdkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtODYsNiArODYsMTYg
QEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hh
aW4gPSB0cnVlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpGcmFtZUxvYWRFdmVudENhbGxi
YWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRFdmVudENhbGxiYWNrID0g
MDsKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGljYXRpb25DYWxsYmFjayBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxsYmFjayA9IDA7CiAKK3N0
YXRpYyBpbmxpbmUgV2ViQ29yZTo6RmluZE9wdGlvbnMgdG9XZWJDb3JlRmluZE9wdGlvbnMoV2Vi
S2l0RmluZE9wdGlvbnMgdHlwZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RmluZE9wdGlvbnM+KCh0eXBlICYgV2ViRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgPyBDYXNl
SW5zZW5zaXRpdmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNBdFdvcmRT
dGFydHMgPyBBdFdvcmRTdGFydHMgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlv
bnNUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCA/IFRyZWF0TWVkaWFsQ2FwaXRhbEFzV29y
ZFN0YXJ0IDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zQmFja3dhcmRzID8g
QmFja3dhcmRzIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zV3JhcEFyb3Vu
ZCA/IFdyYXBBcm91bmQgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNTdGFy
dEluU2VsZWN0aW9uID8gU3RhcnRJblNlbGVjdGlvbiA6IDApKTsKK30KKwogRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsoKQogewogfQpAQCAtNDc1LDcg
KzQ4NSw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjbGVhck9wZW5lcihXZWJL
aXRXZWJGcmFtZSogZnJhbWUpCiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaW5k
U3RyaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiB0YXJnZXRTdHJpbmcs
IFdlYktpdEZpbmRPcHRpb25zIGZpbmRPcHRpb25zKQogewotICAgIHJldHVybiBjb3JlKHdlYlZp
ZXcpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgodGFyZ2V0U3RyaW5nKSwgZmluZE9wdGlv
bnMpOworICAgIHJldHVybiBjb3JlKHdlYlZpZXcpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVU
RjgodGFyZ2V0U3RyaW5nKSwgdG9XZWJDb3JlRmluZE9wdGlvbnMoZmluZE9wdGlvbnMpKTsKIH0K
IAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFZhbHVlRm9yVXNlcihKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub2RlT2JqZWN0LCBKU1N0cmluZ1JlZiB2YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcAppbmRleCBiMjRlMDg5YzlkMTMxMTJjYTYyYTBjZDAxNGY1YzhhZDZm
YzI3ZTAxLi4yZjhhY2JiM2ZiMGRlOTBkZDU3ZTkwMGRiYjE4ZGFkODgwOWNlNjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwCkBAIC0xMDQsNiArMTA0LDQ3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAoraW5saW5lIGludCB0b1dlYktpdE5ldHdvcmtFcnJv
cihpbnQgZXJyb3JDb2RlKQoreworICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7CisgICAgY2FzZSBO
ZXR3b3JrRXJyb3JGYWlsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9G
QUlMRUQ7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JUcmFuc3BvcnQ6CisgICAgICAgIHJldHVybiBX
RUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQ7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JVbmtu
b3duUHJvdG9jb2w6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dO
X1BST1RPQ09MOworICAgIGNhc2UgTmV0d29ya0Vycm9yQ2FuY2VsbGVkOgorICAgICAgICByZXR1
cm4gV0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEOworICAgIGNhc2UgTmV0d29ya0Vycm9y
RmlsZURvZXNOb3RFeGlzdDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJ
TEVfRE9FU19OT1RfRVhJU1Q7CisgICAgY2FzZSBQb2xpY3lFcnJvckZhaWxlZDoKKyAgICAgICAg
cmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVEOworICAgIGNhc2UgUG9saWN5RXJyb3JD
YW5ub3RTaG93TWltZVR5cGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NB
Tk5PVF9TSE9XX01JTUVfVFlQRTsKKyAgICBjYXNlIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDoK
KyAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJMOworICAg
IGNhc2UgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlOgorICAg
ICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZ
X1BPTElDWV9DSEFOR0U7CisgICAgY2FzZSBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQ
b3J0OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RS
SUNURURfUE9SVDsKKyAgICBjYXNlIFBsdWdpbkVycm9yRmFpbGVkOgorICAgICAgICByZXR1cm4g
V0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ7CisgICAgY2FzZSBQbHVnaW5FcnJvckNhbm5vdEZp
bmRQbHVnaW46CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5E
X1BMVUdJTjsKKyAgICBjYXNlIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbjoKKyAgICAgICAg
cmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOworICAgIGNhc2Ug
UGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFibGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lO
X0VSUk9SX0pBVkFfVU5BVkFJTEFCTEU7CisgICAgY2FzZSBQbHVnaW5FcnJvckNvbm5lY3Rpb25D
YW5jZWxsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJT05f
Q0FOQ0VMTEVEOworICAgIGNhc2UgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZDoKKyAgICAgICAg
cmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDsKKyAgICBkZWZhdWx0
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdFQktJVF9O
RVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICB9Cit9CisKIEZyYW1lTG9hZGVyQ2xpZW50OjpGcmFt
ZUxvYWRlckNsaWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1l
KQogICAgICwgbV9wb2xpY3lEZWNpc2lvbigwKQpAQCAtOTkyLDcgKzEwMzMsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiBsb2FkZXIsCiAgICAgICAgIHJldHVybjsKIAogICAgIEdVbmlxdWVQdHI8R0Vycm9y
PiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVhcmtfZnJvbV9zdHJpbmcoZXJyb3Iu
ZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIGVycm9yLmVycm9yQ29kZSgpLCBlcnJv
ci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJL
aXROZXR3b3JrRXJyb3IoZXJyb3IuZXJyb3JDb2RlKCkpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlw
dGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJS
ZXNvdXJjZSwgImxvYWQtZmFpbGVkIiwgd2ViRXJyb3IuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2Vt
aXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtbG9hZC1mYWlsZWQiLCB3ZWJSZXNvdXJjZSwg
d2ViRXJyb3IuZ2V0KCkpOwpAQCAtMTAyMCw5ICsxMDYxLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAg
ICAgbm90aWZ5U3RhdHVzKG1fZnJhbWUsIFdFQktJVF9MT0FEX0ZBSUxFRCk7CiAKICAgICBXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKwogICAgIEdV
bmlxdWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKAogICAgICAgICBn
X3F1YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAg
ICBlcnJvci5lcnJvckNvZGUoKSwKKyAgICAgICAgdG9XZWJLaXROZXR3b3JrRXJyb3IoZXJyb3Iu
ZXJyb3JDb2RlKCkpLAogICAgICAgICBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0Zjgo
KS5kYXRhKCkpKTsKICAgICBnYm9vbGVhbiBpc0hhbmRsZWQgPSBmYWxzZTsKICAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUod2ViVmlldywgImxvYWQtZXJyb3IiLCBtX2ZyYW1lLCBlcnJvci5mYWls
aW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCksICZpc0hhbmRsZWQpOwpAQCAt
MTA5NCw3ICsxMTM2LDcgQEAgUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2lu
V2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogYm9vbCBGcmFtZUxv
YWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7
Ci0gICAgcmV0dXJuICEoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSB8fCBlcnJvci5lcnJvckNvZGUo
KSA9PSBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZ
X0NIQU5HRSB8fCBlcnJvci5lcnJvckNvZGUoKSA9PSBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExf
SEFORExFX0xPQUQpOworICAgIHJldHVybiAhKGVycm9yLmlzQ2FuY2VsbGF0aW9uKCkgfHwgZXJy
b3IuZXJyb3JDb2RlKCkgPT0gUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5
Q2hhbmdlIHx8IGVycm9yLmVycm9yQ29kZSgpID09IFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQp
OwogfQogCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rp
b24uY3BwCmluZGV4IGM3OGU3NTRhZWVjYmU1YTJmY2QzY2QyMmY4YzFkZWQ0NDgzZDk0MTEuLmFk
NmYwYzhmNGQwMWU5OWIzN2VmYWRlMWQxYjE1MWI5NTNmMjBmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKQEAg
LTM2NCwxMiArMzY0LDQ0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRXZWJOYXZpZ2F0
aW9uUmVhc29uIGtpdChXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQogewotICAgIHJldHVy
biAoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbil0eXBlOworICAgIHN3aXRjaCh0eXBlKSB7Cisg
ICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkOgorICAgICAgICByZXR1
cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQ7CisgICAgY2FzZSBX
ZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ6CisgICAgICAgIHJldHVybiBXRUJL
SVRfV0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVEOworICAgIGNhc2UgV2ViQ29y
ZTo6TmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJf
TkFWSUdBVElPTl9SRUFTT05fQkFDS19GT1JXQVJEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdh
dGlvblR5cGVSZWxvYWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVB
U09OX1JFTE9BRDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0
dGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9GT1JNX1JF
U1VCTUlUVEVEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAg
ICAgcmV0dXJuIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fT1RIRVI7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRf
V0VCX05BVklHQVRJT05fUkVBU09OX0xJTktfQ0xJQ0tFRDsKKyAgICB9CiB9CiAKIFdlYkNvcmU6
Ok5hdmlnYXRpb25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiB0eXBlKQogewot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZT4odHlwZSk7Cisg
ICAgc3dpdGNoKHR5cGUpIHsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05f
TElOS19DTElDS0VEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVMaW5r
Q2xpY2tlZDsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9TVUJN
SVRURUQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0
ZWQ7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0JBQ0tfRk9SV0FSRDoK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlQmFja0ZvcndhcmQ7CisgICAg
Y2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX1JFTE9BRDoKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlUmVsb2FkOworICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJ
R0FUSU9OX1JFQVNPTl9GT1JNX1JFU1VCTUlUVEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6
TmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQ7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklH
QVRJT05fUkVBU09OX09USEVSOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5
cGVPdGhlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQ7CisgICAgfQog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNw
cAppbmRleCA3NDJiMjNkNDBhZDU0NzgzMzJkNDFjOGMyYjI3YTNmZTZlMTRhOTBkLi5jMTNiYzBl
ZGZhYTEzZGQ1NmM1YmU4MTdlYzRlZmYyOThkNmY0YjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKQEAgLTE2NTgsOSArMTY1OCwxOSBAQCBj
aGFyKiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShXZWJLaXRXZWJTZXR0aW5ncyog
d2ViU2V0dGluZ3MsIGNvbnN0IGNoYQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViQ29yZTo6
RWRpdGluZ0JlaGF2aW9yVHlwZSBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciB0eXBlKQoraW5s
aW5lIFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5cGUgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZp
b3IgdHlwZSkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdGluZ0JlaGF2
aW9yVHlwZT4odHlwZSk7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBXRUJLSVRfRURJ
VElOR19CRUhBVklPUl9NQUM6CisgICAgICAgIHJldHVybiBFZGl0aW5nTWFjQmVoYXZpb3I7Cisg
ICAgY2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9XSU5ET1dTOgorICAgICAgICByZXR1cm4g
RWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICBjYXNlIFdFQktJVF9FRElUSU5HX0JFSEFWSU9S
X1VOSVg6CisgICAgICAgIHJldHVybiBFZGl0aW5nVW5peEJlaGF2aW9yOworICAgIGRlZmF1bHQ6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gRWRpdGluZ01h
Y0JlaGF2aW9yOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCmluZGV4IDQ4ZjE1YzljZDhmODk5NzY0Y2YwN2ZlODEyYjlmYjI0MGYwYTll
MGMuLjFhMmIwMTczMTY2OTdmZGE1ZGYzOWQ2Y2I2Y2FkZTE5YWY5OTRhOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTExOSw2ICsxMTksNyBAQAog
I2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5
bXMuaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2luY2x1ZGUgPGd0ay9ndGsuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQpAQCAtMjgyLDYgKzI4Myw0NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
c2V0dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1Bhcgogc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF93aW5kb3dfZmVhdHVyZXMoV2ViS2l0V2ViVmll
dyogd2ViVmlldywgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzKTsK
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdEaXJlY3Rpb25DaGFuZ2VkKFdlYktpdFdlYlZpZXcq
LCBHdGtUZXh0RGlyZWN0aW9uIHByZXZpb3VzRGlyZWN0aW9uLCBncG9pbnRlcik7CiAKK3N0YXRp
YyBpbmxpbmUgV2ViS2l0V2ViVmlld1RhcmdldEluZm8gdG9XZWJLaXRXZWJWaWV3VGFyZ2V0SW5m
byhQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0VHlwZSBmbGFncykKK3sKKyAgICBz
d2l0Y2ggKGZsYWdzKSB7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTWFy
a3VwOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUw7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQ6
CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlSW1hZ2U6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSU1BR0U7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3Q6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVVJJX0xJU1Q7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZU5ldHNjYXBl
VVJMOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX05FVFNDQVBF
X1VSTDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRN
TDsKKyAgICB9Cit9CisKK3N0YXRpYyBHdGtUYXJnZXRMaXN0KiBjb3B5R3RrVGFyZ2V0TGlzdENv
bnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhHdGtUYXJnZXRMaXN0
KiBjb3JlR3RrVGFyZ2V0TGlzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlR3Rr
VGFyZ2V0TGlzdCwgbnVsbHB0cik7CisKKyAgICBHdGtUYXJnZXRMaXN0KiB0YXJnZXRMaXN0V2l0
aFdlYktpdEVudW1WYWx1ZXMgPSBudWxscHRyOworICAgIGludCB0YWJsZVNpemUgPSAwOworICAg
IEd0a1RhcmdldEVudHJ5KiB0YWJsZShndGtfdGFyZ2V0X3RhYmxlX25ld19mcm9tX2xpc3QoY29y
ZUd0a1RhcmdldExpc3QsICZ0YWJsZVNpemUpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
dGFibGVTaXplOyBpKyspCisgICAgICAgIHRhYmxlW2ldLmZsYWdzID0gdG9XZWJLaXRXZWJWaWV3
VGFyZ2V0SW5mbyhzdGF0aWNfY2FzdDxQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0
VHlwZT4odGFibGVbaV0uZmxhZ3MpKTsKKworICAgIHRhcmdldExpc3RXaXRoV2ViS2l0RW51bVZh
bHVlcyA9IGd0a190YXJnZXRfbGlzdF9uZXcodGFibGUsIHRhYmxlU2l6ZSk7CisgICAgZ3RrX3Rh
cmdldF90YWJsZV9mcmVlKHRhYmxlLCB0YWJsZVNpemUpOworCisgICAgcmV0dXJuIHRhcmdldExp
c3RXaXRoV2ViS2l0RW51bVZhbHVlczsKK30KKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
c3RhdGljIHZvaWQgUG9wdXBNZW51UG9zaXRpb25GdW5jKEd0a01lbnUqIG1lbnUsIGdpbnQgKngs
IGdpbnQgKnksIGdib29sZWFuICpwdXNoSW4sIGdwb2ludGVyIHVzZXJEYXRhKQogewpAQCAtMTM4
MCw2ICsxNDIyLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UoR09iamVj
dCogb2JqZWN0KQogICAgIHByaXYtPndlYldpbmRvd0ZlYXR1cmVzLmNsZWFyKCk7CiAgICAgcHJp
di0+bWFpblJlc291cmNlLmNsZWFyKCk7CiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzLmNsZWFyKCk7
CisgICAgcHJpdi0+dGFyZ2V0TGlzdC5jbGVhcigpOwogCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Vi
a2l0X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKIApAQCAtMzg3Mywx
MCArMzkxNiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQogCiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzID0gYWRvcHRHUmVmKGdfaGFz
aF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwgZ19mcmVlLCBnX29iamVj
dF91bnJlZikpOwogCisgICAgcHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5R3RrVGFy
Z2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQYXN0
ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpKTsK
KwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgcHJpdi0+ZHJhZ0FuZERyb3BIZWxwZXIu
c2V0V2lkZ2V0KEdUS19XSURHRVQod2ViVmlldykpOwogICAgIGd0a19kcmFnX2Rlc3Rfc2V0KEdU
S19XSURHRVQod2ViVmlldyksIHN0YXRpY19jYXN0PEd0a0Rlc3REZWZhdWx0cz4oMCksIDAsIDAs
IHN0YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KEdES19BQ1RJT05fQ09QWSB8IEdES19BQ1RJT05f
Q09QWSB8IEdES19BQ1RJT05fTU9WRSB8IEdES19BQ1RJT05fTElOSyB8IEdES19BQ1RJT05fUFJJ
VkFURSkpOwotICAgIGd0a19kcmFnX2Rlc3Rfc2V0X3RhcmdldF9saXN0KEdUS19XSURHRVQod2Vi
VmlldyksIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdl
dExpc3QoKSk7CisgICAgZ3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0X2xpc3QoR1RLX1dJREdFVCh3
ZWJWaWV3KSwgcHJpdi0+dGFyZ2V0TGlzdC5nZXQoKSk7CiAjZW5kaWYKIAogICAgIHByaXYtPnNl
bGZTY3JvbGxpbmcgPSBmYWxzZTsKQEAgLTQ2OTEsNyArNDczNiw4IEBAIHZvaWQgd2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBmbGFn
KQogICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9s
aXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7Ci0gICAgcmV0dXJuIFBhc3RlYm9hcmRIZWxw
ZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKTsKKyAgICB3ZWJWaWV3
LT5wcml2LT50YXJnZXRMaXN0ID0gYWRvcHRHUmVmKGNvcHlHdGtUYXJnZXRMaXN0Q29udmVydGlu
Z1dlYkNvcmVFbnVtVmFsdWVzVG9XZWJLaXRFbnVtVmFsdWVzKFBhc3RlYm9hcmRIZWxwZXI6OmRl
ZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKSkpOworICAgIHJldHVybiB3ZWJW
aWV3LT5wcml2LT50YXJnZXRMaXN0LmdldCgpOwogfQogCiAvKioKQEAgLTQ3MDgsNyArNDc1NCw4
IEBAIEd0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdChX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92
aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotICAg
IHJldHVybiBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJn
ZXRMaXN0KCk7CisgICAgd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5
R3RrVGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVl
cyhQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0
KCkpKTsKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdC5nZXQoKTsKIH0KIAog
LyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5o
CmluZGV4IDNmNjkyN2UxNjJkYjFkMjA5NjI1MGY1NmUzODMzM2NhZTBkZjc0M2IuLjZiOTAzNmNk
ZjRlMWY1N2ViMjkyODU5ZTg3ODFmMzgxM2I3MjYyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgc3Ry
dWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVy
IGNsaWNrQ291bnRlcjsKICAgICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5k
RHJvcEhlbHBlcjsKICAgICBib29sIHNlbGZTY3JvbGxpbmc7CisgICAgR1JlZlB0cjxHdGtUYXJn
ZXRMaXN0PiB0YXJnZXRMaXN0OwogCiAgICAgT3duUHRyPFdlYktpdDo6QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQ+IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlv
blJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0
aGVudGljYXRpb25SZXF1ZXN0LmNwcAppbmRleCA2ZjBjMzcwN2UzNzhlNDJhOTNiMmRmYjkzYWQw
ZjMwYWU1YjdiMmRhLi5jYTc0ODBjZDkyMjI0NTlkNDcyMDNkYzk0M2RlNTMxZmI3MWUwYjljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50
aWNhdGlvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5jcHAKQEAgLTY3LDE4ICs2NywzNSBAQCBzdHJ1
Y3QgX1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdFByaXZhdGUgewogCiBzdGF0aWMgZ3VpbnQg
c2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxULCBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUMsIFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0RJR0VTVCwgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0KTsKLUNPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVE1MX0ZPUk0sIFBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm0pOwotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05UTE0sIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfTkVHT1RJQVRFLCBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZSk7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfQ0xJRU5UX0NFUlRJRklD
QVRFX1JFUVVFU1RFRCwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRD
ZXJ0aWZpY2F0ZVJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVE
LCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlv
blJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5U
SUNBVElPTl9TQ0hFTUVfVU5LTk9XTiwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVVbmtub3duKTsKLQogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVx
dWVzdCwgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpCiAKK2lu
bGluZSBzdGF0aWMgV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUgdG9XZWJLaXRBdXRoZW50aWNh
dGlvblNjaGVtZShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBj
b3JlU2NoZW1lKQoreworICAgIHN3aXRjaCAoY29yZVNjaGVtZSkgeworICAgIGNhc2UgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIGNhc2UgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUM7CisgICAg
Y2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdl
c3Q6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfRElH
RVNUOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVIVE1MRm9ybToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVf
SFRNTF9GT1JNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVOVExNOgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVN
RV9OVExNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVOZWdvdGlhdGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NI
RU1FX05FR09USUFURTsKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgICAgIHJldHVybiBX
RUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0NMSUVOVF9DRVJUSUZJQ0FURV9SRVFVRVNURUQ7
CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNl
cnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRI
RU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVEOworICAg
IGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3du
OgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9VTktOT1dOOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIH0KK30KKwogc3Rh
dGljIHZvaWQgd2Via2l0QXV0aGVudGljYXRpb25SZXF1ZXN0RGlzcG9zZShHT2JqZWN0KiBvYmpl
Y3QpCiB7CiAgICAgV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lU
X0FVVEhFTlRJQ0FUSU9OX1JFUVVFU1Qob2JqZWN0KTsKQEAgLTI0NCw3ICsyNjEsNyBAQCBXZWJL
aXRBdXRoZW50aWNhdGlvblNjaGVtZSB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRf
c2NoZW1lKFdlYktpdEF1dGhlbgogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19BVVRIRU5USUNBVElPTl9SRVFVRVNUKHJlcXVlc3QpLCBXRUJLSVRfQVVUSEVOVElDQVRJT05f
U0NIRU1FX1VOS05PV04pOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdEF1dGhlbnRp
Y2F0aW9uU2NoZW1lPihyZXF1ZXN0LT5wcml2LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+cHJv
dGVjdGlvblNwYWNlKCktPmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkpOworICAgIHJldHVybiB0b1dl
YktpdEF1dGhlbnRpY2F0aW9uU2NoZW1lKHJlcXVlc3QtPnByaXYtPmF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLT5wcm90ZWN0aW9uU3BhY2UoKS0+YXV0aGVudGljYXRpb25TY2hlbWUoKSk7CiB9CiAK
IC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
Q29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRDb29raWVNYW5hZ2VyLmNwcAppbmRleCAzNjRlNGU0N2RjYzNiYmNjMzgzZTgwNzlhNjAwZmUx
YTU1NDY0MmNlLi5jOTVmYWM4MDQ4MzQ0ZWIyYzJjZjgwMTUyY2I0ZjA2Y2YyZmI3NDUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29r
aWVNYW5hZ2VyLmNwcApAQCAtNjgsMTIgKzY4LDQ4IEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xB
U1RfU0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdENvb2tpZU1h
bmFnZXIsIHdlYmtpdF9jb29raWVfbWFuYWdlciwgR19UWVBFX09CSkVDVCkKIAotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhU
LCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUZXh0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfU1FMSVRFLCBTb3VwQ29v
a2llUGVyc2lzdGVudFN0b3JhZ2VTUUxpdGUpOworc3RhdGljIGlubGluZSBTb3VwQ29va2llUGVy
c2lzdGVudFN0b3JhZ2VUeXBlIHRvU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZShXZWJL
aXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZSBraXRTdG9yYWdlKQoreworICAgIHN3aXRjaCAoa2l0
U3RvcmFnZSkgeworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfVEVY
VDoKKyAgICAgICAgcmV0dXJuIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVRleHQ7CisgICAg
Y2FzZSBXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9TUUxJVEU6CisgICAgICAgIHJl
dHVybiBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VTUUxpdGU7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBTb3VwQ29va2llUGVy
c2lzdGVudFN0b3JhZ2VUZXh0OworICAgIH0KK30KKworc3RhdGljIGlubGluZSBXZWJLaXRDb29r
aWVBY2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBodHRwUG9saWN5KQoreworICAgIHN3aXRjaCAoaHR0cFBvbGljeSkgeworICAgIGNh
c2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9D
T09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9s
aWN5TmV2ZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVW
RVI7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnRE
b21haW46CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJ
UkRfUEFSVFk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfQUxXQVlTOworICAgIH0K
K30KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BPTElDWV9B
Q0NFUFRfQUxXQVlTLCBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKTsKLUNPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSLCBIVFRQ
Q29va2llQWNjZXB0UG9saWN5TmV2ZXIpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRfUEFSVFksIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbik7CitzdGF0aWMgaW5saW5lIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdENvb2tpZUFj
Y2VwdFBvbGljeSBraXRQb2xpY3kpCit7CisgICAgc3dpdGNoIChraXRQb2xpY3kpIHsKKyAgICBj
YXNlIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM6CisgICAgICAgIHJldHVybiBI
VFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJ
Q1lfQUNDRVBUX05FVkVSOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU5l
dmVyOworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZ
OgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKKyAgICB9Cit9CiAK
IHN0YXRpYyB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9jbGFzc19pbml0KFdlYktpdENvb2tp
ZU1hbmFnZXJDbGFzcyogZmluZENsYXNzKQogewpAQCAtMTM3LDcgKzE3Myw3IEBAIHZvaWQgd2Vi
a2l0X2Nvb2tpZV9tYW5hZ2VyX3NldF9wZXJzaXN0ZW50X3N0b3JhZ2UoV2ViS2l0Q29va2llTWFu
YWdlciogbWFuYWdlciwKICAgICBnX3JldHVybl9pZl9mYWlsKGZpbGVuYW1lKTsKIAogICAgIG1h
bmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2Vz
KCk7Ci0gICAgbWFuYWdlci0+cHJpdi0+d2ViQ29va2llTWFuYWdlci0+c2V0Q29va2llUGVyc2lz
dGVudFN0b3JhZ2UoU3RyaW5nOjpmcm9tVVRGOChmaWxlbmFtZSksIHN0b3JhZ2UpOworICAgIG1h
bmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
KFN0cmluZzo6ZnJvbVVURjgoZmlsZW5hbWUpLCB0b1NvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFn
ZVR5cGUoc3RvcmFnZSkpOwogICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwogfQogCkBAIC0xNTIsMTMgKzE4OCwxMyBAQCB2
b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNjZXB0X3BvbGljeShXZWJLaXRDb29raWVN
YW5hZ2VyKiBtYW5hZ2VyLCBXZWJLaQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lT
X0NPT0tJRV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tp
ZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKKyAgICBtYW5hZ2Vy
LT5wcml2LT53ZWJDb29raWVNYW5hZ2VyLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHRvSFRU
UENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0Q29v
a2llTWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKFdLSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCiB7CiAgICAgR1JlZlB0cjxHVGFz
az4gdGFzayA9IGFkb3B0R1JlZihHX1RBU0soY29udGV4dCkpOwotICAgIGdfdGFza19yZXR1cm5f
aW50KHRhc2suZ2V0KCksIHBvbGljeSk7CisgICAgZ190YXNrX3JldHVybl9pbnQodGFzay5nZXQo
KSwgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBv
bGljeSkpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdENyZWRlbnRpYWwuY3BwCmluZGV4IDU3NTVmZDVjN2M4MDY1ZjViMWY2ZjVl
MTI4OTdiMzI3N2IwM2Q0ZWUuLmM4ZGM0NzQ3NzIxYzY3ZGRjOTNlOWM1NGRhN2EyZGE4N2VmOGZl
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENy
ZWRlbnRpYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dENyZWRlbnRpYWwuY3BwCkBAIC0zNywxMiArMzcsMzggQEAgc3RydWN0IF9XZWJLaXRDcmVkZW50
aWFsIHsKICAgICBDU3RyaW5nIHBhc3N3b3JkOwogfTsKIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FLCBXZWJDb3JlOjpDcmVk
ZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfRk9SX1NFU1NJT04sIFdlYkNvcmU6OkNyZWRlbnRp
YWxQZXJzaXN0ZW5jZUZvclNlc3Npb24pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQsIFdlYkNvcmU6OkNyZWRlbnRp
YWxQZXJzaXN0ZW5jZVBlcm1hbmVudCk7Ci0KIEdfREVGSU5FX0JPWEVEX1RZUEUoV2ViS2l0Q3Jl
ZGVudGlhbCwgd2Via2l0X2NyZWRlbnRpYWwsIHdlYmtpdF9jcmVkZW50aWFsX2NvcHksIHdlYmtp
dF9jcmVkZW50aWFsX2ZyZWUpCiAKK3N0YXRpYyBpbmxpbmUgV2ViS2l0Q3JlZGVudGlhbFBlcnNp
c3RlbmNlIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZSBjb3JlUGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChjb3JlUGVyc2lzdGVu
Y2UpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FOworICAgIGNhc2Ug
V2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbjoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX0ZPUl9TRVNTSU9OOworICAgIGNhc2UgV2Vi
Q29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlUGVybWFuZW50OgorICAgICAgICByZXR1cm4gV0VC
S0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5UOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV0VCS0lUX0NSRURFTlRJ
QUxfUEVSU0lTVEVOQ0VfTk9ORTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbmxpbmUgV2ViQ29yZTo6
Q3JlZGVudGlhbFBlcnNpc3RlbmNlIHRvV2ViQ29yZUNyZWRlbnRpYWxQZXJzaXN0ZW5jZShXZWJL
aXRDcmVkZW50aWFsUGVyc2lzdGVuY2Uga2l0UGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChr
aXRQZXJzaXN0ZW5jZSkgeworICAgIGNhc2UgV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0Vf
Tk9ORToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU7
CisgICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9GT1JfU0VTU0lPTjoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb247Cisg
ICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQ6CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VQZXJtYW5lbnQ7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lOworICAgIH0KK30KKwogV2ViS2l0Q3JlZGVu
dGlhbCogd2Via2l0Q3JlZGVudGlhbENyZWF0ZShjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiBj
b3JlQ3JlZGVudGlhbCkKIHsKICAgICBXZWJLaXRDcmVkZW50aWFsKiBjcmVkZW50aWFsID0gZ19z
bGljZV9uZXcoV2ViS2l0Q3JlZGVudGlhbCk7CkBAIC03Myw3ICs5OSw3IEBAIFdlYktpdENyZWRl
bnRpYWwqIHdlYmtpdF9jcmVkZW50aWFsX25ldyhjb25zdCBnY2hhciogdXNlcm5hbWUsIGNvbnN0
IGdjaGFyKiBwYXNzCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwodXNlcm5hbWUsIDApOwogICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHBhc3N3b3JkLCAwKTsKIAotICAgIHJldHVybiB3ZWJraXRD
cmVkZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2Vy
bmFtZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpD
cmVkZW50aWFsUGVyc2lzdGVuY2U+KHBlcnNpc3RlbmNlKSkpOworICAgIHJldHVybiB3ZWJraXRD
cmVkZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2Vy
bmFtZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCB0b1dlYkNvcmVDcmVkZW50aWFsUGVy
c2lzdGVuY2UocGVyc2lzdGVuY2UpKSk7CiB9CiAKIC8qKgpAQCAtMTc4LDUgKzIwNCw1IEBAIFdl
YktpdENyZWRlbnRpYWxQZXJzaXN0ZW5jZSB3ZWJraXRfY3JlZGVudGlhbF9nZXRfcGVyc2lzdGVu
Y2UoV2ViS2l0Q3JlZGVudGlhbCoKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjcmVkZW50
aWFsLCBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FKTsKIAotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGNyZWRlbnRpYWwtPmNyZWRl
bnRpYWwucGVyc2lzdGVuY2UoKSk7CisgICAgcmV0dXJuIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNp
c3RlbmNlKGNyZWRlbnRpYWwtPmNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKaW5k
ZXggZTk1ZTRjMDY1MGIzOTNlOGM4YWFiYjY0M2NiMzcwZmVlNDQ5ZDU5My4uYzQ4M2I5MjdjZmQy
MzY3MDVjMjI4NmQ3NmM3Nzc2MmRlMGVjMDA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcApAQCAtMjMsNiArMjMsNyBAQAog
I2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXREb3dubG9hZFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4K
QEAgLTM0MCw3ICszNDEsNyBAQCB2b2lkIHdlYmtpdERvd25sb2FkTm90aWZ5UHJvZ3Jlc3MoV2Vi
S2l0RG93bmxvYWQqIGRvd25sb2FkLCBndWludDY0IGJ5dGVzUmVjZWl2ZQogdm9pZCB3ZWJraXRE
b3dubG9hZEZhaWxlZChXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IFJlc291cmNlRXJy
b3ImIHJlc291cmNlRXJyb3IpCiB7CiAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVycm9yKGdf
ZXJyb3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhyZXNvdXJjZUVycm9yLmRvbWFp
bigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCBy
ZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAg
ICAgICB0b1dlYktpdEVycm9yKHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCkpLCByZXNvdXJjZUVy
cm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIGlmIChkb3du
bG9hZC0+cHJpdi0+dGltZXIpCiAgICAgICAgIGdfdGltZXJfc3RvcChkb3dubG9hZC0+cHJpdi0+
dGltZXIuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRFcnJvci5jcHAKaW5kZXggYzA2ZGM2MWE1OGNjNGFhMGE2YzE2ZGE2NTQ2NDA0YTYwZTAx
MjRmZS4uNzQxOWVlNzIxYTBmZTg2YWJjMzY0MzZkMjRlYzI1ZTQ2NDIzZThjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcApAQCAtNDAs
NTMgKzQwLDI2IEBAIEdRdWFyayB3ZWJraXRfbmV0d29ya19lcnJvcl9xdWFyaygpCiAgICAgcmV0
dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9yRG9tYWluTmV0d29y
ayk7CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJS
T1JfRkFJTEVELCBOZXR3b3JrRXJyb3JGYWlsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQsIE5ldHdvcmtFcnJvclRyYW5zcG9y
dCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX1VO
S05PV05fUFJPVE9DT0wsIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRCwgTmV0d29y
a0Vycm9yQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05F
VFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVCwgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RF
eGlzdCk7Ci0KIEdRdWFyayB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrKCkKIHsKICAgICByZXR1
cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5Qb2xpY3kp
OwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1Jf
RkFJTEVELCBQb2xpY3lFcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNh
bm5vdFNob3dNaW1lVHlwZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9Q
T0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xP
QURfSU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRl
cnJ1cHRlZEJ5UG9saWN5Q2hhbmdlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JD
YW5ub3RVc2VSZXN0cmljdGVkUG9ydCk7Ci0KIEdRdWFyayB3ZWJraXRfcGx1Z2luX2Vycm9yX3F1
YXJrKCkKIHsKICAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6
ZXJyb3JEb21haW5QbHVnaW4pOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9QTFVHSU5fRVJST1JfRkFJTEVELCBQbHVnaW5FcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lO
LCBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTiwgUGx1Z2luRXJyb3JD
YW5ub3RMb2FkUGx1Z2luKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BM
VUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFLCBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVD
VElPTl9DQU5DRUxMRUQsIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9B
RCwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCk7Ci0KIEdRdWFyayB3ZWJraXRfZG93bmxvYWRf
ZXJyb3JfcXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhX
ZWJDb3JlOjplcnJvckRvbWFpbkRvd25sb2FkKTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSywgRG93bmxvYWRFcnJvck5ldHdv
cmspOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1Jf
Q0FOQ0VMTEVEX0JZX1VTRVIsIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIpOwotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT04s
IERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbik7Ci0KIEdRdWFyayB3ZWJraXRfcHJpbnRfZXJyb3Jf
cXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3Jl
OjplcnJvckRvbWFpblByaW50KTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfUFJJTlRfRVJST1JfR0VORVJBTCwgUHJpbnRFcnJvckdlbmVyYWwpOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQs
IFByaW50RXJyb3JQcmludGVyTm90Rm91bmQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9QQUdFX1JBTkdFLCBQcmludEVycm9ySW52YWxp
ZFBhZ2VSYW5nZSk7Ci0KIEdRdWFyayB3ZWJraXRfamF2YXNjcmlwdF9lcnJvcl9xdWFyaygpCiB7
CiAgICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKCJXZWJLaXRKYXZhc2NyaXB0
RXJyb3IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZpbmRDb250cm9sbGVyLmNwcAppbmRleCA4NzU5MzA2ZTJiY2YxZjk2MWU1Nzg0MWNi
MTQ2YjYwZmMyNmQ1OWY2Li42ZTcxNDFlNGU4M2Q4NTEwZmUzODRhZTA3YTVkNzIwNzc4YTljMzBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5k
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RmluZENvbnRyb2xsZXIuY3BwCkBAIC04MiwxMSArODIsMjIgQEAgc3RhdGljIGd1aW50IHNp
Z25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0
RmluZENvbnRyb2xsZXIsIHdlYmtpdF9maW5kX2NvbnRyb2xsZXIsIEdfVFlQRV9PQkpFQ1QpCiAK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lO
U0VOU0lUSVZFLCBGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSk7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9GSU5EX09QVElPTlNfQVRfV09SRF9TVEFSVFMsIEZpbmRPcHRp
b25zQXRXb3JkU3RhcnRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJ
TkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJULCBGaW5kT3B0aW9u
c1RyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMsIEZpbmRPcHRpb25zQmFja3dhcmRz
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19XUkFQ
X0FST1VORCwgRmluZE9wdGlvbnNXcmFwQXJvdW5kKTsKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpG
aW5kT3B0aW9ucyB0b1dlYktpdEZpbmRPcHRpb25zKFdlYktpdEZpbmRPcHRpb25zIHR5cGUpCit7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KCh0eXBlICYgV0VC
S0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VOU0lUSVZFID8gRmluZE9wdGlvbnNDYXNlSW5zZW5z
aXRpdmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19BVF9XT1JE
X1NUQVJUUyA/IEZpbmRPcHRpb25zQXRXb3JkU3RhcnRzIDogMCkKKyAgICAgICAgfCAodHlwZSAm
IFdFQktJVF9GSU5EX09QVElPTlNfVFJFQVRfTUVESUFMX0NBUElUQUxfQVNfV09SRF9TVEFSVCA/
IEZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQgOiAwKQorICAgICAgICB8
ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMgPyBGaW5kT3B0aW9uc0JhY2t3
YXJkcyA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1dSQVBfQVJP
VU5EID8gRmluZE9wdGlvbnNXcmFwQXJvdW5kIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdFQktJ
VF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID8gRmluZE9wdGlvbnNTaG93T3ZlcmxheSA6IDAp
CisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfRklORF9JTkRJQ0FU
T1IgPyBGaW5kT3B0aW9uc1Nob3dGaW5kSW5kaWNhdG9yIDogMCkKKyAgICAgICAgfCAodHlwZSAm
IFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19ISUdITElHSFQgPyBGaW5kT3B0aW9uc1Nob3dIaWdo
bGlnaHQgOiAwKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b1dl
YktpdEZpbmRPcHRpb25zKHVpbnQzMl90IHR5cGUpCit7CisgICAgcmV0dXJuIHRvV2ViS2l0Rmlu
ZE9wdGlvbnMoc3RhdGljX2Nhc3Q8V2ViS2l0RmluZE9wdGlvbnM+KHR5cGUpKTsKK30KIAogc3Rh
dGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5n
LCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewpAQCAtMzQ5
LDcgKzM2MCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdEZpbmRDb250cm9sbGVyUGVyZm9ybShXZWJL
aXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIsIFdlCiAgICAgV2ViS2l0RmluZENvbnRy
b2xsZXJQcml2YXRlKiBwcml2ID0gZmluZENvbnRyb2xsZXItPnByaXY7CiAgICAgaWYgKG9wZXJh
dGlvbiA9PSBDb3VudE9wZXJhdGlvbikgewogICAgICAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVy
KS0+Y291bnRTdHJpbmdNYXRjaGVzKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4dC5k
YXRhKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KHByaXYtPmZpbmRPcHRpb25zKSwg
cHJpdi0+bWF4TWF0Y2hDb3VudCk7CisgICAgICAgICAgICB0b1dlYktpdEZpbmRPcHRpb25zKHBy
aXYtPmZpbmRPcHRpb25zKSwgcHJpdi0+bWF4TWF0Y2hDb3VudCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTM2Miw5ICszNzMsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRGaW5kQ29udHJv
bGxlclBlcmZvcm0oV2ViS2l0RmluZENvbnRyb2xsZXIqIGZpbmRDb250cm9sbGVyLCBXZQogICAg
ICAgICAvLyB1bmNvbmRpdGlvbmFsbHkgc2hvdyBoaWdobGlnaHRzLiBCb3RoIHNlYXJjaF9uZXh0
KCkgYW5kCiAgICAgICAgIC8vIHNlYXJjaF9wcmV2KCkgc2hvdWxkIG5vdCBlbmFibGUgaGlnaGxp
Z2h0aW5nIHRvIGF2b2lkIGFuCiAgICAgICAgIC8vIGV4dHJhIHVubWFya0FsbFRleHRNYXRjaGVz
KCkgKyBtYXJrQWxsVGV4dE1hdGNoZXMoKQotICAgICAgICBmaW5kT3B0aW9ucyB8PSBGaW5kT3B0
aW9uc1Nob3dIaWdobGlnaHQ7CisgICAgICAgIGZpbmRPcHRpb25zIHw9IFdFQktJVF9GSU5EX09Q
VElPTlNfU0hPV19ISUdITElHSFQ7CiAKLSAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVyKS0+Zmlu
ZFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHByaXYtPnNlYXJjaFRleHQuZGF0YSgpKSwgc3RhdGlj
X2Nhc3Q8V2ViS2l0OjpGaW5kT3B0aW9ucz4oZmluZE9wdGlvbnMpLAorICAgIGdldFBhZ2UoZmlu
ZENvbnRyb2xsZXIpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4
dC5kYXRhKCkpLCB0b1dlYktpdEZpbmRPcHRpb25zKGZpbmRPcHRpb25zKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tYXhNYXRjaENvdW50KTsKIH0KIApA
QCAtNDI1LDcgKzQzNiw3IEBAIHZvaWQgd2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4
dChXZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIpCiAgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfRklORF9DT05UUk9MTEVSKGZpbmRDb250cm9sbGVyKSk7CiAKICAgICBm
aW5kQ29udHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0gfldFQktJVF9GSU5EX09QVElPTlNf
QkFDS1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9ucyAmPSB+Rmlu
ZE9wdGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0
aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsKICAgICB3ZWJLaXRG
aW5kQ29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0UHJldk9wZXJhdGlv
bik7CiB9CiAKQEAgLTQ0Myw3ICs0NTQsNyBAQCB2b2lkIHdlYmtpdF9maW5kX2NvbnRyb2xsZXJf
c2VhcmNoX3ByZXZpb3VzKFdlYktpdEZpbmRDb250cm9sbGVyKiBmaW5kQ29udHJvbGxlcgogICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTkRfQ09OVFJPTExFUihmaW5kQ29udHJvbGxl
cikpOwogCiAgICAgZmluZENvbnRyb2xsZXItPnByaXYtPmZpbmRPcHRpb25zIHw9IFdFQktJVF9G
SU5EX09QVElPTlNfQkFDS1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0
aW9ucyAmPSB+RmluZE9wdGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5w
cml2LT5maW5kT3B0aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsK
ICAgICB3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0
UHJldk9wZXJhdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCmluZGV4IDdiYWQxZDA1MTg0ZDMxNTZk
MWQxZmQ5NjQ0NWM5YzlkMTdmYTNmM2UuLmM4OWMzODY0ZmRlOGQ5MWVlYmU0MWMwNjEwYTYxMzg4
YzczNGQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaApAQCAtNjMsNiArNjMsMTAgQEAgdHlwZWRlZiBlbnVt
IHsKICAgV0VCS0lUX0ZJTkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NU
QVJUID0gMSA8PCAyLAogICBXRUJLSVRfRklORF9PUFRJT05TX0JBQ0tXQVJEUyA9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAxIDw8IDMsCiAgIFdFQktJVF9GSU5EX09QVElPTlNfV1JBUF9BUk9V
TkQgPSAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgNCwKKyAgLyo8IHByaXZhdGUgPiovCisg
IFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID0gICAgICAgICAgICAgICAgICAgICAg
IDEgPDwgNSwKKyAgV0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0ZJTkRfSU5ESUNBVE9SID0gICAg
ICAgICAgICAgICAgMSA8PCA2LAorICBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfSElHSExJR0hU
ID0gICAgICAgICAgICAgICAgICAgICAxIDw8IDcsCiB9IFdlYktpdEZpbmRPcHRpb25zOwogCiBz
dHJ1Y3QgX1dlYktpdEZpbmRDb250cm9sbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNw
cAppbmRleCAxYjc3YjZlYTdiNDY3MGYxOWU5NjA2MTA0Mzc3MmQxOTk0OWE5MjIxLi5iOWFjMjM0
YmY3YzMwZDVhMzUzOTk2N2YyNzdlZDExMTZkNGQwZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5k
bGVDbGllbnQuaCIKIAogI2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUuaCIKQEAgLTg3LDcgKzg4LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVdlYlZpZXdN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGMKICAgICAg
ICAgQVBJOjpFcnJvciogd2ViRXJyb3IgPSBzdGF0aWNfY2FzdDxBUEk6OkVycm9yKj4obWVzc2Fn
ZS5nZXQoU3RyaW5nOjpmcm9tVVRGOCgiRXJyb3IiKSkpOwogICAgICAgICBjb25zdCBSZXNvdXJj
ZUVycm9yJiBwbGF0Zm9ybUVycm9yID0gd2ViRXJyb3ItPnBsYXRmb3JtRXJyb3IoKTsKICAgICAg
ICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHJlc291cmNlRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChn
X3F1YXJrX2Zyb21fc3RyaW5nKHBsYXRmb3JtRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSks
Ci0gICAgICAgICAgICBwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpLCBwbGF0Zm9ybUVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJL
aXRFcnJvcihwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpKSwgcGxhdGZvcm1FcnJvci5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgICAgICB3ZWJraXRXZWJSZXNv
dXJjZUZhaWxlZChyZXNvdXJjZS5nZXQoKSwgcmVzb3VyY2VFcnJvci5nZXQoKSk7CiAgICAgICAg
IHdlYmtpdFdlYlZpZXdSZW1vdmVMb2FkaW5nV2ViUmVzb3VyY2Uod2ViVmlldywgcmVzb3VyY2VJ
ZGVudGlmaWVyLT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCmluZGV4IDRiMmU1OWMyNWZlN2Y4MDU1
ZTc0OGI3ZmI3YWE4Y2ZjMTBjMzVkNzEuLmFiOTdkMjkwODNjOTI4ZWFmOTU1YTRlMzJkNDc5MzBk
MDA1NmQyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdExvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIldl
YktpdExvYWRlckNsaWVudC5oIgogCiAjaW5jbHVkZSAiV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklS
ZXNwb25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgpAQCAtNTQsNyArNTUsNyBAQCBzdGF0
aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVm
IHBhZ2UsIFdLRnJhbWVSZWYgZgogCiAgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VF
cnJvciA9IHRvSW1wbChlcnJvciktPnBsYXRmb3JtRXJyb3IoKTsKICAgICBHVW5pcXVlUHRyPEdF
cnJvcj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21fc3RyaW5nKHJl
c291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIHJlc291cmNlRXJy
b3IuZXJyb3JDb2RlKCksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgICAgIHRvV2ViS2l0RXJyb3IocmVzb3VyY2VFcnJvci5lcnJvckNv
ZGUoKSksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgp
KSk7CiAgICAgaWYgKHJlc291cmNlRXJyb3IudGxzRXJyb3JzKCkpIHsKICAgICAgICAgd2Via2l0
V2ViVmlld0xvYWRGYWlsZWRXaXRoVExTRXJyb3JzKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZv
KSwgcmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0
KCksCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4ocmVzb3Vy
Y2VFcnJvci50bHNFcnJvcnMoKSksIHJlc291cmNlRXJyb3IuY2VydGlmaWNhdGUoKSk7CkBAIC04
NSw3ICs4Niw3IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyCiAKICAgICBjb25zdCBSZXNvdXJj
ZUVycm9yJiByZXNvdXJjZUVycm9yID0gdG9JbXBsKGVycm9yKS0+cGxhdGZvcm1FcnJvcigpOwog
ICAgIEdVbmlxdWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVh
cmtfZnJvbV9zdHJpbmcocmVzb3VyY2VFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwKLSAg
ICAgICAgcmVzb3VyY2VFcnJvci5lcnJvckNvZGUoKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWRE
ZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJLaXRFcnJvcihyZXNv
dXJjZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICB3ZWJraXRXZWJWaWV3TG9hZEZhaWxlZChXRUJLSVRf
V0VCX1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9MT0FEX0NPTU1JVFRFRCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXNvdXJjZUVycm9yLmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgp
LCB3ZWJFcnJvci5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmNw
cAppbmRleCBmMDM0NDZiYWI3MzBjZDQ2YjBmNjkyYzcxZDFjMGVlMjNlNDI2YmIyLi44MzM2NmRj
Y2Q3ZGExZjQ1MzBkMThlZDNkYWI2NDZkZWNiMTAwMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbi5jcHAKQEAgLTI0MywxMyArMjQzLDYgQEAgY29uc3QgY2hhciogd2Via2l0
X25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF9mcmFtZV9uYW1lKFdlYktpdE5hdmlnYXRp
b25Qb2wKICAgICByZXR1cm4gZGVjaXNpb24tPnByaXYtPmZyYW1lTmFtZS5kYXRhKCk7CiB9CiAK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05BVklHQVRJT05fVFlQRV9MSU5L
X0NMSUNLRUQsIE5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0
aW9uVHlwZUZvcm1TdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfTkFWSUdBVElPTl9UWVBFX0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2Fy
ZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9OQVZJR0FUSU9OX1RZUEVf
UkVMT0FELCBOYXZpZ2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5
cGVGb3JtUmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
TkFWSUdBVElPTl9UWVBFX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQogV2ViS2l0TmF2
aWdhdGlvblBvbGljeURlY2lzaW9uKiB3ZWJraXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DcmVh
dGUoV2ViS2l0TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIHVuc2lnbmVkIG1vdXNlQnV0
dG9uLCB1bnNpZ25lZCBtb2RpZmllcnMsIEFQSTo6VVJMUmVxdWVzdCogcmVxdWVzdCwgY29uc3Qg
Y2hhciogZnJhbWVOYW1lLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIGxpc3RlbmVyKQog
ewogICAgIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiogZGVjaXNpb24gPSBXRUJLSVRf
TkFWSUdBVElPTl9QT0xJQ1lfREVDSVNJT04oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05BVklH
QVRJT05fUE9MSUNZX0RFQ0lTSU9OLCBOVUxMKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcAppbmRleCAxZWI2YjFl
YzY2OWFiY2M3OWM4ZjA4ZDQ3Nzc5NjgwZjQyZWFhNWQ2Li4wODJjM2M0ZmQ1YzE1ZGU0ZGNiNGEx
ZjIwOGJiZTI4OGY2M2EyZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAKQEAgLTI5LDEwICsyOSwzMSBAQAog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCitzdGF0aWMgaW5saW5lIFdlYktpdE5hdmlnYXRp
b25UeXBlIHRvV2ViS2l0TmF2aWdhdGlvblR5cGUoV0tGcmFtZU5hdmlnYXRpb25UeXBlIHR5cGUp
Cit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBrV0tGcmFtZU5hdmlnYXRpb25UeXBl
TGlua0NsaWNrZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0xJTktf
Q0xJQ0tFRDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fVFlQRV9GT1JNX1NVQk1JVFRFRDsKKyAg
ICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfQkFDS19GT1JXQVJEOworICAgIGNhc2Uga1dLRnJhbWVO
YXZpZ2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZ
UEVfUkVMT0FEOworICAgIGNhc2Uga1dLRnJhbWVOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRl
ZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRF
RDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfT1RIRVI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBF
X0xJTktfQ0xJQ0tFRDsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVO
YXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0Zy
YW1lLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxp
c3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAg
ICAgR1JlZlB0cjxXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24+IGRlY2lzaW9uID0KLSAg
ICAgICAgYWRvcHRHUmVmKHdlYmtpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkNyZWF0ZShzdGF0
aWNfY2FzdDxXZWJLaXROYXZpZ2F0aW9uVHlwZT4obmF2aWdhdGlvblR5cGUpLAorICAgICAgICBh
ZG9wdEdSZWYod2Via2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHRvV2ViS2l0TmF2
aWdhdGlvblR5cGUobmF2aWdhdGlvblR5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91
c2VCdXR0b24obW91c2VCdXR0b24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhtb2Rp
ZmllcnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRvSW1wbChyZXF1ZXN0KSwKQEAgLTQ2LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0sKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmln
YXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9u
IG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVO
YW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBHUmVmUHRyPFdlYktpdE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbj4gZGVjaXNpb24gPQotICAgICAgICBhZG9wdEdSZWYod2Via2l0TmF2
aWdhdGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHN0YXRpY19jYXN0PFdlYktpdE5hdmlnYXRpb25U
eXBlPihuYXZpZ2F0aW9uVHlwZSksCisgICAgICAgIGFkb3B0R1JlZih3ZWJraXROYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb25DcmVhdGUodG9XZWJLaXROYXZpZ2F0aW9uVHlwZShuYXZpZ2F0aW9uVHlw
ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2tFdmVudE1vdXNlQnV0dG9uVG9XZWJLaXRNb3VzZUJ1dHRvbihtb3VzZUJ1dHRvbiksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2tF
dmVudE1vZGlmaWVyc1RvR2RrTW9kaWZpZXJzKG1vZGlmaWVycyksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbXBsKHJlcXVlc3QpLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRP
cGVyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJp
bnRPcGVyYXRpb24uY3BwCmluZGV4IDgxMGQyYzc5YTQ0YTIxMmU1MmQwMDM3ODQ0ZTdmNWE3MWU3
ODI4YjguLjBhMDM4NmFhZjdiNmUzOTk1OTVlYzk2YTM2ZTE0NTZkYzFkNGQzOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9w
ZXJhdGlvbi5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdGF0aWMgdm9pZCBkcmF3UGFnZXNGb3JQ
cmludGluZ0NvbXBsZXRlZChBUEk6OkVycm9yKiB3a1ByaW50RXJyb3IsIFdlYktpdFByaW50Twog
ICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IgPSB3a1ByaW50
RXJyb3IgPyB3a1ByaW50RXJyb3ItPnBsYXRmb3JtRXJyb3IoKSA6IFdlYkNvcmU6OlJlc291cmNl
RXJyb3IoKTsKICAgICBpZiAoIXJlc291cmNlRXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgR1Vu
aXF1ZVB0cjxHRXJyb3I+IHByaW50RXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zy
b21fc3RyaW5nKHJlc291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAg
ICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCByZXNvdXJjZUVycm9yLmxvY2FsaXplZERl
c2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJLaXRFcnJvcihy
ZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlw
dGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgZ19zaWduYWxfZW1pdChwcmludE9wZXJh
dGlvbiwgc2lnbmFsc1tGQUlMRURdLCAwLCBwcmludEVycm9yLmdldCgpKTsKICAgICB9CiAgICAg
Z19zaWduYWxfZW1pdChwcmludE9wZXJhdGlvbiwgc2lnbmFsc1tGSU5JU0hFRF0sIDAsIE5VTEwp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRl
LmNwcAppbmRleCBkMzRiOWM0NzE3MWEwOGFmOWRjZWIyNzc2ZDg3OWJhOGU4ZTQyNjBiLi42YTZk
OTJhNGJkOTliYmI4YzI0OTAzNDI5OTVlOGZmZDNhNmM2NGRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcApAQCAtMjAsNiArMjAs
OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKIAor
I2luY2x1ZGUgIkVycm9yc0d0ay5oIgorI2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAjaW5jbHVk
ZSA8Z2RrL2dkay5oPgogCiB1bnNpZ25lZCB3a0V2ZW50TW9kaWZpZXJzVG9HZGtNb2RpZmllcnMo
V0tFdmVudE1vZGlmaWVycyB3a01vZGlmaWVycykKQEAgLTUxLDMgKzUzLDEwOSBAQCB1bnNpZ25l
ZCB3a0V2ZW50TW91c2VCdXR0b25Ub1dlYktpdE1vdXNlQnV0dG9uKFdLRXZlbnRNb3VzZUJ1dHRv
biB3a0J1dHRvbikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKIH0K
KwordW5zaWduZWQgdG9XZWJLaXRFcnJvcih1bnNpZ25lZCB3ZWJDb3JlRXJyb3IpCit7CisgICAg
c3dpdGNoICh3ZWJDb3JlRXJyb3IpIHsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckZh
aWxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICBj
YXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclRyYW5zcG9ydDoKKyAgICAgICAgcmV0dXJuIFdFQktJ
VF9ORVRXT1JLX0VSUk9SX1RSQU5TUE9SVDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJv
clVua25vd25Qcm90b2NvbDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX1VO
S05PV05fUFJPVE9DT0w7CisgICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JDYW5jZWxsZWQ6
CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ7CisgICAgY2Fz
ZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0OgorICAgICAgICByZXR1cm4g
V0VCS0lUX05FVFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVDsKKyAgICBjYXNlIFdlYkNv
cmU6OlBvbGljeUVycm9yRmFpbGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJP
Ul9GQUlMRUQ7CisgICAgY2FzZSBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlw
ZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9U
WVBFOworICAgIGNhc2UgV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93VVJMOgorICAgICAg
ICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkk7CisgICAgY2FzZSBX
ZWJDb3JlOjpQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURf
QllfUE9MSUNZX0NIQU5HRTsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90VXNl
UmVzdHJpY3RlZFBvcnQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5P
VF9VU0VfUkVTVFJJQ1RFRF9QT1JUOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JGYWls
ZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxFRDsKKyAgICBjYXNl
IFdlYkNvcmU6OlBsdWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbjoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOOworICAgIGNhc2UgV2ViQ29yZTo6
UGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJ
Tl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU47CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJv
ckphdmFVbmF2YWlsYWJsZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfSkFW
QV9VTkFWQUlMQUJMRTsKKyAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yQ29ubmVjdGlvbkNh
bmNlbGxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9D
QU5DRUxMRUQ7CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOworICAg
IGNhc2UgV2ViQ29yZTo6RG93bmxvYWRFcnJvck5ldHdvcms6CisgICAgICAgIHJldHVybiBXRUJL
SVRfRE9XTkxPQURfRVJST1JfTkVUV09SSzsKKyAgICBjYXNlIFdlYkNvcmU6OkRvd25sb2FkRXJy
b3JDYW5jZWxsZWRCeVVzZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1Jf
Q0FOQ0VMTEVEX0JZX1VTRVI7CisgICAgY2FzZSBXZWJDb3JlOjpEb3dubG9hZEVycm9yRGVzdGlu
YXRpb246CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT047
CisgICAgY2FzZSBXZWJDb3JlOjpQcmludEVycm9yR2VuZXJhbDoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9QUklOVF9FUlJPUl9HRU5FUkFMOworICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvclBy
aW50ZXJOb3RGb3VuZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUklOVF9FUlJPUl9QUklOVEVS
X05PVF9GT1VORDsKKyAgICBjYXNlIFdlYkNvcmU6OlByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdl
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRTsK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICB9Cit9CisKK3Vuc2lnbmVkIHRv
V2ViQ29yZUVycm9yKHVuc2lnbmVkIHdlYktpdEVycm9yKQoreworICAgIHN3aXRjaCAod2ViS2l0
RXJyb3IpIHsKKyAgICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDoKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckZhaWxlZDsKKyAgICBjYXNlIFdFQktJVF9ORVRX
T1JLX0VSUk9SX1RSQU5TUE9SVDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJv
clRyYW5zcG9ydDsKKyAgICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05PV05fUFJPVE9D
T0w6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2w7
CisgICAgY2FzZSBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpOZXR3b3JrRXJyb3JDYW5jZWxsZWQ7CisgICAgY2FzZSBXRUJLSVRfTkVUV09S
S19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNUOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0
d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdDsKKyAgICBjYXNlIFdFQktJVF9QT0xJQ1lfRVJST1Jf
RkFJTEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JGYWlsZWQ7CisgICAg
Y2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX01JTUVfVFlQRToKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlOworICAgIGNhc2Ug
V0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkk6CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dVUkw7CisgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VS
Uk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRToKKyAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5n
ZTsKKyAgICBjYXNlIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1VTRV9SRVNUUklDVEVEX1BP
UlQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0
ZWRQb3J0OworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ6CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckZhaWxlZDsKKyAgICBjYXNlIFdFQktJVF9QTFVHSU5f
RVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1Z2lu
RXJyb3JDYW5ub3RGaW5kUGx1Z2luOworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5O
T1RfTE9BRF9QTFVHSU46CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckNhbm5v
dExvYWRQbHVnaW47CisgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5BVkFJTEFC
TEU6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZTsK
KyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9DQU5DRUxMRUQ6CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQ7CisgICAg
Y2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExfSEFORExFX0xPQUQ6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkOworICAgIGNhc2UgV0VCS0lUX0RP
V05MT0FEX0VSUk9SX05FVFdPUks6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpEb3dubG9hZEVy
cm9yTmV0d29yazsKKyAgICBjYXNlIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9DQU5DRUxMRURfQllf
VVNFUjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVz
ZXI7CisgICAgY2FzZSBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT046CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpEb3dubG9hZEVycm9yRGVzdGluYXRpb247CisgICAgY2FzZSBXRUJL
SVRfUFJJTlRfRVJST1JfR0VORVJBTDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50RXJy
b3JHZW5lcmFsOworICAgIGNhc2UgV0VCS0lUX1BSSU5UX0VSUk9SX1BSSU5URVJfTk9UX0ZPVU5E
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZDsKKyAg
ICBjYXNlIFdFQktJVF9QUklOVF9FUlJPUl9JTlZBTElEX1BBR0VfUkFOR0U6CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5l
dHdvcmtFcnJvckZhaWxlZDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmgKaW5kZXggYmQwNjBlZDMyOWYxYjJmMDhiNjhjMTg1
MWIxYjY5MmQzZWY5MmNhMy4uMzE1YmQxNmJmYzAzZTA3YTJiMjgyYmUxY2MzYmY1ZWFjMjI4MDYx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZh
dGUuaApAQCAtNDksOSArNDksNiBAQAogI2RlZmluZSBXRUJLSVRfUEFSQU1fV1JJVEFCTEUgKHN0
YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1dSSVRBQkxFIHwgR19QQVJBTV9TVEFUSUNf
TkFNRSB8IEdfUEFSQU1fU1RBVElDX05JQ0sgfCBHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAjZGVm
aW5lIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgKHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BB
UkFNX1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElDX05BTUUgfCBHX1BBUkFNX1NUQVRJQ19OSUNL
IHwgR19QQVJBTV9TVEFUSUNfQkxVUkIpKQogCi0jZGVmaW5lIENPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0od2Via2l0TmFtZSwgd2ViY29yZU5hbWUpIFwKLSAgICAgICAgQ09NUElMRV9BU1NF
UlQoaW50KHdlYmtpdE5hbWUpID09IGludCh3ZWJjb3JlTmFtZSksIG1pc21hdGNoaW5nRW51bXMp
Ci0KICNkZWZpbmUgV0VCS0lUX0RFRklORV9BU1lOQ19EQVRBX1NUUlVDVChzdHJ1Y3ROYW1lKSBc
CiBzdGF0aWMgc3RydWN0TmFtZSogY3JlYXRlIyNzdHJ1Y3ROYW1lKCkgXAogeyBcCkBAIC0xMTgs
NiArMTE1LDggQEAgR1R5cGUgdHlwZV9uYW1lIyNfZ2V0X3R5cGUodm9pZCkgXAogCiB1bnNpZ25l
ZCB3a0V2ZW50TW9kaWZpZXJzVG9HZGtNb2RpZmllcnMoV0tFdmVudE1vZGlmaWVycyk7CiB1bnNp
Z25lZCB3a0V2ZW50TW91c2VCdXR0b25Ub1dlYktpdE1vdXNlQnV0dG9uKFdLRXZlbnRNb3VzZUJ1
dHRvbik7Cit1bnNpZ25lZCB0b1dlYktpdEVycm9yKHVuc2lnbmVkIHdlYkNvcmVFcnJvcik7Cit1
bnNpZ25lZCB0b1dlYkNvcmVFcnJvcih1bnNpZ25lZCB3ZWJLaXRFcnJvcik7CiAKIGVudW0gU25h
cHNob3RSZWdpb24gewogICAgIFNuYXBzaG90UmVnaW9uVmlzaWJsZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5jcHAKaW5kZXggNmQ4YzY4NDE4NDJlODZiNGM1MTZhOTRkMGQzMWY4NzEyNTViZGIzZC4uZmM4
YjRiNjVjY2M2ZjQ2YWY4MzQ0YWY2NjA2YTA4OTZlZGRhMDIwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
LmgiCiAKICNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3LmgiCkBAIC0y
MzAsNyArMjMxLDcgQEAgdm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJv
cihXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBHRXIKIAogICAgIFdlYktpdFVSSVNj
aGVtZVJlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKIAotICAgIFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9t
YWluKSwgZXJyb3ItPmNvZGUsIHByaXYtPnVyaS5kYXRhKCksIFN0cmluZzo6ZnJvbVVURjgoZXJy
b3ItPm1lc3NhZ2UpKTsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3Io
Z19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbiksIHRvV2ViQ29yZUVycm9yKGVycm9yLT5j
b2RlKSwgcHJpdi0+dXJpLmRhdGEoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkp
OwogICAgIHByaXYtPndlYlJlcXVlc3RNYW5hZ2VyLT5kaWRGYWlsV2l0aEVycm9yKHByaXYtPnJl
cXVlc3RJRCwgcmVzb3VyY2VFcnJvcik7CiAgICAgd2Via2l0V2ViQ29udGV4dERpZEZpbmlzaExv
YWRpbmdDdXN0b21Qcm90b2NvbChwcml2LT53ZWJDb250ZXh0LCBwcml2LT5yZXF1ZXN0SUQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJD
b250ZXh0LmNwcAppbmRleCAzYmQ4OTMwODg4M2IyMzUzZmRjY2IyODZmMDI0M2UxMmE2NzE5MDY4
Li42MTIzYWQxMzJiNjM1NzliODMxYmI2ZTUzMzM4YTI3YWMxZGE4NmMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApA
QCAtMTY1LDYgKzE2NSwzMiBAQCBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7
IDAsIH07CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRXZWJDb250ZXh0LCB3ZWJraXRfd2Vi
X2NvbnRleHQsIEdfVFlQRV9PQkpFQ1QpCiAKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpQcm9jZXNz
TW9kZWwgdG9Qcm9jZXNzTW9kZWwoV2ViS2l0UHJvY2Vzc01vZGVsIHdlYktpdFByb2Nlc3NNb2Rl
bCkKK3sKKyAgICBzd2l0Y2ggKHdlYktpdFByb2Nlc3NNb2RlbCkgeworICAgIGNhc2UgV0VCS0lU
X1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOgorICAgICAgICByZXR1cm4g
UHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczsKKyAgICBjYXNlIFdFQktJVF9QUk9D
RVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM6CisgICAgICAgIHJldHVybiBQ
cm9jZXNzTW9kZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFByb2Nlc3NNb2RlbFNo
YXJlZFNlY29uZGFyeVByb2Nlc3M7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIFdlYktpdFBy
b2Nlc3NNb2RlbCB0b1dlYktpdFByb2Nlc3NNb2RlbChXZWJLaXQ6OlByb2Nlc3NNb2RlbCBwcm9j
ZXNzTW9kZWwpCit7CisgICAgc3dpdGNoIChwcm9jZXNzTW9kZWwpIHsKKyAgICBjYXNlIFByb2Nl
c3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M6CisgICAgICAgIHJldHVybiBXRUJLSVRfUFJP
Q0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M7CisgICAgY2FzZSBQcm9jZXNzTW9k
ZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUk9D
RVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfUFJPQ0VT
U19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M7CisgICAgfQorfQorCiBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xhc3MqIHdl
YkNvbnRleHRDbGFzcykKIHsKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JK
RUNUX0NMQVNTKHdlYkNvbnRleHRDbGFzcyk7CkBAIC05MTcsMTggKzk0Myw3IEBAIHZvaWQgd2Vi
a2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQsIFdlYktpdFByb2NlCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0NP
TlRFWFQoY29udGV4dCkpOwogCi0gICAgUHJvY2Vzc01vZGVsIG5ld1Byb2Nlc3NNb2RlbDsKLQot
ICAgIHN3aXRjaCAocHJvY2Vzc01vZGVsKSB7Ci0gICAgY2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RF
TF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M6Ci0gICAgICAgIG5ld1Byb2Nlc3NNb2RlbCA9IFBy
b2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzoKLSAg
ICAgICAgbmV3UHJvY2Vzc01vZGVsID0gUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9j
ZXNzZXM7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGdfYXNzZXJ0X25v
dF9yZWFjaGVkKCk7Ci0gICAgfQorICAgIFByb2Nlc3NNb2RlbCBuZXdQcm9jZXNzTW9kZWwodG9Q
cm9jZXNzTW9kZWwocHJvY2Vzc01vZGVsKSk7CiAKICAgICBpZiAobmV3UHJvY2Vzc01vZGVsID09
IGNvbnRleHQtPnByaXYtPmNvbnRleHQtPnByb2Nlc3NNb2RlbCgpKQogICAgICAgICByZXR1cm47
CkBAIC05NTIsMTQgKzk2Nyw3IEBAIFdlYktpdFByb2Nlc3NNb2RlbCB3ZWJraXRfd2ViX2NvbnRl
eHRfZ2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCogY29udGV4CiB7CiAgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpLCBXRUJLSVRf
UFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1MpOwogCi0gICAgc3dpdGNoIChj
b250ZXh0LT5wcml2LT5jb250ZXh0LT5wcm9jZXNzTW9kZWwoKSkgewotICAgIGNhc2UgUHJvY2Vz
c01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9QUk9D
RVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzsKLSAgICBjYXNlIFByb2Nlc3NNb2Rl
bE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgotICAgICAgICByZXR1cm4gV0VCS0lUX1BST0NF
U1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgIH0KKyAgICByZXR1cm4gdG9XZWJLaXRQ
cm9jZXNzTW9kZWwoY29udGV4dC0+cHJpdi0+Y29udGV4dC0+cHJvY2Vzc01vZGVsKCkpOwogfQog
CiBXZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQoRG93
bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggOGY3MjkwYjkzMDA3NGVlNGZlOTZh
N2VhNTg5ZDQxY2M0ZmQ3ZWI1NC4uZjdlMTNmZDI2ZTM2ZGMyNWFhYTg1NTk1YmVmZjIwNzliMGM3
ZjYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5jcHAKQEAgLTMxMDYsOSArMzEwNiw2IEBAIHZvaWQgd2ViS2l0V2ViVmlld0RpZFJl
Y2VpdmVTbmFwc2hvdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCB1aW50NjRfdCBjYWxsYmFja0lE
CiAgICAgICAgIGdfdGFza19yZXR1cm5fcG9pbnRlcih0YXNrLmdldCgpLCAwLCAwKTsKIH0KIAot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfU05BUFNIT1RfUkVHSU9OX1ZJU0lC
TEUsIFNuYXBzaG90UmVnaW9uVmlzaWJsZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9TTkFQU0hPVF9SRUdJT05fRlVMTF9ET0NVTUVOVCwgU25hcHNob3RSZWdpb25GdWxs
RG9jdW1lbnQpOwotCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHdlYktpdFNuYXBzaG90T3B0aW9u
c1RvU25hcHNob3RPcHRpb25zKFdlYktpdFNuYXBzaG90T3B0aW9ucyBvcHRpb25zKQogewogICAg
IFNuYXBzaG90T3B0aW9ucyBzbmFwc2hvdE9wdGlvbnMgPSAwOwpAQCAtMzExOSw2ICszMTE2LDE5
IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgd2ViS2l0U25hcHNob3RPcHRpb25zVG9TbmFwc2hv
dE9wdGlvbnMoV2ViS2l0U25hcHNob3RPcHRpCiAgICAgcmV0dXJuIHNuYXBzaG90T3B0aW9uczsK
IH0KIAorc3RhdGljIGlubGluZSBTbmFwc2hvdFJlZ2lvbiB0b1NuYXBzaG90UmVnaW9uKFdlYktp
dFNuYXBzaG90UmVnaW9uIHJlZ2lvbikKK3sKKyAgICBzd2l0Y2ggKHJlZ2lvbikgeworICAgIGNh
c2UgV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxFOgorICAgICAgICByZXR1cm4gU25hcHNo
b3RSZWdpb25WaXNpYmxlOworICAgIGNhc2UgV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9GVUxMX0RP
Q1VNRU5UOgorICAgICAgICByZXR1cm4gU25hcHNob3RSZWdpb25GdWxsRG9jdW1lbnQ7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBT
bmFwc2hvdFJlZ2lvblZpc2libGU7CisgICAgfQorfQorCiBzdGF0aWMgaW5saW5lIHVpbnQ2NF90
IGdlbmVyYXRlU25hcHNob3RDYWxsYmFja0lEKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3QgdW5p
cXVlQ2FsbGJhY2tJRCA9IDE7CkBAIC0zMTQ4LDcgKzMxNTgsNyBAQCB2b2lkIHdlYmtpdF93ZWJf
dmlld19nZXRfc25hcHNob3QoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0U25hcHNob3RS
ZWdpb24gcgogICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAgICB1
aW50NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVTbmFwc2hvdENhbGxiYWNrSUQoKTsKICAgICBt
ZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJTbmFwc2hvdE9wdGlvbnMiKSwgQVBJOjpVSW50
NjQ6OmNyZWF0ZShzdGF0aWNfY2FzdDx1aW50NjRfdD4od2ViS2l0U25hcHNob3RPcHRpb25zVG9T
bmFwc2hvdE9wdGlvbnMob3B0aW9ucykpKSk7Ci0gICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9t
VVRGOCgiU25hcHNob3RSZWdpb24iKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShzdGF0aWNfY2FzdDx1
aW50NjRfdD4ocmVnaW9uKSkpOworICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlNu
YXBzaG90UmVnaW9uIiksIEFQSTo6VUludDY0OjpjcmVhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KHRvU25hcHNob3RSZWdpb24ocmVnaW9uKSkpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZy
b21VVEY4KCJDYWxsYmFja0lEIiksIEFQSTo6VUludDY0OjpjcmVhdGUoY2FsbGJhY2tJRCkpOwog
CiAgICAgd2ViVmlldy0+cHJpdi0+c25hcHNob3RSZXN1bHRzTWFwLnNldChjYWxsYmFja0lELCBh
ZG9wdEdSZWYoZ190YXNrX25ldyh3ZWJWaWV3LCBjYW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVzZXJE
YXRhKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld0dyb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdHcm91cC5jcHAKaW5kZXggMjg5ZWNkZjAzNmJhZGQ2YzY3YTI1Y2RjY2ZhM2Zi
MjU3ZmY2MTRiMi4uYjIxZTc5ZjY4M2RhN2VmZmQxOThkZGZjODJhMzdlOWJmM2RjMjRjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dy
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3R3JvdXAuY3BwCkBAIC02Nyw2ICs2NywxOSBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdHcm91
cFByaXZhdGUgewogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0V2ViVmlld0dyb3VwLCB3ZWJr
aXRfd2ViX3ZpZXdfZ3JvdXAsIEdfVFlQRV9PQkpFQ1QpCiAKK3N0YXRpYyBpbmxpbmUgV2ViQ29y
ZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyB0b1dlYkNvcmVVc2VyQ29udGVudEluamVjdGVk
RnJhbWVzKFdlYktpdEluamVjdGVkQ29udGVudEZyYW1lcyBraXRGcmFtZXMpCit7CisgICAgc3dp
dGNoIChraXRGcmFtZXMpIHsKKyAgICBjYXNlIFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1F
U19BTEw6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpJbmplY3RJbkFsbEZyYW1lczsKKyAgICBj
YXNlIFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19UT1BfT05MWToKKyAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OkluamVjdEluVG9wRnJhbWVPbmx5OworICAgIGRlZmF1bHQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0SW5B
bGxGcmFtZXM7CisgICAgfQorfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R3JvdXBTZXRQ
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVlKiB2YWx1
ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQogewogICAgIFdlYktpdFdlYlZpZXdHcm91cCogZ3Jv
dXAgPSBXRUJLSVRfV0VCX1ZJRVdfR1JPVVAob2JqZWN0KTsKQEAgLTIyNCw5ICsyMzcsNiBAQCB2
b2lkIHdlYmtpdF93ZWJfdmlld19ncm91cF9zZXRfc2V0dGluZ3MoV2ViS2l0V2ViVmlld0dyb3Vw
KiBncm91cCwgV2ViS2l0U2V0dGluZwogICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChncm91
cCksICJzZXR0aW5ncyIpOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19BTEwsIFdlYkNvcmU6OkluamVjdEluQWxsRnJhbWVz
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRf
RlJBTUVTX1RPUF9PTkxZLCBXZWJDb3JlOjpJbmplY3RJblRvcEZyYW1lT25seSk7Ci0KIHN0YXRp
YyBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IHRvQVBJQXJyYXkoY29uc3QgY2hhciogY29uc3QqIGxp
c3QpCiB7CiAgICAgaWYgKCFsaXN0KQpAQCAtMjcwLDcgKzI4MCw3IEBAIHZvaWQgd2Via2l0X3dl
Yl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KFdlYktpdFdlYlZpZXdHcm91cCogZ3Jv
dXAsIGNvbnN0CiAgICAgICAgIFN0cmluZzo6ZnJvbVVURjgoYmFzZVVSSSksCiAgICAgICAgIHdl
YldoaXRlbGlzdC5nZXQoKSwKICAgICAgICAgd2ViQmxhY2tsaXN0LmdldCgpLAotICAgICAgICBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzPihpbmplY3RlZEZy
YW1lcyksCisgICAgICAgIHRvV2ViQ29yZVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMoaW5qZWN0
ZWRGcmFtZXMpLAogICAgICAgICBXZWJDb3JlOjpVc2VyU3R5bGVVc2VyTGV2ZWwpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224774</attachid>
            <date>2014-02-20 10:50:38 -0800</date>
            <delta_ts>2014-02-24 02:00:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127800-20140220185036.patch</filename>
            <type>text/plain</type>
            <size>70849</size>
            <attacher name="Enrique Ocaña">eocanha</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0NDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMxZTlmNjc1MzQzYjAxODFm
YTQ3NDkyOWI1NjFlMjZjOWZhMDliZmQuLmFhYWE2YmM4NDkxMWQyNGYxY2RiNmRjYzE3ZDNkZDZi
MjI1NzZiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTQtMDItMjAgIEVucmlxdWUg
T2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXRH
VEsrIHNob3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAK
KworICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCisKKyAgICAgICAgKiBQbGF0
Zm9ybUdUSy5jbWFrZTogUmVtb3ZlZCBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorCiAyMDE0LTAy
LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENoYW5naW5n
IHNlbGVjdGlvbiBzaG91bGRuJ3Qgc3luY2hyb25vdXNseSB1cGRhdGUgZWRpdG9yIFVJIGNvbXBv
bmVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhZmE1ZWNiZmMyZWNlNThmNGY1MGRmYWUyNGYzMDNm
MjJkOWZjZjJjLi5jY2NkZmMwZDRlY2EzYTZiOTgzNmQzOGQ4Njg3ODkwM2MzYTRlNmJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTQtMDItMjAgIEVucmlxdWUgT2Nhw7Fh
IEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KKworICAgICAgICBXZWJLaXRHVEsrIHNo
b3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAKKworICAg
ICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbTogUmVtb3ZlZCBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6IERlZmluZWQgYW5kIGFwcGxp
ZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViQ29yZUZpbmRPcHRpb25zKToKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZmluZFN0cmluZyk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJLaXQ6OnRvV2ViS2l0TmV0d29ya0Vy
cm9yKToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFp
bExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRGYWlsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRG
YWxsQmFjayk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3Bw
OiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChXZWJLaXQ6
OmtpdCk6CisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJzZXR0aW5ncy5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAg
ICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChjb3B5R3Rr
VGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyk6
CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvcHlfdGFyZ2V0X2xp
c3QpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdCk6Cisg
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6IEFkZGVkIHRhcmdldExpc3Qg
cHJpdmF0ZSBmaWVsZCwgd2hpY2ggbWlycm9ycyBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFz
dGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkgYnV0IHdpdGggdGhlIGZsYWdzIGNvbnZlcnRl
ZCB0byBXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbworCiAyMDE0LTAyLTE3ICBTZXJnaW8gQ29ycmVp
YSAgPHNlcmdpby5jb3JyZWlhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmVwbGFjZSB1c2Vz
IG9mIFBhc3NPd25QdHIvT3duUHRyIHdpdGggc3RkOjp1bmlxdWVfcHRyIGluIFdlYkNvcmUvaW5z
cGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTY3MjlhM2ZiZTlmNWMwNGEzMWMyYWFlN2UzNDc5YTk3NDA1
NDRmOS4uMWE0MDBjNGNiNWUxNWY1MmQwZDQxOTk5NDhhMGIxOWY5NjJlODE5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDYxIEBACisyMDE0LTAyLTIwICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXog
IDxlb2NhbmhhQGlnYWxpYS5jb20+CisKKyAgICAgICAgV2ViS2l0R1RLKyBzaG91bGQgc3RvcCB1
c2luZyBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNIG1hY3JvcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3ODAwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTWFydGluIFJvYmluc29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNv
bnZlcnNpb25zLgorICAgICAgICAod2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3Nj
aGVtZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29va2llTWFuYWdlci5j
cHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2Vi
S2l0Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKHRvSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSk6CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X3BlcnNpc3RlbnRfc3RvcmFn
ZSk6CisgICAgICAgICh3ZWJraXRfY29va2llX21hbmFnZXJfc2V0X2FjY2VwdF9wb2xpY3kpOgor
ICAgICAgICAod2Via2l0Q29va2llTWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcDogRGVmaW5lZCBh
bmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRDcmVkZW50aWFs
UGVyc2lzdGVuY2UpOgorICAgICAgICAodG9XZWJDb3JlQ3JlZGVudGlhbFBlcnNpc3RlbmNlKToK
KyAgICAgICAgKHdlYmtpdF9jcmVkZW50aWFsX25ldyk6CisgICAgICAgICh3ZWJraXRfY3JlZGVu
dGlhbF9nZXRfcGVyc2lzdGVuY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dERvd25sb2FkLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAg
ICAgICAod2Via2l0RG93bmxvYWRGYWlsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEVycm9yLmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcDogRGVm
aW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAodG9XZWJLaXRGaW5k
T3B0aW9ucyk6CisgICAgICAgICh3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0pOgorICAgICAg
ICAod2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4dCk6CisgICAgICAgICh3ZWJraXRf
ZmluZF9jb250cm9sbGVyX3NlYXJjaF9wcmV2aW91cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaDogQWRkZWQgbmV3IHByaXZhdGUgZmllbGRzIHRv
IHRoZSBlbnVtLCBuZWVkZWQgdG8gbWF0Y2ggY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwOiBEZWZpbmVkIGFuZCBh
cHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChkaWRSZWNlaXZlV2ViVmlld01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dExvYWRlckNsaWVudC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4K
KyAgICAgICAgKGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAg
ICAgIChkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwOiBEZWZpbmVkIGFuZCBh
cHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0UG9saWN5Q2xpZW50LmNwcDogRGVmaW5lZCBhbmQgYXBwbGllZCB0eXBlIGNvbnZlcnNpb25z
LgorICAgICAgICAodG9XZWJLaXROYXZpZ2F0aW9uVHlwZSk6CisgICAgICAgIChkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKGRlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRp
b24uY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgIChk
cmF3UGFnZXNGb3JQcmludGluZ0NvbXBsZXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UHJpdmF0ZS5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9u
cy4KKyAgICAgICAgKHRvV2ViS2l0RXJyb3IpOgorICAgICAgICAodG9XZWJDb3JlRXJyb3IpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaDogRGVmaW5lZCBhbmQg
YXBwbGllZCB0eXBlIGNvbnZlcnNpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVNjaGVtZVJlcXVlc3QuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVy
c2lvbnMuCisgICAgICAgICh3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcik6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHA6IERlZmlu
ZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViS2l0UHJvY2Vz
c01vZGVsKToKKyAgICAgICAgKHdlYmtpdF93ZWJfY29udGV4dF9zZXRfcHJvY2Vzc19tb2RlbCk6
CisgICAgICAgICh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOiBEZWZpbmVkIGFuZCBhcHBs
aWVkIHR5cGUgY29udmVyc2lvbnMuCisgICAgICAgICh0b1NuYXBzaG90UmVnaW9uKToKKyAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdHcm91cC5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBj
b252ZXJzaW9ucy4KKyAgICAgICAgKHRvV2ViQ29yZVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMp
OgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KToK
KwogMjAxNC0wMi0xOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAg
ICAgICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNt
YWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAxY2IyMTg0ZWVhZTIx
MTU2YWEyNjU3MWMwYjIyYWM3MjMxOGMwMWFkLi42MjgwMTI4NThmNDQ5MzBlYzQyYjRlMDliNjUy
ZWQ3OTMzMGY5ODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQwLDcgKzQwLDYgQEAg
bGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRH
VEtfQVBJX0RJUn0vd2Via2l0bWFyc2hhbC5jcHAKIAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAotICAgIGd0ay9XZWJDb3JlU3VwcG9y
dC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwCiAgICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3Rr
LmNwcAogICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRHdGsuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJL
aXQvZ3RrL0dOVW1ha2VmaWxlLmFtCmluZGV4IDY0ZWQ1M2UzOTRkZTIxMDQ2YjllMWM3YTBlZjE2
NzkzMzliYTEzZmUuLmQ1M2YxYjBjMGY4NTQ3MjE4MDZkNjZiYTJhMGUxOWFjMmIzNWYxNjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCkBAIC0xOTAsNyArMTkwLDYgQEAgQlVJTFRfU09VUkNF
UyArPSAkKHdlYmtpdGd0a19idWlsdF9zb3VyY2VzKQogd2Via2l0Z3RrX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0LmggXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0R0wuY3BwIFwKLQlTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQmF0dGVyeUNsaWVudEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0JhdHRlcnlDbGllbnRHdGsuaCBcCiAJU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjMmZlODA5ZWRhMDlmYzEyYzgxMjgzMGYxYTMxOTkxOWNmZjQ2
ODEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTEgQ29s
bGFib3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLS8vIFVzZSB0aGlz
IGZpbGUgdG8gYXNzZXJ0IHRoYXQgdmFyaW91cyBXZWJLaXQgQVBJIGVudW0gdmFsdWVzIGNvbnRp
bnVlCi0vLyBtYXRjaGluZyBXZWJDb3JlIGRlZmluZWQgZW51bSB2YWx1ZXMuCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgotI2lu
Y2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgiCi0j
aW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCi0j
aW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgotI2luY2x1ZGUgIndlYmtpdGVycm9yLmgiCi0j
aW5jbHVkZSAid2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oIgotI2luY2x1ZGUgIndlYmtpdHdl
YnNldHRpbmdzLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgotI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+Ci0KLSNkZWZpbmUgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTSh3ZWJr
aXRfbmFtZSwgd2ViY29yZV9uYW1lKSBcCi0gICAgQ09NUElMRV9BU1NFUlQoaW50KHdlYmtpdF9u
YW1lKSA9PSBpbnQoV2ViQ29yZTo6d2ViY29yZV9uYW1lKSwgbWlzbWF0Y2hpbmdfZW51bXMpCi0K
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfTUFD
LCBFZGl0aW5nTWFjQmVoYXZpb3IpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfRURJVElOR19CRUhBVklPUl9XSU5ET1dTLCBFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfVU5JWCwg
RWRpdGluZ1VuaXhCZWhhdmlvcik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQsIE5hdmlnYXRpb25UeXBlTGlu
a0NsaWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklH
QVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQp
OwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX05BVklHQVRJT05fUkVB
U09OX0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fUkVMT0FELCBO
YXZpZ2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9XRUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5cGVG
b3JtUmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VC
X05BVklHQVRJT05fUkVBU09OX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zQXRXb3JkU3RhcnRz
LCBBdFdvcmRTdGFydHMpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6Oldl
YkZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQsIFRyZWF0TWVkaWFsQ2Fw
aXRhbEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViS2l0OjpX
ZWJGaW5kT3B0aW9uc0JhY2t3YXJkcywgQmFja3dhcmRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViS2l0OjpXZWJGaW5kT3B0aW9uc1dyYXBBcm91bmQsIFdyYXBBcm91bmQpOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJLaXQ6OldlYkZpbmRPcHRpb25zU3RhcnRJ
blNlbGVjdGlvbiwgU3RhcnRJblNlbGVjdGlvbik7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUwsIFBhc3RlYm9hcmRIZWxwZXI6
OlRhcmdldFR5cGVNYXJrdXApOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
V0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRl
eHQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VU
X0lORk9fSU1BR0UsIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVJbWFnZSk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19VUklfTElT
VCwgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3QpOwotQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fTkVUU0NBUEVfVVJMLCBQ
YXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTmV0c2NhcGVVUkwpOwotCi1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRCwgTmV0d29ya0Vycm9y
RmFpbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJS
T1JfVFJBTlNQT1JULCBOZXR3b3JrRXJyb3JUcmFuc3BvcnQpOwotQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MLCBOZXR3b3Jr
RXJyb3JVbmtub3duUHJvdG9jb2wpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQsIE5ldHdvcmtFcnJvckNhbmNlbGxlZCk7Ci1DT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJTEVfRE9FU19O
T1RfRVhJU1QsIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhpc3QpOwotCi1DT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVELCBQb2xpY3lFcnJvckZh
aWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1Jf
Q0FOTk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlwZSk7Ci1D
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NI
T1dfVVJMLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9M
SUNZX0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdl
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5O
T1RfVVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9y
dCk7Ci0KLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9G
QUlMRUQsIFBsdWdpbkVycm9yRmFpbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU4sIFBsdWdpbkVycm9yQ2Fubm90
RmluZFBsdWdpbik7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5f
RVJST1JfQ0FOTk9UX0xPQURfUExVR0lOLCBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVnaW4pOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5B
VkFJTEFCTEUsIFBsdWdpbkVycm9ySmF2YVVuYXZhaWxhYmxlKTsKLUNPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNFTExFRCwgUGx1
Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FELCBQbHVnaW5FcnJvcldpbGxI
YW5kbGVMb2FkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDlkZDllNzE0ZDY0MzIz
OWU5NTg4NTExYWEyYzUwMzhmMmM1YjFiZmEuLmY0NTg3N2MwZmU2Y2ExOWFlOTEzZjkyYjI1NWUw
N2RiYmEwNzdkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtODYsNiArODYsMTYg
QEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hh
aW4gPSB0cnVlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpGcmFtZUxvYWRFdmVudENhbGxi
YWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRFdmVudENhbGxiYWNrID0g
MDsKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGljYXRpb25DYWxsYmFjayBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxsYmFjayA9IDA7CiAKK3N0
YXRpYyBpbmxpbmUgV2ViQ29yZTo6RmluZE9wdGlvbnMgdG9XZWJDb3JlRmluZE9wdGlvbnMoV2Vi
S2l0RmluZE9wdGlvbnMgdHlwZSkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RmluZE9wdGlvbnM+KCh0eXBlICYgV2ViRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRpdmUgPyBDYXNl
SW5zZW5zaXRpdmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNBdFdvcmRT
dGFydHMgPyBBdFdvcmRTdGFydHMgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlv
bnNUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCA/IFRyZWF0TWVkaWFsQ2FwaXRhbEFzV29y
ZFN0YXJ0IDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zQmFja3dhcmRzID8g
QmFja3dhcmRzIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zV3JhcEFyb3Vu
ZCA/IFdyYXBBcm91bmQgOiAwKQorICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlvbnNTdGFy
dEluU2VsZWN0aW9uID8gU3RhcnRJblNlbGVjdGlvbiA6IDApKTsKK30KKwogRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsoKQogewogfQpAQCAtNDc1LDcg
KzQ4NSw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjbGVhck9wZW5lcihXZWJL
aXRXZWJGcmFtZSogZnJhbWUpCiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaW5k
U3RyaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiB0YXJnZXRTdHJpbmcs
IFdlYktpdEZpbmRPcHRpb25zIGZpbmRPcHRpb25zKQogewotICAgIHJldHVybiBjb3JlKHdlYlZp
ZXcpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgodGFyZ2V0U3RyaW5nKSwgZmluZE9wdGlv
bnMpOworICAgIHJldHVybiBjb3JlKHdlYlZpZXcpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVU
RjgodGFyZ2V0U3RyaW5nKSwgdG9XZWJDb3JlRmluZE9wdGlvbnMoZmluZE9wdGlvbnMpKTsKIH0K
IAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFZhbHVlRm9yVXNlcihKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub2RlT2JqZWN0LCBKU1N0cmluZ1JlZiB2YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcAppbmRleCBiMjRlMDg5YzlkMTMxMTJjYTYyYTBjZDAxNGY1YzhhZDZm
YzI3ZTAxLi4yZjhhY2JiM2ZiMGRlOTBkZDU3ZTkwMGRiYjE4ZGFkODgwOWNlNjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwCkBAIC0xMDQsNiArMTA0LDQ3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAoraW5saW5lIGludCB0b1dlYktpdE5ldHdvcmtFcnJv
cihpbnQgZXJyb3JDb2RlKQoreworICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7CisgICAgY2FzZSBO
ZXR3b3JrRXJyb3JGYWlsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9G
QUlMRUQ7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JUcmFuc3BvcnQ6CisgICAgICAgIHJldHVybiBX
RUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQ7CisgICAgY2FzZSBOZXR3b3JrRXJyb3JVbmtu
b3duUHJvdG9jb2w6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dO
X1BST1RPQ09MOworICAgIGNhc2UgTmV0d29ya0Vycm9yQ2FuY2VsbGVkOgorICAgICAgICByZXR1
cm4gV0VCS0lUX05FVFdPUktfRVJST1JfQ0FOQ0VMTEVEOworICAgIGNhc2UgTmV0d29ya0Vycm9y
RmlsZURvZXNOb3RFeGlzdDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZJ
TEVfRE9FU19OT1RfRVhJU1Q7CisgICAgY2FzZSBQb2xpY3lFcnJvckZhaWxlZDoKKyAgICAgICAg
cmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfRkFJTEVEOworICAgIGNhc2UgUG9saWN5RXJyb3JD
YW5ub3RTaG93TWltZVR5cGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NB
Tk5PVF9TSE9XX01JTUVfVFlQRTsKKyAgICBjYXNlIFBvbGljeUVycm9yQ2Fubm90U2hvd1VSTDoK
KyAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJMOworICAg
IGNhc2UgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlOgorICAg
ICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9GUkFNRV9MT0FEX0lOVEVSUlVQVEVEX0JZ
X1BPTElDWV9DSEFOR0U7CisgICAgY2FzZSBQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0ZWRQ
b3J0OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RS
SUNURURfUE9SVDsKKyAgICBjYXNlIFBsdWdpbkVycm9yRmFpbGVkOgorICAgICAgICByZXR1cm4g
V0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ7CisgICAgY2FzZSBQbHVnaW5FcnJvckNhbm5vdEZp
bmRQbHVnaW46CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9GSU5E
X1BMVUdJTjsKKyAgICBjYXNlIFBsdWdpbkVycm9yQ2Fubm90TG9hZFBsdWdpbjoKKyAgICAgICAg
cmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOOworICAgIGNhc2Ug
UGx1Z2luRXJyb3JKYXZhVW5hdmFpbGFibGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lO
X0VSUk9SX0pBVkFfVU5BVkFJTEFCTEU7CisgICAgY2FzZSBQbHVnaW5FcnJvckNvbm5lY3Rpb25D
YW5jZWxsZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0NPTk5FQ1RJT05f
Q0FOQ0VMTEVEOworICAgIGNhc2UgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZDoKKyAgICAgICAg
cmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9BRDsKKyAgICBkZWZhdWx0
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdFQktJVF9O
RVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICB9Cit9CisKIEZyYW1lTG9hZGVyQ2xpZW50OjpGcmFt
ZUxvYWRlckNsaWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1l
KQogICAgICwgbV9wb2xpY3lEZWNpc2lvbigwKQpAQCAtOTkyLDcgKzEwMzMsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiBsb2FkZXIsCiAgICAgICAgIHJldHVybjsKIAogICAgIEdVbmlxdWVQdHI8R0Vycm9y
PiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVhcmtfZnJvbV9zdHJpbmcoZXJyb3Iu
ZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIGVycm9yLmVycm9yQ29kZSgpLCBlcnJv
ci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJL
aXROZXR3b3JrRXJyb3IoZXJyb3IuZXJyb3JDb2RlKCkpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlw
dGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJS
ZXNvdXJjZSwgImxvYWQtZmFpbGVkIiwgd2ViRXJyb3IuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2Vt
aXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2UtbG9hZC1mYWlsZWQiLCB3ZWJSZXNvdXJjZSwg
d2ViRXJyb3IuZ2V0KCkpOwpAQCAtMTAyMCw5ICsxMDYxLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAg
ICAgbm90aWZ5U3RhdHVzKG1fZnJhbWUsIFdFQktJVF9MT0FEX0ZBSUxFRCk7CiAKICAgICBXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKwogICAgIEdV
bmlxdWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKAogICAgICAgICBn
X3F1YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAg
ICBlcnJvci5lcnJvckNvZGUoKSwKKyAgICAgICAgdG9XZWJLaXROZXR3b3JrRXJyb3IoZXJyb3Iu
ZXJyb3JDb2RlKCkpLAogICAgICAgICBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0Zjgo
KS5kYXRhKCkpKTsKICAgICBnYm9vbGVhbiBpc0hhbmRsZWQgPSBmYWxzZTsKICAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUod2ViVmlldywgImxvYWQtZXJyb3IiLCBtX2ZyYW1lLCBlcnJvci5mYWls
aW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0KCksICZpc0hhbmRsZWQpOwpAQCAt
MTA5NCw3ICsxMTM2LDcgQEAgUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2lu
V2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnMKIAogYm9vbCBGcmFtZUxv
YWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7
Ci0gICAgcmV0dXJuICEoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSB8fCBlcnJvci5lcnJvckNvZGUo
KSA9PSBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZ
X0NIQU5HRSB8fCBlcnJvci5lcnJvckNvZGUoKSA9PSBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExf
SEFORExFX0xPQUQpOworICAgIHJldHVybiAhKGVycm9yLmlzQ2FuY2VsbGF0aW9uKCkgfHwgZXJy
b3IuZXJyb3JDb2RlKCkgPT0gUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5
Q2hhbmdlIHx8IGVycm9yLmVycm9yQ29kZSgpID09IFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQp
OwogfQogCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rp
b24uY3BwCmluZGV4IGM3OGU3NTRhZWVjYmU1YTJmY2QzY2QyMmY4YzFkZWQ0NDgzZDk0MTEuLmFk
NmYwYzhmNGQwMWU5OWIzN2VmYWRlMWQxYjE1MWI5NTNmMjBmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAKQEAg
LTM2NCwxMiArMzY0LDQ0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRXZWJOYXZpZ2F0
aW9uUmVhc29uIGtpdChXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQogewotICAgIHJldHVy
biAoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbil0eXBlOworICAgIHN3aXRjaCh0eXBlKSB7Cisg
ICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkOgorICAgICAgICByZXR1
cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQ7CisgICAgY2FzZSBX
ZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ6CisgICAgICAgIHJldHVybiBXRUJL
SVRfV0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVEOworICAgIGNhc2UgV2ViQ29y
ZTo6TmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJf
TkFWSUdBVElPTl9SRUFTT05fQkFDS19GT1JXQVJEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdh
dGlvblR5cGVSZWxvYWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVB
U09OX1JFTE9BRDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0
dGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9GT1JNX1JF
U1VCTUlUVEVEOworICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAg
ICAgcmV0dXJuIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fT1RIRVI7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRf
V0VCX05BVklHQVRJT05fUkVBU09OX0xJTktfQ0xJQ0tFRDsKKyAgICB9CiB9CiAKIFdlYkNvcmU6
Ok5hdmlnYXRpb25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiB0eXBlKQogewot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZT4odHlwZSk7Cisg
ICAgc3dpdGNoKHR5cGUpIHsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05f
TElOS19DTElDS0VEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVMaW5r
Q2xpY2tlZDsKKyAgICBjYXNlIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9TVUJN
SVRURUQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0
ZWQ7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0JBQ0tfRk9SV0FSRDoK
KyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlQmFja0ZvcndhcmQ7CisgICAg
Y2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX1JFTE9BRDoKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlUmVsb2FkOworICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJ
R0FUSU9OX1JFQVNPTl9GT1JNX1JFU1VCTUlUVEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6
TmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQ7CisgICAgY2FzZSBXRUJLSVRfV0VCX05BVklH
QVRJT05fUkVBU09OX09USEVSOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5
cGVPdGhlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQ7CisgICAgfQog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3MuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNw
cAppbmRleCA3NDJiMjNkNDBhZDU0NzgzMzJkNDFjOGMyYjI3YTNmZTZlMTRhOTBkLi5jMTNiYzBl
ZGZhYTEzZGQ1NmM1YmU4MTdlYzRlZmYyOThkNmY0YjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKQEAgLTE2NTgsOSArMTY1OCwxOSBAQCBj
aGFyKiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShXZWJLaXRXZWJTZXR0aW5ncyog
d2ViU2V0dGluZ3MsIGNvbnN0IGNoYQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViQ29yZTo6
RWRpdGluZ0JlaGF2aW9yVHlwZSBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciB0eXBlKQoraW5s
aW5lIFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5cGUgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZp
b3IgdHlwZSkKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdGluZ0JlaGF2
aW9yVHlwZT4odHlwZSk7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBXRUJLSVRfRURJ
VElOR19CRUhBVklPUl9NQUM6CisgICAgICAgIHJldHVybiBFZGl0aW5nTWFjQmVoYXZpb3I7Cisg
ICAgY2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9XSU5ET1dTOgorICAgICAgICByZXR1cm4g
RWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICBjYXNlIFdFQktJVF9FRElUSU5HX0JFSEFWSU9S
X1VOSVg6CisgICAgICAgIHJldHVybiBFZGl0aW5nVW5peEJlaGF2aW9yOworICAgIGRlZmF1bHQ6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gRWRpdGluZ01h
Y0JlaGF2aW9yOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCmluZGV4IDQ4ZjE1YzljZDhmODk5NzY0Y2YwN2ZlODEyYjlmYjI0MGYwYTll
MGMuLjFhMmIwMTczMTY2OTdmZGE1ZGYzOWQ2Y2I2Y2FkZTE5YWY5OTRhOTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTExOSw2ICsxMTksNyBAQAog
I2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5
bXMuaD4KICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgorI2luY2x1ZGUgPGd0ay9ndGsuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQpAQCAtMjgyLDYgKzI4Myw0NyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
c2V0dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1Bhcgogc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF93aW5kb3dfZmVhdHVyZXMoV2ViS2l0V2ViVmll
dyogd2ViVmlldywgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzKTsK
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdEaXJlY3Rpb25DaGFuZ2VkKFdlYktpdFdlYlZpZXcq
LCBHdGtUZXh0RGlyZWN0aW9uIHByZXZpb3VzRGlyZWN0aW9uLCBncG9pbnRlcik7CiAKK3N0YXRp
YyBpbmxpbmUgV2ViS2l0V2ViVmlld1RhcmdldEluZm8gdG9XZWJLaXRXZWJWaWV3VGFyZ2V0SW5m
byhQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0VHlwZSBmbGFncykKK3sKKyAgICBz
d2l0Y2ggKGZsYWdzKSB7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTWFy
a3VwOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUw7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVRleHQ6
CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVEVYVDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlSW1hZ2U6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSU1BR0U7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZVVSSUxpc3Q6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fVVJJX0xJU1Q7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUGFzdGVib2FyZEhlbHBlcjo6VGFyZ2V0VHlwZU5ldHNjYXBl
VVJMOgorICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX05FVFNDQVBF
X1VSTDsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRN
TDsKKyAgICB9Cit9CisKK3N0YXRpYyBHdGtUYXJnZXRMaXN0KiBjb3B5R3RrVGFyZ2V0TGlzdENv
bnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhHdGtUYXJnZXRMaXN0
KiBjb3JlR3RrVGFyZ2V0TGlzdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlR3Rr
VGFyZ2V0TGlzdCwgbnVsbHB0cik7CisKKyAgICBHdGtUYXJnZXRMaXN0KiB0YXJnZXRMaXN0V2l0
aFdlYktpdEVudW1WYWx1ZXMgPSBudWxscHRyOworICAgIGludCB0YWJsZVNpemUgPSAwOworICAg
IEd0a1RhcmdldEVudHJ5KiB0YWJsZShndGtfdGFyZ2V0X3RhYmxlX25ld19mcm9tX2xpc3QoY29y
ZUd0a1RhcmdldExpc3QsICZ0YWJsZVNpemUpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
dGFibGVTaXplOyBpKyspCisgICAgICAgIHRhYmxlW2ldLmZsYWdzID0gdG9XZWJLaXRXZWJWaWV3
VGFyZ2V0SW5mbyhzdGF0aWNfY2FzdDxQYXN0ZWJvYXJkSGVscGVyOjpQYXN0ZWJvYXJkVGFyZ2V0
VHlwZT4odGFibGVbaV0uZmxhZ3MpKTsKKworICAgIHRhcmdldExpc3RXaXRoV2ViS2l0RW51bVZh
bHVlcyA9IGd0a190YXJnZXRfbGlzdF9uZXcodGFibGUsIHRhYmxlU2l6ZSk7CisgICAgZ3RrX3Rh
cmdldF90YWJsZV9mcmVlKHRhYmxlLCB0YWJsZVNpemUpOworCisgICAgcmV0dXJuIHRhcmdldExp
c3RXaXRoV2ViS2l0RW51bVZhbHVlczsKK30KKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
c3RhdGljIHZvaWQgUG9wdXBNZW51UG9zaXRpb25GdW5jKEd0a01lbnUqIG1lbnUsIGdpbnQgKngs
IGdpbnQgKnksIGdib29sZWFuICpwdXNoSW4sIGdwb2ludGVyIHVzZXJEYXRhKQogewpAQCAtMTM4
MCw2ICsxNDIyLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UoR09iamVj
dCogb2JqZWN0KQogICAgIHByaXYtPndlYldpbmRvd0ZlYXR1cmVzLmNsZWFyKCk7CiAgICAgcHJp
di0+bWFpblJlc291cmNlLmNsZWFyKCk7CiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzLmNsZWFyKCk7
CisgICAgcHJpdi0+dGFyZ2V0TGlzdC5jbGVhcigpOwogCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Vi
a2l0X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKIApAQCAtMzg3Mywx
MCArMzkxNiwxMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQogCiAgICAgcHJpdi0+c3ViUmVzb3VyY2VzID0gYWRvcHRHUmVmKGdfaGFz
aF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwgZ19mcmVlLCBnX29iamVj
dF91bnJlZikpOwogCisgICAgcHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5R3RrVGFy
Z2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQYXN0
ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpKTsK
KwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgcHJpdi0+ZHJhZ0FuZERyb3BIZWxwZXIu
c2V0V2lkZ2V0KEdUS19XSURHRVQod2ViVmlldykpOwogICAgIGd0a19kcmFnX2Rlc3Rfc2V0KEdU
S19XSURHRVQod2ViVmlldyksIHN0YXRpY19jYXN0PEd0a0Rlc3REZWZhdWx0cz4oMCksIDAsIDAs
IHN0YXRpY19jYXN0PEdka0RyYWdBY3Rpb24+KEdES19BQ1RJT05fQ09QWSB8IEdES19BQ1RJT05f
Q09QWSB8IEdES19BQ1RJT05fTU9WRSB8IEdES19BQ1RJT05fTElOSyB8IEdES19BQ1RJT05fUFJJ
VkFURSkpOwotICAgIGd0a19kcmFnX2Rlc3Rfc2V0X3RhcmdldF9saXN0KEdUS19XSURHRVQod2Vi
VmlldyksIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdl
dExpc3QoKSk7CisgICAgZ3RrX2RyYWdfZGVzdF9zZXRfdGFyZ2V0X2xpc3QoR1RLX1dJREdFVCh3
ZWJWaWV3KSwgcHJpdi0+dGFyZ2V0TGlzdC5nZXQoKSk7CiAjZW5kaWYKIAogICAgIHByaXYtPnNl
bGZTY3JvbGxpbmcgPSBmYWxzZTsKQEAgLTQ2OTEsNyArNDczNiw4IEBAIHZvaWQgd2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBmbGFn
KQogICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9s
aXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7Ci0gICAgcmV0dXJuIFBhc3RlYm9hcmRIZWxw
ZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKTsKKyAgICB3ZWJWaWV3
LT5wcml2LT50YXJnZXRMaXN0ID0gYWRvcHRHUmVmKGNvcHlHdGtUYXJnZXRMaXN0Q29udmVydGlu
Z1dlYkNvcmVFbnVtVmFsdWVzVG9XZWJLaXRFbnVtVmFsdWVzKFBhc3RlYm9hcmRIZWxwZXI6OmRl
ZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPnRhcmdldExpc3QoKSkpOworICAgIHJldHVybiB3ZWJW
aWV3LT5wcml2LT50YXJnZXRMaXN0LmdldCgpOwogfQogCiAvKioKQEAgLTQ3MDgsNyArNDc1NCw4
IEBAIEd0a1RhcmdldExpc3QqIHdlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlzdChX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICoqLwogR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92
aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotICAg
IHJldHVybiBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJn
ZXRMaXN0KCk7CisgICAgd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihjb3B5
R3RrVGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZhbHVl
cyhQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0
KCkpKTsKKyAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdC5nZXQoKTsKIH0KIAog
LyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlld3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5o
CmluZGV4IDNmNjkyN2UxNjJkYjFkMjA5NjI1MGY1NmUzODMzM2NhZTBkZjc0M2IuLjZiOTAzNmNk
ZjRlMWY1N2ViMjkyODU5ZTg3ODFmMzgxM2I3MjYyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oCkBAIC0xMDAsNiArMTAwLDcgQEAgc3Ry
dWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVy
IGNsaWNrQ291bnRlcjsKICAgICBXZWJDb3JlOjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5k
RHJvcEhlbHBlcjsKICAgICBib29sIHNlbGZTY3JvbGxpbmc7CisgICAgR1JlZlB0cjxHdGtUYXJn
ZXRMaXN0PiB0YXJnZXRMaXN0OwogCiAgICAgT3duUHRyPFdlYktpdDo6QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQ+IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlv
blJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0
aGVudGljYXRpb25SZXF1ZXN0LmNwcAppbmRleCA2ZjBjMzcwN2UzNzhlNDJhOTNiMmRmYjkzYWQw
ZjMwYWU1YjdiMmRhLi42ZTI1OTcyYjVjNjcxOWY5NjgwYzI3MzkzOGFlMjg3NDhjMWU0ZTQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50
aWNhdGlvblJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5jcHAKQEAgLTY3LDE4ICs2NywzNSBAQCBzdHJ1
Y3QgX1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdFByaXZhdGUgewogCiBzdGF0aWMgZ3VpbnQg
c2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAsIH07CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxULCBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUMsIFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0RJR0VTVCwgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0KTsKLUNPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVE1MX0ZPUk0sIFBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm0pOwotQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05UTE0sIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfTkVHT1RJQVRFLCBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZSk7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfQ0xJRU5UX0NFUlRJRklD
QVRFX1JFUVVFU1RFRCwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRD
ZXJ0aWZpY2F0ZVJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVE
LCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlv
blJlcXVlc3RlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9BVVRIRU5U
SUNBVElPTl9TQ0hFTUVfVU5LTk9XTiwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVVbmtub3duKTsKLQogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVx
dWVzdCwgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3QsIEdfVFlQRV9PQkpFQ1QpCiAKK3N0
YXRpYyBpbmxpbmUgV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUgdG9XZWJLaXRBdXRoZW50aWNh
dGlvblNjaGVtZShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBj
b3JlU2NoZW1lKQoreworICAgIHN3aXRjaCAoY29yZVNjaGVtZSkgeworICAgIGNhc2UgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIGNhc2UgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUM7CisgICAg
Y2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdl
c3Q6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfRElH
RVNUOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVIVE1MRm9ybToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVf
SFRNTF9GT1JNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVOVExNOgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVN
RV9OVExNOworICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVOZWdvdGlhdGU6CisgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NI
RU1FX05FR09USUFURTsKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgICAgIHJldHVybiBX
RUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0NMSUVOVF9DRVJUSUZJQ0FURV9SRVFVRVNURUQ7
CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNl
cnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRI
RU5USUNBVElPTl9TQ0hFTUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVEOworICAg
IGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3du
OgorICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9VTktOT1dOOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1
cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOworICAgIH0KK30KKwogc3Rh
dGljIHZvaWQgd2Via2l0QXV0aGVudGljYXRpb25SZXF1ZXN0RGlzcG9zZShHT2JqZWN0KiBvYmpl
Y3QpCiB7CiAgICAgV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0KiByZXF1ZXN0ID0gV0VCS0lU
X0FVVEhFTlRJQ0FUSU9OX1JFUVVFU1Qob2JqZWN0KTsKQEAgLTI0NCw3ICsyNjEsNyBAQCBXZWJL
aXRBdXRoZW50aWNhdGlvblNjaGVtZSB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRf
c2NoZW1lKFdlYktpdEF1dGhlbgogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19BVVRIRU5USUNBVElPTl9SRVFVRVNUKHJlcXVlc3QpLCBXRUJLSVRfQVVUSEVOVElDQVRJT05f
U0NIRU1FX1VOS05PV04pOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdEF1dGhlbnRp
Y2F0aW9uU2NoZW1lPihyZXF1ZXN0LT5wcml2LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+cHJv
dGVjdGlvblNwYWNlKCktPmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkpOworICAgIHJldHVybiB0b1dl
YktpdEF1dGhlbnRpY2F0aW9uU2NoZW1lKHJlcXVlc3QtPnByaXYtPmF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLT5wcm90ZWN0aW9uU3BhY2UoKS0+YXV0aGVudGljYXRpb25TY2hlbWUoKSk7CiB9CiAK
IC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
Q29va2llTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRDb29raWVNYW5hZ2VyLmNwcAppbmRleCAzNjRlNGU0N2RjYzNiYmNjMzgzZTgwNzlhNjAwZmUx
YTU1NDY0MmNlLi5jOTVmYWM4MDQ4MzQ0ZWIyYzJjZjgwMTUyY2I0ZjA2Y2YyZmI3NDUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29raWVNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb29r
aWVNYW5hZ2VyLmNwcApAQCAtNjgsMTIgKzY4LDQ4IEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xB
U1RfU0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdENvb2tpZU1h
bmFnZXIsIHdlYmtpdF9jb29raWVfbWFuYWdlciwgR19UWVBFX09CSkVDVCkKIAotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhU
LCBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VUZXh0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfU1FMSVRFLCBTb3VwQ29v
a2llUGVyc2lzdGVudFN0b3JhZ2VTUUxpdGUpOworc3RhdGljIGlubGluZSBTb3VwQ29va2llUGVy
c2lzdGVudFN0b3JhZ2VUeXBlIHRvU291cENvb2tpZVBlcnNpc3RlbnRTdG9yYWdlVHlwZShXZWJL
aXRDb29raWVQZXJzaXN0ZW50U3RvcmFnZSBraXRTdG9yYWdlKQoreworICAgIHN3aXRjaCAoa2l0
U3RvcmFnZSkgeworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfVEVY
VDoKKyAgICAgICAgcmV0dXJuIFNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVRleHQ7CisgICAg
Y2FzZSBXRUJLSVRfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9TUUxJVEU6CisgICAgICAgIHJl
dHVybiBTb3VwQ29va2llUGVyc2lzdGVudFN0b3JhZ2VTUUxpdGU7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBTb3VwQ29va2llUGVy
c2lzdGVudFN0b3JhZ2VUZXh0OworICAgIH0KK30KKworc3RhdGljIGlubGluZSBXZWJLaXRDb29r
aWVBY2NlcHRQb2xpY3kgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSBodHRwUG9saWN5KQoreworICAgIHN3aXRjaCAoaHR0cFBvbGljeSkgeworICAgIGNh
c2UgSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9D
T09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9s
aWN5TmV2ZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTkVW
RVI7CisgICAgY2FzZSBIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnRE
b21haW46CisgICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJ
UkRfUEFSVFk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfQUxXQVlTOworICAgIH0K
K30KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfQ09PS0lFX1BPTElDWV9B
Q0NFUFRfQUxXQVlTLCBIVFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzKTsKLUNPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05FVkVSLCBIVFRQ
Q29va2llQWNjZXB0UG9saWN5TmV2ZXIpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfQ09PS0lFX1BPTElDWV9BQ0NFUFRfTk9fVEhJUkRfUEFSVFksIEhUVFBDb29raWVBY2Nl
cHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbik7CitzdGF0aWMgaW5saW5lIEhUVFBD
b29raWVBY2NlcHRQb2xpY3kgdG9IVFRQQ29va2llQWNjZXB0UG9saWN5KFdlYktpdENvb2tpZUFj
Y2VwdFBvbGljeSBraXRQb2xpY3kpCit7CisgICAgc3dpdGNoIChraXRQb2xpY3kpIHsKKyAgICBj
YXNlIFdFQktJVF9DT09LSUVfUE9MSUNZX0FDQ0VQVF9BTFdBWVM6CisgICAgICAgIHJldHVybiBI
VFRQQ29va2llQWNjZXB0UG9saWN5QWx3YXlzOworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJ
Q1lfQUNDRVBUX05FVkVSOgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU5l
dmVyOworICAgIGNhc2UgV0VCS0lUX0NPT0tJRV9QT0xJQ1lfQUNDRVBUX05PX1RISVJEX1BBUlRZ
OgorICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3Vt
ZW50RG9tYWluOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICByZXR1cm4gSFRUUENvb2tpZUFjY2VwdFBvbGljeUFsd2F5czsKKyAgICB9Cit9CiAK
IHN0YXRpYyB2b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9jbGFzc19pbml0KFdlYktpdENvb2tp
ZU1hbmFnZXJDbGFzcyogZmluZENsYXNzKQogewpAQCAtMTM3LDcgKzE3Myw3IEBAIHZvaWQgd2Vi
a2l0X2Nvb2tpZV9tYW5hZ2VyX3NldF9wZXJzaXN0ZW50X3N0b3JhZ2UoV2ViS2l0Q29va2llTWFu
YWdlciogbWFuYWdlciwKICAgICBnX3JldHVybl9pZl9mYWlsKGZpbGVuYW1lKTsKIAogICAgIG1h
bmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0b3BPYnNlcnZpbmdDb29raWVDaGFuZ2Vz
KCk7Ci0gICAgbWFuYWdlci0+cHJpdi0+d2ViQ29va2llTWFuYWdlci0+c2V0Q29va2llUGVyc2lz
dGVudFN0b3JhZ2UoU3RyaW5nOjpmcm9tVVRGOChmaWxlbmFtZSksIHN0b3JhZ2UpOworICAgIG1h
bmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnNldENvb2tpZVBlcnNpc3RlbnRTdG9yYWdl
KFN0cmluZzo6ZnJvbVVURjgoZmlsZW5hbWUpLCB0b1NvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFn
ZVR5cGUoc3RvcmFnZSkpOwogICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tpZU1hbmFnZXItPnN0
YXJ0T2JzZXJ2aW5nQ29va2llQ2hhbmdlcygpOwogfQogCkBAIC0xNTIsMTMgKzE4OCwxMyBAQCB2
b2lkIHdlYmtpdF9jb29raWVfbWFuYWdlcl9zZXRfYWNjZXB0X3BvbGljeShXZWJLaXRDb29raWVN
YW5hZ2VyKiBtYW5hZ2VyLCBXZWJLaQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lT
X0NPT0tJRV9NQU5BR0VSKG1hbmFnZXIpKTsKIAotICAgIG1hbmFnZXItPnByaXYtPndlYkNvb2tp
ZU1hbmFnZXItPnNldEhUVFBDb29raWVBY2NlcHRQb2xpY3kocG9saWN5KTsKKyAgICBtYW5hZ2Vy
LT5wcml2LT53ZWJDb29raWVNYW5hZ2VyLT5zZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHRvSFRU
UENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kpKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0Q29v
a2llTWFuYWdlckdldEFjY2VwdFBvbGljeUNhbGxiYWNrKFdLSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSBwb2xpY3ksIFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCiB7CiAgICAgR1JlZlB0cjxHVGFz
az4gdGFzayA9IGFkb3B0R1JlZihHX1RBU0soY29udGV4dCkpOwotICAgIGdfdGFza19yZXR1cm5f
aW50KHRhc2suZ2V0KCksIHBvbGljeSk7CisgICAgZ190YXNrX3JldHVybl9pbnQodGFzay5nZXQo
KSwgdG9XZWJLaXRDb29raWVBY2NlcHRQb2xpY3kodG9IVFRQQ29va2llQWNjZXB0UG9saWN5KHBv
bGljeSkpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRDcmVkZW50aWFsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdENyZWRlbnRpYWwuY3BwCmluZGV4IDU3NTVmZDVjN2M4MDY1ZjViMWY2ZjVl
MTI4OTdiMzI3N2IwM2Q0ZWUuLmM4ZGM0NzQ3NzIxYzY3ZGRjOTNlOWM1NGRhN2EyZGE4N2VmOGZl
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENy
ZWRlbnRpYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dENyZWRlbnRpYWwuY3BwCkBAIC0zNywxMiArMzcsMzggQEAgc3RydWN0IF9XZWJLaXRDcmVkZW50
aWFsIHsKICAgICBDU3RyaW5nIHBhc3N3b3JkOwogfTsKIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FLCBXZWJDb3JlOjpDcmVk
ZW50aWFsUGVyc2lzdGVuY2VOb25lKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfRk9SX1NFU1NJT04sIFdlYkNvcmU6OkNyZWRlbnRp
YWxQZXJzaXN0ZW5jZUZvclNlc3Npb24pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQsIFdlYkNvcmU6OkNyZWRlbnRp
YWxQZXJzaXN0ZW5jZVBlcm1hbmVudCk7Ci0KIEdfREVGSU5FX0JPWEVEX1RZUEUoV2ViS2l0Q3Jl
ZGVudGlhbCwgd2Via2l0X2NyZWRlbnRpYWwsIHdlYmtpdF9jcmVkZW50aWFsX2NvcHksIHdlYmtp
dF9jcmVkZW50aWFsX2ZyZWUpCiAKK3N0YXRpYyBpbmxpbmUgV2ViS2l0Q3JlZGVudGlhbFBlcnNp
c3RlbmNlIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNpc3RlbmNlKFdlYkNvcmU6OkNyZWRlbnRpYWxQ
ZXJzaXN0ZW5jZSBjb3JlUGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChjb3JlUGVyc2lzdGVu
Y2UpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU6CisgICAg
ICAgIHJldHVybiBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FOworICAgIGNhc2Ug
V2ViQ29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbjoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9DUkVERU5USUFMX1BFUlNJU1RFTkNFX0ZPUl9TRVNTSU9OOworICAgIGNhc2UgV2Vi
Q29yZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlUGVybWFuZW50OgorICAgICAgICByZXR1cm4gV0VC
S0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0VfUEVSTUFORU5UOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV0VCS0lUX0NSRURFTlRJ
QUxfUEVSU0lTVEVOQ0VfTk9ORTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbmxpbmUgV2ViQ29yZTo6
Q3JlZGVudGlhbFBlcnNpc3RlbmNlIHRvV2ViQ29yZUNyZWRlbnRpYWxQZXJzaXN0ZW5jZShXZWJL
aXRDcmVkZW50aWFsUGVyc2lzdGVuY2Uga2l0UGVyc2lzdGVuY2UpCit7CisgICAgc3dpdGNoIChr
aXRQZXJzaXN0ZW5jZSkgeworICAgIGNhc2UgV0VCS0lUX0NSRURFTlRJQUxfUEVSU0lTVEVOQ0Vf
Tk9ORToKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmU7
CisgICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9GT1JfU0VTU0lPTjoKKyAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb247Cisg
ICAgY2FzZSBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9QRVJNQU5FTlQ6CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VQZXJtYW5lbnQ7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VOb25lOworICAgIH0KK30KKwogV2ViS2l0Q3JlZGVu
dGlhbCogd2Via2l0Q3JlZGVudGlhbENyZWF0ZShjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiBj
b3JlQ3JlZGVudGlhbCkKIHsKICAgICBXZWJLaXRDcmVkZW50aWFsKiBjcmVkZW50aWFsID0gZ19z
bGljZV9uZXcoV2ViS2l0Q3JlZGVudGlhbCk7CkBAIC03Myw3ICs5OSw3IEBAIFdlYktpdENyZWRl
bnRpYWwqIHdlYmtpdF9jcmVkZW50aWFsX25ldyhjb25zdCBnY2hhciogdXNlcm5hbWUsIGNvbnN0
IGdjaGFyKiBwYXNzCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwodXNlcm5hbWUsIDApOwogICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHBhc3N3b3JkLCAwKTsKIAotICAgIHJldHVybiB3ZWJraXRD
cmVkZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2Vy
bmFtZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpD
cmVkZW50aWFsUGVyc2lzdGVuY2U+KHBlcnNpc3RlbmNlKSkpOworICAgIHJldHVybiB3ZWJraXRD
cmVkZW50aWFsQ3JlYXRlKFdlYkNvcmU6OkNyZWRlbnRpYWwoU3RyaW5nOjpmcm9tVVRGOCh1c2Vy
bmFtZSksIFN0cmluZzo6ZnJvbVVURjgocGFzc3dvcmQpLCB0b1dlYkNvcmVDcmVkZW50aWFsUGVy
c2lzdGVuY2UocGVyc2lzdGVuY2UpKSk7CiB9CiAKIC8qKgpAQCAtMTc4LDUgKzIwNCw1IEBAIFdl
YktpdENyZWRlbnRpYWxQZXJzaXN0ZW5jZSB3ZWJraXRfY3JlZGVudGlhbF9nZXRfcGVyc2lzdGVu
Y2UoV2ViS2l0Q3JlZGVudGlhbCoKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjcmVkZW50
aWFsLCBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNURU5DRV9OT05FKTsKIAotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXZWJLaXRDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGNyZWRlbnRpYWwtPmNyZWRl
bnRpYWwucGVyc2lzdGVuY2UoKSk7CisgICAgcmV0dXJuIHRvV2ViS2l0Q3JlZGVudGlhbFBlcnNp
c3RlbmNlKGNyZWRlbnRpYWwtPmNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKaW5k
ZXggZTk1ZTRjMDY1MGIzOTNlOGM4YWFiYjY0M2NiMzcwZmVlNDQ5ZDU5My4uYzQ4M2I5MjdjZmQy
MzY3MDVjMjI4NmQ3NmM3Nzc2MmRlMGVjMDA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdERvd25sb2FkLmNwcApAQCAtMjMsNiArMjMsNyBAQAog
I2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXREb3dubG9hZFByaXZh
dGUuaCIKICNpbmNsdWRlICJXZWJLaXRNYXJzaGFsLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNHdGsuaD4K
QEAgLTM0MCw3ICszNDEsNyBAQCB2b2lkIHdlYmtpdERvd25sb2FkTm90aWZ5UHJvZ3Jlc3MoV2Vi
S2l0RG93bmxvYWQqIGRvd25sb2FkLCBndWludDY0IGJ5dGVzUmVjZWl2ZQogdm9pZCB3ZWJraXRE
b3dubG9hZEZhaWxlZChXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IFJlc291cmNlRXJy
b3ImIHJlc291cmNlRXJyb3IpCiB7CiAgICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVycm9yKGdf
ZXJyb3JfbmV3X2xpdGVyYWwoZ19xdWFya19mcm9tX3N0cmluZyhyZXNvdXJjZUVycm9yLmRvbWFp
bigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCBy
ZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAg
ICAgICB0b1dlYktpdEVycm9yKHJlc291cmNlRXJyb3IuZXJyb3JDb2RlKCkpLCByZXNvdXJjZUVy
cm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOwogICAgIGlmIChkb3du
bG9hZC0+cHJpdi0+dGltZXIpCiAgICAgICAgIGdfdGltZXJfc3RvcChkb3dubG9hZC0+cHJpdi0+
dGltZXIuZ2V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRFcnJvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRFcnJvci5jcHAKaW5kZXggYzA2ZGM2MWE1OGNjNGFhMGE2YzE2ZGE2NTQ2NDA0YTYwZTAx
MjRmZS4uNzQxOWVlNzIxYTBmZTg2YWJjMzY0MzZkMjRlYzI1ZTQ2NDIzZThjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RXJyb3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEVycm9yLmNwcApAQCAtNDAs
NTMgKzQwLDI2IEBAIEdRdWFyayB3ZWJraXRfbmV0d29ya19lcnJvcl9xdWFyaygpCiAgICAgcmV0
dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9yRG9tYWluTmV0d29y
ayk7CiB9CiAKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05FVFdPUktfRVJS
T1JfRkFJTEVELCBOZXR3b3JrRXJyb3JGYWlsZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfTkVUV09SS19FUlJPUl9UUkFOU1BPUlQsIE5ldHdvcmtFcnJvclRyYW5zcG9y
dCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX1VO
S05PV05fUFJPVE9DT0wsIE5ldHdvcmtFcnJvclVua25vd25Qcm90b2NvbCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRCwgTmV0d29y
a0Vycm9yQ2FuY2VsbGVkKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05F
VFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVCwgTmV0d29ya0Vycm9yRmlsZURvZXNOb3RF
eGlzdCk7Ci0KIEdRdWFyayB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrKCkKIHsKICAgICByZXR1
cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6ZXJyb3JEb21haW5Qb2xpY3kp
OwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QT0xJQ1lfRVJST1Jf
RkFJTEVELCBQb2xpY3lFcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9UWVBFLCBQb2xpY3lFcnJvckNh
bm5vdFNob3dNaW1lVHlwZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9Q
T0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfVVJJLCBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkwpOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xP
QURfSU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRSwgUG9saWN5RXJyb3JGcmFtZUxvYWRJbnRl
cnJ1cHRlZEJ5UG9saWN5Q2hhbmdlKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VC
S0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfVVNFX1JFU1RSSUNURURfUE9SVCwgUG9saWN5RXJyb3JD
YW5ub3RVc2VSZXN0cmljdGVkUG9ydCk7Ci0KIEdRdWFyayB3ZWJraXRfcGx1Z2luX2Vycm9yX3F1
YXJrKCkKIHsKICAgICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcoV2ViQ29yZTo6
ZXJyb3JEb21haW5QbHVnaW4pOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdF
QktJVF9QTFVHSU5fRVJST1JfRkFJTEVELCBQbHVnaW5FcnJvckZhaWxlZCk7Ci1DT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lO
LCBQbHVnaW5FcnJvckNhbm5vdEZpbmRQbHVnaW4pOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXRUJLSVRfUExVR0lOX0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTiwgUGx1Z2luRXJyb3JD
YW5ub3RMb2FkUGx1Z2luKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX1BM
VUdJTl9FUlJPUl9KQVZBX1VOQVZBSUxBQkxFLCBQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZSk7
Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVD
VElPTl9DQU5DRUxMRUQsIFBsdWdpbkVycm9yQ29ubmVjdGlvbkNhbmNlbGxlZCk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9QTFVHSU5fRVJST1JfV0lMTF9IQU5ETEVfTE9B
RCwgUGx1Z2luRXJyb3JXaWxsSGFuZGxlTG9hZCk7Ci0KIEdRdWFyayB3ZWJraXRfZG93bmxvYWRf
ZXJyb3JfcXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhX
ZWJDb3JlOjplcnJvckRvbWFpbkRvd25sb2FkKTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfTkVUV09SSywgRG93bmxvYWRFcnJvck5ldHdv
cmspOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1Jf
Q0FOQ0VMTEVEX0JZX1VTRVIsIERvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVzZXIpOwotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT04s
IERvd25sb2FkRXJyb3JEZXN0aW5hdGlvbik7Ci0KIEdRdWFyayB3ZWJraXRfcHJpbnRfZXJyb3Jf
cXVhcmsoKQogewogICAgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3Jl
OjplcnJvckRvbWFpblByaW50KTsKIH0KIAotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
RUJLSVRfUFJJTlRfRVJST1JfR0VORVJBTCwgUHJpbnRFcnJvckdlbmVyYWwpOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfUFJJTlRfRVJST1JfUFJJTlRFUl9OT1RfRk9VTkQs
IFByaW50RXJyb3JQcmludGVyTm90Rm91bmQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXRUJLSVRfUFJJTlRfRVJST1JfSU5WQUxJRF9QQUdFX1JBTkdFLCBQcmludEVycm9ySW52YWxp
ZFBhZ2VSYW5nZSk7Ci0KIEdRdWFyayB3ZWJraXRfamF2YXNjcmlwdF9lcnJvcl9xdWFyaygpCiB7
CiAgICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKCJXZWJLaXRKYXZhc2NyaXB0
RXJyb3IiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEZpbmRDb250cm9sbGVyLmNwcAppbmRleCA4NzU5MzA2ZTJiY2YxZjk2MWU1Nzg0MWNi
MTQ2YjYwZmMyNmQ1OWY2Li42ZTcxNDFlNGU4M2Q4NTEwZmUzODRhZTA3YTVkNzIwNzc4YTljMzBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRGaW5k
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0RmluZENvbnRyb2xsZXIuY3BwCkBAIC04MiwxMSArODIsMjIgQEAgc3RhdGljIGd1aW50IHNp
Z25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0
RmluZENvbnRyb2xsZXIsIHdlYmtpdF9maW5kX2NvbnRyb2xsZXIsIEdfVFlQRV9PQkpFQ1QpCiAK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lO
U0VOU0lUSVZFLCBGaW5kT3B0aW9uc0Nhc2VJbnNlbnNpdGl2ZSk7Ci1DT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdFQktJVF9GSU5EX09QVElPTlNfQVRfV09SRF9TVEFSVFMsIEZpbmRPcHRp
b25zQXRXb3JkU3RhcnRzKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJ
TkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NUQVJULCBGaW5kT3B0aW9u
c1RyZWF0TWVkaWFsQ2FwaXRhbEFzV29yZFN0YXJ0KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMsIEZpbmRPcHRpb25zQmFja3dhcmRz
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0ZJTkRfT1BUSU9OU19XUkFQ
X0FST1VORCwgRmluZE9wdGlvbnNXcmFwQXJvdW5kKTsKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpG
aW5kT3B0aW9ucyB0b1dlYktpdEZpbmRPcHRpb25zKFdlYktpdEZpbmRPcHRpb25zIHR5cGUpCit7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KCh0eXBlICYgV0VC
S0lUX0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VOU0lUSVZFID8gRmluZE9wdGlvbnNDYXNlSW5zZW5z
aXRpdmUgOiAwKQorICAgICAgICB8ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19BVF9XT1JE
X1NUQVJUUyA/IEZpbmRPcHRpb25zQXRXb3JkU3RhcnRzIDogMCkKKyAgICAgICAgfCAodHlwZSAm
IFdFQktJVF9GSU5EX09QVElPTlNfVFJFQVRfTUVESUFMX0NBUElUQUxfQVNfV09SRF9TVEFSVCA/
IEZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3RhcnQgOiAwKQorICAgICAgICB8
ICh0eXBlICYgV0VCS0lUX0ZJTkRfT1BUSU9OU19CQUNLV0FSRFMgPyBGaW5kT3B0aW9uc0JhY2t3
YXJkcyA6IDApCisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1dSQVBfQVJP
VU5EID8gRmluZE9wdGlvbnNXcmFwQXJvdW5kIDogMCkKKyAgICAgICAgfCAodHlwZSAmIFdFQktJ
VF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID8gRmluZE9wdGlvbnNTaG93T3ZlcmxheSA6IDAp
CisgICAgICAgIHwgKHR5cGUgJiBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfRklORF9JTkRJQ0FU
T1IgPyBGaW5kT3B0aW9uc1Nob3dGaW5kSW5kaWNhdG9yIDogMCkKKyAgICAgICAgfCAodHlwZSAm
IFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19ISUdITElHSFQgPyBGaW5kT3B0aW9uc1Nob3dIaWdo
bGlnaHQgOiAwKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b1dl
YktpdEZpbmRPcHRpb25zKHVpbnQzMl90IHR5cGUpCit7CisgICAgcmV0dXJuIHRvV2ViS2l0Rmlu
ZE9wdGlvbnMoc3RhdGljX2Nhc3Q8V2ViS2l0RmluZE9wdGlvbnM+KHR5cGUpKTsKK30KIAogc3Rh
dGljIHZvaWQgZGlkRmluZFN0cmluZyhXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3RyaW5n
LCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewpAQCAtMzQ5
LDcgKzM2MCw3IEBAIHN0YXRpYyB2b2lkIHdlYktpdEZpbmRDb250cm9sbGVyUGVyZm9ybShXZWJL
aXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIsIFdlCiAgICAgV2ViS2l0RmluZENvbnRy
b2xsZXJQcml2YXRlKiBwcml2ID0gZmluZENvbnRyb2xsZXItPnByaXY7CiAgICAgaWYgKG9wZXJh
dGlvbiA9PSBDb3VudE9wZXJhdGlvbikgewogICAgICAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVy
KS0+Y291bnRTdHJpbmdNYXRjaGVzKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4dC5k
YXRhKCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PFdlYktpdDo6RmluZE9wdGlvbnM+KHByaXYtPmZpbmRPcHRpb25zKSwg
cHJpdi0+bWF4TWF0Y2hDb3VudCk7CisgICAgICAgICAgICB0b1dlYktpdEZpbmRPcHRpb25zKHBy
aXYtPmZpbmRPcHRpb25zKSwgcHJpdi0+bWF4TWF0Y2hDb3VudCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTM2Miw5ICszNzMsOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRGaW5kQ29udHJv
bGxlclBlcmZvcm0oV2ViS2l0RmluZENvbnRyb2xsZXIqIGZpbmRDb250cm9sbGVyLCBXZQogICAg
ICAgICAvLyB1bmNvbmRpdGlvbmFsbHkgc2hvdyBoaWdobGlnaHRzLiBCb3RoIHNlYXJjaF9uZXh0
KCkgYW5kCiAgICAgICAgIC8vIHNlYXJjaF9wcmV2KCkgc2hvdWxkIG5vdCBlbmFibGUgaGlnaGxp
Z2h0aW5nIHRvIGF2b2lkIGFuCiAgICAgICAgIC8vIGV4dHJhIHVubWFya0FsbFRleHRNYXRjaGVz
KCkgKyBtYXJrQWxsVGV4dE1hdGNoZXMoKQotICAgICAgICBmaW5kT3B0aW9ucyB8PSBGaW5kT3B0
aW9uc1Nob3dIaWdobGlnaHQ7CisgICAgICAgIGZpbmRPcHRpb25zIHw9IFdFQktJVF9GSU5EX09Q
VElPTlNfU0hPV19ISUdITElHSFQ7CiAKLSAgICBnZXRQYWdlKGZpbmRDb250cm9sbGVyKS0+Zmlu
ZFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHByaXYtPnNlYXJjaFRleHQuZGF0YSgpKSwgc3RhdGlj
X2Nhc3Q8V2ViS2l0OjpGaW5kT3B0aW9ucz4oZmluZE9wdGlvbnMpLAorICAgIGdldFBhZ2UoZmlu
ZENvbnRyb2xsZXIpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgocHJpdi0+c2VhcmNoVGV4
dC5kYXRhKCkpLCB0b1dlYktpdEZpbmRPcHRpb25zKGZpbmRPcHRpb25zKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5tYXhNYXRjaENvdW50KTsKIH0KIApA
QCAtNDI1LDcgKzQzNiw3IEBAIHZvaWQgd2Via2l0X2ZpbmRfY29udHJvbGxlcl9zZWFyY2hfbmV4
dChXZWJLaXRGaW5kQ29udHJvbGxlciogZmluZENvbnRyb2xsZXIpCiAgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfRklORF9DT05UUk9MTEVSKGZpbmRDb250cm9sbGVyKSk7CiAKICAgICBm
aW5kQ29udHJvbGxlci0+cHJpdi0+ZmluZE9wdGlvbnMgJj0gfldFQktJVF9GSU5EX09QVElPTlNf
QkFDS1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0aW9ucyAmPSB+Rmlu
ZE9wdGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0
aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsKICAgICB3ZWJLaXRG
aW5kQ29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0UHJldk9wZXJhdGlv
bik7CiB9CiAKQEAgLTQ0Myw3ICs0NTQsNyBAQCB2b2lkIHdlYmtpdF9maW5kX2NvbnRyb2xsZXJf
c2VhcmNoX3ByZXZpb3VzKFdlYktpdEZpbmRDb250cm9sbGVyKiBmaW5kQ29udHJvbGxlcgogICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTkRfQ09OVFJPTExFUihmaW5kQ29udHJvbGxl
cikpOwogCiAgICAgZmluZENvbnRyb2xsZXItPnByaXYtPmZpbmRPcHRpb25zIHw9IFdFQktJVF9G
SU5EX09QVElPTlNfQkFDS1dBUkRTOwotICAgIGZpbmRDb250cm9sbGVyLT5wcml2LT5maW5kT3B0
aW9ucyAmPSB+RmluZE9wdGlvbnNTaG93SGlnaGxpZ2h0OworICAgIGZpbmRDb250cm9sbGVyLT5w
cml2LT5maW5kT3B0aW9ucyAmPSB+V0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVDsK
ICAgICB3ZWJLaXRGaW5kQ29udHJvbGxlclBlcmZvcm0oZmluZENvbnRyb2xsZXIsIEZpbmROZXh0
UHJldk9wZXJhdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdEZpbmRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRGaW5kQ29udHJvbGxlci5oCmluZGV4IDdiYWQxZDA1MTg0ZDMxNTZk
MWQxZmQ5NjQ0NWM5YzlkMTdmYTNmM2UuLmM4OWMzODY0ZmRlOGQ5MWVlYmU0MWMwNjEwYTYxMzg4
YzczNGQ5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEZpbmRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0RmluZENvbnRyb2xsZXIuaApAQCAtNjMsNiArNjMsMTAgQEAgdHlwZWRlZiBlbnVt
IHsKICAgV0VCS0lUX0ZJTkRfT1BUSU9OU19UUkVBVF9NRURJQUxfQ0FQSVRBTF9BU19XT1JEX1NU
QVJUID0gMSA8PCAyLAogICBXRUJLSVRfRklORF9PUFRJT05TX0JBQ0tXQVJEUyA9ICAgICAgICAg
ICAgICAgICAgICAgICAgICAxIDw8IDMsCiAgIFdFQktJVF9GSU5EX09QVElPTlNfV1JBUF9BUk9V
TkQgPSAgICAgICAgICAgICAgICAgICAgICAgIDEgPDwgNCwKKyAgLyo8IHByaXZhdGUgPiovCisg
IFdFQktJVF9GSU5EX09QVElPTlNfU0hPV19PVkVSTEFZID0gICAgICAgICAgICAgICAgICAgICAg
IDEgPDwgNSwKKyAgV0VCS0lUX0ZJTkRfT1BUSU9OU19TSE9XX0ZJTkRfSU5ESUNBVE9SID0gICAg
ICAgICAgICAgICAgMSA8PCA2LAorICBXRUJLSVRfRklORF9PUFRJT05TX1NIT1dfSElHSExJR0hU
ID0gICAgICAgICAgICAgICAgICAgICAxIDw8IDcsCiB9IFdlYktpdEZpbmRPcHRpb25zOwogCiBz
dHJ1Y3QgX1dlYktpdEZpbmRDb250cm9sbGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNw
cAppbmRleCAxYjc3YjZlYTdiNDY3MGYxOWU5NjA2MTA0Mzc3MmQxOTk0OWE5MjIxLi5iOWFjMjM0
YmY3YzMwZDVhMzUzOTk2N2YyNzdlZDExMTZkNGQwZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5k
bGVDbGllbnQuaCIKIAogI2luY2x1ZGUgIldlYkltYWdlLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUuaCIKQEAgLTg3LDcgKzg4LDcgQEAgc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVdlYlZpZXdN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGMKICAgICAg
ICAgQVBJOjpFcnJvciogd2ViRXJyb3IgPSBzdGF0aWNfY2FzdDxBUEk6OkVycm9yKj4obWVzc2Fn
ZS5nZXQoU3RyaW5nOjpmcm9tVVRGOCgiRXJyb3IiKSkpOwogICAgICAgICBjb25zdCBSZXNvdXJj
ZUVycm9yJiBwbGF0Zm9ybUVycm9yID0gd2ViRXJyb3ItPnBsYXRmb3JtRXJyb3IoKTsKICAgICAg
ICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHJlc291cmNlRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChn
X3F1YXJrX2Zyb21fc3RyaW5nKHBsYXRmb3JtRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSks
Ci0gICAgICAgICAgICBwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpLCBwbGF0Zm9ybUVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJL
aXRFcnJvcihwbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpKSwgcGxhdGZvcm1FcnJvci5sb2NhbGl6
ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKIAogICAgICAgICB3ZWJraXRXZWJSZXNv
dXJjZUZhaWxlZChyZXNvdXJjZS5nZXQoKSwgcmVzb3VyY2VFcnJvci5nZXQoKSk7CiAgICAgICAg
IHdlYmtpdFdlYlZpZXdSZW1vdmVMb2FkaW5nV2ViUmVzb3VyY2Uod2ViVmlldywgcmVzb3VyY2VJ
ZGVudGlmaWVyLT52YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwCmluZGV4IDRiMmU1OWMyNWZlN2Y4MDU1
ZTc0OGI3ZmI3YWE4Y2ZjMTBjMzVkNzEuLmFiOTdkMjkwODNjOTI4ZWFmOTU1YTRlMzJkNDc5MzBk
MDA1NmQyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdExvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIldl
YktpdExvYWRlckNsaWVudC5oIgogCiAjaW5jbHVkZSAiV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRVUklS
ZXNwb25zZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIK
ICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgpAQCAtNTQsNyArNTUsNyBAQCBzdGF0
aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQYWdlUmVm
IHBhZ2UsIFdLRnJhbWVSZWYgZgogCiAgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgcmVzb3VyY2VF
cnJvciA9IHRvSW1wbChlcnJvciktPnBsYXRmb3JtRXJyb3IoKTsKICAgICBHVW5pcXVlUHRyPEdF
cnJvcj4gd2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21fc3RyaW5nKHJl
c291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAgIHJlc291cmNlRXJy
b3IuZXJyb3JDb2RlKCksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgICAgIHRvV2ViS2l0RXJyb3IocmVzb3VyY2VFcnJvci5lcnJvckNv
ZGUoKSksIHJlc291cmNlRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgp
KSk7CiAgICAgaWYgKHJlc291cmNlRXJyb3IudGxzRXJyb3JzKCkpIHsKICAgICAgICAgd2Via2l0
V2ViVmlld0xvYWRGYWlsZWRXaXRoVExTRXJyb3JzKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZv
KSwgcmVzb3VyY2VFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgd2ViRXJyb3IuZ2V0
KCksCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHVGxzQ2VydGlmaWNhdGVGbGFncz4ocmVzb3Vy
Y2VFcnJvci50bHNFcnJvcnMoKSksIHJlc291cmNlRXJyb3IuY2VydGlmaWNhdGUoKSk7CkBAIC04
NSw3ICs4Niw3IEBAIHN0YXRpYyB2b2lkIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyCiAKICAgICBjb25zdCBSZXNvdXJj
ZUVycm9yJiByZXNvdXJjZUVycm9yID0gdG9JbXBsKGVycm9yKS0+cGxhdGZvcm1FcnJvcigpOwog
ICAgIEdVbmlxdWVQdHI8R0Vycm9yPiB3ZWJFcnJvcihnX2Vycm9yX25ld19saXRlcmFsKGdfcXVh
cmtfZnJvbV9zdHJpbmcocmVzb3VyY2VFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpKSwKLSAg
ICAgICAgcmVzb3VyY2VFcnJvci5lcnJvckNvZGUoKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWRE
ZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgdG9XZWJLaXRFcnJvcihyZXNv
dXJjZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICB3ZWJraXRXZWJWaWV3TG9hZEZhaWxlZChXRUJLSVRf
V0VCX1ZJRVcoY2xpZW50SW5mbyksIFdFQktJVF9MT0FEX0NPTU1JVFRFRCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXNvdXJjZUVycm9yLmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgp
LCB3ZWJFcnJvci5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmNw
cAppbmRleCBmMDM0NDZiYWI3MzBjZDQ2YjBmNjkyYzcxZDFjMGVlMjNlNDI2YmIyLi44MzM2NmRj
Y2Q3ZGExZjQ1MzBkMThlZDNkYWI2NDZkZWNiMTAwMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25Q
b2xpY3lEZWNpc2lvbi5jcHAKQEAgLTI0MywxMyArMjQzLDYgQEAgY29uc3QgY2hhciogd2Via2l0
X25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX2dldF9mcmFtZV9uYW1lKFdlYktpdE5hdmlnYXRp
b25Qb2wKICAgICByZXR1cm4gZGVjaXNpb24tPnByaXYtPmZyYW1lTmFtZS5kYXRhKCk7CiB9CiAK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX05BVklHQVRJT05fVFlQRV9MSU5L
X0NMSUNLRUQsIE5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQpOwotQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0ZPUk1fU1VCTUlUVEVELCBOYXZpZ2F0
aW9uVHlwZUZvcm1TdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJL
SVRfTkFWSUdBVElPTl9UWVBFX0JBQ0tfRk9SV0FSRCwgTmF2aWdhdGlvblR5cGVCYWNrRm9yd2Fy
ZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJVF9OQVZJR0FUSU9OX1RZUEVf
UkVMT0FELCBOYXZpZ2F0aW9uVHlwZVJlbG9hZCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRFRCwgTmF2aWdhdGlvblR5
cGVGb3JtUmVzdWJtaXR0ZWQpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRf
TkFWSUdBVElPTl9UWVBFX09USEVSLCBOYXZpZ2F0aW9uVHlwZU90aGVyKTsKLQogV2ViS2l0TmF2
aWdhdGlvblBvbGljeURlY2lzaW9uKiB3ZWJraXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25DcmVh
dGUoV2ViS2l0TmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIHVuc2lnbmVkIG1vdXNlQnV0
dG9uLCB1bnNpZ25lZCBtb2RpZmllcnMsIEFQSTo6VVJMUmVxdWVzdCogcmVxdWVzdCwgY29uc3Qg
Y2hhciogZnJhbWVOYW1lLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIGxpc3RlbmVyKQog
ewogICAgIFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiogZGVjaXNpb24gPSBXRUJLSVRf
TkFWSUdBVElPTl9QT0xJQ1lfREVDSVNJT04oZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX05BVklH
QVRJT05fUE9MSUNZX0RFQ0lTSU9OLCBOVUxMKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UG9saWN5Q2xpZW50LmNwcAppbmRleCAxZWI2YjFl
YzY2OWFiY2M3OWM4ZjA4ZDQ3Nzc5NjgwZjQyZWFhNWQ2Li4wODJjM2M0ZmQ1YzE1ZGU0ZGNiNGEx
ZjIwOGJiZTI4OGY2M2EyZDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRQb2xpY3lDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFBvbGljeUNsaWVudC5jcHAKQEAgLTI5LDEwICsyOSwzMSBAQAog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCitzdGF0aWMgaW5saW5lIFdlYktpdE5hdmlnYXRp
b25UeXBlIHRvV2ViS2l0TmF2aWdhdGlvblR5cGUoV0tGcmFtZU5hdmlnYXRpb25UeXBlIHR5cGUp
Cit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBrV0tGcmFtZU5hdmlnYXRpb25UeXBl
TGlua0NsaWNrZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBFX0xJTktf
Q0xJQ0tFRDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX05BVklHQVRJT05fVFlQRV9GT1JNX1NVQk1JVFRFRDsKKyAg
ICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfQkFDS19GT1JXQVJEOworICAgIGNhc2Uga1dLRnJhbWVO
YXZpZ2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZ
UEVfUkVMT0FEOworICAgIGNhc2Uga1dLRnJhbWVOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRl
ZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfRk9STV9SRVNVQk1JVFRF
RDsKKyAgICBjYXNlIGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVPdGhlcjoKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9OQVZJR0FUSU9OX1RZUEVfT1RIRVI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfTkFWSUdBVElPTl9UWVBF
X0xJTktfQ0xJQ0tFRDsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVO
YXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tGcmFtZVJlZiBvcmlnaW5hdGluZ0Zy
YW1lLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxp
c3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAg
ICAgR1JlZlB0cjxXZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24+IGRlY2lzaW9uID0KLSAg
ICAgICAgYWRvcHRHUmVmKHdlYmtpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkNyZWF0ZShzdGF0
aWNfY2FzdDxXZWJLaXROYXZpZ2F0aW9uVHlwZT4obmF2aWdhdGlvblR5cGUpLAorICAgICAgICBh
ZG9wdEdSZWYod2Via2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHRvV2ViS2l0TmF2
aWdhdGlvblR5cGUobmF2aWdhdGlvblR5cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb3VzZUJ1dHRvblRvV2ViS2l0TW91
c2VCdXR0b24obW91c2VCdXR0b24pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHdrRXZlbnRNb2RpZmllcnNUb0dka01vZGlmaWVycyhtb2Rp
ZmllcnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRvSW1wbChyZXF1ZXN0KSwKQEAgLTQ2LDcgKzY3LDcgQEAgc3RhdGljIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0sKIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmln
YXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9u
IG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tTdHJpbmdSZWYgZnJhbWVO
YW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBHUmVmUHRyPFdlYktpdE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbj4gZGVjaXNpb24gPQotICAgICAgICBhZG9wdEdSZWYod2Via2l0TmF2
aWdhdGlvblBvbGljeURlY2lzaW9uQ3JlYXRlKHN0YXRpY19jYXN0PFdlYktpdE5hdmlnYXRpb25U
eXBlPihuYXZpZ2F0aW9uVHlwZSksCisgICAgICAgIGFkb3B0R1JlZih3ZWJraXROYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb25DcmVhdGUodG9XZWJLaXROYXZpZ2F0aW9uVHlwZShuYXZpZ2F0aW9uVHlw
ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2tFdmVudE1vdXNlQnV0dG9uVG9XZWJLaXRNb3VzZUJ1dHRvbihtb3VzZUJ1dHRvbiksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2tF
dmVudE1vZGlmaWVyc1RvR2RrTW9kaWZpZXJzKG1vZGlmaWVycyksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbXBsKHJlcXVlc3QpLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRP
cGVyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJp
bnRPcGVyYXRpb24uY3BwCmluZGV4IDgxMGQyYzc5YTQ0YTIxMmU1MmQwMDM3ODQ0ZTdmNWE3MWU3
ODI4YjguLjBhMDM4NmFhZjdiNmUzOTk1OTVlYzk2YTM2ZTE0NTZkYzFkNGQzOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9w
ZXJhdGlvbi5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdGF0aWMgdm9pZCBkcmF3UGFnZXNGb3JQ
cmludGluZ0NvbXBsZXRlZChBUEk6OkVycm9yKiB3a1ByaW50RXJyb3IsIFdlYktpdFByaW50Twog
ICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IgPSB3a1ByaW50
RXJyb3IgPyB3a1ByaW50RXJyb3ItPnBsYXRmb3JtRXJyb3IoKSA6IFdlYkNvcmU6OlJlc291cmNl
RXJyb3IoKTsKICAgICBpZiAoIXJlc291cmNlRXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgR1Vu
aXF1ZVB0cjxHRXJyb3I+IHByaW50RXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zy
b21fc3RyaW5nKHJlc291cmNlRXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0gICAgICAg
ICAgICByZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpLCByZXNvdXJjZUVycm9yLmxvY2FsaXplZERl
c2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdG9XZWJLaXRFcnJvcihy
ZXNvdXJjZUVycm9yLmVycm9yQ29kZSgpKSwgcmVzb3VyY2VFcnJvci5sb2NhbGl6ZWREZXNjcmlw
dGlvbigpLnV0ZjgoKS5kYXRhKCkpKTsKICAgICAgICAgZ19zaWduYWxfZW1pdChwcmludE9wZXJh
dGlvbiwgc2lnbmFsc1tGQUlMRURdLCAwLCBwcmludEVycm9yLmdldCgpKTsKICAgICB9CiAgICAg
Z19zaWduYWxfZW1pdChwcmludE9wZXJhdGlvbiwgc2lnbmFsc1tGSU5JU0hFRF0sIDAsIE5VTEwp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRl
LmNwcAppbmRleCBkMzRiOWM0NzE3MWEwOGFmOWRjZWIyNzc2ZDg3OWJhOGU4ZTQyNjBiLi42YTZk
OTJhNGJkOTliYmI4YzI0OTAzNDI5OTVlOGZmZDNhNmM2NGRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmNwcApAQCAtMjAsNiArMjAs
OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKIAor
I2luY2x1ZGUgIkVycm9yc0d0ay5oIgorI2luY2x1ZGUgIldlYktpdEVycm9yLmgiCiAjaW5jbHVk
ZSA8Z2RrL2dkay5oPgogCiB1bnNpZ25lZCB3a0V2ZW50TW9kaWZpZXJzVG9HZGtNb2RpZmllcnMo
V0tFdmVudE1vZGlmaWVycyB3a01vZGlmaWVycykKQEAgLTUxLDMgKzUzLDEwOSBAQCB1bnNpZ25l
ZCB3a0V2ZW50TW91c2VCdXR0b25Ub1dlYktpdE1vdXNlQnV0dG9uKFdLRXZlbnRNb3VzZUJ1dHRv
biB3a0J1dHRvbikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKIH0K
KwordW5zaWduZWQgdG9XZWJLaXRFcnJvcih1bnNpZ25lZCB3ZWJDb3JlRXJyb3IpCit7CisgICAg
c3dpdGNoICh3ZWJDb3JlRXJyb3IpIHsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckZh
aWxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICBj
YXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJvclRyYW5zcG9ydDoKKyAgICAgICAgcmV0dXJuIFdFQktJ
VF9ORVRXT1JLX0VSUk9SX1RSQU5TUE9SVDsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtFcnJv
clVua25vd25Qcm90b2NvbDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX1VO
S05PV05fUFJPVE9DT0w7CisgICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JDYW5jZWxsZWQ6
CisgICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ7CisgICAgY2Fz
ZSBXZWJDb3JlOjpOZXR3b3JrRXJyb3JGaWxlRG9lc05vdEV4aXN0OgorICAgICAgICByZXR1cm4g
V0VCS0lUX05FVFdPUktfRVJST1JfRklMRV9ET0VTX05PVF9FWElTVDsKKyAgICBjYXNlIFdlYkNv
cmU6OlBvbGljeUVycm9yRmFpbGVkOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJP
Ul9GQUlMRUQ7CisgICAgY2FzZSBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dNaW1lVHlw
ZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1NIT1dfTUlNRV9U
WVBFOworICAgIGNhc2UgV2ViQ29yZTo6UG9saWN5RXJyb3JDYW5ub3RTaG93VVJMOgorICAgICAg
ICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkk7CisgICAgY2FzZSBX
ZWJDb3JlOjpQb2xpY3lFcnJvckZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2U6Cisg
ICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURf
QllfUE9MSUNZX0NIQU5HRTsKKyAgICBjYXNlIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90VXNl
UmVzdHJpY3RlZFBvcnQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5P
VF9VU0VfUkVTVFJJQ1RFRF9QT1JUOworICAgIGNhc2UgV2ViQ29yZTo6UGx1Z2luRXJyb3JGYWls
ZWQ6CisgICAgICAgIHJldHVybiBXRUJLSVRfUExVR0lOX0VSUk9SX0ZBSUxFRDsKKyAgICBjYXNl
IFdlYkNvcmU6OlBsdWdpbkVycm9yQ2Fubm90RmluZFBsdWdpbjoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9QTFVHSU5fRVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOOworICAgIGNhc2UgV2ViQ29yZTo6
UGx1Z2luRXJyb3JDYW5ub3RMb2FkUGx1Z2luOgorICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJ
Tl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU47CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJv
ckphdmFVbmF2YWlsYWJsZToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfSkFW
QV9VTkFWQUlMQUJMRTsKKyAgICBjYXNlIFdlYkNvcmU6OlBsdWdpbkVycm9yQ29ubmVjdGlvbkNh
bmNlbGxlZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9D
QU5DRUxMRUQ7CisgICAgY2FzZSBXZWJDb3JlOjpQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkOgor
ICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9XSUxMX0hBTkRMRV9MT0FEOworICAg
IGNhc2UgV2ViQ29yZTo6RG93bmxvYWRFcnJvck5ldHdvcms6CisgICAgICAgIHJldHVybiBXRUJL
SVRfRE9XTkxPQURfRVJST1JfTkVUV09SSzsKKyAgICBjYXNlIFdlYkNvcmU6OkRvd25sb2FkRXJy
b3JDYW5jZWxsZWRCeVVzZXI6CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1Jf
Q0FOQ0VMTEVEX0JZX1VTRVI7CisgICAgY2FzZSBXZWJDb3JlOjpEb3dubG9hZEVycm9yRGVzdGlu
YXRpb246CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT047
CisgICAgY2FzZSBXZWJDb3JlOjpQcmludEVycm9yR2VuZXJhbDoKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9QUklOVF9FUlJPUl9HRU5FUkFMOworICAgIGNhc2UgV2ViQ29yZTo6UHJpbnRFcnJvclBy
aW50ZXJOb3RGb3VuZDoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUklOVF9FUlJPUl9QUklOVEVS
X05PVF9GT1VORDsKKyAgICBjYXNlIFdlYkNvcmU6OlByaW50RXJyb3JJbnZhbGlkUGFnZVJhbmdl
OgorICAgICAgICByZXR1cm4gV0VCS0lUX1BSSU5UX0VSUk9SX0lOVkFMSURfUEFHRV9SQU5HRTsK
KyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDsKKyAgICB9Cit9CisKK3Vuc2lnbmVkIHRv
V2ViQ29yZUVycm9yKHVuc2lnbmVkIHdlYktpdEVycm9yKQoreworICAgIHN3aXRjaCAod2ViS2l0
RXJyb3IpIHsKKyAgICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX0ZBSUxFRDoKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJvckZhaWxlZDsKKyAgICBjYXNlIFdFQktJVF9ORVRX
T1JLX0VSUk9SX1RSQU5TUE9SVDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5ldHdvcmtFcnJv
clRyYW5zcG9ydDsKKyAgICBjYXNlIFdFQktJVF9ORVRXT1JLX0VSUk9SX1VOS05PV05fUFJPVE9D
T0w6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpOZXR3b3JrRXJyb3JVbmtub3duUHJvdG9jb2w7
CisgICAgY2FzZSBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQ6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpOZXR3b3JrRXJyb3JDYW5jZWxsZWQ7CisgICAgY2FzZSBXRUJLSVRfTkVUV09S
S19FUlJPUl9GSUxFX0RPRVNfTk9UX0VYSVNUOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmV0
d29ya0Vycm9yRmlsZURvZXNOb3RFeGlzdDsKKyAgICBjYXNlIFdFQktJVF9QT0xJQ1lfRVJST1Jf
RkFJTEVEOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UG9saWN5RXJyb3JGYWlsZWQ7CisgICAg
Y2FzZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX01JTUVfVFlQRToKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVUeXBlOworICAgIGNhc2Ug
V0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19VUkk6CisgICAgICAgIHJldHVybiBXZWJD
b3JlOjpQb2xpY3lFcnJvckNhbm5vdFNob3dVUkw7CisgICAgY2FzZSBXRUJLSVRfUE9MSUNZX0VS
Uk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURfQllfUE9MSUNZX0NIQU5HRToKKyAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OlBvbGljeUVycm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5n
ZTsKKyAgICBjYXNlIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1VTRV9SRVNUUklDVEVEX1BP
UlQ6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQb2xpY3lFcnJvckNhbm5vdFVzZVJlc3RyaWN0
ZWRQb3J0OworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9GQUlMRUQ6CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckZhaWxlZDsKKyAgICBjYXNlIFdFQktJVF9QTFVHSU5f
RVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UGx1Z2lu
RXJyb3JDYW5ub3RGaW5kUGx1Z2luOworICAgIGNhc2UgV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5O
T1RfTE9BRF9QTFVHSU46CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckNhbm5v
dExvYWRQbHVnaW47CisgICAgY2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX0pBVkFfVU5BVkFJTEFC
TEU6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckphdmFVbmF2YWlsYWJsZTsK
KyAgICBjYXNlIFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9DQU5DRUxMRUQ6CisgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpQbHVnaW5FcnJvckNvbm5lY3Rpb25DYW5jZWxsZWQ7CisgICAg
Y2FzZSBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExfSEFORExFX0xPQUQ6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpQbHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkOworICAgIGNhc2UgV0VCS0lUX0RP
V05MT0FEX0VSUk9SX05FVFdPUks6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpEb3dubG9hZEVy
cm9yTmV0d29yazsKKyAgICBjYXNlIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9DQU5DRUxMRURfQllf
VVNFUjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkRvd25sb2FkRXJyb3JDYW5jZWxsZWRCeVVz
ZXI7CisgICAgY2FzZSBXRUJLSVRfRE9XTkxPQURfRVJST1JfREVTVElOQVRJT046CisgICAgICAg
IHJldHVybiBXZWJDb3JlOjpEb3dubG9hZEVycm9yRGVzdGluYXRpb247CisgICAgY2FzZSBXRUJL
SVRfUFJJTlRfRVJST1JfR0VORVJBTDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlByaW50RXJy
b3JHZW5lcmFsOworICAgIGNhc2UgV0VCS0lUX1BSSU5UX0VSUk9SX1BSSU5URVJfTk9UX0ZPVU5E
OgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6UHJpbnRFcnJvclByaW50ZXJOb3RGb3VuZDsKKyAg
ICBjYXNlIFdFQktJVF9QUklOVF9FUlJPUl9JTlZBTElEX1BBR0VfUkFOR0U6CisgICAgICAgIHJl
dHVybiBXZWJDb3JlOjpQcmludEVycm9ySW52YWxpZFBhZ2VSYW5nZTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5l
dHdvcmtFcnJvckZhaWxlZDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmgKaW5kZXggYmQwNjBlZDMyOWYxYjJmMDhiNjhjMTg1
MWIxYjY5MmQzZWY5MmNhMy4uMzE1YmQxNmJmYzAzZTA3YTJiMjgyYmUxY2MzYmY1ZWFjMjI4MDYx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaXZh
dGUuaApAQCAtNDksOSArNDksNiBAQAogI2RlZmluZSBXRUJLSVRfUEFSQU1fV1JJVEFCTEUgKHN0
YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1dSSVRBQkxFIHwgR19QQVJBTV9TVEFUSUNf
TkFNRSB8IEdfUEFSQU1fU1RBVElDX05JQ0sgfCBHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAjZGVm
aW5lIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgKHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BB
UkFNX1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElDX05BTUUgfCBHX1BBUkFNX1NUQVRJQ19OSUNL
IHwgR19QQVJBTV9TVEFUSUNfQkxVUkIpKQogCi0jZGVmaW5lIENPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0od2Via2l0TmFtZSwgd2ViY29yZU5hbWUpIFwKLSAgICAgICAgQ09NUElMRV9BU1NF
UlQoaW50KHdlYmtpdE5hbWUpID09IGludCh3ZWJjb3JlTmFtZSksIG1pc21hdGNoaW5nRW51bXMp
Ci0KICNkZWZpbmUgV0VCS0lUX0RFRklORV9BU1lOQ19EQVRBX1NUUlVDVChzdHJ1Y3ROYW1lKSBc
CiBzdGF0aWMgc3RydWN0TmFtZSogY3JlYXRlIyNzdHJ1Y3ROYW1lKCkgXAogeyBcCkBAIC0xMTgs
NiArMTE1LDggQEAgR1R5cGUgdHlwZV9uYW1lIyNfZ2V0X3R5cGUodm9pZCkgXAogCiB1bnNpZ25l
ZCB3a0V2ZW50TW9kaWZpZXJzVG9HZGtNb2RpZmllcnMoV0tFdmVudE1vZGlmaWVycyk7CiB1bnNp
Z25lZCB3a0V2ZW50TW91c2VCdXR0b25Ub1dlYktpdE1vdXNlQnV0dG9uKFdLRXZlbnRNb3VzZUJ1
dHRvbik7Cit1bnNpZ25lZCB0b1dlYktpdEVycm9yKHVuc2lnbmVkIHdlYkNvcmVFcnJvcik7Cit1
bnNpZ25lZCB0b1dlYkNvcmVFcnJvcih1bnNpZ25lZCB3ZWJLaXRFcnJvcik7CiAKIGVudW0gU25h
cHNob3RSZWdpb24gewogICAgIFNuYXBzaG90UmVnaW9uVmlzaWJsZSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVSSVNjaGVtZVJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5jcHAKaW5kZXggNmQ4YzY4NDE4NDJlODZiNGM1MTZhOTRkMGQzMWY4NzEyNTViZGIzZC4uZmM4
YjRiNjVjY2M2ZjQ2YWY4MzQ0YWY2NjA2YTA4OTZlZGRhMDIwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJU2NoZW1lUmVxdWVz
dC5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXF1ZXN0
LmgiCiAKICNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3LmgiCkBAIC0y
MzAsNyArMjMxLDcgQEAgdm9pZCB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2ZpbmlzaF9lcnJv
cihXZWJLaXRVUklTY2hlbWVSZXF1ZXN0KiByZXF1ZXN0LCBHRXIKIAogICAgIFdlYktpdFVSSVNj
aGVtZVJlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKIAotICAgIFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcihnX3F1YXJrX3RvX3N0cmluZyhlcnJvci0+ZG9t
YWluKSwgZXJyb3ItPmNvZGUsIHByaXYtPnVyaS5kYXRhKCksIFN0cmluZzo6ZnJvbVVURjgoZXJy
b3ItPm1lc3NhZ2UpKTsKKyAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHJlc291cmNlRXJyb3Io
Z19xdWFya190b19zdHJpbmcoZXJyb3ItPmRvbWFpbiksIHRvV2ViQ29yZUVycm9yKGVycm9yLT5j
b2RlKSwgcHJpdi0+dXJpLmRhdGEoKSwgU3RyaW5nOjpmcm9tVVRGOChlcnJvci0+bWVzc2FnZSkp
OwogICAgIHByaXYtPndlYlJlcXVlc3RNYW5hZ2VyLT5kaWRGYWlsV2l0aEVycm9yKHByaXYtPnJl
cXVlc3RJRCwgcmVzb3VyY2VFcnJvcik7CiAgICAgd2Via2l0V2ViQ29udGV4dERpZEZpbmlzaExv
YWRpbmdDdXN0b21Qcm90b2NvbChwcml2LT53ZWJDb250ZXh0LCBwcml2LT5yZXF1ZXN0SUQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJD
b250ZXh0LmNwcAppbmRleCAzYmQ4OTMwODg4M2IyMzUzZmRjY2IyODZmMDI0M2UxMmE2NzE5MDY4
Li42MTIzYWQxMzJiNjM1NzliODMxYmI2ZTUzMzM4YTI3YWMxZGE4NmMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApA
QCAtMTY1LDYgKzE2NSwzMiBAQCBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7
IDAsIH07CiAKIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRXZWJDb250ZXh0LCB3ZWJraXRfd2Vi
X2NvbnRleHQsIEdfVFlQRV9PQkpFQ1QpCiAKK3N0YXRpYyBpbmxpbmUgV2ViS2l0OjpQcm9jZXNz
TW9kZWwgdG9Qcm9jZXNzTW9kZWwoV2ViS2l0UHJvY2Vzc01vZGVsIHdlYktpdFByb2Nlc3NNb2Rl
bCkKK3sKKyAgICBzd2l0Y2ggKHdlYktpdFByb2Nlc3NNb2RlbCkgeworICAgIGNhc2UgV0VCS0lU
X1BST0NFU1NfTU9ERUxfU0hBUkVEX1NFQ09OREFSWV9QUk9DRVNTOgorICAgICAgICByZXR1cm4g
UHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczsKKyAgICBjYXNlIFdFQktJVF9QUk9D
RVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM6CisgICAgICAgIHJldHVybiBQ
cm9jZXNzTW9kZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFByb2Nlc3NNb2RlbFNo
YXJlZFNlY29uZGFyeVByb2Nlc3M7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIFdlYktpdFBy
b2Nlc3NNb2RlbCB0b1dlYktpdFByb2Nlc3NNb2RlbChXZWJLaXQ6OlByb2Nlc3NNb2RlbCBwcm9j
ZXNzTW9kZWwpCit7CisgICAgc3dpdGNoIChwcm9jZXNzTW9kZWwpIHsKKyAgICBjYXNlIFByb2Nl
c3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M6CisgICAgICAgIHJldHVybiBXRUJLSVRfUFJP
Q0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M7CisgICAgY2FzZSBQcm9jZXNzTW9k
ZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczoKKyAgICAgICAgcmV0dXJuIFdFQktJVF9QUk9D
RVNTX01PREVMX01VTFRJUExFX1NFQ09OREFSWV9QUk9DRVNTRVM7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBXRUJLSVRfUFJPQ0VT
U19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M7CisgICAgfQorfQorCiBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX2NvbnRleHRfY2xhc3NfaW5pdChXZWJLaXRXZWJDb250ZXh0Q2xhc3MqIHdl
YkNvbnRleHRDbGFzcykKIHsKICAgICBHT2JqZWN0Q2xhc3MqIGdPYmplY3RDbGFzcyA9IEdfT0JK
RUNUX0NMQVNTKHdlYkNvbnRleHRDbGFzcyk7CkBAIC05MTcsMTggKzk0Myw3IEBAIHZvaWQgd2Vi
a2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKFdlYktpdFdlYkNvbnRleHQqIGNvbnRl
eHQsIFdlYktpdFByb2NlCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0NP
TlRFWFQoY29udGV4dCkpOwogCi0gICAgUHJvY2Vzc01vZGVsIG5ld1Byb2Nlc3NNb2RlbDsKLQot
ICAgIHN3aXRjaCAocHJvY2Vzc01vZGVsKSB7Ci0gICAgY2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RF
TF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M6Ci0gICAgICAgIG5ld1Byb2Nlc3NNb2RlbCA9IFBy
b2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzoKLSAg
ICAgICAgbmV3UHJvY2Vzc01vZGVsID0gUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9j
ZXNzZXM7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGdfYXNzZXJ0X25v
dF9yZWFjaGVkKCk7Ci0gICAgfQorICAgIFByb2Nlc3NNb2RlbCBuZXdQcm9jZXNzTW9kZWwodG9Q
cm9jZXNzTW9kZWwocHJvY2Vzc01vZGVsKSk7CiAKICAgICBpZiAobmV3UHJvY2Vzc01vZGVsID09
IGNvbnRleHQtPnByaXYtPmNvbnRleHQtPnByb2Nlc3NNb2RlbCgpKQogICAgICAgICByZXR1cm47
CkBAIC05NTIsMTQgKzk2Nyw3IEBAIFdlYktpdFByb2Nlc3NNb2RlbCB3ZWJraXRfd2ViX2NvbnRl
eHRfZ2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCogY29udGV4CiB7CiAgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRleHQpLCBXRUJLSVRf
UFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1MpOwogCi0gICAgc3dpdGNoIChj
b250ZXh0LT5wcml2LT5jb250ZXh0LT5wcm9jZXNzTW9kZWwoKSkgewotICAgIGNhc2UgUHJvY2Vz
c01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9QUk9D
RVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzsKLSAgICBjYXNlIFByb2Nlc3NNb2Rl
bE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgotICAgICAgICByZXR1cm4gV0VCS0lUX1BST0NF
U1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgIH0KKyAgICByZXR1cm4gdG9XZWJLaXRQ
cm9jZXNzTW9kZWwoY29udGV4dC0+cHJpdi0+Y29udGV4dC0+cHJvY2Vzc01vZGVsKCkpOwogfQog
CiBXZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQoRG93
bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggOGY3MjkwYjkzMDA3NGVlNGZlOTZh
N2VhNTg5ZDQxY2M0ZmQ3ZWI1NC4uZjdlMTNmZDI2ZTM2ZGMyNWFhYTg1NTk1YmVmZjIwNzliMGM3
ZjYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5jcHAKQEAgLTMxMDYsOSArMzEwNiw2IEBAIHZvaWQgd2ViS2l0V2ViVmlld0RpZFJl
Y2VpdmVTbmFwc2hvdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCB1aW50NjRfdCBjYWxsYmFja0lE
CiAgICAgICAgIGdfdGFza19yZXR1cm5fcG9pbnRlcih0YXNrLmdldCgpLCAwLCAwKTsKIH0KIAot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXRUJLSVRfU05BUFNIT1RfUkVHSU9OX1ZJU0lC
TEUsIFNuYXBzaG90UmVnaW9uVmlzaWJsZSk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdFQktJVF9TTkFQU0hPVF9SRUdJT05fRlVMTF9ET0NVTUVOVCwgU25hcHNob3RSZWdpb25GdWxs
RG9jdW1lbnQpOwotCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHdlYktpdFNuYXBzaG90T3B0aW9u
c1RvU25hcHNob3RPcHRpb25zKFdlYktpdFNuYXBzaG90T3B0aW9ucyBvcHRpb25zKQogewogICAg
IFNuYXBzaG90T3B0aW9ucyBzbmFwc2hvdE9wdGlvbnMgPSAwOwpAQCAtMzExOSw2ICszMTE2LDE5
IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgd2ViS2l0U25hcHNob3RPcHRpb25zVG9TbmFwc2hv
dE9wdGlvbnMoV2ViS2l0U25hcHNob3RPcHRpCiAgICAgcmV0dXJuIHNuYXBzaG90T3B0aW9uczsK
IH0KIAorc3RhdGljIGlubGluZSBTbmFwc2hvdFJlZ2lvbiB0b1NuYXBzaG90UmVnaW9uKFdlYktp
dFNuYXBzaG90UmVnaW9uIHJlZ2lvbikKK3sKKyAgICBzd2l0Y2ggKHJlZ2lvbikgeworICAgIGNh
c2UgV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9WSVNJQkxFOgorICAgICAgICByZXR1cm4gU25hcHNo
b3RSZWdpb25WaXNpYmxlOworICAgIGNhc2UgV0VCS0lUX1NOQVBTSE9UX1JFR0lPTl9GVUxMX0RP
Q1VNRU5UOgorICAgICAgICByZXR1cm4gU25hcHNob3RSZWdpb25GdWxsRG9jdW1lbnQ7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBT
bmFwc2hvdFJlZ2lvblZpc2libGU7CisgICAgfQorfQorCiBzdGF0aWMgaW5saW5lIHVpbnQ2NF90
IGdlbmVyYXRlU25hcHNob3RDYWxsYmFja0lEKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3QgdW5p
cXVlQ2FsbGJhY2tJRCA9IDE7CkBAIC0zMTQ4LDcgKzMxNTgsNyBAQCB2b2lkIHdlYmtpdF93ZWJf
dmlld19nZXRfc25hcHNob3QoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0U25hcHNob3RS
ZWdpb24gcgogICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAgICB1
aW50NjRfdCBjYWxsYmFja0lEID0gZ2VuZXJhdGVTbmFwc2hvdENhbGxiYWNrSUQoKTsKICAgICBt
ZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJTbmFwc2hvdE9wdGlvbnMiKSwgQVBJOjpVSW50
NjQ6OmNyZWF0ZShzdGF0aWNfY2FzdDx1aW50NjRfdD4od2ViS2l0U25hcHNob3RPcHRpb25zVG9T
bmFwc2hvdE9wdGlvbnMob3B0aW9ucykpKSk7Ci0gICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9t
VVRGOCgiU25hcHNob3RSZWdpb24iKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShzdGF0aWNfY2FzdDx1
aW50NjRfdD4ocmVnaW9uKSkpOworICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlNu
YXBzaG90UmVnaW9uIiksIEFQSTo6VUludDY0OjpjcmVhdGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KHRvU25hcHNob3RSZWdpb24ocmVnaW9uKSkpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZy
b21VVEY4KCJDYWxsYmFja0lEIiksIEFQSTo6VUludDY0OjpjcmVhdGUoY2FsbGJhY2tJRCkpOwog
CiAgICAgd2ViVmlldy0+cHJpdi0+c25hcHNob3RSZXN1bHRzTWFwLnNldChjYWxsYmFja0lELCBh
ZG9wdEdSZWYoZ190YXNrX25ldyh3ZWJWaWV3LCBjYW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVzZXJE
YXRhKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld0dyb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdHcm91cC5jcHAKaW5kZXggMjg5ZWNkZjAzNmJhZGQ2YzY3YTI1Y2RjY2ZhM2Zi
MjU3ZmY2MTRiMi4uYjIxZTc5ZjY4M2RhN2VmZmQxOThkZGZjODJhMzdlOWJmM2RjMjRjMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0dy
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3R3JvdXAuY3BwCkBAIC02Nyw2ICs2NywxOSBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdHcm91
cFByaXZhdGUgewogCiBXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0V2ViVmlld0dyb3VwLCB3ZWJr
aXRfd2ViX3ZpZXdfZ3JvdXAsIEdfVFlQRV9PQkpFQ1QpCiAKK3N0YXRpYyBpbmxpbmUgV2ViQ29y
ZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyB0b1dlYkNvcmVVc2VyQ29udGVudEluamVjdGVk
RnJhbWVzKFdlYktpdEluamVjdGVkQ29udGVudEZyYW1lcyBraXRGcmFtZXMpCit7CisgICAgc3dp
dGNoIChraXRGcmFtZXMpIHsKKyAgICBjYXNlIFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1F
U19BTEw6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpJbmplY3RJbkFsbEZyYW1lczsKKyAgICBj
YXNlIFdFQktJVF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19UT1BfT05MWToKKyAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OkluamVjdEluVG9wRnJhbWVPbmx5OworICAgIGRlZmF1bHQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0SW5B
bGxGcmFtZXM7CisgICAgfQorfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R3JvdXBTZXRQ
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVlKiB2YWx1
ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQogewogICAgIFdlYktpdFdlYlZpZXdHcm91cCogZ3Jv
dXAgPSBXRUJLSVRfV0VCX1ZJRVdfR1JPVVAob2JqZWN0KTsKQEAgLTIyNCw5ICsyMzcsNiBAQCB2
b2lkIHdlYmtpdF93ZWJfdmlld19ncm91cF9zZXRfc2V0dGluZ3MoV2ViS2l0V2ViVmlld0dyb3Vw
KiBncm91cCwgV2ViS2l0U2V0dGluZwogICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChncm91
cCksICJzZXR0aW5ncyIpOwogfQogCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdFQktJ
VF9JTkpFQ1RFRF9DT05URU5UX0ZSQU1FU19BTEwsIFdlYkNvcmU6OkluamVjdEluQWxsRnJhbWVz
KTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV0VCS0lUX0lOSkVDVEVEX0NPTlRFTlRf
RlJBTUVTX1RPUF9PTkxZLCBXZWJDb3JlOjpJbmplY3RJblRvcEZyYW1lT25seSk7Ci0KIHN0YXRp
YyBQYXNzUmVmUHRyPEFQSTo6QXJyYXk+IHRvQVBJQXJyYXkoY29uc3QgY2hhciogY29uc3QqIGxp
c3QpCiB7CiAgICAgaWYgKCFsaXN0KQpAQCAtMjcwLDcgKzI4MCw3IEBAIHZvaWQgd2Via2l0X3dl
Yl92aWV3X2dyb3VwX2FkZF91c2VyX3N0eWxlX3NoZWV0KFdlYktpdFdlYlZpZXdHcm91cCogZ3Jv
dXAsIGNvbnN0CiAgICAgICAgIFN0cmluZzo6ZnJvbVVURjgoYmFzZVVSSSksCiAgICAgICAgIHdl
YldoaXRlbGlzdC5nZXQoKSwKICAgICAgICAgd2ViQmxhY2tsaXN0LmdldCgpLAotICAgICAgICBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzPihpbmplY3RlZEZy
YW1lcyksCisgICAgICAgIHRvV2ViQ29yZVVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMoaW5qZWN0
ZWRGcmFtZXMpLAogICAgICAgICBXZWJDb3JlOjpVc2VyU3R5bGVVc2VyTGV2ZWwpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>