<?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>191487</bug_id>
          
          <creation_ts>2018-11-09 14:19:16 -0800</creation_ts>
          <short_desc>Implement a new edit command to change the enclosing list type</short_desc>
          <delta_ts>2018-11-24 10:39:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1477099</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-09 14:19:16 -0800</bug_when>
    <thetext>...to be exposed only as editing SPI on WKWebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477101</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-09 14:23:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/45955922&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477331</commentid>
    <comment_count>2</comment_count>
      <attachid>354484</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-10 17:04:17 -0800</bug_when>
    <thetext>Created attachment 354484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477332</commentid>
    <comment_count>3</comment_count>
      <attachid>354485</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-10 17:05:24 -0800</bug_when>
    <thetext>Created attachment 354485
Remove some debugging code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477361</commentid>
    <comment_count>4</comment_count>
      <attachid>354485</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-11-10 23:09:05 -0800</bug_when>
    <thetext>Comment on attachment 354485
Remove some debugging code.

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

&gt; Source/WebCore/editing/ChangeListTypeCommand.cpp:81
&gt; +    RefPtr&lt;HTMLElement&gt; listToReplace;
&gt; +    auto type = listConversionTypeForSelection(endingSelection(), listToReplace);

Why don&apos;t we make this return both type &amp; RefPtr using one time struct or pair?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEditActions.mm:129
&gt; +    auto webView = webViewForEditActionTestingWithPageNamed(@&quot;editable-nested-lists&quot;);
&gt; +
&gt; +    [webView setPosition:@&quot;one&quot; offset:1];
&gt; +    [webView _changeListType:nil];
&gt; +    EXPECT_TRUE([webView querySelectorExists:@&quot;ol &gt; li#one.item&quot;]);

I think we should add a layout test instead.
In general, we should be writing layout tests over API tests whenever possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477362</commentid>
    <comment_count>5</comment_count>
      <attachid>354485</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-11-10 23:11:49 -0800</bug_when>
    <thetext>Comment on attachment 354485
Remove some debugging code.

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

&gt; Source/WebCore/editing/ChangeListTypeCommand.cpp:43
&gt; +    auto* commonAncestor = Range::commonAncestorContainer(selection.start().containerNode(), selection.end().containerNode());

We should use RefPtr here.

&gt; Source/WebCore/editing/ChangeListTypeCommand.cpp:60
&gt; +    if (auto* frame = document.frame()) {

Ditto.

&gt; Source/WebCore/editing/ChangeListTypeCommand.cpp:73
&gt; +    auto list = ([this] () -&gt; Ref&lt;HTMLElement&gt; {
&gt; +        if (m_type == Type::ConvertToOrderedList)
&gt; +            return HTMLOListElement::create(document());
&gt; +        return HTMLUListElement::create(document());
&gt; +    })();

What&apos;s the point of creating a lambda here and calling it immediately?
Why can&apos;t just do:
RefPtr&lt;HTMLElement&gt; list = m_type == Type::ConvertToOrderedList ? HTMLOListElement::create(document()) : HTMLUListElement::create(document())
Or alternatively,
auto list = document()-&gt;createElement(m_type == Type::ConvertToOrderedList ?  HTMLNames::olTag : HTMLNames::ulTag);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477411</commentid>
    <comment_count>6</comment_count>
      <attachid>354485</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-11 14:24:02 -0800</bug_when>
    <thetext>Comment on attachment 354485
Remove some debugging code.

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

Thanks for the review!

&gt;&gt; Source/WebCore/editing/ChangeListTypeCommand.cpp:43
&gt;&gt; +    auto* commonAncestor = Range::commonAncestorContainer(selection.start().containerNode(), selection.end().containerNode());
&gt; 
&gt; We should use RefPtr here.

Fixed!

&gt;&gt; Source/WebCore/editing/ChangeListTypeCommand.cpp:60
&gt;&gt; +    if (auto* frame = document.frame()) {
&gt; 
&gt; Ditto.

Fixed!

&gt;&gt; Source/WebCore/editing/ChangeListTypeCommand.cpp:73
&gt;&gt; +    })();
&gt; 
&gt; What&apos;s the point of creating a lambda here and calling it immediately?
&gt; Why can&apos;t just do:
&gt; RefPtr&lt;HTMLElement&gt; list = m_type == Type::ConvertToOrderedList ? HTMLOListElement::create(document()) : HTMLUListElement::create(document())
&gt; Or alternatively,
&gt; auto list = document()-&gt;createElement(m_type == Type::ConvertToOrderedList ?  HTMLNames::olTag : HTMLNames::ulTag);

Interestingly, I originally tried to do this:
`RefPtr&lt;HTMLElement&gt; list = m_type == Type::ConvertToOrderedList ? HTMLOListElement::create(document()) : HTMLUListElement::create(document());`

...but that results in an error like this:
In file included from /Volumes/main/Users/whsieh/Build/Debug/DerivedSources/WebCore/unified-sources/UnifiedSource233.cpp:6:
editing/ChangeListTypeCommand.cpp:73:69: error: conditional expression is ambiguous; &apos;Ref&lt;WebCore::HTMLOListElement&gt;&apos; can be converted to &apos;Ref&lt;WebCore::HTMLUListElement&gt;&apos; and vice versa
    RefPtr&lt;HTMLElement&gt; list = m_type == Type::ConvertToOrderedList ? HTMLOListElement::create(document()) : HTMLUListElement::create(document());
                                                                    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
editing/ChangeListTypeCommand.cpp:75:12: error: no viable conversion from returned value of type &apos;RefPtr&lt;WebCore::HTMLElement&gt;&apos; to function return type &apos;Ref&lt;WebCore::HTMLElement&gt;&apos;
    return list;

...and I also avoided the second approach because I felt calling Document::createElement() from within WebCore code was strange, so I settled on using a lambda to upcast Ref&lt;HTMLOListElement&gt; and Ref&lt;HTMLUListElement&gt; to Ref&lt;HTMLElement&gt;.

I&apos;ll replace the lambda here with something like this:

RefPtr&lt;HTMLElement&gt; list;
if (m_type == Type::ConvertToOrderedList)
    list = HTMLOListElement::create(document());
else
    list = HTMLUListElement::create(document());

&gt;&gt; Source/WebCore/editing/ChangeListTypeCommand.cpp:81
&gt;&gt; +    auto type = listConversionTypeForSelection(endingSelection(), listToReplace);
&gt; 
&gt; Why don&apos;t we make this return both type &amp; RefPtr using one time struct or pair?

Sounds good — I&apos;ll use std::pair here to return both.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEditActions.mm:129
&gt;&gt; +    EXPECT_TRUE([webView querySelectorExists:@&quot;ol &gt; li#one.item&quot;]);
&gt; 
&gt; I think we should add a layout test instead.
&gt; In general, we should be writing layout tests over API tests whenever possible.

I generally agree, but in this case, this functionality is only exposed as WebKit SPI.

That being said, I definitely see the value in making this a layout test, so we can use Markup.dump instead of checking for few selectors here and there. I&apos;ll add an Internals hook so that we can invoke this from the test runner, and then convert this API test into a layout test. But since there&apos;s still value in having a test that ensures WebKit SPI is hooked up to the edit command, I&apos;ll keep an API test here, but make it much simpler (so that it just exercises the most basic scenario).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477416</commentid>
    <comment_count>7</comment_count>
      <attachid>354512</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-11 15:54:29 -0800</bug_when>
    <thetext>Created attachment 354512
Patch for EWS (w/ new layout test)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477440</commentid>
    <comment_count>8</comment_count>
      <attachid>354512</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-11 17:39:35 -0800</bug_when>
    <thetext>Comment on attachment 354512
Patch for EWS (w/ new layout test)

Clearing flags on attachment: 354512

Committed r238080: &lt;https://trac.webkit.org/changeset/238080&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1477441</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-11 17:39:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479839</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-11-16 20:37:23 -0800</bug_when>
    <thetext>You forgot to run update-webkit-localizable-strings after this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479846</commentid>
    <comment_count>11</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-16 20:49:41 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #10)
&gt; You forgot to run update-webkit-localizable-strings after this.

Good catch!

It looks like this was fixed in r238332.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481278</commentid>
    <comment_count>12</comment_count>
      <attachid>354512</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-11-24 01:35:27 -0800</bug_when>
    <thetext>Comment on attachment 354512
Patch for EWS (w/ new layout test)

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

&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebEditorClient.mm:656
&gt; +    case EditAction::ConvertToOrderedList: return UI_STRING_KEY_INTERNAL(&quot;Convert to Ordered List&quot;, &quot;Convert to Ordered List (Undo action name)&quot;, &quot;Convert to ordered list action name&quot;);

I *think* the third parameter is supposed to just be &quot;Undo action name&quot;, not specific to this action.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481313</commentid>
    <comment_count>13</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-11-24 10:39:56 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #12)
&gt; Comment on attachment 354512 [details]
&gt; Patch for EWS (w/ new layout test)
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=354512&amp;action=review
&gt; 
&gt; &gt; Source/WebKitLegacy/mac/WebCoreSupport/WebEditorClient.mm:656
&gt; &gt; +    case EditAction::ConvertToOrderedList: return UI_STRING_KEY_INTERNAL(&quot;Convert to Ordered List&quot;, &quot;Convert to Ordered List (Undo action name)&quot;, &quot;Convert to ordered list action name&quot;);
&gt; 
&gt; I *think* the third parameter is supposed to just be &quot;Undo action name&quot;, not
&gt; specific to this action.

↳ https://bugs.webkit.org/show_bug.cgi?id=191945

Also, might as well take this opportunity to update Localizable.strings.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354484</attachid>
            <date>2018-11-10 17:04:17 -0800</date>
            <delta_ts>2018-11-10 17:05:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191487-20181110170417.patch</filename>
            <type>text/plain</type>
            <size>35853</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M5OGIzZGI4NDU0MDBl
MDNiOTYxNjBmYzExOTFkYTEyNjk5NmY1MC4uNmFhNDQ4Yzc1MDU5NWMwN2U5ZmJkZTg3ZGVkNWJj
ZDU5NDk5NTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE4LTExLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBh
IG5ldyBlZGl0IGNvbW1hbmQgdG8gY2hhbmdlIHRoZSBlbmNsb3NpbmcgbGlzdCB0eXBlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0ODcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ1OTU1OTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIG5ldyBlZGl0IGNvbW1hbmQg
dGhhdCBjaGFuZ2VzIHRoZSB0eXBlIG9mIHRoZSBlbmNsb3NpbmcgbGlzdCBlbGVtZW50IGFyb3Vu
ZCB0aGUgc2VsZWN0aW9uIGZyb20KKyAgICAgICAgdW5vcmRlcmVkIHRvIG9yZGVyZWQgbGlzdCBh
bmQgdmljZSB2ZXJzYS4gVGhpcyBuZXcgZWRpdCBjb21tYW5kIGlzIGV4cG9zZWQgb25seSB0byBp
bnRlcm5hbCBXZWJLaXQyIGNsaWVudHMsIHZpYQorICAgICAgICBTUEkgb24gV0tXZWJWaWV3IChg
LV9jaGFuZ2VMaXN0VHlwZTpgKS4KKworICAgICAgICBUaGlzIGlzIGN1cnJlbnRseSBpbnRlbmRl
ZCBmb3IgdXNlIGluIE1haWwgY29tcG9zZSwgYnV0IG1heSBhbHNvIGJlIGFkb3B0ZWQgYnkgbGVn
YWN5IE5vdGVzIGluIHRoZSBmdXR1cmUuIEFzCisgICAgICAgIHN1Y2gsIHRoZSBiZWhhdmlvciBv
ZiB0aGlzIGVkaXRpbmcgY29tbWFuZCBtb3N0bHkgbWF0Y2hlcyBzaGlwcGluZyBiZWhhdmlvciBp
biBNYWlsIGNvbXBvc2UgKHdoaWNoIGlzIGN1cnJlbnRseQorICAgICAgICBpbXBsZW1lbnRlZCBl
bnRpcmVseSBieSBNYWlsKS4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAg
VGVzdDogV0tXZWJWaWV3RWRpdEFjdGlvbnMuQ2hhbmdlTGlzdFR5cGUKKworICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBlZGl0aW5nL0NoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hhbmdlTGlzdFR5cGVDb21tYW5kOjpsaXN0Q29udmVyc2lvblR5cGUp
OgorCisgICAgICAgIEhlbHBlciB0aGF0IHJldHVybnMgYSBwb3RlbnRpYWwgbGlzdCBjb252ZXJz
aW9uIGNvbW1hbmQgdGhhdCBtYXkgYmUgZXhlY3V0ZWQgYXQgdGhlIGdpdmVuIGRvY3VtZW50J3Mg
c2VsZWN0aW9uLAorICAgICAgICBpZiBhbnkgZXhpc3RzLiBXZSBhbHNvIHVzZSBleGlzdGluZyBs
b2dpYyBmcm9tIE1haWwgaGVyZSB0byBkZXRlcm1pbmUgd2hpY2ggbGlzdCB0byBjaGFuZ2UsIGJ5
IHdhbGtpbmcgdXAgdGhlCisgICAgICAgIERPTSBmcm9tIHRoZSBsb3dlc3QgY29tbW9uIGFuY2Vz
dG9yIGNvbnRhaW5lciBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24gdW50aWwgd2UgaGl0IHRoZSBm
aXJzdCBsaXN0IGVsZW1lbnQuCisKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZUxpc3RUeXBlQ29t
bWFuZDo6Y3JlYXRlTmV3TGlzdCk6CisKKyAgICAgICAgSGVscGVyIG1ldGhvZCB0byBjcmVhdGUg
YSBuZXcgbGlzdCBlbGVtZW50IHRvIHJlcGxhY2UgdGhlIGdpdmVuIGxpc3QsIGFuZCB0aGVuIGNs
b25lIGVsZW1lbnQgZGF0YSBmcm9tIHRoZSBnaXZlbgorICAgICAgICBsaXN0IHRvIHRoZSBuZXcg
bGlzdC4gVGhpcyBhZGRyZXNzZXMgYW4gZXhpc3RpbmcgYnVnIGluIE1haWwsIHdoZXJlaW4gY2hh
bmdpbmcgbGlzdCB0eXBlIGZvciBhbiBlbmNsb3NpbmcgbGlzdAorICAgICAgICB3aGljaCBjb250
YWlucyBpbmxpbmUgc3R5bGUgcHJvcGVydGllcyBkcm9wcyB0aGUgaW5saW5lIHN0eWxlcywgYmVj
YXVzZSBleGlzdGluZyBsb2dpYyBpbiBNYWlsIHRoYXQgaW1wbGVtZW50cworICAgICAgICB0aGlz
IGVkaXRpbmcgY29tbWFuZCBvbmx5IGNvcGllcyB0aGUgYGNsYXNzYCBhdHRyaWJ1dGUgb2YgdGhl
IG9sZCBsaXN0IHRvIHRoZSBuZXcgbGlzdC4KKworICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlTGlz
dFR5cGVDb21tYW5kOjpkb0FwcGx5KToKKworICAgICAgICBBcHBseSB0aGUgZWRpdCBjb21tYW5k
IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAgICAgLSAgIEZpbmQgdGhlIGVu
Y2xvc2luZyBsaXN0IGVsZW1lbnQsIGlmIGFueSAoc2VlIGFib3ZlKS4KKyAgICAgICAgLSAgIENy
ZWF0ZSBhIG5ldyBsaXN0IGVsZW1lbnQgb2YgdGhlIG9wcG9zaXRlIHR5cGUgYXMgdGhlIGVuY2xv
c2luZyBsaXN0LCBhbmQgY2xvbmUgb3ZlciBlbGVtZW50IGRhdGEgZnJvbSB0aGUKKyAgICAgICAg
ICAgIGxpc3QgZWxlbWVudCBiZWluZyByZXBsYWNlZC4KKyAgICAgICAgLSAgIEluc2VydCB0aGUg
bmV3IGxpc3QgbmV4dCB0byB0aGUgb3JpZ2luYWwgbGlzdC4KKyAgICAgICAgLSAgIE1vdmUgYWxs
IGNoaWxkcmVuIG9mIHRoZSBvcmlnaW5hbCBsaXN0IHRvIHRoZSBuZXcgbGlzdC4KKyAgICAgICAg
LSAgIFJlbW92ZSB0aGUgb3JpZ2luYWwgbGlzdC4KKyAgICAgICAgLSAgIFNldCB0aGUgc2VsZWN0
aW9uIHRvIHRoZSBlbmQgb2YgdGhlIG5ldyBsaXN0LgorCisgICAgICAgICogZWRpdGluZy9DaGFu
Z2VMaXN0VHlwZUNvbW1hbmQuaDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0QWN0aW9u
Lmg6CisKKyAgICAgICAgQWRkIGEgcGFpciBvZiBuZXcgZWRpdCBhY3Rpb25zIGZvciBjb252ZXJz
aW9uIGZyb20gdW5vcmRlcmVkIGxpc3QgdG8gb3JkZXJlZCBsaXN0IGFuZCB2aWNlIHZlcnNhLgor
CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpjaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSk6CisKKyAgICAgICAgSW1wbGVtZW50IHRoaXMgYnkg
Y3JlYXRpbmcgYW5kIGFwcGx5aW5nIGEgbmV3IENoYW5nZUxpc3RUeXBlQ29tbWFuZC4KKworICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5DaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSk6IERlbGV0
ZWQuCisKKyAgICAgICAgUmVtb3ZlIHRoaXMgZm9yIG5vdywgc2luY2UgdGhlcmUncyBubyBuZWVk
IGZvciBpdCB1bnRpbCBmdWxsIHN1cHBvcnQgZm9yIGVkaXQgY29tbWFuZCB2YWxpZGF0aW9uIGlz
IGltcGxlbWVudGVkLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKwogMjAxOC0xMS0w
OSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29j
b2FdIEltcGxlbWVudCBTUEkgb24gV0tXZWJWaWV3IHRvIGluY3JlYXNlIGFuZCBkZWNyZWFzZSBs
aXN0IGxldmVscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAzYWNmZjM0OGRlYzBlMGZjMzVjMDU1NjdhNWVjMTFiMWVh
ZTU3NjZhLi5kZWMwYTA5YjNhNTBhMzg1NGRkOWI5NzE1ZWVjNjIxNjE3MTU2YTY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTExLTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhIG5ldyBlZGl0IGNvbW1hbmQgdG8g
Y2hhbmdlIHRoZSBlbmNsb3NpbmcgbGlzdCB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0ODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1
OTU1OTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbik6CisKKyAgICAgICAgQWRkIHVu
ZG8vcmVkbyBlZGl0IGFjdGlvbiBzdHJpbmdzIGZvciBDb252ZXJ0VG9PcmRlcmVkTGlzdCBhbmQg
Q29udmVydFRvVW5vcmRlcmVkTGlzdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5jcmVhc2VMaXN0TGV2ZWwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkZWNyZWFzZUxpc3RMZXZlbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNoYW5nZUxpc3RUeXBlKToKKworICAgICAgICBSZW1vdmUgcHJl
ZmxpZ2h0IGNoZWNrcyBmb3IgdGhlc2UgbGlzdCBlZGl0aW5nIGNvbW1hbmRzLiBUaGVzZSBhcmUg
bm90IG5lY2Vzc2FyeSBiZWNhdXNlIHRoZXNlIGNvbW1hbmRzIGZhbGwKKyAgICAgICAgYmFjayB0
byBiZWluZyBub29wcyBpZiB0aGVzZSBjaGVja3MgcmV0dXJuIGZhbHNlLiBUaGlzIGF2b2lkcyBh
biBleHRyYW5lb3VzIGFuY2VzdG9yIHdhbGsgdG8gZGV0ZXJtaW5lIHRoZQorICAgICAgICBlbmNs
b3NpbmcgbGlzdCBlbGVtZW50IHdoZW4gY2hhbmdpbmcgbGlzdCB0eXBlLgorCiAyMDE4LTExLTA5
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2Nv
YV0gSW1wbGVtZW50IFNQSSBvbiBXS1dlYlZpZXcgdG8gaW5jcmVhc2UgYW5kIGRlY3JlYXNlIGxp
c3QgbGV2ZWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggY2NjNTg2ZTE3YWZjNmU2
ODY5MjNiMGYxYzY4ZTc5ZTgzMDRhMzcxMi4uNTRjYWRlYzdjNWRjMTYzOTQ2MjExZTQxNjhhY2Ni
OTUxYjczM2I1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE4LTExLTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisg
ICAgICAgIEltcGxlbWVudCBhIG5ldyBlZGl0IGNvbW1hbmQgdG8gY2hhbmdlIHRoZSBlbmNsb3Np
bmcgbGlzdCB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTE0ODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1OTU1OTIyPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB1bmRvL3JlZG8gZWRp
dCBhY3Rpb24gc3RyaW5ncyBmb3IgQ29udmVydFRvT3JkZXJlZExpc3QgYW5kIENvbnZlcnRUb1Vu
b3JkZXJlZExpc3QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW06CisgICAgICAgICh1bmRvTmFtZUZvckVkaXRBY3Rpb24pOgorCiAyMDE4LTExLTA5ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgT3B0aW9uU2V0IGZv
ciBsYXlvdXQgbWlsZXN0b25lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmODJlNDU2ZmZiNGRjN2RiZDk0
Y2JjZDgzYjFjMTViMjBlZWI4MGUwLi4zNTgyMGE0YzY3NGRmNzRkYWE1Zjk4MGYyZWE0OGJkMzQz
ZDJkMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtODkzLDYgKzg5Myw3IEBAIGVkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKIGVk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1h
bmQuY3BwCitlZGl0aW5nL0NoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHAKIGVkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCiBlZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAogZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkxYjllYzJhMzk1MWI5YmQ4MDlk
NzQ2Nzc1YWEyZmY0OTI3YzUwZWQuLjJlYTQ4ZjEyYTYwY2I0NDNlNzJiYTZlNWVhYTg0M2YwMDc5
MjI0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE0ODg3LDYgKzE0ODg3LDggQEAKIAkJRjQ4RDJBQTQyMTU5NzQwRDAwQzY3
NTJCIC8qIENvbG9yQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb2xvckNvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDk3ODY4NzFGRjQ1RkE1MDBFMDYwQUIg
LyogUGFzdGVib2FyZEl0ZW1JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRJdGVtSW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0M0Q2NDIxODgwMkU2MDBFQ0VD
QUMgLyogU2VyaWFsaXplZEF0dGFjaG1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6
ZWRBdHRhY2htZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEQ5ODE3
RDIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNEQ5ODE3RTIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RURBMjEzRjNGNUYwMDRFQTk4RSAvKiBGb250QXR0cmli
dXRlQ2hhbmdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250QXR0cmlidXRlQ2hhbmdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VERjIxM0Y0MzRBMDA0RUE5OEUgLyogV2Vi
Q29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU5TRm9udE1h
bmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFRTAyMTNG
NDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMDY4Myw2ICsyMDY4NSw4IEBACiAJCQkJOTMzMDlEOEEwOTlFNjQ5
MTAwNTZFNTgxIC8qIEFwcGx5U3R5bGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEIwOTlFNjQ5
MTAwNTZFNTgxIC8qIEJyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDhD
MDk5RTY0OTEwMDU2RTU4MSAvKiBCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmggKi8sCisJCQkJRjRE
OTgxN0UyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHAgKi8sCisJ
CQkJRjREOTgxN0QyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5nZUxpc3RUeXBlQ29tbWFuZC5oICov
LAogCQkJCTdDM0E5MUU1MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3ku
aCAqLywKIAkJCQk5MzMwOUQ4RDA5OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwICovLAogCQkJCTkzMzA5RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0
Q29tbWFuZC5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DaGFuZ2VM
aXN0VHlwZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DaGFuZ2VMaXN0VHlw
ZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NzQ4Y2Q2MDMyOWU4MjVhNmY0YTJkMjA0M2QyMjY1
NWE3MzIyNDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NoYW5n
ZUxpc3RUeXBlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MT0xpc3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTFVMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIHN0
ZDo6b3B0aW9uYWw8Q2hhbmdlTGlzdFR5cGVDb21tYW5kOjpUeXBlPiBsaXN0Q29udmVyc2lvblR5
cGVGb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBSZWZQdHI8
SFRNTEVsZW1lbnQ+JiBvdXRMaXN0VG9SZXBsYWNlKQoreworICAgIG91dExpc3RUb1JlcGxhY2Ug
PSBudWxscHRyOworCisgICAgYXV0byogY29tbW9uQW5jZXN0b3IgPSBSYW5nZTo6Y29tbW9uQW5j
ZXN0b3JDb250YWluZXIoc2VsZWN0aW9uLnN0YXJ0KCkuY29udGFpbmVyTm9kZSgpLCBzZWxlY3Rp
b24uZW5kKCkuY29udGFpbmVyTm9kZSgpKTsKKyAgICBpZiAoaXM8SFRNTFVMaXN0RWxlbWVudD4o
Y29tbW9uQW5jZXN0b3IpIHx8IGlzPEhUTUxPTGlzdEVsZW1lbnQ+KGNvbW1vbkFuY2VzdG9yKSkK
KyAgICAgICAgb3V0TGlzdFRvUmVwbGFjZSA9IGRvd25jYXN0PEhUTUxFbGVtZW50Pihjb21tb25B
bmNlc3Rvcik7CisgICAgZWxzZQorICAgICAgICBvdXRMaXN0VG9SZXBsYWNlID0gZW5jbG9zaW5n
TGlzdChjb21tb25BbmNlc3Rvcik7CisKKyAgICBpZiAoaXM8SFRNTFVMaXN0RWxlbWVudD4ob3V0
TGlzdFRvUmVwbGFjZSkpCisgICAgICAgIHJldHVybiBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQ6OlR5
cGU6OkNvbnZlcnRUb09yZGVyZWRMaXN0OworCisgICAgaWYgKGlzPEhUTUxPTGlzdEVsZW1lbnQ+
KG91dExpc3RUb1JlcGxhY2UpKQorICAgICAgICByZXR1cm4gQ2hhbmdlTGlzdFR5cGVDb21tYW5k
OjpUeXBlOjpDb252ZXJ0VG9Vbm9yZGVyZWRMaXN0OworCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKK30KKworc3RkOjpvcHRpb25hbDxDaGFuZ2VMaXN0VHlwZUNvbW1hbmQ6OlR5cGU+IENoYW5n
ZUxpc3RUeXBlQ29tbWFuZDo6bGlzdENvbnZlcnNpb25UeXBlKERvY3VtZW50JiBkb2N1bWVudCkK
K3sKKyAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CisgICAgICAgIFJl
ZlB0cjxIVE1MRWxlbWVudD4gb3V0RWxlbWVudDsKKyAgICAgICAgcmV0dXJuIGxpc3RDb252ZXJz
aW9uVHlwZUZvclNlbGVjdGlvbihmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCksIG91dEVs
ZW1lbnQpOworICAgIH0KKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitSZWY8SFRNTEVs
ZW1lbnQ+IENoYW5nZUxpc3RUeXBlQ29tbWFuZDo6Y3JlYXRlTmV3TGlzdChjb25zdCBIVE1MRWxl
bWVudCYgbGlzdFRvUmVwbGFjZSkKK3sKKyAgICBhdXRvIGxpc3QgPSAoW3RoaXNdICgpIC0+IFJl
ZjxIVE1MRWxlbWVudD4geworICAgICAgICBpZiAobV90eXBlID09IFR5cGU6OkNvbnZlcnRUb09y
ZGVyZWRMaXN0KQorICAgICAgICAgICAgcmV0dXJuIEhUTUxPTGlzdEVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKTsKKyAgICAgICAgcmV0dXJuIEhUTUxVTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpKTsKKyAgICB9KSgpOworICAgIGxpc3QtPmNsb25lRGF0YUZyb21FbGVtZW50KGxpc3RU
b1JlcGxhY2UpOworICAgIHJldHVybiBsaXN0OworfQorCit2b2lkIENoYW5nZUxpc3RUeXBlQ29t
bWFuZDo6ZG9BcHBseSgpCit7CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBsaXN0VG9SZXBsYWNl
OworICAgIGF1dG8gdHlwZSA9IGxpc3RDb252ZXJzaW9uVHlwZUZvclNlbGVjdGlvbihlbmRpbmdT
ZWxlY3Rpb24oKSwgbGlzdFRvUmVwbGFjZSk7CisgICAgaWYgKCF0eXBlIHx8IHR5cGUudmFsdWUo
KSAhPSBtX3R5cGUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbmV3TGlzdCA9IGNyZWF0
ZU5ld0xpc3QoKmxpc3RUb1JlcGxhY2UpOworICAgIGluc2VydE5vZGVCZWZvcmUobmV3TGlzdC5j
b3B5UmVmKCksICpsaXN0VG9SZXBsYWNlKTsKKyAgICBtb3ZlUmVtYWluaW5nU2libGluZ3NUb05l
d1BhcmVudChsaXN0VG9SZXBsYWNlLT5maXJzdENoaWxkKCksIG51bGxwdHIsIG5ld0xpc3QpOwor
ICAgIHJlbW92ZU5vZGUoKmxpc3RUb1JlcGxhY2UpOworICAgIHNldEVuZGluZ1NlbGVjdGlvbih7
IFBvc2l0aW9uIHsgbmV3TGlzdC5wdHIoKSwgUG9zaXRpb246OlBvc2l0aW9uSXNBZnRlckNoaWxk
cmVuIH19KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg1MjBhMGQ1M2M0
NDg4Y2IzYmI1MGZiYmEyYjhlOWViZjY2ZjRkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmgKQEAgLTAsMCArMSw3MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1h
bmQuaCIKKyNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEhUTUxFbGVtZW50OworY2xh
c3MgVmlzaWJsZVNlbGVjdGlvbjsKKworY2xhc3MgQ2hhbmdlTGlzdFR5cGVDb21tYW5kIGZpbmFs
IDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNz
IFR5cGUgOiB1aW50OF90IHsgQ29udmVydFRvT3JkZXJlZExpc3QsIENvbnZlcnRUb1Vub3JkZXJl
ZExpc3QgfTsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxUeXBlPiBsaXN0Q29udmVyc2lvblR5
cGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPENoYW5nZUxpc3RUeXBlQ29tbWFuZD4gY3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCwgVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ2hhbmdlTGlzdFR5cGVDb21tYW5kKGRvY3VtZW50LCB0eXBlKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIENoYW5nZUxpc3RUeXBlQ29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIFR5cGUgdHlwZSkKKyAgICAgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVu
dCkKKyAgICAgICAgLCBtX3R5cGUodHlwZSkKKyAgICB7CisgICAgfQorCisgICAgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKCkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChtX3R5cGUg
PT0gVHlwZTo6Q29udmVydFRvT3JkZXJlZExpc3QpCisgICAgICAgICAgICByZXR1cm4gRWRpdEFj
dGlvbjo6Q29udmVydFRvT3JkZXJlZExpc3Q7CisKKyAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246
OkNvbnZlcnRUb1Vub3JkZXJlZExpc3Q7CisgICAgfQorCisgICAgYm9vbCBwcmVzZXJ2ZXNUeXBp
bmdTdHlsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGRvQXBwbHko
KSBmaW5hbDsKKworICAgIFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlTmV3TGlzdChjb25zdCBIVE1M
RWxlbWVudCYgbGlzdFRvUmVwbGFjZSk7CisKKyAgICBUeXBlIG1fdHlwZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dEFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKaW5kZXggZTgx
MjI4ODRlYTBhN2YwMTk4MTc5NGRiY2RlZTk3OWI5ZjUwMTVlNi4uZmViNzc4NmU5Yjc3YmUyNWU3
NmVjZjRhMDU1MWIwMjBjZjc3ZmUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0QWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgK
QEAgLTg0LDYgKzg0LDggQEAgZW51bSBjbGFzcyBFZGl0QWN0aW9uIDogdWludDhfdCB7CiAgICAg
Rm9ybWF0QmxvY2ssCiAgICAgSW5zZXJ0T3JkZXJlZExpc3QsCiAgICAgSW5zZXJ0VW5vcmRlcmVk
TGlzdCwKKyAgICBDb252ZXJ0VG9PcmRlcmVkTGlzdCwKKyAgICBDb252ZXJ0VG9Vbm9yZGVyZWRM
aXN0LAogICAgIEluZGVudCwKICAgICBPdXRkZW50CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCmluZGV4IDdjMDY0OWUxYjIyMDUyMjM3ZTdlYTlmOWIxYzQ4ZmYxMTk0NTUzMWQuLmMyZjQ5
ZTZjN2E4NzdmY2ZjOWJjNGQ2MGFlZjViMzQxNDA0Y2QyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkNvbXBvc2l0aW9uRXZlbnQu
aCIKICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFuZC5oIgpAQCAtMTQ3NiwxNSArMTQ3NywxMCBA
QCB2b2lkIEVkaXRvcjo6cGVyZm9ybURlbGV0ZSgpCiAgICAgc2V0U3RhcnROZXdLaWxsUmluZ1Nl
cXVlbmNlKGZhbHNlKTsKIH0KIAotYm9vbCBFZGl0b3I6OmNhbkNoYW5nZVNlbGVjdGlvbkxpc3RU
eXBlKCkKLXsKLSAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQogdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKCkKIHsKLSAgICAv
LyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorICAgIGlmIChhdXRvIHR5cGUgPSBDaGFuZ2VMaXN0
VHlwZUNvbW1hbmQ6Omxpc3RDb252ZXJzaW9uVHlwZShkb2N1bWVudCgpKSkKKyAgICAgICAgQ2hh
bmdlTGlzdFR5cGVDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgKnR5cGUpLT5hcHBseSgpOwog
fQogCiB2b2lkIEVkaXRvcjo6c2ltcGxpZnlNYXJrdXAoTm9kZSogc3RhcnROb2RlLCBOb2RlKiBl
bmROb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggYWQ5ZmMwYjE2MzdmZWZmYWVmYzcz
MmNjMzRhYzUyZjY1MzIxZjZiZC4uMGRkZWE4Mjc5NDIzNDhkNjA4ZGFlYWE2YjJkYWI4OGFhY2U2
NmQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0yMDYsNyArMjA2LDYgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxOb2RlPiBpbmNyZWFzZVNlbGVjdGlvbkxpc3RM
ZXZlbE9yZGVyZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8Tm9kZT4gaW5jcmVhc2VT
ZWxlY3Rpb25MaXN0TGV2ZWxVbm9yZGVyZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
Y3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYW5D
aGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdl
U2VsZWN0aW9uTGlzdFR5cGUoKTsKICAgIAogICAgIHZvaWQgcmVtb3ZlRm9ybWF0dGluZ0FuZFN0
eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFu
ZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHku
Y3BwCmluZGV4IDZmZDhkZjVkMWE2NTUzZmNmMTQ3OGY5NGFiZTI3NDQ2MmI5YjdjNDEuLmNkYjU2
MmY1OTdmY2I4OTk0NzkyMTkwNjFjM2NkYTI4ZDJjNGVhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCkBAIC0xNzEsNiArMTcxLDEyIEBA
IFN0cmluZyBXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbihFZGl0QWN0aW9u
IGVkaXRBY3Rpb24pCiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiSW5kZW50Iiwg
IkluZGVudCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIGNh
c2UgRWRpdEFjdGlvbjo6T3V0ZGVudDoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZ
KCJPdXRkZW50IiwgIk91dGRlbnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGdpdmUgaW50ZXJuYWwgY2xpZW50cyBhIHdh
eSB0byBvdmVycmlkZSB0aGVzZSB1bmRvIG5hbWVzLiBGb3IgaW5zdGFuY2UsIE1haWwgcmVmZXJz
IHRvIG9yZGVyZWQgYW5kIHVub3JkZXJlZCBsaXN0cyBhcyAibnVtYmVyZWQiIGFuZCAiYnVsbGV0
ZWQiIGxpc3RzLCByZXNwZWN0aXZlbHksCisgICAgLy8gZGVzcGl0ZSB0aGUgZmFjdCB0aGF0IG9y
ZGVyZWQgYW5kIHVub3JkZXJlZCBsaXN0cyBhcmUgbm90IG5lY2Vzc2FyaWx5IGRpc3BsYXllZCB1
c2luZyBidWxsZXRzIGFuZCBudW1lcmFscy4KKyAgICBjYXNlIEVkaXRBY3Rpb246OkNvbnZlcnRU
b09yZGVyZWRMaXN0OgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkNvbnZlcnQg
dG8gT3JkZXJlZCBMaXN0IiwgIkNvbnZlcnQgdG8gT3JkZXJlZCBMaXN0IChVbmRvIGFjdGlvbiBu
YW1lKSIsICJDb252ZXJ0IHRvIG9yZGVyZWQgbGlzdCBhY3Rpb24gbmFtZSIpOworICAgIGNhc2Ug
RWRpdEFjdGlvbjo6Q29udmVydFRvVW5vcmRlcmVkTGlzdDoKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkdfS0VZKCJDb252ZXJ0IHRvIFVub3JkZXJlZCBMaXN0IiwgIkNvbnZlcnQgdG8gVW5v
cmRlcmVkIExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIkNvbnZlcnQgdG8gdW5vcmRlcmVkIGxp
c3QgYWN0aW9uIG5hbWUiKTsKICAgICB9CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlN2ZhZTg1YWM4
OTliNTRhMzgxZGZiMmYyZWYzNWM2NDJkNmIyNGJhLi42M2JjYTIyZGE0NTNiNThlODU4YzAyMDll
MzQ5YmY2NjY2Y2Y1ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtMTE1MiwyMyArMTE1MiwxNyBAQCB2b2lkIFdlYlBhZ2U6OnNldEVkaXRh
YmxlKGJvb2wgZWRpdGFibGUpCiAKIHZvaWQgV2ViUGFnZTo6aW5jcmVhc2VMaXN0TGV2ZWwoKQog
ewotICAgIGF1dG8mIGVkaXRvciA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9y
TWFpbkZyYW1lKCkuZWRpdG9yKCk7Ci0gICAgaWYgKGVkaXRvci5jYW5JbmNyZWFzZVNlbGVjdGlv
bkxpc3RMZXZlbCgpKQotICAgICAgICBlZGl0b3IuaW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWwo
KTsKKyAgICBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmVk
aXRvcigpLmluY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
ZGVjcmVhc2VMaXN0TGV2ZWwoKQogewotICAgIGF1dG8mIGVkaXRvciA9IG1fcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZWRpdG9yKCk7Ci0gICAgaWYgKGVkaXRv
ci5jYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbCgpKQotICAgICAgICBlZGl0b3IuZGVjcmVh
c2VTZWxlY3Rpb25MaXN0TGV2ZWwoKTsKKyAgICBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZv
Y3VzZWRPck1haW5GcmFtZSgpLmVkaXRvcigpLmRlY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCk7
CiB9CiAKIHZvaWQgV2ViUGFnZTo6Y2hhbmdlTGlzdFR5cGUoKQogewotICAgIGF1dG8mIGVkaXRv
ciA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZWRpdG9y
KCk7Ci0gICAgaWYgKGVkaXRvci5jYW5DaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpKQotICAgICAg
ICBlZGl0b3IuY2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKKyAgICBtX3BhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmVkaXRvcigpLmNoYW5nZVNlbGVjdGlvbkxp
c3RUeXBlKCk7CiB9CiAKIGJvb2wgV2ViUGFnZTo6aXNFZGl0aW5nQ29tbWFuZEVuYWJsZWQoY29u
c3QgU3RyaW5nJiBjb21tYW5kTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCAzZDZhZmNiMDIw
ODhkY2YzNWViZDlkOWU3NzA1MjI3ODRjNmI4NDBiLi4yZWIyMGIyMzQzMTM2NjFhNmM0NWUwN2Nj
ZmFiMGM4ZWY5ZDIzMDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02NTMsNiArNjUzLDggQEAg
c3RhdGljIE5TU3RyaW5nKiB1bmRvTmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0
aW9uKQogICAgIGNhc2UgRWRpdEFjdGlvbjo6SXRhbGljczogcmV0dXJuIFVJX1NUUklOR19LRVlf
SU5URVJOQUwoIkl0YWxpY3MiLCAiSXRhbGljcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOwogICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlOiByZXR1cm4gVUlfU1RS
SU5HX0tFWV9JTlRFUk5BTCgiRGVsZXRlIiwgIkRlbGV0ZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIGNhc2UgRWRpdEFjdGlvbjo6RGljdGF0aW9uOiByZXR1
cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiRGljdGF0aW9uIiwgIkRpY3RhdGlvbiAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6
Q29udmVydFRvT3JkZXJlZExpc3Q6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDb252
ZXJ0IHRvIE9yZGVyZWQgTGlzdCIsICJDb252ZXJ0IHRvIE9yZGVyZWQgTGlzdCAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiQ29udmVydCB0byBvcmRlcmVkIGxpc3QgYWN0aW9uIG5hbWUiKTsKKyAgICBj
YXNlIEVkaXRBY3Rpb246OkNvbnZlcnRUb1Vub3JkZXJlZExpc3Q6IHJldHVybiBVSV9TVFJJTkdf
S0VZX0lOVEVSTkFMKCJDb252ZXJ0IHRvIFVub3JkZXJlZCBMaXN0IiwgIkNvbnZlcnQgdG8gVW5v
cmRlcmVkIExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIkNvbnZlcnQgdG8gdW5vcmRlcmVkIGxp
c3QgYWN0aW9uIG5hbWUiKTsKICAgICB9CiAgICAgcmV0dXJuIG5pbDsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkM2VlNTMyMjE4M2RkZjQz
ZjhkODFmNWVkNGIwZDc1MDRmOGUzNTUwLi41M2U2YTFkMzIyMTg0N2E1OTkxZmY0NTg1MTIyMzZi
ZGExYTNmZWE0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgtMTEtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGEgbmV3IGVkaXQgY29tbWFuZCB0
byBjaGFuZ2UgdGhlIGVuY2xvc2luZyBsaXN0IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTQ4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NDU5NTU5MjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IC1fY2hhbmdlTGlzdFR5cGU6IGNh
biBiZSB1c2VkIHRvIHN3YXAgYmV0d2VlbiBlbmNsb3Npbmcgb3JkZXJlZCBhbmQgdW5vcmRlcmVk
CisgICAgICAgIGxpc3RzLiBBbHNvIGV4ZXJjaXNlcyB1bmRvLCByZWRvLCBjaGFuZ2luZyBsaXN0
IHR5cGVzIHVuZGVyIGBwcmVgIGFuZCBgdGFibGVgIGVsZW1lbnRzLCBhbmQgaGFuZGxpbmcgc2Vs
ZWN0aW9uCisgICAgICAgIHdpdGhpbiBuZXN0ZWQgbGlzdCBlbGVtZW50cy4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFj
dGlvbnMubW06CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgc2V0UG9zaXRpb246b2Zmc2V0Ol0p
OgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHNldEJhc2U6YmFzZU9mZnNldDpleHRlbnQ6ZXh0
ZW50T2Zmc2V0Ol0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2ViVmlld0ZvckVkaXRBY3Rp
b25UZXN0aW5nV2l0aFBhZ2VOYW1lZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2VkaXRhYmxlLW5lc3Rl
ZC1saXN0cy5odG1sOiBBZGRlZC4KKwogMjAxOC0xMS0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEltcGxlbWVudCBTUEkgb24gV0tX
ZWJWaWV3IHRvIGluY3JlYXNlIGFuZCBkZWNyZWFzZSBsaXN0IGxldmVscwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBkNWE4Y2FhOGYzNmRkZjNiZmM5NzllNDBmNjI0YmIwNzlmOTYwZmFhLi40
YjM4OTRhOWY3OWVkNDg4M2Y4NmM0ZTc2NWY4OTc3NjQ3YzgzNGI1IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtODY2LDYgKzg2Niw3IEBACiAJCUY0RDRGM0I5MUU0RTM2RTQwMEJCMjc2NyAv
KiBEcmFnQW5kRHJvcFRlc3RzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVz
dHNJT1MubW0gKi87IH07CiAJCUY0RDVFNEU4MUYwQzVEMzgwMDhDMUE0OSAvKiBkcmFnc3RhcnQt
Y2xlYXItc2VsZWN0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjRENUU0RTcxRjBDNUQyNzAwOEMxQTQ5IC8qIGRyYWdzdGFydC1j
bGVhci1zZWxlY3Rpb24uaHRtbCAqLzsgfTsKIAkJRjRENjVEQTgxRjVFNDcwNDAwOUQ4QzI3IC8q
IHNlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ2NURBNzFGNUU0NkMw
MDA5RDhDMjcgLyogc2VsZWN0ZWQtdGV4dC1pbWFnZS1saW5rLWFuZC1lZGl0YWJsZS5odG1sICov
OyB9OworCQlGNEQ5ODE4RjIxOTZCOTIwMDA4MjMwRkMgLyogZWRpdGFibGUtbmVzdGVkLWxpc3Rz
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjREOTgxOEUyMTk2QjkxMTAwODIzMEZDIC8qIGVkaXRhYmxlLW5lc3RlZC1saXN0cy5odG1s
ICovOyB9OwogCQlGNERFRjZFRDFFOUI0REI2MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGluay1hbmQt
aW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNERFRjZFQzFFOUI0RDk1MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGluay1hbmQtaW5w
dXQuaHRtbCAqLzsgfTsKIAkJRjRFMEEyOEIyMTFFNEEyQjAwQUY3QzdGIC8qIGZ1bGwtcGFnZS1k
cm9wem9uZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0NjEyOEQ4MjExRTQ5NjMwMEQ5RkFEQiAvKiBmdWxsLXBhZ2UtZHJvcHpvbmUu
aHRtbCAqLzsgfTsKIAkJRjRFMEEyOEYyMTFFNUQ1QjAwQUY3QzdGIC8qIERyYWdBbmREcm9wVGVz
dHNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEUwQTI4RTIxMUU1RDVCMDBBRjdDN0YgLyogRHJhZ0FuZERyb3BUZXN0c01hYy5tbSAqLzsgfTsK
QEAgLTEwMzEsNiArMTAzMiw3IEBACiAJCQkJMkVCMjlENUUxRjc2MkRCOTAwMjNBNUYxIC8qIGR1
bXAtZGF0YXRyYW5zZmVyLXR5cGVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQTE1
NTAyMkMxRTA1MEQwMzAwQTI0QzU3IC8qIGR1cGxpY2F0ZS1jb21wbGV0aW9uLWhhbmRsZXItY2Fs
bHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5OTg0RkFDRTFDRkZCMDkwMDA4RDE5
OEMgLyogZWRpdGFibGUtYm9keS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0RDk4
MThGMjE5NkI5MjAwMDgyMzBGQyAvKiBlZGl0YWJsZS1uZXN0ZWQtbGlzdHMuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQlGNDREMDY0NTFGMzk1QzI2MDAxQTBFMjkgLyogZWRpdG9yLXN0
YXRlLXRlc3QtaGFybmVzcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxQzhFMUE5
MUYyN0Y0OTYwMEJGNzMxQiAvKiBFbXB0eUdyYW5kZmF0aGVyZWRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLnBsaXN0IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUExNEFBQjY1MUU3OERDNTQwMEMx
QURDMiAvKiBlbmNyeXB0ZWQucGRmIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjE1Myw2ICsy
MTU1LDcgQEAKIAkJRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVzdHNJ
T1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFnQW5kRHJv
cFRlc3RzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ1RTRFNzFGMEM1
RDI3MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNsZWFyLXNlbGVjdGlvbi5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0RDY1REE3MUY1RTQ2QzAwMDlEOEMyNyAvKiBzZWxlY3RlZC10ZXh0LWltYWdlLWxp
bmstYW5kLWVkaXRhYmxlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2VsZWN0
ZWQtdGV4dC1pbWFnZS1saW5rLWFuZC1lZGl0YWJsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjREOTgxOEUyMTk2QjkxMTAwODIzMEZDIC8qIGVkaXRhYmxlLW5lc3RlZC1s
aXN0cy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gImVkaXRhYmxlLW5lc3RlZC1saXN0cy5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRERUY2RUMxRTlCNEQ5NTAwNDhFRjYxIC8qIGltYWdl
LWluLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW1h
Z2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0RTBBMjhFMjExRTVENUIwMEFGN0M3RiAvKiBEcmFnQW5kRHJvcFRlc3RzTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRHJhZ0FuZERyb3BUZXN0c01hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRFMEEyOTUyMTFGQzVBMzAwQUY3QzdGIC8qIHNlbGVjdGVkLXRleHQt
YW5kLXRleHRhcmVhLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2VsZWN0ZWQtdGV4dC1hbmQtdGV4dGFyZWEu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzM0LDYgKzI3MzcsNyBAQAog
CQkJCTJFQjI5RDVEMUY3NjJEQTUwMDIzQTVGMSAvKiBkdW1wLWRhdGF0cmFuc2Zlci10eXBlcy5o
dG1sICovLAogCQkJCUExNTUwMjJCMUUwNTBCQzUwMEEyNEM1NyAvKiBkdXBsaWNhdGUtY29tcGxl
dGlvbi1oYW5kbGVyLWNhbGxzLmh0bWwgKi8sCiAJCQkJOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThD
IC8qIGVkaXRhYmxlLWJvZHkuaHRtbCAqLywKKwkJCQlGNEQ5ODE4RTIxOTZCOTExMDA4MjMwRkMg
LyogZWRpdGFibGUtbmVzdGVkLWxpc3RzLmh0bWwgKi8sCiAJCQkJRjQ0RDA2NDQxRjM5NUMwRDAw
MUEwRTI5IC8qIGVkaXRvci1zdGF0ZS10ZXN0LWhhcm5lc3MuaHRtbCAqLywKIAkJCQk1MUM4RTFB
ODFGMjdGNDczMDBCRjczMUIgLyogRW1wdHlHcmFuZGZhdGhlcmVkUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5wbGlzdCAqLywKIAkJCQlGNEMyQUIyMTFERDZEOTQxMDBFMDZENUIgLyogZW5vcm1vdXMt
dmlkZW8td2l0aC1zb3VuZC5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFZGl0QWN0aW9ucy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFjdGlvbnMubW0KaW5kZXgg
YTg0MmI4MGViNGJiYTFiZjBkZTNiMDZhNmM1NTUzOGFhOWQyZTg3OS4uYTU3NzFkOWE4ZGJjN2Jh
ZTI5MTEwZmJmODAwZmYwZmJjMDlkOGUyYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFZGl0QWN0aW9ucy5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0VkaXRBY3Rpb25zLm1tCkBA
IC0zNiw5ICszNiwxNCBAQAogI2ltcG9ydCA8VUlLaXQvVUlGb250RGVzY3JpcHRvci5oPgogI2Vu
ZGlmCiAKKyNpbXBvcnQgPGRiZ19jb2xvcnMuaD4KKyNpbXBvcnQgPGRiZ19zbmFwc2hvdHRpbmcu
aD4KKwogQGludGVyZmFjZSBUZXN0V0tXZWJWaWV3IChFZGl0QWN0aW9uVGVzdGluZykKIC0gKEJP
T0wpcXVlcnlTZWxlY3RvckV4aXN0czooTlNTdHJpbmcgKilxdWVyeVNlbGVjdG9yOwogLSAodm9p
ZClpbnNlcnRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nOworLSAodm9pZClzZXRQb3NpdGlvbjoo
TlNTdHJpbmcgKiljb250YWluZXIgb2Zmc2V0OihOU1VJbnRlZ2VyKW9mZnNldDsKKy0gKHZvaWQp
c2V0QmFzZTooTlNTdHJpbmcgKiliYXNlIGJhc2VPZmZzZXQ6KE5TVUludGVnZXIpYmFzZU9mZnNl
dCBleHRlbnQ6KE5TU3RyaW5nICopZXh0ZW50IGV4dGVudE9mZnNldDooTlNVSW50ZWdlcilleHRl
bnRPZmZzZXQ7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBUZXN0V0tXZWJWaWV3IChFZGl0QWN0
aW9uVGVzdGluZykKQEAgLTU3LDYgKzYyLDE2IEBACiAjZW5kaWYKIH0KIAorLSAodm9pZClzZXRQ
b3NpdGlvbjooTlNTdHJpbmcgKiljb250YWluZXIgb2Zmc2V0OihOU1VJbnRlZ2VyKW9mZnNldAor
eworICAgIFtzZWxmIGV2YWx1YXRlSmF2YVNjcmlwdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKCVALCAldHUpIiwgY29udGFpbmVyLCBvZmZz
ZXRdIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Cit9CisKKy0gKHZvaWQpc2V0QmFzZTooTlNTdHJp
bmcgKiliYXNlIGJhc2VPZmZzZXQ6KE5TVUludGVnZXIpYmFzZU9mZnNldCBleHRlbnQ6KE5TU3Ry
aW5nICopZXh0ZW50IGV4dGVudE9mZnNldDooTlNVSW50ZWdlcilleHRlbnRPZmZzZXQKK3sKKyAg
ICBbc2VsZiBldmFsdWF0ZUphdmFTY3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJn
ZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KCVALCAldHUsICVALCAldHUpIiwgYmFzZSwg
YmFzZU9mZnNldCwgZXh0ZW50LCBleHRlbnRPZmZzZXRdIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07
Cit9CisKIEBlbmQKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewpAQCAtNzAsNiArODUsMTUg
QEAgc3RhdGljIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRl
c3RpbmcoTlNTdHJpbmcgKm1hcmt1cCkKICAgICByZXR1cm4gd2ViVmlldzsKIH0KIAorc3RhdGlj
IFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmdXaXRo
UGFnZU5hbWVkKE5TU3RyaW5nICp0ZXN0UGFnZU5hbWUpCit7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA0MDAsIDQwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdl
TmFtZWQ6dGVzdFBhZ2VOYW1lXTsKKyAgICBbd2ViVmlldyBfc2V0RWRpdGFibGU6WUVTXTsKKyAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCku
c2V0UG9zaXRpb24oZG9jdW1lbnQuYm9keSwgMSkiXTsKKyAgICByZXR1cm4gd2ViVmlldzsKK30K
Kwogc3RhdGljIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRl
c3RpbmcoKQogewogICAgIHJldHVybiB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoQCI8ZGl2
PldlYktpdDwvZGl2PiIpOwpAQCAtNzksMTcgKzEwMywxNyBAQCBURVNUKFdLV2ViVmlld0VkaXRB
Y3Rpb25zLCBNb2RpZnlMaXN0TGV2ZWwpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0Zv
ckVkaXRBY3Rpb25UZXN0aW5nKEAiPG9sPjxsaT5Gb288L2xpPjxvbD48bGkgaWQ9J2Jhcic+QmFy
PC9saT48L29sPjx1bD48bGkgaWQ9J2Jheic+QmF6PC9saT48L3VsPjwvb2w+Iik7CiAKLSAgICBb
d2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihi
YXIsIDApIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFt3ZWJWaWV3IHNldFBvc2l0aW9u
OkAiYmFyIiBvZmZzZXQ6MF07CiAgICAgW3dlYlZpZXcgX2RlY3JlYXNlTGlzdExldmVsOm5pbF07
CiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkj
YmFyIl0pOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJv
bCA+IHVsID4gbGkjYmF6Il0pOwogCi0gICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
Z2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oYmF6LCAwKSIgY29tcGxldGlvbkhhbmRsZXI6bmls
XTsKKyAgICBbd2ViVmlldyBzZXRQb3NpdGlvbjpAImJheiIgb2Zmc2V0OjBdOwogICAgIFt3ZWJW
aWV3IF9kZWNyZWFzZUxpc3RMZXZlbDpuaWxdOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1
ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2JhciJdKTsKICAgICBFWFBFQ1RfVFJVRShbd2Vi
VmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSNiYXoiXSk7CiAKLSAgICBbd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGJh
ciwgMCwgYmF6LCAxKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBbd2ViVmlldyBzZXRC
YXNlOkAiYmFyIiBiYXNlT2Zmc2V0OjAgZXh0ZW50OkAiYmF6IiBleHRlbnRPZmZzZXQ6MV07CiAg
ICAgW3dlYlZpZXcgX2luY3JlYXNlTGlzdExldmVsOm5pbF07CiAgICAgRVhQRUNUX1RSVUUoW3dl
YlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gb2wgPiBsaSNiYXIiXSk7CiAgICAgRVhQ
RUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gb2wgPiBsaSNiYXoi
XSk7CkBAIC05OSw2ICsxMjMsNzkgQEAgVEVTVChXS1dlYlZpZXdFZGl0QWN0aW9ucywgTW9kaWZ5
TGlzdExldmVsKQogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6
QCJvbCA+IGxpI2JheiJdKTsKIH0KIAorVEVTVChXS1dlYlZpZXdFZGl0QWN0aW9ucywgQ2hhbmdl
TGlzdFR5cGUpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0
aW5nV2l0aFBhZ2VOYW1lZChAImVkaXRhYmxlLW5lc3RlZC1saXN0cyIpOworCisgICAgW3dlYlZp
ZXcgc2V0UG9zaXRpb246QCJvbmUiIG9mZnNldDoxXTsKKyAgICBbd2ViVmlldyBfY2hhbmdlTGlz
dFR5cGU6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3Rz
OkAib2wgPiBsaSNvbmUuaXRlbSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNl
bGVjdG9yRXhpc3RzOkAib2wgPiBsaSNmb3VyLml0ZW0iXSk7CisKKyAgICBbd2ViVmlldyBfZXhl
Y3V0ZUVkaXRDb21tYW5kOkAidW5kbyIgYXJndW1lbnQ6bmlsIGNvbXBsZXRpb246bmlsXTsKKyAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAidWwgPiBsaSNvbmUu
aXRlbSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAi
dWwgPiBsaSNmb3VyLml0ZW0iXSk7CisKKyAgICBbd2ViVmlldyBfZXhlY3V0ZUVkaXRDb21tYW5k
OkAicmVkbyIgYXJndW1lbnQ6bmlsIGNvbXBsZXRpb246bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShb
d2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSNvbmUuaXRlbSJdKTsKKyAgICBF
WFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSNmb3VyLml0
ZW0iXSk7CisKKyAgICBbd2ViVmlldyBzZXRCYXNlOkAidHdvIiBiYXNlT2Zmc2V0OjAgZXh0ZW50
OkAidHdvIiBleHRlbnRPZmZzZXQ6MV07CisgICAgW3dlYlZpZXcgX2NoYW5nZUxpc3RUeXBlOm5p
bF07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAInVsID4g
bGkjdHdvLml0ZW0iXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4
aXN0czpAInVsID4gbGkjdGhyZWUuaXRlbSJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoInJnYigy
NTUsIDAsIDApIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3R3bycpKS5jb2xvciJdKTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoInJnYigyNTUsIDAsIDApIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAImdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cignI3RocmVlJykpLmNvbG9yIl0pOworCisgICAgW3dlYlZpZXcgX2NoYW5nZUxpc3RUeXBlOm5p
bF07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4g
bGkjdHdvLml0ZW0iXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4
aXN0czpAIm9sID4gbGkjdGhyZWUuaXRlbSJdKTsKKworICAgIFt3ZWJWaWV3IHNldEJhc2U6QCJm
aXZlIiBiYXNlT2Zmc2V0OjAgZXh0ZW50OkAic2l4IiBleHRlbnRPZmZzZXQ6MV07CisgICAgW3dl
YlZpZXcgX2NoYW5nZUxpc3RUeXBlOm5pbF07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVl
cnlTZWxlY3RvckV4aXN0czpAInVsID4gbGkjZml2ZS5pdGVtIl0pOworICAgIEVYUEVDVF9UUlVF
KFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJ1bCA+IGxpI3NpeC5pdGVtIl0pOworCisg
ICAgW3dlYlZpZXcgX2V4ZWN1dGVFZGl0Q29tbWFuZDpAInVuZG8iIGFyZ3VtZW50Om5pbCBjb21w
bGV0aW9uOm5pbF07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0
czpAIm9sID4gbGkjZml2ZS5pdGVtIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5
U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI3NpeC5pdGVtIl0pOworCisgICAgW3dlYlZpZXcgc2V0
QmFzZTpAInRocmVlIiBiYXNlT2Zmc2V0OjAgZXh0ZW50OkAiZml2ZSIgZXh0ZW50T2Zmc2V0OjFd
OworICAgIFt3ZWJWaWV3IF9jaGFuZ2VMaXN0VHlwZTpuaWxdOworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJ1bCA+IGxpI29uZS5pdGVtIl0pOworICAgIEVY
UEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI3R3by5pdGVt
Il0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+
IGxpI3RocmVlLml0ZW0iXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3Rv
ckV4aXN0czpAInVsID4gbGkjZm91ci5pdGVtIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2ZpdmUuaXRlbSJdKTsKKyAgICBFWFBFQ1Rf
VFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSNzaXguaXRlbSJdKTsK
KworICAgIFt3ZWJWaWV3IF9jaGFuZ2VMaXN0VHlwZTpuaWxdOworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI29uZS5pdGVtIl0pOworICAgIEVY
UEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI3R3by5pdGVt
Il0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+
IGxpI3RocmVlLml0ZW0iXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3Rv
ckV4aXN0czpAIm9sID4gbGkjZm91ci5pdGVtIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2ZpdmUuaXRlbSJdKTsKKyAgICBFWFBFQ1Rf
VFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSNzaXguaXRlbSJdKTsK
KworICAgIFt3ZWJWaWV3IHNldFBvc2l0aW9uOkAic2V2ZW4iIG9mZnNldDowXTsKKyAgICBbd2Vi
VmlldyBfY2hhbmdlTGlzdFR5cGU6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVy
eVNlbGVjdG9yRXhpc3RzOkAidWwgPiBsaSNzZXZlbi5pdGVtIl0pOworICAgIEVYUEVDVF9UUlVF
KFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJ1bCA+IGxpI2VpZ2h0Lml0ZW0iXSk7CisK
KyAgICBbd2ViVmlldyBzZXRCYXNlOkAibmluZSIgYmFzZU9mZnNldDowIGV4dGVudDpAInRlbiIg
ZXh0ZW50T2Zmc2V0OjFdOworICAgIFt3ZWJWaWV3IF9jaGFuZ2VMaXN0VHlwZTpuaWxdOworICAg
IEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI25pbmUu
aXRlbSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAi
b2wgPiBsaSN0ZW4uaXRlbSJdKTsKKworICAgIFt3ZWJWaWV3IHNldEJhc2U6QCJzZXZlbiIgYmFz
ZU9mZnNldDowIGV4dGVudDpAInRlbiIgZXh0ZW50T2Zmc2V0OjFdOworICAgIFt3ZWJWaWV3IF9j
aGFuZ2VMaXN0VHlwZTpuaWxdOworICAgIC8vIEZJWE1FOiBPbmNlIGxpc3QgY2hhbmdlIGNvbW1h
bmQgdmFsaWRhdGlvbiBpcyBpbXBsZW1lbnRlZCwgYWxzbyB2ZXJpZnkgdGhhdCB0aGUgIl9jaGFu
Z2VMaXN0VHlwZToiIGludGVyZmFjZSBpdGVtIHNob3VsZCBiZSBkaXNhYmxlZC4KKyAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAidWwgPiBsaSNzZXZlbi5pdGVt
Il0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJ1bCA+
IGxpI2VpZ2h0Lml0ZW0iXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3Rv
ckV4aXN0czpAIm9sID4gbGkjbmluZS5pdGVtIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI3Rlbi5pdGVtIl0pOworfQorCiBURVNUKFdL
V2ViVmlld0VkaXRBY3Rpb25zLCBOZXN0ZWRMaXN0SW5zZXJ0aW9uKQogewogICAgIGF1dG8gd2Vi
VmlldyA9IHdlYlZpZXdGb3JFZGl0QWN0aW9uVGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9lZGl0YWJsZS1uZXN0ZWQtbGlzdHMuaHRt
bCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvZWRpdGFibGUtbmVzdGVk
LWxpc3RzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQyMDY4ODM4ZDBkZGZkNTJiN2M1N2Y0OTVmY2YzMDhl
NzRhNGIzMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvZWRpdGFibGUtbmVzdGVkLWxpc3RzLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5IGNvbnRlbnRlZGl0YWJsZT4KKzx1bD4KKyAgICA8
bGkgY2xhc3M9Iml0ZW0iIGlkPSJvbmUiPm9uZTwvbGk+CisgICAgPG9sIHN0eWxlPSJjb2xvcjog
cmVkIj4KKyAgICAgICAgPGxpIGNsYXNzPSJpdGVtIiBpZD0idHdvIj50d288L2xpPgorICAgICAg
ICA8bGkgY2xhc3M9Iml0ZW0iIGlkPSJ0aHJlZSI+dGhyZWU8L2xpPgorICAgIDwvb2w+CisgICAg
PGxpIGNsYXNzPSJpdGVtIiBpZD0iZm91ciI+Zm91cjwvbGk+CisgICAgPHByZT4KKyAgICAgICAg
PG9sPgorICAgICAgICAgICAgPGxpIGNsYXNzPSJpdGVtIiBpZD0iZml2ZSI+Zml2ZTwvbGk+Cisg
ICAgICAgICAgICA8bGkgY2xhc3M9Iml0ZW0iIGlkPSJzaXgiPnNpeDwvbGk+CisgICAgICAgIDwv
b2w+CisgICAgPC9wcmU+Cis8L3VsPgorPHRhYmxlPgorICAgIDx0Ym9keT4KKyAgICAgICAgPHRy
PgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgIDxkaXY+Zm9vPC9kaXY+CisgICAg
ICAgICAgICAgICAgPG9sPgorICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Iml0ZW0iIGlk
PSJzZXZlbiI+c2V2ZW48L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Iml0ZW0i
IGlkPSJlaWdodCI+ZWlnaHQ8L2xpPgorICAgICAgICAgICAgICAgIDwvb2w+CisgICAgICAgICAg
ICA8L3RkPgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgIDxkaXY+YmFyPC9kaXY+
CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Iml0
ZW0iIGlkPSJuaW5lIj5uaW5lPC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJp
dGVtIiBpZD0idGVuIj50ZW48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAg
ICA8L3RkPgorICAgICAgICA8L3RyPgorICAgIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9ib2R5Pgor
PHNjcmlwdD4KKyAgICBkb2N1bWVudC5ib2R5LmZvY3VzKCk7Cis8L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354485</attachid>
            <date>2018-11-10 17:05:24 -0800</date>
            <delta_ts>2018-11-11 15:54:28 -0800</delta_ts>
            <desc>Remove some debugging code.</desc>
            <filename>bug-191487-20181110170523.patch</filename>
            <type>text/plain</type>
            <size>35750</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M5OGIzZGI4NDU0MDBl
MDNiOTYxNjBmYzExOTFkYTEyNjk5NmY1MC4uNmFhNDQ4Yzc1MDU5NWMwN2U5ZmJkZTg3ZGVkNWJj
ZDU5NDk5NTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE4LTExLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBh
IG5ldyBlZGl0IGNvbW1hbmQgdG8gY2hhbmdlIHRoZSBlbmNsb3NpbmcgbGlzdCB0eXBlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0ODcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ1OTU1OTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBhIG5ldyBlZGl0IGNvbW1hbmQg
dGhhdCBjaGFuZ2VzIHRoZSB0eXBlIG9mIHRoZSBlbmNsb3NpbmcgbGlzdCBlbGVtZW50IGFyb3Vu
ZCB0aGUgc2VsZWN0aW9uIGZyb20KKyAgICAgICAgdW5vcmRlcmVkIHRvIG9yZGVyZWQgbGlzdCBh
bmQgdmljZSB2ZXJzYS4gVGhpcyBuZXcgZWRpdCBjb21tYW5kIGlzIGV4cG9zZWQgb25seSB0byBp
bnRlcm5hbCBXZWJLaXQyIGNsaWVudHMsIHZpYQorICAgICAgICBTUEkgb24gV0tXZWJWaWV3IChg
LV9jaGFuZ2VMaXN0VHlwZTpgKS4KKworICAgICAgICBUaGlzIGlzIGN1cnJlbnRseSBpbnRlbmRl
ZCBmb3IgdXNlIGluIE1haWwgY29tcG9zZSwgYnV0IG1heSBhbHNvIGJlIGFkb3B0ZWQgYnkgbGVn
YWN5IE5vdGVzIGluIHRoZSBmdXR1cmUuIEFzCisgICAgICAgIHN1Y2gsIHRoZSBiZWhhdmlvciBv
ZiB0aGlzIGVkaXRpbmcgY29tbWFuZCBtb3N0bHkgbWF0Y2hlcyBzaGlwcGluZyBiZWhhdmlvciBp
biBNYWlsIGNvbXBvc2UgKHdoaWNoIGlzIGN1cnJlbnRseQorICAgICAgICBpbXBsZW1lbnRlZCBl
bnRpcmVseSBieSBNYWlsKS4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAg
VGVzdDogV0tXZWJWaWV3RWRpdEFjdGlvbnMuQ2hhbmdlTGlzdFR5cGUKKworICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBlZGl0aW5nL0NoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hhbmdlTGlzdFR5cGVDb21tYW5kOjpsaXN0Q29udmVyc2lvblR5cGUp
OgorCisgICAgICAgIEhlbHBlciB0aGF0IHJldHVybnMgYSBwb3RlbnRpYWwgbGlzdCBjb252ZXJz
aW9uIGNvbW1hbmQgdGhhdCBtYXkgYmUgZXhlY3V0ZWQgYXQgdGhlIGdpdmVuIGRvY3VtZW50J3Mg
c2VsZWN0aW9uLAorICAgICAgICBpZiBhbnkgZXhpc3RzLiBXZSBhbHNvIHVzZSBleGlzdGluZyBs
b2dpYyBmcm9tIE1haWwgaGVyZSB0byBkZXRlcm1pbmUgd2hpY2ggbGlzdCB0byBjaGFuZ2UsIGJ5
IHdhbGtpbmcgdXAgdGhlCisgICAgICAgIERPTSBmcm9tIHRoZSBsb3dlc3QgY29tbW9uIGFuY2Vz
dG9yIGNvbnRhaW5lciBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24gdW50aWwgd2UgaGl0IHRoZSBm
aXJzdCBsaXN0IGVsZW1lbnQuCisKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZUxpc3RUeXBlQ29t
bWFuZDo6Y3JlYXRlTmV3TGlzdCk6CisKKyAgICAgICAgSGVscGVyIG1ldGhvZCB0byBjcmVhdGUg
YSBuZXcgbGlzdCBlbGVtZW50IHRvIHJlcGxhY2UgdGhlIGdpdmVuIGxpc3QsIGFuZCB0aGVuIGNs
b25lIGVsZW1lbnQgZGF0YSBmcm9tIHRoZSBnaXZlbgorICAgICAgICBsaXN0IHRvIHRoZSBuZXcg
bGlzdC4gVGhpcyBhZGRyZXNzZXMgYW4gZXhpc3RpbmcgYnVnIGluIE1haWwsIHdoZXJlaW4gY2hh
bmdpbmcgbGlzdCB0eXBlIGZvciBhbiBlbmNsb3NpbmcgbGlzdAorICAgICAgICB3aGljaCBjb250
YWlucyBpbmxpbmUgc3R5bGUgcHJvcGVydGllcyBkcm9wcyB0aGUgaW5saW5lIHN0eWxlcywgYmVj
YXVzZSBleGlzdGluZyBsb2dpYyBpbiBNYWlsIHRoYXQgaW1wbGVtZW50cworICAgICAgICB0aGlz
IGVkaXRpbmcgY29tbWFuZCBvbmx5IGNvcGllcyB0aGUgYGNsYXNzYCBhdHRyaWJ1dGUgb2YgdGhl
IG9sZCBsaXN0IHRvIHRoZSBuZXcgbGlzdC4KKworICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlTGlz
dFR5cGVDb21tYW5kOjpkb0FwcGx5KToKKworICAgICAgICBBcHBseSB0aGUgZWRpdCBjb21tYW5k
IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAgICAgLSAgIEZpbmQgdGhlIGVu
Y2xvc2luZyBsaXN0IGVsZW1lbnQsIGlmIGFueSAoc2VlIGFib3ZlKS4KKyAgICAgICAgLSAgIENy
ZWF0ZSBhIG5ldyBsaXN0IGVsZW1lbnQgb2YgdGhlIG9wcG9zaXRlIHR5cGUgYXMgdGhlIGVuY2xv
c2luZyBsaXN0LCBhbmQgY2xvbmUgb3ZlciBlbGVtZW50IGRhdGEgZnJvbSB0aGUKKyAgICAgICAg
ICAgIGxpc3QgZWxlbWVudCBiZWluZyByZXBsYWNlZC4KKyAgICAgICAgLSAgIEluc2VydCB0aGUg
bmV3IGxpc3QgbmV4dCB0byB0aGUgb3JpZ2luYWwgbGlzdC4KKyAgICAgICAgLSAgIE1vdmUgYWxs
IGNoaWxkcmVuIG9mIHRoZSBvcmlnaW5hbCBsaXN0IHRvIHRoZSBuZXcgbGlzdC4KKyAgICAgICAg
LSAgIFJlbW92ZSB0aGUgb3JpZ2luYWwgbGlzdC4KKyAgICAgICAgLSAgIFNldCB0aGUgc2VsZWN0
aW9uIHRvIHRoZSBlbmQgb2YgdGhlIG5ldyBsaXN0LgorCisgICAgICAgICogZWRpdGluZy9DaGFu
Z2VMaXN0VHlwZUNvbW1hbmQuaDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0QWN0aW9u
Lmg6CisKKyAgICAgICAgQWRkIGEgcGFpciBvZiBuZXcgZWRpdCBhY3Rpb25zIGZvciBjb252ZXJz
aW9uIGZyb20gdW5vcmRlcmVkIGxpc3QgdG8gb3JkZXJlZCBsaXN0IGFuZCB2aWNlIHZlcnNhLgor
CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpjaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSk6CisKKyAgICAgICAgSW1wbGVtZW50IHRoaXMgYnkg
Y3JlYXRpbmcgYW5kIGFwcGx5aW5nIGEgbmV3IENoYW5nZUxpc3RUeXBlQ29tbWFuZC4KKworICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5DaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSk6IERlbGV0
ZWQuCisKKyAgICAgICAgUmVtb3ZlIHRoaXMgZm9yIG5vdywgc2luY2UgdGhlcmUncyBubyBuZWVk
IGZvciBpdCB1bnRpbCBmdWxsIHN1cHBvcnQgZm9yIGVkaXQgY29tbWFuZCB2YWxpZGF0aW9uIGlz
IGltcGxlbWVudGVkLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKwogMjAxOC0xMS0w
OSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29j
b2FdIEltcGxlbWVudCBTUEkgb24gV0tXZWJWaWV3IHRvIGluY3JlYXNlIGFuZCBkZWNyZWFzZSBs
aXN0IGxldmVscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAzYWNmZjM0OGRlYzBlMGZjMzVjMDU1NjdhNWVjMTFiMWVh
ZTU3NjZhLi5kZWMwYTA5YjNhNTBhMzg1NGRkOWI5NzE1ZWVjNjIxNjE3MTU2YTY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDE4LTExLTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhIG5ldyBlZGl0IGNvbW1hbmQgdG8g
Y2hhbmdlIHRoZSBlbmNsb3NpbmcgbGlzdCB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0ODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1
OTU1OTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbik6CisKKyAgICAgICAgQWRkIHVu
ZG8vcmVkbyBlZGl0IGFjdGlvbiBzdHJpbmdzIGZvciBDb252ZXJ0VG9PcmRlcmVkTGlzdCBhbmQg
Q29udmVydFRvVW5vcmRlcmVkTGlzdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5jcmVhc2VMaXN0TGV2ZWwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkZWNyZWFzZUxpc3RMZXZlbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNoYW5nZUxpc3RUeXBlKToKKworICAgICAgICBSZW1vdmUgcHJl
ZmxpZ2h0IGNoZWNrcyBmb3IgdGhlc2UgbGlzdCBlZGl0aW5nIGNvbW1hbmRzLiBUaGVzZSBhcmUg
bm90IG5lY2Vzc2FyeSBiZWNhdXNlIHRoZXNlIGNvbW1hbmRzIGZhbGwKKyAgICAgICAgYmFjayB0
byBiZWluZyBub29wcyBpZiB0aGVzZSBjaGVja3MgcmV0dXJuIGZhbHNlLiBUaGlzIGF2b2lkcyBh
biBleHRyYW5lb3VzIGFuY2VzdG9yIHdhbGsgdG8gZGV0ZXJtaW5lIHRoZQorICAgICAgICBlbmNs
b3NpbmcgbGlzdCBlbGVtZW50IHdoZW4gY2hhbmdpbmcgbGlzdCB0eXBlLgorCiAyMDE4LTExLTA5
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2Nv
YV0gSW1wbGVtZW50IFNQSSBvbiBXS1dlYlZpZXcgdG8gaW5jcmVhc2UgYW5kIGRlY3JlYXNlIGxp
c3QgbGV2ZWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggY2NjNTg2ZTE3YWZjNmU2
ODY5MjNiMGYxYzY4ZTc5ZTgzMDRhMzcxMi4uNTRjYWRlYzdjNWRjMTYzOTQ2MjExZTQxNjhhY2Ni
OTUxYjczM2I1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE4LTExLTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisg
ICAgICAgIEltcGxlbWVudCBhIG5ldyBlZGl0IGNvbW1hbmQgdG8gY2hhbmdlIHRoZSBlbmNsb3Np
bmcgbGlzdCB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTE0ODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1OTU1OTIyPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB1bmRvL3JlZG8gZWRp
dCBhY3Rpb24gc3RyaW5ncyBmb3IgQ29udmVydFRvT3JkZXJlZExpc3QgYW5kIENvbnZlcnRUb1Vu
b3JkZXJlZExpc3QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW06CisgICAgICAgICh1bmRvTmFtZUZvckVkaXRBY3Rpb24pOgorCiAyMDE4LTExLTA5ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgT3B0aW9uU2V0IGZv
ciBsYXlvdXQgbWlsZXN0b25lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBmODJlNDU2ZmZiNGRjN2RiZDk0
Y2JjZDgzYjFjMTViMjBlZWI4MGUwLi4zNTgyMGE0YzY3NGRmNzRkYWE1Zjk4MGYyZWE0OGJkMzQz
ZDJkMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtODkzLDYgKzg5Myw3IEBAIGVkaXRpbmcvQXBwZW5k
Tm9kZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0FwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKIGVk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1h
bmQuY3BwCitlZGl0aW5nL0NoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHAKIGVkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCiBlZGl0aW5nL0NyZWF0ZUxpbmtDb21tYW5kLmNwcAogZWRpdGlu
Zy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkxYjllYzJhMzk1MWI5YmQ4MDlk
NzQ2Nzc1YWEyZmY0OTI3YzUwZWQuLjJlYTQ4ZjEyYTYwY2I0NDNlNzJiYTZlNWVhYTg0M2YwMDc5
MjI0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE0ODg3LDYgKzE0ODg3LDggQEAKIAkJRjQ4RDJBQTQyMTU5NzQwRDAwQzY3
NTJCIC8qIENvbG9yQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb2xvckNvY29hLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDk3ODY4NzFGRjQ1RkE1MDBFMDYwQUIg
LyogUGFzdGVib2FyZEl0ZW1JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmRJdGVtSW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0M0Q2NDIxODgwMkU2MDBFQ0VD
QUMgLyogU2VyaWFsaXplZEF0dGFjaG1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6
ZWRBdHRhY2htZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEQ5ODE3
RDIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNEQ5ODE3RTIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RURBMjEzRjNGNUYwMDRFQTk4RSAvKiBGb250QXR0cmli
dXRlQ2hhbmdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250QXR0cmlidXRlQ2hhbmdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1N0VERjIxM0Y0MzRBMDA0RUE5OEUgLyogV2Vi
Q29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU5TRm9udE1h
bmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFNTdFRTAyMTNG
NDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMDY4Myw2ICsyMDY4NSw4IEBACiAJCQkJOTMzMDlEOEEwOTlFNjQ5
MTAwNTZFNTgxIC8qIEFwcGx5U3R5bGVDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEOEIwOTlFNjQ5
MTAwNTZFNTgxIC8qIEJyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDhD
MDk5RTY0OTEwMDU2RTU4MSAvKiBCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmggKi8sCisJCQkJRjRE
OTgxN0UyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHAgKi8sCisJ
CQkJRjREOTgxN0QyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5nZUxpc3RUeXBlQ29tbWFuZC5oICov
LAogCQkJCTdDM0E5MUU1MUM5NjNCODgwMEQxQTdFMyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3ku
aCAqLywKIAkJCQk5MzMwOUQ4RDA5OUU2NDkxMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwICovLAogCQkJCTkzMzA5RDhFMDk5RTY0OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0
Q29tbWFuZC5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DaGFuZ2VM
aXN0VHlwZUNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9DaGFuZ2VMaXN0VHlw
ZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NzQ4Y2Q2MDMyOWU4MjVhNmY0YTJkMjA0M2QyMjY1
NWE3MzIyNDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NoYW5n
ZUxpc3RUeXBlQ29tbWFuZC5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaCIKKworI2lu
Y2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQu
aCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MT0xpc3RFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTFVMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIHN0
ZDo6b3B0aW9uYWw8Q2hhbmdlTGlzdFR5cGVDb21tYW5kOjpUeXBlPiBsaXN0Q29udmVyc2lvblR5
cGVGb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBSZWZQdHI8
SFRNTEVsZW1lbnQ+JiBvdXRMaXN0VG9SZXBsYWNlKQoreworICAgIG91dExpc3RUb1JlcGxhY2Ug
PSBudWxscHRyOworCisgICAgYXV0byogY29tbW9uQW5jZXN0b3IgPSBSYW5nZTo6Y29tbW9uQW5j
ZXN0b3JDb250YWluZXIoc2VsZWN0aW9uLnN0YXJ0KCkuY29udGFpbmVyTm9kZSgpLCBzZWxlY3Rp
b24uZW5kKCkuY29udGFpbmVyTm9kZSgpKTsKKyAgICBpZiAoaXM8SFRNTFVMaXN0RWxlbWVudD4o
Y29tbW9uQW5jZXN0b3IpIHx8IGlzPEhUTUxPTGlzdEVsZW1lbnQ+KGNvbW1vbkFuY2VzdG9yKSkK
KyAgICAgICAgb3V0TGlzdFRvUmVwbGFjZSA9IGRvd25jYXN0PEhUTUxFbGVtZW50Pihjb21tb25B
bmNlc3Rvcik7CisgICAgZWxzZQorICAgICAgICBvdXRMaXN0VG9SZXBsYWNlID0gZW5jbG9zaW5n
TGlzdChjb21tb25BbmNlc3Rvcik7CisKKyAgICBpZiAoaXM8SFRNTFVMaXN0RWxlbWVudD4ob3V0
TGlzdFRvUmVwbGFjZSkpCisgICAgICAgIHJldHVybiBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQ6OlR5
cGU6OkNvbnZlcnRUb09yZGVyZWRMaXN0OworCisgICAgaWYgKGlzPEhUTUxPTGlzdEVsZW1lbnQ+
KG91dExpc3RUb1JlcGxhY2UpKQorICAgICAgICByZXR1cm4gQ2hhbmdlTGlzdFR5cGVDb21tYW5k
OjpUeXBlOjpDb252ZXJ0VG9Vbm9yZGVyZWRMaXN0OworCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKK30KKworc3RkOjpvcHRpb25hbDxDaGFuZ2VMaXN0VHlwZUNvbW1hbmQ6OlR5cGU+IENoYW5n
ZUxpc3RUeXBlQ29tbWFuZDo6bGlzdENvbnZlcnNpb25UeXBlKERvY3VtZW50JiBkb2N1bWVudCkK
K3sKKyAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CisgICAgICAgIFJl
ZlB0cjxIVE1MRWxlbWVudD4gb3V0RWxlbWVudDsKKyAgICAgICAgcmV0dXJuIGxpc3RDb252ZXJz
aW9uVHlwZUZvclNlbGVjdGlvbihmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCksIG91dEVs
ZW1lbnQpOworICAgIH0KKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitSZWY8SFRNTEVs
ZW1lbnQ+IENoYW5nZUxpc3RUeXBlQ29tbWFuZDo6Y3JlYXRlTmV3TGlzdChjb25zdCBIVE1MRWxl
bWVudCYgbGlzdFRvUmVwbGFjZSkKK3sKKyAgICBhdXRvIGxpc3QgPSAoW3RoaXNdICgpIC0+IFJl
ZjxIVE1MRWxlbWVudD4geworICAgICAgICBpZiAobV90eXBlID09IFR5cGU6OkNvbnZlcnRUb09y
ZGVyZWRMaXN0KQorICAgICAgICAgICAgcmV0dXJuIEhUTUxPTGlzdEVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCgpKTsKKyAgICAgICAgcmV0dXJuIEhUTUxVTGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpKTsKKyAgICB9KSgpOworICAgIGxpc3QtPmNsb25lRGF0YUZyb21FbGVtZW50KGxpc3RU
b1JlcGxhY2UpOworICAgIHJldHVybiBsaXN0OworfQorCit2b2lkIENoYW5nZUxpc3RUeXBlQ29t
bWFuZDo6ZG9BcHBseSgpCit7CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBsaXN0VG9SZXBsYWNl
OworICAgIGF1dG8gdHlwZSA9IGxpc3RDb252ZXJzaW9uVHlwZUZvclNlbGVjdGlvbihlbmRpbmdT
ZWxlY3Rpb24oKSwgbGlzdFRvUmVwbGFjZSk7CisgICAgaWYgKCF0eXBlIHx8IHR5cGUudmFsdWUo
KSAhPSBtX3R5cGUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbmV3TGlzdCA9IGNyZWF0
ZU5ld0xpc3QoKmxpc3RUb1JlcGxhY2UpOworICAgIGluc2VydE5vZGVCZWZvcmUobmV3TGlzdC5j
b3B5UmVmKCksICpsaXN0VG9SZXBsYWNlKTsKKyAgICBtb3ZlUmVtYWluaW5nU2libGluZ3NUb05l
d1BhcmVudChsaXN0VG9SZXBsYWNlLT5maXJzdENoaWxkKCksIG51bGxwdHIsIG5ld0xpc3QpOwor
ICAgIHJlbW92ZU5vZGUoKmxpc3RUb1JlcGxhY2UpOworICAgIHNldEVuZGluZ1NlbGVjdGlvbih7
IFBvc2l0aW9uIHsgbmV3TGlzdC5wdHIoKSwgUG9zaXRpb246OlBvc2l0aW9uSXNBZnRlckNoaWxk
cmVuIH19KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9DaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg1MjBhMGQ1M2M0
NDg4Y2IzYmI1MGZiYmEyYjhlOWViZjY2ZjRkNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmgKQEAgLTAsMCArMSw3MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29tcG9zaXRlRWRpdENvbW1h
bmQuaCIKKyNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEhUTUxFbGVtZW50OworY2xh
c3MgVmlzaWJsZVNlbGVjdGlvbjsKKworY2xhc3MgQ2hhbmdlTGlzdFR5cGVDb21tYW5kIGZpbmFs
IDogcHVibGljIENvbXBvc2l0ZUVkaXRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNz
IFR5cGUgOiB1aW50OF90IHsgQ29udmVydFRvT3JkZXJlZExpc3QsIENvbnZlcnRUb1Vub3JkZXJl
ZExpc3QgfTsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxUeXBlPiBsaXN0Q29udmVyc2lvblR5
cGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUmVmPENoYW5nZUxpc3RUeXBlQ29tbWFuZD4gY3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCwgVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgQ2hhbmdlTGlzdFR5cGVDb21tYW5kKGRvY3VtZW50LCB0eXBlKSk7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIENoYW5nZUxpc3RUeXBlQ29tbWFuZChEb2N1bWVudCYgZG9j
dW1lbnQsIFR5cGUgdHlwZSkKKyAgICAgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVu
dCkKKyAgICAgICAgLCBtX3R5cGUodHlwZSkKKyAgICB7CisgICAgfQorCisgICAgRWRpdEFjdGlv
biBlZGl0aW5nQWN0aW9uKCkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChtX3R5cGUg
PT0gVHlwZTo6Q29udmVydFRvT3JkZXJlZExpc3QpCisgICAgICAgICAgICByZXR1cm4gRWRpdEFj
dGlvbjo6Q29udmVydFRvT3JkZXJlZExpc3Q7CisKKyAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246
OkNvbnZlcnRUb1Vub3JkZXJlZExpc3Q7CisgICAgfQorCisgICAgYm9vbCBwcmVzZXJ2ZXNUeXBp
bmdTdHlsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGRvQXBwbHko
KSBmaW5hbDsKKworICAgIFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlTmV3TGlzdChjb25zdCBIVE1M
RWxlbWVudCYgbGlzdFRvUmVwbGFjZSk7CisKKyAgICBUeXBlIG1fdHlwZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dEFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKaW5kZXggZTgx
MjI4ODRlYTBhN2YwMTk4MTc5NGRiY2RlZTk3OWI5ZjUwMTVlNi4uZmViNzc4NmU5Yjc3YmUyNWU3
NmVjZjRhMDU1MWIwMjBjZjc3ZmUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0QWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgK
QEAgLTg0LDYgKzg0LDggQEAgZW51bSBjbGFzcyBFZGl0QWN0aW9uIDogdWludDhfdCB7CiAgICAg
Rm9ybWF0QmxvY2ssCiAgICAgSW5zZXJ0T3JkZXJlZExpc3QsCiAgICAgSW5zZXJ0VW5vcmRlcmVk
TGlzdCwKKyAgICBDb252ZXJ0VG9PcmRlcmVkTGlzdCwKKyAgICBDb252ZXJ0VG9Vbm9yZGVyZWRM
aXN0LAogICAgIEluZGVudCwKICAgICBPdXRkZW50CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCmluZGV4IDdjMDY0OWUxYjIyMDUyMjM3ZTdlYTlmOWIxYzQ4ZmYxMTk0NTUzMWQuLmMyZjQ5
ZTZjN2E4NzdmY2ZjOWJjNGQ2MGFlZjViMzQxNDA0Y2QyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaCIK
ICNpbmNsdWRlICJDbGlwYm9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkNvbXBvc2l0aW9uRXZlbnQu
aCIKICNpbmNsdWRlICJDcmVhdGVMaW5rQ29tbWFuZC5oIgpAQCAtMTQ3NiwxNSArMTQ3NywxMCBA
QCB2b2lkIEVkaXRvcjo6cGVyZm9ybURlbGV0ZSgpCiAgICAgc2V0U3RhcnROZXdLaWxsUmluZ1Nl
cXVlbmNlKGZhbHNlKTsKIH0KIAotYm9vbCBFZGl0b3I6OmNhbkNoYW5nZVNlbGVjdGlvbkxpc3RU
eXBlKCkKLXsKLSAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkLgotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQogdm9pZCBFZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKCkKIHsKLSAgICAv
LyBGSVhNRTogTm90IGltcGxlbWVudGVkLgorICAgIGlmIChhdXRvIHR5cGUgPSBDaGFuZ2VMaXN0
VHlwZUNvbW1hbmQ6Omxpc3RDb252ZXJzaW9uVHlwZShkb2N1bWVudCgpKSkKKyAgICAgICAgQ2hh
bmdlTGlzdFR5cGVDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgKnR5cGUpLT5hcHBseSgpOwog
fQogCiB2b2lkIEVkaXRvcjo6c2ltcGxpZnlNYXJrdXAoTm9kZSogc3RhcnROb2RlLCBOb2RlKiBl
bmROb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggYWQ5ZmMwYjE2MzdmZWZmYWVmYzcz
MmNjMzRhYzUyZjY1MzIxZjZiZC4uMGRkZWE4Mjc5NDIzNDhkNjA4ZGFlYWE2YjJkYWI4OGFhY2U2
NmQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0yMDYsNyArMjA2LDYgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxOb2RlPiBpbmNyZWFzZVNlbGVjdGlvbkxpc3RM
ZXZlbE9yZGVyZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8Tm9kZT4gaW5jcmVhc2VT
ZWxlY3Rpb25MaXN0TGV2ZWxVbm9yZGVyZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
Y3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYW5D
aGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdl
U2VsZWN0aW9uTGlzdFR5cGUoKTsKICAgIAogICAgIHZvaWQgcmVtb3ZlRm9ybWF0dGluZ0FuZFN0
eWxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJFZGl0Q29tbWFu
ZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHku
Y3BwCmluZGV4IDZmZDhkZjVkMWE2NTUzZmNmMTQ3OGY5NGFiZTI3NDQ2MmI5YjdjNDEuLmNkYjU2
MmY1OTdmY2I4OTk0NzkyMTkwNjFjM2NkYTI4ZDJjNGVhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCkBAIC0xNzEsNiArMTcxLDEyIEBA
IFN0cmluZyBXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbihFZGl0QWN0aW9u
IGVkaXRBY3Rpb24pCiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiSW5kZW50Iiwg
IkluZGVudCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIGNh
c2UgRWRpdEFjdGlvbjo6T3V0ZGVudDoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZ
KCJPdXRkZW50IiwgIk91dGRlbnQgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIlVuZG8gYWN0aW9uIG5h
bWUiKTsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGdpdmUgaW50ZXJuYWwgY2xpZW50cyBhIHdh
eSB0byBvdmVycmlkZSB0aGVzZSB1bmRvIG5hbWVzLiBGb3IgaW5zdGFuY2UsIE1haWwgcmVmZXJz
IHRvIG9yZGVyZWQgYW5kIHVub3JkZXJlZCBsaXN0cyBhcyAibnVtYmVyZWQiIGFuZCAiYnVsbGV0
ZWQiIGxpc3RzLCByZXNwZWN0aXZlbHksCisgICAgLy8gZGVzcGl0ZSB0aGUgZmFjdCB0aGF0IG9y
ZGVyZWQgYW5kIHVub3JkZXJlZCBsaXN0cyBhcmUgbm90IG5lY2Vzc2FyaWx5IGRpc3BsYXllZCB1
c2luZyBidWxsZXRzIGFuZCBudW1lcmFscy4KKyAgICBjYXNlIEVkaXRBY3Rpb246OkNvbnZlcnRU
b09yZGVyZWRMaXN0OgorICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkNvbnZlcnQg
dG8gT3JkZXJlZCBMaXN0IiwgIkNvbnZlcnQgdG8gT3JkZXJlZCBMaXN0IChVbmRvIGFjdGlvbiBu
YW1lKSIsICJDb252ZXJ0IHRvIG9yZGVyZWQgbGlzdCBhY3Rpb24gbmFtZSIpOworICAgIGNhc2Ug
RWRpdEFjdGlvbjo6Q29udmVydFRvVW5vcmRlcmVkTGlzdDoKKyAgICAgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkdfS0VZKCJDb252ZXJ0IHRvIFVub3JkZXJlZCBMaXN0IiwgIkNvbnZlcnQgdG8gVW5v
cmRlcmVkIExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIkNvbnZlcnQgdG8gdW5vcmRlcmVkIGxp
c3QgYWN0aW9uIG5hbWUiKTsKICAgICB9CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlN2ZhZTg1YWM4
OTliNTRhMzgxZGZiMmYyZWYzNWM2NDJkNmIyNGJhLi42M2JjYTIyZGE0NTNiNThlODU4YzAyMDll
MzQ5YmY2NjY2Y2Y1ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtMTE1MiwyMyArMTE1MiwxNyBAQCB2b2lkIFdlYlBhZ2U6OnNldEVkaXRh
YmxlKGJvb2wgZWRpdGFibGUpCiAKIHZvaWQgV2ViUGFnZTo6aW5jcmVhc2VMaXN0TGV2ZWwoKQog
ewotICAgIGF1dG8mIGVkaXRvciA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9y
TWFpbkZyYW1lKCkuZWRpdG9yKCk7Ci0gICAgaWYgKGVkaXRvci5jYW5JbmNyZWFzZVNlbGVjdGlv
bkxpc3RMZXZlbCgpKQotICAgICAgICBlZGl0b3IuaW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWwo
KTsKKyAgICBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmVk
aXRvcigpLmluY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
ZGVjcmVhc2VMaXN0TGV2ZWwoKQogewotICAgIGF1dG8mIGVkaXRvciA9IG1fcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZWRpdG9yKCk7Ci0gICAgaWYgKGVkaXRv
ci5jYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbCgpKQotICAgICAgICBlZGl0b3IuZGVjcmVh
c2VTZWxlY3Rpb25MaXN0TGV2ZWwoKTsKKyAgICBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZv
Y3VzZWRPck1haW5GcmFtZSgpLmVkaXRvcigpLmRlY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCk7
CiB9CiAKIHZvaWQgV2ViUGFnZTo6Y2hhbmdlTGlzdFR5cGUoKQogewotICAgIGF1dG8mIGVkaXRv
ciA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZWRpdG9y
KCk7Ci0gICAgaWYgKGVkaXRvci5jYW5DaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpKQotICAgICAg
ICBlZGl0b3IuY2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKKyAgICBtX3BhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmVkaXRvcigpLmNoYW5nZVNlbGVjdGlvbkxp
c3RUeXBlKCk7CiB9CiAKIGJvb2wgV2ViUGFnZTo6aXNFZGl0aW5nQ29tbWFuZEVuYWJsZWQoY29u
c3QgU3RyaW5nJiBjb21tYW5kTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCAzZDZhZmNiMDIw
ODhkY2YzNWViZDlkOWU3NzA1MjI3ODRjNmI4NDBiLi4yZWIyMGIyMzQzMTM2NjFhNmM0NWUwN2Nj
ZmFiMGM4ZWY5ZDIzMDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02NTMsNiArNjUzLDggQEAg
c3RhdGljIE5TU3RyaW5nKiB1bmRvTmFtZUZvckVkaXRBY3Rpb24oRWRpdEFjdGlvbiBlZGl0QWN0
aW9uKQogICAgIGNhc2UgRWRpdEFjdGlvbjo6SXRhbGljczogcmV0dXJuIFVJX1NUUklOR19LRVlf
SU5URVJOQUwoIkl0YWxpY3MiLCAiSXRhbGljcyAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOwogICAgIGNhc2UgRWRpdEFjdGlvbjo6RGVsZXRlOiByZXR1cm4gVUlfU1RS
SU5HX0tFWV9JTlRFUk5BTCgiRGVsZXRlIiwgIkRlbGV0ZSAoVW5kbyBhY3Rpb24gbmFtZSkiLCAi
VW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIGNhc2UgRWRpdEFjdGlvbjo6RGljdGF0aW9uOiByZXR1
cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiRGljdGF0aW9uIiwgIkRpY3RhdGlvbiAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6
Q29udmVydFRvT3JkZXJlZExpc3Q6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDb252
ZXJ0IHRvIE9yZGVyZWQgTGlzdCIsICJDb252ZXJ0IHRvIE9yZGVyZWQgTGlzdCAoVW5kbyBhY3Rp
b24gbmFtZSkiLCAiQ29udmVydCB0byBvcmRlcmVkIGxpc3QgYWN0aW9uIG5hbWUiKTsKKyAgICBj
YXNlIEVkaXRBY3Rpb246OkNvbnZlcnRUb1Vub3JkZXJlZExpc3Q6IHJldHVybiBVSV9TVFJJTkdf
S0VZX0lOVEVSTkFMKCJDb252ZXJ0IHRvIFVub3JkZXJlZCBMaXN0IiwgIkNvbnZlcnQgdG8gVW5v
cmRlcmVkIExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIkNvbnZlcnQgdG8gdW5vcmRlcmVkIGxp
c3QgYWN0aW9uIG5hbWUiKTsKICAgICB9CiAgICAgcmV0dXJuIG5pbDsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkM2VlNTMyMjE4M2RkZjQz
ZjhkODFmNWVkNGIwZDc1MDRmOGUzNTUwLi41M2U2YTFkMzIyMTg0N2E1OTkxZmY0NTg1MTIyMzZi
ZGExYTNmZWE0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgtMTEtMTAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGEgbmV3IGVkaXQgY29tbWFuZCB0
byBjaGFuZ2UgdGhlIGVuY2xvc2luZyBsaXN0IHR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTQ4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NDU5NTU5MjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRvIHZlcmlmeSB0aGF0IC1fY2hhbmdlTGlzdFR5cGU6IGNh
biBiZSB1c2VkIHRvIHN3YXAgYmV0d2VlbiBlbmNsb3Npbmcgb3JkZXJlZCBhbmQgdW5vcmRlcmVk
CisgICAgICAgIGxpc3RzLiBBbHNvIGV4ZXJjaXNlcyB1bmRvLCByZWRvLCBjaGFuZ2luZyBsaXN0
IHR5cGVzIHVuZGVyIGBwcmVgIGFuZCBgdGFibGVgIGVsZW1lbnRzLCBhbmQgaGFuZGxpbmcgc2Vs
ZWN0aW9uCisgICAgICAgIHdpdGhpbiBuZXN0ZWQgbGlzdCBlbGVtZW50cy4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFj
dGlvbnMubW06CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgc2V0UG9zaXRpb246b2Zmc2V0Ol0p
OgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHNldEJhc2U6YmFzZU9mZnNldDpleHRlbnQ6ZXh0
ZW50T2Zmc2V0Ol0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2ViVmlld0ZvckVkaXRBY3Rp
b25UZXN0aW5nV2l0aFBhZ2VOYW1lZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2VkaXRhYmxlLW5lc3Rl
ZC1saXN0cy5odG1sOiBBZGRlZC4KKwogMjAxOC0xMS0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEltcGxlbWVudCBTUEkgb24gV0tX
ZWJWaWV3IHRvIGluY3JlYXNlIGFuZCBkZWNyZWFzZSBsaXN0IGxldmVscwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBkNWE4Y2FhOGYzNmRkZjNiZmM5NzllNDBmNjI0YmIwNzlmOTYwZmFhLi40
YjM4OTRhOWY3OWVkNDg4M2Y4NmM0ZTc2NWY4OTc3NjQ3YzgzNGI1IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtODY2LDYgKzg2Niw3IEBACiAJCUY0RDRGM0I5MUU0RTM2RTQwMEJCMjc2NyAv
KiBEcmFnQW5kRHJvcFRlc3RzSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVz
dHNJT1MubW0gKi87IH07CiAJCUY0RDVFNEU4MUYwQzVEMzgwMDhDMUE0OSAvKiBkcmFnc3RhcnQt
Y2xlYXItc2VsZWN0aW9uLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjRENUU0RTcxRjBDNUQyNzAwOEMxQTQ5IC8qIGRyYWdzdGFydC1j
bGVhci1zZWxlY3Rpb24uaHRtbCAqLzsgfTsKIAkJRjRENjVEQTgxRjVFNDcwNDAwOUQ4QzI3IC8q
IHNlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ2NURBNzFGNUU0NkMw
MDA5RDhDMjcgLyogc2VsZWN0ZWQtdGV4dC1pbWFnZS1saW5rLWFuZC1lZGl0YWJsZS5odG1sICov
OyB9OworCQlGNEQ5ODE4RjIxOTZCOTIwMDA4MjMwRkMgLyogZWRpdGFibGUtbmVzdGVkLWxpc3Rz
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjREOTgxOEUyMTk2QjkxMTAwODIzMEZDIC8qIGVkaXRhYmxlLW5lc3RlZC1saXN0cy5odG1s
ICovOyB9OwogCQlGNERFRjZFRDFFOUI0REI2MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGluay1hbmQt
aW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNERFRjZFQzFFOUI0RDk1MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGluay1hbmQtaW5w
dXQuaHRtbCAqLzsgfTsKIAkJRjRFMEEyOEIyMTFFNEEyQjAwQUY3QzdGIC8qIGZ1bGwtcGFnZS1k
cm9wem9uZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0NjEyOEQ4MjExRTQ5NjMwMEQ5RkFEQiAvKiBmdWxsLXBhZ2UtZHJvcHpvbmUu
aHRtbCAqLzsgfTsKIAkJRjRFMEEyOEYyMTFFNUQ1QjAwQUY3QzdGIC8qIERyYWdBbmREcm9wVGVz
dHNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEUwQTI4RTIxMUU1RDVCMDBBRjdDN0YgLyogRHJhZ0FuZERyb3BUZXN0c01hYy5tbSAqLzsgfTsK
QEAgLTEwMzEsNiArMTAzMiw3IEBACiAJCQkJMkVCMjlENUUxRjc2MkRCOTAwMjNBNUYxIC8qIGR1
bXAtZGF0YXRyYW5zZmVyLXR5cGVzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQTE1
NTAyMkMxRTA1MEQwMzAwQTI0QzU3IC8qIGR1cGxpY2F0ZS1jb21wbGV0aW9uLWhhbmRsZXItY2Fs
bHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5OTg0RkFDRTFDRkZCMDkwMDA4RDE5
OEMgLyogZWRpdGFibGUtYm9keS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0RDk4
MThGMjE5NkI5MjAwMDgyMzBGQyAvKiBlZGl0YWJsZS1uZXN0ZWQtbGlzdHMuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQlGNDREMDY0NTFGMzk1QzI2MDAxQTBFMjkgLyogZWRpdG9yLXN0
YXRlLXRlc3QtaGFybmVzcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxQzhFMUE5
MUYyN0Y0OTYwMEJGNzMxQiAvKiBFbXB0eUdyYW5kZmF0aGVyZWRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLnBsaXN0IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUExNEFBQjY1MUU3OERDNTQwMEMx
QURDMiAvKiBlbmNyeXB0ZWQucGRmIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjE1Myw2ICsy
MTU1LDcgQEAKIAkJRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVzdHNJ
T1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFnQW5kRHJv
cFRlc3RzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ1RTRFNzFGMEM1
RDI3MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNsZWFyLXNlbGVjdGlvbi5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0RDY1REE3MUY1RTQ2QzAwMDlEOEMyNyAvKiBzZWxlY3RlZC10ZXh0LWltYWdlLWxp
bmstYW5kLWVkaXRhYmxlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2VsZWN0
ZWQtdGV4dC1pbWFnZS1saW5rLWFuZC1lZGl0YWJsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjREOTgxOEUyMTk2QjkxMTAwODIzMEZDIC8qIGVkaXRhYmxlLW5lc3RlZC1s
aXN0cy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gImVkaXRhYmxlLW5lc3RlZC1saXN0cy5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRERUY2RUMxRTlCNEQ5NTAwNDhFRjYxIC8qIGltYWdl
LWluLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW1h
Z2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0RTBBMjhFMjExRTVENUIwMEFGN0M3RiAvKiBEcmFnQW5kRHJvcFRlc3RzTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRHJhZ0FuZERyb3BUZXN0c01hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRFMEEyOTUyMTFGQzVBMzAwQUY3QzdGIC8qIHNlbGVjdGVkLXRleHQt
YW5kLXRleHRhcmVhLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2VsZWN0ZWQtdGV4dC1hbmQtdGV4dGFyZWEu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzM0LDYgKzI3MzcsNyBAQAog
CQkJCTJFQjI5RDVEMUY3NjJEQTUwMDIzQTVGMSAvKiBkdW1wLWRhdGF0cmFuc2Zlci10eXBlcy5o
dG1sICovLAogCQkJCUExNTUwMjJCMUUwNTBCQzUwMEEyNEM1NyAvKiBkdXBsaWNhdGUtY29tcGxl
dGlvbi1oYW5kbGVyLWNhbGxzLmh0bWwgKi8sCiAJCQkJOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThD
IC8qIGVkaXRhYmxlLWJvZHkuaHRtbCAqLywKKwkJCQlGNEQ5ODE4RTIxOTZCOTExMDA4MjMwRkMg
LyogZWRpdGFibGUtbmVzdGVkLWxpc3RzLmh0bWwgKi8sCiAJCQkJRjQ0RDA2NDQxRjM5NUMwRDAw
MUEwRTI5IC8qIGVkaXRvci1zdGF0ZS10ZXN0LWhhcm5lc3MuaHRtbCAqLywKIAkJCQk1MUM4RTFB
ODFGMjdGNDczMDBCRjczMUIgLyogRW1wdHlHcmFuZGZhdGhlcmVkUmVzb3VyY2VMb2FkU3RhdGlz
dGljcy5wbGlzdCAqLywKIAkJCQlGNEMyQUIyMTFERDZEOTQxMDBFMDZENUIgLyogZW5vcm1vdXMt
dmlkZW8td2l0aC1zb3VuZC5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFZGl0QWN0aW9ucy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFjdGlvbnMubW0KaW5kZXgg
YTg0MmI4MGViNGJiYTFiZjBkZTNiMDZhNmM1NTUzOGFhOWQyZTg3OS4uMmM2YmMwNDEzMDhjMzY4
OGNiZWVhYzNhMDdlZGY4MGMyOGU5YjMxOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdFZGl0QWN0aW9ucy5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0VkaXRBY3Rpb25zLm1tCkBA
IC0zOSw2ICszOSw4IEBACiBAaW50ZXJmYWNlIFRlc3RXS1dlYlZpZXcgKEVkaXRBY3Rpb25UZXN0
aW5nKQogLSAoQk9PTClxdWVyeVNlbGVjdG9yRXhpc3RzOihOU1N0cmluZyAqKXF1ZXJ5U2VsZWN0
b3I7CiAtICh2b2lkKWluc2VydFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmc7CistICh2b2lkKXNl
dFBvc2l0aW9uOihOU1N0cmluZyAqKWNvbnRhaW5lciBvZmZzZXQ6KE5TVUludGVnZXIpb2Zmc2V0
OworLSAodm9pZClzZXRCYXNlOihOU1N0cmluZyAqKWJhc2UgYmFzZU9mZnNldDooTlNVSW50ZWdl
ciliYXNlT2Zmc2V0IGV4dGVudDooTlNTdHJpbmcgKilleHRlbnQgZXh0ZW50T2Zmc2V0OihOU1VJ
bnRlZ2VyKWV4dGVudE9mZnNldDsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZp
ZXcgKEVkaXRBY3Rpb25UZXN0aW5nKQpAQCAtNTcsNiArNTksMTYgQEAKICNlbmRpZgogfQogCist
ICh2b2lkKXNldFBvc2l0aW9uOihOU1N0cmluZyAqKWNvbnRhaW5lciBvZmZzZXQ6KE5TVUludGVn
ZXIpb2Zmc2V0Cit7CisgICAgW3NlbGYgZXZhbHVhdGVKYXZhU2NyaXB0OltOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oJUAsICV0dSkiLCBjb250
YWluZXIsIG9mZnNldF0gY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKK30KKworLSAodm9pZClzZXRC
YXNlOihOU1N0cmluZyAqKWJhc2UgYmFzZU9mZnNldDooTlNVSW50ZWdlciliYXNlT2Zmc2V0IGV4
dGVudDooTlNTdHJpbmcgKilleHRlbnQgZXh0ZW50T2Zmc2V0OihOU1VJbnRlZ2VyKWV4dGVudE9m
ZnNldAoreworICAgIFtzZWxmIGV2YWx1YXRlSmF2YVNjcmlwdDpbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoJUAsICV0dSwgJUAsICV0
dSkiLCBiYXNlLCBiYXNlT2Zmc2V0LCBleHRlbnQsIGV4dGVudE9mZnNldF0gY29tcGxldGlvbkhh
bmRsZXI6bmlsXTsKK30KKwogQGVuZAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CkBAIC03
MCw2ICs4MiwxNSBAQCBzdGF0aWMgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXdGb3JF
ZGl0QWN0aW9uVGVzdGluZyhOU1N0cmluZyAqbWFya3VwKQogICAgIHJldHVybiB3ZWJWaWV3Owog
fQogCitzdGF0aWMgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXdGb3JFZGl0QWN0aW9u
VGVzdGluZ1dpdGhQYWdlTmFtZWQoTlNTdHJpbmcgKnRlc3RQYWdlTmFtZSkKK3sKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDQwMCwgNDAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkVGVzdFBhZ2VOYW1lZDp0ZXN0UGFnZU5hbWVdOworICAgIFt3ZWJWaWV3IF9zZXRFZGl0YWJs
ZTpZRVNdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRT
ZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVudC5ib2R5LCAxKSJdOworICAgIHJldHVybiB3
ZWJWaWV3OworfQorCiBzdGF0aWMgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXdGb3JF
ZGl0QWN0aW9uVGVzdGluZygpCiB7CiAgICAgcmV0dXJuIHdlYlZpZXdGb3JFZGl0QWN0aW9uVGVz
dGluZyhAIjxkaXY+V2ViS2l0PC9kaXY+Iik7CkBAIC03OSwxNyArMTAwLDE3IEBAIFRFU1QoV0tX
ZWJWaWV3RWRpdEFjdGlvbnMsIE1vZGlmeUxpc3RMZXZlbCkKIHsKICAgICBhdXRvIHdlYlZpZXcg
PSB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoQCI8b2w+PGxpPkZvbzwvbGk+PG9sPjxsaSBp
ZD0nYmFyJz5CYXI8L2xpPjwvb2w+PHVsPjxsaSBpZD0nYmF6Jz5CYXo8L2xpPjwvdWw+PC9vbD4i
KTsKIAotICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNl
dFBvc2l0aW9uKGJhciwgMCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgW3dlYlZpZXcg
c2V0UG9zaXRpb246QCJiYXIiIG9mZnNldDowXTsKICAgICBbd2ViVmlldyBfZGVjcmVhc2VMaXN0
TGV2ZWw6bmlsXTsKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3Rz
OkAib2wgPiBsaSNiYXIiXSk7CiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3Rv
ckV4aXN0czpAIm9sID4gdWwgPiBsaSNiYXoiXSk7CiAKLSAgICBbd2ViVmlldyBldmFsdWF0ZUph
dmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihiYXosIDApIiBjb21wbGV0aW9u
SGFuZGxlcjpuaWxdOworICAgIFt3ZWJWaWV3IHNldFBvc2l0aW9uOkAiYmF6IiBvZmZzZXQ6MF07
CiAgICAgW3dlYlZpZXcgX2RlY3JlYXNlTGlzdExldmVsOm5pbF07CiAgICAgRVhQRUNUX1RSVUUo
W3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjYmFyIl0pOwogICAgIEVYUEVD
VF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2JheiJdKTsKIAot
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQoYmFyLCAwLCBiYXosIDEpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFt3
ZWJWaWV3IHNldEJhc2U6QCJiYXIiIGJhc2VPZmZzZXQ6MCBleHRlbnQ6QCJiYXoiIGV4dGVudE9m
ZnNldDoxXTsKICAgICBbd2ViVmlldyBfaW5jcmVhc2VMaXN0TGV2ZWw6bmlsXTsKICAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBvbCA+IGxpI2JhciJd
KTsKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBv
bCA+IGxpI2JheiJdKTsKQEAgLTk5LDYgKzEyMCw3OSBAQCBURVNUKFdLV2ViVmlld0VkaXRBY3Rp
b25zLCBNb2RpZnlMaXN0TGV2ZWwpCiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxl
Y3RvckV4aXN0czpAIm9sID4gbGkjYmF6Il0pOwogfQogCitURVNUKFdLV2ViVmlld0VkaXRBY3Rp
b25zLCBDaGFuZ2VMaXN0VHlwZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yRWRp
dEFjdGlvblRlc3RpbmdXaXRoUGFnZU5hbWVkKEAiZWRpdGFibGUtbmVzdGVkLWxpc3RzIik7CisK
KyAgICBbd2ViVmlldyBzZXRQb3NpdGlvbjpAIm9uZSIgb2Zmc2V0OjFdOworICAgIFt3ZWJWaWV3
IF9jaGFuZ2VMaXN0VHlwZTpuaWxdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2Vs
ZWN0b3JFeGlzdHM6QCJvbCA+IGxpI29uZS5pdGVtIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2ZvdXIuaXRlbSJdKTsKKworICAgIFt3
ZWJWaWV3IF9leGVjdXRlRWRpdENvbW1hbmQ6QCJ1bmRvIiBhcmd1bWVudDpuaWwgY29tcGxldGlv
bjpuaWxdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJ1
bCA+IGxpI29uZS5pdGVtIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0
b3JFeGlzdHM6QCJ1bCA+IGxpI2ZvdXIuaXRlbSJdKTsKKworICAgIFt3ZWJWaWV3IF9leGVjdXRl
RWRpdENvbW1hbmQ6QCJyZWRvIiBhcmd1bWVudDpuaWwgY29tcGxldGlvbjpuaWxdOworICAgIEVY
UEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI29uZS5pdGVt
Il0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+
IGxpI2ZvdXIuaXRlbSJdKTsKKworICAgIFt3ZWJWaWV3IHNldEJhc2U6QCJ0d28iIGJhc2VPZmZz
ZXQ6MCBleHRlbnQ6QCJ0d28iIGV4dGVudE9mZnNldDoxXTsKKyAgICBbd2ViVmlldyBfY2hhbmdl
TGlzdFR5cGU6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhp
c3RzOkAidWwgPiBsaSN0d28uaXRlbSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVy
eVNlbGVjdG9yRXhpc3RzOkAidWwgPiBsaSN0aHJlZS5pdGVtIl0pOworICAgIEVYUEVDVF9XS19T
VFJFUSgicmdiKDI1NSwgMCwgMCkiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAiZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdHdvJykpLmNv
bG9yIl0pOworICAgIEVYUEVDVF9XS19TVFJFUSgicmdiKDI1NSwgMCwgMCkiLCBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCcjdGhyZWUnKSkuY29sb3IiXSk7CisKKyAgICBbd2ViVmlldyBfY2hhbmdl
TGlzdFR5cGU6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhp
c3RzOkAib2wgPiBsaSN0d28uaXRlbSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVy
eVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSN0aHJlZS5pdGVtIl0pOworCisgICAgW3dlYlZpZXcg
c2V0QmFzZTpAImZpdmUiIGJhc2VPZmZzZXQ6MCBleHRlbnQ6QCJzaXgiIGV4dGVudE9mZnNldDox
XTsKKyAgICBbd2ViVmlldyBfY2hhbmdlTGlzdFR5cGU6bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShb
d2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAidWwgPiBsaSNmaXZlLml0ZW0iXSk7CisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAInVsID4gbGkjc2l4Lml0
ZW0iXSk7CisKKyAgICBbd2ViVmlldyBfZXhlY3V0ZUVkaXRDb21tYW5kOkAidW5kbyIgYXJndW1l
bnQ6bmlsIGNvbXBsZXRpb246bmlsXTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNl
bGVjdG9yRXhpc3RzOkAib2wgPiBsaSNmaXZlLml0ZW0iXSk7CisgICAgRVhQRUNUX1RSVUUoW3dl
YlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjc2l4Lml0ZW0iXSk7CisKKyAgICBb
d2ViVmlldyBzZXRCYXNlOkAidGhyZWUiIGJhc2VPZmZzZXQ6MCBleHRlbnQ6QCJmaXZlIiBleHRl
bnRPZmZzZXQ6MV07CisgICAgW3dlYlZpZXcgX2NoYW5nZUxpc3RUeXBlOm5pbF07CisgICAgRVhQ
RUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAInVsID4gbGkjb25lLml0ZW0i
XSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4g
bGkjdHdvLml0ZW0iXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4
aXN0czpAIm9sID4gbGkjdGhyZWUuaXRlbSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBx
dWVyeVNlbGVjdG9yRXhpc3RzOkAidWwgPiBsaSNmb3VyLml0ZW0iXSk7CisgICAgRVhQRUNUX1RS
VUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjZml2ZS5pdGVtIl0pOwor
ICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI3Np
eC5pdGVtIl0pOworCisgICAgW3dlYlZpZXcgX2NoYW5nZUxpc3RUeXBlOm5pbF07CisgICAgRVhQ
RUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjb25lLml0ZW0i
XSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4g
bGkjdHdvLml0ZW0iXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4
aXN0czpAIm9sID4gbGkjdGhyZWUuaXRlbSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBx
dWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSNmb3VyLml0ZW0iXSk7CisgICAgRVhQRUNUX1RS
VUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjZml2ZS5pdGVtIl0pOwor
ICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI3Np
eC5pdGVtIl0pOworCisgICAgW3dlYlZpZXcgc2V0UG9zaXRpb246QCJzZXZlbiIgb2Zmc2V0OjBd
OworICAgIFt3ZWJWaWV3IF9jaGFuZ2VMaXN0VHlwZTpuaWxdOworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJ1bCA+IGxpI3NldmVuLml0ZW0iXSk7CisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAInVsID4gbGkjZWlnaHQu
aXRlbSJdKTsKKworICAgIFt3ZWJWaWV3IHNldEJhc2U6QCJuaW5lIiBiYXNlT2Zmc2V0OjAgZXh0
ZW50OkAidGVuIiBleHRlbnRPZmZzZXQ6MV07CisgICAgW3dlYlZpZXcgX2NoYW5nZUxpc3RUeXBl
Om5pbF07CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9s
ID4gbGkjbmluZS5pdGVtIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0
b3JFeGlzdHM6QCJvbCA+IGxpI3Rlbi5pdGVtIl0pOworCisgICAgW3dlYlZpZXcgc2V0QmFzZTpA
InNldmVuIiBiYXNlT2Zmc2V0OjAgZXh0ZW50OkAidGVuIiBleHRlbnRPZmZzZXQ6MV07CisgICAg
W3dlYlZpZXcgX2NoYW5nZUxpc3RUeXBlOm5pbF07CisgICAgLy8gRklYTUU6IE9uY2UgbGlzdCBj
aGFuZ2UgY29tbWFuZCB2YWxpZGF0aW9uIGlzIGltcGxlbWVudGVkLCBhbHNvIHZlcmlmeSB0aGF0
IHRoZSAiX2NoYW5nZUxpc3RUeXBlOiIgaW50ZXJmYWNlIGl0ZW0gc2hvdWxkIGJlIGRpc2FibGVk
LgorICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJ1bCA+IGxp
I3NldmVuLml0ZW0iXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4
aXN0czpAInVsID4gbGkjZWlnaHQuaXRlbSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBx
dWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSNuaW5lLml0ZW0iXSk7CisgICAgRVhQRUNUX1RS
VUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sID4gbGkjdGVuLml0ZW0iXSk7Cit9
CisKIFRFU1QoV0tXZWJWaWV3RWRpdEFjdGlvbnMsIE5lc3RlZExpc3RJbnNlcnRpb24pCiB7CiAg
ICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2VkaXRhYmxlLW5lc3Rl
ZC1saXN0cy5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9lZGl0
YWJsZS1uZXN0ZWQtbGlzdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDIwNjg4MzhkMGRkZmQ1MmI3YzU3
ZjQ5NWZjZjMwOGU3NGE0YjMyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9lZGl0YWJsZS1uZXN0ZWQtbGlzdHMuaHRtbApAQCAtMCwwICsx
LDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgY29udGVudGVkaXRhYmxlPgor
PHVsPgorICAgIDxsaSBjbGFzcz0iaXRlbSIgaWQ9Im9uZSI+b25lPC9saT4KKyAgICA8b2wgc3R5
bGU9ImNvbG9yOiByZWQiPgorICAgICAgICA8bGkgY2xhc3M9Iml0ZW0iIGlkPSJ0d28iPnR3bzwv
bGk+CisgICAgICAgIDxsaSBjbGFzcz0iaXRlbSIgaWQ9InRocmVlIj50aHJlZTwvbGk+CisgICAg
PC9vbD4KKyAgICA8bGkgY2xhc3M9Iml0ZW0iIGlkPSJmb3VyIj5mb3VyPC9saT4KKyAgICA8cHJl
PgorICAgICAgICA8b2w+CisgICAgICAgICAgICA8bGkgY2xhc3M9Iml0ZW0iIGlkPSJmaXZlIj5m
aXZlPC9saT4KKyAgICAgICAgICAgIDxsaSBjbGFzcz0iaXRlbSIgaWQ9InNpeCI+c2l4PC9saT4K
KyAgICAgICAgPC9vbD4KKyAgICA8L3ByZT4KKzwvdWw+Cis8dGFibGU+CisgICAgPHRib2R5Pgor
ICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgPGRpdj5mb288
L2Rpdj4KKyAgICAgICAgICAgICAgICA8b2w+CisgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFz
cz0iaXRlbSIgaWQ9InNldmVuIj5zZXZlbjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaSBj
bGFzcz0iaXRlbSIgaWQ9ImVpZ2h0Ij5laWdodDwvbGk+CisgICAgICAgICAgICAgICAgPC9vbD4K
KyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgPGRp
dj5iYXI8L2Rpdj4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgIDxs
aSBjbGFzcz0iaXRlbSIgaWQ9Im5pbmUiPm5pbmU8L2xpPgorICAgICAgICAgICAgICAgICAgICA8
bGkgY2xhc3M9Iml0ZW0iIGlkPSJ0ZW4iPnRlbjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4K
KyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgPC90Ym9keT4KKzwvdGFibGU+
Cis8L2JvZHk+Cis8c2NyaXB0PgorICAgIGRvY3VtZW50LmJvZHkuZm9jdXMoKTsKKzwvc2NyaXB0
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354512</attachid>
            <date>2018-11-11 15:54:29 -0800</date>
            <delta_ts>2018-11-11 17:39:35 -0800</delta_ts>
            <desc>Patch for EWS (w/ new layout test)</desc>
            <filename>bug-191487-20181111155429.patch</filename>
            <type>text/plain</type>
            <size>50808</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4MDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMzYTM5ZmYzMDNhZDQz
OTczNWUzMDc1NGM4MjJjNWUyZTk3ODM2NS4uZGRiMTJjNjY3Nzg1MzI0ZGY4ZmZmYmVkZWZiZjBl
MjQ2MWE5MGYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE4LTExLTExICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBh
IG5ldyBlZGl0IGNvbW1hbmQgdG8gY2hhbmdlIHRoZSBlbmNsb3NpbmcgbGlzdCB0eXBlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0ODcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ1OTU1OTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1
a2UgTml3YS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYSBuZXcgZWRpdCBjb21tYW5kIHRo
YXQgY2hhbmdlcyB0aGUgdHlwZSBvZiB0aGUgZW5jbG9zaW5nIGxpc3QgZWxlbWVudCBhcm91bmQg
dGhlIHNlbGVjdGlvbiBmcm9tCisgICAgICAgIHVub3JkZXJlZCB0byBvcmRlcmVkIGxpc3QgYW5k
IHZpY2UgdmVyc2EuIFRoaXMgbmV3IGVkaXQgY29tbWFuZCBpcyBleHBvc2VkIG9ubHkgdG8gaW50
ZXJuYWwgV2ViS2l0MiBjbGllbnRzLCB2aWEKKyAgICAgICAgU1BJIG9uIFdLV2ViVmlldyAoYC1f
Y2hhbmdlTGlzdFR5cGU6YCkuCisKKyAgICAgICAgVGhpcyBpcyBjdXJyZW50bHkgaW50ZW5kZWQg
Zm9yIHVzZSBpbiBNYWlsIGNvbXBvc2UsIGJ1dCBtYXkgYWxzbyBiZSBhZG9wdGVkIGJ5IGxlZ2Fj
eSBOb3RlcyBpbiB0aGUgZnV0dXJlLiBBcworICAgICAgICBzdWNoLCB0aGUgYmVoYXZpb3Igb2Yg
dGhpcyBlZGl0aW5nIGNvbW1hbmQgbW9zdGx5IG1hdGNoZXMgc2hpcHBpbmcgYmVoYXZpb3IgaW4g
TWFpbCBjb21wb3NlICh3aGljaCBpcyBjdXJyZW50bHkKKyAgICAgICAgaW1wbGVtZW50ZWQgZW50
aXJlbHkgYnkgTWFpbCkuIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIFRl
c3Q6ICAgZWRpdGluZy9leGVjQ29tbWFuZC9jaGFuZ2UtbGlzdC10eXBlLmh0bWwKKyAgICAgICAg
ICAgICAgICBXS1dlYlZpZXdFZGl0QWN0aW9ucy5DaGFuZ2VMaXN0VHlwZQorCisgICAgICAgICog
U291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGVkaXRpbmcvQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpsaXN0Q29udmVyc2lvblR5cGVGb3JTZWxlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hhbmdlTGlzdFR5cGVDb21tYW5kOjpsaXN0Q29udmVyc2lvblR5cGUpOgor
CisgICAgICAgIEhlbHBlciB0aGF0IHJldHVybnMgYSBwb3RlbnRpYWwgbGlzdCBjb252ZXJzaW9u
IGNvbW1hbmQgdGhhdCBtYXkgYmUgZXhlY3V0ZWQgYXQgdGhlIGdpdmVuIGRvY3VtZW50J3Mgc2Vs
ZWN0aW9uLAorICAgICAgICBpZiBhbnkgZXhpc3RzLiBXZSBhbHNvIHVzZSBleGlzdGluZyBsb2dp
YyBmcm9tIE1haWwgaGVyZSB0byBkZXRlcm1pbmUgd2hpY2ggbGlzdCB0byBjaGFuZ2UsIGJ5IHdh
bGtpbmcgdXAgdGhlCisgICAgICAgIERPTSBmcm9tIHRoZSBsb3dlc3QgY29tbW9uIGFuY2VzdG9y
IGNvbnRhaW5lciBvZiB0aGUgY3VycmVudCBzZWxlY3Rpb24gdW50aWwgd2UgaGl0IHRoZSBmaXJz
dCBsaXN0IGVsZW1lbnQuCisKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZUxpc3RUeXBlQ29tbWFu
ZDo6Y3JlYXRlTmV3TGlzdCk6CisKKyAgICAgICAgSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYSBu
ZXcgbGlzdCBlbGVtZW50IHRvIHJlcGxhY2UgdGhlIGdpdmVuIGxpc3QsIGFuZCB0aGVuIGNsb25l
IGVsZW1lbnQgZGF0YSBmcm9tIHRoZSBnaXZlbgorICAgICAgICBsaXN0IHRvIHRoZSBuZXcgbGlz
dC4gVGhpcyBhZGRyZXNzZXMgYW4gZXhpc3RpbmcgYnVnIGluIE1haWwsIHdoZXJlaW4gY2hhbmdp
bmcgbGlzdCB0eXBlIGZvciBhbiBlbmNsb3NpbmcgbGlzdAorICAgICAgICB3aGljaCBjb250YWlu
cyBpbmxpbmUgc3R5bGUgcHJvcGVydGllcyBkcm9wcyB0aGUgaW5saW5lIHN0eWxlcywgYmVjYXVz
ZSBleGlzdGluZyBsb2dpYyBpbiBNYWlsIHRoYXQgaW1wbGVtZW50cworICAgICAgICB0aGlzIGVk
aXRpbmcgY29tbWFuZCBvbmx5IGNvcGllcyB0aGUgYGNsYXNzYCBhdHRyaWJ1dGUgb2YgdGhlIG9s
ZCBsaXN0IHRvIHRoZSBuZXcgbGlzdC4KKworICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlTGlzdFR5
cGVDb21tYW5kOjpkb0FwcGx5KToKKworICAgICAgICBBcHBseSB0aGUgZWRpdCBjb21tYW5kIGJ5
IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBzdGVwczoKKyAgICAgICAgLSAgIEZpbmQgdGhlIGVuY2xv
c2luZyBsaXN0IGVsZW1lbnQsIGlmIGFueSAoc2VlIGFib3ZlKS4KKyAgICAgICAgLSAgIENyZWF0
ZSBhIG5ldyBsaXN0IGVsZW1lbnQgb2YgdGhlIG9wcG9zaXRlIHR5cGUgYXMgdGhlIGVuY2xvc2lu
ZyBsaXN0LCBhbmQgY2xvbmUgb3ZlciBlbGVtZW50IGRhdGEgZnJvbSB0aGUKKyAgICAgICAgICAg
IGxpc3QgZWxlbWVudCBiZWluZyByZXBsYWNlZC4KKyAgICAgICAgLSAgIEluc2VydCB0aGUgbmV3
IGxpc3QgbmV4dCB0byB0aGUgb3JpZ2luYWwgbGlzdC4KKyAgICAgICAgLSAgIE1vdmUgYWxsIGNo
aWxkcmVuIG9mIHRoZSBvcmlnaW5hbCBsaXN0IHRvIHRoZSBuZXcgbGlzdC4KKyAgICAgICAgLSAg
IFJlbW92ZSB0aGUgb3JpZ2luYWwgbGlzdC4KKyAgICAgICAgLSAgIFNldCB0aGUgc2VsZWN0aW9u
IHRvIHRoZSBlbmQgb2YgdGhlIG5ldyBsaXN0LgorCisgICAgICAgICogZWRpdGluZy9DaGFuZ2VM
aXN0VHlwZUNvbW1hbmQuaDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9FZGl0QWN0aW9uLmg6
CisKKyAgICAgICAgQWRkIGEgcGFpciBvZiBuZXcgZWRpdCBhY3Rpb25zIGZvciBjb252ZXJzaW9u
IGZyb20gdW5vcmRlcmVkIGxpc3QgdG8gb3JkZXJlZCBsaXN0IGFuZCB2aWNlIHZlcnNhLgorCisg
ICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpj
aGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSk6CisKKyAgICAgICAgSW1wbGVtZW50IHRoaXMgYnkgY3Jl
YXRpbmcgYW5kIGFwcGx5aW5nIGEgbmV3IENoYW5nZUxpc3RUeXBlQ29tbWFuZC4KKworICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjpjYW5DaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSk6IERlbGV0ZWQu
CisKKyAgICAgICAgUmVtb3ZlIHRoaXMgZm9yIG5vdywgc2luY2UgdGhlcmUncyBubyBuZWVkIGZv
ciBpdCB1bnRpbCBmdWxsIHN1cHBvcnQgZm9yIGVkaXQgY29tbWFuZCB2YWxpZGF0aW9uIGlzIGlt
cGxlbWVudGVkLgorCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNoYW5nZVNl
bGVjdGlvbkxpc3RUeXBlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKworICAgICAgICBBZGQgaW50ZXJuYWwgaG9va3Mg
dG8gY2hhbmdlIGxpc3QgdHlwZSBmcm9tIGxheW91dCB0ZXN0cy4KKwogMjAxOC0xMS0xMCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc3Vw
cG9ydCBmb3IgLXdlYmtpdC1zdmctc2hhZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYwMDZkMzQyNTczMDVhNTll
YWZlZjYzODUyODU5NDFmMWU1N2Q0NTAuLjkxN2I3YTEyZjU3YjM5Yjk2ZjZiOWRmMjI0YzJiN2Vj
ZTNhMWUwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTgtMTEtMTEgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGEgbmV3
IGVkaXQgY29tbWFuZCB0byBjaGFuZ2UgdGhlIGVuY2xvc2luZyBsaXN0IHR5cGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTQ4NworICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDU5NTU5MjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBO
aXdhLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbik6CisK
KyAgICAgICAgQWRkIHVuZG8vcmVkbyBlZGl0IGFjdGlvbiBzdHJpbmdzIGZvciBDb252ZXJ0VG9P
cmRlcmVkTGlzdCBhbmQgQ29udmVydFRvVW5vcmRlcmVkTGlzdC4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aW5j
cmVhc2VMaXN0TGV2ZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkZWNyZWFzZUxpc3RM
ZXZlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNoYW5nZUxpc3RUeXBlKToKKworICAg
ICAgICBSZW1vdmUgcHJlZmxpZ2h0IGNoZWNrcyBmb3IgdGhlc2UgbGlzdCBlZGl0aW5nIGNvbW1h
bmRzLiBUaGVzZSBhcmUgbm90IG5lY2Vzc2FyeSBiZWNhdXNlIHRoZXNlIGNvbW1hbmRzIGZhbGwK
KyAgICAgICAgYmFjayB0byBiZWluZyBub29wcyBpZiB0aGVzZSBjaGVja3MgcmV0dXJuIGZhbHNl
LiBUaGlzIGF2b2lkcyBhbiBleHRyYW5lb3VzIGFuY2VzdG9yIHdhbGsgdG8gZGV0ZXJtaW5lIHRo
ZQorICAgICAgICBlbmNsb3NpbmcgbGlzdCBlbGVtZW50IHdoZW4gY2hhbmdpbmcgbGlzdCB0eXBl
LgorCiAyMDE4LTExLTEwICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzgwNjUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKaW5kZXggM2M0ZTdjZjdkOTUyMzQ5OTI0NWMwYjZhZmNhOGQ2MGQwYmQ0M2Y0Mi4u
OWE4NjAwMjRjMTc4MTgwYzgwOTUxYWNkNWRjMjRlNDJkZDY4NzFhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTExLTExICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhIG5ldyBlZGl0
IGNvbW1hbmQgdG8gY2hhbmdlIHRoZSBlbmNsb3NpbmcgbGlzdCB0eXBlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0ODcKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQ1OTU1OTIyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4K
KworICAgICAgICBBZGQgdW5kby9yZWRvIGVkaXQgYWN0aW9uIHN0cmluZ3MgZm9yIENvbnZlcnRU
b09yZGVyZWRMaXN0IGFuZCBDb252ZXJ0VG9Vbm9yZGVyZWRMaXN0LgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAodW5kb05hbWVGb3JFZGl0
QWN0aW9uKToKKwogMjAxOC0xMS0wOSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjM4MDQ3LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCBmODJlNDU2ZmZiNGRjN2RiZDk0Y2JjZDgzYjFjMTViMjBlZWI4MGUwLi4zNTgyMGE0
YzY3NGRmNzRkYWE1Zjk4MGYyZWE0OGJkMzQzZDJkMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtODkz
LDYgKzg5Myw3IEBAIGVkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3BwCiBlZGl0aW5nL0FwcGx5
QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAKIGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCiBl
ZGl0aW5nL0JyZWFrQmxvY2txdW90ZUNvbW1hbmQuY3BwCitlZGl0aW5nL0NoYW5nZUxpc3RUeXBl
Q29tbWFuZC5jcHAKIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCiBlZGl0aW5nL0Ny
ZWF0ZUxpbmtDb21tYW5kLmNwcAogZWRpdGluZy9EZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGNiMDkxN2FkYWVjYzRlMGFiNDUxMGI5N2QxYWEzY2Q1NWNiMDg1NzkuLjFhOTE3OGY3
MmIzZmZlYzIwZTY5OWFiNTlmM2JlMTlhZTg1MDQ0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0ODg2LDYgKzE0ODg2LDgg
QEAKIAkJRjQ4RDJBQTQyMTU5NzQwRDAwQzY3NTJCIC8qIENvbG9yQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBDb2xvckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNDk3ODY4NzFGRjQ1RkE1MDBFMDYwQUIgLyogUGFzdGVib2FyZEl0ZW1JbmZvLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhc3RlYm9hcmRJdGVtSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNEQ0M0Q2NDIxODgwMkU2MDBFQ0VDQUMgLyogU2VyaWFsaXplZEF0dGFjaG1lbnREYXRh
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNEQ5ODE3RDIxOTVGQkY2MDA4MjMwRkMgLyogQ2hhbmdlTGlz
dFR5cGVDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEQ5ODE3RTIxOTVGQkY2MDA4MjMwRkMgLyog
Q2hhbmdlTGlzdFR5cGVDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENoYW5nZUxpc3RU
eXBlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RTU3RURBMjEz
RjNGNUYwMDRFQTk4RSAvKiBGb250QXR0cmlidXRlQ2hhbmdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
b250QXR0cmlidXRlQ2hhbmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEU1
N0VERjIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRFNTdFRTAyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRN
YW5hZ2VyRXh0cmFzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU5TRm9udE1hbmFn
ZXJFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDY4Miw2ICsyMDY4
NCw4IEBACiAJCQkJOTMzMDlEOEEwOTlFNjQ5MTAwNTZFNTgxIC8qIEFwcGx5U3R5bGVDb21tYW5k
LmggKi8sCiAJCQkJOTMzMDlEOEIwOTlFNjQ5MTAwNTZFNTgxIC8qIEJyZWFrQmxvY2txdW90ZUNv
bW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDhDMDk5RTY0OTEwMDU2RTU4MSAvKiBCcmVha0Jsb2Nr
cXVvdGVDb21tYW5kLmggKi8sCisJCQkJRjREOTgxN0UyMTk1RkJGNjAwODIzMEZDIC8qIENoYW5n
ZUxpc3RUeXBlQ29tbWFuZC5jcHAgKi8sCisJCQkJRjREOTgxN0QyMTk1RkJGNjAwODIzMEZDIC8q
IENoYW5nZUxpc3RUeXBlQ29tbWFuZC5oICovLAogCQkJCTdDM0E5MUU1MUM5NjNCODgwMEQxQTdF
MyAvKiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCAqLywKIAkJCQk5MzMwOUQ4RDA5OUU2NDkxMDA1
NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5RDhFMDk5RTY0
OTEwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9DaGFuZ2VMaXN0VHlwZUNvbW1hbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9DaGFuZ2VMaXN0VHlwZUNvbW1hbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5N2Yy
MThjNDcyNzRiODlmYjUzZGMxODY4OWU1NDQzMzkwYTcxNzgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NoYW5nZUxpc3RUeXBlQ29tbWFuZC5jcHAKQEAgLTAsMCAr
MSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDaGFu
Z2VMaXN0VHlwZUNvbW1hbmQuaCIKKworI2luY2x1ZGUgIkVsZW1lbnRBbmNlc3Rvckl0ZXJhdG9y
LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT0xpc3RFbGVtZW50
LmgiCisjaW5jbHVkZSAiSFRNTFVMaXN0RWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPENoYW5nZUxpc3RUeXBlQ29tbWFuZDo6VHlwZSwgUmVm
PEhUTUxFbGVtZW50Pj4+IGxpc3RDb252ZXJzaW9uVHlwZUZvclNlbGVjdGlvbihjb25zdCBWaXNp
YmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCit7CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBsaXN0
VG9SZXBsYWNlOworICAgIGF1dG8gY29tbW9uQW5jZXN0b3IgPSBtYWtlUmVmUHRyKFJhbmdlOjpj
b21tb25BbmNlc3RvckNvbnRhaW5lcihzZWxlY3Rpb24uc3RhcnQoKS5jb250YWluZXJOb2RlKCks
IHNlbGVjdGlvbi5lbmQoKS5jb250YWluZXJOb2RlKCkpKTsKKyAgICBpZiAoaXM8SFRNTFVMaXN0
RWxlbWVudD4oY29tbW9uQW5jZXN0b3IpIHx8IGlzPEhUTUxPTGlzdEVsZW1lbnQ+KGNvbW1vbkFu
Y2VzdG9yKSkKKyAgICAgICAgbGlzdFRvUmVwbGFjZSA9IGRvd25jYXN0PEhUTUxFbGVtZW50Pihj
b21tb25BbmNlc3Rvci5nZXQoKSk7CisgICAgZWxzZQorICAgICAgICBsaXN0VG9SZXBsYWNlID0g
ZW5jbG9zaW5nTGlzdChjb21tb25BbmNlc3Rvci5nZXQoKSk7CisKKyAgICBpZiAoaXM8SFRNTFVM
aXN0RWxlbWVudD4obGlzdFRvUmVwbGFjZSkpCisgICAgICAgIHJldHVybiB7eyBDaGFuZ2VMaXN0
VHlwZUNvbW1hbmQ6OlR5cGU6OkNvbnZlcnRUb09yZGVyZWRMaXN0LCBsaXN0VG9SZXBsYWNlLnJl
bGVhc2VOb25OdWxsKCkgfX07CisKKyAgICBpZiAoaXM8SFRNTE9MaXN0RWxlbWVudD4obGlzdFRv
UmVwbGFjZSkpCisgICAgICAgIHJldHVybiB7eyBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQ6OlR5cGU6
OkNvbnZlcnRUb1Vub3JkZXJlZExpc3QsIGxpc3RUb1JlcGxhY2UucmVsZWFzZU5vbk51bGwoKSB9
fTsKKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK3N0ZDo6b3B0aW9uYWw8Q2hhbmdl
TGlzdFR5cGVDb21tYW5kOjpUeXBlPiBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQ6Omxpc3RDb252ZXJz
aW9uVHlwZShEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgaWYgKGF1dG8gZnJhbWUgPSBtYWtl
UmVmUHRyKGRvY3VtZW50LmZyYW1lKCkpKSB7CisgICAgICAgIGlmIChhdXRvIHR5cGVBbmRFbGVt
ZW50ID0gbGlzdENvbnZlcnNpb25UeXBlRm9yU2VsZWN0aW9uKGZyYW1lLT5zZWxlY3Rpb24oKS5z
ZWxlY3Rpb24oKSkpCisgICAgICAgICAgICByZXR1cm4gdHlwZUFuZEVsZW1lbnQtPmZpcnN0Owor
ICAgIH0KKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCitSZWY8SFRNTEVsZW1lbnQ+IENo
YW5nZUxpc3RUeXBlQ29tbWFuZDo6Y3JlYXRlTmV3TGlzdChjb25zdCBIVE1MRWxlbWVudCYgbGlz
dFRvUmVwbGFjZSkKK3sKKyAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGxpc3Q7CisgICAgaWYgKG1f
dHlwZSA9PSBUeXBlOjpDb252ZXJ0VG9PcmRlcmVkTGlzdCkKKyAgICAgICAgbGlzdCA9IEhUTUxP
TGlzdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBlbHNlCisgICAgICAgIGxpc3Qg
PSBIVE1MVUxpc3RFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgbGlzdC0+Y2xvbmVE
YXRhRnJvbUVsZW1lbnQobGlzdFRvUmVwbGFjZSk7CisgICAgcmV0dXJuIGxpc3QucmVsZWFzZU5v
bk51bGwoKTsKK30KKwordm9pZCBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQ6OmRvQXBwbHkoKQorewor
ICAgIGF1dG8gdHlwZUFuZEVsZW1lbnQgPSBsaXN0Q29udmVyc2lvblR5cGVGb3JTZWxlY3Rpb24o
ZW5kaW5nU2VsZWN0aW9uKCkpOworICAgIGlmICghdHlwZUFuZEVsZW1lbnQgfHwgdHlwZUFuZEVs
ZW1lbnQtPmZpcnN0ICE9IG1fdHlwZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBsaXN0
VG9SZXBsYWNlID0gV1RGTW92ZSh0eXBlQW5kRWxlbWVudC0+c2Vjb25kKTsKKyAgICBhdXRvIG5l
d0xpc3QgPSBjcmVhdGVOZXdMaXN0KGxpc3RUb1JlcGxhY2UpOworICAgIGluc2VydE5vZGVCZWZv
cmUobmV3TGlzdC5jb3B5UmVmKCksIGxpc3RUb1JlcGxhY2UpOworICAgIG1vdmVSZW1haW5pbmdT
aWJsaW5nc1RvTmV3UGFyZW50KGxpc3RUb1JlcGxhY2UtPmZpcnN0Q2hpbGQoKSwgbnVsbHB0ciwg
bmV3TGlzdCk7CisgICAgcmVtb3ZlTm9kZShsaXN0VG9SZXBsYWNlKTsKKyAgICBzZXRFbmRpbmdT
ZWxlY3Rpb24oeyBQb3NpdGlvbiB7IG5ld0xpc3QucHRyKCksIFBvc2l0aW9uOjpQb3NpdGlvbklz
QWZ0ZXJDaGlsZHJlbiB9fSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ2hhbmdlTGlzdFR5cGVDb21tYW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0NoYW5nZUxpc3RUeXBlQ29tbWFuZC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVh
ZTNjNTU5OTU0NjZlNTUzNjUxYThjYmQ2MzUzNjFmN2M5MWZjNjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NoYW5nZUxpc3RUeXBlQ29tbWFuZC5oCkBAIC0wLDAg
KzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbXBvc2l0
ZUVkaXRDb21tYW5kLmgiCisjaW5jbHVkZSAiRWRpdEFjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9P
cHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBIVE1MRWxl
bWVudDsKKworY2xhc3MgQ2hhbmdlTGlzdFR5cGVDb21tYW5kIGZpbmFsIDogcHVibGljIENvbXBv
c2l0ZUVkaXRDb21tYW5kIHsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90
IHsgQ29udmVydFRvT3JkZXJlZExpc3QsIENvbnZlcnRUb1Vub3JkZXJlZExpc3QgfTsKKyAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxUeXBlPiBsaXN0Q29udmVyc2lvblR5cGUoRG9jdW1lbnQmKTsK
KyAgICBzdGF0aWMgUmVmPENoYW5nZUxpc3RUeXBlQ29tbWFuZD4gY3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCwgVHlwZSB0eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q2hhbmdlTGlzdFR5cGVDb21tYW5kKGRvY3VtZW50LCB0eXBlKSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIENoYW5nZUxpc3RUeXBlQ29tbWFuZChEb2N1bWVudCYgZG9jdW1lbnQsIFR5cGUgdHlw
ZSkKKyAgICAgICAgOiBDb21wb3NpdGVFZGl0Q29tbWFuZChkb2N1bWVudCkKKyAgICAgICAgLCBt
X3R5cGUodHlwZSkKKyAgICB7CisgICAgfQorCisgICAgRWRpdEFjdGlvbiBlZGl0aW5nQWN0aW9u
KCkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6Q29udmVy
dFRvT3JkZXJlZExpc3QpCisgICAgICAgICAgICByZXR1cm4gRWRpdEFjdGlvbjo6Q29udmVydFRv
T3JkZXJlZExpc3Q7CisKKyAgICAgICAgcmV0dXJuIEVkaXRBY3Rpb246OkNvbnZlcnRUb1Vub3Jk
ZXJlZExpc3Q7CisgICAgfQorCisgICAgYm9vbCBwcmVzZXJ2ZXNUeXBpbmdTdHlsZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGRvQXBwbHkoKSBmaW5hbDsKKworICAg
IFJlZjxIVE1MRWxlbWVudD4gY3JlYXRlTmV3TGlzdChjb25zdCBIVE1MRWxlbWVudCYgbGlzdFRv
UmVwbGFjZSk7CisKKyAgICBUeXBlIG1fdHlwZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdEFjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKaW5kZXggZTgxMjI4ODRlYTBhN2YwMTk4
MTc5NGRiY2RlZTk3OWI5ZjUwMTVlNi4uZmViNzc4NmU5Yjc3YmUyNWU3NmVjZjRhMDU1MWIwMjBj
Zjc3ZmUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0QWN0aW9uLmgKQEAgLTg0LDYgKzg0LDgg
QEAgZW51bSBjbGFzcyBFZGl0QWN0aW9uIDogdWludDhfdCB7CiAgICAgRm9ybWF0QmxvY2ssCiAg
ICAgSW5zZXJ0T3JkZXJlZExpc3QsCiAgICAgSW5zZXJ0VW5vcmRlcmVkTGlzdCwKKyAgICBDb252
ZXJ0VG9PcmRlcmVkTGlzdCwKKyAgICBDb252ZXJ0VG9Vbm9yZGVyZWRMaXN0LAogICAgIEluZGVu
dCwKICAgICBPdXRkZW50CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDdjMDY0
OWUxYjIyMDUyMjM3ZTdlYTlmOWIxYzQ4ZmYxMTk0NTUzMWQuLmMyZjQ5ZTZjN2E4NzdmY2ZjOWJj
NGQ2MGFlZjViMzQxNDA0Y2QyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKICNp
bmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJDaGFuZ2VMaXN0VHlwZUNvbW1hbmQuaCIKICNpbmNsdWRlICJDbGlw
Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkNvbXBvc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJD
cmVhdGVMaW5rQ29tbWFuZC5oIgpAQCAtMTQ3NiwxNSArMTQ3NywxMCBAQCB2b2lkIEVkaXRvcjo6
cGVyZm9ybURlbGV0ZSgpCiAgICAgc2V0U3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKGZhbHNlKTsK
IH0KIAotYm9vbCBFZGl0b3I6OmNhbkNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKCkKLXsKLSAgICAv
LyBGSVhNRTogTm90IGltcGxlbWVudGVkLgotICAgIHJldHVybiBmYWxzZTsKLX0KLQogdm9pZCBF
ZGl0b3I6OmNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKCkKIHsKLSAgICAvLyBGSVhNRTogTm90IGlt
cGxlbWVudGVkLgorICAgIGlmIChhdXRvIHR5cGUgPSBDaGFuZ2VMaXN0VHlwZUNvbW1hbmQ6Omxp
c3RDb252ZXJzaW9uVHlwZShkb2N1bWVudCgpKSkKKyAgICAgICAgQ2hhbmdlTGlzdFR5cGVDb21t
YW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgKnR5cGUpLT5hcHBseSgpOwogfQogCiB2b2lkIEVkaXRv
cjo6c2ltcGxpZnlNYXJrdXAoTm9kZSogc3RhcnROb2RlLCBOb2RlKiBlbmROb2RlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKaW5kZXggYWQ5ZmMwYjE2MzdmZWZmYWVmYzczMmNjMzRhYzUyZjY1MzIx
ZjZiZC4uMGRkZWE4Mjc5NDIzNDhkNjA4ZGFlYWE2YjJkYWI4OGFhY2U2NmQ1YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCkBAIC0yMDYsNyArMjA2LDYgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIFJlZlB0cjxOb2RlPiBpbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbE9yZGVyZWQoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8Tm9kZT4gaW5jcmVhc2VTZWxlY3Rpb25MaXN0TGV2
ZWxVbm9yZGVyZWQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlY3JlYXNlU2VsZWN0aW9u
TGlzdExldmVsKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYW5DaGFuZ2VTZWxlY3Rpb25M
aXN0VHlwZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdlU2VsZWN0aW9uTGlzdFR5
cGUoKTsKICAgIAogICAgIHZvaWQgcmVtb3ZlRm9ybWF0dGluZ0FuZFN0eWxlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNzBiMmJhNjNjN2ZiMjg2ZTQzNTEwMmJhMTA2
OGI1ODFlOGYwMTM5My4uNDZkYmNjYjY4OThiZTdiMmNjNDQ0YjhiNWUzZWExOGI5NTM0YTA5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjIyNyw2ICsyMjI3LDEyIEBA
IHZvaWQgSW50ZXJuYWxzOjpoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZShjb25zdCBTdHJpbmcmIGNh
bmRpZGF0ZSwgdW5zaWduZWQgbG9jYXRpCiAgICAgY29udGV4dERvY3VtZW50KCktPmZyYW1lKCkt
PmVkaXRvcigpLmhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKHJlc3VsdCk7CiB9CiAKK3ZvaWQgSW50
ZXJuYWxzOjpjaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpCit7CisgICAgaWYgKGF1dG8gZnJhbWUg
PSBtYWtlUmVmUHRyKHRoaXMtPmZyYW1lKCkpKQorICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY2hh
bmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKK30KKwogYm9vbCBJbnRlcm5hbHM6OmlzT3ZlcndyaXRl
TW9kZUVuYWJsZWQoKQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVu
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMGUzZTljMzYzODJhOTFkM2E0
YmQ1ZDAzMGRjN2M1YTNkODVkNDhlZi4uMTFjZmI3Njc4NDcxYjA5M2UyNzJjMjRmMTA5NjEwNTY4
NjAzMGExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0zMTQsNiArMzE0LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0QXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxl
ZChib29sKTsKIAogICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoY29uc3QgU3RyaW5n
JiBjYW5kaWRhdGUsIHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHZv
aWQgY2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKIAogICAgIGJvb2wgaXNPdmVyd3JpdGVNb2Rl
RW5hYmxlZCgpOwogICAgIHZvaWQgdG9nZ2xlT3ZlcndyaXRlTW9kZUVuYWJsZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBmNGNkYTE1YTcxYjk5ZDUyOWY2ZTZhZjEz
ODg4MTdlYjQ5YzUwNzk3Li42YjY2YmYzM2Y5NmI3N2I0MmYxYmRjMzJjNmMzOGEwODM1NjRiOWJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zMzMsNiArMzMzLDcgQEAg
ZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgdm9pZCBzZXRBdXRvbWF0aWNTcGVsbGluZ0Nv
cnJlY3Rpb25FbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAKICAgICB2b2lkIGhhbmRsZUFjY2Vw
dGVkQ2FuZGlkYXRlKERPTVN0cmluZyBjYW5kaWRhdGUsIHVuc2lnbmVkIGxvbmcgbG9jYXRpb24s
IHVuc2lnbmVkIGxvbmcgbGVuZ3RoKTsKKyAgICB2b2lkIGNoYW5nZVNlbGVjdGlvbkxpc3RUeXBl
KCk7CiAKICAgICBib29sZWFuIGlzT3ZlcndyaXRlTW9kZUVuYWJsZWQoKTsKICAgICB2b2lkIHRv
Z2dsZU92ZXJ3cml0ZU1vZGVFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJFZGl0Q29tbWFuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkVkaXRDb21tYW5kUHJveHkuY3BwCmluZGV4IDZmZDhkZjVkMWE2NTUzZmNmMTQ3OGY5NGFi
ZTI3NDQ2MmI5YjdjNDEuLmNkYjU2MmY1OTdmY2I4OTk0NzkyMTkwNjFjM2NkYTI4ZDJjNGVhZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkVkaXRDb21tYW5kUHJveHkuY3Bw
CkBAIC0xNzEsNiArMTcxLDEyIEBAIFN0cmluZyBXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9y
RWRpdEFjdGlvbihFZGl0QWN0aW9uIGVkaXRBY3Rpb24pCiAgICAgICAgIHJldHVybiBXRUJfVUlf
U1RSSU5HX0tFWSgiSW5kZW50IiwgIkluZGVudCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBh
Y3Rpb24gbmFtZSIpOwogICAgIGNhc2UgRWRpdEFjdGlvbjo6T3V0ZGVudDoKICAgICAgICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJPdXRkZW50IiwgIk91dGRlbnQgKFVuZG8gYWN0aW9uIG5h
bWUpIiwgIlVuZG8gYWN0aW9uIG5hbWUiKTsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGdpdmUg
aW50ZXJuYWwgY2xpZW50cyBhIHdheSB0byBvdmVycmlkZSB0aGVzZSB1bmRvIG5hbWVzLiBGb3Ig
aW5zdGFuY2UsIE1haWwgcmVmZXJzIHRvIG9yZGVyZWQgYW5kIHVub3JkZXJlZCBsaXN0cyBhcyAi
bnVtYmVyZWQiIGFuZCAiYnVsbGV0ZWQiIGxpc3RzLCByZXNwZWN0aXZlbHksCisgICAgLy8gZGVz
cGl0ZSB0aGUgZmFjdCB0aGF0IG9yZGVyZWQgYW5kIHVub3JkZXJlZCBsaXN0cyBhcmUgbm90IG5l
Y2Vzc2FyaWx5IGRpc3BsYXllZCB1c2luZyBidWxsZXRzIGFuZCBudW1lcmFscy4KKyAgICBjYXNl
IEVkaXRBY3Rpb246OkNvbnZlcnRUb09yZGVyZWRMaXN0OgorICAgICAgICByZXR1cm4gV0VCX1VJ
X1NUUklOR19LRVkoIkNvbnZlcnQgdG8gT3JkZXJlZCBMaXN0IiwgIkNvbnZlcnQgdG8gT3JkZXJl
ZCBMaXN0IChVbmRvIGFjdGlvbiBuYW1lKSIsICJDb252ZXJ0IHRvIG9yZGVyZWQgbGlzdCBhY3Rp
b24gbmFtZSIpOworICAgIGNhc2UgRWRpdEFjdGlvbjo6Q29udmVydFRvVW5vcmRlcmVkTGlzdDoK
KyAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJDb252ZXJ0IHRvIFVub3JkZXJlZCBM
aXN0IiwgIkNvbnZlcnQgdG8gVW5vcmRlcmVkIExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIkNv
bnZlcnQgdG8gdW5vcmRlcmVkIGxpc3QgYWN0aW9uIG5hbWUiKTsKICAgICB9CiAgICAgcmV0dXJu
IFN0cmluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCBlN2ZhZTg1YWM4OTliNTRhMzgxZGZiMmYyZWYzNWM2NDJkNmIyNGJhLi42M2Jj
YTIyZGE0NTNiNThlODU4YzAyMDllMzQ5YmY2NjY2Y2Y1ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTE1MiwyMyArMTE1MiwxNyBAQCB2
b2lkIFdlYlBhZ2U6OnNldEVkaXRhYmxlKGJvb2wgZWRpdGFibGUpCiAKIHZvaWQgV2ViUGFnZTo6
aW5jcmVhc2VMaXN0TGV2ZWwoKQogewotICAgIGF1dG8mIGVkaXRvciA9IG1fcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZWRpdG9yKCk7Ci0gICAgaWYgKGVkaXRv
ci5jYW5JbmNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbCgpKQotICAgICAgICBlZGl0b3IuaW5jcmVh
c2VTZWxlY3Rpb25MaXN0TGV2ZWwoKTsKKyAgICBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZv
Y3VzZWRPck1haW5GcmFtZSgpLmVkaXRvcigpLmluY3JlYXNlU2VsZWN0aW9uTGlzdExldmVsKCk7
CiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGVjcmVhc2VMaXN0TGV2ZWwoKQogewotICAgIGF1dG8mIGVk
aXRvciA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuZWRp
dG9yKCk7Ci0gICAgaWYgKGVkaXRvci5jYW5EZWNyZWFzZVNlbGVjdGlvbkxpc3RMZXZlbCgpKQot
ICAgICAgICBlZGl0b3IuZGVjcmVhc2VTZWxlY3Rpb25MaXN0TGV2ZWwoKTsKKyAgICBtX3BhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmVkaXRvcigpLmRlY3JlYXNl
U2VsZWN0aW9uTGlzdExldmVsKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Y2hhbmdlTGlzdFR5cGUo
KQogewotICAgIGF1dG8mIGVkaXRvciA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNl
ZE9yTWFpbkZyYW1lKCkuZWRpdG9yKCk7Ci0gICAgaWYgKGVkaXRvci5jYW5DaGFuZ2VTZWxlY3Rp
b25MaXN0VHlwZSgpKQotICAgICAgICBlZGl0b3IuY2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsK
KyAgICBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmVkaXRv
cigpLmNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKCk7CiB9CiAKIGJvb2wgV2ViUGFnZTo6aXNFZGl0
aW5nQ29tbWFuZEVuYWJsZWQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQppbmRleCAzZDZhZmNiMDIwODhkY2YzNWViZDlkOWU3NzA1MjI3ODRjNmI4NDBiLi4yZWIy
MGIyMzQzMTM2NjFhNmM0NWUwN2NjZmFiMGM4ZWY5ZDIzMDMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1t
CkBAIC02NTMsNiArNjUzLDggQEAgc3RhdGljIE5TU3RyaW5nKiB1bmRvTmFtZUZvckVkaXRBY3Rp
b24oRWRpdEFjdGlvbiBlZGl0QWN0aW9uKQogICAgIGNhc2UgRWRpdEFjdGlvbjo6SXRhbGljczog
cmV0dXJuIFVJX1NUUklOR19LRVlfSU5URVJOQUwoIkl0YWxpY3MiLCAiSXRhbGljcyAoVW5kbyBh
Y3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIGNhc2UgRWRpdEFjdGlvbjo6
RGVsZXRlOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiRGVsZXRlIiwgIkRlbGV0ZSAo
VW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwogICAgIGNhc2UgRWRpdEFj
dGlvbjo6RGljdGF0aW9uOiByZXR1cm4gVUlfU1RSSU5HX0tFWV9JTlRFUk5BTCgiRGljdGF0aW9u
IiwgIkRpY3RhdGlvbiAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiVW5kbyBhY3Rpb24gbmFtZSIpOwor
ICAgIGNhc2UgRWRpdEFjdGlvbjo6Q29udmVydFRvT3JkZXJlZExpc3Q6IHJldHVybiBVSV9TVFJJ
TkdfS0VZX0lOVEVSTkFMKCJDb252ZXJ0IHRvIE9yZGVyZWQgTGlzdCIsICJDb252ZXJ0IHRvIE9y
ZGVyZWQgTGlzdCAoVW5kbyBhY3Rpb24gbmFtZSkiLCAiQ29udmVydCB0byBvcmRlcmVkIGxpc3Qg
YWN0aW9uIG5hbWUiKTsKKyAgICBjYXNlIEVkaXRBY3Rpb246OkNvbnZlcnRUb1Vub3JkZXJlZExp
c3Q6IHJldHVybiBVSV9TVFJJTkdfS0VZX0lOVEVSTkFMKCJDb252ZXJ0IHRvIFVub3JkZXJlZCBM
aXN0IiwgIkNvbnZlcnQgdG8gVW5vcmRlcmVkIExpc3QgKFVuZG8gYWN0aW9uIG5hbWUpIiwgIkNv
bnZlcnQgdG8gdW5vcmRlcmVkIGxpc3QgYWN0aW9uIG5hbWUiKTsKICAgICB9CiAgICAgcmV0dXJu
IG5pbDsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBhZGQ5MTc2NTJjNDY1YTgwN2Q3MzFmOTgwY2ZjODhjMmJhOWE4ZjkxLi5lMDcwNTU4NzYz
MzdiMTQ5ODZjZWE3YzAwOTFmMDcyMzdkYWQ1ZjhiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTgtMTEtMTEgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGEgbmV3IGVkaXQgY29tbWFuZCB0byBjaGFuZ2UgdGhlIGVuY2xvc2luZyBsaXN0IHR5cGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTQ4NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDU5NTU5MjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlv
c3VrZSBOaXdhLgorCisgICAgICAgIEFkZCBhIG5ldyBBUEkgdGVzdCB0byB2ZXJpZnkgdGhhdCBg
LVtXS1dlYlZpZXcgX2NoYW5nZUxpc3RUeXBlOl1gIGlzIGhvb2tlZCB1cCB0byB0aGUgY29ycmVz
cG9uZGluZyBlZGl0aW5nCisgICAgICAgIGNvbW1hbmQgaW4gV2ViQ29yZS4gU2VlIHRoZSBuZXcg
bGF5b3V0IHRlc3QgZm9yIGEgdGVzdCB0aGF0IGV4ZXJjaXNlcyBtb3JlIG51YW5jZWQgY29ybmVy
IGNhc2VzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYlZpZXdFZGl0QWN0aW9ucy5tbToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBz
ZXRQb3NpdGlvbjpvZmZzZXQ6XSk6CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgc2V0QmFzZTpi
YXNlT2Zmc2V0OmV4dGVudDpleHRlbnRPZmZzZXQ6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
Ojp3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmdXaXRoUGFnZU5hbWVkKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvZWRpdGFibGUtbmVzdGVkLWxpc3RzLmh0bWw6IEFkZGVkLgorCiAyMDE4LTExLTEwICBS
eWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyMzgwNjUuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQ1YThjYWE4
ZjM2ZGRmM2JmYzk3OWU0MGY2MjRiYjA3OWY5NjBmYWEuLjRiMzg5NGE5Zjc5ZWQ0ODgzZjg2YzRl
NzY1Zjg5Nzc2NDdjODM0YjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NjYsNiArODY2
LDcgQEAKIAkJRjRENEYzQjkxRTRFMzZFNDAwQkIyNzY3IC8qIERyYWdBbmREcm9wVGVzdHNJT1Mu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ0RjNC
NzFFNEUzNkU0MDBCQjI3NjcgLyogRHJhZ0FuZERyb3BUZXN0c0lPUy5tbSAqLzsgfTsKIAkJRjRE
NUU0RTgxRjBDNUQzODAwOEMxQTQ5IC8qIGRyYWdzdGFydC1jbGVhci1zZWxlY3Rpb24uaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ1
RTRFNzFGMEM1RDI3MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNsZWFyLXNlbGVjdGlvbi5odG1sICov
OyB9OwogCQlGNEQ2NURBODFGNUU0NzA0MDA5RDhDMjcgLyogc2VsZWN0ZWQtdGV4dC1pbWFnZS1s
aW5rLWFuZC1lZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDY1REE3MUY1RTQ2QzAwMDlEOEMyNyAvKiBzZWxlY3RlZC10
ZXh0LWltYWdlLWxpbmstYW5kLWVkaXRhYmxlLmh0bWwgKi87IH07CisJCUY0RDk4MThGMjE5NkI5
MjAwMDgyMzBGQyAvKiBlZGl0YWJsZS1uZXN0ZWQtbGlzdHMuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ5ODE4RTIxOTZCOTExMDA4
MjMwRkMgLyogZWRpdGFibGUtbmVzdGVkLWxpc3RzLmh0bWwgKi87IH07CiAJCUY0REVGNkVEMUU5
QjREQjYwMDQ4RUY2MSAvKiBpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0REVGNkVDMUU5QjRE
OTUwMDQ4RUY2MSAvKiBpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sICovOyB9OwogCQlGNEUw
QTI4QjIxMUU0QTJCMDBBRjdDN0YgLyogZnVsbC1wYWdlLWRyb3B6b25lLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ2MTI4RDgyMTFF
NDk2MzAwRDlGQURCIC8qIGZ1bGwtcGFnZS1kcm9wem9uZS5odG1sICovOyB9OwogCQlGNEUwQTI4
RjIxMUU1RDVCMDBBRjdDN0YgLyogRHJhZ0FuZERyb3BUZXN0c01hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RTBBMjhFMjExRTVENUIwMEFGN0M3
RiAvKiBEcmFnQW5kRHJvcFRlc3RzTWFjLm1tICovOyB9OwpAQCAtMTAzMSw2ICsxMDMyLDcgQEAK
IAkJCQkyRUIyOUQ1RTFGNzYyREI5MDAyM0E1RjEgLyogZHVtcC1kYXRhdHJhbnNmZXItdHlwZXMu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlBMTU1MDIyQzFFMDUwRDAzMDBBMjRDNTcg
LyogZHVwbGljYXRlLWNvbXBsZXRpb24taGFuZGxlci1jYWxscy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTk5ODRGQUNFMUNGRkIwOTAwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJRjREOTgxOEYyMTk2QjkyMDAwODIzMEZDIC8q
IGVkaXRhYmxlLW5lc3RlZC1saXN0cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0
NEQwNjQ1MUYzOTVDMjYwMDFBMEUyOSAvKiBlZGl0b3Itc3RhdGUtdGVzdC1oYXJuZXNzLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTFDOEUxQTkxRjI3RjQ5NjAwQkY3MzFCIC8qIEVt
cHR5R3JhbmRmYXRoZXJlZFJlc291cmNlTG9hZFN0YXRpc3RpY3MucGxpc3QgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJQTE0QUFCNjUxRTc4REM1NDAwQzFBREMyIC8qIGVuY3J5cHRlZC5wZGYg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0yMTUzLDYgKzIxNTUsNyBAQAogCQlGNEQ0RjNCNzFF
NEUzNkU0MDBCQjI3NjcgLyogRHJhZ0FuZERyb3BUZXN0c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdBbmREcm9wVGVzdHNJT1MubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDVFNEU3MUYwQzVEMjcwMDhDMUE0OSAvKiBkcmFnc3Rh
cnQtY2xlYXItc2VsZWN0aW9uLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZHJhZ3N0YXJ0LWNsZWFyLXNlbGVj
dGlvbi5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENjVEQTcxRjVFNDZD
MDAwOUQ4QzI3IC8qIHNlbGVjdGVkLXRleHQtaW1hZ2UtbGluay1hbmQtZWRpdGFibGUuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJzZWxlY3RlZC10ZXh0LWltYWdlLWxpbmstYW5k
LWVkaXRhYmxlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEQ5ODE4RTIx
OTZCOTExMDA4MjMwRkMgLyogZWRpdGFibGUtbmVzdGVkLWxpc3RzLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
ZWRpdGFibGUtbmVzdGVkLWxpc3RzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNERFRjZFQzFFOUI0RDk1MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFMEEyOEUyMTFFNUQ1QjAwQUY3
QzdGIC8qIERyYWdBbmREcm9wVGVzdHNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFn
QW5kRHJvcFRlc3RzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEUwQTI5
NTIxMUZDNUEzMDBBRjdDN0YgLyogc2VsZWN0ZWQtdGV4dC1hbmQtdGV4dGFyZWEuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJzZWxlY3RlZC10ZXh0LWFuZC10ZXh0YXJlYS5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI3MzQsNiArMjczNyw3IEBACiAJCQkJMkVCMjlENUQxRjc2MkRBNTAw
MjNBNUYxIC8qIGR1bXAtZGF0YXRyYW5zZmVyLXR5cGVzLmh0bWwgKi8sCiAJCQkJQTE1NTAyMkIx
RTA1MEJDNTAwQTI0QzU3IC8qIGR1cGxpY2F0ZS1jb21wbGV0aW9uLWhhbmRsZXItY2FsbHMuaHRt
bCAqLywKIAkJCQk5OTg0RkFDRDFDRkZCMDM4MDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1s
ICovLAorCQkJCUY0RDk4MThFMjE5NkI5MTEwMDgyMzBGQyAvKiBlZGl0YWJsZS1uZXN0ZWQtbGlz
dHMuaHRtbCAqLywKIAkJCQlGNDREMDY0NDFGMzk1QzBEMDAxQTBFMjkgLyogZWRpdG9yLXN0YXRl
LXRlc3QtaGFybmVzcy5odG1sICovLAogCQkJCTUxQzhFMUE4MUYyN0Y0NzMwMEJGNzMxQiAvKiBF
bXB0eUdyYW5kZmF0aGVyZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLnBsaXN0ICovLAogCQkJCUY0
QzJBQjIxMURENkQ5NDEwMEUwNkQ1QiAvKiBlbm9ybW91cy12aWRlby13aXRoLXNvdW5kLmh0bWwg
Ki8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
V2ViVmlld0VkaXRBY3Rpb25zLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYlZpZXdFZGl0QWN0aW9ucy5tbQppbmRleCBhODQyYjgwZWI0YmJhMWJmMGRlM2Iw
NmE2YzU1NTM4YWE5ZDJlODc5Li40YmY1OTE0MmVlODBhZmU4MmI5YjkyYjdiNjNiZDQxODJjNjA3
MWIyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
V2ViVmlld0VkaXRBY3Rpb25zLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tXZWJWaWV3RWRpdEFjdGlvbnMubW0KQEAgLTM5LDYgKzM5LDggQEAKIEBpbnRl
cmZhY2UgVGVzdFdLV2ViVmlldyAoRWRpdEFjdGlvblRlc3RpbmcpCiAtIChCT09MKXF1ZXJ5U2Vs
ZWN0b3JFeGlzdHM6KE5TU3RyaW5nICopcXVlcnlTZWxlY3RvcjsKIC0gKHZvaWQpaW5zZXJ0U3Ry
aW5nOihOU1N0cmluZyAqKXN0cmluZzsKKy0gKHZvaWQpc2V0UG9zaXRpb246KE5TU3RyaW5nICop
Y29udGFpbmVyIG9mZnNldDooTlNVSW50ZWdlcilvZmZzZXQ7CistICh2b2lkKXNldEJhc2U6KE5T
U3RyaW5nICopYmFzZSBiYXNlT2Zmc2V0OihOU1VJbnRlZ2VyKWJhc2VPZmZzZXQgZXh0ZW50OihO
U1N0cmluZyAqKWV4dGVudCBleHRlbnRPZmZzZXQ6KE5TVUludGVnZXIpZXh0ZW50T2Zmc2V0Owog
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyAoRWRpdEFjdGlvblRlc3Rpbmcp
CkBAIC01Nyw2ICs1OSwxNiBAQAogI2VuZGlmCiB9CiAKKy0gKHZvaWQpc2V0UG9zaXRpb246KE5T
U3RyaW5nICopY29udGFpbmVyIG9mZnNldDooTlNVSW50ZWdlcilvZmZzZXQKK3sKKyAgICBbc2Vs
ZiBldmFsdWF0ZUphdmFTY3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJnZXRTZWxl
Y3Rpb24oKS5zZXRQb3NpdGlvbiglQCwgJXR1KSIsIGNvbnRhaW5lciwgb2Zmc2V0XSBjb21wbGV0
aW9uSGFuZGxlcjpuaWxdOworfQorCistICh2b2lkKXNldEJhc2U6KE5TU3RyaW5nICopYmFzZSBi
YXNlT2Zmc2V0OihOU1VJbnRlZ2VyKWJhc2VPZmZzZXQgZXh0ZW50OihOU1N0cmluZyAqKWV4dGVu
dCBleHRlbnRPZmZzZXQ6KE5TVUludGVnZXIpZXh0ZW50T2Zmc2V0Cit7CisgICAgW3NlbGYgZXZh
bHVhdGVKYXZhU2NyaXB0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiZ2V0U2VsZWN0aW9u
KCkuc2V0QmFzZUFuZEV4dGVudCglQCwgJXR1LCAlQCwgJXR1KSIsIGJhc2UsIGJhc2VPZmZzZXQs
IGV4dGVudCwgZXh0ZW50T2Zmc2V0XSBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworfQorCiBAZW5k
CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKQEAgLTcwLDYgKzgyLDE1IEBAIHN0YXRpYyBS
ZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nKE5TU3Ry
aW5nICptYXJrdXApCiAgICAgcmV0dXJuIHdlYlZpZXc7CiB9CiAKK3N0YXRpYyBSZXRhaW5QdHI8
VGVzdFdLV2ViVmlldz4gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nV2l0aFBhZ2VOYW1lZChO
U1N0cmluZyAqdGVzdFBhZ2VOYW1lKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNDAwLCA0
MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOnRlc3RQ
YWdlTmFtZV07CisgICAgW3dlYlZpZXcgX3NldEVkaXRhYmxlOllFU107CisgICAgW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9u
KGRvY3VtZW50LmJvZHksIDEpIl07CisgICAgcmV0dXJuIHdlYlZpZXc7Cit9CisKIHN0YXRpYyBS
ZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nKCkKIHsK
ICAgICByZXR1cm4gd2ViVmlld0ZvckVkaXRBY3Rpb25UZXN0aW5nKEAiPGRpdj5XZWJLaXQ8L2Rp
dj4iKTsKQEAgLTc5LDE3ICsxMDAsMTcgQEAgVEVTVChXS1dlYlZpZXdFZGl0QWN0aW9ucywgTW9k
aWZ5TGlzdExldmVsKQogewogICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdGb3JFZGl0QWN0aW9u
VGVzdGluZyhAIjxvbD48bGk+Rm9vPC9saT48b2w+PGxpIGlkPSdiYXInPkJhcjwvbGk+PC9vbD48
dWw+PGxpIGlkPSdiYXonPkJhejwvbGk+PC91bD48L29sPiIpOwogCi0gICAgW3dlYlZpZXcgZXZh
bHVhdGVKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oYmFyLCAwKSIgY29t
cGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBbd2ViVmlldyBzZXRQb3NpdGlvbjpAImJhciIgb2Zm
c2V0OjBdOwogICAgIFt3ZWJWaWV3IF9kZWNyZWFzZUxpc3RMZXZlbDpuaWxdOwogICAgIEVYUEVD
VF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IGxpI2JhciJdKTsKICAg
ICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiB1bCA+IGxp
I2JheiJdKTsKIAotICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImdldFNlbGVjdGlv
bigpLnNldFBvc2l0aW9uKGJheiwgMCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgW3dl
YlZpZXcgc2V0UG9zaXRpb246QCJiYXoiIG9mZnNldDowXTsKICAgICBbd2ViVmlldyBfZGVjcmVh
c2VMaXN0TGV2ZWw6bmlsXTsKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9y
RXhpc3RzOkAib2wgPiBsaSNiYXIiXSk7CiAgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlT
ZWxlY3RvckV4aXN0czpAIm9sID4gbGkjYmF6Il0pOwogCi0gICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChiYXIsIDAsIGJheiwg
MSkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgW3dlYlZpZXcgc2V0QmFzZTpAImJhciIg
YmFzZU9mZnNldDowIGV4dGVudDpAImJheiIgZXh0ZW50T2Zmc2V0OjFdOwogICAgIFt3ZWJWaWV3
IF9pbmNyZWFzZUxpc3RMZXZlbDpuaWxdOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5
U2VsZWN0b3JFeGlzdHM6QCJvbCA+IG9sID4gbGkjYmFyIl0pOwogICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJvbCA+IG9sID4gbGkjYmF6Il0pOwpAQCAtOTks
NiArMTIwLDIzIEBAIFRFU1QoV0tXZWJWaWV3RWRpdEFjdGlvbnMsIE1vZGlmeUxpc3RMZXZlbCkK
ICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBxdWVyeVNlbGVjdG9yRXhpc3RzOkAib2wgPiBsaSNi
YXoiXSk7CiB9CiAKK1RFU1QoV0tXZWJWaWV3RWRpdEFjdGlvbnMsIENoYW5nZUxpc3RUeXBlKQor
eworICAgIGF1dG8gd2ViVmlldyA9IHdlYlZpZXdGb3JFZGl0QWN0aW9uVGVzdGluZ1dpdGhQYWdl
TmFtZWQoQCJlZGl0YWJsZS1uZXN0ZWQtbGlzdHMiKTsKKworICAgIFt3ZWJWaWV3IHNldFBvc2l0
aW9uOkAib25lIiBvZmZzZXQ6MV07CisgICAgW3dlYlZpZXcgX2NoYW5nZUxpc3RUeXBlOm5pbF07
CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0czpAIm9sLmxpc3Qg
PiBsaSNvbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgcXVlcnlTZWxlY3RvckV4aXN0
czpAIm9sLmxpc3QgPiBsaSNmb3VyIl0pOworCisgICAgW3dlYlZpZXcgc2V0QmFzZTpAInR3byIg
YmFzZU9mZnNldDowIGV4dGVudDpAInR3byIgZXh0ZW50T2Zmc2V0OjFdOworICAgIFt3ZWJWaWV3
IF9jaGFuZ2VMaXN0VHlwZTpuaWxdOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IHF1ZXJ5U2Vs
ZWN0b3JFeGlzdHM6QCJ1bC5saXN0ID4gbGkjdHdvIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IHF1ZXJ5U2VsZWN0b3JFeGlzdHM6QCJ1bC5saXN0ID4gbGkjdGhyZWUiXSk7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKCJyZ2IoMjU1LCAwLCAwKSIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0
d28nKSkuY29sb3IiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJyZ2IoMjU1LCAwLCAwKSIsIFt3
ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRDb21wdXRlZFN0eWxlKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN0aHJlZScpKS5jb2xvciJdKTsKK30KKwogVEVTVChXS1dl
YlZpZXdFZGl0QWN0aW9ucywgTmVzdGVkTGlzdEluc2VydGlvbikKIHsKICAgICBhdXRvIHdlYlZp
ZXcgPSB3ZWJWaWV3Rm9yRWRpdEFjdGlvblRlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvZWRpdGFibGUtbmVzdGVkLWxpc3RzLmh0bWwg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2VkaXRhYmxlLW5lc3RlZC1s
aXN0cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNWQwNzFkMDVhNWQwY2EyZmJmMWE1MTdhMGUyZTcwMjJj
OTA5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL2VkaXRhYmxlLW5lc3RlZC1saXN0cy5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBjb250ZW50ZWRpdGFibGU+Cis8dWwgY2xhc3M9Imxp
c3QiPgorICAgIDxsaSBpZD0ib25lIj5vbmU8L2xpPgorICAgIDxvbCBjbGFzcz0ibGlzdCIgc3R5
bGU9ImNvbG9yOiByZWQiPgorICAgICAgICA8bGkgaWQ9InR3byI+dHdvPC9saT4KKyAgICAgICAg
PGxpIGlkPSJ0aHJlZSI+dGhyZWU8L2xpPgorICAgIDwvb2w+CisgICAgPGxpIGlkPSJmb3VyIj5m
b3VyPC9saT4KKyAgICA8cHJlPgorICAgICAgICA8b2wgY2xhc3M9Imxpc3QiPgorICAgICAgICAg
ICAgPGxpIGlkPSJmaXZlIj5maXZlPC9saT4KKyAgICAgICAgICAgIDxsaSBpZD0ic2l4Ij5zaXg8
L2xpPgorICAgICAgICA8L29sPgorICAgIDwvcHJlPgorPC91bD4KKzwvYm9keT4KKzxzY3JpcHQ+
CisgICAgZG9jdW1lbnQuYm9keS5mb2N1cygpOworPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NGY4ZDE3YTY3MGQ3MzE1ODI4MzE4ZDIyZTU3NzU1MTUwOWEzNjZjMi4uYmM5ZDU4NGRhYzU3ZTc5
YmRjYzJkYTUwODc5ZmM1ZTk5NWI3YmVmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTEx
LTExICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCBhIG5ldyBlZGl0IGNvbW1hbmQgdG8gY2hhbmdlIHRoZSBlbmNsb3NpbmcgbGlzdCB0
eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE0
ODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1OTU1OTIyPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBBZGQgYSBuZXcgbGF5b3V0IHRlc3QgdG8gdmVy
aWZ5IHRoYXQgdGhlIGxpc3QgY2hhbmdlIHR5cGUgZWRpdGluZyBjb21tYW5kIGNhbiBiZSB1c2Vk
IHRvIHN3YXAgYmV0d2VlbiBlbmNsb3NpbmcKKyAgICAgICAgb3JkZXJlZCBhbmQgdW5vcmRlcmVk
IGxpc3RzLiBBbHNvIGV4ZXJjaXNlcyB1bmRvLCByZWRvLCBjaGFuZ2luZyBsaXN0IHR5cGVzIHVu
ZGVyIGBwcmVgIGFuZCBgdGFibGVgIGVsZW1lbnRzLAorICAgICAgICBhbmQgaGFuZGxpbmcgc2Vs
ZWN0aW9uIHdpdGhpbiBuZXN0ZWQgbGlzdCBlbGVtZW50cy4KKworICAgICAgICAqIGVkaXRpbmcv
ZXhlY0NvbW1hbmQvY2hhbmdlLWxpc3QtdHlwZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvY2hhbmdlLWxpc3QtdHlwZS5odG1sOiBBZGRlZC4KKwog
MjAxOC0xMS0xMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgLXdlYmtpdC1zdmctc2hhZG93CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NoYW5nZS1saXN0LXR5cGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9jaGFuZ2UtbGlzdC10eXBlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmMwMjU2MGI1YmVhMzM4OTdhNjUwNDI2N2FmZTZkOGRi
NWJmMTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFu
ZC9jaGFuZ2UtbGlzdC10eXBlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcyMSBAQAorVmVyaWZp
ZXMgdGhhdCB0aGUgJ2xpc3QgdHlwZSBjaGFuZ2UnIGVkaXRpbmcgY29tbWFuZCB3b3JrcyBhcyBl
eHBlY3RlZC4gVGhpcyB0ZXN0IHJlcXVpcmVzIFdlYktpdFRlc3RSdW5uZXIgb3IgRHVtcFJlbmRl
clRyZWUuCisKK0FmdGVyIG1ha2luZyB0aGUgb3V0ZXIgbGlzdCBvcmRlcmVkOgorfCAiCisgICAg
ICAgICIKK3wgPG9sPgorfCAgIGNsYXNzPSJsaXN0IgorfCAgICIKKyAgICAgICAgICAgICIKK3wg
ICA8bGk+Cit8ICAgICBpZD0ib25lIgorfCAgICAgIm9uZSIKK3wgICAiCisgICAgICAgICAgICAi
Cit8ICAgPG9sPgorfCAgICAgY2xhc3M9Imxpc3QiCit8ICAgICBzdHlsZT0iY29sb3I6IHJlZCIK
K3wgICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAgICA8bGk+Cit8ICAgICAgIGlkPSJ0d28i
Cit8ICAgICAgICJ0d28iCit8ICAgICAiCisgICAgICAgICAgICAgICAgIgorfCAgICAgPGxpPgor
fCAgICAgICBpZD0idGhyZWUiCit8ICAgICAgICJ0aHJlZSIKK3wgICAgICIKKyAgICAgICAgICAg
ICIKK3wgICAiCisgICAgICAgICAgICAiCit8ICAgPGxpPgorfCAgICAgaWQ9ImZvdXIiCit8ICAg
ICAiZm91ciIKK3wgICAiCisgICAgICAgICAgICAiCit8ICAgPHByZT4KK3wgICAgICIgICAgICAg
ICAgICAgICAgIgorfCAgICAgPG9sPgorfCAgICAgICBjbGFzcz0ibGlzdCIKK3wgICAgICAgIgor
ICAgICAgICAgICAgICAgICAgICAiCit8ICAgICAgIDxsaT4KK3wgICAgICAgICBpZD0iZml2ZSIK
K3wgICAgICAgICAiZml2ZSIKK3wgICAgICAgIgorICAgICAgICAgICAgICAgICAgICAiCit8ICAg
ICAgIDxsaT4KK3wgICAgICAgICBpZD0ic2l4IgorfCAgICAgICAgICJzaXgiCit8ICAgICAgICIK
KyAgICAgICAgICAgICAgICAiCit8ICAgICAiCisgICAgICAgICAgICA8I3NlbGVjdGlvbi1jYXJl
dD4iCit8ICAgIgorICAgICAgICAiCit8ICIKKyAgICAiCisKK0FmdGVyIGFuIHVuZG86Cit8ICIK
KyAgICAgICAgIgorfCA8dWw+Cit8ICAgY2xhc3M9Imxpc3QiCit8ICAgIgorICAgICAgICAgICAg
IgorfCAgIDxsaT4KK3wgICAgIGlkPSJvbmUiCit8ICAgICAib25lPCNzZWxlY3Rpb24tY2FyZXQ+
IgorfCAgICIKKyAgICAgICAgICAgICIKK3wgICA8b2w+Cit8ICAgICBjbGFzcz0ibGlzdCIKK3wg
ICAgIHN0eWxlPSJjb2xvcjogcmVkIgorfCAgICAgIgorICAgICAgICAgICAgICAgICIKK3wgICAg
IDxsaT4KK3wgICAgICAgaWQ9InR3byIKK3wgICAgICAgInR3byIKK3wgICAgICIKKyAgICAgICAg
ICAgICAgICAiCit8ICAgICA8bGk+Cit8ICAgICAgIGlkPSJ0aHJlZSIKK3wgICAgICAgInRocmVl
IgorfCAgICAgIgorICAgICAgICAgICAgIgorfCAgICIKKyAgICAgICAgICAgICIKK3wgICA8bGk+
Cit8ICAgICBpZD0iZm91ciIKK3wgICAgICJmb3VyIgorfCAgICIKKyAgICAgICAgICAgICIKK3wg
ICA8cHJlPgorfCAgICAgIiAgICAgICAgICAgICAgICAiCit8ICAgICA8b2w+Cit8ICAgICAgIGNs
YXNzPSJsaXN0IgorfCAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICIKK3wgICAgICAgPGxp
PgorfCAgICAgICAgIGlkPSJmaXZlIgorfCAgICAgICAgICJmaXZlIgorfCAgICAgICAiCisgICAg
ICAgICAgICAgICAgICAgICIKK3wgICAgICAgPGxpPgorfCAgICAgICAgIGlkPSJzaXgiCit8ICAg
ICAgICAgInNpeCIKK3wgICAgICAgIgorICAgICAgICAgICAgICAgICIKK3wgICAgICIKKyAgICAg
ICAgICAgICIKK3wgICAiCisgICAgICAgICIKK3wgIgorICAgICIKKworQWZ0ZXIgYSByZWRvOgor
fCAiCisgICAgICAgICIKK3wgPG9sPgorfCAgIGNsYXNzPSJsaXN0IgorfCAgICIKKyAgICAgICAg
ICAgICIKK3wgICA8bGk+Cit8ICAgICBpZD0ib25lIgorfCAgICAgIm9uZSIKK3wgICAiCisgICAg
ICAgICAgICAiCit8ICAgPG9sPgorfCAgICAgY2xhc3M9Imxpc3QiCit8ICAgICBzdHlsZT0iY29s
b3I6IHJlZCIKK3wgICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAgICA8bGk+Cit8ICAgICAg
IGlkPSJ0d28iCit8ICAgICAgICJ0d28iCit8ICAgICAiCisgICAgICAgICAgICAgICAgIgorfCAg
ICAgPGxpPgorfCAgICAgICBpZD0idGhyZWUiCit8ICAgICAgICJ0aHJlZSIKK3wgICAgICIKKyAg
ICAgICAgICAgICIKK3wgICAiCisgICAgICAgICAgICAiCit8ICAgPGxpPgorfCAgICAgaWQ9ImZv
dXIiCit8ICAgICAiZm91ciIKK3wgICAiCisgICAgICAgICAgICAiCit8ICAgPHByZT4KK3wgICAg
ICIgICAgICAgICAgICAgICAgIgorfCAgICAgPG9sPgorfCAgICAgICBjbGFzcz0ibGlzdCIKK3wg
ICAgICAgIgorICAgICAgICAgICAgICAgICAgICAiCit8ICAgICAgIDxsaT4KK3wgICAgICAgICBp
ZD0iZml2ZSIKK3wgICAgICAgICAiZml2ZSIKK3wgICAgICAgIgorICAgICAgICAgICAgICAgICAg
ICAiCit8ICAgICAgIDxsaT4KK3wgICAgICAgICBpZD0ic2l4IgorfCAgICAgICAgICJzaXgiCit8
ICAgICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAgICAiCisgICAgICAgICAgICA8I3NlbGVj
dGlvbi1jYXJldD4iCit8ICAgIgorICAgICAgICAiCit8ICIKKyAgICAiCisKK0FmdGVyIG1ha2lu
ZyB0aGUgZmlyc3Qgc3VibGlzdCB1bm9yZGVyZWQ6Cit8ICIKKyAgICAgICAgIgorfCA8b2w+Cit8
ICAgY2xhc3M9Imxpc3QiCit8ICAgIgorICAgICAgICAgICAgIgorfCAgIDxsaT4KK3wgICAgIGlk
PSJvbmUiCit8ICAgICAib25lIgorfCAgICIKKyAgICAgICAgICAgICIKK3wgICA8dWw+Cit8ICAg
ICBjbGFzcz0ibGlzdCIKK3wgICAgIHN0eWxlPSJjb2xvcjogcmVkIgorfCAgICAgIgorICAgICAg
ICAgICAgICAgICIKK3wgICAgIDxsaT4KK3wgICAgICAgaWQ9InR3byIKK3wgICAgICAgInR3byIK
K3wgICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAgICA8bGk+Cit8ICAgICAgIGlkPSJ0aHJl
ZSIKK3wgICAgICAgInRocmVlPCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAgICAgIgorICAgICAgICAg
ICAgIgorfCAgICIKKyAgICAgICAgICAgICIKK3wgICA8bGk+Cit8ICAgICBpZD0iZm91ciIKK3wg
ICAgICJmb3VyIgorfCAgICIKKyAgICAgICAgICAgICIKK3wgICA8cHJlPgorfCAgICAgIiAgICAg
ICAgICAgICAgICAiCit8ICAgICA8b2w+Cit8ICAgICAgIGNsYXNzPSJsaXN0IgorfCAgICAgICAi
CisgICAgICAgICAgICAgICAgICAgICIKK3wgICAgICAgPGxpPgorfCAgICAgICAgIGlkPSJmaXZl
IgorfCAgICAgICAgICJmaXZlIgorfCAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICIKK3wg
ICAgICAgPGxpPgorfCAgICAgICAgIGlkPSJzaXgiCit8ICAgICAgICAgInNpeCIKK3wgICAgICAg
IgorICAgICAgICAgICAgICAgICIKK3wgICAgICIKKyAgICAgICAgICAgICIKK3wgICAiCisgICAg
ICAgICIKK3wgIgorICAgICIKKworQWZ0ZXIgY2hhbmdpbmcgdGhlIGZpcnN0IHN1Ymxpc3QgYmFj
ayB0byBvcmRlcmVkOgorfCAiCisgICAgICAgICIKK3wgPG9sPgorfCAgIGNsYXNzPSJsaXN0Igor
fCAgICIKKyAgICAgICAgICAgICIKK3wgICA8bGk+Cit8ICAgICBpZD0ib25lIgorfCAgICAgIm9u
ZSIKK3wgICAiCisgICAgICAgICAgICAiCit8ICAgPG9sPgorfCAgICAgY2xhc3M9Imxpc3QiCit8
ICAgICBzdHlsZT0iY29sb3I6IHJlZCIKK3wgICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAg
ICA8bGk+Cit8ICAgICAgIGlkPSJ0d28iCit8ICAgICAgICJ0d28iCit8ICAgICAiCisgICAgICAg
ICAgICAgICAgIgorfCAgICAgPGxpPgorfCAgICAgICBpZD0idGhyZWUiCit8ICAgICAgICJ0aHJl
ZTwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgICAgICIKKyAgICAgICAgICAgICIKK3wgICAiCisgICAg
ICAgICAgICAiCit8ICAgPGxpPgorfCAgICAgaWQ9ImZvdXIiCit8ICAgICAiZm91ciIKK3wgICAi
CisgICAgICAgICAgICAiCit8ICAgPHByZT4KK3wgICAgICIgICAgICAgICAgICAgICAgIgorfCAg
ICAgPG9sPgorfCAgICAgICBjbGFzcz0ibGlzdCIKK3wgICAgICAgIgorICAgICAgICAgICAgICAg
ICAgICAiCit8ICAgICAgIDxsaT4KK3wgICAgICAgICBpZD0iZml2ZSIKK3wgICAgICAgICAiZml2
ZSIKK3wgICAgICAgIgorICAgICAgICAgICAgICAgICAgICAiCit8ICAgICAgIDxsaT4KK3wgICAg
ICAgICBpZD0ic2l4IgorfCAgICAgICAgICJzaXgiCit8ICAgICAgICIKKyAgICAgICAgICAgICAg
ICAiCit8ICAgICAiCisgICAgICAgICAgICAiCit8ICAgIgorICAgICAgICAiCit8ICIKKyAgICAi
CisKK0FmdGVyIG1ha2luZyB0aGUgc2Vjb25kIHN1Ymxpc3QgdW5vcmRlcmVkOgorfCAiCisgICAg
ICAgICIKK3wgPG9sPgorfCAgIGNsYXNzPSJsaXN0IgorfCAgICIKKyAgICAgICAgICAgICIKK3wg
ICA8bGk+Cit8ICAgICBpZD0ib25lIgorfCAgICAgIm9uZSIKK3wgICAiCisgICAgICAgICAgICAi
Cit8ICAgPG9sPgorfCAgICAgY2xhc3M9Imxpc3QiCit8ICAgICBzdHlsZT0iY29sb3I6IHJlZCIK
K3wgICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAgICA8bGk+Cit8ICAgICAgIGlkPSJ0d28i
Cit8ICAgICAgICJ0d28iCit8ICAgICAiCisgICAgICAgICAgICAgICAgIgorfCAgICAgPGxpPgor
fCAgICAgICBpZD0idGhyZWUiCit8ICAgICAgICJ0aHJlZSIKK3wgICAgICIKKyAgICAgICAgICAg
ICIKK3wgICAiCisgICAgICAgICAgICAiCit8ICAgPGxpPgorfCAgICAgaWQ9ImZvdXIiCit8ICAg
ICAiZm91ciIKK3wgICAiCisgICAgICAgICAgICAiCit8ICAgPHByZT4KK3wgICAgICIgICAgICAg
ICAgICAgICAgIgorfCAgICAgPHVsPgorfCAgICAgICBjbGFzcz0ibGlzdCIKK3wgICAgICAgIgor
ICAgICAgICAgICAgICAgICAgICAiCit8ICAgICAgIDxsaT4KK3wgICAgICAgICBpZD0iZml2ZSIK
K3wgICAgICAgICAiZml2ZSIKK3wgICAgICAgIgorICAgICAgICAgICAgICAgICAgICAiCit8ICAg
ICAgIDxsaT4KK3wgICAgICAgICBpZD0ic2l4IgorfCAgICAgICAgICJzaXgiCit8ICAgICAgICIK
KyAgICAgICAgICAgICAgICA8I3NlbGVjdGlvbi1jYXJldD4iCit8ICAgICAiCisgICAgICAgICAg
ICAiCit8ICAgIgorICAgICAgICAiCit8ICIKKyAgICAiCisKK0FmdGVyIGFuIHVuZG86Cit8ICIK
KyAgICAgICAgIgorfCA8b2w+Cit8ICAgY2xhc3M9Imxpc3QiCit8ICAgIgorICAgICAgICAgICAg
IgorfCAgIDxsaT4KK3wgICAgIGlkPSJvbmUiCit8ICAgICAib25lIgorfCAgICIKKyAgICAgICAg
ICAgICIKK3wgICA8b2w+Cit8ICAgICBjbGFzcz0ibGlzdCIKK3wgICAgIHN0eWxlPSJjb2xvcjog
cmVkIgorfCAgICAgIgorICAgICAgICAgICAgICAgICIKK3wgICAgIDxsaT4KK3wgICAgICAgaWQ9
InR3byIKK3wgICAgICAgInR3byIKK3wgICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAgICA8
bGk+Cit8ICAgICAgIGlkPSJ0aHJlZSIKK3wgICAgICAgInRocmVlIgorfCAgICAgIgorICAgICAg
ICAgICAgIgorfCAgICIKKyAgICAgICAgICAgICIKK3wgICA8bGk+Cit8ICAgICBpZD0iZm91ciIK
K3wgICAgICJmb3VyIgorfCAgICIKKyAgICAgICAgICAgICIKK3wgICA8cHJlPgorfCAgICAgIiAg
ICAgICAgICAgICAgICAiCit8ICAgICA8b2w+Cit8ICAgICAgIGNsYXNzPSJsaXN0IgorfCAgICAg
ICAiCisgICAgICAgICAgICAgICAgICAgICIKK3wgICAgICAgPGxpPgorfCAgICAgICAgIGlkPSJm
aXZlIgorfCAgICAgICAgICI8I3NlbGVjdGlvbi1hbmNob3I+Zml2ZSIKK3wgICAgICAgIgorICAg
ICAgICAgICAgICAgICAgICAiCit8ICAgICAgIDxsaT4KK3wgICAgICAgICBpZD0ic2l4IgorfCAg
ICAgICAgICJzaXg8I3NlbGVjdGlvbi1mb2N1cz4iCit8ICAgICAgICIKKyAgICAgICAgICAgICAg
ICAiCit8ICAgICAiCisgICAgICAgICAgICAiCit8ICAgIgorICAgICAgICAiCit8ICIKKyAgICAi
CisKK0FmdGVyIG1ha2luZyB0aGUgb3V0ZXIgbGlzdCB1bm9yZGVyZWQ6Cit8ICIKKyAgICAgICAg
IgorfCA8dWw+Cit8ICAgY2xhc3M9Imxpc3QiCit8ICAgIgorICAgICAgICAgICAgIgorfCAgIDxs
aT4KK3wgICAgIGlkPSJvbmUiCit8ICAgICAib25lIgorfCAgICIKKyAgICAgICAgICAgICIKK3wg
ICA8b2w+Cit8ICAgICBjbGFzcz0ibGlzdCIKK3wgICAgIHN0eWxlPSJjb2xvcjogcmVkIgorfCAg
ICAgIgorICAgICAgICAgICAgICAgICIKK3wgICAgIDxsaT4KK3wgICAgICAgaWQ9InR3byIKK3wg
ICAgICAgInR3byIKK3wgICAgICIKKyAgICAgICAgICAgICAgICAiCit8ICAgICA8bGk+Cit8ICAg
ICAgIGlkPSJ0aHJlZSIKK3wgICAgICAgInRocmVlIgorfCAgICAgIgorICAgICAgICAgICAgIgor
fCAgICIKKyAgICAgICAgICAgICIKK3wgICA8bGk+Cit8ICAgICBpZD0iZm91ciIKK3wgICAgICJm
b3VyIgorfCAgICIKKyAgICAgICAgICAgICIKK3wgICA8cHJlPgorfCAgICAgIiAgICAgICAgICAg
ICAgICAiCit8ICAgICA8b2w+Cit8ICAgICAgIGNsYXNzPSJsaXN0IgorfCAgICAgICAiCisgICAg
ICAgICAgICAgICAgICAgICIKK3wgICAgICAgPGxpPgorfCAgICAgICAgIGlkPSJmaXZlIgorfCAg
ICAgICAgICJmaXZlIgorfCAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICIKK3wgICAgICAg
PGxpPgorfCAgICAgICAgIGlkPSJzaXgiCit8ICAgICAgICAgInNpeCIKK3wgICAgICAgIgorICAg
ICAgICAgICAgICAgICIKK3wgICAgICIKKyAgICAgICAgICAgIDwjc2VsZWN0aW9uLWNhcmV0PiIK
K3wgICAiCisgICAgICAgICIKK3wgIgorICAgICIKKworQWZ0ZXIgbWFraW5nIHRoZSBvdXRlciBs
aXN0IG9yZGVyZWQgYWdhaW46Cit8ICIKKyAgICAgICAgIgorfCA8b2w+Cit8ICAgY2xhc3M9Imxp
c3QiCit8ICAgIgorICAgICAgICAgICAgIgorfCAgIDxsaT4KK3wgICAgIGlkPSJvbmUiCit8ICAg
ICAib25lIgorfCAgICIKKyAgICAgICAgICAgICIKK3wgICA8b2w+Cit8ICAgICBjbGFzcz0ibGlz
dCIKK3wgICAgIHN0eWxlPSJjb2xvcjogcmVkIgorfCAgICAgIgorICAgICAgICAgICAgICAgICIK
K3wgICAgIDxsaT4KK3wgICAgICAgaWQ9InR3byIKK3wgICAgICAgInR3byIKK3wgICAgICIKKyAg
ICAgICAgICAgICAgICAiCit8ICAgICA8bGk+Cit8ICAgICAgIGlkPSJ0aHJlZSIKK3wgICAgICAg
InRocmVlIgorfCAgICAgIgorICAgICAgICAgICAgIgorfCAgICIKKyAgICAgICAgICAgICIKK3wg
ICA8bGk+Cit8ICAgICBpZD0iZm91ciIKK3wgICAgICJmb3VyIgorfCAgICIKKyAgICAgICAgICAg
ICIKK3wgICA8cHJlPgorfCAgICAgIiAgICAgICAgICAgICAgICAiCit8ICAgICA8b2w+Cit8ICAg
ICAgIGNsYXNzPSJsaXN0IgorfCAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICIKK3wgICAg
ICAgPGxpPgorfCAgICAgICAgIGlkPSJmaXZlIgorfCAgICAgICAgICJmaXZlIgorfCAgICAgICAi
CisgICAgICAgICAgICAgICAgICAgICIKK3wgICAgICAgPGxpPgorfCAgICAgICAgIGlkPSJzaXgi
Cit8ICAgICAgICAgInNpeCIKK3wgICAgICAgIgorICAgICAgICAgICAgICAgICIKK3wgICAgICIK
KyAgICAgICAgICAgIDwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgICAiCisgICAgICAgICIKK3wgIgor
ICAgICIKKworQWZ0ZXIgbWFraW5nIHRoZSBsZWZ0IGxpc3QgdW5vcmRlcmVkOgorfCAiCisgICAg
ICAgICIKK3wgPHRhYmxlPgorfCAgICIKKyAgICAgICAgICAgICIKK3wgICA8dGJvZHk+Cit8ICAg
ICAiCisgICAgICAgICAgICAgICAgIgorfCAgICAgPHRyPgorfCAgICAgICAiCisgICAgICAgICAg
ICAgICAgICAgICIKK3wgICAgICAgPHRkPgorfCAgICAgICAgICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICIKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgImZvbyIKK3wgICAgICAgICAi
CisgICAgICAgICAgICAgICAgICAgICAgICAiCit8ICAgICAgICAgPHVsPgorfCAgICAgICAgICAg
Y2xhc3M9Imxpc3QiCit8ICAgICAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IgorfCAgICAgICAgICAgPGxpPgorfCAgICAgICAgICAgICBpZD0ic2V2ZW4iCit8ICAgICAgICAg
ICAgICJzZXZlbiIKK3wgICAgICAgICAgICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Cit8ICAgICAgICAgICA8bGk+Cit8ICAgICAgICAgICAgIGlkPSJlaWdodCIKK3wgICAgICAgICAg
ICAgImVpZ2h0PCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAgICAgICAgICAgIgorICAgICAgICAgICAg
ICAgICAgICAgICAgIgorfCAgICAgICAgICIKKyAgICAgICAgICAgICAgICAgICAgIgorfCAgICAg
ICAiCisgICAgICAgICAgICAgICAgICAgICIKK3wgICAgICAgPHRkPgorfCAgICAgICAgICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICIKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgImJh
ciIKK3wgICAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICAgICAiCit8ICAgICAgICAgPHVs
PgorfCAgICAgICAgICAgY2xhc3M9Imxpc3QiCit8ICAgICAgICAgICAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIgorfCAgICAgICAgICAgPGxpPgorfCAgICAgICAgICAgICBpZD0ibmlu
ZSIKK3wgICAgICAgICAgICAgIm5pbmUiCit8ICAgICAgICAgICAiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIgorfCAgICAgICAgICAgPGxpPgorfCAgICAgICAgICAgICBpZD0idGVuIgor
fCAgICAgICAgICAgICAidGVuIgorfCAgICAgICAgICAgIgorICAgICAgICAgICAgICAgICAgICAg
ICAgIgorfCAgICAgICAgICIKKyAgICAgICAgICAgICAgICAgICAgIgorfCAgICAgICAiCisgICAg
ICAgICAgICAgICAgIgorfCAgICAgIgorICAgICAgICAgICAgIgorfCAgICIKKyAgICAgICAgIgor
fCAiCisgICAgIgorCitBZnRlciBtYWtpbmcgdGhlIHJpZ2h0IGxpc3Qgb3JkZXJlZDoKK3wgIgor
ICAgICAgICAiCit8IDx0YWJsZT4KK3wgICAiCisgICAgICAgICAgICAiCit8ICAgPHRib2R5Pgor
fCAgICAgIgorICAgICAgICAgICAgICAgICIKK3wgICAgIDx0cj4KK3wgICAgICAgIgorICAgICAg
ICAgICAgICAgICAgICAiCit8ICAgICAgIDx0ZD4KK3wgICAgICAgICAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAiCit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICJmb28iCit8ICAgICAg
ICAgIgorICAgICAgICAgICAgICAgICAgICAgICAgIgorfCAgICAgICAgIDx1bD4KK3wgICAgICAg
ICAgIGNsYXNzPSJsaXN0IgorfCAgICAgICAgICAgIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIKK3wgICAgICAgICAgIDxsaT4KK3wgICAgICAgICAgICAgaWQ9InNldmVuIgorfCAgICAg
ICAgICAgICAic2V2ZW4iCit8ICAgICAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIgorfCAgICAgICAgICAgPGxpPgorfCAgICAgICAgICAgICBpZD0iZWlnaHQiCit8ICAgICAg
ICAgICAgICJlaWdodCIKK3wgICAgICAgICAgICIKKyAgICAgICAgICAgICAgICAgICAgICAgICIK
K3wgICAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICIKK3wgICAgICAgIgorICAgICAgICAg
ICAgICAgICAgICAiCit8ICAgICAgIDx0ZD4KK3wgICAgICAgICAiCisgICAgICAgICAgICAgICAg
ICAgICAgICAiCit8ICAgICAgICAgPGRpdj4KK3wgICAgICAgICAgICJiYXIiCit8ICAgICAgICAg
IgorICAgICAgICAgICAgICAgICAgICAgICAgIgorfCAgICAgICAgIDxvbD4KK3wgICAgICAgICAg
IGNsYXNzPSJsaXN0IgorfCAgICAgICAgICAgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIKK3wgICAgICAgICAgIDxsaT4KK3wgICAgICAgICAgICAgaWQ9Im5pbmUiCit8ICAgICAgICAg
ICAgICJuaW5lIgorfCAgICAgICAgICAgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIK
K3wgICAgICAgICAgIDxsaT4KK3wgICAgICAgICAgICAgaWQ9InRlbiIKK3wgICAgICAgICAgICAg
InRlbjwjc2VsZWN0aW9uLWNhcmV0PiIKK3wgICAgICAgICAgICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICIKK3wgICAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICIKK3wgICAgICAgIgor
ICAgICAgICAgICAgICAgICIKK3wgICAgICIKKyAgICAgICAgICAgICIKK3wgICAiCisgICAgICAg
ICIKK3wgIgorICAgICIKKworQWZ0ZXIgc2VsZWN0aW5nIGJvdGggbGlzdHMgYW5kIGNoYW5naW5n
IGxpc3QgdHlwZSAodGhpcyBzaG91bGQgYmUgYSBuby1vcCk6Cit8ICIKKyAgICAgICAgIgorfCA8
dGFibGU+Cit8ICAgIgorICAgICAgICAgICAgIgorfCAgIDx0Ym9keT4KK3wgICAgICIKKyAgICAg
ICAgICAgICAgICAiCit8ICAgICA8dHI+Cit8ICAgICAgICIKKyAgICAgICAgICAgICAgICAgICAg
IgorfCAgICAgICA8dGQ+Cit8ICAgICAgICAgIgorICAgICAgICAgICAgICAgICAgICAgICAgIgor
fCAgICAgICAgIDxkaXY+Cit8ICAgICAgICAgICAiZm9vIgorfCAgICAgICAgICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICIKK3wgICAgICAgICA8dWw+Cit8ICAgICAgICAgICBjbGFzcz0ibGlz
dCIKK3wgICAgICAgICAgICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiCit8ICAgICAg
ICAgICA8bGk+Cit8ICAgICAgICAgICAgIGlkPSJzZXZlbiIKK3wgICAgICAgICAgICAgIjwjc2Vs
ZWN0aW9uLWFuY2hvcj5zZXZlbiIKK3wgICAgICAgICAgICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiCit8ICAgICAgICAgICA8bGk+Cit8ICAgICAgICAgICAgIGlkPSJlaWdodCIKK3wg
ICAgICAgICAgICAgImVpZ2h0IgorfCAgICAgICAgICAgIgorICAgICAgICAgICAgICAgICAgICAg
ICAgIgorfCAgICAgICAgICIKKyAgICAgICAgICAgICAgICAgICAgIgorfCAgICAgICAiCisgICAg
ICAgICAgICAgICAgICAgICIKK3wgICAgICAgPHRkPgorfCAgICAgICAgICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICIKK3wgICAgICAgICA8ZGl2PgorfCAgICAgICAgICAgImJhciIKK3wgICAg
ICAgICAiCisgICAgICAgICAgICAgICAgICAgICAgICAiCit8ICAgICAgICAgPG9sPgorfCAgICAg
ICAgICAgY2xhc3M9Imxpc3QiCit8ICAgICAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIgorfCAgICAgICAgICAgPGxpPgorfCAgICAgICAgICAgICBpZD0ibmluZSIKK3wgICAg
ICAgICAgICAgIm5pbmUiCit8ICAgICAgICAgICAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIgorfCAgICAgICAgICAgPGxpPgorfCAgICAgICAgICAgICBpZD0idGVuIgorfCAgICAgICAg
ICAgICAidGVuPCNzZWxlY3Rpb24tZm9jdXM+IgorfCAgICAgICAgICAgIgorICAgICAgICAgICAg
ICAgICAgICAgICAgIgorfCAgICAgICAgICIKKyAgICAgICAgICAgICAgICAgICAgIgorfCAgICAg
ICAiCisgICAgICAgICAgICAgICAgIgorfCAgICAgIgorICAgICAgICAgICAgIgorfCAgICIKKyAg
ICAgICAgIgorfCAiCisgICAgIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVj
Q29tbWFuZC9jaGFuZ2UtbGlzdC10eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL2NoYW5nZS1saXN0LXR5cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDQyNTBlMTgwOTQ4NTcw
OTY5NTliZjNmMjdjMDM2NjA0NTBlYjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC9jaGFuZ2UtbGlzdC10eXBlLmh0bWwKQEAgLTAsMCArMSwxMDQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9lZGl0
aW5nLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1t
YXJrdXAuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBjb250ZW50ZWRp
dGFibGUgaWQ9InRvcCI+CisgICAgICAgIDx1bCBjbGFzcz0ibGlzdCI+CisgICAgICAgICAgICA8
bGkgaWQ9Im9uZSI+b25lPC9saT4KKyAgICAgICAgICAgIDxvbCBjbGFzcz0ibGlzdCIgc3R5bGU9
ImNvbG9yOiByZWQiPgorICAgICAgICAgICAgICAgIDxsaSBpZD0idHdvIj50d288L2xpPgorICAg
ICAgICAgICAgICAgIDxsaSBpZD0idGhyZWUiPnRocmVlPC9saT4KKyAgICAgICAgICAgIDwvb2w+
CisgICAgICAgICAgICA8bGkgaWQ9ImZvdXIiPmZvdXI8L2xpPgorICAgICAgICAgICAgPHByZT4K
KyAgICAgICAgICAgICAgICA8b2wgY2xhc3M9Imxpc3QiPgorICAgICAgICAgICAgICAgICAgICA8
bGkgaWQ9ImZpdmUiPmZpdmU8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9InNpeCI+
c2l4PC9saT4KKyAgICAgICAgICAgICAgICA8L29sPgorICAgICAgICAgICAgPC9wcmU+CisgICAg
ICAgIDwvdWw+CisgICAgPC9kaXY+CisgICAgPGRpdiBjb250ZW50ZWRpdGFibGUgaWQ9ImJvdHRv
bSI+CisgICAgICAgIDx0YWJsZT4KKyAgICAgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICAgICAg
ICA8dHI+CisgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDxkaXY+Zm9vPC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICA8b2wgY2xhc3M9Imxpc3Qi
PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBpZD0ic2V2ZW4iPnNldmVuPC9saT4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9ImVpZ2h0Ij5laWdodDwvbGk+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8L29sPgorICAgICAgICAgICAgICAgICAgICA8L3RkPgor
ICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PmJh
cjwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJsaXN0Ij4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9Im5pbmUiPm5pbmU8L2xpPgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxsaSBpZD0idGVuIj50ZW48L2xpPgorICAgICAgICAgICAgICAg
ICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAg
ICA8L3RyPgorICAgICAgICAgICAgPC90Ym9keT4KKyAgICAgICAgPC90YWJsZT4KKyAgICA8L2Rp
dj4KKyAgICA8c2NyaXB0PgorICAgIChhc3luYyAoKSA9PiB7CisgICAgICAgIE1hcmt1cC5kZXNj
cmlwdGlvbigiVmVyaWZpZXMgdGhhdCB0aGUgJ2xpc3QgdHlwZSBjaGFuZ2UnIGVkaXRpbmcgY29t
bWFuZCB3b3JrcyBhcyBleHBlY3RlZC4gVGhpcyB0ZXN0IHJlcXVpcmVzIFdlYktpdFRlc3RSdW5u
ZXIgb3IgRHVtcFJlbmRlclRyZWUuIik7CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscykK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBNYXJrdXAud2FpdFVudGlsRG9uZSgpOwor
CisgICAgICAgIHRvcC5mb2N1cygpOworICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlv
bihvbmUsIDEpOworICAgICAgICBpbnRlcm5hbHMuY2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsK
KyAgICAgICAgTWFya3VwLmR1bXAoInRvcCIsICJBZnRlciBtYWtpbmcgdGhlIG91dGVyIGxpc3Qg
b3JkZXJlZCIpOworCisgICAgICAgIHVuZG9Db21tYW5kKCk7CisgICAgICAgIE1hcmt1cC5kdW1w
KCJ0b3AiLCAiQWZ0ZXIgYW4gdW5kbyIpOworCisgICAgICAgIHJlZG9Db21tYW5kKCk7CisgICAg
ICAgIE1hcmt1cC5kdW1wKCJ0b3AiLCAiQWZ0ZXIgYSByZWRvIik7CisKKyAgICAgICAgZ2V0U2Vs
ZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudCh0d28sIDAsIHR3bywgMSk7CisgICAgICAgIGludGVy
bmFscy5jaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpOworICAgICAgICBNYXJrdXAuZHVtcCgidG9w
IiwgIkFmdGVyIG1ha2luZyB0aGUgZmlyc3Qgc3VibGlzdCB1bm9yZGVyZWQiKTsKKworICAgICAg
ICBpbnRlcm5hbHMuY2hhbmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKKyAgICAgICAgTWFya3VwLmR1
bXAoInRvcCIsICJBZnRlciBjaGFuZ2luZyB0aGUgZmlyc3Qgc3VibGlzdCBiYWNrIHRvIG9yZGVy
ZWQiKTsKKworICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXF1ZXN0QW5pbWF0aW9uRnJhbWUp
OworICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGZpdmUsIDAsIHNpeCwg
MSk7CisgICAgICAgIGludGVybmFscy5jaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpOworICAgICAg
ICBNYXJrdXAuZHVtcCgidG9wIiwgIkFmdGVyIG1ha2luZyB0aGUgc2Vjb25kIHN1Ymxpc3QgdW5v
cmRlcmVkIik7CisKKyAgICAgICAgdW5kb0NvbW1hbmQoKTsKKyAgICAgICAgTWFya3VwLmR1bXAo
InRvcCIsICJBZnRlciBhbiB1bmRvIik7CisKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFz
ZUFuZEV4dGVudCh0aHJlZSwgMCwgZml2ZSwgMSk7CisgICAgICAgIGludGVybmFscy5jaGFuZ2VT
ZWxlY3Rpb25MaXN0VHlwZSgpOworICAgICAgICBNYXJrdXAuZHVtcCgidG9wIiwgIkFmdGVyIG1h
a2luZyB0aGUgb3V0ZXIgbGlzdCB1bm9yZGVyZWQiKTsKKworICAgICAgICBpbnRlcm5hbHMuY2hh
bmdlU2VsZWN0aW9uTGlzdFR5cGUoKTsKKyAgICAgICAgTWFya3VwLmR1bXAoInRvcCIsICJBZnRl
ciBtYWtpbmcgdGhlIG91dGVyIGxpc3Qgb3JkZXJlZCBhZ2FpbiIpOworCisgICAgICAgIGJvdHRv
bS5mb2N1cygpOworICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihzZXZlbiwgMCk7
CisgICAgICAgIGludGVybmFscy5jaGFuZ2VTZWxlY3Rpb25MaXN0VHlwZSgpOworICAgICAgICBN
YXJrdXAuZHVtcCgiYm90dG9tIiwgIkFmdGVyIG1ha2luZyB0aGUgbGVmdCBsaXN0IHVub3JkZXJl
ZCIpOworCisgICAgICAgIGdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQobmluZSwgMCwg
dGVuLCAxKTsKKyAgICAgICAgaW50ZXJuYWxzLmNoYW5nZVNlbGVjdGlvbkxpc3RUeXBlKCk7Cisg
ICAgICAgIE1hcmt1cC5kdW1wKCJib3R0b20iLCAiQWZ0ZXIgbWFraW5nIHRoZSByaWdodCBsaXN0
IG9yZGVyZWQiKTsKKworICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHNl
dmVuLCAwLCB0ZW4sIDEpOworICAgICAgICBpbnRlcm5hbHMuY2hhbmdlU2VsZWN0aW9uTGlzdFR5
cGUoKTsKKyAgICAgICAgTWFya3VwLmR1bXAoImJvdHRvbSIsICJBZnRlciBzZWxlY3RpbmcgYm90
aCBsaXN0cyBhbmQgY2hhbmdpbmcgbGlzdCB0eXBlICh0aGlzIHNob3VsZCBiZSBhIG5vLW9wKSIp
OworCisgICAgICAgIE1hcmt1cC5ub3RpZnlEb25lKCk7CisgICAgfSkoKTsKKyAgICA8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>