<?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>61734</bug_id>
          
          <creation_ts>2011-05-30 10:12:17 -0700</creation_ts>
          <short_desc>[GTK] Support smart replace for the pasteboard</short_desc>
          <delta_ts>2011-06-03 14:55:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>61690</dependson>
          <blocked>61661</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>gustavo</cc>
    
    <cc>rniwa</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>412277</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-30 10:12:17 -0700</bug_when>
    <thetext>There are some pasteboard tests that fail because GTK+ does not have a hook for enabling and disabling smart replace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412934</commentid>
    <comment_count>1</comment_count>
      <attachid>95496</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-31 15:31:29 -0700</bug_when>
    <thetext>Created attachment 95496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414594</commentid>
    <comment_count>2</comment_count>
      <attachid>95496</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-02 18:35:27 -0700</bug_when>
    <thetext>Comment on attachment 95496
Patch

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

toggleSmartInsertDelete seems odd to me but maybe it&apos;s gtk-style.

&gt; Source/WebKit/gtk/WebCoreSupport/DragClientGtk.cpp:106
&gt; -    GRefPtr&lt;GtkTargetList&gt; targetList(PasteboardHelper::defaultPasteboardHelper()-&gt;targetListForDataObject(dataObject.get()));
&gt; +    GRefPtr&lt;GtkTargetList&gt; targetList(PasteboardHelper::defaultPasteboardHelper()-&gt;targetListForDataObject(dataObject.get(), false));

Can we instead set the default value be false?  This is a classic case of enum being superior to bool.

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:617
&gt; +    if (client-&gt;smartInsertDeleteEnabled() != enabled)
&gt; +        client-&gt;toggleSmartInsertDelete();

If we had setSmartInsertDeleteEnabled, then we shouldn&apos;t need to have an if statement here.

&gt; Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp:429
&gt; +void EditorClient::toggleSmartInsertDelete()
&gt; +{
&gt; +    m_smartInsertDeleteEnabled = !m_smartInsertDeleteEnabled;
&gt; +}

We normally add setSmartInsertDeleteEnabled(bool).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414953</commentid>
    <comment_count>3</comment_count>
      <attachid>95923</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-06-03 09:30:42 -0700</bug_when>
    <thetext>Created attachment 95923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414964</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-06-03 09:55:11 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 95496 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95496&amp;action=review

&gt; toggleSmartInsertDelete seems odd to me but maybe it&apos;s gtk-style.

Nope, this was just copied from the Mac port. I&apos;ve converted it to setSmartInsertDeleteEanbled(bool);

&gt; &gt; Source/WebKit/gtk/WebCoreSupport/DragClientGtk.cpp:106
&gt; &gt; -    GRefPtr&lt;GtkTargetList&gt; targetList(PasteboardHelper::defaultPasteboardHelper()-&gt;targetListForDataObject(dataObject.get()));
&gt; &gt; +    GRefPtr&lt;GtkTargetList&gt; targetList(PasteboardHelper::defaultPasteboardHelper()-&gt;targetListForDataObject(dataObject.get(), false));
&gt; 
&gt; Can we instead set the default value be false?  This is a classic case of enum being superior to bool.

I&apos;ve changed the two methods in this class to take an enum. I&apos;ve uploaded a new patch, in case you had any comments on the naming. If you have no objections, I&apos;ll land the new version.

&gt; &gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:617
&gt; &gt; +    if (client-&gt;smartInsertDeleteEnabled() != enabled)
&gt; &gt; +        client-&gt;toggleSmartInsertDelete();
&gt; 
&gt; If we had setSmartInsertDeleteEnabled, then we shouldn&apos;t need to have an if statement here.

We have setSmartInsertDeleteEnabled now so I&apos;ve corrected this.

&gt; &gt; Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp:429
&gt; &gt; +void EditorClient::toggleSmartInsertDelete()
&gt; &gt; +{
&gt; &gt; +    m_smartInsertDeleteEnabled = !m_smartInsertDeleteEnabled;
&gt; &gt; +}
&gt; We normally add setSmartInsertDeleteEnabled(bool).

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415002</commentid>
    <comment_count>5</comment_count>
      <attachid>95923</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-06-03 11:03:33 -0700</bug_when>
    <thetext>Comment on attachment 95923
Patch

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

&gt; Source/WebCore/platform/gtk/PasteboardGtk.cpp:65
&gt; +                                                                     PasteboardHelper::DoNotIncludeSmartPaste);

I don&apos;t think we indent deep like this.  We normally do:
helper-&gt;writeClipboardContents(clipboard, canSmartCopyOrDelete ? PasteboardHelper::IncludeSmartPaste :
    PasteboardHelper::DoNotIncludeSmartPaste);

&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:616
&gt; +    WebKit::EditorClient* client = static_cast&lt;WebKit::EditorClient*&gt;(core(webView)-&gt;editorClient());
&gt; +    client-&gt;setSmartInsertDeleteEnabled(enabled);

Can webView or client ever be null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415211</commentid>
    <comment_count>6</comment_count>
      <attachid>95923</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-06-03 14:41:11 -0700</bug_when>
    <thetext>Comment on attachment 95923
Patch

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

&gt;&gt; Source/WebCore/platform/gtk/PasteboardGtk.cpp:65
&gt;&gt; +                                                                     PasteboardHelper::DoNotIncludeSmartPaste);
&gt; 
&gt; I don&apos;t think we indent deep like this.  We normally do:
&gt; helper-&gt;writeClipboardContents(clipboard, canSmartCopyOrDelete ? PasteboardHelper::IncludeSmartPaste :
&gt;     PasteboardHelper::DoNotIncludeSmartPaste);

In WebKitGTK+ we typically line them up instead of using a 4-space indent. If it&apos;s okay with you, I&apos;ll just make this one line.

&gt;&gt; Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp:616
&gt;&gt; +    client-&gt;setSmartInsertDeleteEnabled(enabled);
&gt; 
&gt; Can webView or client ever be null?

The WebView could potentially be null if DumpRenderTree calls this incorrectly. I&apos;ll add:

g_return_if_fail(webView);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415226</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-06-03 14:55:29 -0700</bug_when>
    <thetext>Committed r88066: &lt;http://trac.webkit.org/changeset/88066&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95496</attachid>
            <date>2011-05-31 15:31:29 -0700</date>
            <delta_ts>2011-06-03 09:30:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61734-20110531153128.patch</filename>
            <type>text/plain</type>
            <size>33555</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc2OTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ZDA5YWY3ZjM1NDdhZGZjZDY1OTM3
Yzg3ZDgyMjllMDFkNTM4NjczLi4xN2Y2ZmY3ZGZmY2Y3YmI1MjU0YTAzMWI5OGE4OTM5ZTJjZjY0
NWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDUtMzEgIE1hcnRpbiBSb2JpbnNvbiAg
PG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtHVEtdIFN1cHBvcnQgc21hcnQgcmVwbGFjZSBmb3IgdGhlIHBhc3Rl
Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYx
NzM0CisKKyAgICAgICAgVW5za2lwIHRlc3RzIHdoaWNoIGFyZSBub3cgcGFzc2luZyBhbmQgdXBk
YXRlIHJlc3VsdHMgZm9yIG90aGVyIHRlc3RzCisgICAgICAgIHdoaWNoIHZhcnkgZGVwZW5kaW5n
IG9uIHNtYXJ0IHJlcGxhY2Ugc3VwcG9ydC4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lw
cGVkOiBVbnNraXAgdGVzdHMgd2hpY2ggYXJlIG5vdyBwYXNzaW5nLgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQv
NDk0NDc3MC0yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZWRpdGluZy9w
YXN0ZWJvYXJkL2RyYWctZHJvcC1tb2RpZmllcy1wYWdlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwNy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1w
YXN0ZS0wMDgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9lZGl0aW5nL3Bh
c3RlYm9hcmQvc3ViZnJhbWUtZHJhZ25kcm9wLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9mYXN0L2xpc3RzL2RyYWctaW50by1tYXJrZXItZXhwZWN0ZWQudHh0OgorCiAy
MDExLTA1LTMwICBHYXZpbiBQZXRlcnMgIDxnYXZpbnBAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDUx
YzY1YzI3NTkzMzA3Nzk4ZWU4NDI2MTgwNWEyMmVmMzRlMzY5YWQuLjM3ODdlM2U3YWE4MzczMjVm
ODkzM2E4NTVmOGM0MzQ2ZmIzYmIxMGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0z
NTUsMTEgKzM1NSw2IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9jcm9zcy1v
cmlnaW4teGhyLmh0bWwKICMgR1RLIGRvZXNuJ3Qgc3VwcG9ydCBzbWFydCByZXBsYWNlCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTY2MQogZWRpdGluZy9wYXN0
ZWJvYXJkL3NtYXJ0LWRyYWctZHJvcC5odG1sCi1lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFz
dGUtMDAxLmh0bWwKLWVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDIuaHRtbAotZWRp
dGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwMy5odG1sCi1lZGl0aW5nL3Bhc3RlYm9hcmQv
c21hcnQtcGFzdGUtMDA0Lmh0bWwKLWVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDUu
aHRtbAogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIFRFU1RTIEZBSUxJTkcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0
ZS0wMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVs
ZXRpbmcvc21hcnQtZGVsZXRlLTAwMy1leHBlY3RlZC50eHQKaW5kZXggOTZhYzkwOTY3YWE0YTAw
YTQ0NjNmNmI4NzhmZGViMWVhN2QyMjQ4Ny4uMGRkNmUxZmQ4MmQxODY4NWFhYTNjMzQ1NzE2ODY5
NTE5NTYwNzQ0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcv
ZGVsZXRpbmcvc21hcnQtZGVsZXRlLTAwMy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZGVsZXRlLTAwMy1leHBlY3RlZC50
eHQKQEAgLTYsNiArNiw3IEBAIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gQk9ECiBFRElUSU5HIERFTEVH
QVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25O
b3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZERlbGV0ZURPTVJhbmdlOnJhbmdl
IGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDEgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAogRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihu
dWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMyBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1M
ID4gI2RvY3VtZW50IHRvIDMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpG
QUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMApAQCAtMjAsOCArMjEsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNzQwLDApIHdpZHRoIDI4OiAiWW91IgogICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDE5KSB3aWR0aCAxMjc6ICJzaG91bGQgc2VlICdmb28gYmF6Jy4iCiAg
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1NCkgc2l6ZSA3ODR4MTkKLSAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjV4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCAyNTogImZvbyAiCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MjUsMCkgc2l6ZSAyNngxOQotICAgICAgICAgIHRleHQgcnVuIGF0ICgyNSwwKSB3aWR0aCAyNjog
IiBiYXoiCi1jYXJldDogcG9zaXRpb24gNCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMiB7
RElWfSBvZiBib2R5CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIx
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjE6ICJmb28iCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjEsMCkgc2l6ZSAyNngxOQorICAgICAgICAgIHRleHQg
cnVuIGF0ICgyMSwwKSB3aWR0aCAyNjogIiBiYXoiCitjYXJldDogcG9zaXRpb24gMyBvZiBjaGls
ZCAwIHsjdGV4dH0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDA0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0
LWRlbGV0ZS0wMDQtZXhwZWN0ZWQudHh0CmluZGV4IDc2NWQzYjc2Y2M3NTY4MmYzYmFiMzYyOTY1
ZjU3OTY3Njc2YWNkOTkuLjNkOGE5MWI3ZjlkYzhiODYzZGYzOWM2ODg0ZWM5MDNjZDNjMzFkNTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nL3Nt
YXJ0LWRlbGV0ZS0wMDQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDQtZXhwZWN0ZWQudHh0CkBAIC02LDYg
KzYsNyBAQCBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJh
bmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJPRAogRURJVElORyBERUxFR0FURTogd2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9u
CiBFRElUSU5HIERFTEVHQVRFOiBzaG91bGREZWxldGVET01SYW5nZTpyYW5nZSBmcm9tIDQgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJ
VElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01S
YW5nZTpyYW5nZSBmcm9tIDMgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6
TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpX
ZWJWaWV3RGlkQ2hhbmdlTm90aWZpY2F0aW9uCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
QEAgLTIwLDggKzIxLDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMTkpIHdpZHRoIDQ1OiAiZGVsZXRlLiAiCiAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDQ1LDE5KSB3aWR0aCAxNTk6ICJZb3Ugc2hvdWxkIHNlZSAnZm9vIGJheicuIgogICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTQpIHNpemUgNzg0eDE5Ci0gICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI1eDE5Ci0gICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggMjU6ICJmb28gIgotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI1
LDApIHNpemUgMjZ4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjUsMCkgd2lkdGggMjY6ICIg
YmF6IgotY2FyZXQ6IHBvc2l0aW9uIDQgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDIge0RJ
Vn0gb2YgYm9keQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMXgx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDIxOiAiZm9vIgorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIxLDApIHNpemUgMjZ4MTkKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMjEsMCkgd2lkdGggMjY6ICIgYmF6IgorY2FyZXQ6IHBvc2l0aW9uIDMgb2YgY2hpbGQg
MCB7I3RleHR9IG9mIGNoaWxkIDIge0RJVn0gb2YgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC80OTQ0NzcwLTItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC80OTQ0NzcwLTIt
ZXhwZWN0ZWQudHh0CmluZGV4IGJhOGEyZWNmMjRlMzA5MTYyZDY0NjNiYjMxMzBlOGNjZmE5NGRl
MDguLjVmOWRkNjViNGMzYmYwY2I5OTRjM2ZlYjFmNTY1NDgwZDliYjNhMWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvNDk0NDc3MC0yLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJv
YXJkLzQ5NDQ3NzAtMi1leHBlY3RlZC50eHQKQEAgLTE2LDEwICsxNiwxNCBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDg1KSBzaXpl
IDc4NHgzMQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNikgc2l6ZSA4eDE5CiAg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsNikgd2lkdGggODogIngiCi0gICAgICAgIFJlbmRlck1l
bnVMaXN0IHtTRUxFQ1R9IGF0ICgxMCwyKSBzaXplIDM3eDI3IFtiZ2NvbG9yPSNGRkZGRkZdIFti
b3JkZXI6ICgxcHggc29saWQgIzAwMDAwMCldCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoOCw2KSBzaXplIDR4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoOCw2KSB3aWR0aCA0OiAi
ICIKKyAgICAgICAgUmVuZGVyTWVudUxpc3Qge1NFTEVDVH0gYXQgKDE0LDIpIHNpemUgMzd4Mjcg
W2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDFweCBzb2xpZCAjMDAwMDAwKV0KICAgICAgICAg
ICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMSwxKSBzaXplIDM1eDI1CiAgICAgICAgICAg
ICBSZW5kZXJUZXh0IGF0ICgzLDMpIHNpemUgOXgxOQogICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMywzKSB3aWR0aCA5OiAiMSIKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0OSw2
KSBzaXplIDh4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDksNikgd2lkdGggODogIngiCi1j
YXJldDogcG9zaXRpb24gMyBvZiBjaGlsZCAxIHtTRUxFQ1R9IG9mIGNoaWxkIDQge0RJVn0gb2Yg
Ym9keQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDUzLDYpIHNpemUgNHgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICg1Myw2KSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICg1Nyw2KSBzaXplIDh4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTcs
Nikgd2lkdGggODogIngiCitjYXJldDogcG9zaXRpb24gMSBvZiBjaGlsZCAzIHsjdGV4dH0gb2Yg
Y2hpbGQgNCB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZHJvcC1tb2RpZmllcy1wYWdlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1kcm9w
LW1vZGlmaWVzLXBhZ2UtZXhwZWN0ZWQudHh0CmluZGV4IDIzZWNlY2U3NTRiNThjMTkyNGRhYTVj
ZGQxY2FkNWU3YWJlZTAyM2MuLjQ5OTRjMzFjZjk3YmVjNTk5MjljZjhmOWQ4Mzk3OTY4NTU0MGQ5
YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9h
cmQvZHJhZy1kcm9wLW1vZGlmaWVzLXBhZ2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1kcm9wLW1vZGlmaWVzLXBhZ2Ut
ZXhwZWN0ZWQudHh0CkBAIC0xNyw5ICsxNyw5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDcxOTogIlRoaXMgdGVzdHMgbm9u
LXNtYXJ0bW92ZSBkcmFnL2Ryb3AuIFRoZSBzcGFjZSBzaG91bGQgYmUgZGVsZXRlZCBvbiBtb3Zl
LCBidXQgbm90IHJlaW5zZXJ0ZWQgb24gZHJvcCwgcmVzdWx0aW5nIGluIgogICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDE5KSB3aWR0aCA4NjogIlwid29ybGRoZWxsb1wiLiIKICAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDU0KSBzaXplIDc4NHgxOQotICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSA0MXgxOQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDQxOiAiIHdvcmxkIgotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQxLDApIHNp
emUgMzF4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDEsMCkgd2lkdGggMzE6ICJoZWxsbyIK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzd4MTkKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNzogIndvcmxkIgorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDM3LDApIHNpemUgMzF4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzcs
MCkgd2lkdGggMzE6ICJoZWxsbyIKIHNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMCBvZiBjaGls
ZCAxIHsjdGV4dH0gb2YgY2hpbGQgMyB7RElWfSBvZiBib2R5CiBzZWxlY3Rpb24gZW5kOiAgIHBv
c2l0aW9uIDUgb2YgY2hpbGQgMSB7I3RleHR9IG9mIGNoaWxkIDMge0RJVn0gb2YgYm9keQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFy
dC1wYXN0ZS0wMDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRp
bmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDctZXhwZWN0ZWQudHh0CmluZGV4IGI0NzgyZDRl
NjJmM2U2ODA1MGY4MzU4MzYyNTRhYmQ0OTNiNmI0NDUuLjEzZWNmOGNhNmNkMTk5MWM1MDA2YWNh
ODRkN2RkYmNmOGRiNjk5YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9l
ZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA3LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwNy1l
eHBlY3RlZC50eHQKQEAgLTIwLDcgKzIwLDcgQEAgRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW8KIEVE
SVRJTkcgREVMRUdBVEU6IHNob3VsZEluc2VydE5vZGU6I2RvY3VtZW50LWZyYWdtZW50IHJlcGxh
Y2luZ0RPTVJhbmdlOnJhbmdlIGZyb20gMSBvZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDEgb2YgI3RleHQgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCBnaXZlbkFjdGlvbjpXZWJWaWV3SW5zZXJ0QWN0aW9uUGFzdGVkCiBFRElUSU5H
IERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxF
R0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5n
ZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byA0IG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5p
dHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VE
SVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9N
UmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gNSBvZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5n
OkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZp
ZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCkBAIC00OSw5ICs0OSw5IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgzMiBbYm9yZGVy
OiAoMnB4IHNvbGlkICNGRjAwMDApXQogICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MiwyKSBzaXplIDZ4MjgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdpZHRoIDY6ICIu
IgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoOCwyKSBzaXplIDM0eDI4Ci0gICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoOCwyKSB3aWR0aCAzNDogInRlc3QiCi0gICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg0MiwyKSBzaXplIDZ4MjgKLSAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg0MiwyKSB3aWR0aCA2OiAiLiIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDgsMikgc2l6ZSA0MHgyOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDgsMikgd2lkdGggNDA6
ICIgdGVzdCIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ4LDIpIHNpemUgNngy
OAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQ4LDIpIHdpZHRoIDY6ICIuIgogICAgICAgICBS
ZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCwzMikgc2l6ZSA3ODR4MAotY2FyZXQ6IHBvc2l0
aW9uIDQgb2YgY2hpbGQgMSB7I3RleHR9IG9mIGNoaWxkIDEge0RJVn0gb2YgY2hpbGQgMyB7RElW
fSBvZiBib2R5CitjYXJldDogcG9zaXRpb24gNSBvZiBjaGlsZCAxIHsjdGV4dH0gb2YgY2hpbGQg
MSB7RElWfSBvZiBjaGlsZCAzIHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQt
cGFzdGUtMDA4LWV4cGVjdGVkLnR4dAppbmRleCA0YzkxMGMyNTBkMWM2MmI0ZTU0NDhjMWQ0OTQz
ZjY3ZTNiNDRjODhlLi43ZDhhZmRmOWVlY2IxZGViYWY3MzliNDUyZWM5NTNiNjdkYTZmMDQ1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL3Nt
YXJ0LXBhc3RlLTAwOC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDgtZXhwZWN0ZWQudHh0CkBAIC05LDcg
KzksNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpbwogRURJVElORyBERUxFR0FURTogc2hvdWxk
SW5zZXJ0Tm9kZTojZG9jdW1lbnQtZnJhZ21lbnQgcmVwbGFjaW5nRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAxIG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMSBv
ZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGdpdmVuQWN0aW9u
OldlYlZpZXdJbnNlcnRBY3Rpb25QYXN0ZWQKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMyBvZiAjdGV4dCA+IERJ
ViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDMgb2YgI3RleHQgPiBESVYgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5
RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxk
Q2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2Yg
I3RleHQgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0
ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rp
b25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlk
Q2hhbmdlTm90aWZpY2F0aW9uCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKQEAgLTMxLDkg
KzMxLDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDE5CiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgNXgxOQogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
NTogImYiCi0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1LDApIHNpemUgMjF4MTkK
LSAgICAgICAgICAgIHRleHQgcnVuIGF0ICg1LDApIHdpZHRoIDIxOiAiZm9vIgotICAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjYsMCkgc2l6ZSAyNHgxOQotICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDI2LDApIHdpZHRoIDI0OiAiIGJhciIKKyAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDUsMCkgc2l6ZSAyNXgxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDUsMCkg
d2lkdGggMjU6ICIgZm9vIgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzAsMCkg
c2l6ZSAyNHgxOQorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDMwLDApIHdpZHRoIDI0OiAiIGJh
ciIKICAgICAgICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTkpIHNpemUgNzg0eDAK
LWNhcmV0OiBwb3NpdGlvbiAzIG9mIGNoaWxkIDEgeyN0ZXh0fSBvZiBjaGlsZCAwIHtESVZ9IG9m
IGNoaWxkIDQge0RJVn0gb2YgYm9keQorY2FyZXQ6IHBvc2l0aW9uIDQgb2YgY2hpbGQgMSB7I3Rl
eHR9IG9mIGNoaWxkIDAge0RJVn0gb2YgY2hpbGQgNCB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL3N1YmZyYW1lLWRy
YWduZHJvcC0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5n
L3Bhc3RlYm9hcmQvc3ViZnJhbWUtZHJhZ25kcm9wLTEtZXhwZWN0ZWQudHh0CmluZGV4IDAyZWY1
ODEzMWJkMWMwNjMwNzlkMDAxYWYyNmRiODQzYjJmZTNjNTguLmVkMDMwOTQxYWIxOTVjOTVmYmY2
ZjU1NjM3MzM1N2M1ODgyYTYwZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9lZGl0aW5nL3Bhc3RlYm9hcmQvc3ViZnJhbWUtZHJhZ25kcm9wLTEtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvc3ViZnJhbWUt
ZHJhZ25kcm9wLTEtZXhwZWN0ZWQudHh0CkBAIC0xMCw4ICsxMCw3IEBAIEVESVRJTkcgREVMRUdB
VEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA2IG9mICN0ZXh0ID4g
Qk9EWSA+IEhUCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHNo
b3VsZEluc2VydE5vZGU6I2RvY3VtZW50LWZyYWdtZW50IHJlcGxhY2luZ0RPTVJhbmdlOnJhbmdl
IGZyb20gMTEgb2YgI3RleHQgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMSBvZiAjdGV4
dCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGdpdmVuQWN0aW9uOldlYlZpZXdJbnNlcnRBY3Rp
b25Ecm9wcGVkCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5n
ZSBmcm9tIDQgb2YgI3RleHQgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3Rl
eHQgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9mICN0ZXh0ID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxT
ZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mICN0ZXh0ID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFm
ZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNF
CiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2U6V2ViVmlld0RpZENoYW5nZU5vdGlmaWNhdGlvbgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCkBAIC0yNiwxMCArMjUsMTAgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAg
ICAgICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAzMDB4MzAwCiAgICAgICAgICAgICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAzMDB4MzAwCiAgICAgICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjg0eDI4NCBbYmdjb2xvcj0jRkZGRkUwXQotICAgICAg
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDUxeDE5Ci0gICAgICAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1MTogImZvbyAgYmF6IgotICAgICAg
ICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNTEsMCkgc2l6ZSAyMHgxOQotICAgICAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDUxLDApIHdpZHRoIDIwOiAiYmFyIgorICAgICAgICAg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ3eDE5CisgICAgICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NzogImZvbyBiYXoiCisgICAgICAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0NywwKSBzaXplIDIweDE5CisgICAgICAgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoNDcsMCkgd2lkdGggMjA6ICJiYXIiCiAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0
ICgwLDMyMCkgc2l6ZSA4MDB4MzgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNzk1eDM4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9s
aXN0cy9kcmFnLWludG8tbWFya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9mYXN0L2xpc3RzL2RyYWctaW50by1tYXJrZXItZXhwZWN0ZWQudHh0CmluZGV4IGMzM2Zm
NmExOWJkYjMwOTJmMWZmMzE3NDlmMjdiODZkZGViNDE5N2EuLjgxNDQzMDdkZDUxOWRjYTRmMDBm
ZGFlZDM0ODBiYmNlYzMzNWRjMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9mYXN0L2xpc3RzL2RyYWctaW50by1tYXJrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9mYXN0L2xpc3RzL2RyYWctaW50by1tYXJrZXItZXhwZWN0ZWQudHh0
CkBAIC04LDkgKzgsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBS
ZW5kZXJMaXN0TWFya2VyIGF0ICgtMzYsMCkgc2l6ZSAxNng1NDogYmxhY2sgc3F1YXJlCiAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMTEyeDU0CiAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxMTI6ICJ3b3JsZCIKLSAgICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDExMiwwKSBzaXplIDEwN3g1NAorICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMTEyLDApIHNpemUgOTV4NTQKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MTIsMCkgd2lkdGggOTU6ICJoZWxsbyIKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgyMDcsMCkg
d2lkdGggMTI6ICIgIgogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDczKSBzaXplIDc4NHg3
NgogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3Njh4NzYKICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1NjI6ICJUaGlzIGlzIGFuIGF1dG9tYXRlZCB0
ZXN0IGZvciBlbGVtZW50QXRQb2ludCBmb3IgcG9pbnRzIG92ZXIgcG9zaXRpb246b3V0c2lkZSBs
aXN0IG1hcmtlcnMuICIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlZTM3ZThkOTRhMTVlMmQ2YTQzYWZlYWEzMzk4
ZjA1OWQ2OTA3MzA3Li45MGZkZjk3OTNjOWFlYzQ2NTBmNmQzMGMxNWY4YTVjZTIzNjE0ZjY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDUtMzEgIE1hcnRpbiBSb2JpbnNvbiAg
PG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtHVEtdIFN1cHBvcnQgc21hcnQgcmVwbGFjZSBmb3IgdGhlIHBhc3Rl
Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYx
NzM0CisKKyAgICAgICAgQWRkIHNtYXJ0IHJlcGxhY2Ugc3VwcG9ydCB0byBXZWJDb3JlIGFuZCBh
ZGQgaG9va3MgZm9yIGl0IGluIFdlYktpdAorICAgICAgICB2aWEgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLiBXaGVuIGEgcGxhdGZvcm0gc3VwcG9ydHMgc21hcnQgcmVwbGFjZSwKKyAgICAgICAg
V2ViQ29yZSB3aWxsIHJlbW92ZSBleHRyYSBzcGFjZXMgdGhhdCBhcHBlYXIgd2hlbiBwYXN0aW5n
IHRleHQuIEV2ZW50dWFsbHkKKyAgICAgICAgV2ViS2l0R1RLKyBtYXkgd2FudCB0byBleHBvc2Ug
dGhpcyBpbiB0aGUgcHVibGljIEFQSS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9u
KTogTm93IHBhc3Mgd2hldGhlciBvciBub3QgdG8gdXNlIHNtYXJ0IHJlcGxhY2UKKyAgICAgICAg
d2hlbiBjYWxsaW5nIHdyaXRlU2VsZWN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2Fy
ZDo6Y2FuU21hcnRSZXBsYWNlKTogQWRkZWQgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBjaGVja3Mg
dGhlIGNsaXBib2FyZAorICAgICAgICBmb3Igd2hldGhlciBvciBub3QgaXQgc3VwcG9ydHMgc21h
cnQgcGFzdGUuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6aW5pdEdka0F0b21zKTogQWRkZWQgaW5pdGlhbGl6YXRpb24gZm9y
IHNtYXJ0IHJlcGxhY2UgYXRvbS4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmRIZWxwZXI6
OmZpbGxTZWxlY3Rpb25EYXRhKTogQWRkZWQgbm8tb3AgaGFuZGxlciBmb3Igc21hcnQgcmVwbGFj
ZSBhdG9tLgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZEhlbHBlcjo6dGFyZ2V0TGlzdEZv
ckRhdGFPYmplY3QpOiBQcm9wZXJseSBoYW5kbGUgbmV3IHNtYXJ0IHJlcGxhY2UgcGFyYW1ldGVy
LgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZEhlbHBlcjo6d3JpdGVDbGlwYm9hcmRDb250
ZW50cyk6IFByb3Blcmx5IGhhbmRsZSBuZXcgc21hcnQgcmVwbGFjZSBwYXJhbWV0ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkSGVscGVyOjpjbGlwYm9hcmRDb250ZW50U3VwcG9ydHNT
bWFydFJlcGxhY2UpOiBBZGRlZCBoZWxwZXIgZm9yIFBhc3RlYm9hcmQuCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaDogQWRkIG5ldyBtZXRob2QgZGVmaW5pdGlvbi4K
KwogMjAxMS0wNS0yOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKaW5kZXggNmZjMjJkZTBhNzI3YzljZmM5YTMz
Njc5ODQyMDhiZWZlMDM5NGFiYi4uOTM3Zjk0ZDAyNGZjZjhmZjlmOGZmZWU2OTViYzllMGE2MTQ3
YWYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRH
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNw
cApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdl
KiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLAogICAgIERhdGFPYmpl
Y3RHdGsqIGRhdGFPYmplY3QgPSBEYXRhT2JqZWN0R3RrOjpmb3JDbGlwYm9hcmQoY2xpcGJvYXJk
KTsKICAgICBkYXRhT2JqZWN0LT5zZXRUZXh0KGZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0
KCkpOwogICAgIGRhdGFPYmplY3QtPnNldE1hcmt1cChjcmVhdGVNYXJrdXAoc2VsZWN0ZWRSYW5n
ZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFic29sdXRlVVJMcykpOwotICAg
IGRlZmF1bHRIZWxwZXItPndyaXRlQ2xpcGJvYXJkQ29udGVudHMoY2xpcGJvYXJkKTsKKyAgICBk
ZWZhdWx0SGVscGVyLT53cml0ZUNsaXBib2FyZENvbnRlbnRzKGNsaXBib2FyZCwgY2FuU21hcnRD
b3B5T3JEZWxldGUpOwogfQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0
IFN0cmluZyYgdGV4dCkKQEAgLTEzOSw4ICsxMzksOCBAQCB2b2lkIFBhc3RlYm9hcmQ6OmNsZWFy
KCkKIAogYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBQYXN0ZWJvYXJkSGVscGVy
OjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT5jbGlwYm9hcmRDb250ZW50U3VwcG9ydHNTbWFy
dFJlcGxhY2UoCisgICAgICAgIGd0a19jbGlwYm9hcmRfZ2V0X2Zvcl9kaXNwbGF5KGdka19kaXNw
bGF5X2dldF9kZWZhdWx0KCksIEdES19TRUxFQ1RJT05fQ0xJUEJPQVJEKSk7CiB9CiAKIFBhc3NS
ZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDo6ZG9jdW1lbnRGcmFnbWVudChGcmFt
ZSogZnJhbWUsIFBhc3NSZWZQdHI8UmFuZ2U+IGNvbnRleHQsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHAKaW5kZXggM2QwZGIxNDVmYTAzODI0
YjlmMGZiMDVkZjZhNmY1YmM5MWRhNGQxOC4uNjVmYmZhODc2YzcwZjdhZTY5MDQ5ZGM3OTAzOWZi
OTg3ZDk3ZGExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3Rl
Ym9hcmRIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkSGVscGVyLmNwcApAQCAtMzgsNiArMzgsNyBAQCBzdGF0aWMgR2RrQXRvbSB0ZXh0UGxhaW5B
dG9tOwogc3RhdGljIEdka0F0b20gbWFya3VwQXRvbTsKIHN0YXRpYyBHZGtBdG9tIG5ldHNjYXBl
VVJMQXRvbTsKIHN0YXRpYyBHZGtBdG9tIHVyaUxpc3RBdG9tOworc3RhdGljIEdka0F0b20gc21h
cnRQYXN0ZUF0b207CiBzdGF0aWMgU3RyaW5nIGdNYXJrdXBQcmVmaXg7CiAKIHN0YXRpYyB2b2lk
IHJlbW92ZU1hcmt1cFByZWZpeChTdHJpbmcmIG1hcmt1cCkKQEAgLTYxLDYgKzYyLDcgQEAgc3Rh
dGljIHZvaWQgaW5pdEdka0F0b21zKCkKICAgICBtYXJrdXBBdG9tID0gZ2RrX2F0b21faW50ZXJu
KCJ0ZXh0L2h0bWwiLCBGQUxTRSk7CiAgICAgbmV0c2NhcGVVUkxBdG9tID0gZ2RrX2F0b21faW50
ZXJuKCJfTkVUU0NBUEVfVVJMIiwgRkFMU0UpOwogICAgIHVyaUxpc3RBdG9tID0gZ2RrX2F0b21f
aW50ZXJuKCJ0ZXh0L3VyaS1saXN0IiwgRkFMU0UpOworICAgIHNtYXJ0UGFzdGVBdG9tID0gZ2Rr
X2F0b21faW50ZXJuKCJhcHBsaWNhdGlvbi92bmQud2Via2l0Z3RrLnNtYXJ0cGFzdGUiLCBGQUxT
RSk7CiAgICAgZ01hcmt1cFByZWZpeCA9ICI8bWV0YSBodHRwLWVxdWl2PVwiY29udGVudC10eXBl
XCIgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiPiI7CiB9CiAKQEAgLTE5MCw5
ICsxOTIsMTIgQEAgdm9pZCBQYXN0ZWJvYXJkSGVscGVyOjpmaWxsU2VsZWN0aW9uRGF0YShHdGtT
ZWxlY3Rpb25EYXRhKiBzZWxlY3Rpb25EYXRhLCBndWludAogCiAgICAgfSBlbHNlIGlmIChpbmZv
ID09IFRhcmdldFR5cGVJbWFnZSkKICAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX3NldF9waXhi
dWYoc2VsZWN0aW9uRGF0YSwgZGF0YU9iamVjdC0+aW1hZ2UoKSk7CisKKyAgICBlbHNlIGlmIChp
bmZvID09IFRhcmdldFR5cGVTbWFydFBhc3RlKQorICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFf
c2V0X3RleHQoc2VsZWN0aW9uRGF0YSwgIiIsIC0xKTsKIH0KIAotR3RrVGFyZ2V0TGlzdCogUGFz
dGVib2FyZEhlbHBlcjo6dGFyZ2V0TGlzdEZvckRhdGFPYmplY3QoRGF0YU9iamVjdEd0ayogZGF0
YU9iamVjdCkKK0d0a1RhcmdldExpc3QqIFBhc3RlYm9hcmRIZWxwZXI6OnRhcmdldExpc3RGb3JE
YXRhT2JqZWN0KERhdGFPYmplY3RHdGsqIGRhdGFPYmplY3QsIGJvb2wgY2FuU21hcnRDb3B5T3JE
ZWxldGUpCiB7CiAgICAgR3RrVGFyZ2V0TGlzdCogbGlzdCA9IGd0a190YXJnZXRfbGlzdF9uZXco
MCwgMCk7CiAKQEAgLTIxMCw2ICsyMTUsOSBAQCBHdGtUYXJnZXRMaXN0KiBQYXN0ZWJvYXJkSGVs
cGVyOjp0YXJnZXRMaXN0Rm9yRGF0YU9iamVjdChEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZQogICAg
IGlmIChkYXRhT2JqZWN0LT5oYXNJbWFnZSgpKQogICAgICAgICBndGtfdGFyZ2V0X2xpc3RfYWRk
X2ltYWdlX3RhcmdldHMobGlzdCwgVGFyZ2V0VHlwZUltYWdlLCBUUlVFKTsKIAorICAgIGlmIChj
YW5TbWFydENvcHlPckRlbGV0ZSkKKyAgICAgICAgZ3RrX3RhcmdldF9saXN0X2FkZChsaXN0LCBz
bWFydFBhc3RlQXRvbSwgMCwgVGFyZ2V0VHlwZVNtYXJ0UGFzdGUpOworCiAgICAgcmV0dXJuIGxp
c3Q7CiB9CiAKQEAgLTI4OSwxMCArMjk3LDEwIEBAIHN0YXRpYyB2b2lkIGNsZWFyQ2xpcGJvYXJk
Q29udGVudHNDYWxsYmFjayhHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgZ3BvaW50ZXIgZGF0CiAg
ICAgZ19jbG9zdXJlX3VucmVmKGNhbGxiYWNrKTsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkSGVscGVy
Ojp3cml0ZUNsaXBib2FyZENvbnRlbnRzKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBHQ2xvc3Vy
ZSogY2FsbGJhY2spCit2b2lkIFBhc3RlYm9hcmRIZWxwZXI6OndyaXRlQ2xpcGJvYXJkQ29udGVu
dHMoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEdD
bG9zdXJlKiBjYWxsYmFjaykKIHsKICAgICBEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0ID0gRGF0
YU9iamVjdEd0azo6Zm9yQ2xpcGJvYXJkKGNsaXBib2FyZCk7Ci0gICAgR3RrVGFyZ2V0TGlzdCog
bGlzdCA9IHRhcmdldExpc3RGb3JEYXRhT2JqZWN0KGRhdGFPYmplY3QpOworICAgIEd0a1Rhcmdl
dExpc3QqIGxpc3QgPSB0YXJnZXRMaXN0Rm9yRGF0YU9iamVjdChkYXRhT2JqZWN0LCBjYW5TbWFy
dENvcHlPckRlbGV0ZSk7CiAKICAgICBpbnQgbnVtYmVyT2ZUYXJnZXRzOwogICAgIEd0a1Rhcmdl
dEVudHJ5KiB0YWJsZSA9IGd0a190YXJnZXRfdGFibGVfbmV3X2Zyb21fbGlzdChsaXN0LCAmbnVt
YmVyT2ZUYXJnZXRzKTsKQEAgLTMxNCw1ICszMjIsMTAgQEAgdm9pZCBQYXN0ZWJvYXJkSGVscGVy
Ojp3cml0ZUNsaXBib2FyZENvbnRlbnRzKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBHQ2xvc3Vy
ZSoKICAgICBndGtfdGFyZ2V0X2xpc3RfdW5yZWYobGlzdCk7CiB9CiAKK2Jvb2wgUGFzdGVib2Fy
ZEhlbHBlcjo6Y2xpcGJvYXJkQ29udGVudFN1cHBvcnRzU21hcnRSZXBsYWNlKEd0a0NsaXBib2Fy
ZCogY2xpcGJvYXJkKQoreworICAgIHJldHVybiBndGtfY2xpcGJvYXJkX3dhaXRfaXNfdGFyZ2V0
X2F2YWlsYWJsZShjbGlwYm9hcmQsIHNtYXJ0UGFzdGVBdG9tKTsKK30KKwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaAppbmRleCAzMTYxYzkx
OTI4MDBkODI1N2NhMDYwNWU2OWVmNGU3MTU5MmYzYmE2Li43NTdlZTU1YjZhODg3NjUyMTQwMzJm
YmQ1ZDQzYTUzZWI3MjRlNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUGFzdGVib2FyZEhlbHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
YXN0ZWJvYXJkSGVscGVyLmgKQEAgLTQ0LDE0ICs0NCwxNSBAQCBwdWJsaWM6CiAgICAgR3RrQ2xp
cGJvYXJkKiBnZXRDbGlwYm9hcmQoRnJhbWUqKSBjb25zdDsKICAgICBHdGtDbGlwYm9hcmQqIGdl
dFByaW1hcnlTZWxlY3Rpb25DbGlwYm9hcmQoRnJhbWUqKSBjb25zdDsKICAgICBHdGtUYXJnZXRM
aXN0KiB0YXJnZXRMaXN0KCkgY29uc3Q7Ci0gICAgR3RrVGFyZ2V0TGlzdCogdGFyZ2V0TGlzdEZv
ckRhdGFPYmplY3QoRGF0YU9iamVjdEd0ayopOworICAgIEd0a1RhcmdldExpc3QqIHRhcmdldExp
c3RGb3JEYXRhT2JqZWN0KERhdGFPYmplY3RHdGsqLCBib29sIGNhblNtYXJDb3B5T3JEZWxldGUp
OwogICAgIHZvaWQgZmlsbFNlbGVjdGlvbkRhdGEoR3RrU2VsZWN0aW9uRGF0YSosIGd1aW50LCBE
YXRhT2JqZWN0R3RrKik7CiAgICAgdm9pZCBmaWxsRGF0YU9iamVjdEZyb21Ecm9wRGF0YShHdGtT
ZWxlY3Rpb25EYXRhKiwgZ3VpbnQsIERhdGFPYmplY3RHdGsqKTsKICAgICBWZWN0b3I8R2RrQXRv
bT4gZHJvcEF0b21zRm9yQ29udGV4dChHdGtXaWRnZXQqLCBHZGtEcmFnQ29udGV4dCopOwotICAg
IHZvaWQgd3JpdGVDbGlwYm9hcmRDb250ZW50cyhHdGtDbGlwYm9hcmQqLCBHQ2xvc3VyZSogY2xv
c3VyZSA9IDApOworICAgIHZvaWQgd3JpdGVDbGlwYm9hcmRDb250ZW50cyhHdGtDbGlwYm9hcmQq
LCBib29sIHN1cHBvcnRzU21hcnRQYXN0ZSA9IGZhbHNlLCBHQ2xvc3VyZSogPSAwKTsKICAgICB2
b2lkIGdldENsaXBib2FyZENvbnRlbnRzKEd0a0NsaXBib2FyZCopOwogCi0gICAgZW51bSBQYXN0
ZWJvYXJkVGFyZ2V0VHlwZSB7IFRhcmdldFR5cGVNYXJrdXAsIFRhcmdldFR5cGVUZXh0LCBUYXJn
ZXRUeXBlSW1hZ2UsIFRhcmdldFR5cGVVUklMaXN0LCBUYXJnZXRUeXBlTmV0c2NhcGVVUkwsIFRh
cmdldFR5cGVVbmtub3duIH07CisgICAgZW51bSBQYXN0ZWJvYXJkVGFyZ2V0VHlwZSB7IFRhcmdl
dFR5cGVNYXJrdXAsIFRhcmdldFR5cGVUZXh0LCBUYXJnZXRUeXBlSW1hZ2UsIFRhcmdldFR5cGVV
UklMaXN0LCBUYXJnZXRUeXBlTmV0c2NhcGVVUkwsIFRhcmdldFR5cGVTbWFydFBhc3RlLCBUYXJn
ZXRUeXBlVW5rbm93biB9OworICAgIGJvb2wgY2xpcGJvYXJkQ29udGVudFN1cHBvcnRzU21hcnRS
ZXBsYWNlKEd0a0NsaXBib2FyZCopOwogCiBwcml2YXRlOgogICAgIEd0a1RhcmdldExpc3QqIG1f
dGFyZ2V0TGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA1NDE4ZjI0ZTg1YTlhZmJlOTczYmJmNTc0
NjY2MTc4YzA0ZDA0ZTBhLi4xYWNmMDNmNjZkMDc4ZDhjYzY1MjY2MzQ4ZWY4NWZlNTY1MjRiZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDUtMzEgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFN1cHBvcnQgc21hcnQgcmVwbGFjZSBmb3Ig
dGhlIHBhc3RlYm9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYxNzM0CisKKyAgICAgICAgQWRkIHRoZSBFZGl0b3JDbGllbnQgYW5kIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0ayBob29rcyBmb3IgZW5hYmxpbmcKKyAgICAgICAgc21hcnQgcmVwbGFj
ZSBpbiB0aGUgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudDo6c3RhcnREcmFnKTogdGFyZ2VMaXN0
Rm9yRGF0YU9iamVjdCBub3cgdGFrZXMgYW5vdGhlcgorICAgICAgICBwYXJhbWV0ZXIgZGV0ZXJt
aW5pbmcgd2hldGhlciBvciBub3QgdG8gYWRkIHNtYXJ0IHBhc3RlIHN1cHBvcnQuIEFkZCBpdCBo
ZXJlLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5j
cHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCk6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oOiBBZGQgbmV3IG1ldGhvZCBkZWZpbml0aW9uLgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudDo6dG9nZ2xlU21hcnRJbnNlcnREZWxldGUpOiBBZGRlZCBpbXBsZW1lbnRhdGlvbi4K
KyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOiBBZGQgbmV3IG1ldGhv
ZCBkZWZpbml0aW9uLgorCiAyMDExLTA1LTI4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3Bw
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKaW5k
ZXggNDFhYzZlOTY3MDYyMjBkMzBkYjllNGE1NDhhNDM1NDAxYmQxMTU3Ni4uYzVkM2RmN2EzMjli
YmY1YWZhNTg0MmRhZTk1MGE2ZDlmMGNmNDViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCB2
b2lkIERyYWdDbGllbnQ6OnN0YXJ0RHJhZyhEcmFnSW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IEludFBv
aW50JiBkcmFnSW1hZ2VPcmlnaW4sCiAKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gd2Vi
a2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcoa2l0KGZyYW1lKSk7CiAgICAgUmVmUHRyPERhdGFP
YmplY3RHdGs+IGRhdGFPYmplY3QgPSBjbGlwYm9hcmRHdGstPmRhdGFPYmplY3QoKTsKLSAgICBH
UmVmUHRyPEd0a1RhcmdldExpc3Q+IHRhcmdldExpc3QoUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVs
dFBhc3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdEZvckRhdGFPYmplY3QoZGF0YU9iamVjdC5n
ZXQoKSkpOworICAgIEdSZWZQdHI8R3RrVGFyZ2V0TGlzdD4gdGFyZ2V0TGlzdChQYXN0ZWJvYXJk
SGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0Rm9yRGF0YU9iamVj
dChkYXRhT2JqZWN0LmdldCgpLCBmYWxzZSkpOwogICAgIEdPd25QdHI8R2RrRXZlbnQ+IGN1cnJl
bnRFdmVudChndGtfZ2V0X2N1cnJlbnRfZXZlbnQoKSk7CiAKICAgICBHZGtEcmFnQ29udGV4dCog
Y29udGV4dCA9IGd0a19kcmFnX2JlZ2luKEdUS19XSURHRVQobV93ZWJWaWV3KSwgdGFyZ2V0TGlz
dC5nZXQoKSwgZHJhZ09wZXJhdGlvblRvR2RrRHJhZ0FjdGlvbnMoY2xpcGJvYXJkLT5zb3VyY2VP
cGVyYXRpb24oKSksIDEsIGN1cnJlbnRFdmVudC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcAppbmRleCA3YzMwNDMzNmI4ODU1MGNkNjY4NDU5MmUzNzJlMmY5OGNhODM4OWUwLi43YzQw
YTA1OTE2MDIxYTcxMzc4MWU1ZGQ2ZDhhZGMwZGEwZjY1NDY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJFZGl0b3JDbGllbnRHdGsuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsu
aCIKQEAgLTYwNyw2ICs2MDgsMTUgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNl
bGVjdGVkUmFuZ2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgaW50KiBzdGFydCwKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGVuYWJsZWQpCit7
CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworCisg
ICAgV2ViS2l0OjpFZGl0b3JDbGllbnQqIGNsaWVudCA9IHN0YXRpY19jYXN0PFdlYktpdDo6RWRp
dG9yQ2xpZW50Kj4oY29yZSh3ZWJWaWV3KS0+ZWRpdG9yQ2xpZW50KCkpOworICAgIGlmIChjbGll
bnQtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpICE9IGVuYWJsZWQpCisgICAgICAgIGNsaWVu
dC0+dG9nZ2xlU21hcnRJbnNlcnREZWxldGUoKTsKK30KKwogdm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oY29uc3QgZ2NoYXIqIHNvdXJjZU9y
aWdpbiwgY29uc3QgZ2NoYXIqIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IGdjaGFyKiBkZXN0
aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgU2Vj
dXJpdHlPcmlnaW46OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCpTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLCBkZXN0aW5hdGlvblByb3RvY29sLCBk
ZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKaW5kZXggMzM4YmI0NjBmMjA1OGYyZjg4NmE4Njk5NTczYTA0MmUwYjRjM2M0MS4u
OWFkMzBiZTQwMjk5MDA3MGFlNDNiN2M1MTMwMThhYzhlMWY2NWEzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0
TWluaW11bVRpbWVySW50ZXJ2YWwoV2ViS2l0V2ViVmlldyosIGRvdWJsZSk7CiAgICAgc3RhdGlj
IHZvaWQgcmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiwgR2RrUmVjdGFuZ2xl
Kik7CiAgICAgc3RhdGljIHZvaWQgc2NhbGVQYWdlQnkoV2ViS2l0V2ViVmlldyosIGZsb2F0LCBm
bG9hdCwgZmxvYXQpOworICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChXZWJLaXRXZWJWaWV3KiwgYm9vbCk7CiAKICAgICAvLyBBY2Nlc3NpYmlsaXR5CiAgICAgc3Rh
dGljIHZvaWQgaW5jcmVtZW50QWNjZXNzaWJpbGl0eVZhbHVlKEF0a09iamVjdCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAK
aW5kZXggMjU0ODc5YTEzZWZiNmQwYWQyZWQwZTc0MmI5NzBmMzY5M2YzNWExNS4uOGUyYTUxYmMx
MDgzOGE2YTQ5NzI5NDM5YWY1YWE4MTQ2OGYxMzA1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCkBAIC00MjMsMTAgKzQy
MywxNCBAQCB2b2lkIEVkaXRvckNsaWVudDo6cGFnZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRo
aXM7CiB9CiAKK3ZvaWQgRWRpdG9yQ2xpZW50Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSgpCit7
CisgICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSAhbV9zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQ7Cit9CisKIGJvb2wgRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCkBAIC02MjYsNiArNjMwLDcgQEAgRWRp
dG9yQ2xpZW50OjpFZGl0b3JDbGllbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICAsIG1f
d2ViVmlldyh3ZWJWaWV3KQogICAgICwgbV9wcmV2ZW50TmV4dENvbXBvc2l0aW9uQ29tbWl0KGZh
bHNlKQogICAgICwgbV90cmVhdENvbnRleHRDb21taXRBc0tleUV2ZW50KGZhbHNlKQorICAgICwg
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpCiB7CiAgICAgV2ViS2l0V2ViVmlld1By
aXZhdGUqIHByaXYgPSBtX3dlYlZpZXctPnByaXY7CiAgICAgZ19zaWduYWxfY29ubmVjdChwcml2
LT5pbUNvbnRleHQuZ2V0KCksICJjb21taXQiLCBHX0NBTExCQUNLKGltQ29udGV4dENvbW1pdHRl
ZCksIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaAppbmRleCA3ODBkNzRmMTUzYTljOGMxNmZmYWJlZWJjZWQ2YTNjNDRhYjJl
YjkyLi5jMzYzN2VhNTcyYjgxYjgxMDJkYTkyZTFiNDBhNDFhNDI1ZDBkMDM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAt
ODAsNiArODAsNyBAQCBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9y
Q2xpZW50IHsKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFdlYkNvcmU6
OlJhbmdlKik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNl
KFdlYkNvcmU6OkhUTUxFbGVtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZVNtYXJ0SW5zZXJ0
RGVsZXRlKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKTsKICAgICAgICAgdmlydHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxD
aGVja2luZygpOwpAQCAtMTQ5LDYgKzE1MCw4IEBAIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1Ymxp
YyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgewogCiAgICAgICAgIFdlYkNvcmU6OktleUJpbmRpbmdU
cmFuc2xhdG9yIG1fa2V5QmluZGluZ1RyYW5zbGF0b3I7CiAgICAgICAgIFZlY3RvcjxXVEY6OlN0
cmluZz4gbV9wZW5kaW5nRWRpdG9yQ29tbWFuZHM7CisKKyAgICAgICAgYm9vbCBtX3NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzZlOWQxNGUxMjdjODM2ZDM3MDRkMTAwMzA2NWYx
YjZkNTNlZWQ3NC4uNDM3Mjc4OTlkZmU1Nzk3NjNhZjRiMDA1OGM0ZWQ3NzNkMmM5N2Y3MCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDExLTA1LTMxICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RL
XSBTdXBwb3J0IHNtYXJ0IHJlcGxhY2UgZm9yIHRoZSBwYXN0ZWJvYXJkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTczNAorCisgICAgICAgIENhbGwg
aW50byB0aGUgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrIGhvb2tzIHRvIHRvZ2dsZSBzbWFydCBy
ZXBsYWNlLgorICAgICAgICBUaGlzIGlzIHJlcXVpcmVkIHRvIHByb2R1Y2UgY29uc2lzdGVudCB0
ZXN0IHJlc3VsdHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRy
ZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6IFNldCB0
aGUgc21hcnQgcmVwbGFjZSBzZXR0aW5nIHRvIG9uIGJ5IGRlZmF1bHQuCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOiBBZGRlZCBh
biBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzCisgICAgICAgIG1ldGhvZHMgd2hpY2ggY2FsbHMgaW50
byBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuCisKIDIwMTEtMDUtMzAgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRp
biBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVu
ZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3Bw
CmluZGV4IGE2NzFlMWY0MTVlMTkzYWQ5YmJlMDI4OWNiNGYxNWQzYWZkMzE1YjguLjZkOThkMTll
MDJlMDEzMzI1YTE5NTg0ZGI5YTAzN2VjOWVlNzhiMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNDY2LDYgKzQ2Niw3IEBAIHN0YXRpYyB2b2lk
IHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6c2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbih0cnVlKTsKICAgICB3ZWJraXRf
aWNvbl9kYXRhYmFzZV9zZXRfcGF0aCh3ZWJraXRfZ2V0X2ljb25fZGF0YWJhc2UoKSwgMCk7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGZhbHNlKTsKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCh3ZWJWaWV3LCB0cnVlKTsKIAogICAgIGlmIChheENvbnRyb2xsZXIp
CiAgICAgICAgIGF4Q29udHJvbGxlci0+cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAK
aW5kZXggMzkxMjYxZWRlOGU2MGU1YmE0MGU5ZDg1MGM4NWIxZTJhMzAwMGM5MC4uMDI4NDE3Njc5
MWE1ZWI3Y2ZlNzg1ZGIxZmY1NmZlMzhiM2JjNDAxNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0zNjUsNyArMzY1
LDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5k
b3dJc0tleSkKIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKGJvb2wgZmxhZykKIHsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQod2Via2l0
X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKSwgZmxhZyk7CiB9CiAKIHN0YXRpYyBn
Ym9vbGVhbiB3YWl0VG9EdW1wV2F0Y2hkb2dGaXJlZCh2b2lkKikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95923</attachid>
            <date>2011-06-03 09:30:42 -0700</date>
            <delta_ts>2011-06-03 14:41:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61734-20110603093041.patch</filename>
            <type>text/plain</type>
            <size>33563</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgwMTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxYTM0ODNiYTdkM2RkYjc5NTBjNTI1
ZjE4MzdlNmI5MWY3OGM0NGE0Li5hZTMzZGZlZDNmMzgwYmRmNmI2ZjA1NDg0NjEzM2UzNzI5MzE1
MmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDUtMzEgIE1hcnRpbiBSb2JpbnNvbiAg
PG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtHVEtdIFN1cHBvcnQgc21hcnQgcmVwbGFjZSBmb3IgdGhlIHBhc3Rl
Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYx
NzM0CisKKyAgICAgICAgVW5za2lwIHRlc3RzIHdoaWNoIGFyZSBub3cgcGFzc2luZyBhbmQgdXBk
YXRlIHJlc3VsdHMgZm9yIG90aGVyIHRlc3RzCisgICAgICAgIHdoaWNoIHZhcnkgZGVwZW5kaW5n
IG9uIHNtYXJ0IHJlcGxhY2Ugc3VwcG9ydC4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lw
cGVkOiBVbnNraXAgdGVzdHMgd2hpY2ggYXJlIG5vdyBwYXNzaW5nLgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDQt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQv
NDk0NDc3MC0yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvZWRpdGluZy9w
YXN0ZWJvYXJkL2RyYWctZHJvcC1tb2RpZmllcy1wYWdlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwNy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1w
YXN0ZS0wMDgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9lZGl0aW5nL3Bh
c3RlYm9hcmQvc3ViZnJhbWUtZHJhZ25kcm9wLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9mYXN0L2xpc3RzL2RyYWctaW50by1tYXJrZXItZXhwZWN0ZWQudHh0OgorCiAy
MDExLTA2LTAzICBNYXJjdXMgQnVsYWNoICA8YnVsYWNoQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBVbnJldmlld2VkIHJlYmFzZWxpbmUuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCmluZGV4IDZhYjc4MTE3NTkxNjBhYjFiYzg2YjQ2NDA0ZDdjYzAwNWQ4MTZhYmUuLmVjNDEw
Zjk0NWFhNThjNmUyM2I2Yzc1NzIxMGMxZjcwYzMzNjE5ZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCkBAIC00MDIsMTEgKzQwMiw2IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRX
b3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWwKICMgR1RLIGRvZXNuJ3Qgc3VwcG9ydCBzbWFydCBy
ZXBsYWNlCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTY2MQog
ZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LWRyYWctZHJvcC5odG1sCi1lZGl0aW5nL3Bhc3RlYm9h
cmQvc21hcnQtcGFzdGUtMDAxLmh0bWwKLWVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0w
MDIuaHRtbAotZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwMy5odG1sCi1lZGl0aW5n
L3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA0Lmh0bWwKLWVkaXRpbmcvcGFzdGVib2FyZC9zbWFy
dC1wYXN0ZS0wMDUuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZHJvcC1saXN0Lmh0bWwK
IAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZGVsZXRlLTAwMy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDAz
LWV4cGVjdGVkLnR4dAppbmRleCA5NmFjOTA5NjdhYTRhMDBhNDQ2M2Y2Yjg3OGZkZWIxZWE3ZDIy
NDg3Li4wZGQ2ZTFmZDgyZDE4Njg1YWFhM2MzNDU3MTY4Njk1MTk1NjA3NDQwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUt
MDAzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9k
ZWxldGluZy9zbWFydC1kZWxldGUtMDAzLWV4cGVjdGVkLnR4dApAQCAtNiw2ICs2LDcgQEAgRURJ
VElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDUg
b2YgI3RleHQgPiBESVYgPiBCT0QKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBE
RUxFR0FURTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50CiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0
aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdB
VEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAzIG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMyBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9u
QWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRF
OiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3Rp
ZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmlld0RpZENo
YW5nZU5vdGlmaWNhdGlvbgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCkBAIC0yMCw4ICsy
MSw4IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIHRleHQgcnVuIGF0
ICg3NDAsMCkgd2lkdGggMjg6ICJZb3UiCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTkpIHdp
ZHRoIDEyNzogInNob3VsZCBzZWUgJ2ZvbyBiYXonLiIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDU0KSBzaXplIDc4NHgxOQotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAyNXgxOQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDI1OiAiZm9v
ICIKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyNSwwKSBzaXplIDI2eDE5Ci0gICAg
ICAgICAgdGV4dCBydW4gYXQgKDI1LDApIHdpZHRoIDI2OiAiIGJheiIKLWNhcmV0OiBwb3NpdGlv
biA0IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAyIHtESVZ9IG9mIGJvZHkKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjF4MTkKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCAyMTogImZvbyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgyMSwwKSBzaXplIDI2eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDIxLDApIHdpZHRoIDI2
OiAiIGJheiIKK2NhcmV0OiBwb3NpdGlvbiAzIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAy
IHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0
aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZGVsZXRlLTAwNC1leHBlY3RlZC50
eHQKaW5kZXggNzY1ZDNiNzZjYzc1NjgyZjNiYWIzNjI5NjVmNTc5Njc2NzZhY2Q5OS4uM2Q4YTkx
YjdmOWRjOGI4NjNkZjM5YzY4ODRlYzkwM2NkM2MzMWQ1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZGVsZXRlLTAwNC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvZGVsZXRpbmcvc21h
cnQtZGVsZXRlLTAwNC1leHBlY3RlZC50eHQKQEAgLTYsNiArNiw3IEBAIEVESVRJTkcgREVMRUdB
VEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA1IG9mICN0ZXh0ID4g
RElWID4gQk9ECiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHNo
b3VsZERlbGV0ZURPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDEgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudAogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRD
aGFuZ2VTZWxlY3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMyBvZiAj
dGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDMgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93
bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0Rp
ZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBF
RElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmlj
YXRpb24KIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMApAQCAtMjAsOCArMjEsOCBAQCBsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOSkgd2lk
dGggNDU6ICJkZWxldGUuICIKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNDUsMTkpIHdpZHRoIDE1
OTogIllvdSBzaG91bGQgc2VlICdmb28gYmF6Jy4iCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCw1NCkgc2l6ZSA3ODR4MTkKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMjV4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyNTogImZvbyAi
Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjUsMCkgc2l6ZSAyNngxOQotICAgICAg
ICAgIHRleHQgcnVuIGF0ICgyNSwwKSB3aWR0aCAyNjogIiBiYXoiCi1jYXJldDogcG9zaXRpb24g
NCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxeDE5CisgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggMjE6ICJmb28iCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MjEsMCkgc2l6ZSAyNngxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgyMSwwKSB3aWR0aCAyNjog
IiBiYXoiCitjYXJldDogcG9zaXRpb24gMyBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMiB7
RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGlu
Zy9wYXN0ZWJvYXJkLzQ5NDQ3NzAtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkLzQ5NDQ3NzAtMi1leHBlY3RlZC50eHQKaW5kZXggYmE4
YTJlY2YyNGUzMDkxNjJkNjQ2M2JiMzEzMGU4Y2NmYTk0ZGUwOC4uNWY5ZGQ2NWI0YzNiZjBjYjk5
NGMzZmViMWY1NjU0ODBkOWJiM2ExZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2VkaXRpbmcvcGFzdGVib2FyZC80OTQ0NzcwLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvNDk0NDc3MC0yLWV4cGVjdGVk
LnR4dApAQCAtMTYsMTAgKzE2LDE0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsODUpIHNpemUgNzg0eDMxCiAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCw2KSBzaXplIDh4MTkKICAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCw2KSB3aWR0aCA4OiAieCIKLSAgICAgICAgUmVuZGVyTWVudUxpc3Qge1NFTEVDVH0gYXQgKDEw
LDIpIHNpemUgMzd4MjcgW2JnY29sb3I9I0ZGRkZGRl0gW2JvcmRlcjogKDFweCBzb2xpZCAjMDAw
MDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg4LDYpIHNpemUgNHgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICg4LDYpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJNZW51
TGlzdCB7U0VMRUNUfSBhdCAoMTQsMikgc2l6ZSAzN3gyNyBbYmdjb2xvcj0jRkZGRkZGXSBbYm9y
ZGVyOiAoMXB4IHNvbGlkICMwMDAwMDApXQogICAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1v
dXMpIGF0ICgxLDEpIHNpemUgMzV4MjUKICAgICAgICAgICAgIFJlbmRlclRleHQgYXQgKDMsMykg
c2l6ZSA5eDE5CiAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgzLDMpIHdpZHRoIDk6ICIxIgot
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQ5LDYpIHNpemUgOHgxOQotICAgICAgICAg
IHRleHQgcnVuIGF0ICg0OSw2KSB3aWR0aCA4OiAieCIKLWNhcmV0OiBwb3NpdGlvbiAzIG9mIGNo
aWxkIDEge1NFTEVDVH0gb2YgY2hpbGQgNCB7RElWfSBvZiBib2R5CisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoNTMsNikgc2l6ZSA0eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDUz
LDYpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDU3LDYpIHNp
emUgOHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICg1Nyw2KSB3aWR0aCA4OiAieCIKK2NhcmV0
OiBwb3NpdGlvbiAxIG9mIGNoaWxkIDMgeyN0ZXh0fSBvZiBjaGlsZCA0IHtESVZ9IG9mIGJvZHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQv
ZHJhZy1kcm9wLW1vZGlmaWVzLXBhZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWRyb3AtbW9kaWZpZXMtcGFnZS1leHBlY3Rl
ZC50eHQKaW5kZXggMjNlY2VjZTc1NGI1OGMxOTI0ZGFhNWNkZDFjYWQ1ZTdhYmVlMDIzYy4uNDk5
NGMzMWNmOTdiZWM1OTkyOWNmOGY5ZDgzOTc5Njg1NTQwZDliOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWRyb3AtbW9kaWZpZXMt
cGFnZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcv
cGFzdGVib2FyZC9kcmFnLWRyb3AtbW9kaWZpZXMtcGFnZS1leHBlY3RlZC50eHQKQEAgLTE3LDkg
KzE3LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNzE5OiAiVGhpcyB0ZXN0cyBub24tc21hcnRtb3ZlIGRyYWcvZHJvcC4g
VGhlIHNwYWNlIHNob3VsZCBiZSBkZWxldGVkIG9uIG1vdmUsIGJ1dCBub3QgcmVpbnNlcnRlZCBv
biBkcm9wLCByZXN1bHRpbmcgaW4iCiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTkpIHdpZHRo
IDg2OiAiXCJ3b3JsZGhlbGxvXCIuIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTQp
IHNpemUgNzg0eDE5Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQx
eDE5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDE6ICIgd29ybGQiCi0gICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNDEsMCkgc2l6ZSAzMXgxOQotICAgICAgICAgIHRl
eHQgcnVuIGF0ICg0MSwwKSB3aWR0aCAzMTogImhlbGxvIgorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAzN3gxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDM3OiAid29ybGQiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzcsMCkgc2l6
ZSAzMXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgzNywwKSB3aWR0aCAzMTogImhlbGxvIgog
c2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDEgeyN0ZXh0fSBvZiBjaGlsZCAz
IHtESVZ9IG9mIGJvZHkKIHNlbGVjdGlvbiBlbmQ6ICAgcG9zaXRpb24gNSBvZiBjaGlsZCAxIHsj
dGV4dH0gb2YgY2hpbGQgMyB7RElWfSBvZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwNy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBh
c3RlLTAwNy1leHBlY3RlZC50eHQKaW5kZXggYjQ3ODJkNGU2MmYzZTY4MDUwZjgzNTgzNjI1NGFi
ZDQ5M2I2YjQ0NS4uMTNlY2Y4Y2E2Y2QxOTkxYzUwMDZhY2E4NGQ3ZGRiY2Y4ZGI2OTliZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFy
dC1wYXN0ZS0wMDctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9l
ZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA3LWV4cGVjdGVkLnR4dApAQCAtMjAsNyAr
MjAsNyBAQCBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpbwogRURJVElORyBERUxFR0FURTogc2hvdWxk
SW5zZXJ0Tm9kZTojZG9jdW1lbnQtZnJhZ21lbnQgcmVwbGFjaW5nRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAxIG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMSBv
ZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGdpdmVuQWN0aW9u
OldlYlZpZXdJbnNlcnRBY3Rpb25QYXN0ZWQKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJ
VElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdl
U2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxl
Y3RlZERPTVJhbmdlOihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJ
ViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5
RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxk
Q2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDUgb2Yg
I3RleHQgPiBESVYgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0
ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rp
b25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlk
Q2hhbmdlTm90aWZpY2F0aW9uCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKQEAgLTQ5LDkg
KzQ5LDkgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDMyIFtib3JkZXI6ICgycHggc29saWQgI0ZGMDAwMCld
CiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyLDIpIHNpemUgNngyOAogICAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDIsMikgd2lkdGggNjogIi4iCi0gICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICg4LDIpIHNpemUgMzR4MjgKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICg4
LDIpIHdpZHRoIDM0OiAidGVzdCIKLSAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDQy
LDIpIHNpemUgNngyOAotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQyLDIpIHdpZHRoIDY6ICIu
IgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoOCwyKSBzaXplIDQweDI4CisgICAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoOCwyKSB3aWR0aCA0MDogIiB0ZXN0IgorICAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoNDgsMikgc2l6ZSA2eDI4CisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoNDgsMikgd2lkdGggNjogIi4iCiAgICAgICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMp
IGF0ICgwLDMyKSBzaXplIDc4NHgwCi1jYXJldDogcG9zaXRpb24gNCBvZiBjaGlsZCAxIHsjdGV4
dH0gb2YgY2hpbGQgMSB7RElWfSBvZiBjaGlsZCAzIHtESVZ9IG9mIGJvZHkKK2NhcmV0OiBwb3Np
dGlvbiA1IG9mIGNoaWxkIDEgeyN0ZXh0fSBvZiBjaGlsZCAxIHtESVZ9IG9mIGNoaWxkIDMge0RJ
Vn0gb2YgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcv
cGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDgtZXhwZWN0ZWQudHh0
CmluZGV4IDRjOTEwYzI1MGQxYzYyYjRlNTQ0OGMxZDQ5NDNmNjdlM2I0NGM4OGUuLjdkOGFmZGY5
ZWVjYjFkZWJhZjczOWI0NTJlYzk1M2I2N2RhNmYwNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA4LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL3Nt
YXJ0LXBhc3RlLTAwOC1leHBlY3RlZC50eHQKQEAgLTksNyArOSw3IEBAIEVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvCiBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRJbnNlcnROb2RlOiNkb2N1bWVudC1m
cmFnbWVudCByZXBsYWNpbmdET01SYW5nZTpyYW5nZSBmcm9tIDEgb2YgI3RleHQgPiBESVYgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxIG9mICN0ZXh0ID4gRElWID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgZ2l2ZW5BY3Rpb246V2ViVmlld0luc2VydEFjdGlvblBh
c3RlZAogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3
RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24K
LUVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRv
RE9NUmFuZ2U6cmFuZ2UgZnJvbSAzIG9mICN0ZXh0ID4gRElWID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gMyBvZiAjdGV4dCA+IERJViA+IERJViA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0
aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdl
OihudWxsKSB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBz
dGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCiBFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24KIGxh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMApAQCAtMzEsOSArMzEsOSBAQCBsYXllciBhdCAoMCww
KSBzaXplIDgwMHg2MDAKICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA3
ODR4MTkKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA1eDE5CiAg
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA1OiAiZiIKLSAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDUsMCkgc2l6ZSAyMXgxOQotICAgICAgICAgICAgdGV4dCBydW4g
YXQgKDUsMCkgd2lkdGggMjE6ICJmb28iCi0gICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgyNiwwKSBzaXplIDI0eDE5Ci0gICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjYsMCkgd2lkdGgg
MjQ6ICIgYmFyIgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoNSwwKSBzaXplIDI1
eDE5CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNSwwKSB3aWR0aCAyNTogIiBmb28iCisgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzMCwwKSBzaXplIDI0eDE5CisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMzAsMCkgd2lkdGggMjQ6ICIgYmFyIgogICAgICAgICBSZW5kZXJCbG9j
ayAoYW5vbnltb3VzKSBhdCAoMCwxOSkgc2l6ZSA3ODR4MAotY2FyZXQ6IHBvc2l0aW9uIDMgb2Yg
Y2hpbGQgMSB7I3RleHR9IG9mIGNoaWxkIDAge0RJVn0gb2YgY2hpbGQgNCB7RElWfSBvZiBib2R5
CitjYXJldDogcG9zaXRpb24gNCBvZiBjaGlsZCAxIHsjdGV4dH0gb2YgY2hpbGQgMCB7RElWfSBv
ZiBjaGlsZCA0IHtESVZ9IG9mIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvc3ViZnJhbWUtZHJhZ25kcm9wLTEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9zdWJmcmFtZS1k
cmFnbmRyb3AtMS1leHBlY3RlZC50eHQKaW5kZXggMDJlZjU4MTMxYmQxYzA2MzA3OWQwMDFhZjI2
ZGI4NDNiMmZlM2M1OC4uZWQwMzA5NDFhYjE5NWM5NWZiZjZmNTU2MzczMzU3YzU4ODJhNjBkZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9z
dWJmcmFtZS1kcmFnbmRyb3AtMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9zdWJmcmFtZS1kcmFnbmRyb3AtMS1leHBlY3RlZC50
eHQKQEAgLTEwLDggKzEwLDcgQEAgRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRET01SYW5nZTpyYW5nZSBmcm9tIDYgb2YgI3RleHQgPiBCT0RZID4gSFQKIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogc2hvdWxkSW5zZXJ0Tm9kZTojZG9jdW1l
bnQtZnJhZ21lbnQgcmVwbGFjaW5nRE9NUmFuZ2U6cmFuZ2UgZnJvbSAxMSBvZiAjdGV4dCA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDExIG9mICN0ZXh0ID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgZ2l2ZW5BY3Rpb246V2ViVmlld0luc2VydEFjdGlvbkRyb3BwZWQKIEVESVRJTkcgREVM
RUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlv
bjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRF
OiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiAjdGV4dCA+IEJPRFkgPiBIVE1MID4gI2Rv
Y3VtZW50IHRvIDMgb2YgI3RleHQgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpO
U1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElO
RyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToobnVsbCkgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9m
ICN0ZXh0ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZp
bml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZTpXZWJWaWV3RGlkQ2hhbmdl
Tm90aWZpY2F0aW9uCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKQEAgLTI2LDEwICsyNSwx
MCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDMwMHgzMDAKICAgICAgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBz
aXplIDMwMHgzMDAKICAgICAgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSAyODR4Mjg0IFtiZ2NvbG9yPSNGRkZGRTBdCi0gICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNTF4MTkKLSAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDUxOiAiZm9vICBiYXoiCi0gICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICg1MSwwKSBzaXplIDIweDE5Ci0gICAgICAgICAgICAgICAgICB0ZXh0IHJ1biBh
dCAoNTEsMCkgd2lkdGggMjA6ICJiYXIiCisgICAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNDd4MTkKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDQ3OiAiZm9vIGJheiIKKyAgICAgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDQ3LDApIHNpemUgMjB4MTkKKyAgICAgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICg0
NywwKSB3aWR0aCAyMDogImJhciIKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMzIwKSBzaXplIDgwMHgzOAog
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3OTV4MzgKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2xpc3RzL2RyYWctaW50by1tYXJrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbGlzdHMvZHJhZy1p
bnRvLW1hcmtlci1leHBlY3RlZC50eHQKaW5kZXggYzMzZmY2YTE5YmRiMzA5MmYxZmYzMTc0OWYy
N2I4NmRkZWI0MTk3YS4uODE0NDMwN2RkNTE5ZGNhNGYwMGZkYWVkMzQ4MGJiY2VjMzM1ZGMwZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3QvbGlzdHMvZHJhZy1pbnRv
LW1hcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Zhc3Qv
bGlzdHMvZHJhZy1pbnRvLW1hcmtlci1leHBlY3RlZC50eHQKQEAgLTgsOSArOCw4IEBAIGxheWVy
IGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgIFJlbmRlckxpc3RNYXJrZXIgYXQgKC0z
NiwwKSBzaXplIDE2eDU0OiBibGFjayBzcXVhcmUKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAxMTJ4NTQKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDExMjogIndvcmxkIgotICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTEyLDAp
IHNpemUgMTA3eDU0CisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMTIsMCkgc2l6
ZSA5NXg1NAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDExMiwwKSB3aWR0aCA5NTogImhlbGxv
IgotICAgICAgICAgICAgdGV4dCBydW4gYXQgKDIwNywwKSB3aWR0aCAxMjogIiAiCiAgICAgICBS
ZW5kZXJCbG9jayB7UH0gYXQgKDAsNzMpIHNpemUgNzg0eDc2CiAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDc2OHg3NgogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDU2MjogIlRoaXMgaXMgYW4gYXV0b21hdGVkIHRlc3QgZm9yIGVsZW1lbnRBdFBvaW50
IGZvciBwb2ludHMgb3ZlciBwb3NpdGlvbjpvdXRzaWRlIGxpc3QgbWFya2Vycy4gIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDcxZjc4MjY0MTU4NzM5NWFmNDYzOWIxZmI2YmY4MjlhMDBlMTNhYjkuLmM1M2U0NTZh
ZDdmNDVlMWZiZWZlODI1NTY3YmFjNGQzNzNjZjk5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OCBAQAorMjAxMS0wNS0zMSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10g
U3VwcG9ydCBzbWFydCByZXBsYWNlIGZvciB0aGUgcGFzdGVib2FyZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MzQKKworICAgICAgICBBZGQgc21h
cnQgcmVwbGFjZSBzdXBwb3J0IHRvIFdlYkNvcmUgYW5kIGFkZCBob29rcyBmb3IgaXQgaW4gV2Vi
S2l0CisgICAgICAgIHZpYSBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuIFdoZW4gYSBwbGF0Zm9y
bSBzdXBwb3J0cyBzbWFydCByZXBsYWNlLAorICAgICAgICBXZWJDb3JlIHdpbGwgcmVtb3ZlIGV4
dHJhIHNwYWNlcyB0aGF0IGFwcGVhciB3aGVuIHBhc3RpbmcgdGV4dC4gRXZlbnR1YWxseQorICAg
ICAgICBXZWJLaXRHVEsrIG1heSB3YW50IHRvIGV4cG9zZSB0aGlzIGluIHRoZSBwdWJsaWMgQVBJ
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24pOiBOb3cgcGFzcyB3aGV0aGVyIG9y
IG5vdCB0byB1c2Ugc21hcnQgcmVwbGFjZQorICAgICAgICB3aGVuIGNhbGxpbmcgd3JpdGVTZWxl
Y3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UpOiBB
ZGRlZCBhbiBpbXBsZW1lbnRhdGlvbiB0aGF0IGNoZWNrcyB0aGUgY2xpcGJvYXJkCisgICAgICAg
IGZvciB3aGV0aGVyIG9yIG5vdCBpdCBzdXBwb3J0cyBzbWFydCBwYXN0ZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbml0
R2RrQXRvbXMpOiBBZGRlZCBpbml0aWFsaXphdGlvbiBmb3Igc21hcnQgcmVwbGFjZSBhdG9tLgor
ICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZEhlbHBlcjo6ZmlsbFNlbGVjdGlvbkRhdGEpOiBB
ZGRlZCBuby1vcCBoYW5kbGVyIGZvciBzbWFydCByZXBsYWNlIGF0b20uCisgICAgICAgIChXZWJD
b3JlOjpQYXN0ZWJvYXJkSGVscGVyOjp0YXJnZXRMaXN0Rm9yRGF0YU9iamVjdCk6IFByb3Blcmx5
IGhhbmRsZSBuZXcgc21hcnQgcmVwbGFjZSBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkSGVscGVyOjp3cml0ZUNsaXBib2FyZENvbnRlbnRzKTogUHJvcGVybHkgaGFuZGxl
IG5ldyBzbWFydCByZXBsYWNlIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmRIZWxwZXI6OmNsaXBib2FyZENvbnRlbnRTdXBwb3J0c1NtYXJ0UmVwbGFjZSk6IEFkZGVkIGhl
bHBlciBmb3IgUGFzdGVib2FyZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhl
bHBlci5oOiBBZGQgbmV3IG1ldGhvZCBkZWZpbml0aW9uLgorCiAyMDExLTA2LTAzICBIYW5zIFdl
bm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU3RldmUg
QmxvY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2Fy
ZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAK
aW5kZXggZmE0YWY5MDU3ODdjNzM2ZGQwMzFhN2Q0MmJiNTk2ZWM4NTBmY2JkNy4uNWY2NjIxMjIy
MGMxMWVmM2QxNzgyMGJiYzIxNmEzNWVmZGEzMjkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApAQCAtNjEsNyArNjEsOCBAQCB2b2lkIFBhc3Rl
Ym9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0
Q29weU9yRGVsZXRlLAogICAgIERhdGFPYmplY3RHdGsqIGRhdGFPYmplY3QgPSBEYXRhT2JqZWN0
R3RrOjpmb3JDbGlwYm9hcmQoY2xpcGJvYXJkKTsKICAgICBkYXRhT2JqZWN0LT5zZXRUZXh0KGZy
YW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCkpOwogICAgIGRhdGFPYmplY3QtPnNldE1hcmt1
cChjcmVhdGVNYXJrdXAoc2VsZWN0ZWRSYW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwg
ZmFsc2UsIEFic29sdXRlVVJMcykpOwotICAgIGhlbHBlci0+d3JpdGVDbGlwYm9hcmRDb250ZW50
cyhjbGlwYm9hcmQpOworICAgIGhlbHBlci0+d3JpdGVDbGlwYm9hcmRDb250ZW50cyhjbGlwYm9h
cmQsIGNhblNtYXJ0Q29weU9yRGVsZXRlID8gUGFzdGVib2FyZEhlbHBlcjo6SW5jbHVkZVNtYXJ0
UGFzdGUgOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6RG9Ob3RJbmNsdWRlU21hcnRQ
YXN0ZSk7CiB9CiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5n
JiB0ZXh0KQpAQCAtMTQyLDggKzE0Myw4IEBAIHZvaWQgUGFzdGVib2FyZDo6Y2xlYXIoKQogCiBi
b29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1
bHRQYXN0ZWJvYXJkSGVscGVyKCktPmNsaXBib2FyZENvbnRlbnRTdXBwb3J0c1NtYXJ0UmVwbGFj
ZSgKKyAgICAgICAgZ3RrX2NsaXBib2FyZF9nZXRfZm9yX2Rpc3BsYXkoZ2RrX2Rpc3BsYXlfZ2V0
X2RlZmF1bHQoKSwgR0RLX1NFTEVDVElPTl9DTElQQk9BUkQpKTsKIH0KIAogUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBQYXN0ZWJvYXJkOjpkb2N1bWVudEZyYWdtZW50KEZyYW1lKiBmcmFt
ZSwgUGFzc1JlZlB0cjxSYW5nZT4gY29udGV4dCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVyLmNwcAppbmRleCAzZDBkYjE0NWZhMDM4MjRiOWYwZmIw
NWRmNmE2ZjViYzkxZGE0ZDE4Li4zYmFjNDEyMTk0ZTliNjg3MTk2YTcyOTQ1ZDMyZThjOGUzOTgw
OWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhl
bHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxw
ZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBAIHN0YXRpYyBHZGtBdG9tIHRleHRQbGFpbkF0b207CiBz
dGF0aWMgR2RrQXRvbSBtYXJrdXBBdG9tOwogc3RhdGljIEdka0F0b20gbmV0c2NhcGVVUkxBdG9t
Owogc3RhdGljIEdka0F0b20gdXJpTGlzdEF0b207CitzdGF0aWMgR2RrQXRvbSBzbWFydFBhc3Rl
QXRvbTsKIHN0YXRpYyBTdHJpbmcgZ01hcmt1cFByZWZpeDsKIAogc3RhdGljIHZvaWQgcmVtb3Zl
TWFya3VwUHJlZml4KFN0cmluZyYgbWFya3VwKQpAQCAtNjEsNiArNjIsNyBAQCBzdGF0aWMgdm9p
ZCBpbml0R2RrQXRvbXMoKQogICAgIG1hcmt1cEF0b20gPSBnZGtfYXRvbV9pbnRlcm4oInRleHQv
aHRtbCIsIEZBTFNFKTsKICAgICBuZXRzY2FwZVVSTEF0b20gPSBnZGtfYXRvbV9pbnRlcm4oIl9O
RVRTQ0FQRV9VUkwiLCBGQUxTRSk7CiAgICAgdXJpTGlzdEF0b20gPSBnZGtfYXRvbV9pbnRlcm4o
InRleHQvdXJpLWxpc3QiLCBGQUxTRSk7CisgICAgc21hcnRQYXN0ZUF0b20gPSBnZGtfYXRvbV9p
bnRlcm4oImFwcGxpY2F0aW9uL3ZuZC53ZWJraXRndGsuc21hcnRwYXN0ZSIsIEZBTFNFKTsKICAg
ICBnTWFya3VwUHJlZml4ID0gIjxtZXRhIGh0dHAtZXF1aXY9XCJjb250ZW50LXR5cGVcIiBjb250
ZW50PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI+IjsKIH0KIApAQCAtMTkwLDkgKzE5Miwx
MiBAQCB2b2lkIFBhc3RlYm9hcmRIZWxwZXI6OmZpbGxTZWxlY3Rpb25EYXRhKEd0a1NlbGVjdGlv
bkRhdGEqIHNlbGVjdGlvbkRhdGEsIGd1aW50CiAKICAgICB9IGVsc2UgaWYgKGluZm8gPT0gVGFy
Z2V0VHlwZUltYWdlKQogICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0X3BpeGJ1ZihzZWxl
Y3Rpb25EYXRhLCBkYXRhT2JqZWN0LT5pbWFnZSgpKTsKKworICAgIGVsc2UgaWYgKGluZm8gPT0g
VGFyZ2V0VHlwZVNtYXJ0UGFzdGUpCisgICAgICAgIGd0a19zZWxlY3Rpb25fZGF0YV9zZXRfdGV4
dChzZWxlY3Rpb25EYXRhLCAiIiwgLTEpOwogfQogCi1HdGtUYXJnZXRMaXN0KiBQYXN0ZWJvYXJk
SGVscGVyOjp0YXJnZXRMaXN0Rm9yRGF0YU9iamVjdChEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0
KQorR3RrVGFyZ2V0TGlzdCogUGFzdGVib2FyZEhlbHBlcjo6dGFyZ2V0TGlzdEZvckRhdGFPYmpl
Y3QoRGF0YU9iamVjdEd0ayogZGF0YU9iamVjdCwgU21hcnRQYXN0ZUluY2x1c2lvbiBzaG91bGRJ
bmx1ZGVTbWFydFBhc3RlKQogewogICAgIEd0a1RhcmdldExpc3QqIGxpc3QgPSBndGtfdGFyZ2V0
X2xpc3RfbmV3KDAsIDApOwogCkBAIC0yMTAsNiArMjE1LDkgQEAgR3RrVGFyZ2V0TGlzdCogUGFz
dGVib2FyZEhlbHBlcjo6dGFyZ2V0TGlzdEZvckRhdGFPYmplY3QoRGF0YU9iamVjdEd0ayogZGF0
YU9iamUKICAgICBpZiAoZGF0YU9iamVjdC0+aGFzSW1hZ2UoKSkKICAgICAgICAgZ3RrX3Rhcmdl
dF9saXN0X2FkZF9pbWFnZV90YXJnZXRzKGxpc3QsIFRhcmdldFR5cGVJbWFnZSwgVFJVRSk7CiAK
KyAgICBpZiAoc2hvdWxkSW5sdWRlU21hcnRQYXN0ZSA9PSBJbmNsdWRlU21hcnRQYXN0ZSkKKyAg
ICAgICAgZ3RrX3RhcmdldF9saXN0X2FkZChsaXN0LCBzbWFydFBhc3RlQXRvbSwgMCwgVGFyZ2V0
VHlwZVNtYXJ0UGFzdGUpOworCiAgICAgcmV0dXJuIGxpc3Q7CiB9CiAKQEAgLTI4OSwxMCArMjk3
LDEwIEBAIHN0YXRpYyB2b2lkIGNsZWFyQ2xpcGJvYXJkQ29udGVudHNDYWxsYmFjayhHdGtDbGlw
Ym9hcmQqIGNsaXBib2FyZCwgZ3BvaW50ZXIgZGF0CiAgICAgZ19jbG9zdXJlX3VucmVmKGNhbGxi
YWNrKTsKIH0KIAotdm9pZCBQYXN0ZWJvYXJkSGVscGVyOjp3cml0ZUNsaXBib2FyZENvbnRlbnRz
KEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBHQ2xvc3VyZSogY2FsbGJhY2spCit2b2lkIFBhc3Rl
Ym9hcmRIZWxwZXI6OndyaXRlQ2xpcGJvYXJkQ29udGVudHMoR3RrQ2xpcGJvYXJkKiBjbGlwYm9h
cmQsIFNtYXJ0UGFzdGVJbmNsdXNpb24gaW5jbHVkZVNtYXJ0UGFzdGUsIEdDbG9zdXJlKiBjYWxs
YmFjaykKIHsKICAgICBEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0ID0gRGF0YU9iamVjdEd0azo6
Zm9yQ2xpcGJvYXJkKGNsaXBib2FyZCk7Ci0gICAgR3RrVGFyZ2V0TGlzdCogbGlzdCA9IHRhcmdl
dExpc3RGb3JEYXRhT2JqZWN0KGRhdGFPYmplY3QpOworICAgIEd0a1RhcmdldExpc3QqIGxpc3Qg
PSB0YXJnZXRMaXN0Rm9yRGF0YU9iamVjdChkYXRhT2JqZWN0LCBpbmNsdWRlU21hcnRQYXN0ZSk7
CiAKICAgICBpbnQgbnVtYmVyT2ZUYXJnZXRzOwogICAgIEd0a1RhcmdldEVudHJ5KiB0YWJsZSA9
IGd0a190YXJnZXRfdGFibGVfbmV3X2Zyb21fbGlzdChsaXN0LCAmbnVtYmVyT2ZUYXJnZXRzKTsK
QEAgLTMxNCw1ICszMjIsMTAgQEAgdm9pZCBQYXN0ZWJvYXJkSGVscGVyOjp3cml0ZUNsaXBib2Fy
ZENvbnRlbnRzKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBHQ2xvc3VyZSoKICAgICBndGtfdGFy
Z2V0X2xpc3RfdW5yZWYobGlzdCk7CiB9CiAKK2Jvb2wgUGFzdGVib2FyZEhlbHBlcjo6Y2xpcGJv
YXJkQ29udGVudFN1cHBvcnRzU21hcnRSZXBsYWNlKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkKQor
eworICAgIHJldHVybiBndGtfY2xpcGJvYXJkX3dhaXRfaXNfdGFyZ2V0X2F2YWlsYWJsZShjbGlw
Ym9hcmQsIHNtYXJ0UGFzdGVBdG9tKTsKK30KKwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhlbHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Bhc3RlYm9hcmRIZWxwZXIuaAppbmRleCAzMTYxYzkxOTI4MDBkODI1N2NhMDYw
NWU2OWVmNGU3MTU5MmYzYmE2Li40MjM4ZjgwZGQ4MWZjZTZmNzRmOWVkMjU2NzQxYzQ2YmY4N2Q4
OTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEhl
bHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkSGVscGVy
LmgKQEAgLTQwLDE4ICs0MCwyMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VQcmltYXJ5U2Vs
ZWN0aW9uQ2xpcGJvYXJkKGJvb2wgdXNlUHJpbWFyeSkgeyBtX3VzZVByaW1hcnlTZWxlY3Rpb25D
bGlwYm9hcmQgPSB1c2VQcmltYXJ5OyB9CiAgICAgYm9vbCB1c2VQcmltYXJ5U2VsZWN0aW9uQ2xp
cGJvYXJkKCkgeyByZXR1cm4gbV91c2VQcmltYXJ5U2VsZWN0aW9uQ2xpcGJvYXJkOyB9CiAKKyAg
ICBlbnVtIFNtYXJ0UGFzdGVJbmNsdXNpb24geyBJbmNsdWRlU21hcnRQYXN0ZSwgRG9Ob3RJbmNs
dWRlU21hcnRQYXN0ZSB9OworCiAgICAgR3RrQ2xpcGJvYXJkKiBnZXRDdXJyZW50Q2xpcGJvYXJk
KEZyYW1lKik7CiAgICAgR3RrQ2xpcGJvYXJkKiBnZXRDbGlwYm9hcmQoRnJhbWUqKSBjb25zdDsK
ICAgICBHdGtDbGlwYm9hcmQqIGdldFByaW1hcnlTZWxlY3Rpb25DbGlwYm9hcmQoRnJhbWUqKSBj
b25zdDsKICAgICBHdGtUYXJnZXRMaXN0KiB0YXJnZXRMaXN0KCkgY29uc3Q7Ci0gICAgR3RrVGFy
Z2V0TGlzdCogdGFyZ2V0TGlzdEZvckRhdGFPYmplY3QoRGF0YU9iamVjdEd0ayopOworICAgIEd0
a1RhcmdldExpc3QqIHRhcmdldExpc3RGb3JEYXRhT2JqZWN0KERhdGFPYmplY3RHdGsqLCBTbWFy
dFBhc3RlSW5jbHVzaW9uID0gRG9Ob3RJbmNsdWRlU21hcnRQYXN0ZSk7CiAgICAgdm9pZCBmaWxs
U2VsZWN0aW9uRGF0YShHdGtTZWxlY3Rpb25EYXRhKiwgZ3VpbnQsIERhdGFPYmplY3RHdGsqKTsK
ICAgICB2b2lkIGZpbGxEYXRhT2JqZWN0RnJvbURyb3BEYXRhKEd0a1NlbGVjdGlvbkRhdGEqLCBn
dWludCwgRGF0YU9iamVjdEd0ayopOwogICAgIFZlY3RvcjxHZGtBdG9tPiBkcm9wQXRvbXNGb3JD
b250ZXh0KEd0a1dpZGdldCosIEdka0RyYWdDb250ZXh0Kik7Ci0gICAgdm9pZCB3cml0ZUNsaXBi
b2FyZENvbnRlbnRzKEd0a0NsaXBib2FyZCosIEdDbG9zdXJlKiBjbG9zdXJlID0gMCk7CisgICAg
dm9pZCB3cml0ZUNsaXBib2FyZENvbnRlbnRzKEd0a0NsaXBib2FyZCosIFNtYXJ0UGFzdGVJbmNs
dXNpb24gPSBEb05vdEluY2x1ZGVTbWFydFBhc3RlLCBHQ2xvc3VyZSogPSAwKTsKICAgICB2b2lk
IGdldENsaXBib2FyZENvbnRlbnRzKEd0a0NsaXBib2FyZCopOwogCi0gICAgZW51bSBQYXN0ZWJv
YXJkVGFyZ2V0VHlwZSB7IFRhcmdldFR5cGVNYXJrdXAsIFRhcmdldFR5cGVUZXh0LCBUYXJnZXRU
eXBlSW1hZ2UsIFRhcmdldFR5cGVVUklMaXN0LCBUYXJnZXRUeXBlTmV0c2NhcGVVUkwsIFRhcmdl
dFR5cGVVbmtub3duIH07CisgICAgZW51bSBQYXN0ZWJvYXJkVGFyZ2V0VHlwZSB7IFRhcmdldFR5
cGVNYXJrdXAsIFRhcmdldFR5cGVUZXh0LCBUYXJnZXRUeXBlSW1hZ2UsIFRhcmdldFR5cGVVUklM
aXN0LCBUYXJnZXRUeXBlTmV0c2NhcGVVUkwsIFRhcmdldFR5cGVTbWFydFBhc3RlLCBUYXJnZXRU
eXBlVW5rbm93biB9OworICAgIGJvb2wgY2xpcGJvYXJkQ29udGVudFN1cHBvcnRzU21hcnRSZXBs
YWNlKEd0a0NsaXBib2FyZCopOwogCiBwcml2YXRlOgogICAgIEd0a1RhcmdldExpc3QqIG1fdGFy
Z2V0TGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA1MGVjNzczMWNjYThmNjU3MzM1NDdmNmQ5ODY4
MjE3Nzg1Y2ZmNTNiLi5mNzJkMGRkMDk0ODkzOTVmNjc2NTU1NTlkOTZjMjZkODIzOWUzNTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDUtMzEgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFN1cHBvcnQgc21hcnQgcmVwbGFjZSBmb3IgdGhl
IHBhc3RlYm9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYxNzM0CisKKyAgICAgICAgQWRkIHRoZSBFZGl0b3JDbGllbnQgYW5kIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ayBob29rcyBmb3IgZW5hYmxpbmcKKyAgICAgICAgc21hcnQgcmVwbGFjZSBp
biB0aGUgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudDo6c3RhcnREcmFnKTogdGFyZ2VMaXN0Rm9y
RGF0YU9iamVjdCBub3cgdGFrZXMgYW5vdGhlcgorICAgICAgICBwYXJhbWV0ZXIgZGV0ZXJtaW5p
bmcgd2hldGhlciBvciBub3QgdG8gYWRkIHNtYXJ0IHBhc3RlIHN1cHBvcnQuIEFkZCBpdCBoZXJl
LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6
CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCk6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5oOiBBZGQgbmV3IG1ldGhvZCBkZWZpbml0aW9uLgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6dG9nZ2xlU21hcnRJbnNlcnREZWxldGUpOiBBZGRlZCBpbXBsZW1lbnRhdGlvbi4KKyAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOiBBZGQgbmV3IG1ldGhvZCBk
ZWZpbml0aW9uLgorCiAyMDExLTA2LTAzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDdjMzA0MzM2Yjg4NTUwY2Q2Njg0NTkyZTM3MmUyZjk4
Y2E4Mzg5ZTAuLmY3ZTQ0MDQ5MjhjZWI3OWY2MzE4OWUxNjkwOTA0YTkzMDJjNGNkYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkFuaW1h
dGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkVkaXRvckNsaWVudEd0ay5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudEd0ay5oIgpAQCAtNjA3LDYgKzYwOCwxNCBAQCBib29sIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2VsZWN0ZWRSYW5nZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBpbnQqIHN0
YXJ0LAogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJv
b2wgZW5hYmxlZCkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3
ZWJWaWV3KSk7CisKKyAgICBXZWJLaXQ6OkVkaXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nh
c3Q8V2ViS2l0OjpFZGl0b3JDbGllbnQqPihjb3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7
CisgICAgY2xpZW50LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Cit9CisK
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2lu
KGNvbnN0IGdjaGFyKiBzb3VyY2VPcmlnaW4sIGNvbnN0IGdjaGFyKiBkZXN0aW5hdGlvblByb3Rv
Y29sLCBjb25zdCBnY2hhciogZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25T
dWJkb21haW5zKQogewogICAgIFNlY3VyaXR5T3JpZ2luOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeSgqU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc291cmNlT3JpZ2luKSwg
ZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCmluZGV4IDMzOGJiNDYwZjIwNThmMmY4ODZh
ODY5OTU3M2EwNDJlMGI0YzNjNDEuLjlhZDMwYmU0MDI5OTAwNzBhZTQzYjdjNTEzMDE4YWM4ZTFm
NjVhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCkBAIC0xMDUsNiArMTA1LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIHNldE1pbmltdW1UaW1lckludGVydmFsKFdlYktpdFdlYlZpZXcq
LCBkb3VibGUpOwogICAgIHN0YXRpYyB2b2lkIHJlY3RhbmdsZUZvclNlbGVjdGlvbihXZWJLaXRX
ZWJGcmFtZSosIEdka1JlY3RhbmdsZSopOwogICAgIHN0YXRpYyB2b2lkIHNjYWxlUGFnZUJ5KFdl
YktpdFdlYlZpZXcqLCBmbG9hdCwgZmxvYXQsIGZsb2F0KTsKKyAgICBzdGF0aWMgdm9pZCBzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoV2ViS2l0V2ViVmlldyosIGJvb2wpOwogCiAgICAgLy8g
QWNjZXNzaWJpbGl0eQogICAgIHN0YXRpYyB2b2lkIGluY3JlbWVudEFjY2Vzc2liaWxpdHlWYWx1
ZShBdGtPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuY3BwCmluZGV4IDI1NDg3OWExM2VmYjZkMGFkMmVkMGU3NDJiOTcw
ZjM2OTNmMzVhMTUuLmJhNGNlYTZiNTg1NzVmN2YyMWM3ODlmYWEzMmU5ZjljMzViMzlkOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
R3RrLmNwcApAQCAtMjk1LDcgKzI5NSw3IEBAIHN0YXRpYyB2b2lkIHNldFNlbGVjdGlvblByaW1h
cnlDbGlwYm9hcmRJZk5lZWRlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHZpZXdTZXR0
aW5nQ2xpcGJvYXJkID0gd2ViVmlldzsKICAgICBHQ2xvc3VyZSogY2FsbGJhY2sgPSBnX2NjbG9z
dXJlX25ld19vYmplY3QoR19DQUxMQkFDSyhjb2xsYXBzZVNlbGVjdGlvbiksIEdfT0JKRUNUKHdl
YlZpZXcpKTsKICAgICBnX2Nsb3N1cmVfc2V0X21hcnNoYWwoY2FsbGJhY2ssIGdfY2Nsb3N1cmVf
bWFyc2hhbF9WT0lEX19WT0lEKTsKLSAgICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVi
b2FyZEhlbHBlcigpLT53cml0ZUNsaXBib2FyZENvbnRlbnRzKGNsaXBib2FyZCwgY2FsbGJhY2sp
OworICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRl
Q2xpcGJvYXJkQ29udGVudHMoY2xpcGJvYXJkLCBQYXN0ZWJvYXJkSGVscGVyOjpEb05vdEluY2x1
ZGVTbWFydFBhc3RlLCBjYWxsYmFjayk7CiAgICAgdmlld1NldHRpbmdDbGlwYm9hcmQgPSAwOwog
fQogI2VuZGlmCkBAIC00MjMsMTAgKzQyMywxNCBAQCB2b2lkIEVkaXRvckNsaWVudDo6cGFnZURl
c3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKK3ZvaWQgRWRpdG9yQ2xpZW50OjpzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkID0gZW5hYmxlZDsKK30KKwogYm9vbCBFZGl0b3JDbGllbnQ6OnNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogfQogCiBi
b29sIEVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKQEAg
LTYyNiw2ICs2MzAsNyBAQCBFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCiAgICAgLCBtX3ByZXZlbnROZXh0
Q29tcG9zaXRpb25Db21taXQoZmFsc2UpCiAgICAgLCBtX3RyZWF0Q29udGV4dENvbW1pdEFzS2V5
RXZlbnQoZmFsc2UpCisgICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKIHsK
ICAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IG1fd2ViVmlldy0+cHJpdjsKICAgICBn
X3NpZ25hbF9jb25uZWN0KHByaXYtPmltQ29udGV4dC5nZXQoKSwgImNvbW1pdCIsIEdfQ0FMTEJB
Q0soaW1Db250ZXh0Q29tbWl0dGVkKSwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDc4MGQ3NGYxNTNhOWM4YzE2
ZmZhYmVlYmNlZDZhM2M0NGFiMmViOTIuLmU2ZDBiY2RmZjIyMDMyMGViNjgyNTViODg2Mzk2Y2E4
ZGFmYTg4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5oCkBAIC04MCw2ICs4MCw3IEBAIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1
YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgewogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
RGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKTsKICAgICAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFNob3dEZWxldGVJbnRlcmZhY2UoV2ViQ29yZTo6SFRNTEVsZW1lbnQqKTsKICAgICAgICAgdmly
dHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOworICAgICAgICB2b2lkIHNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICAgICAgdmlydHVhbCBib29sIGlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXND
b250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRv
Z2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CkBAIC0xNDksNiArMTUwLDggQEAgY2xhc3Mg
RWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CiAKICAgICAgICAg
V2ViQ29yZTo6S2V5QmluZGluZ1RyYW5zbGF0b3IgbV9rZXlCaW5kaW5nVHJhbnNsYXRvcjsKICAg
ICAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX3BlbmRpbmdFZGl0b3JDb21tYW5kczsKKworICAg
ICAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogICAgIH07CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MDlkMDIzNmJj
YzU1YTZlOThiYjFkMWYyODIxMTgyMzcxZWU5MTg1Li45ZWU1NmMyMTcyN2Q2NjIwZTRkYjA1Nzk5
ZDM5MjZhNTA5MjU0ZTI3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDUtMzEgIE1hcnRpbiBSb2JpbnNvbiAg
PG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFtHVEtdIFN1cHBvcnQgc21hcnQgcmVwbGFjZSBmb3IgdGhlIHBhc3Rl
Ym9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYx
NzM0CisKKyAgICAgICAgQ2FsbCBpbnRvIHRoZSBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsgaG9v
a3MgdG8gdG9nZ2xlIHNtYXJ0IHJlcGxhY2UuCisgICAgICAgIFRoaXMgaXMgcmVxdWlyZWQgdG8g
cHJvZHVjZSBjb25zaXN0ZW50IHRlc3QgcmVzdWx0cy4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25z
aXN0ZW50VmFsdWVzKTogU2V0IHRoZSBzbWFydCByZXBsYWNlIHNldHRpbmcgdG8gb24gYnkgZGVm
YXVsdC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJH
dGsuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCk6IEFkZGVkIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMKKyAgICAgICAgbWV0
aG9kcyB3aGljaCBjYWxscyBpbnRvIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay4KKwogMjAxMS0w
Ni0wMyAgQ2FyeSBDbGFyayAgPGNhcnljbGFya0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVy
VHJlZS5jcHAKaW5kZXggYTY3MWUxZjQxNWUxOTNhZDliYmUwMjg5Y2I0ZjE1ZDNhZmQzMTViOC4u
NmQ5OGQxOWUwMmUwMTMzMjVhMTk1ODRkYjlhMDM3ZWM5ZWU3OGIyZCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC00NjYsNiArNDY2LDcgQEAgc3Rh
dGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpzZXRMaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKHRydWUpOwogICAg
IHdlYmtpdF9pY29uX2RhdGFiYXNlX3NldF9wYXRoKHdlYmtpdF9nZXRfaWNvbl9kYXRhYmFzZSgp
LCAwKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHdlYlZpZXcsIHRydWUpOwogCiAgICAgaWYgKGF4Q29u
dHJvbGxlcikKICAgICAgICAgYXhDb250cm9sbGVyLT5yZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVy
R3RrLmNwcAppbmRleCBlZTQ0MzY4ODdlMjQ0M2NiYmEyZjFiNDYyYmI5YzY1NWI1NjZiZmYxLi5i
ODcxM2Y0ODg1ZjdiNzllNGEwN2I1NTc5MGViMTQ4ZTU3Nzk0NGYwIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTM2
NSw3ICszNjUsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRXaW5kb3dJc0tleShi
b29sIHdpbmRvd0lzS2V5KQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQogewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
KyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCh3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpLCBmbGFnKTsKIH0KIAog
c3RhdGljIGdib29sZWFuIHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZvaWQqKQo=
</data>
<flag name="review"
          id="89518"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>