<?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>48204</bug_id>
          
          <creation_ts>2010-10-24 04:29:43 -0700</creation_ts>
          <short_desc>Convert SVGRect to the new SVGPropertyTearOff concept</short_desc>
          <delta_ts>2010-10-27 14:32:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>47905</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>japhet</cc>
    
    <cc>jorlow</cc>
    
    <cc>krit</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298551</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-24 04:29:43 -0700</bug_when>
    <thetext>Convert SVGRect to the new SVGPropertyTearOff concept. Requires no new generator features, will be a simple patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299438</commentid>
    <comment_count>1</comment_count>
      <attachid>71880</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-26 07:34:45 -0700</bug_when>
    <thetext>Created attachment 71880
Patch

Patch is larger than previously planned. I needed to refactor the SVGPropertyTearOff type handling from all generators into CodeGenerator.pm, to avoid adding hacks like s/SVGRect/FloatRect/ in all generators.
This also removes the need again for the temporary SVGAnimatedProperty/SVGProperty/SVGListProperty markers in the idl files.

Tested with a Mac Leopard debug build, and a Chrome build on Snow Leopard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299571</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-26 10:38:04 -0700</bug_when>
    <thetext>Attachment 71880 did not build on chromium:
Build output: http://queues.webkit.org/results/4792016</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299581</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-26 10:49:33 -0700</bug_when>
    <thetext>It built fine for me.... retrying build from scratch after gclient sync.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299650</commentid>
    <comment_count>4</comment_count>
      <attachid>71918</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-26 11:39:30 -0700</bug_when>
    <thetext>Created attachment 71918
Patch v2

Fix chromium release builds - an unused variable was generated in the v8 build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299766</commentid>
    <comment_count>5</comment_count>
      <attachid>71918</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-10-26 13:31:15 -0700</bug_when>
    <thetext>Comment on attachment 71918
Patch v2

The only problem was const_cast usage in contextElement, WildFox said he&apos;d fix it so r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299785</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-26 14:02:58 -0700</bug_when>
    <thetext>Landed in r70573.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299852</commentid>
    <comment_count>7</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-10-26 15:35:14 -0700</bug_when>
    <thetext>Reverted r70573 for reason:

Broke 39 tests on Chromium

Committed r70581: &lt;http://trac.webkit.org/changeset/70581&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299854</commentid>
    <comment_count>8</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-10-26 15:36:37 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Reverted r70573 for reason:
&gt; 
&gt; Broke 39 tests on Chromium
&gt; 
&gt; Committed r70581: &lt;http://trac.webkit.org/changeset/70581&gt;

Apologies for rolling this out, I couldn&apos;t find you on #webkit. Here are the failures (they look real):

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;useWebKitCanary=true&amp;tests=svg%2Fcustom%2Fclone-element-with-animated-svg-properties.html%2Csvg%2Fcustom%2Fmouse-move-on-svg-root-standalone.svg%2Csvg%2Fcustom%2Fmouse-move-on-svg-root.xhtml%2Csvg%2Fcustom%2Fsvg-curve-with-relative-cordinates.html%2Csvg%2Fcustom%2Fuse-property-changes-through-svg-dom.svg%2Csvg%2Fcustom%2Fviewport-update2.svg%2Csvg%2Fdynamic-updates%2FSVGCircleElement-svgdom-cx-prop.html%2Csvg%2Fdynamic-updates%2FSVGCircleElement-svgdom-cy-prop.html%2Csvg%2Fdynamic-updates%2FSVGCircleElement-svgdom-r-prop.html%2Csvg%2Fdynamic-updates%2FSVGEllipseElement-svgdom-cx-prop.html%2Csvg%2Fdynamic-updates%2FSVGEllipseElement-svgdom-cy-prop.html%2Csvg%2Fdynamic-updates%2FSVGEllipseElement-svgdom-rx-prop.html%2Csvg%2Fdynamic-updates%2FSVGEllipseElement-svgdom-ry-prop.html%2Csvg%2Fdynamic-updates%2FSVGForeignObjectElement-svgdom-height-prop.html%2Csvg%2Fdynamic-updates%2FSVGForeignObjectElement-svgdom-width-prop.html%2Csvg%2Fdynamic-updates%2FSVGForeignObjectElement-svgdom-x-prop.html%2Csvg%2Fdynamic-updates%2FSVGForeignObjectElement-svgdom-y-prop.html%2Csvg%2Fdynamic-updates%2FSVGImageElement-svgdom-height-prop.html%2Csvg%2Fdynamic-updates%2FSVGImageElement-svgdom-width-prop.html%2Csvg%2Fdynamic-updates%2FSVGImageElement-svgdom-x-prop.html%2Csvg%2Fdynamic-updates%2FSVGImageElement-svgdom-y-prop.html%2Csvg%2Fdynamic-updates%2FSVGLineElement-svgdom-x1-prop.html%2Csvg%2Fdynamic-updates%2FSVGLineElement-svgdom-x2-prop.html%2Csvg%2Fdynamic-updates%2FSVGLineElement-svgdom-y1-prop.html%2Csvg%2Fdynamic-updates%2FSVGLineElement-svgdom-y2-prop.html%2Csvg%2Fdynamic-updates%2FSVGMarkerElement-svgdom-markerHeight-prop.html%2Csvg%2Fdynamic-updates%2FSVGMarkerElement-svgdom-markerWidth-prop.html%2Csvg%2Fdynamic-updates%2FSVGMarkerElement-svgdom-orientAngle-prop.html%2Csvg%2Fdynamic-updates%2FSVGMarkerElement-svgdom-refX-prop.html%2Csvg%2Fdynamic-updates%2FSVGMarkerElement-svgdom-refY-prop.html%2Csvg%2Fdynamic-updates%2FSVGMaskElement-svgdom-height-prop.html%2Csvg%2Fdynamic-updates%2FSVGMaskElement-svgdom-width-prop.html%2Csvg%2Fdynamic-updates%2FSVGMaskElement-svgdom-x-prop.html%2Csvg%2Fdynamic-updates%2FSVGMaskElement-svgdom-y-prop.html%2Csvg%2Fdynamic-updates%2FSVGRectElement-svgdom-height-prop.html%2Csvg%2Fdynamic-updates%2FSVGRectElement-svgdom-width-prop.html%2Csvg%2Fdynamic-updates%2FSVGRectElement-svgdom-x-prop.html%2Csvg%2Fdynamic-updates%2FSVGRectElement-svgdom-y-prop.html%2Csvg%2Fcustom%2Fuse-instanceRoot-event-bubbling.xhtml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300034</commentid>
    <comment_count>9</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-26 23:51:41 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Reverted r70573 for reason:
&gt; 
&gt; Broke 39 tests on Chromium
&gt; 
&gt; Committed r70581: &lt;http://trac.webkit.org/changeset/70581&gt;

Oh, that&apos;s a pity. Will look into how I can run tests on my own with my local chrome build.
I only tested building and running the svg/dom tests manually with TestShell.app.
Going to read the docs and try testing on Chrome. It worked fine on Leopard &amp; Snow Leopard, so it has to be related to the V8 changes...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300050</commentid>
    <comment_count>10</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-27 01:01:01 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; Reverted r70573 for reason:
&gt; &gt; 
&gt; &gt; Broke 39 tests on Chromium
&gt; &gt; 
&gt; &gt; Committed r70581: &lt;http://trac.webkit.org/changeset/70581&gt;
&gt; 
&gt; Oh, that&apos;s a pity. Will look into how I can run tests on my own with my local chrome build.
&gt; I only tested building and running the svg/dom tests manually with TestShell.app.
&gt; Going to read the docs and try testing on Chrome. It worked fine on Leopard &amp; Snow Leopard, so it has to be related to the V8 changes...

Running tests on Chromium was trivial, easily spotted the problem within minutes:

-    } elsif ($svgPropertyType) {
+    } elsif ($svgNativeType) {
         if ($useExceptions) {
             push(@implContentDecls, &quot;    if (!ec)\n&quot;);
             push(@implContentDecls, &quot;        wrapper-&gt;commitChange();\n&quot;);

That fixes Chrome, stupid me!
We were not commiting changes, after &quot;foo.viewBox.x.baseVal = 100&quot;. The underlying variables have been changed, but layout was not triggered, nor was &apos;foo&apos; marked for XML-DOM synchronization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300100</commentid>
    <comment_count>11</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-10-27 03:27:38 -0700</bug_when>
    <thetext>Relanded in r70631.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71880</attachid>
            <date>2010-10-26 07:34:45 -0700</date>
            <delta_ts>2010-10-26 11:39:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>SVGRect.patch</filename>
            <type>text/plain</type>
            <size>73090</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDUxOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTAtMTAtMjYgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29udmVydCBTVkdSZWN0IHRvIHRoZSBuZXcgU1ZHUHJvcGVydHlUZWFyT2ZmIGNvbmNl
cHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MjA0
CisKKyAgICAgICAgQ29udmVydCB0aGUgbmV4dCBTVkcgcHJpbWl0aXZlIHR5cGUgdG8gdXNlIHRo
ZSBTVkdQcm9wZXJ0eVRlYXJPZmYgY29uY2VwdDogU1ZHUmVjdC4KKyAgICAgICAgQWRkZWQgbmV3
IHRlc3QgdmVyaWZ5aW5nIHRoYXQgU3RyaWN0VHlwZUNoZWNraW5nIGlzIGVuYWJsZWQgZm9yIFNW
R1JlY3QuIFJlZmFjdG9yIGFuZCBzaGFyZSBjb2RlIGJldHdlZW4gSlNDL1Y4L09iakMgZ2VuZXJh
dG9ycy4KKworICAgICAgICBUZXN0OiBzdmcvZG9tL1NWR1JlY3QuaHRtbAorCisgICAgICAgICog
R05VbWFrZWZpbGUuYW06IEFkZCBTVkdBbmltYXRlZFJlY3QuaCB0byBidWlsZC4KKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG06IFJlZmFjdG9yIFNWR1Byb3BlcnR5VGVhck9m
ZiBoYW5kbGluZywgYW5kIHNoYXJlIGNvZGUgYmV0d2VlbiBKU0MvVjgvT2JqQyBnZW5lcmF0b3Jz
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBEaXR0by4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOiBEaXR0by4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogRGl0dG8uCisg
ICAgICAgICogc3ZnL0RlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5VHJhaXRzLmg6IFJlbW92
ZSBTVkdBbmltYXRlZFJlY3QgaGFuZGxpbmcuCisgICAgICAgICogc3ZnL0RlcHJlY2F0ZWRTVkdB
bmltYXRlZFRlbXBsYXRlLmg6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbmdsZS5pZGw6IFJl
bW92ZSBbU1ZHUHJvcGVydHldIGZsYWcuCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQW5nbGUu
aWRsOiBSZW1vdmUgW1NWR0FuaW1hdGVkUHJvcGVydHldIGZsYWcuCisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoLmlkbDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5pZGw6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFJlY3QuaDogQWRk
ZWQuCisgICAgICAgICogc3ZnL1NWR0ZpdFRvVmlld0JveC5oOiBTVkdSZWN0IG5vdyB1c2VzIHRo
ZSBuZXcgdGVhciBvZmYgY29uY2VwdCwgYWRhcHQgY29kZS4KKyAgICAgICAgKiBzdmcvU1ZHTGVu
Z3RoLmlkbDogUmVtb3ZlIFtTVkdQcm9wZXJ0eV0gZmxhZy4KKyAgICAgICAgKiBzdmcvU1ZHTWFy
a2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdSZWN0LmlkbDogUmVtb3ZlIFtQT0RUeXBlXSBmbGFnLCBhZGQgU3RyaWN0VHlw
ZUNoZWNraW5nIHRvIGFsbCBhdHRyaWJ1dGVzLgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50
LmNwcDogcy9zZXRWaWV3Qm94L3NldFZpZXdCb3hCYXNlVmFsdWUvLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU1ZHRWxlbWVudDo6Y3VycmVudFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZH
RWxlbWVudDo6aW5oZXJpdFZpZXdBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50LmlkbDogUmVtb3ZlIFtJbW11dGFi
bGVdIGZsYWdzIGZvciBTVkdSZWN0IHR5cGVzLCBubyBsb25nZXIgbmVlZGVkLgorICAgICAgICAq
IHN2Zy9TVkdTeW1ib2xFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR1ZpZXdTcGVjLmNwcDogVGFrZSBhIFNWR0VsZW1lbnQgYXMgY29u
dGV4dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVj
KToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpTVkdWaWV3U3BlYzo6Y29udGV4dEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdab29tRXZl
bnQuaWRsOiBSZW1vdmUgW0ltbXV0YWJsZV0gZmxhZ3MgZm9yIFNWR1JlY3QgdHlwZXMsIG5vIGxv
bmdlciBuZWVkZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eU1hY3Jvcy5oOiBTdXBwb3J0IGRlY2xhcmluZyBhbmltYXRlZCBwcm9wZXJ0aWVzIG9uIG5vbi1T
VkdFbGVtZW50IHR5cGVzIChoZXJlOiBTVkdWaWV3U3BlYyksIGp1c3QgbGlrZSB0aGUgb2xkIG1h
Y3JvcyBoYW5kbGVkIGl0LgorCiAyMDEwLTEwLTIwICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KSW5k
ZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQkocmV2aXNpb24gNzA1MTgpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMDQxLDYgKzMwNDEsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuaCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRQb2ludHMuY3BwIFwKIAlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5oIFwKKwlXZWJD
b3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuaCBcCiAJV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1l
bnQuY3BwIFwKIAlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oIFwKIAlXZWJDb3JlL3N2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5
cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDcwNTE4KQor
KysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTM5NzEsNiArMzk3MSw3
IEBACiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuaCcsCiAgICAgICAgICAg
ICAnc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmNwcCcsCiAgICAgICAgICAgICAnc3ZnL1NWR0FuaW1h
dGVkUG9pbnRzLmgnLAorICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRlZFJlY3QuaCcsCiAgICAg
ICAgICAgICAnc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdzdmcv
U1ZHQW5pbWF0aW9uRWxlbWVudC5oJywKICAgICAgICAgICAgICdzdmcvU1ZHQ2lyY2xlRWxlbWVu
dC5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUucHJvCShyZXZpc2lvbiA3MDUxOCkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdv
cmtpbmcgY29weSkKQEAgLTIzNjUsNiArMjM2NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHN2Zy9T
VkdBbmltYXRlZExlbmd0aExpc3QuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkUGF0aERhdGEuaCBc
CiAgICAgc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmggXAorICAgIHN2Zy9TVkdBbmltYXRlZFJlY3Qu
aCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmggXAogICAgIHN2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaCBcCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDcwNTE4KQor
KysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpA
QCAtNjEyMDcsNiArNjEyMDcsMTAgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0FuaW1hdGVkUmVjdC5oIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3ZnXFNWR0FuaW1hdGVF
bGVtZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDcwNTE4KQorKysgV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIyNSw2ICsy
MjUsNyBAQAogCQkwOEM2QTdBQjExN0RGQkFCMDBGRUExQTIgLyogUmVuZGVyU1ZHUmVzb3VyY2VT
b2xpZENvbG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA4QzZBN0E5MTE3REZCQUIwMEZFQTFBMiAvKiBSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29s
b3IuY3BwICovOyB9OwogCQkwOEM2QTdBQzExN0RGQkFCMDBGRUExQTIgLyogUmVuZGVyU1ZHUmVz
b3VyY2VTb2xpZENvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwOEM2QTdBQTExN0RGQkFCMDBGRUExQTIgLyogUmVuZGVyU1ZHUmVzb3VyY2VTb2xp
ZENvbG9yLmggKi87IH07CiAJCTA4QzdBMkM3MTBEQzc0NjIwMDJEMzY4QiAvKiBTVkdOYW1lcy5o
IGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjU2NTgxRTkwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR05hbWVzLmggKi87IH07CisJCTA4
Qzg1OUMwMTI3NDU3NTQwMEE1NzI4RCAvKiBTVkdBbmltYXRlZFJlY3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4Qzg1OUJGMTI3NDU3NTMwMEE1NzI4
RCAvKiBTVkdBbmltYXRlZFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwOEM5MjUxOTBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4Qzky
NTE3MEZDQzdDNEEwMDQ4MERFQyAvKiBGaWx0ZXJFZmZlY3QuY3BwICovOyB9OwogCQkwOEM5MjUx
QTBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEM5MjUxODBGQ0M3QzRBMDA0ODBERUMgLyogRmls
dGVyRWZmZWN0LmggKi87IH07CiAJCTA4Q0Q2MUJDMEVEMzkyOUMwMDJEREY1MSAvKiBXTUxUYXNr
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwOENENjFCODBFRDM5MjlDMDAyRERGNTEgLyogV01MVGFza0VsZW1lbnQuY3BwICovOyB9OwpA
QCAtNjIxOCw2ICs2MjE5LDcgQEAKIAkJMDhDNEM1MTcwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTElt
YWdlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdNTEltYWdlTG9h
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4QzZBN0E5MTE3REZCQUIwMEZF
QTFBMiAvKiBSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHUmVzb3VyY2VTb2xpZENvbG9yLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDhDNkE3QUExMTdERkJBQjAwRkVBMUEyIC8qIFJl
bmRlclNWR1Jlc291cmNlU29saWRDb2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMDhDODU5QkYxMjc0NTc1MzAwQTU3MjhEIC8qIFNWR0FuaW1hdGVkUmVjdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFJlY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDhDOTI1MTcwRkNDN0M0QTAwNDgwREVDIC8qIEZpbHRl
ckVmZmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGaWx0ZXJF
ZmZlY3QuY3BwOyBwYXRoID0gZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwOEM5MjUxODBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZpbHRlckVmZmVjdC5oOyBwYXRo
ID0gZmlsdGVycy9GaWx0ZXJFZmZlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDhDRDYxQjgwRUQzOTI5QzAwMkRERjUxIC8qIFdNTFRhc2tFbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTFRhc2tFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1OTc5LDYgKzE1OTgxLDcgQEAKIAkJCQlCMjIyNzdGMjBE
MDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaCAqLywKIAkJCQlCMjIyNzdGMzBE
MDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaWRsICovLAogCQkJCUIyMjI3N0Y0
MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8uaWRsICov
LAorCQkJCTA4Qzg1OUJGMTI3NDU3NTMwMEE1NzI4RCAvKiBTVkdBbmltYXRlZFJlY3QuaCAqLywK
IAkJCQlCMjIyNzdGNTBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRSZWN0LmlkbCAqLywK
IAkJCQlCMjIyNzdGNjBEMDBCRjFGMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRTdHJpbmcuaWRsICov
LAogCQkJCUIyMjI3N0Y4MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFRyYW5zZm9ybUxp
c3QuaWRsICovLApAQCAtMjExNzUsNiArMjExNzgsNyBAQAogCQkJCTA4OTAyMUFEMTI2RUY1RTkw
MDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCThB
QjRCQzc3MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNy
ZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3IC8q
IFNWR0FuaW1hdGVkQW5nbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4Qzg1OUMwMTI3NDU3NTQw
MEE1NzI4RCAvKiBTVkdBbmltYXRlZFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1ODk3OEVE
MTI3MDkwRDYwMDc2RDVBOSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yMTIz
NSw3ICsyMTIzOSw2IEBACiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0
aW9uTGlzdCA9IDE0OUMyODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9u
IGxpc3QgZm9yIFBCWFByb2plY3QgIldlYkNvcmUiICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNp
b24gPSAiWGNvZGUgMi40IjsKLQkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKIAkJCWhh
c1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xp
c2gsCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQkocmV2
aXNpb24gNzA1MTgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5w
bQkod29ya2luZyBjb3B5KQpAQCAtNTEsMTQgKzUxLDEyIEBAIG15ICVudW1lcmljVHlwZUhhc2gg
PSAoImludCIgPT4gMSwgInNob3IKIG15ICVwcmltaXRpdmVUeXBlSGFzaCA9ICggImJvb2xlYW4i
ID0+IDEsICJ2b2lkIiA9PiAxLCAiRGF0ZSIgPT4gMSk7CiAKIG15ICVwb2RUeXBlSGFzaCA9ICgi
U1ZHTnVtYmVyIiA9PiAxLCAiU1ZHVHJhbnNmb3JtIiA9PiAxKTsKLW15ICVwb2RUeXBlc1dpdGhX
cml0YWJsZVByb3BlcnRpZXNIYXNoID0gKCJTVkdNYXRyaXgiID0+IDEsICJTVkdQb2ludCIgPT4g
MSwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iID0+IDEsICJTVkdSZWN0IiA9PiAxKTsKK215ICVw
b2RUeXBlc1dpdGhXcml0YWJsZVByb3BlcnRpZXNIYXNoID0gKCJTVkdNYXRyaXgiID0+IDEsICJT
VkdQb2ludCIgPT4gMSwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iID0+IDEpOwogbXkgJXN0cmlu
Z1R5cGVIYXNoID0gKCJET01TdHJpbmciID0+IDEsICJBdG9taWNTdHJpbmciID0+IDEpOwogCiBt
eSAlbm9uUG9pbnRlclR5cGVIYXNoID0gKCJET01UaW1lU3RhbXAiID0+IDEsICJDb21wYXJlSG93
IiA9PiAxLCAiU1ZHUGFpbnRUeXBlIiA9PiAxKTsKIAotbXkgJXN2Z1R5cGVOZWVkaW5nVGVhck9m
Zkhhc2ggPSAoIlNWR0xlbmd0aCIgPT4gMSwgIlNWR0FuZ2xlIiA9PiAxKTsKLQotbXkgJXN2Z05l
d1N0eWxlQW5pbWF0ZWRUeXBlSGFzaCA9ICgiU1ZHQW5pbWF0ZWRBbmdsZSIgPT4gMSwgIlNWR0Fu
aW1hdGVkTGVuZ3RoIiA9PiAxLCAiU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0IiA9PiAxKTsKK215ICVz
dmdOZXdTdHlsZUFuaW1hdGVkVHlwZUhhc2ggPSAoIlNWR0FuaW1hdGVkQW5nbGUiID0+IDEsICJT
VkdBbmltYXRlZExlbmd0aCIgPT4gMSwgIlNWR0FuaW1hdGVkTGVuZ3RoTGlzdCIgPT4gMSwgIlNW
R0FuaW1hdGVkUmVjdCIgPT4gMSk7CiAKIG15ICVzdmdBbmltYXRlZFR5cGVIYXNoID0gKCJTVkdB
bmltYXRlZEFuZ2xlIiA9PiAxLCAiU1ZHQW5pbWF0ZWRCb29sZWFuIiA9PiAxLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVkRW51bWVyYXRpb24iID0+IDEsICJTVkdBbmlt
YXRlZEludGVnZXIiID0+IDEsCkBAIC03NCw2ICs3MiwxMyBAQCBteSAlc3ZnQXR0cmlidXRlc0lu
SFRNTEhhc2ggPSAoImNsYXNzIiA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9u
bW91c2V1cCIgPT4gMSwgIm9ucmVzaXplIiA9PiAxLCAib25zY3JvbGwiID0+IDEsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm9udW5sb2FkIiA9PiAxKTsKIAorbXkgJXN2Z05hdGl2
ZVR5cGUgPSAoCisgICAgIlNWR0FuZ2xlIiA9PiAiU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xl
PiIsCisgICAgIlNWR0xlbmd0aCIgPT4gIlNWR1Byb3BlcnR5VGVhck9mZjxTVkdMZW5ndGg+IiwK
KyAgICAiU1ZHTGVuZ3RoTGlzdCIgPT4gIlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3Ro
TGlzdD4iLAorICAgICJTVkdSZWN0IiA9PiAiU1ZHUHJvcGVydHlUZWFyT2ZmPEZsb2F0UmVjdD4i
CispOworCiAjIENhY2hlIG9mIElETCBmaWxlIHBhdGhuYW1lcy4KIG15ICRpZGxGaWxlczsKIApA
QCAtMjg3LDYgKzI5MiwxNiBAQCBzdWIgUGFyc2VJbnRlcmZhY2UKIAogIyBIZWxwZXJzIGZvciBh
bGwgQ29kZUdlbmVyYXRvcioqKi5wbSBtb2R1bGVzCiAKK3N1YiBBdm9pZEluY2x1c2lvbk9mVHlw
ZQoreworICAgIG15ICRvYmplY3QgPSBzaGlmdDsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisg
ICAgIyBTcGVjaWFsIGNhc2U6IFNWR1JlY3QuaCAvIFNWR1BvaW50LmggLyBTVkdOdW1iZXIuaCAv
IFNWR01hdHJpeC5oIGRvIG5vdCBleGlzdC4KKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiU1ZH
UmVjdCIgb3IgJHR5cGUgZXEgIlNWR1BvaW50IiBvciAkdHlwZSBlcSAiU1ZHTnVtYmVyIiBvciAk
dHlwZSBlcSAiU1ZHTWF0cml4IjsKKyAgICByZXR1cm4gMDsKK30KKwogIyBGSVhNRTogVGhpcyBt
ZXRob2Qgd2lsbCBnbyBhd2F5IG9uY2UgYWxsIFNWRyBhbmltYXRlZCBwcm9wZXJ0aWVzIGFyZSBj
b252ZXJ0ZWQgdG8gdGhlIG5ldyBzY2hlbWUuCiBzdWIgSXNQb2RUeXBlCiB7CkBAIC0zNDQsMTYg
KzM1OSw0MSBAQCBzdWIgSXNOb25Qb2ludGVyVHlwZQogICAgIHJldHVybiAwOwogfQogCi0KIHN1
YiBJc1NWR1R5cGVOZWVkaW5nVGVhck9mZgogewogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKICAg
ICBteSAkdHlwZSA9IHNoaWZ0OwogCi0gICAgcmV0dXJuIDEgaWYgJHN2Z1R5cGVOZWVkaW5nVGVh
ck9mZkhhc2h7JHR5cGV9OworICAgIHJldHVybiAxIGlmIGV4aXN0cyAkc3ZnTmF0aXZlVHlwZXsk
dHlwZX07CiAgICAgcmV0dXJuIDA7CiB9CiAKK3N1YiBHZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYK
K3sKKyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAg
IHJldHVybiAkc3ZnTmF0aXZlVHlwZXskdHlwZX0gaWYgZXhpc3RzICRzdmdOYXRpdmVUeXBleyR0
eXBlfTsKKyAgICByZXR1cm4gdW5kZWY7Cit9CisKK3N1YiBHZXRTVkdXcmFwcGVkVHlwZU5lZWRp
bmdUZWFyT2ZmCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICR0eXBlID0gc2hp
ZnQ7CisKKyAgICBteSAkc3ZnTmF0aXZlVHlwZSA9ICRvYmplY3QtPkdldFNWR1R5cGVOZWVkaW5n
VGVhck9mZigkdHlwZSk7CisgICAgcmV0dXJuICRzdmdOYXRpdmVUeXBlIGlmIG5vdCAkc3ZnTmF0
aXZlVHlwZTsKKworICAgIGlmICgkc3ZnTmF0aXZlVHlwZSA9fiAvU1ZHUHJvcGVydHlUZWFyT2Zm
LykgeworICAgICAgICAkc3ZnTmF0aXZlVHlwZSA9fiBzL1NWR1Byb3BlcnR5VGVhck9mZjwvLzsK
KyAgICB9IGVsc2lmICgkc3ZnTmF0aXZlVHlwZSA9fiAvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi8p
IHsKKyAgICAgICAgJHN2Z05hdGl2ZVR5cGUgPX4gcy9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmPC8v
OworICAgIH0KKyAgICAkc3ZnTmF0aXZlVHlwZSA9fiBzLz4vLzsKKyAgICByZXR1cm4gJHN2Z05h
dGl2ZVR5cGU7Cit9CisKICMgRklYTUU6IFRoaXMgbWV0aG9kIHdpbGwgZ28gYXdheSBvbmNlIGFs
bCBTVkcgYW5pbWF0ZWQgcHJvcGVydGllcyBhcmUgY29udmVydGVkIHRvIHRoZSBuZXcgc2NoZW1l
Lgogc3ViIElzU1ZHTmV3U3R5bGVBbmltYXRlZFR5cGUKIHsKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNzA1MTgpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjcsMTUgKzIyNyw2IEBAIHN1YiBHZXRDYWxsYmFja0NsYXNzTmFtZQogICAgIHJldHVybiAi
SlMkY2xhc3NOYW1lIjsKIH0KIAotc3ViIEF2b2lkSW5jbHVzaW9uT2ZUeXBlCi17Ci0gICAgbXkg
JHR5cGUgPSBzaGlmdDsKLQotICAgICMgU3BlY2lhbCBjYXNlOiBTVkdSZWN0LmggLyBTVkdQb2lu
dC5oIC8gU1ZHTnVtYmVyLmggLyBTVkdNYXRyaXguaCBkbyBub3QgZXhpc3QuCi0gICAgcmV0dXJu
IDEgaWYgJHR5cGUgZXEgIlNWR1JlY3QiIG9yICR0eXBlIGVxICJTVkdQb2ludCIgb3IgJHR5cGUg
ZXEgIlNWR051bWJlciIgb3IgJHR5cGUgZXEgIlNWR01hdHJpeCI7Ci0gICAgcmV0dXJuIDA7Ci19
Ci0KIHN1YiBJbmRleEdldHRlclJldHVybnNTdHJpbmdzCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlm
dDsKQEAgLTI1MSw3ICsyNDIsNyBAQCBzdWIgQWRkSW5jbHVkZXNGb3JUeXBlCiAKICAgICAjIFdo
ZW4gd2UncmUgZmluaXNoZWQgd2l0aCB0aGUgb25lLWZpbGUtcGVyLWNsYXNzCiAgICAgIyByZW9y
Z2FuaXphdGlvbiwgd2Ugd29uJ3QgbmVlZCB0aGVzZSBzcGVjaWFsIGNhc2VzLgotICAgIGlmICgk
Y29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciBBdm9pZEluY2x1c2lvbk9m
VHlwZSgkdHlwZSkKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlw
ZSkgb3IgJGNvZGVHZW5lcmF0b3ItPkF2b2lkSW5jbHVzaW9uT2ZUeXBlKCR0eXBlKQogICAgICAg
ICBvciAkdHlwZSBlcSAiRE9NU3RyaW5nIiBvciAkdHlwZSBlcSAiRE9NT2JqZWN0IiBvciAkdHlw
ZSBlcSAiQXJyYXkiKSB7CiAgICAgfSBlbHNpZiAoJHR5cGUgPX4gL1NWR1BhdGhTZWcvKSB7CiAg
ICAgICAgICRqb2luZWROYW1lID0gJHR5cGU7CkBAIC0yODQsNiArMjc1LDcgQEAgc3ViIEFkZElu
Y2x1ZGVzRm9yVHlwZQogICAgIH0KIH0KIAorIyBGSVhNRTogVGhpcyBtZXRob2Qgd2lsbCBnbyBh
d2F5IG9uY2UgYWxsIFNWRyBhbmltYXRlZCBwcm9wZXJ0aWVzIGFyZSBjb252ZXJ0ZWQgdG8gdGhl
IG5ldyBzY2hlbWUuCiBzdWIgQWRkSW5jbHVkZXNGb3JTVkdBbmltYXRlZFR5cGUKIHsKICAgICBt
eSAkdHlwZSA9IHNoaWZ0OwpAQCAtMzM0LDggKzMyNiw5IEBAIHN1YiBJc1NWR1R5cGVOZWVkaW5n
Q29udGV4dFBhcmFtZXRlcgogICAgIHJldHVybiAwIHVubGVzcyAkaW1wbENsYXNzTmFtZSA9fiAv
U1ZHLzsKICAgICByZXR1cm4gMCBpZiAkaW1wbENsYXNzTmFtZSA9fiAvRWxlbWVudC87CiAgICAg
cmV0dXJuIDAgaWYgJGNvZGVHZW5lcmF0b3ItPklzU1ZHTmV3U3R5bGVBbmltYXRlZFR5cGUoJGlt
cGxDbGFzc05hbWUpOworICAgIHJldHVybiAwIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVO
ZWVkaW5nVGVhck9mZigkaW1wbENsYXNzTmFtZSk7CiAKLSAgICBteSBAbm9Db250ZXh0TmVlZGVk
ID0gKCJTVkdBbmdsZSIsICJTVkdMZW5ndGgiLCAiU1ZHTGVuZ3RoTGlzdCIsICJTVkdQYWludCIs
ICJTVkdDb2xvciIsICJTVkdEb2N1bWVudCIsICJTVkdab29tRXZlbnQiKTsKKyAgICBteSBAbm9D
b250ZXh0TmVlZGVkID0gKCJTVkdDb2xvciIsICJTVkdEb2N1bWVudCIsICJTVkdQYWludCIsICJT
Vkdab29tRXZlbnQiKTsKICAgICBmb3JlYWNoIChAbm9Db250ZXh0TmVlZGVkKSB7CiAgICAgICAg
IHJldHVybiAwIGlmICRpbXBsQ2xhc3NOYW1lIGVxICRfOwogICAgIH0KQEAgLTY3MywyNyArNjY2
LDExIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIH0KICAgICAKICAgICAkaGVhZGVySW5jbHVk
ZXN7IjxydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPiJ9ID0gMTsKLQogICAgICRo
ZWFkZXJJbmNsdWRlc3siU1ZHRWxlbWVudC5oIn0gPSAxIGlmICRjbGFzc05hbWUgPX4gL15KU1NW
Ry87CiAKLSAgICAjIEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMgcmVzcGVjdGluZyBQT0RU
eXBlIGZsYWcKICAgICBteSAkaW1wbFR5cGUgPSAkaW1wbENsYXNzTmFtZTsKLQotICAgIG15ICRz
dmdQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdQcm9w
ZXJ0eSJ9OyAgICAKLSAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewotICAgICAgICAkaW1wbFR5
cGUgPSAiU1ZHUHJvcGVydHlUZWFyT2ZmPCRzdmdQcm9wZXJ0eVR5cGU+ICI7Ci0gICAgICAgICRo
ZWFkZXJJbmNsdWRlc3siU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIn0gPSAxOwotICAgICAgICAkaGVh
ZGVySW5jbHVkZXN7IlNWR1Byb3BlcnR5VGVhck9mZi5oIn0gPSAxOwotICAgICAgICAkaGVhZGVy
SW5jbHVkZXN7IiRzdmdQcm9wZXJ0eVR5cGUuaCJ9ID0gMSBpZiAkc3ZnUHJvcGVydHlUeXBlIG5l
ICJmbG9hdCI7Ci0gICAgfQotCi0gICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPSAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdMaXN0UHJvcGVydHkifTsgICAgCi0gICAgaWYg
KCRzdmdMaXN0UHJvcGVydHlUeXBlKSB7Ci0gICAgICAgICRpbXBsVHlwZSA9ICJTVkdMaXN0UHJv
cGVydHlUZWFyT2ZmPCRzdmdMaXN0UHJvcGVydHlUeXBlPiAiOwotICAgICAgICAkaGVhZGVySW5j
bHVkZXN7IlNWR0FuaW1hdGVkUHJvcGVydHkuaCJ9ID0gMTsKLSAgICAgICAgJGhlYWRlckluY2x1
ZGVzeyJTVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgifSA9IDE7Ci0gICAgICAgICRoZWFkZXJJbmNs
dWRlc3siJHN2Z0xpc3RQcm9wZXJ0eVR5cGUuaCJ9ID0gMTsKLSAgICB9CisgICAgbXkgKCRzdmdQ
cm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSkgPSBHZXRT
VkdQcm9wZXJ0eVR5cGVzKCRpbXBsVHlwZSk7CisgICAgJGltcGxUeXBlID0gJHN2Z05hdGl2ZVR5
cGUgaWYgJHN2Z05hdGl2ZVR5cGU7CiAKICAgICAjIEZJWE1FOiBPbGQgc3R5bGUgU1ZHIEpTIGJp
bmRpbmdzLCB3aWxsIHZhbmlzaCBzb29uLgogICAgIG15ICRwb2RUeXBlID0gJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlwZSJ9OwpAQCAtNzE0LDExICs2OTEsMTMgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG5uYW1lc3BhY2Ug
V2ViQ29yZSB7XG5cbiIpOwogCi0gICAgbXkgJHN2Z0FuaW1hdGVkUHJvcGVydHlUeXBlID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHQW5pbWF0ZWRQcm9wZXJ0eSJ9OyAgIAot
ICAgICRoZWFkZXJJbmNsdWRlc3siJGltcGxDbGFzc05hbWUuaCJ9ID0gMSBpZiAkc3ZnQW5pbWF0
ZWRQcm9wZXJ0eVR5cGU7CisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR05ld1N0eWxlQW5p
bWF0ZWRUeXBlKCRpbXBsQ2xhc3NOYW1lKSkgeworICAgICAgICAkaGVhZGVySW5jbHVkZXN7IiRp
bXBsQ2xhc3NOYW1lLmgifSA9IDE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgIyBJbXBsZW1lbnRh
dGlvbiBjbGFzcyBmb3J3YXJkIGRlY2xhcmF0aW9uCisgICAgICAgIEFkZENsYXNzRm9yd2FyZElm
TmVlZGVkKCRpbXBsQ2xhc3NOYW1lKSB1bmxlc3MgJHN2Z1Byb3BlcnR5T3JQb2RUeXBlOworICAg
IH0KIAotICAgICMgSW1wbGVtZW50YXRpb24gY2xhc3MgZm9yd2FyZCBkZWNsYXJhdGlvbgotICAg
IEFkZENsYXNzRm9yd2FyZElmTmVlZGVkKCRpbXBsQ2xhc3NOYW1lKSB1bmxlc3MgJHN2Z1Byb3Bl
cnR5T3JQb2RUeXBlIG9yICRzdmdBbmltYXRlZFByb3BlcnR5VHlwZTsKICAgICBBZGRDbGFzc0Zv
cndhcmRJZk5lZWRlZCgiSlNET01XaW5kb3dTaGVsbCIpIGlmICRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciOwogCiAgICAgIyBDbGFzcyBkZWNsYXJhdGlvbgpAQCAtMTQ0NywxNiArMTQyNiwx
MiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIH0KICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn07XG5cbiIpOwogCi0gICAgIyBHZXQgY29ycmVjdCBwYXNzL3N0b3JlIHR5cGVzIHJl
c3BlY3RpbmcgUE9EVHlwZSBmbGFnCiAgICAgbXkgJGltcGxUeXBlID0gJGltcGxDbGFzc05hbWU7
Ci0gICAgbXkgJHN2Z1Byb3BlcnR5VHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlNWR1Byb3BlcnR5In07ICAgIAotICAgIG15ICRzdmdMaXN0UHJvcGVydHlUeXBlID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHTGlzdFByb3BlcnR5In07ICAgIAorICAg
IG15ICgkc3ZnUHJvcGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5
cGUpID0gR2V0U1ZHUHJvcGVydHlUeXBlcygkaW1wbFR5cGUpOworICAgICRpbXBsVHlwZSA9ICRz
dmdOYXRpdmVUeXBlIGlmICRzdmdOYXRpdmVUeXBlOworCiAgICAgbXkgJHBvZFR5cGUgPSAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBlIn07Ci0gICAgaWYgKCRzdmdQcm9w
ZXJ0eVR5cGUpIHsKLSAgICAgICAgJGltcGxUeXBlID0gIlNWR1Byb3BlcnR5VGVhck9mZjwkc3Zn
UHJvcGVydHlUeXBlPiAiOwotICAgIH0gZWxzaWYgKCRzdmdMaXN0UHJvcGVydHlUeXBlKSB7Ci0g
ICAgICAgICRpbXBsVHlwZSA9ICJTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPCRzdmdMaXN0UHJvcGVy
dHlUeXBlPiAiOwotICAgIH0gZWxzaWYgKCRwb2RUeXBlKSB7CisgICAgaWYgKCRwb2RUeXBlKSB7
CiAgICAgICAgICRpbXBsVHlwZSA9ICJKU1NWR1BPRFR5cGVXcmFwcGVyPCRwb2RUeXBlPiAiOwog
ICAgIH0KIApAQCAtMTgxMCw2ICsxNzg1LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEZvciBzZXR0ZXJzIHdpdGggIlN0cmljdFR5
cGVDaGVja2luZyIsIGlmIGFuIGlucHV0IHBhcmFtZXRlcidzIHR5cGUgZG9lcyBub3QgbWF0Y2gg
dGhlIHNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGEgVHlwZUVycm9y
IGlzIHRocm93biBpbnN0ZWFkIG9mIGNhc3RpbmcgdG8gbnVsbC4KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiU3RyaWN0VHlwZUNoZWNraW5nIn0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvRXJyb3IuaD4ifSA9IDE7CisKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXkgJGFyZ1R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PnR5cGU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghSXNOYXRpdmVUeXBl
KCRhcmdUeXBlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKCF2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICF2YWx1
ZS5pbmhlcml0cygmSlMke2FyZ1R5cGV9OjpzX2luZm8pKSB7XG4iKTsKQEAgLTIwNzcsNiArMjA1
NCw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIyBGb3IgZnVuY3Rpb25zIHdpdGggIlN0cmljdFR5cGVDaGVja2luZyIsIGlmIGFuIGlu
cHV0IHBhcmFtZXRlcidzIHR5cGUgZG9lcyBub3QgbWF0Y2ggdGhlIHNpZ25hdHVyZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAjIGEgVHlwZUVycm9yIGlzIHRocm93biBpbnN0ZWFkIG9m
IGNhc3RpbmcgdG8gbnVsbC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdHJpY3RUeXBlQ2hlY2tpbmci
fSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyI8cnVu
dGltZS9FcnJvci5oPiJ9ID0gMTsKKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
eSAkYXJnVmFsdWUgPSAiZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkiOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIUlzTmF0aXZlVHlwZSgkYXJnVHlwZSkpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPiAkYXJnc0luZGV4ICYmICEke2FyZ1ZhbHVlfS5pc1Vu
ZGVmaW5lZE9yTnVsbCgpICYmICEke2FyZ1ZhbHVlfS5pbmhlcml0cygmSlMke2FyZ1R5cGV9Ojpz
X2luZm8pKVxuIik7CkBAIC0yNDcwLDggKzI0NDksNiBAQCBteSAlbmF0aXZlVHlwZSA9ICgKICAg
ICAiTm9kZUZpbHRlciIgPT4gIlJlZlB0cjxOb2RlRmlsdGVyPiIsCiAgICAgIlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSIgPT4gIlJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IiwKICAgICAiSURC
S2V5IiA9PiAiUmVmUHRyPElEQktleT4iLAotICAgICJTVkdBbmdsZSIgPT4gIlNWR1Byb3BlcnR5
VGVhck9mZjxTVkdBbmdsZT4qIiwKLSAgICAiU1ZHTGVuZ3RoIiA9PiAiU1ZHUHJvcGVydHlUZWFy
T2ZmPFNWR0xlbmd0aD4qIiwKICAgICAiU1ZHTWF0cml4IiA9PiAiQWZmaW5lVHJhbnNmb3JtIiwK
ICAgICAiU1ZHTnVtYmVyIiA9PiAiZmxvYXQiLAogICAgICJTVkdQYWludFR5cGUiID0+ICJTVkdQ
YWludDo6U1ZHUGFpbnRUeXBlIiwKQEAgLTI0OTMsMTIgKzI0NzAsNDQgQEAgc3ViIEdldE5hdGl2
ZVR5cGUKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwogCisgICAgbXkgJHN2Z05hdGl2ZVR5cGUg
PSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKTsKKyAgICBy
ZXR1cm4gIiR7c3ZnTmF0aXZlVHlwZX0qIiBpZiAkc3ZnTmF0aXZlVHlwZTsKICAgICByZXR1cm4g
JG5hdGl2ZVR5cGV7JHR5cGV9IGlmIGV4aXN0cyAkbmF0aXZlVHlwZXskdHlwZX07CiAKICAgICAj
IEZvciBhbGwgb3RoZXIgdHlwZXMsIHRoZSBuYXRpdmUgdHlwZSBpcyBhIHBvaW50ZXIgd2l0aCBz
YW1lIHR5cGUgbmFtZSBhcyB0aGUgSURMIHR5cGUuCiAgICAgcmV0dXJuICIke3R5cGV9KiI7CiB9
CiAKK3N1YiBHZXRTVkdQcm9wZXJ0eVR5cGVzCit7CisgICAgbXkgJGltcGxUeXBlID0gc2hpZnQ7
CisKKyAgICBteSAkc3ZnUHJvcGVydHlUeXBlOworICAgIG15ICRzdmdMaXN0UHJvcGVydHlUeXBl
OworICAgIG15ICRzdmdOYXRpdmVUeXBlOworCisgICAgcmV0dXJuICgkc3ZnUHJvcGVydHlUeXBl
LCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpIGlmIG5vdCAkaW1wbFR5cGUg
PX4gL1NWRy87CisgICAgCisgICAgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0
U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsVHlwZSk7CisgICAgcmV0dXJuICgkc3ZnUHJvcGVy
dHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpIGlmIG5vdCAkc3Zn
TmF0aXZlVHlwZTsKKworICAgICMgQXBwZW5kIHNwYWNlIHRvIGF2b2lkIGNvbXBpbGF0aW9uIGVy
cm9ycyB3aGVuIHVzaW5nICBQYXNzUmVmUHRyPCRzdmdOYXRpdmVUeXBlPgorICAgICRzdmdOYXRp
dmVUeXBlID0gIiRzdmdOYXRpdmVUeXBlICI7CisKKyAgICBteSAkc3ZnV3JhcHBlZE5hdGl2ZVR5
cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHV3JhcHBlZFR5cGVOZWVkaW5nVGVhck9mZigkaW1w
bFR5cGUpOworICAgIGlmICgkc3ZnTmF0aXZlVHlwZSA9fiAvU1ZHUHJvcGVydHlUZWFyT2ZmLykg
eworICAgICAgICAkc3ZnUHJvcGVydHlUeXBlID0gJHN2Z1dyYXBwZWROYXRpdmVUeXBlOworICAg
ICAgICAkaGVhZGVySW5jbHVkZXN7IiRzdmdXcmFwcGVkTmF0aXZlVHlwZS5oIn0gPSAxOworICAg
ICAgICAkaGVhZGVySW5jbHVkZXN7IlNWR1Byb3BlcnR5VGVhck9mZi5oIn0gPSAxOworICAgIH0g
ZWxzaWYgKCRzdmdOYXRpdmVUeXBlID1+IC9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLykgeworICAg
ICAgICAkc3ZnTGlzdFByb3BlcnR5VHlwZSA9ICRzdmdXcmFwcGVkTmF0aXZlVHlwZTsKKyAgICAg
ICAgJGhlYWRlckluY2x1ZGVzeyIkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUuaCJ9ID0gMTsKKyAgICAg
ICAgJGhlYWRlckluY2x1ZGVzeyJTVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgifSA9IDE7CisgICAg
fQorCisgICAgcmV0dXJuICgkc3ZnUHJvcGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwg
JHN2Z05hdGl2ZVR5cGUpOworfQorCiBzdWIgSXNOYXRpdmVUeXBlCiB7CiAgICAgbXkgJHR5cGUg
PSBzaGlmdDsKQEAgLTI2NDksNyArMjY1OCw3IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICB9
IGVsc2UgewogICAgICAgICAjIERlZmF1bHQsIGluY2x1ZGUgaGVhZGVyIHdpdGggc2FtZSBuYW1l
LgogICAgICAgICAkaW1wbEluY2x1ZGVzeyJKUyR0eXBlLmgifSA9IDE7Ci0gICAgICAgICRpbXBs
SW5jbHVkZXN7IiR0eXBlLmgifSA9IDE7CisgICAgICAgICRpbXBsSW5jbHVkZXN7IiR0eXBlLmgi
fSA9IDEgaWYgbm90ICRjb2RlR2VuZXJhdG9yLT5Bdm9pZEluY2x1c2lvbk9mVHlwZSgkdHlwZSk7
CiAgICAgfQogCiAgICAgcmV0dXJuICR2YWx1ZSBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmlt
YXRlZFR5cGUoJHR5cGUpOwpAQCAtMjY2NSwxMyArMjY3NCw5IEBAIHN1YiBOYXRpdmVUb0pTVmFs
dWUKIAogICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdOZXdTdHlsZUFuaW1hdGVkVHlwZSgk
aW1wbENsYXNzTmFtZSkpIHsKICAgICAgICAgIyBDb252ZXJ0IGZyb20gYWJzdHJhY3QgU1ZHUHJv
cGVydHkgdG8gcmVhbCB0eXBlLCBzbyB0aGUgcmlnaHQgdG9KUygpIG1ldGhvZCBjYW4gYmUgaW52
b2tlZC4KLSAgICAgICAgaWYgKCRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0JC8pIHsKLSAgICAgICAg
ICAgICR2YWx1ZSA9ICJzdGF0aWNfY2FzdDxTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPCR0eXBlPio+
KCR2YWx1ZSkiOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgJHZhbHVlID0gInN0YXRp
Y19jYXN0PFNWR1Byb3BlcnR5VGVhck9mZjwkdHlwZT4qPigkdmFsdWUpIjsKLSAgICAgICAgfQor
ICAgICAgICAkdmFsdWUgPSAic3RhdGljX2Nhc3Q8IiAuIEdldE5hdGl2ZVR5cGUoJHR5cGUpIC4g
Ij4oJHZhbHVlKSI7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRp
bmdUZWFyT2ZmKCR0eXBlKSBhbmQgbm90ICRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0JC8pIHsKLSAg
ICAgICAgJHZhbHVlID0gIlNWR1Byb3BlcnR5VGVhck9mZjwkdHlwZT46OmNyZWF0ZSgkdmFsdWUp
IjsKKyAgICAgICAgJHZhbHVlID0gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1R5cGVOZWVkaW5nVGVh
ck9mZigkdHlwZSkgLiAiOjpjcmVhdGUoJHZhbHVlKSI7CiAgICAgfQogCiAgICAgcmV0dXJuICJ0
b0pTKGV4ZWMsICRnbG9iYWxPYmplY3QsIFdURjo6Z2V0UHRyKCR2YWx1ZSkpIjsKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHJldmlzaW9u
IDcwNTE4KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBt
CSh3b3JraW5nIGNvcHkpCkBAIC02MDAsMTIgKzYwMCw2IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5
cGUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICgkdHlwZSBlcSAiU1ZHUmVjdCIp
IHsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siRmxvYXRSZWN0LmgifSA9IDE7Ci0gICAgICAgICRp
bXBsSW5jbHVkZXN7IkRPTVNWR1JlY3RJbnRlcm5hbC5oIn0gPSAxOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCiAgICAgaWYgKCR0eXBlIGVxICJTVkdQb2ludCIpIHsKICAgICAgICAgJGltcGxJ
bmNsdWRlc3siRmxvYXRQb2ludC5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01T
VkdQb2ludEludGVybmFsLmgifSA9IDE7CkBAIC02NTgsMTAgKzY1MiwzOSBAQCBzdWIgQWRkSW5j
bHVkZXNGb3JUeXBlCiAgICAgJGltcGxJbmNsdWRlc3siTmFtZU5vZGVMaXN0LmgifSA9IDEgaWYg
JHR5cGUgZXEgIk5vZGVMaXN0IjsKIAogICAgICMgRGVmYXVsdCwgaW5jbHVkZSB0aGUgc2FtZSBu
YW1lZCBmaWxlICh0aGUgaW1wbGVtZW50YXRpb24pIGFuZCB0aGUgc2FtZSBuYW1lIHByZWZpeGVk
IHdpdGggIkRPTSIuIAotICAgICRpbXBsSW5jbHVkZXN7IiR0eXBlLmgifSA9IDE7CisgICAgJGlt
cGxJbmNsdWRlc3siJHR5cGUuaCJ9ID0gMSBpZiBub3QgJGNvZGVHZW5lcmF0b3ItPkF2b2lkSW5j
bHVzaW9uT2ZUeXBlKCR0eXBlKTsKICAgICAkaW1wbEluY2x1ZGVzeyJET00ke3R5cGV9SW50ZXJu
YWwuaCJ9ID0gMTsKIH0KIAorc3ViIEdldFNWR1Byb3BlcnR5VHlwZXMKK3sKKyAgICBteSAkaW1w
bFR5cGUgPSBzaGlmdDsKKworICAgIG15ICRzdmdQcm9wZXJ0eVR5cGU7CisgICAgbXkgJHN2Z0xp
c3RQcm9wZXJ0eVR5cGU7CisgICAgbXkgJHN2Z05hdGl2ZVR5cGU7CisKKyAgICByZXR1cm4gKCRz
dmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSkgaWYg
bm90ICRpbXBsVHlwZSA9fiAvU1ZHLzsKKworICAgICRzdmdOYXRpdmVUeXBlID0gJGNvZGVHZW5l
cmF0b3ItPkdldFNWR1R5cGVOZWVkaW5nVGVhck9mZigkaW1wbFR5cGUpOworICAgIHJldHVybiAo
JHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKSBp
ZiBub3QgJHN2Z05hdGl2ZVR5cGU7CisKKyAgICAjIEFwcGVuZCBzcGFjZSB0byBhdm9pZCBjb21w
aWxhdGlvbiBlcnJvcnMgd2hlbiB1c2luZyAgUGFzc1JlZlB0cjwkc3ZnTmF0aXZlVHlwZT4KKyAg
ICAkc3ZnTmF0aXZlVHlwZSA9ICJXZWJDb3JlOjokc3ZnTmF0aXZlVHlwZSAiOworICAgICRzdmdO
YXRpdmVUeXBlID1+IHMvPC9cPFdlYkNvcmU6Oi87CisKKyAgICBteSAkc3ZnV3JhcHBlZE5hdGl2
ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHV3JhcHBlZFR5cGVOZWVkaW5nVGVhck9mZigk
aW1wbFR5cGUpOworICAgIGlmICgkc3ZnTmF0aXZlVHlwZSA9fiAvU1ZHUHJvcGVydHlUZWFyT2Zm
LykgeworICAgICAgICAkc3ZnUHJvcGVydHlUeXBlID0gIldlYkNvcmU6OiRzdmdXcmFwcGVkTmF0
aXZlVHlwZSI7CisgICAgICAgICRzdmdQcm9wZXJ0eVR5cGUgPX4gcy88L1w8V2ViQ29yZTo6LzsK
KyAgICB9IGVsc2lmICgkc3ZnTmF0aXZlVHlwZSA9fiAvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi8p
IHsKKyAgICAgICAgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPSAiV2ViQ29yZTo6JHN2Z1dyYXBwZWRO
YXRpdmVUeXBlIjsKKyAgICAgICAgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPX4gcy88L1w8V2ViQ29y
ZTo6LzsKKyAgICB9CisKKyAgICByZXR1cm4gKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJv
cGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSk7Cit9CisKIHN1YiBHZW5lcmF0ZUhlYWRlcgogewog
ICAgIG15ICRvYmplY3QgPSBzaGlmdDsKQEAgLTk3NCwyMyArOTk3LDE2IEBAIHN1YiBHZW5lcmF0
ZUhlYWRlcgogICAgIHVubGVzcyAoJGlzUHJvdG9jb2wpIHsKICAgICAgICAgIyBHZW5lcmF0ZSBp
bnRlcm5hbCBpbnRlcmZhY2VzCiAgICAgICAgIG15ICRwb2RUeXBlID0gJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlwZSJ9OwotICAgICAgICBteSAkc3ZnUHJvcGVydHlUeXBl
ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHUHJvcGVydHkifTsKLSAgICAg
ICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJTVkdMaXN0UHJvcGVydHkifTsKICAgICAgICAgbXkgJHBvZFR5cGVXaXRoTmFtZXNwYWNl
OwotICAgICAgICBteSAkc3ZnUHJvcGVydHlUeXBlV2l0aE5hbWVzcGFjZTsKLSAgICAgICAgbXkg
JHN2Z0xpc3RQcm9wZXJ0eVR5cGVXaXRoTmFtZXNwYWNlOwogICAgICAgICBteSAkaW1wbENsYXNz
TmFtZSA9IEdldEltcGxDbGFzc05hbWUoJGludGVyZmFjZU5hbWUpOwogICAgICAgICBteSAkaW1w
bENsYXNzTmFtZVdpdGhOYW1lc3BhY2UgPSAiV2ViQ29yZTo6IiAuICRpbXBsQ2xhc3NOYW1lOwog
CiAgICAgICAgIG15ICRpbXBsVHlwZSA9ICRpbXBsQ2xhc3NOYW1lV2l0aE5hbWVzcGFjZTsKKyAg
ICAgICAgbXkgKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0
aXZlVHlwZSkgPSBHZXRTVkdQcm9wZXJ0eVR5cGVzKCRpbXBsQ2xhc3NOYW1lKTsKKyAgICAgICAg
JGltcGxUeXBlID0gJHN2Z05hdGl2ZVR5cGUgaWYgJHN2Z05hdGl2ZVR5cGU7CisKICAgICAgICAg
aWYgKCRwb2RUeXBlKSB7CiAgICAgICAgICAgICAkcG9kVHlwZVdpdGhOYW1lc3BhY2UgPSAoJHBv
ZFR5cGUgZXEgImZsb2F0IikgPyAiJHBvZFR5cGUiIDogIldlYkNvcmU6OiRwb2RUeXBlIjsKLSAg
ICAgICAgfSBlbHNpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewotICAgICAgICAgICAgJGltcGxUeXBl
ID0gIldlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjwkaW1wbFR5cGU+IjsKLSAgICAgICAgICAg
ICRzdmdQcm9wZXJ0eVR5cGVXaXRoTmFtZXNwYWNlID0gKCRzdmdQcm9wZXJ0eVR5cGUgZXEgImZs
b2F0IikgPyAiJHN2Z1Byb3BlcnR5VHlwZSIgOiAiV2ViQ29yZTo6JHN2Z1Byb3BlcnR5VHlwZSI7
Ci0gICAgICAgIH0gZWxzaWYgKCRzdmdMaXN0UHJvcGVydHlUeXBlKSB7Ci0gICAgICAgICAgICAk
aW1wbFR5cGUgPSAiV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjwkaW1wbFR5cGU+IjsK
LSAgICAgICAgICAgICRzdmdMaXN0UHJvcGVydHlUeXBlV2l0aE5hbWVzcGFjZSA9ICJXZWJDb3Jl
Ojokc3ZnTGlzdFByb3BlcnR5VHlwZSI7CiAgICAgICAgIH0KICAKICAgICAgICAgIyBHZW5lcmF0
ZSBpbnRlcmZhY2UgZGVmaW5pdGlvbnMuIApAQCAtMTAxNywxMCArMTAzMyw2IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgICAgICAgICAgJHN0YXJ0ZWROYW1lc3BhY2UgPSAxOwogICAgICAgICAg
ICAgaWYgKCRwb2RUeXBlIGFuZCAkcG9kVHlwZSBuZSAiZmxvYXQiKSB7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW50ZXJuYWxIZWFkZXJDb250ZW50LCAiICAgIGNsYXNzICRwb2RUeXBlO1xuIik7
Ci0gICAgICAgICAgICB9IGVsc2lmICgkc3ZnUHJvcGVydHlUeXBlIGFuZCAkc3ZnUHJvcGVydHlU
eXBlIG5lICJmbG9hdCIpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbnRlcm5hbEhlYWRlckNv
bnRlbnQsICIgICAgY2xhc3MgJHN2Z1Byb3BlcnR5VHlwZTtcbiIpOwotICAgICAgICAgICAgfSBl
bHNpZiAoJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbnRl
cm5hbEhlYWRlckNvbnRlbnQsICIgICAgY2xhc3MgJHN2Z0xpc3RQcm9wZXJ0eVR5cGU7XG4iKTsK
ICAgICAgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2RlIikgewogICAgICAg
ICAgICAgICAgIHB1c2goQGludGVybmFsSGVhZGVyQ29udGVudCwgIiAgICBjbGFzcyBFdmVudFRh
cmdldDtcbiAgICBjbGFzcyBOb2RlO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAtMTA3
MiwyMSArMTA4NCwxNCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIG15ICRudW1G
dW5jdGlvbnMgPSBAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfTsKIAogICAgIG15ICRwb2RUeXBlID0g
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlwZSJ9OwotICAgIG15ICRzdmdQ
cm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdQcm9wZXJ0
eSJ9OwotICAgIG15ICRzdmdMaXN0UHJvcGVydHlUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiU1ZHTGlzdFByb3BlcnR5In07CiAgICAgbXkgJHBvZFR5cGVXaXRoTmFtZXNw
YWNlOwotICAgIG15ICRzdmdQcm9wZXJ0eVR5cGVXaXRoTmFtZXNwYWNlOwotICAgIG15ICRzdmdM
aXN0UHJvcGVydHlUeXBlV2l0aE5hbWVzcGFjZTsKICAgICBteSAkaW1wbFR5cGUgPSAkaW1wbENs
YXNzTmFtZVdpdGhOYW1lc3BhY2U7CiAKKyAgICBteSAoJHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z0xp
c3RQcm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKSA9IEdldFNWR1Byb3BlcnR5VHlwZXMoJGlt
cGxDbGFzc05hbWUpOworICAgICRpbXBsVHlwZSA9ICRzdmdOYXRpdmVUeXBlIGlmICRzdmdOYXRp
dmVUeXBlOworCiAgICAgaWYgKCRwb2RUeXBlKSB7CiAgICAgICAgICRwb2RUeXBlV2l0aE5hbWVz
cGFjZSA9ICgkcG9kVHlwZSBlcSAiZmxvYXQiKSA/ICIkcG9kVHlwZSIgOiAiV2ViQ29yZTo6JHBv
ZFR5cGUiOwotICAgIH0gZWxzaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgJGltcGxU
eXBlID0gIldlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjwkaW1wbFR5cGU+IjsKLSAgICAgICAg
JHN2Z1Byb3BlcnR5VHlwZVdpdGhOYW1lc3BhY2UgPSAoJHN2Z1Byb3BlcnR5VHlwZSBlcSAiZmxv
YXQiKSA/ICIkc3ZnUHJvcGVydHlUeXBlIiA6ICJXZWJDb3JlOjokc3ZnUHJvcGVydHlUeXBlIjsK
LSAgICB9IGVsc2lmICgkc3ZnTGlzdFByb3BlcnR5VHlwZSkgewotICAgICAgICAkaW1wbFR5cGUg
PSAiV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZjwkaW1wbFR5cGU+IjsKLSAgICAgICAg
JHN2Z0xpc3RQcm9wZXJ0eVR5cGVXaXRoTmFtZXNwYWNlID0gIldlYkNvcmU6OiRzdmdMaXN0UHJv
cGVydHlUeXBlIjsKICAgICB9CiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRl
LgpAQCAtMTEyMyw3ICsxMTI4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgJGltcGxJbmNsdWRlc3siJDEuaCJ9ID0gMTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAo
ISRwb2RUeXBlKSB7Ci0gICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyIkaW1wbENsYXNzTmFtZS5o
In0gPSAxOworICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJGltcGxDbGFzc05hbWUuaCJ9ID0g
MSBpZiBub3QgJGNvZGVHZW5lcmF0b3ItPkF2b2lkSW5jbHVzaW9uT2ZUeXBlKCRpbXBsQ2xhc3NO
YW1lKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiRwb2RU
eXBlLmgifSA9IDEgdW5sZXNzICRwb2RUeXBlIGVxICJmbG9hdCI7CiAgICAgICAgIH0KQEAgLTEy
MjcsMTIgKzEyMzIsMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
IG15ICRnZXR0ZXJDb250ZW50SGVhZCA9ICJJTVBMLT4kZ2V0dGVyRXhwcmVzc2lvblByZWZpeCI7
CiAgICAgICAgICAgICBteSAkZ2V0dGVyQ29udGVudFRhaWwgPSAiKSI7CiAKLSAgICAgICAgICAg
IG15ICRzdmdBbmltYXRlZFByb3BlcnR5VHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlNWR0FuaW1hdGVkUHJvcGVydHkifTsKICAgICAgICAgICAgIGlmICgkc3ZnUHJvcGVy
dHlUeXBlKSB7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gIiRnZXR0ZXJF
eHByZXNzaW9uUHJlZml4IjsKIAogICAgICAgICAgICAgICAgICMgVE9ETzogSGFuZGxlIHNwZWNp
YWwgY2FzZSBmb3IgRE9NU1ZHTGVuZ3RoLiBXZSBkbyBuZWVkIEN1c3RvbSBjb2RlIHN1cHBvcnQg
Zm9yIHRoaXMuCi0gICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUgZXEgIlNWR0xl
bmd0aCIgYW5kICRhdHRyaWJ1dGVOYW1lIGVxICJ2YWx1ZSIpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoJHN2Z1Byb3BlcnR5VHlwZSBlcSAiV2ViQ29yZTo6U1ZHTGVuZ3RoIiBhbmQgJGF0dHJpYnV0
ZU5hbWUgZXEgInZhbHVlIikgewogICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhl
YWQgPSAidmFsdWUoMCAvKiBGSVhNRSAqLyI7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfSBlbHNlIHsKQEAgLTEyODUsMTIgKzEyODksMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudFRhaWwgLj0gIikiOwogICAgICAg
ICAgICAgfSBlbHNpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewogICAgICAgICAgICAgICAgICRnZXR0
ZXJDb250ZW50SGVhZCA9ICJJTVBMLT5wcm9wZXJ0eVJlZmVyZW5jZSgpLiRnZXR0ZXJDb250ZW50
SGVhZCI7Ci0gICAgICAgICAgICB9IGVsc2lmICgkc3ZnQW5pbWF0ZWRQcm9wZXJ0eVR5cGUpIHsK
LSAgICAgICAgICAgICAgICBpZiAoJGlkbFR5cGUgPX4gL0xpc3QkLykgewotICAgICAgICAgICAg
ICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAia2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OlNW
R0xpc3RQcm9wZXJ0eVRlYXJPZmY8V2ViQ29yZTo6JGlkbFR5cGU+Kj4oJGdldHRlckNvbnRlbnRI
ZWFkKSI7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgJGdl
dHRlckNvbnRlbnRIZWFkID0gImtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpTVkdQcm9wZXJ0eVRl
YXJPZmY8V2ViQ29yZTo6JGlkbFR5cGU+Kj4oJGdldHRlckNvbnRlbnRIZWFkKSI7Ci0gICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHTmV3
U3R5bGVBbmltYXRlZFR5cGUoJGltcGxDbGFzc05hbWUpKSB7CisgICAgICAgICAgICAgICAgbXkg
JGlkbFR5cGVXaXRoTmFtZXNwYWNlID0gIldlYkNvcmU6OiIgLiAkY29kZUdlbmVyYXRvci0+R2V0
U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRpZGxUeXBlKTsKKyAgICAgICAgICAgICAgICAkaWRsVHlw
ZVdpdGhOYW1lc3BhY2UgPX4gcy88L1w8V2ViQ29yZTo6LzsKKyAgICAgICAgICAgICAgICAkZ2V0
dGVyQ29udGVudEhlYWQgPSAia2l0KHN0YXRpY19jYXN0PCRpZGxUeXBlV2l0aE5hbWVzcGFjZSo+
KCRnZXR0ZXJDb250ZW50SGVhZCkiOwogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFp
bCAuPSAiKSI7CiAgICAgICAgICAgICB9IGVsc2lmIChJc1Byb3RvY29sVHlwZSgkaWRsVHlwZSkg
YW5kICRpZGxUeXBlIG5lICJFdmVudFRhcmdldCIpIHsKICAgICAgICAgICAgICAgICAkZ2V0dGVy
Q29udGVudEhlYWQgPSAia2l0KCRnZXR0ZXJDb250ZW50SGVhZCI7CkBAIC0xMzAyLDggKzEzMDQs
MTYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAkZ2V0dGVy
Q29udGVudEhlYWQgPSAiJGdldHRlckNvbnRlbnRIZWFkIjsKICAgICAgICAgICAgICAgICAkZ2V0
dGVyQ29udGVudFRhaWwgLj0gIi0+dG9TdHJpbmcoKSI7ICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgfSBlbHNpZiAoQ29udmVyc2lvbk5lZWRlZCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5
cGUpKSB7Ci0gICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gImtpdChXVEY6Omdl
dFB0cigkZ2V0dGVyQ29udGVudEhlYWQiOwotICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50
VGFpbCAuPSAiKSkiOworICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdU
eXBlTmVlZGluZ1RlYXJPZmYoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKSBhbmQgbm90ICRp
bXBsQ2xhc3NOYW1lID1+IC9MaXN0JC8pIHsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGlkbFR5
cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgICAgICAgICAgICAgIG15
ICRpZGxUeXBlV2l0aE5hbWVzcGFjZSA9ICJXZWJDb3JlOjoiIC4gJGNvZGVHZW5lcmF0b3ItPkdl
dFNWR1R5cGVOZWVkaW5nVGVhck9mZigkaWRsVHlwZSk7CisgICAgICAgICAgICAgICAgICAgICRp
ZGxUeXBlV2l0aE5hbWVzcGFjZSA9fiBzLzwvXDxXZWJDb3JlOjovOworICAgICAgICAgICAgICAg
ICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAia2l0KFdURjo6Z2V0UHRyKCR7aWRsVHlwZVdpdGhO
YW1lc3BhY2V9OjpjcmVhdGUoJGdldHRlckNvbnRlbnRIZWFkIjsKKyAgICAgICAgICAgICAgICAg
ICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIpKSkiOworICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJraXQoV1RGOjpnZXRQ
dHIoJGdldHRlckNvbnRlbnRIZWFkIjsKKyAgICAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRl
bnRUYWlsIC49ICIpKSI7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICBteSAkZ2V0dGVyQ29udGVudDsKQEAgLTEzNjksNyArMTM3OSw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlw
ZSkgewogICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiJGdldHRlckV4
cHJlc3Npb25QcmVmaXgiOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAkc3ZnUHJvcGVydHlUeXBlV2l0aE5hbWVzcGFjZSYgcG9kSW1wbCA9IElNUEwtPnByb3Bl
cnR5UmVmZXJlbmNlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgJHN2Z1Byb3BlcnR5VHlwZSYgcG9kSW1wbCA9IElNUEwtPnByb3BlcnR5UmVmZXJl
bmNlKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgbXkgJGVjID0gJGhhc1NldHRlckV4Y2Vw
dGlvbiA/ICIsIGVjIiA6ICIiOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAkZXhjZXB0aW9uSW5pdFxuIikgaWYgJGhhc1NldHRlckV4Y2VwdGlvbjsKICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcG9kSW1wbC4kY29yZVNldHRl
ck5hbWUoJGFyZyRlYyk7XG4iKTsKQEAgLTE1MDgsNyArMTUxOCw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICAjIEZJWE1FISBXZSBuZWVkIFtDdXN0b21dIHN1cHBv
cnQgZm9yIE9iakMsIHRvIG1vdmUgdGhlc2UgaGFja3MgaW50byBET01TVkdMZW5ndGgvTWF0cml4
Q3VzdG9tLm1tCiAgICAgICAgICAgICBteSAkc3ZnTWF0cml4Um90YXRlRnJvbVZlY3RvciA9ICgk
cG9kVHlwZSBhbmQgJHBvZFR5cGUgZXEgIkFmZmluZVRyYW5zZm9ybSIgYW5kICRmdW5jdGlvbk5h
bWUgZXEgInJvdGF0ZUZyb21WZWN0b3IiKTsKICAgICAgICAgICAgIG15ICRzdmdNYXRyaXhJbnZl
cnNlID0gKCRwb2RUeXBlIGFuZCAkcG9kVHlwZSBlcSAiQWZmaW5lVHJhbnNmb3JtIiBhbmQgJGZ1
bmN0aW9uTmFtZSBlcSAiaW52ZXJzZSIpOwotICAgICAgICAgICAgbXkgJHN2Z0xlbmd0aENvbnZl
cnRUb1NwZWNpZmllZFVuaXRzID0gKCRzdmdQcm9wZXJ0eVR5cGUgYW5kICRzdmdQcm9wZXJ0eVR5
cGUgZXEgIlNWR0xlbmd0aCIgYW5kICRmdW5jdGlvbk5hbWUgZXEgImNvbnZlcnRUb1NwZWNpZmll
ZFVuaXRzIik7CisgICAgICAgICAgICBteSAkc3ZnTGVuZ3RoQ29udmVydFRvU3BlY2lmaWVkVW5p
dHMgPSAoJHN2Z1Byb3BlcnR5VHlwZSBhbmQgJHN2Z1Byb3BlcnR5VHlwZSBlcSAiV2ViQ29yZTo6
U1ZHTGVuZ3RoIiBhbmQgJGZ1bmN0aW9uTmFtZSBlcSAiY29udmVydFRvU3BlY2lmaWVkVW5pdHMi
KTsKIAogICAgICAgICAgICAgcHVzaChAcGFyYW1ldGVyTmFtZXMsICJlYyIpIGlmICRyYWlzZXNF
eGNlcHRpb25zIGFuZCAhKCRzdmdNYXRyaXhSb3RhdGVGcm9tVmVjdG9yIHx8ICRzdmdNYXRyaXhJ
bnZlcnNlKTsKICAgICAgICAgICAgIHB1c2goQHBhcmFtZXRlck5hbWVzLCAiMCAvKiBGSVhNRSAq
LyIpIGlmICRzdmdMZW5ndGhDb252ZXJ0VG9TcGVjaWZpZWRVbml0czsgCkBAIC0xNTI0LDkgKzE1
MzQsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBuZXh0
IGlmIG5vdCAkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGlkbFR5cGUp
IG9yICRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0JC87CiAKICAgICAgICAgICAgICAgICBteSAkaW1w
bEdldHRlciA9IEdldE9iakNUeXBlR2V0dGVyKCRwYXJhbU5hbWUsICRpZGxUeXBlKTsKLSAgICAg
ICAgICAgICAgICBteSAkaWRsVHlwZVdpdGhOYW1lc3BhY2UgPSAoJGlkbFR5cGUgZXEgImZsb2F0
IikgPyAiJGlkbFR5cGUiIDogIldlYkNvcmU6OiRpZGxUeXBlIjsKKyAgICAgICAgICAgICAgICBt
eSAkaWRsVHlwZVdpdGhOYW1lc3BhY2UgPSAiV2ViQ29yZTo6IiAuICRjb2RlR2VuZXJhdG9yLT5H
ZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGlkbFR5cGUpOworICAgICAgICAgICAgICAgICRpZGxU
eXBlV2l0aE5hbWVzcGFjZSA9fiBzLzwvXDxXZWJDb3JlOjovOwogCi0gICAgICAgICAgICAgICAg
cHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjwk
aWRsVHlwZVdpdGhOYW1lc3BhY2U+KiAke3BhcmFtTmFtZX1Db3JlID0gJGltcGxHZXR0ZXI7XG4i
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgJGlkbFR5cGVX
aXRoTmFtZXNwYWNlKiAke3BhcmFtTmFtZX1Db3JlID0gJGltcGxHZXR0ZXI7XG4iKTsKICAgICAg
ICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgaWYgKCEke3BhcmFtTmFtZX1D
b3JlKSB7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAg
ICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSBXZWJDb3JlOjpUWVBFX01JU01BVENIX0VS
UjtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAgICAg
JGV4Y2VwdGlvblJhaXNlT25FcnJvclxuIik7CkBAIC0xNTQ0LDcgKzE1NTUsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGNvbnRlbnQgPSAkY29kZUdlbmVy
YXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb25OYW1lKSAuICIoIiAuIGpvaW4oIiwgIiwgQHBhcmFt
ZXRlck5hbWVzKSAuICIpIjsgCiAKICAgICAgICAgICAgIGlmICgkc3ZnUHJvcGVydHlUeXBlKSB7
Ci0gICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICRzdmdQcm9wZXJ0
eVR5cGVXaXRoTmFtZXNwYWNlJiBwb2RJbXBsID0gSU1QTC0+cHJvcGVydHlSZWZlcmVuY2UoKTtc
biIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkc3ZnUHJv
cGVydHlUeXBlJiBwb2RJbXBsID0gSU1QTC0+cHJvcGVydHlSZWZlcmVuY2UoKTtcbiIpOwogICAg
ICAgICAgICAgICAgICRjb250ZW50ID0gInBvZEltcGwuJGNvbnRlbnQ7XG4gICAgSU1QTC0+Y29t
bWl0Q2hhbmdlKCkiOyAKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgJGNv
bnRlbnQgPSAkY2FsbGVyIC4gIi0+JGNvbnRlbnQiOwpAQCAtMTU5Myw3ICsxNjA0LDEwIEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgICAgIGlmIChDb252ZXJzaW9uTmVlZGVkKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSkg
ewogICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRp
bmdUZWFyT2ZmKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBhbmQgbm90ICRpbXBsQ2xhc3NO
YW1lID1+IC9MaXN0JC8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICRjb250ZW50ID0gImtp
dChXVEY6OmdldFB0cihXZWJDb3JlOjpTVkdQcm9wZXJ0eVRlYXJPZmY8V2ViQ29yZTo6IiAuICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlIC4gIj46OmNyZWF0ZSgkY29udGVudCkpKSI7CisgICAg
ICAgICAgICAgICAgICAgICAgICBteSAkaWRsVHlwZSA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50
eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGlkbFR5cGVXaXRoTmFtZXNwYWNlID0g
IldlYkNvcmU6OiIgLiAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRp
ZGxUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICRpZGxUeXBlV2l0aE5hbWVzcGFjZSA9
fiBzLzwvXDxXZWJDb3JlOjovOworICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAi
a2l0KFdURjo6Z2V0UHRyKCR7aWRsVHlwZVdpdGhOYW1lc3BhY2V9OjpjcmVhdGUoJGNvbnRlbnQp
KSkiOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNQb2RU
eXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgJGNvbnRlbnQgPSAia2l0KCRjb250ZW50KSI7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0J
KHJldmlzaW9uIDcwNTE4KQorKysgV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQkod29ya2luZyBjb3B5KQpAQCAtMjEyLDYgKzIxMiwzNCBAQCBzdWIgR2VuZXJhdGVD
b25kaXRpb25hbFN0cmluZwogICAgIH0KIH0KIAorc3ViIEdldFNWR1Byb3BlcnR5VHlwZXMKK3sK
KyAgICBteSAkaW1wbFR5cGUgPSBzaGlmdDsKKworICAgIG15ICRzdmdQcm9wZXJ0eVR5cGU7Cisg
ICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5cGU7CisgICAgbXkgJHN2Z05hdGl2ZVR5cGU7CisKKyAg
ICByZXR1cm4gKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0
aXZlVHlwZSkgaWYgbm90ICRpbXBsVHlwZSA9fiAvU1ZHLzsKKworICAgICRzdmdOYXRpdmVUeXBl
ID0gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1R5cGVOZWVkaW5nVGVhck9mZigkaW1wbFR5cGUpOwor
ICAgIHJldHVybiAoJHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdO
YXRpdmVUeXBlKSBpZiBub3QgJHN2Z05hdGl2ZVR5cGU7CisKKyAgICAjIEFwcGVuZCBzcGFjZSB0
byBhdm9pZCBjb21waWxhdGlvbiBlcnJvcnMgd2hlbiB1c2luZyAgUGFzc1JlZlB0cjwkc3ZnTmF0
aXZlVHlwZT4KKyAgICAkc3ZnTmF0aXZlVHlwZSA9ICIkc3ZnTmF0aXZlVHlwZSAiOworCisgICAg
bXkgJHN2Z1dyYXBwZWROYXRpdmVUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1dyYXBwZWRU
eXBlTmVlZGluZ1RlYXJPZmYoJGltcGxUeXBlKTsKKyAgICBpZiAoJHN2Z05hdGl2ZVR5cGUgPX4g
L1NWR1Byb3BlcnR5VGVhck9mZi8pIHsKKyAgICAgICAgJHN2Z1Byb3BlcnR5VHlwZSA9ICRzdmdX
cmFwcGVkTmF0aXZlVHlwZTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siU1ZHUHJvcGVydHlUZWFy
T2ZmLmgifSA9IDEsCisgICAgfSBlbHNpZiAoJHN2Z05hdGl2ZVR5cGUgPX4gL1NWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmYvKSB7CisgICAgICAgICRzdmdMaXN0UHJvcGVydHlUeXBlID0gJHN2Z1dyYXBw
ZWROYXRpdmVUeXBlOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJTVkdMaXN0UHJvcGVydHlUZWFy
T2ZmLmgifSA9IDEsCisgICAgfQorCisgICAgcmV0dXJuICgkc3ZnUHJvcGVydHlUeXBlLCAkc3Zn
TGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpOworfQorCiBzdWIgR2VuZXJhdGVIZWFk
ZXIKIHsKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CkBAIC0yMjksMjMgKzI1NywxOSBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKIAogICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0ZUhlYWRlckNvbnRlbnRIZWFkZXIoJGRhdGFO
b2RlKSk7Ci0KLSAgICAjIEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMgcmVzcGVjdGluZyBQ
T0RUeXBlIGZsYWcKICAgICBteSAkcG9kVHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlBPRFR5cGUifTsKLSAgICBteSAkc3ZnUHJvcGVydHlUeXBlID0gJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHUHJvcGVydHkifTsKLSAgICBteSAkc3ZnTGlzdFByb3Bl
cnR5VHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlNWR0xpc3RQcm9wZXJ0
eSJ9OwogCiAgICAgbXkgJWhlYWRlckluY2x1ZXMgPSAoKTsKICAgICAkaGVhZGVySW5jbHVkZXN7
IiRwb2RUeXBlLmgifSA9IDEgaWYgJHBvZFR5cGUgYW5kICgkcG9kVHlwZSBuZSAiZG91YmxlIiBh
bmQgJHBvZFR5cGUgbmUgImZsb2F0IiBhbmQgJHBvZFR5cGUgbmUgIlJHQkEzMiIpOwotICAgICRo
ZWFkZXJJbmNsdWRlc3siJHN2Z1Byb3BlcnR5VHlwZS5oIn0gPSAxIGlmICRzdmdQcm9wZXJ0eVR5
cGUgYW5kICRzdmdQcm9wZXJ0eVR5cGUgbmUgImZsb2F0IjsKLSAgICAkaGVhZGVySW5jbHVkZXN7
IiRzdmdMaXN0UHJvcGVydHlUeXBlLmgifSA9IDEgaWYgJHN2Z0xpc3RQcm9wZXJ0eVR5cGU7Ci0g
ICAgJGhlYWRlckluY2x1ZGVzeyJTVkdBbmltYXRlZFByb3BlcnR5LmgifSA9IDEgaWYgJHN2Z1By
b3BlcnR5VHlwZSBvciAkc3ZnTGlzdFByb3BlcnR5VHlwZTsKICAgICAkaGVhZGVySW5jbHVkZXN7
Ind0Zi90ZXh0L1N0cmluZ0hhc2guaCJ9ID0gMTsKICAgICAkaGVhZGVySW5jbHVkZXN7IldyYXBw
ZXJUeXBlSW5mby5oIn0gPSAxOwogICAgICRoZWFkZXJJbmNsdWRlc3siVjhET01XcmFwcGVyLmgi
fSA9IDE7CisKICAgICBteSAkaGVhZGVyQ2xhc3NJbmNsdWRlID0gR2V0SGVhZGVyQ2xhc3NJbmNs
dWRlKCRpbXBsQ2xhc3NOYW1lKTsKICAgICAkaGVhZGVySW5jbHVkZXN7JGhlYWRlckNsYXNzSW5j
bHVkZX0gPSAxIGlmICRoZWFkZXJDbGFzc0luY2x1ZGUgbmUgIiI7CiAKKyAgICBteSAoJHN2Z1By
b3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKSA9IEdldFNW
R1Byb3BlcnR5VHlwZXMoJGltcGxDbGFzc05hbWUpOworCiAgICAgZm9yZWFjaCBteSAkaGVhZGVy
SW5jbHVkZSAoc29ydCBrZXlzKCVoZWFkZXJJbmNsdWRlcykpIHsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiNpbmNsdWRlIFwiJHtoZWFkZXJJbmNsdWRlfVwiXG4iKTsKICAgICB9CkBA
IC02ODUsOCArNzA5LDYgQEAgc3ViIEdlbmVyYXRlTm9ybWFsQXR0ckdldHRlcgogCiAgICAgbXkg
JG5hdGl2ZVR5cGUgPSBHZXROYXRpdmVUeXBlRnJvbVNpZ25hdHVyZSgkYXR0cmlidXRlLT5zaWdu
YXR1cmUsIC0xKTsKICAgICBteSAkaXNQb2RUeXBlID0gSXNQb2RUeXBlKCRpbXBsQ2xhc3NOYW1l
KTsKLSAgICBteSAkc3ZnUHJvcGVydHlUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiU1ZHUHJvcGVydHkifTsKLSAgICBteSAkc3ZnTGlzdFByb3BlcnR5VHlwZSA9ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlNWR0xpc3RQcm9wZXJ0eSJ9OwogICAgIG15ICRz
a2lwQ29udGV4dCA9IDA7CiAKICAgICBpZiAoJGlzUG9kVHlwZSkgewpAQCAtNjk0LDI3ICs3MTYs
MTkgQEAgc3ViIEdlbmVyYXRlTm9ybWFsQXR0ckdldHRlcgogICAgICAgICAkaW1wbEluY2x1ZGVz
eyJWOFNWR1BPRFR5cGVXcmFwcGVyLmgifSA9IDE7CiAgICAgfQogCi0gICAgJGltcGxJbmNsdWRl
c3siU1ZHUHJvcGVydHlUZWFyT2ZmLmgifSA9IDEgaWYgJHN2Z1Byb3BlcnR5VHlwZTs7Ci0gICAg
JGltcGxJbmNsdWRlc3siU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oIn0gPSAxIGlmICRzdmdMaXN0
UHJvcGVydHlUeXBlOwotCiAgICAgIyBTcGVjaWFsIGNhc2U6IFNWR1pvb21FdmVudCdzIGF0dHJp
YnV0ZXMgYXJlIGFsbCByZWFkLW9ubHkKICAgICBpZiAoJGltcGxDbGFzc05hbWUgZXEgIlNWR1pv
b21FdmVudCIpIHsKICAgICAgICAgJGF0dHJJc1BvZFR5cGUgPSAwOwogICAgICAgICAkc2tpcENv
bnRleHQgPSAxOwogICAgIH0KIAotICAgICMgU3BlY2lhbCBjYXNlOiBTVkdTVkdFZWxlbWVudDo6
dmlld3BvcnQgaXMgcmVhZC1vbmx5Ci0gICAgaWYgKCgkaW1wbENsYXNzTmFtZSBlcSAiU1ZHU1ZH
RWxlbWVudCIpIGFuZCAoJGF0dHJOYW1lIGVxICJ2aWV3cG9ydCIpKSB7Ci0gICAgICAgICRhdHRy
SXNQb2RUeXBlID0gMDsKLSAgICAgICAgJHNraXBDb250ZXh0ID0gMTsKLSAgICB9Ci0KICAgICAj
IFNwZWNpYWwgY2FzZSBmb3IgU1ZHQ29sb3IKICAgICBpZiAoKCRpbXBsQ2xhc3NOYW1lIGVxICJT
VkdDb2xvciIpIGFuZCAoJGF0dHJOYW1lIGVxICJyZ2JDb2xvciIpKSB7CiAgICAgICAgICRhdHRy
SXNQb2RUeXBlID0gMDsKICAgICB9CiAKICAgICBteSAkZ2V0dGVyU3RyaW5nVXNlc0ltcCA9ICRp
bXBsQ2xhc3NOYW1lIG5lICJmbG9hdCI7CisgICAgbXkgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdl
bmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsQ2xhc3NOYW1lKTsKIAogICAg
ICMgR2V0dGVyCiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gR2VuZXJhdGVDb25kaXRpb25h
bFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwpAQCAtNzM2LDE4ICs3NTAsMjAgQEAgRU5E
CiAgICAgJGltcGxDbGFzc05hbWUqIGltcCA9ICZpbXBJbnN0YW5jZTsKIEVORAogICAgICAgICB9
Ci0KLSAgICB9IGVsc2lmICgkc3ZnUHJvcGVydHlUeXBlKSB7Ci0gICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsIDw8RU5EKTsKLSAgICBTVkdQcm9wZXJ0eVRlYXJPZmY8JHN2Z1Byb3BlcnR5
VHlwZT4qIHdyYXBwZXIgPSBWOCR7aW1wbENsYXNzTmFtZX06OnRvTmF0aXZlKGluZm8uSG9sZGVy
KCkpOwotICAgICRzdmdQcm9wZXJ0eVR5cGUmIGltcEluc3RhbmNlID0gd3JhcHBlci0+cHJvcGVy
dHlSZWZlcmVuY2UoKTsKLSAgICAkc3ZnUHJvcGVydHlUeXBlKiBpbXAgPSAmaW1wSW5zdGFuY2U7
CisgICAgfSBlbHNpZiAoJHN2Z05hdGl2ZVR5cGUpIHsKKyAgICAgICAgbXkgJHN2Z1dyYXBwZWRO
YXRpdmVUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1dyYXBwZWRUeXBlTmVlZGluZ1RlYXJP
ZmYoJGltcGxDbGFzc05hbWUpOworICAgICAgICBpZiAoJHN2Z1dyYXBwZWROYXRpdmVUeXBlID1+
IC9MaXN0JC8pIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsK
KyAgICAkc3ZnTmF0aXZlVHlwZSogaW1wID0gVjgke2ltcGxDbGFzc05hbWV9Ojp0b05hdGl2ZShp
bmZvLkhvbGRlcigpKTsKIEVORAotICAgIH0gZWxzaWYgKCRzdmdMaXN0UHJvcGVydHlUeXBlKSB7
Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKLSAgICBTVkdMaXN0UHJv
cGVydHlUZWFyT2ZmPCRzdmdMaXN0UHJvcGVydHlUeXBlPiogaW1wID0gVjgke2ltcGxDbGFzc05h
bWV9Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKKyAgICAkc3ZnTmF0aXZlVHlwZSog
d3JhcHBlciA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Cisg
ICAgJHN2Z1dyYXBwZWROYXRpdmVUeXBlJiBpbXBJbnN0YW5jZSA9IHdyYXBwZXItPnByb3BlcnR5
UmVmZXJlbmNlKCk7CisgICAgJHN2Z1dyYXBwZWROYXRpdmVUeXBlKiBpbXAgPSAmaW1wSW5zdGFu
Y2U7CiBFTkQKLSAgICB9ICBlbHNpZiAoJGF0dHJFeHQtPnsidjhPblByb3RvIn0gfHwgJGF0dHJF
eHQtPnsiVjhEaXNhbGxvd1NoYWRvd2luZyJ9KSB7CisgICAgICAgIH0KKyAgICB9IGVsc2lmICgk
YXR0ckV4dC0+eyJ2OE9uUHJvdG8ifSB8fCAkYXR0ckV4dC0+eyJWOERpc2FsbG93U2hhZG93aW5n
In0pIHsKICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CiAgICAgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBob2xkZXIgPSBpbmZvLkhvbGRlcigpOwpAQCAtOTA0LDEyICs5MjAsMTQgQEAg
RU5ECiAgICAgfQogCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR05ld1N0eWxlQW5pbWF0
ZWRUeXBlKCRpbXBsQ2xhc3NOYW1lKSkgewotICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOCR7YXR0
clR5cGV9LmgifSA9IDE7Ci0gICAgICAgIGlmICgkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiB0b1Y4KHN0
YXRpY19jYXN0PFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8JGF0dHJUeXBlPio+KCRyZXN1bHQpKTtc
biIpOwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZHUHJvcGVydHlUZWFyT2ZmPCRhdHRy
VHlwZT4qPigkcmVzdWx0KSk7XG4iKTsKLSAgICAgICAgIH0KKyAgICAgICAgJGltcGxJbmNsdWRl
c3siVjgkYXR0clR5cGUuaCJ9ID0gMTsKKyAgICAgICAgbXkgJHN2Z05hdGl2ZVR5cGUgPSAkY29k
ZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRhdHRyVHlwZSk7CisgICAgICAg
ICMgQ29udmVydCBmcm9tIGFic3RyYWN0IFNWR1Byb3BlcnR5IHRvIHJlYWwgdHlwZSwgc28gdGhl
IHJpZ2h0IHRvSlMoKSBtZXRob2QgY2FuIGJlIGludm9rZWQuCisgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8JHN2Z05hdGl2ZVR5cGUq
PigkcmVzdWx0KSk7XG4iKTsKKyAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBl
TmVlZGluZ1RlYXJPZmYoJGF0dHJUeXBlKSBhbmQgbm90ICRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0
JC8pIHsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siVjgkYXR0clR5cGUuaCJ9ID0gMTsKKyAgICAg
ICAgbXkgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdU
ZWFyT2ZmKCRhdHRyVHlwZSk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAg
cmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoJHtzdmdOYXRpdmVUeXBlfTo6Y3JlYXRlKCRyZXN1bHQp
KSk7XG4iKTsKICAgICB9IGVsc2lmICgkYXR0cklzUG9kVHlwZSkgewogICAgICAgICAkaW1wbElu
Y2x1ZGVzeyJWOCR7YXR0clR5cGV9LmgifSA9IDE7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsICIgICAgcmV0dXJuIHRvVjgod3JhcHBlci5yZWxlYXNlKCkuZ2V0KCkpO1xuIik7CkBA
IC05NjEsOCArOTc5LDcgQEAgc3ViIEdlbmVyYXRlTm9ybWFsQXR0clNldHRlcgogICAgIH0KIAog
ICAgIG15ICRpc1BvZFR5cGUgPSBJc1BvZFR5cGUoJGltcGxDbGFzc05hbWUpOwotICAgIG15ICRz
dmdQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdQcm9w
ZXJ0eSJ9OwotICAgIG15ICRzdmdMaXN0UHJvcGVydHlUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiU1ZHTGlzdFByb3BlcnR5In07CisgICAgbXkgJHN2Z05hdGl2ZVR5cGUg
PSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsQ2xhc3NOYW1l
KTsKIAogICAgIGlmICgkaXNQb2RUeXBlKSB7CiAgICAgICAgICRpbXBsQ2xhc3NOYW1lID0gR2V0
TmF0aXZlVHlwZSgkaW1wbENsYXNzTmFtZSk7CkBAIC05NzAsMTYgKzk4NywxOSBAQCBzdWIgR2Vu
ZXJhdGVOb3JtYWxBdHRyU2V0dGVyCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIg
ICAgVjhTVkdQT0RUeXBlV3JhcHBlcjwkaW1wbENsYXNzTmFtZT4qIHdyYXBwZXIgPSBWOFNWR1BP
RFR5cGVXcmFwcGVyPCRpbXBsQ2xhc3NOYW1lPjo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7XG4i
KTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkaW1wbENsYXNzTmFtZSBp
bXBJbnN0YW5jZSA9ICp3cmFwcGVyO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgJGltcGxDbGFzc05hbWUqIGltcCA9ICZpbXBJbnN0YW5jZTtcbiIpOwotICAgIH0g
ZWxzaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgPDxFTkQpOwotICAgIFNWR1Byb3BlcnR5VGVhck9mZjwkc3ZnUHJvcGVydHlUeXBlPiogd3Jh
cHBlciA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAg
JHN2Z1Byb3BlcnR5VHlwZSYgaW1wSW5zdGFuY2UgPSB3cmFwcGVyLT5wcm9wZXJ0eVJlZmVyZW5j
ZSgpOwotICAgICRzdmdQcm9wZXJ0eVR5cGUqIGltcCA9ICZpbXBJbnN0YW5jZTsKKyAgICB9IGVs
c2lmICgkc3ZnTmF0aXZlVHlwZSkgeworICAgICAgICBteSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUg
PSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHV3JhcHBlZFR5cGVOZWVkaW5nVGVhck9mZigkaW1wbENs
YXNzTmFtZSk7CisgICAgICAgIGlmICgkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUgPX4gL0xpc3QkLykg
eworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgICRzdmdO
YXRpdmVUeXBlKiBpbXAgPSBWOCR7aW1wbENsYXNzTmFtZX06OnRvTmF0aXZlKGluZm8uSG9sZGVy
KCkpOwogRU5ECi0gICAgfSBlbHNpZiAoJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwotICAgIFNWR0xpc3RQcm9wZXJ0eVRlYXJP
ZmY8JHN2Z0xpc3RQcm9wZXJ0eVR5cGU+KiBpbXAgPSBWOCR7aW1wbENsYXNzTmFtZX06OnRvTmF0
aXZlKGluZm8uSG9sZGVyKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgICRzdmdOYXRpdmVUeXBlKiB3cmFwcGVyID0g
Vjgke2ltcGxDbGFzc05hbWV9Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICAkc3ZnV3Jh
cHBlZE5hdGl2ZVR5cGUmIGltcEluc3RhbmNlID0gd3JhcHBlci0+cHJvcGVydHlSZWZlcmVuY2Uo
KTsKKyAgICAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUqIGltcCA9ICZpbXBJbnN0YW5jZTsKIEVORAor
ICAgICAgICB9CiAgICAgfSBlbHNpZiAoJGF0dHJFeHQtPnsidjhPblByb3RvIn0pIHsKICAgICAg
IGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCA8PEVORCk7CkBAIC0xMjgwLDIyICsxMzAwLDIzIEBAIEVORAogICAgICAg
ICB9CiAgICAgfQogCi0gICAgbXkgJHN2Z1Byb3BlcnR5VHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlNWR1Byb3BlcnR5In07IAotICAgIG15ICRzdmdMaXN0UHJvcGVydHlU
eXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHTGlzdFByb3BlcnR5In07
IAorICAgIG15ICgkc3ZnUHJvcGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05h
dGl2ZVR5cGUpID0gR2V0U1ZHUHJvcGVydHlUeXBlcygkaW1wbENsYXNzTmFtZSk7CiAKICAgICBp
ZiAoSXNQb2RUeXBlKCRpbXBsQ2xhc3NOYW1lKSkgewogICAgICAgICBteSAkbmF0aXZlQ2xhc3NO
YW1lID0gR2V0TmF0aXZlVHlwZSgkaW1wbENsYXNzTmFtZSk7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgVjhTVkdQT0RUeXBlV3JhcHBlcjwkbmF0aXZlQ2xhc3NOYW1lPiog
aW1wV3JhcHBlciA9IFY4U1ZHUE9EVHlwZVdyYXBwZXI8JG5hdGl2ZUNsYXNzTmFtZT46OnRvTmF0
aXZlKGFyZ3MuSG9sZGVyKCkpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
ICIgICAgJG5hdGl2ZUNsYXNzTmFtZSBpbXBJbnN0YW5jZSA9ICppbXBXcmFwcGVyO1xuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgJG5hdGl2ZUNsYXNzTmFtZSogaW1w
ID0gJmltcEluc3RhbmNlO1xuIik7Ci0gICAgfSBlbHNpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewot
ICAgICAgICBteSAkbmF0aXZlQ2xhc3NOYW1lID0gR2V0TmF0aXZlVHlwZSgkaW1wbENsYXNzTmFt
ZSk7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgJG5hdGl2ZUNsYXNzTmFt
ZSB3cmFwcGVyID0gVjgke3N2Z1Byb3BlcnR5VHlwZX06OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkp
O1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgJHN2Z1Byb3BlcnR5
VHlwZSYgaW1wSW5zdGFuY2UgPSB3cmFwcGVyLT5wcm9wZXJ0eVJlZmVyZW5jZSgpO1xuIik7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgJHN2Z1Byb3BlcnR5VHlwZSogaW1w
ID0gJmltcEluc3RhbmNlO1xuIik7Ci0gICAgfSBlbHNpZiAoJHN2Z0xpc3RQcm9wZXJ0eVR5cGUp
IHsKLSAgICAgICAgbXkgJG5hdGl2ZUNsYXNzTmFtZSA9IEdldE5hdGl2ZVR5cGUoJGltcGxDbGFz
c05hbWUpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICRuYXRpdmVDbGFz
c05hbWUgaW1wID0gVjgke3N2Z0xpc3RQcm9wZXJ0eVR5cGV9Ojp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTtcbiIpOworICAgIH0gZWxzaWYgKCRzdmdOYXRpdmVUeXBlKSB7CisgICAgICAgIG15ICRu
YXRpdmVDbGFzc05hbWUgPSBHZXROYXRpdmVUeXBlKCRpbXBsQ2xhc3NOYW1lKTsgCisgICAgICAg
IGlmICgkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgICRuYXRpdmVDbGFzc05hbWUgaW1wID0gVjgke3N2Z0xpc3RQcm9w
ZXJ0eVR5cGV9Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTtcbiIpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgbXkgJHN2Z1dyYXBwZWROYXRpdmVUeXBlID0gJGNvZGVHZW5lcmF0b3It
PkdldFNWR1dyYXBwZWRUeXBlTmVlZGluZ1RlYXJPZmYoJGltcGxDbGFzc05hbWUpOworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkbmF0aXZlQ2xhc3NOYW1lIHdyYXBw
ZXIgPSBWOCR7c3ZnUHJvcGVydHlUeXBlfTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgJHN2Z1dyYXBwZWROYXRp
dmVUeXBlJiBpbXBJbnN0YW5jZSA9IHdyYXBwZXItPnByb3BlcnR5UmVmZXJlbmNlKCk7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgJHN2Z1dyYXBwZWROYXRp
dmVUeXBlKiBpbXAgPSAmaW1wSW5zdGFuY2U7XG4iKTsKKyAgICAgICAgfQogICAgIH0gZWxzaWYg
KCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNsYXNzTWV0aG9k
In0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwogICAgICR7aW1w
bENsYXNzTmFtZX0qIGltcCA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoYXJncy5Ib2xk
ZXIoKSk7CkBAIC0yNjQ1LDEzICsyNjY2LDExIEBAIHN1YiBHZXROYXRpdmVUeXBlRm9yQ29udmVy
c2lvbnMKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKICAgICBteSAkdHlwZSA9IHNoaWZ0Owog
Ci0gICAgJHR5cGUgPSAiRmxvYXRSZWN0IiBpZiAkdHlwZSBlcSAiU1ZHUmVjdCI7CiAgICAgJHR5
cGUgPSAiRmxvYXRQb2ludCIgaWYgJHR5cGUgZXEgIlNWR1BvaW50IjsKICAgICAkdHlwZSA9ICJB
ZmZpbmVUcmFuc2Zvcm0iIGlmICR0eXBlIGVxICJTVkdNYXRyaXgiOwogICAgICR0eXBlID0gImZs
b2F0IiBpZiAkdHlwZSBlcSAiU1ZHTnVtYmVyIjsKICAgICAkdHlwZSA9ICJWOFNWR1BPRFR5cGVX
cmFwcGVyPCR0eXBlPiIgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlw
ZSJ9OwotICAgICR0eXBlID0gIlNWR1Byb3BlcnR5VGVhck9mZjwkdHlwZT4iIGlmICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlNWR1Byb3BlcnR5In07Ci0gICAgJHR5cGUgPSAiU1ZH
TGlzdFByb3BlcnR5VGVhck9mZjwkdHlwZT4iIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlNWR0xpc3RQcm9wZXJ0eSJ9OworICAgICR0eXBlID0gJGNvZGVHZW5lcmF0b3ItPkdl
dFNWR1R5cGVOZWVkaW5nVGVhck9mZigkdHlwZSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlw
ZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKTsgCiAgICAgcmV0dXJuICR0eXBlOwogfQogCkBAIC0yNjY5
LDYgKzI2ODgsOSBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoKQogICAgIG15ICRu
YXRpdmVSZXR1cm5UeXBlID0gR2V0TmF0aXZlVHlwZSgkcmV0dXJuVHlwZSwgMCk7CiAgICAgbXkg
JHJlc3VsdCA9ICIiOwogCisgICAgbXkgJGlzU1ZHVGVhck9mZlR5cGUgPSAoJGNvZGVHZW5lcmF0
b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRyZXR1cm5UeXBlKSBhbmQgbm90ICRpbXBsQ2xh
c3NOYW1lID1+IC9MaXN0JC8pOworICAgICRuYXRpdmVSZXR1cm5UeXBlID0gJGNvZGVHZW5lcmF0
b3ItPkdldFNWR1dyYXBwZWRUeXBlTmVlZGluZ1RlYXJPZmYoJHJldHVyblR5cGUpIGlmICRpc1NW
R1RlYXJPZmZUeXBlOworCiAgICAgIyBTcGVjaWFsIGNhc2U6IFNWRyBtYXRyaXggdHJhbnNmb3Jt
IG1ldGhvZHMgc2hvdWxkIG5vdCBtdXRhdGUKICAgICAjIHRoZSBtYXRyaXggYnV0IHJldHVybiBh
IGNvcHkKICAgICBteSAkY29weUZpcnN0ID0gMDsKQEAgLTI4MTYsMTAgKzI4MzgsMTIgQEAgc3Vi
IEdlbmVyYXRlRnVuY3Rpb25DYWxsU3RyaW5nKCkKICAgICAgICAgJHJldHVybiA9ICJ3cmFwcGVy
IjsKICAgICB9CiAKLSAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFy
T2ZmKCRyZXR1cm5UeXBlKSBhbmQgbm90ICRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0JC8pIHsKKyAg
ICBpZiAoJGlzU1ZHVGVhck9mZlR5cGUpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siVjgkcmV0
dXJuVHlwZS5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJTVkdQcm9wZXJ0eVRlYXJP
ZmYuaCJ9ID0gMTsKLSAgICAgICAgcmV0dXJuICRpbmRlbnQgLiAicmV0dXJuIHRvVjgoV1RGOjpn
ZXRQdHIoU1ZHUHJvcGVydHlUZWFyT2ZmPCRyZXR1cm5UeXBlPjo6Y3JlYXRlKCRyZXR1cm4pKSk7
XG4iOworICAgICAgICBteSAkc3ZnTmF0aXZlVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdU
eXBlTmVlZGluZ1RlYXJPZmYoJHJldHVyblR5cGUpOworICAgICAgICAkcmVzdWx0IC49ICRpbmRl
bnQgLiAicmV0dXJuIHRvVjgoV1RGOjpnZXRQdHIoJHtzdmdOYXRpdmVUeXBlfTo6Y3JlYXRlKCRy
ZXR1cm4pKSk7XG4iOworICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICB9CiAKICAgICBteSAk
Z2VuZXJhdGVkU1ZHQ29udGV4dFJldHJpZXZhbCA9IDA7CkBAIC0yODQ3LDcgKzI4NzEsNyBAQCBz
dWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoKQogICAgICAgICB9CiAKICAgICAgICAgJHJl
c3VsdCAuPSAkaW5kZW50IC4gImltcFdyYXBwZXItPmNvbW1pdENoYW5nZShpbXBJbnN0YW5jZSwg
Y29udGV4dCk7XG4iOwotICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlNWR1Byb3BlcnR5In0pIHsKKyAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNTVkdU
eXBlTmVlZGluZ1RlYXJPZmYoJGltcGxDbGFzc05hbWUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUg
PX4gL0xpc3QkLykgewogICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAid3JhcHBlci0+Y29t
bWl0Q2hhbmdlKCk7XG4iOwogICAgIH0KIApAQCAtMjkyMyw2ICsyOTQ3LDE1IEBAIHN1YiBHZXRO
YXRpdmVUeXBlCiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKICAgICBteSAkaXNQYXJhbWV0ZXIgPSBz
aGlmdDsKIAorICAgIG15ICRzdmdOYXRpdmVUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1R5
cGVOZWVkaW5nVGVhck9mZigkdHlwZSk7CisgICAgaWYgKCRzdmdOYXRpdmVUeXBlKSB7CisgICAg
ICAgIGlmICgkc3ZnTmF0aXZlVHlwZSA9fiAvTGlzdCQvKSB7CisgICAgICAgICAgICByZXR1cm4g
IiR7c3ZnTmF0aXZlVHlwZX0qIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVy
biAiUmVmUHRyPCR7c3ZnTmF0aXZlVHlwZX0gPiI7CisgICAgICAgIH0KKyAgICB9CisKICAgICBp
ZiAoJHR5cGUgZXEgImZsb2F0IiBvciAkdHlwZSBlcSAiZG91YmxlIikgewogICAgICAgICByZXR1
cm4gJHR5cGU7CiAgICAgfQpAQCAtMjkzNywxMyArMjk3MCw5IEBAIHN1YiBHZXROYXRpdmVUeXBl
CiAgICAgcmV0dXJuICJib29sIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CiAgICAgcmV0dXJuICJT
dHJpbmciIGlmICR0eXBlIGVxICJET01TdHJpbmciOwogICAgIHJldHVybiAiUmFuZ2U6OkNvbXBh
cmVIb3ciIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKLSAgICByZXR1cm4gIkZsb2F0UmVjdCIg
aWYgJHR5cGUgZXEgIlNWR1JlY3QiOwogICAgIHJldHVybiAiRmxvYXRQb2ludCIgaWYgJHR5cGUg
ZXEgIlNWR1BvaW50IjsKICAgICByZXR1cm4gIkFmZmluZVRyYW5zZm9ybSIgaWYgJHR5cGUgZXEg
IlNWR01hdHJpeCI7CiAgICAgcmV0dXJuICJTVkdUcmFuc2Zvcm0iIGlmICR0eXBlIGVxICJTVkdU
cmFuc2Zvcm0iOwotICAgIHJldHVybiAiUmVmUHRyPFNWR1Byb3BlcnR5VGVhck9mZjxTVkdBbmds
ZT4gPiIgaWYgJHR5cGUgZXEgIlNWR0FuZ2xlIjsKLSAgICByZXR1cm4gIlJlZlB0cjxTVkdQcm9w
ZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoPiA+IiBpZiAkdHlwZSBlcSAiU1ZHTGVuZ3RoIjsKLSAgICBy
ZXR1cm4gIlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3RoTGlzdD4qIiBpZiAkdHlwZSBl
cSAiU1ZHTGVuZ3RoTGlzdCI7CiAgICAgcmV0dXJuICJmbG9hdCIgaWYgJHR5cGUgZXEgIlNWR051
bWJlciI7CiAgICAgcmV0dXJuICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIiBpZiAkdHlwZSBlcSAi
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbyI7CiAgICAgcmV0dXJuICJTVkdQYWludDo6U1ZHUGFpbnRU
eXBlIiBpZiAkdHlwZSBlcSAiU1ZHUGFpbnRUeXBlIjsKQEAgLTMzNzgsMTcgKzM0MDcsMTYgQEAg
c3ViIElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyCiB7CiAgICAgbXkgJGltcGxDbGFz
c05hbWUgPSBzaGlmdDsKIAorICAgIHJldHVybiAwIHVubGVzcyAkaW1wbENsYXNzTmFtZSA9fiAv
U1ZHLzsKKyAgICByZXR1cm4gMCBpZiAkaW1wbENsYXNzTmFtZSA9fiAvRWxlbWVudC87CiAgICAg
cmV0dXJuIDAgaWYgJGNvZGVHZW5lcmF0b3ItPklzU1ZHTmV3U3R5bGVBbmltYXRlZFR5cGUoJGlt
cGxDbGFzc05hbWUpOwotICAgIGlmICgkaW1wbENsYXNzTmFtZSA9fiAvU1ZHLyBhbmQgbm90ICRp
bXBsQ2xhc3NOYW1lID1+IC9FbGVtZW50LykgewotICAgICAgICByZXR1cm4gMSB1bmxlc3MgJGlt
cGxDbGFzc05hbWUgPX4gL1NWR0FuZ2xlLwotICAgICAgICAgICAgICAgICAgICAgb3IgJGltcGxD
bGFzc05hbWUgPX4gL1NWR1BhaW50LwotICAgICAgICAgICAgICAgICAgICAgb3IgJGltcGxDbGFz
c05hbWUgPX4gL1NWR0NvbG9yLwotICAgICAgICAgICAgICAgICAgICAgb3IgJGltcGxDbGFzc05h
bWUgPX4gL1NWR0RvY3VtZW50LwotICAgICAgICAgICAgICAgICAgICAgb3IgJGltcGxDbGFzc05h
bWUgPX4gL1NWR0xlbmd0aC8KLSAgICAgICAgICAgICAgICAgICAgIG9yICRpbXBsQ2xhc3NOYW1l
ID1+IC9TVkdMZW5ndGhMaXN0LzsKLSAgICB9CisgICAgcmV0dXJuIDAgaWYgJGNvZGVHZW5lcmF0
b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsQ2xhc3NOYW1lKTsKIAotICAgIHJldHVy
biAwOworICAgIG15IEBub0NvbnRleHROZWVkZWQgPSAoIlNWR0NvbG9yIiwgIlNWR0RvY3VtZW50
IiwgIlNWR1BhaW50VHlwZSIsICJTVkdQYWludCIsICJTVkdab29tRXZlbnQiKTsKKyAgICBmb3Jl
YWNoIChAbm9Db250ZXh0TmVlZGVkKSB7CisgICAgICAgIHJldHVybiAwIGlmICRpbXBsQ2xhc3NO
YW1lIGVxICRfOworICAgIH0KKyAgICByZXR1cm4gMTsKIH0KIAogIyBGSVhNRTogVGhpcyBtZXRo
b2Qgd2lsbCBnbyBhd2F5IG9uY2UgYWxsIFNWRyBhbmltYXRlZCBwcm9wZXJ0aWVzIGFyZSBjb252
ZXJ0ZWQgdG8gdGhlIG5ldyBzY2hlbWUuCkluZGV4OiBXZWJDb3JlL3N2Zy9EZXByZWNhdGVkU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVRyYWl0cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL0RlcHJl
Y2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5VHJhaXRzLmgJKHJldmlzaW9uIDcwNTE4KQorKysgV2Vi
Q29yZS9zdmcvRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHMuaAkod29ya2luZyBj
b3B5KQpAQCAtMTA1LDE4ICsxMDUsNiBAQCBzdHJ1Y3QgRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJv
cGVydHlUcmFpCiAgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhQYXNzVHlwZSB0eXBlKSB7IHJl
dHVybiB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQogfTsKIAotLy8gU1ZHQW5pbWF0ZWRSZWN0Ci10
ZW1wbGF0ZTw+Ci1zdHJ1Y3QgRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHM8Rmxv
YXRSZWN0PiA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Ci0gICAgdHlwZWRlZiBjb25zdCBGbG9hdFJl
Y3QmIFBhc3NUeXBlOwotICAgIHR5cGVkZWYgRmxvYXRSZWN0IFJldHVyblR5cGU7Ci0gICAgdHlw
ZWRlZiBGbG9hdFJlY3QgU3RvcmVkVHlwZTsKLQotICAgIHN0YXRpYyBSZXR1cm5UeXBlIG51bGwo
KSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQotICAgIHN0YXRpYyBSZXR1cm5UeXBlIHRvUmV0dXJu
VHlwZShjb25zdCBTdG9yZWRUeXBlJiB0eXBlKSB7IHJldHVybiB0eXBlOyB9Ci0gICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZyhQYXNzVHlwZSB0eXBlKSB7IHJldHVybiBTdHJpbmc6OmZvcm1hdCgi
JWYgJWYgJWYgJWYiLCB0eXBlLngoKSwgdHlwZS55KCksIHR5cGUud2lkdGgoKSwgdHlwZS5oZWln
aHQoKSk7IH0KLX07Ci0KIC8vIFNWR0FuaW1hdGVkU3RyaW5nCiB0ZW1wbGF0ZTw+CiBzdHJ1Y3Qg
RGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHM8U3RyaW5nPiA6IHB1YmxpYyBOb25j
b3B5YWJsZSB7CkluZGV4OiBXZWJDb3JlL3N2Zy9EZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL0RlcHJlY2F0ZWRTVkdBbmltYXRlZFRlbXBs
YXRlLmgJKHJldmlzaW9uIDcwNTE4KQorKysgV2ViQ29yZS9zdmcvRGVwcmVjYXRlZFNWR0FuaW1h
dGVkVGVtcGxhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDcgKzE2MCw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICB0eXBlZGVmIERlcHJlY2F0ZWRTVkdBbmltYXRlZFRlbXBsYXRlPGZs
b2F0PiBTVkdBbmltYXRlZE51bWJlcjsKICAgICB0eXBlZGVmIERlcHJlY2F0ZWRTVkdBbmltYXRl
ZFRlbXBsYXRlPFNWR051bWJlckxpc3QqPiBTVkdBbmltYXRlZE51bWJlckxpc3Q7IAogICAgIHR5
cGVkZWYgRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHUHJlc2VydmVBc3BlY3RSYXRp
bz4gU1ZHQW5pbWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOwotICAgIHR5cGVkZWYgRGVwcmVjYXRl
ZFNWR0FuaW1hdGVkVGVtcGxhdGU8RmxvYXRSZWN0PiBTVkdBbmltYXRlZFJlY3Q7CiAgICAgdHlw
ZWRlZiBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTdHJpbmc+IFNWR0FuaW1hdGVkU3Ry
aW5nOwogICAgIHR5cGVkZWYgRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHVHJhbnNm
b3JtTGlzdCo+IFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdDsKIApJbmRleDogV2ViQ29yZS9zdmcv
U1ZHQW5nbGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuZ2xlLmlkbAkocmV2
aXNpb24gNzA1MTgpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmdsZS5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTIyLDcgKzIyLDcgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZhY2UgW0NvbmRp
dGlvbmFsPVNWRywgU1ZHUHJvcGVydHk9U1ZHQW5nbGVdIFNWR0FuZ2xlIHsgCisgICAgaW50ZXJm
YWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0FuZ2xlIHsgCiAgICAgICAgIC8vIEFuZ2xlIFVuaXQg
VHlwZXMKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9VTktOT1dO
ID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0FOR0xFVFlQRV9VTlNQRUNJ
RklFRCA9IDE7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAkocmV2aXNpb24gNzA1MTgp
CisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZEFuZ2xlLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MjUsNyArMjUsNyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9u
YWw9U1ZHLCBTVkdBbmltYXRlZFByb3BlcnR5XSBTVkdBbmltYXRlZEFuZ2xlIHsKKyAgICBpbnRl
cmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHQW5pbWF0ZWRBbmdsZSB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTVkdBbmdsZSBiYXNlVmFsOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU1ZHQW5nbGUgYW5pbVZhbDsKICAgICB9OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZWRMZW5ndGguaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3Ro
LmlkbAkocmV2aXNpb24gNzA1MTgpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDcgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAg
ICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWRywgU1ZHQW5pbWF0ZWRQcm9wZXJ0eV0gU1ZHQW5p
bWF0ZWRMZW5ndGggeworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRl
ZExlbmd0aCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdMZW5ndGggYmFzZVZhbDsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0xlbmd0aCBhbmltVmFsOwogICAgIH07Cklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aExpc3QuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoTGlzdC5pZGwJKHJldmlzaW9uIDcwNTE4KQor
KysgV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjUsNyArMjUsNyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9U1ZHLCBTVkdBbmltYXRlZFByb3BlcnR5XSBTVkdBbmltYXRlZExlbmd0aExpc3Qgewor
ICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHXSBTVkdBbmltYXRlZExlbmd0aExpc3Qgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVuZ3RoTGlzdCBiYXNlVmFsOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHTGVuZ3RoTGlzdCBhbmltVmFsOwogICAgIH07CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFJlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdBbmltYXRlZFJlY3QuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvc3ZnL1NWR0FuaW1h
dGVkUmVjdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLwor
CisjaWZuZGVmIFNWR0FuaW1hdGVkUmVjdF9oCisjZGVmaW5lIFNWR0FuaW1hdGVkUmVjdF9oCisK
KyNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIlNWR0Fu
aW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordHlwZWRl
ZiBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZjxGbG9hdFJlY3Q+IFNWR0FuaW1hdGVkUmVjdDsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNWRykKKyNlbmRp
ZgpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgJKHJldmlzaW9uIDcwNTE4KQorKysgV2ViQ29yZS9z
dmcvU1ZHRml0VG9WaWV3Qm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoRG9jdW1lbnQqLCBBdHRyaWJ1dGUq
KTsKICAgICBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0g
ICAgdmlydHVhbCB2b2lkIHNldFZpZXdCb3hCYXNlVmFsdWUoRGVwcmVjYXRlZFNWR0FuaW1hdGVk
UHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6UGFzc1R5cGUpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0Vmlld0JveEJhc2VWYWx1ZShjb25zdCBGbG9hdFJlY3QmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldFByZXNlcnZlQXNwZWN0UmF0aW9CYXNlVmFsdWUoRGVwcmVjYXRlZFNWR0FuaW1h
dGVkUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz46OlBhc3NUeXBlKSA9IDA7
CiAKIHByaXZhdGU6CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdMZW5ndGguaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR0xlbmd0aC5pZGwJKHJldmlzaW9uIDcwNTE4KQorKysgV2ViQ29y
ZS9zdmcvU1ZHTGVuZ3RoLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogCiBt
b2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHLCBTVkdQcm9wZXJ0
eT1TVkdMZW5ndGhdIFNWR0xlbmd0aCB7IAorICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZH
XSBTVkdMZW5ndGggeyAKICAgICAgICAgLy8gTGVuZ3RoIFVuaXQgVHlwZXMKICAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1ZHX0xFTkdUSFRZUEVfVU5LTk9XTiAgICA9IDA7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19MRU5HVEhUWVBFX05VTUJFUiAgICAgPSAxOwpJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR01hcmtlckVsZW1lbnQuaAkocmV2aXNpb24gNzA1MTgpCisrKyBXZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTg4LDcgKzg4LDcgQEAgcHJpdmF0
ZToKICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR01hcmtlckVsZW1lbnQsIFNWR05h
bWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0ciwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKIAogICAgIC8vIFNWR0ZpdFRv
Vmlld0JveAotICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHTWFya2VyRWxlbWVudCwg
U1ZHTmFtZXM6OnZpZXdCb3hBdHRyLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCisgICAg
REVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWV9ORVcoU1ZHTWFya2VyRWxlbWVudCwgU1ZHTmFtZXM6
OnZpZXdCb3hBdHRyLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCiAgICAgREVDTEFSRV9B
TklNQVRFRF9QUk9QRVJUWShTVkdNYXJrZXJFbGVtZW50LCBTVkdOYW1lczo6cHJlc2VydmVBc3Bl
Y3RSYXRpb0F0dHIsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8s
IHByZXNlcnZlQXNwZWN0UmF0aW8pCiB9OwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXR0ZXJu
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgJ
KHJldmlzaW9uIDcwNTE4KQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHUGF0dGVybkVsZW1lbnQsIFNWR05hbWVzOjpl
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0ciwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKIAogICAgICAgICAvLyBTVkdQYXR0ZXJu
RWxlbWVudAotICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1BhdHRlcm5FbGVt
ZW50LCBTVkdOYW1lczo6dmlld0JveEF0dHIsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkK
KyAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWV9ORVcoU1ZHUGF0dGVybkVsZW1lbnQs
IFNWR05hbWVzOjp2aWV3Qm94QXR0ciwgRmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQogICAg
ICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1BhdHRlcm5FbGVtZW50LCBTVkdOYW1l
czo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8sIFByZXNl
cnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pIAogICAgIH07CiAKSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR1JlY3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1JlY3Qu
aWRsCShyZXZpc2lvbiA3MDUxOCkKKysrIFdlYkNvcmUvc3ZnL1NWR1JlY3QuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yMiwxMSArMjIsMTEgQEAKIAogbW9kdWxlIHN2ZyB7CiAKLSAgICBpbnRlcmZh
Y2UgW0NvbmRpdGlvbmFsPVNWRywgUE9EVHlwZT1GbG9hdFJlY3RdIFNWR1JlY3QgewotICAgICAg
ICBhdHRyaWJ1dGUgZmxvYXQgeDsKLSAgICAgICAgYXR0cmlidXRlIGZsb2F0IHk7Ci0gICAgICAg
IGF0dHJpYnV0ZSBmbG9hdCB3aWR0aDsKLSAgICAgICAgYXR0cmlidXRlIGZsb2F0IGhlaWdodDsK
KyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHUmVjdCB7CisgICAgICAgIGF0dHJp
YnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCB4OworICAgICAgICBhdHRyaWJ1dGUgW1N0
cmljdFR5cGVDaGVja2luZ10gZmxvYXQgeTsKKyAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBl
Q2hlY2tpbmddIGZsb2F0IHdpZHRoOworICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVj
a2luZ10gZmxvYXQgaGVpZ2h0OwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3Bw
CShyZXZpc2lvbiA3MDUxOCkKKysrIFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODYsNyArMTg2LDcgQEAgdm9pZCBTVkdTVkdFbGVtZW50OjpzZXRVc2VD
dXJyZW50VmlldyhibwogU1ZHVmlld1NwZWMqIFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRWaWV3KCkg
Y29uc3QKIHsKICAgICBpZiAoIW1fdmlld1NwZWMpCi0gICAgICAgIG1fdmlld1NwZWMgPSBhZG9w
dFB0cihuZXcgU1ZHVmlld1NwZWModGhpcykpOworICAgICAgICBtX3ZpZXdTcGVjID0gYWRvcHRQ
dHIobmV3IFNWR1ZpZXdTcGVjKGNvbnN0X2Nhc3Q8U1ZHU1ZHRWxlbWVudCo+KHRoaXMpKSk7CiAg
ICAgcmV0dXJuIG1fdmlld1NwZWMuZ2V0KCk7CiB9CiAKQEAgLTU4MCw5ICs1ODAsOSBAQCB2b2lk
IFNWR1NWR0VsZW1lbnQ6OmluaGVyaXRWaWV3QXR0cmlidXRlCiB7CiAgICAgc2V0VXNlQ3VycmVu
dFZpZXcodHJ1ZSk7CiAgICAgaWYgKHZpZXdFbGVtZW50LT5oYXNBdHRyaWJ1dGUoU1ZHTmFtZXM6
OnZpZXdCb3hBdHRyKSkKLSAgICAgICAgY3VycmVudFZpZXcoKS0+c2V0Vmlld0JveCh2aWV3RWxl
bWVudC0+dmlld0JveCgpKTsKKyAgICAgICAgY3VycmVudFZpZXcoKS0+c2V0Vmlld0JveEJhc2VW
YWx1ZSh2aWV3RWxlbWVudC0+dmlld0JveCgpKTsKICAgICBlbHNlCi0gICAgICAgIGN1cnJlbnRW
aWV3KCktPnNldFZpZXdCb3godmlld0JveCgpKTsKKyAgICAgICAgY3VycmVudFZpZXcoKS0+c2V0
Vmlld0JveEJhc2VWYWx1ZSh2aWV3Qm94KCkpOwogCiAgICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
byBhc3BlY3RSYXRpbzsKICAgICBpZiAodmlld0VsZW1lbnQtPmhhc0F0dHJpYnV0ZShTVkdOYW1l
czo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU1ZHRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkocmV2aXNp
b24gNzA1MTgpCisrKyBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTE0Niw3ICsxNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERFQ0xBUkVf
QU5JTUFURURfUFJPUEVSVFkoU1ZHU1ZHRWxlbWVudCwgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWRBdHRyLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkKQogCiAgICAgICAgIC8vIFNWR0ZpdFRvVmlld0JveAotICAgICAg
ICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1NWR0VsZW1lbnQsIFNWR05hbWVzOjp2aWV3
Qm94QXR0ciwgRmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQorICAgICAgICBERUNMQVJFX0FO
SU1BVEVEX1BST1BFUlRZX05FVyhTVkdTVkdFbGVtZW50LCBTVkdOYW1lczo6dmlld0JveEF0dHIs
IEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9Q
Uk9QRVJUWShTVkdTVkdFbGVtZW50LCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIs
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNw
ZWN0UmF0aW8pCiAgCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkb2N1bWVudFdpbGxCZWNvbWVJbmFj
dGl2ZSgpOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5pZGwJKHJldmlzaW9uIDcwNTE4KQorKysgV2Vi
Q29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQxLDE0ICs0MSwx
NCBAQCBtb2R1bGUgc3ZnIHsKICAgICAgICAgICAgICAgICAgICAgIC8qc2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pKi87CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgY29u
dGVudFN0eWxlVHlwZQogICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbikqLzsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbW11dGFibGVdIFNWR1Jl
Y3Qgdmlld3BvcnQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdSZWN0IHZpZXdwb3J0
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgcGl4ZWxVbml0VG9NaWxsaW1ldGVy
WDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IHBpeGVsVW5pdFRvTWlsbGltZXRl
clk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBzY3JlZW5QaXhlbFRvTWlsbGlt
ZXRlclg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBzY3JlZW5QaXhlbFRvTWls
bGltZXRlclk7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHVzZUN1cnJlbnRW
aWV3CiAgICAgICAgICAgICAgICAgICAgICAvKnNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKSov
OwotICAgICAgICAvLyBUT0RPICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbSW1tdXRhYmxlXSBTVkdW
aWV3U3BlYyBjdXJyZW50VmlldzsKKyAgICAgICAgLy8gVE9ETyAgICByZWFkb25seSBhdHRyaWJ1
dGUgU1ZHVmlld1NwZWMgY3VycmVudFZpZXc7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBm
bG9hdCBjdXJyZW50U2NhbGUKICAgICAgICAgICAgICAgICAgICAgIC8qc2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pKi87CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdQb2ludCBjdXJy
ZW50VHJhbnNsYXRlOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkocmV2aXNpb24gNzA1MTgp
CisrKyBXZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIy
LDYgKzIyLDcgQEAKICNkZWZpbmUgU1ZHU3ltYm9sRWxlbWVudF9oCiAKICNpZiBFTkFCTEUoU1ZH
KQorI2luY2x1ZGUgIlNWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaCIKICNpbmNsdWRlICJTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94Lmgi
CiAjaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlLmgiCkBAIC01MCw3ICs1MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdTeW1ib2xFbGVt
ZW50LCBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIsIGJvb2wsIEV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAgCiAgICAg
ICAgIC8vIFNWR0ZpdFRvVmlld0JveAotICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZ
KFNWR1N5bWJvbEVsZW1lbnQsIFNWR05hbWVzOjp2aWV3Qm94QXR0ciwgRmxvYXRSZWN0LCBWaWV3
Qm94LCB2aWV3Qm94KQorICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZX05FVyhTVkdT
eW1ib2xFbGVtZW50LCBTVkdOYW1lczo6dmlld0JveEF0dHIsIEZsb2F0UmVjdCwgVmlld0JveCwg
dmlld0JveCkKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdTeW1ib2xFbGVt
ZW50LCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIsIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pIAogICAgIH07
CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkocmV2aXNpb24gNzA1MTgpCisrKyBXZWJDb3JlL3N2
Zy9TVkdWaWV3RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw3IEBACiAjZGVm
aW5lIFNWR1ZpZXdFbGVtZW50X2gKIAogI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKICNp
bmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5jbHVkZSAiU1ZHRml0
VG9WaWV3Qm94LmgiCkBAIC01MSw3ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdWaWV3RWxlbWVudCwgU1ZHTmFtZXM6OmV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogIAogICAgICAgICAvLyBTVkdGaXRUb1Zp
ZXdCb3gKLSAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdWaWV3RWxlbWVudCwg
U1ZHTmFtZXM6OnZpZXdCb3hBdHRyLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCisgICAg
ICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFlfTkVXKFNWR1ZpZXdFbGVtZW50LCBTVkdOYW1l
czo6dmlld0JveEF0dHIsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKICAgICAgICAgREVD
TEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdWaWV3RWxlbWVudCwgU1ZHTmFtZXM6OnByZXNlcnZl
QXNwZWN0UmF0aW9BdHRyLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBQcmVzZXJ2ZUFzcGVjdFJh
dGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQogIAogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdT
dHJpbmdMaXN0PiBtX3ZpZXdUYXJnZXQ7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCShyZXZpc2lvbiA3
MDUxOCkKKysrIFdlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNWR1ZpZXdTcGVjOjpTVkdW
aWV3U3BlYyhjb25zdCBTVkdTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKK1NWR1ZpZXdTcGVj
OjpTVkdWaWV3U3BlYyhTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKICAgICA6IG1fY29udGV4
dEVsZW1lbnQoY29udGV4dEVsZW1lbnQpCiAgICAgLCBtX3RyYW5zZm9ybShTVkdUcmFuc2Zvcm1M
aXN0OjpjcmVhdGUoU1ZHTmFtZXM6OnRyYW5zZm9ybUF0dHIpKQogewpJbmRleDogV2ViQ29yZS9z
dmcvU1ZHVmlld1NwZWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5o
CShyZXZpc2lvbiA3MDUxOCkKKysrIFdlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDYgKzIxLDggQEAKICNkZWZpbmUgU1ZHVmlld1NwZWNfaAogCiAjaWYgRU5B
QkxFKFNWRykKKyNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmgiCisjaW5jbHVk
ZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZpdFRvVmlld0JveC5oIgogI2luY2x1ZGUg
IlNWR1pvb21BbmRQYW4uaCIKIApAQCAtMjksMTQgKzMxLDEzIEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBTVkdFbGVtZW50OwotICAgIGNsYXNzIFNWR1NWR0VsZW1lbnQ7CiAg
ICAgY2xhc3MgU1ZHVHJhbnNmb3JtTGlzdDsKIAogICAgIGNsYXNzIFNWR1ZpZXdTcGVjIDogcHVi
bGljIFNWR0ZpdFRvVmlld0JveCwKICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkda
b29tQW5kUGFuLAogICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIE5vbmNvcHlhYmxlIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1ZpZXdTcGVjKGNvbnN0IFNWR1NWR0VsZW1lbnQqKTsK
KyAgICAgICAgU1ZHVmlld1NwZWMoU1ZHRWxlbWVudCopOwogCiAgICAgICAgIGJvb2wgcGFyc2VW
aWV3U3BlYyhjb25zdCBTdHJpbmcmKTsKIApAQCAtNTEsMTMgKzUyLDEzIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgU3RyaW5nIHZpZXdUYXJnZXRTdHJpbmcoKSBjb25zdCB7IHJldHVy
biBtX3ZpZXdUYXJnZXRTdHJpbmc7IH0KICAgICAgICAgU1ZHRWxlbWVudCogdmlld1RhcmdldCgp
IGNvbnN0OwogCi0gICAgICAgIFNWR1NWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3Qg
eyByZXR1cm4gY29uc3RfY2FzdDxTVkdTVkdFbGVtZW50Kj4obV9jb250ZXh0RWxlbWVudCk7IH0K
KyAgICAgICAgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBjb25z
dF9jYXN0PFNWR0VsZW1lbnQqPihtX2NvbnRleHRFbGVtZW50KTsgfQogCiAgICAgcHJpdmF0ZToK
LSAgICAgICAgY29uc3QgU1ZHU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKKyAgICAgICAg
U1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKIAogICAgICAgICAvLyBTVkdGaXRUb1ZpZXdC
b3gKLSAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdWaWV3U3BlYywgU1ZHTmFt
ZXM6OnZpZXdCb3hBdHRyLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCisgICAgICAgIERF
Q0xBUkVfQU5JTUFURURfUFJPUEVSVFlfTkVXKFNWR1ZpZXdTcGVjLCBTVkdOYW1lczo6dmlld0Jv
eEF0dHIsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKICAgICAgICAgREVDTEFSRV9BTklN
QVRFRF9QUk9QRVJUWShTVkdWaWV3U3BlYywgU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9B
dHRyLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2
ZUFzcGVjdFJhdGlvKQogCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR1RyYW5zZm9ybUxpc3Q+
IG1fdHJhbnNmb3JtOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHWm9vbUV2ZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdab29tRXZlbnQuaWRsCShyZXZpc2lvbiA3MDUxOCkKKysr
IFdlYkNvcmUvc3ZnL1NWR1pvb21FdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2
LDcgQEAKIG1vZHVsZSBzdmcgewogCiAgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNW
R1pvb21FdmVudCA6IFVJRXZlbnQgeyAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbW11
dGFibGVdIFNWR1JlY3Qgem9vbVJlY3RTY3JlZW47CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdSZWN0IHpvb21SZWN0U2NyZWVuOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxv
YXQgcHJldmlvdXNTY2FsZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbW11dGFibGVd
IFNWR1BvaW50IHByZXZpb3VzVHJhbnNsYXRlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
ZmxvYXQgbmV3U2NhbGU7CkluZGV4OiBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJvcGVydHlNYWNyb3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaAkocmV2aXNpb24gNzA1MTgpCisrKyBXZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaAkod29ya2luZyBjb3B5KQpA
QCAtNzMsNyArNzMsOCBAQCBQcm9wZXJ0eVR5cGUmIExvd2VyUHJvcGVydHkjI0Jhc2VWYWx1ZSgp
CiB2b2lkIHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKGNvbnN0IFByb3BlcnR5VHlwZSYg
dHlwZSkgXAogeyBcCiAgICAgbV8jI0xvd2VyUHJvcGVydHkudmFsdWUgPSB0eXBlOyBcCi0gICAg
aW52YWxpZGF0ZVNWR0F0dHJpYnV0ZXMoKTsgXAorICAgIFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50ID0gR2V0T3duZXJFbGVtZW50Rm9yVHlwZTxPd25lclR5cGUsIElzRGVyaXZlZEZyb21TVkdF
bGVtZW50PE93bmVyVHlwZT46OnZhbHVlPjo6b3duZXJFbGVtZW50KHRoaXMpOyBcCisgICAgY29u
dGV4dEVsZW1lbnQtPmludmFsaWRhdGVTVkdBdHRyaWJ1dGVzKCk7IFwKIH0gXAogXAogdm9pZCBz
eW5jaHJvbml6ZSMjVXBwZXJQcm9wZXJ0eSgpIFwKQEAgLTgxLDEzICs4MiwxNSBAQCB2b2lkIHN5
bmNocm9uaXplIyNVcHBlclByb3BlcnR5KCkgXAogICAgIGlmICghbV8jI0xvd2VyUHJvcGVydHku
c2hvdWxkU3luY2hyb25pemUpIFwKICAgICAgICAgIHJldHVybjsgXAogICAgIEF0b21pY1N0cmlu
ZyB2YWx1ZShTVkdQcm9wZXJ0eVRyYWl0czxQcm9wZXJ0eVR5cGU+Ojp0b1N0cmluZyhMb3dlclBy
b3BlcnR5IyNCYXNlVmFsdWUoKSkpOyBcCi0gICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eVN5bmNocm9u
aXplcjxJc0Rlcml2ZWRGcm9tU1ZHRWxlbWVudDxPd25lclR5cGU+Ojp2YWx1ZT46OnN5bmNocm9u
aXplKHRoaXMsIERPTUF0dHJpYnV0ZSwgdmFsdWUpOyBcCisgICAgU1ZHRWxlbWVudCogY29udGV4
dEVsZW1lbnQgPSBHZXRPd25lckVsZW1lbnRGb3JUeXBlPE93bmVyVHlwZSwgSXNEZXJpdmVkRnJv
bVNWR0VsZW1lbnQ8T3duZXJUeXBlPjo6dmFsdWU+Ojpvd25lckVsZW1lbnQodGhpcyk7IFwKKyAg
ICBTVkdBbmltYXRlZFByb3BlcnR5U3luY2hyb25pemVyPElzRGVyaXZlZEZyb21TVkdFbGVtZW50
PE93bmVyVHlwZT46OnZhbHVlPjo6c3luY2hyb25pemUoY29udGV4dEVsZW1lbnQsIERPTUF0dHJp
YnV0ZSwgdmFsdWUpOyBcCiB9IFwKIFwKIFBhc3NSZWZQdHI8VGVhck9mZlR5cGU+IExvd2VyUHJv
cGVydHkjI0FuaW1hdGVkKCkgXAogeyBcCiAgICAgbV8jI0xvd2VyUHJvcGVydHkuc2hvdWxkU3lu
Y2hyb25pemUgPSB0cnVlOyBcCi0gICAgcmV0dXJuIFNWR0FuaW1hdGVkUHJvcGVydHk6Omxvb2t1
cE9yQ3JlYXRlV3JhcHBlcjxUZWFyT2ZmVHlwZSwgUHJvcGVydHlUeXBlPih0aGlzLCBET01BdHRy
aWJ1dGUsIFNWR0RPTUF0dHJpYnV0ZUlkZW50aWZpZXIsIG1fIyNMb3dlclByb3BlcnR5LnZhbHVl
KTsgXAorICAgIFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50ID0gR2V0T3duZXJFbGVtZW50Rm9y
VHlwZTxPd25lclR5cGUsIElzRGVyaXZlZEZyb21TVkdFbGVtZW50PE93bmVyVHlwZT46OnZhbHVl
Pjo6b3duZXJFbGVtZW50KHRoaXMpOyBcCisgICAgcmV0dXJuIFNWR0FuaW1hdGVkUHJvcGVydHk6
Omxvb2t1cE9yQ3JlYXRlV3JhcHBlcjxUZWFyT2ZmVHlwZSwgUHJvcGVydHlUeXBlPihjb250ZXh0
RWxlbWVudCwgRE9NQXR0cmlidXRlLCBTVkdET01BdHRyaWJ1dGVJZGVudGlmaWVyLCBtXyMjTG93
ZXJQcm9wZXJ0eS52YWx1ZSk7IFwKIH0gXAogcHJpdmF0ZTogXAogICAgIG11dGFibGUgU1ZHU3lu
Y2hyb25pemFibGVBbmltYXRlZFByb3BlcnR5PFByb3BlcnR5VHlwZT4gbV8jI0xvd2VyUHJvcGVy
dHk7CkBAIC0xMDMsNyArMTA2LDggQEAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWV9ORVdfU0hB
UkVEKE93bgogXAogdm9pZCBkZXRhY2hBbmltYXRlZCMjVXBwZXJQcm9wZXJ0eSMjTGlzdFdyYXBw
ZXJzKHVuc2lnbmVkIG5ld0xpc3RTaXplKSBcCiB7IFwKLSAgICBTVkdBbmltYXRlZFByb3BlcnR5
KiB3cmFwcGVyID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwV3JhcHBlcjxTVkdBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPiA+KHRoaXMsIERPTUF0dHJpYnV0ZS5s
b2NhbE5hbWUoKSk7IFwKKyAgICBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCA9IEdldE93bmVy
RWxlbWVudEZvclR5cGU8T3duZXJUeXBlLCBJc0Rlcml2ZWRGcm9tU1ZHRWxlbWVudDxPd25lclR5
cGU+Ojp2YWx1ZT46Om93bmVyRWxlbWVudCh0aGlzKTsgXAorICAgIFNWR0FuaW1hdGVkUHJvcGVy
dHkqIHdyYXBwZXIgPSBTVkdBbmltYXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR0FuaW1h
dGVkTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+ID4oY29udGV4dEVsZW1lbnQsIERP
TUF0dHJpYnV0ZS5sb2NhbE5hbWUoKSk7IFwKICAgICBpZiAoIXdyYXBwZXIpIFwKICAgICAgICAg
cmV0dXJuOyBcCiAgICAgc3RhdGljX2Nhc3Q8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2Zm
PFByb3BlcnR5VHlwZT4qPih3cmFwcGVyKS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG5ld0xpc3RTaXpl
KTsgXApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzA1MTkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0yNiAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDb252ZXJ0IFNWR1JlY3QgdG8gdGhlIG5ldyBTVkdQcm9w
ZXJ0eVRlYXJPZmYgY29uY2VwdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDgyMDQKKworICAgICAgICBBZGRlZCBuZXcgdGVzdCB2ZXJpZnlpbmcgdGhh
dCBTdHJpY3RUeXBlQ2hlY2tpbmcgaXMgZW5hYmxlZCBmb3IgU1ZHUmVjdC4KKworICAgICAgICAq
IHN2Zy9kb20vU1ZHUmVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20v
U1ZHUmVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvZG9tL3NjcmlwdC10ZXN0cy9TVkdS
ZWN0LmpzOiBBZGRlZC4KKwogMjAxMC0xMC0yNiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1JlY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N2Zy9kb20vU1ZHUmVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1JlY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMzIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBTVkdSZWN0IEFQSQorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitDaGVjayBpbml0aWFsIHJlY3QgdmFsdWVzCitQ
QVNTIHJlY3QueCBpcyAwCitQQVNTIHJlY3QueSBpcyAwCitQQVNTIHJlY3Qud2lkdGggaXMgMAor
UEFTUyByZWN0LmhlaWdodCBpcyAwCisKK0NoZWNrIGFzc2lnbmluZyByZWN0cworUEFTUyByZWN0
LnggPSAxMDAgaXMgMTAwCitQQVNTIHJlY3QueSA9IDIwMCBpcyAyMDAKK1BBU1MgcmVjdC53aWR0
aCA9IDMwMCBpcyAzMDAKK1BBU1MgcmVjdC5oZWlnaHQgPSA0MDAgaXMgNDAwCisKK0NoZWNrIGFz
c2lnbmluZyBpbnZhbGlkIHJlY3RzCitQQVNTIHJlY3QueCA9IHJlY3QgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgcmVjdC55ID0gbnVsbCBpcyBudWxsCitQQVNT
IHJlY3Qud2lkdGggPSAnYVN0cmluZycgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KK1BBU1MgcmVjdC5oZWlnaHQgPSBzdmdFbGVtZW50IHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCisKK0NoZWNrIHRoYXQgdGhlIHJlY3QgaXMgc3RpbGwgY29udGFp
bmluZyB0aGUgY29ycmVjdCB2YWx1ZXMKK1BBU1MgcmVjdC54IGlzIDEwMAorUEFTUyByZWN0Lnkg
aXMgMAorUEFTUyByZWN0LndpZHRoIGlzIDMwMAorUEFTUyByZWN0LmhlaWdodCBpcyA0MDAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvZG9tL1NWR1JlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdmcvZG9tL1NWR1JlY3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9k
b20vU1ZHUmVjdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9TVkdSZWN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvc3ZnL2RvbS9zY3JpcHQtdGVzdHMvU1ZHUmVjdC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdmcvZG9tL3NjcmlwdC10ZXN0cy9TVkdSZWN0LmpzCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvc3ZnL2RvbS9zY3JpcHQtdGVzdHMvU1ZHUmVjdC5qcwkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzNCBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhl
IFNWR1JlY3QgQVBJIik7CisKK3ZhciBzdmdFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJzdmciKTsKK3ZhciByZWN0ID0gc3Zn
RWxlbWVudC5jcmVhdGVTVkdSZWN0KCk7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVjayBpbml0
aWFsIHJlY3QgdmFsdWVzIik7CitzaG91bGRCZSgicmVjdC54IiwgIjAiKTsKK3Nob3VsZEJlKCJy
ZWN0LnkiLCAiMCIpOworc2hvdWxkQmUoInJlY3Qud2lkdGgiLCAiMCIpOworc2hvdWxkQmUoInJl
Y3QuaGVpZ2h0IiwgIjAiKTsKKworZGVidWcoIiIpOworZGVidWcoIkNoZWNrIGFzc2lnbmluZyBy
ZWN0cyIpOworc2hvdWxkQmUoInJlY3QueCA9IDEwMCIsICIxMDAiKTsKK3Nob3VsZEJlKCJyZWN0
LnkgPSAyMDAiLCAiMjAwIik7CitzaG91bGRCZSgicmVjdC53aWR0aCA9IDMwMCIsICIzMDAiKTsK
K3Nob3VsZEJlKCJyZWN0LmhlaWdodCA9IDQwMCIsICI0MDAiKTsKKworZGVidWcoIiIpOworZGVi
dWcoIkNoZWNrIGFzc2lnbmluZyBpbnZhbGlkIHJlY3RzIik7CitzaG91bGRUaHJvdygicmVjdC54
ID0gcmVjdCIpOworc2hvdWxkQmVOdWxsKCJyZWN0LnkgPSBudWxsIik7CitzaG91bGRUaHJvdygi
cmVjdC53aWR0aCA9ICdhU3RyaW5nJyIpOworc2hvdWxkVGhyb3coInJlY3QuaGVpZ2h0ID0gc3Zn
RWxlbWVudCIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiQ2hlY2sgdGhhdCB0aGUgcmVjdCBpcyBz
dGlsbCBjb250YWluaW5nIHRoZSBjb3JyZWN0IHZhbHVlcyIpOworc2hvdWxkQmUoInJlY3QueCIs
ICIxMDAiKTsKK3Nob3VsZEJlKCJyZWN0LnkiLCAiMCIpOworc2hvdWxkQmUoInJlY3Qud2lkdGgi
LCAiMzAwIik7CitzaG91bGRCZSgicmVjdC5oZWlnaHQiLCAiNDAwIik7CisKK3N1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71918</attachid>
            <date>2010-10-26 11:39:30 -0700</date>
            <delta_ts>2010-10-26 13:31:15 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>SVGRect.patch</filename>
            <type>text/plain</type>
            <size>73343</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDU0NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTAtMTAtMjYgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ29udmVydCBTVkdSZWN0IHRvIHRoZSBuZXcgU1ZHUHJvcGVydHlUZWFyT2ZmIGNvbmNl
cHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MjA0
CisKKyAgICAgICAgQ29udmVydCB0aGUgbmV4dCBTVkcgcHJpbWl0aXZlIHR5cGUgdG8gdXNlIHRo
ZSBTVkdQcm9wZXJ0eVRlYXJPZmYgY29uY2VwdDogU1ZHUmVjdC4KKyAgICAgICAgQWRkZWQgbmV3
IHRlc3QgdmVyaWZ5aW5nIHRoYXQgU3RyaWN0VHlwZUNoZWNraW5nIGlzIGVuYWJsZWQgZm9yIFNW
R1JlY3QuIFJlZmFjdG9yIGFuZCBzaGFyZSBjb2RlIGJldHdlZW4gSlNDL1Y4L09iakMgZ2VuZXJh
dG9ycy4KKworICAgICAgICBUZXN0OiBzdmcvZG9tL1NWR1JlY3QuaHRtbAorCisgICAgICAgICog
R05VbWFrZWZpbGUuYW06IEFkZCBTVkdBbmltYXRlZFJlY3QuaCB0byBidWlsZC4KKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG06IFJlZmFjdG9yIFNWR1Byb3BlcnR5VGVhck9m
ZiBoYW5kbGluZywgYW5kIHNoYXJlIGNvZGUgYmV0d2VlbiBKU0MvVjgvT2JqQyBnZW5lcmF0b3Jz
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBEaXR0by4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOiBEaXR0by4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbTogRGl0dG8uCisg
ICAgICAgICogc3ZnL0RlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5VHJhaXRzLmg6IFJlbW92
ZSBTVkdBbmltYXRlZFJlY3QgaGFuZGxpbmcuCisgICAgICAgICogc3ZnL0RlcHJlY2F0ZWRTVkdB
bmltYXRlZFRlbXBsYXRlLmg6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbmdsZS5pZGw6IFJl
bW92ZSBbU1ZHUHJvcGVydHldIGZsYWcuCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkQW5nbGUu
aWRsOiBSZW1vdmUgW1NWR0FuaW1hdGVkUHJvcGVydHldIGZsYWcuCisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoLmlkbDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5pZGw6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlZFJlY3QuaDogQWRk
ZWQuCisgICAgICAgICogc3ZnL1NWR0ZpdFRvVmlld0JveC5oOiBTVkdSZWN0IG5vdyB1c2VzIHRo
ZSBuZXcgdGVhciBvZmYgY29uY2VwdCwgYWRhcHQgY29kZS4KKyAgICAgICAgKiBzdmcvU1ZHTGVu
Z3RoLmlkbDogUmVtb3ZlIFtTVkdQcm9wZXJ0eV0gZmxhZy4KKyAgICAgICAgKiBzdmcvU1ZHTWFy
a2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdSZWN0LmlkbDogUmVtb3ZlIFtQT0RUeXBlXSBmbGFnLCBhZGQgU3RyaWN0VHlw
ZUNoZWNraW5nIHRvIGFsbCBhdHRyaWJ1dGVzLgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50
LmNwcDogcy9zZXRWaWV3Qm94L3NldFZpZXdCb3hCYXNlVmFsdWUvLgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHU1ZHRWxlbWVudDo6Y3VycmVudFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZH
RWxlbWVudDo6aW5oZXJpdFZpZXdBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50LmlkbDogUmVtb3ZlIFtJbW11dGFi
bGVdIGZsYWdzIGZvciBTVkdSZWN0IHR5cGVzLCBubyBsb25nZXIgbmVlZGVkLgorICAgICAgICAq
IHN2Zy9TVkdTeW1ib2xFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR1ZpZXdTcGVjLmNwcDogVGFrZSBhIFNWR0VsZW1lbnQgYXMgY29u
dGV4dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVj
KToKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMuaDogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpTVkdWaWV3U3BlYzo6Y29udGV4dEVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdab29tRXZl
bnQuaWRsOiBSZW1vdmUgW0ltbXV0YWJsZV0gZmxhZ3MgZm9yIFNWR1JlY3QgdHlwZXMsIG5vIGxv
bmdlciBuZWVkZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eU1hY3Jvcy5oOiBTdXBwb3J0IGRlY2xhcmluZyBhbmltYXRlZCBwcm9wZXJ0aWVzIG9uIG5vbi1T
VkdFbGVtZW50IHR5cGVzIChoZXJlOiBTVkdWaWV3U3BlYyksIGp1c3QgbGlrZSB0aGUgb2xkIG1h
Y3JvcyBoYW5kbGVkIGl0LgorCiAyMDEwLTEwLTI2ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA3MDUyNikKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTMwNDEsNiArMzA0MSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZWRQYXRoRGF0YS5oIFwKIAlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFBvaW50cy5jcHAg
XAogCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUG9pbnRzLmggXAorCVdlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkUmVjdC5oIFwKIAlXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAgXAogCVdl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmggXAogCVdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVN
b3Rpb25FbGVtZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNzA1MjYpCisrKyBXZWJDb3JlL1dl
YkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMzk3Myw2ICszOTczLDcgQEAKICAgICAgICAg
ICAgICdzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5p
bWF0ZWRQb2ludHMuY3BwJywKICAgICAgICAgICAgICdzdmcvU1ZHQW5pbWF0ZWRQb2ludHMuaCcs
CisgICAgICAgICAgICAnc3ZnL1NWR0FuaW1hdGVkUmVjdC5oJywKICAgICAgICAgICAgICdzdmcv
U1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ3N2Zy9TVkdBbmltYXRpb25F
bGVtZW50LmgnLAogICAgICAgICAgICAgJ3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCcsCkluZGV4
OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8J
KHJldmlzaW9uIDcwNTI2KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpA
QCAtMjM2NSw2ICsyMzY1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgc3ZnL1NWR0FuaW1hdGVkTGVu
Z3RoTGlzdC5oIFwKICAgICBzdmcvU1ZHQW5pbWF0ZWRQYXRoRGF0YS5oIFwKICAgICBzdmcvU1ZH
QW5pbWF0ZWRQb2ludHMuaCBcCisgICAgc3ZnL1NWR0FuaW1hdGVkUmVjdC5oIFwKICAgICBzdmcv
U1ZHQW5pbWF0ZUVsZW1lbnQuaCBcCiAgICAgc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50Lmgg
XAogICAgIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIFwKSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNzA1MjYpCisrKyBXZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MTIwNyw2ICs2
MTIwNywxMCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxzdmdcU1ZHQW5pbWF0ZWRSZWN0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdcU1ZHQW5pbWF0ZUVsZW1lbnQuaCINCiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gNzA1MjYpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjI1LDYgKzIyNSw3IEBACiAJCTA4
QzZBN0FCMTE3REZCQUIwMEZFQTFBMiAvKiBSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhDNkE3QTkx
MTdERkJBQjAwRkVBMUEyIC8qIFJlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5jcHAgKi87IH07
CiAJCTA4QzZBN0FDMTE3REZCQUIwMEZFQTFBMiAvKiBSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29s
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4QzZB
N0FBMTE3REZCQUIwMEZFQTFBMiAvKiBSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuaCAqLzsg
fTsKIAkJMDhDN0EyQzcxMERDNzQ2MjAwMkQzNjhCIC8qIFNWR05hbWVzLmggaW4gQ29weSBHZW5l
cmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTY1ODFF
OTA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHTmFtZXMuaCAqLzsgfTsKKwkJMDhDODU5QzAxMjc0NTc1
NDAwQTU3MjhEIC8qIFNWR0FuaW1hdGVkUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDhDODU5QkYxMjc0NTc1MzAwQTU3MjhEIC8qIFNWR0FuaW1h
dGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTA4QzkyNTE5MEZDQzdDNEEwMDQ4MERFQyAvKiBGaWx0ZXJFZmZlY3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhDOTI1MTcwRkNDN0M0QTAw
NDgwREVDIC8qIEZpbHRlckVmZmVjdC5jcHAgKi87IH07CiAJCTA4QzkyNTFBMEZDQzdDNEEwMDQ4
MERFQyAvKiBGaWx0ZXJFZmZlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA4QzkyNTE4MEZDQzdDNEEwMDQ4MERFQyAvKiBGaWx0ZXJFZmZlY3QuaCAq
LzsgfTsKIAkJMDhDRDYxQkMwRUQzOTI5QzAwMkRERjUxIC8qIFdNTFRhc2tFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4Q0Q2MUI4MEVE
MzkyOUMwMDJEREY1MSAvKiBXTUxUYXNrRWxlbWVudC5jcHAgKi87IH07CkBAIC02MjE4LDYgKzYy
MTksNyBAQAogCQkwOEM0QzUxNzBFRjE5QTQwMDBFNDg0MEYgLyogV01MSW1hZ2VMb2FkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MSW1hZ2VMb2FkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDhDNkE3QTkxMTdERkJBQjAwRkVBMUEyIC8qIFJlbmRl
clNWR1Jlc291cmNlU29saWRDb2xvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwOEM2QTdBQTExN0RGQkFCMDBGRUExQTIgLyogUmVuZGVyU1ZHUmVzb3Vy
Y2VTb2xpZENvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNW
R1Jlc291cmNlU29saWRDb2xvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwOEM4
NTlCRjEyNzQ1NzUzMDBBNTcyOEQgLyogU1ZHQW5pbWF0ZWRSZWN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwOEM5MjUxNzBGQ0M3QzRBMDA0ODBERUMgLyogRmlsdGVyRWZmZWN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZpbHRlckVmZmVjdC5jcHA7IHBh
dGggPSBmaWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA4QzkyNTE4MEZDQzdDNEEwMDQ4MERFQyAvKiBGaWx0ZXJFZmZlY3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmlsdGVyRWZmZWN0Lmg7IHBhdGggPSBmaWx0ZXJzL0Zp
bHRlckVmZmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwOENENjFCODBFRDM5
MjlDMDAyRERGNTEgLyogV01MVGFza0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV01MVGFza0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTU5NzksNiArMTU5ODEsNyBAQAogCQkJCUIyMjI3N0YyMEQwMEJGMUYwMDcxQjc4
MiAvKiBTVkdBbmltYXRlZFBvaW50cy5oICovLAogCQkJCUIyMjI3N0YzMEQwMEJGMUYwMDcxQjc4
MiAvKiBTVkdBbmltYXRlZFBvaW50cy5pZGwgKi8sCiAJCQkJQjIyMjc3RjQwRDAwQkYxRjAwNzFC
NzgyIC8qIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgKi8sCisJCQkJMDhDODU5
QkYxMjc0NTc1MzAwQTU3MjhEIC8qIFNWR0FuaW1hdGVkUmVjdC5oICovLAogCQkJCUIyMjI3N0Y1
MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFJlY3QuaWRsICovLAogCQkJCUIyMjI3N0Y2
MEQwMEJGMUYwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFN0cmluZy5pZGwgKi8sCiAJCQkJQjIyMjc3
RjgwRDAwQkYxRjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdC5pZGwgKi8sCkBA
IC0yMTE3NSw2ICsyMTE3OCw3IEBACiAJCQkJMDg5MDIxQUQxMjZFRjVFOTAwOTJENUVBIC8qIFNW
R0FuaW1hdGVkTGVuZ3RoTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEFCNEJDNzcxMjZGREI3
MTAwREVCNzI3IC8qIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwODdCODQ5NjEyNzJDRUM4MDBBMTQ0MTcgLyogU1ZHQW5pbWF0ZWRB
bmdsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDhDODU5QzAxMjc0NTc1NDAwQTU3MjhEIC8qIFNW
R0FuaW1hdGVkUmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU4OTc4RUQxMjcwOTBENjAwNzZE
NUE5IC8qIFNwZWVjaElucHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTIxMjM1LDcgKzIxMjM5LDYg
QEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5
QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
UHJvamVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAy
LjQiOwotCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVu
Y29kaW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCShyZXZpc2lvbiA3MDUyNikK
KysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCSh3b3JraW5nIGNv
cHkpCkBAIC01MSwxNCArNTEsMTIgQEAgbXkgJW51bWVyaWNUeXBlSGFzaCA9ICgiaW50IiA9PiAx
LCAic2hvcgogbXkgJXByaW1pdGl2ZVR5cGVIYXNoID0gKCAiYm9vbGVhbiIgPT4gMSwgInZvaWQi
ID0+IDEsICJEYXRlIiA9PiAxKTsKIAogbXkgJXBvZFR5cGVIYXNoID0gKCJTVkdOdW1iZXIiID0+
IDEsICJTVkdUcmFuc2Zvcm0iID0+IDEpOwotbXkgJXBvZFR5cGVzV2l0aFdyaXRhYmxlUHJvcGVy
dGllc0hhc2ggPSAoIlNWR01hdHJpeCIgPT4gMSwgIlNWR1BvaW50IiA9PiAxLCAiU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbyIgPT4gMSwgIlNWR1JlY3QiID0+IDEpOworbXkgJXBvZFR5cGVzV2l0aFdy
aXRhYmxlUHJvcGVydGllc0hhc2ggPSAoIlNWR01hdHJpeCIgPT4gMSwgIlNWR1BvaW50IiA9PiAx
LCAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyIgPT4gMSk7CiBteSAlc3RyaW5nVHlwZUhhc2ggPSAo
IkRPTVN0cmluZyIgPT4gMSwgIkF0b21pY1N0cmluZyIgPT4gMSk7CiAKIG15ICVub25Qb2ludGVy
VHlwZUhhc2ggPSAoIkRPTVRpbWVTdGFtcCIgPT4gMSwgIkNvbXBhcmVIb3ciID0+IDEsICJTVkdQ
YWludFR5cGUiID0+IDEpOwogCi1teSAlc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmSGFzaCA9ICgiU1ZH
TGVuZ3RoIiA9PiAxLCAiU1ZHQW5nbGUiID0+IDEpOwotCi1teSAlc3ZnTmV3U3R5bGVBbmltYXRl
ZFR5cGVIYXNoID0gKCJTVkdBbmltYXRlZEFuZ2xlIiA9PiAxLCAiU1ZHQW5pbWF0ZWRMZW5ndGgi
ID0+IDEsICJTVkdBbmltYXRlZExlbmd0aExpc3QiID0+IDEpOworbXkgJXN2Z05ld1N0eWxlQW5p
bWF0ZWRUeXBlSGFzaCA9ICgiU1ZHQW5pbWF0ZWRBbmdsZSIgPT4gMSwgIlNWR0FuaW1hdGVkTGVu
Z3RoIiA9PiAxLCAiU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0IiA9PiAxLCAiU1ZHQW5pbWF0ZWRSZWN0
IiA9PiAxKTsKIAogbXkgJXN2Z0FuaW1hdGVkVHlwZUhhc2ggPSAoIlNWR0FuaW1hdGVkQW5nbGUi
ID0+IDEsICJTVkdBbmltYXRlZEJvb2xlYW4iID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiIgPT4gMSwgIlNWR0FuaW1hdGVkSW50ZWdlciIg
PT4gMSwKQEAgLTc0LDYgKzcyLDEzIEBAIG15ICVzdmdBdHRyaWJ1dGVzSW5IVE1MSGFzaCA9ICgi
Y2xhc3MiID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25tb3VzZXVwIiA9PiAx
LCAib25yZXNpemUiID0+IDEsICJvbnNjcm9sbCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAib251bmxvYWQiID0+IDEpOwogCitteSAlc3ZnTmF0aXZlVHlwZSA9ICgKKyAg
ICAiU1ZHQW5nbGUiID0+ICJTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHQW5nbGU+IiwKKyAgICAiU1ZH
TGVuZ3RoIiA9PiAiU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0xlbmd0aD4iLAorICAgICJTVkdMZW5n
dGhMaXN0IiA9PiAiU1ZHTGlzdFByb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhMaXN0PiIsCisgICAg
IlNWR1JlY3QiID0+ICJTVkdQcm9wZXJ0eVRlYXJPZmY8RmxvYXRSZWN0PiIKKyk7CisKICMgQ2Fj
aGUgb2YgSURMIGZpbGUgcGF0aG5hbWVzLgogbXkgJGlkbEZpbGVzOwogCkBAIC0yODcsNiArMjky
LDE2IEBAIHN1YiBQYXJzZUludGVyZmFjZQogCiAjIEhlbHBlcnMgZm9yIGFsbCBDb2RlR2VuZXJh
dG9yKioqLnBtIG1vZHVsZXMKIAorc3ViIEF2b2lkSW5jbHVzaW9uT2ZUeXBlCit7CisgICAgbXkg
JG9iamVjdCA9IHNoaWZ0OworICAgIG15ICR0eXBlID0gc2hpZnQ7CisKKyAgICAjIFNwZWNpYWwg
Y2FzZTogU1ZHUmVjdC5oIC8gU1ZHUG9pbnQuaCAvIFNWR051bWJlci5oIC8gU1ZHTWF0cml4Lmgg
ZG8gbm90IGV4aXN0LgorICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJTVkdSZWN0IiBvciAkdHlw
ZSBlcSAiU1ZHUG9pbnQiIG9yICR0eXBlIGVxICJTVkdOdW1iZXIiIG9yICR0eXBlIGVxICJTVkdN
YXRyaXgiOworICAgIHJldHVybiAwOworfQorCiAjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdv
IGF3YXkgb25jZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0
aGUgbmV3IHNjaGVtZS4KIHN1YiBJc1BvZFR5cGUKIHsKQEAgLTM0NCwxNiArMzU5LDQxIEBAIHN1
YiBJc05vblBvaW50ZXJUeXBlCiAgICAgcmV0dXJuIDA7CiB9CiAKLQogc3ViIElzU1ZHVHlwZU5l
ZWRpbmdUZWFyT2ZmCiB7CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogICAgIG15ICR0eXBlID0g
c2hpZnQ7CiAKLSAgICByZXR1cm4gMSBpZiAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmSGFzaHskdHlw
ZX07CisgICAgcmV0dXJuIDEgaWYgZXhpc3RzICRzdmdOYXRpdmVUeXBleyR0eXBlfTsKICAgICBy
ZXR1cm4gMDsKIH0KIAorc3ViIEdldFNWR1R5cGVOZWVkaW5nVGVhck9mZgoreworICAgIG15ICRv
YmplY3QgPSBzaGlmdDsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgcmV0dXJuICRzdmdO
YXRpdmVUeXBleyR0eXBlfSBpZiBleGlzdHMgJHN2Z05hdGl2ZVR5cGV7JHR5cGV9OworICAgIHJl
dHVybiB1bmRlZjsKK30KKworc3ViIEdldFNWR1dyYXBwZWRUeXBlTmVlZGluZ1RlYXJPZmYKK3sK
KyAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIG15
ICRzdmdOYXRpdmVUeXBlID0gJG9iamVjdC0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBl
KTsKKyAgICByZXR1cm4gJHN2Z05hdGl2ZVR5cGUgaWYgbm90ICRzdmdOYXRpdmVUeXBlOworCisg
ICAgaWYgKCRzdmdOYXRpdmVUeXBlID1+IC9TVkdQcm9wZXJ0eVRlYXJPZmYvKSB7CisgICAgICAg
ICRzdmdOYXRpdmVUeXBlID1+IHMvU1ZHUHJvcGVydHlUZWFyT2ZmPC8vOworICAgIH0gZWxzaWYg
KCRzdmdOYXRpdmVUeXBlID1+IC9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLykgeworICAgICAgICAk
c3ZnTmF0aXZlVHlwZSA9fiBzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8Ly87CisgICAgfQorICAg
ICRzdmdOYXRpdmVUeXBlID1+IHMvPi8vOworICAgIHJldHVybiAkc3ZnTmF0aXZlVHlwZTsKK30K
KwogIyBGSVhNRTogVGhpcyBtZXRob2Qgd2lsbCBnbyBhd2F5IG9uY2UgYWxsIFNWRyBhbmltYXRl
ZCBwcm9wZXJ0aWVzIGFyZSBjb252ZXJ0ZWQgdG8gdGhlIG5ldyBzY2hlbWUuCiBzdWIgSXNTVkdO
ZXdTdHlsZUFuaW1hdGVkVHlwZQogewpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA3MDUyNikKKysrIFdlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTIyNywxNSArMjI3
LDYgQEAgc3ViIEdldENhbGxiYWNrQ2xhc3NOYW1lCiAgICAgcmV0dXJuICJKUyRjbGFzc05hbWUi
OwogfQogCi1zdWIgQXZvaWRJbmNsdXNpb25PZlR5cGUKLXsKLSAgICBteSAkdHlwZSA9IHNoaWZ0
OwotCi0gICAgIyBTcGVjaWFsIGNhc2U6IFNWR1JlY3QuaCAvIFNWR1BvaW50LmggLyBTVkdOdW1i
ZXIuaCAvIFNWR01hdHJpeC5oIGRvIG5vdCBleGlzdC4KLSAgICByZXR1cm4gMSBpZiAkdHlwZSBl
cSAiU1ZHUmVjdCIgb3IgJHR5cGUgZXEgIlNWR1BvaW50IiBvciAkdHlwZSBlcSAiU1ZHTnVtYmVy
IiBvciAkdHlwZSBlcSAiU1ZHTWF0cml4IjsKLSAgICByZXR1cm4gMDsKLX0KLQogc3ViIEluZGV4
R2V0dGVyUmV0dXJuc1N0cmluZ3MKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwpAQCAtMjUxLDcg
KzI0Miw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKIAogICAgICMgV2hlbiB3ZSdyZSBmaW5p
c2hlZCB3aXRoIHRoZSBvbmUtZmlsZS1wZXItY2xhc3MKICAgICAjIHJlb3JnYW5pemF0aW9uLCB3
ZSB3b24ndCBuZWVkIHRoZXNlIHNwZWNpYWwgY2FzZXMuCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpIG9yIEF2b2lkSW5jbHVzaW9uT2ZUeXBlKCR0eXBlKQor
ICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciAkY29kZUdl
bmVyYXRvci0+QXZvaWRJbmNsdXNpb25PZlR5cGUoJHR5cGUpCiAgICAgICAgIG9yICR0eXBlIGVx
ICJET01TdHJpbmciIG9yICR0eXBlIGVxICJET01PYmplY3QiIG9yICR0eXBlIGVxICJBcnJheSIp
IHsKICAgICB9IGVsc2lmICgkdHlwZSA9fiAvU1ZHUGF0aFNlZy8pIHsKICAgICAgICAgJGpvaW5l
ZE5hbWUgPSAkdHlwZTsKQEAgLTI4NCw2ICsyNzUsNyBAQCBzdWIgQWRkSW5jbHVkZXNGb3JUeXBl
CiAgICAgfQogfQogCisjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkgb25jZSBhbGwg
U1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3IHNjaGVtZS4K
IHN1YiBBZGRJbmNsdWRlc0ZvclNWR0FuaW1hdGVkVHlwZQogewogICAgIG15ICR0eXBlID0gc2hp
ZnQ7CkBAIC0zMzQsOCArMzI2LDkgQEAgc3ViIElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1l
dGVyCiAgICAgcmV0dXJuIDAgdW5sZXNzICRpbXBsQ2xhc3NOYW1lID1+IC9TVkcvOwogICAgIHJl
dHVybiAwIGlmICRpbXBsQ2xhc3NOYW1lID1+IC9FbGVtZW50LzsKICAgICByZXR1cm4gMCBpZiAk
Y29kZUdlbmVyYXRvci0+SXNTVkdOZXdTdHlsZUFuaW1hdGVkVHlwZSgkaW1wbENsYXNzTmFtZSk7
CisgICAgcmV0dXJuIDAgaWYgJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2Zm
KCRpbXBsQ2xhc3NOYW1lKTsKIAotICAgIG15IEBub0NvbnRleHROZWVkZWQgPSAoIlNWR0FuZ2xl
IiwgIlNWR0xlbmd0aCIsICJTVkdMZW5ndGhMaXN0IiwgIlNWR1BhaW50IiwgIlNWR0NvbG9yIiwg
IlNWR0RvY3VtZW50IiwgIlNWR1pvb21FdmVudCIpOworICAgIG15IEBub0NvbnRleHROZWVkZWQg
PSAoIlNWR0NvbG9yIiwgIlNWR0RvY3VtZW50IiwgIlNWR1BhaW50IiwgIlNWR1pvb21FdmVudCIp
OwogICAgIGZvcmVhY2ggKEBub0NvbnRleHROZWVkZWQpIHsKICAgICAgICAgcmV0dXJuIDAgaWYg
JGltcGxDbGFzc05hbWUgZXEgJF87CiAgICAgfQpAQCAtNjczLDI3ICs2NjYsMTEgQEAgc3ViIEdl
bmVyYXRlSGVhZGVyCiAgICAgfQogICAgIAogICAgICRoZWFkZXJJbmNsdWRlc3siPHJ1bnRpbWUv
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Lmg+In0gPSAxOwotCiAgICAgJGhlYWRlckluY2x1ZGVz
eyJTVkdFbGVtZW50LmgifSA9IDEgaWYgJGNsYXNzTmFtZSA9fiAvXkpTU1ZHLzsKIAotICAgICMg
R2V0IGNvcnJlY3QgcGFzcy9zdG9yZSB0eXBlcyByZXNwZWN0aW5nIFBPRFR5cGUgZmxhZwogICAg
IG15ICRpbXBsVHlwZSA9ICRpbXBsQ2xhc3NOYW1lOwotCi0gICAgbXkgJHN2Z1Byb3BlcnR5VHlw
ZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlNWR1Byb3BlcnR5In07ICAgIAot
ICAgIGlmICgkc3ZnUHJvcGVydHlUeXBlKSB7Ci0gICAgICAgICRpbXBsVHlwZSA9ICJTVkdQcm9w
ZXJ0eVRlYXJPZmY8JHN2Z1Byb3BlcnR5VHlwZT4gIjsKLSAgICAgICAgJGhlYWRlckluY2x1ZGVz
eyJTVkdBbmltYXRlZFByb3BlcnR5LmgifSA9IDE7Ci0gICAgICAgICRoZWFkZXJJbmNsdWRlc3si
U1ZHUHJvcGVydHlUZWFyT2ZmLmgifSA9IDE7Ci0gICAgICAgICRoZWFkZXJJbmNsdWRlc3siJHN2
Z1Byb3BlcnR5VHlwZS5oIn0gPSAxIGlmICRzdmdQcm9wZXJ0eVR5cGUgbmUgImZsb2F0IjsKLSAg
ICB9Ci0KLSAgICBteSAkc3ZnTGlzdFByb3BlcnR5VHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlNWR0xpc3RQcm9wZXJ0eSJ9OyAgICAKLSAgICBpZiAoJHN2Z0xpc3RQcm9w
ZXJ0eVR5cGUpIHsKLSAgICAgICAgJGltcGxUeXBlID0gIlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8
JHN2Z0xpc3RQcm9wZXJ0eVR5cGU+ICI7Ci0gICAgICAgICRoZWFkZXJJbmNsdWRlc3siU1ZHQW5p
bWF0ZWRQcm9wZXJ0eS5oIn0gPSAxOwotICAgICAgICAkaGVhZGVySW5jbHVkZXN7IlNWR0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaCJ9ID0gMTsKLSAgICAgICAgJGhlYWRlckluY2x1ZGVzeyIkc3ZnTGlz
dFByb3BlcnR5VHlwZS5oIn0gPSAxOwotICAgIH0KKyAgICBteSAoJHN2Z1Byb3BlcnR5VHlwZSwg
JHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKSA9IEdldFNWR1Byb3BlcnR5VHlw
ZXMoJGltcGxUeXBlKTsKKyAgICAkaW1wbFR5cGUgPSAkc3ZnTmF0aXZlVHlwZSBpZiAkc3ZnTmF0
aXZlVHlwZTsKIAogICAgICMgRklYTUU6IE9sZCBzdHlsZSBTVkcgSlMgYmluZGluZ3MsIHdpbGwg
dmFuaXNoIHNvb24uCiAgICAgbXkgJHBvZFR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJQT0RUeXBlIn07CkBAIC03MTQsMTEgKzY5MSwxMyBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcbm5hbWVzcGFjZSBXZWJDb3JlIHtcblxu
Iik7CiAKLSAgICBteSAkc3ZnQW5pbWF0ZWRQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJTVkdBbmltYXRlZFByb3BlcnR5In07ICAgCi0gICAgJGhlYWRlcklu
Y2x1ZGVzeyIkaW1wbENsYXNzTmFtZS5oIn0gPSAxIGlmICRzdmdBbmltYXRlZFByb3BlcnR5VHlw
ZTsKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHTmV3U3R5bGVBbmltYXRlZFR5cGUoJGlt
cGxDbGFzc05hbWUpKSB7CisgICAgICAgICRoZWFkZXJJbmNsdWRlc3siJGltcGxDbGFzc05hbWUu
aCJ9ID0gMTsKKyAgICB9IGVsc2UgeworICAgICAgICAjIEltcGxlbWVudGF0aW9uIGNsYXNzIGZv
cndhcmQgZGVjbGFyYXRpb24KKyAgICAgICAgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQoJGltcGxD
bGFzc05hbWUpIHVubGVzcyAkc3ZnUHJvcGVydHlPclBvZFR5cGU7CisgICAgfQogCi0gICAgIyBJ
bXBsZW1lbnRhdGlvbiBjbGFzcyBmb3J3YXJkIGRlY2xhcmF0aW9uCi0gICAgQWRkQ2xhc3NGb3J3
YXJkSWZOZWVkZWQoJGltcGxDbGFzc05hbWUpIHVubGVzcyAkc3ZnUHJvcGVydHlPclBvZFR5cGUg
b3IgJHN2Z0FuaW1hdGVkUHJvcGVydHlUeXBlOwogICAgIEFkZENsYXNzRm9yd2FyZElmTmVlZGVk
KCJKU0RPTVdpbmRvd1NoZWxsIikgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7CiAK
ICAgICAjIENsYXNzIGRlY2xhcmF0aW9uCkBAIC0xNDQ3LDE2ICsxNDI2LDEyIEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgfQogICAgIHB1c2goQGltcGxDb250ZW50LCAifTtcblxu
Iik7CiAKLSAgICAjIEdldCBjb3JyZWN0IHBhc3Mvc3RvcmUgdHlwZXMgcmVzcGVjdGluZyBQT0RU
eXBlIGZsYWcKICAgICBteSAkaW1wbFR5cGUgPSAkaW1wbENsYXNzTmFtZTsKLSAgICBteSAkc3Zn
UHJvcGVydHlUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHUHJvcGVy
dHkifTsgICAgCi0gICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJTVkdMaXN0UHJvcGVydHkifTsgICAgCisgICAgbXkgKCRzdmdQcm9w
ZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSkgPSBHZXRTVkdQ
cm9wZXJ0eVR5cGVzKCRpbXBsVHlwZSk7CisgICAgJGltcGxUeXBlID0gJHN2Z05hdGl2ZVR5cGUg
aWYgJHN2Z05hdGl2ZVR5cGU7CisKICAgICBteSAkcG9kVHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlBPRFR5cGUifTsKLSAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewot
ICAgICAgICAkaW1wbFR5cGUgPSAiU1ZHUHJvcGVydHlUZWFyT2ZmPCRzdmdQcm9wZXJ0eVR5cGU+
ICI7Ci0gICAgfSBlbHNpZiAoJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgJGltcGxU
eXBlID0gIlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8JHN2Z0xpc3RQcm9wZXJ0eVR5cGU+ICI7Ci0g
ICAgfSBlbHNpZiAoJHBvZFR5cGUpIHsKKyAgICBpZiAoJHBvZFR5cGUpIHsKICAgICAgICAgJGlt
cGxUeXBlID0gIkpTU1ZHUE9EVHlwZVdyYXBwZXI8JHBvZFR5cGU+ICI7CiAgICAgfQogCkBAIC0x
ODEwLDYgKzE3ODUsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICMgRm9yIHNldHRlcnMgd2l0aCAiU3RyaWN0VHlwZUNoZWNraW5nIiwg
aWYgYW4gaW5wdXQgcGFyYW1ldGVyJ3MgdHlwZSBkb2VzIG5vdCBtYXRjaCB0aGUgc2lnbmF0dXJl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYSBUeXBlRXJyb3IgaXMgdGhyb3duIGlu
c3RlYWQgb2YgY2FzdGluZyB0byBudWxsLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTdHJpY3RUeXBl
Q2hlY2tpbmcifSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1
ZGVzeyI8cnVudGltZS9FcnJvci5oPiJ9ID0gMTsKKwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBteSAkYXJnVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFJc05hdGl2ZVR5cGUoJGFyZ1R5cGUpKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoIXZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgIXZhbHVlLmluaGVyaXRzKCZK
UyR7YXJnVHlwZX06OnNfaW5mbykpIHtcbiIpOwpAQCAtMjA3Nyw2ICsyMDU0LDggQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEZvciBm
dW5jdGlvbnMgd2l0aCAiU3RyaWN0VHlwZUNoZWNraW5nIiwgaWYgYW4gaW5wdXQgcGFyYW1ldGVy
J3MgdHlwZSBkb2VzIG5vdCBtYXRjaCB0aGUgc2lnbmF0dXJlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICMgYSBUeXBlRXJyb3IgaXMgdGhyb3duIGluc3RlYWQgb2YgY2FzdGluZyB0byBu
dWxsLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN0cmljdFR5cGVDaGVja2luZyJ9KSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IjxydW50aW1lL0Vycm9yLmg+
In0gPSAxOworCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRhcmdWYWx1ZSA9
ICJleGVjLT5hcmd1bWVudCgkYXJnc0luZGV4KSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghSXNOYXRpdmVUeXBlKCRhcmdUeXBlKSkgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGV4ZWMtPmFyZ3Vt
ZW50Q291bnQoKSA+ICRhcmdzSW5kZXggJiYgISR7YXJnVmFsdWV9LmlzVW5kZWZpbmVkT3JOdWxs
KCkgJiYgISR7YXJnVmFsdWV9LmluaGVyaXRzKCZKUyR7YXJnVHlwZX06OnNfaW5mbykpXG4iKTsK
QEAgLTI0NzAsOCArMjQ0OSw2IEBAIG15ICVuYXRpdmVUeXBlID0gKAogICAgICJOb2RlRmlsdGVy
IiA9PiAiUmVmUHRyPE5vZGVGaWx0ZXI+IiwKICAgICAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiA9
PiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4iLAogICAgICJJREJLZXkiID0+ICJSZWZQ
dHI8SURCS2V5PiIsCi0gICAgIlNWR0FuZ2xlIiA9PiAiU1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0Fu
Z2xlPioiLAotICAgICJTVkdMZW5ndGgiID0+ICJTVkdQcm9wZXJ0eVRlYXJPZmY8U1ZHTGVuZ3Ro
PioiLAogICAgICJTVkdNYXRyaXgiID0+ICJBZmZpbmVUcmFuc2Zvcm0iLAogICAgICJTVkdOdW1i
ZXIiID0+ICJmbG9hdCIsCiAgICAgIlNWR1BhaW50VHlwZSIgPT4gIlNWR1BhaW50OjpTVkdQYWlu
dFR5cGUiLApAQCAtMjQ5MywxMiArMjQ3MCw0NCBAQCBzdWIgR2V0TmF0aXZlVHlwZQogewogICAg
IG15ICR0eXBlID0gc2hpZnQ7CiAKKyAgICBteSAkc3ZnTmF0aXZlVHlwZSA9ICRjb2RlR2VuZXJh
dG9yLT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpOworICAgIHJldHVybiAiJHtzdmdO
YXRpdmVUeXBlfSoiIGlmICRzdmdOYXRpdmVUeXBlOwogICAgIHJldHVybiAkbmF0aXZlVHlwZXsk
dHlwZX0gaWYgZXhpc3RzICRuYXRpdmVUeXBleyR0eXBlfTsKIAogICAgICMgRm9yIGFsbCBvdGhl
ciB0eXBlcywgdGhlIG5hdGl2ZSB0eXBlIGlzIGEgcG9pbnRlciB3aXRoIHNhbWUgdHlwZSBuYW1l
IGFzIHRoZSBJREwgdHlwZS4KICAgICByZXR1cm4gIiR7dHlwZX0qIjsKIH0KIAorc3ViIEdldFNW
R1Byb3BlcnR5VHlwZXMKK3sKKyAgICBteSAkaW1wbFR5cGUgPSBzaGlmdDsKKworICAgIG15ICRz
dmdQcm9wZXJ0eVR5cGU7CisgICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5cGU7CisgICAgbXkgJHN2
Z05hdGl2ZVR5cGU7CisKKyAgICByZXR1cm4gKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJv
cGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSkgaWYgbm90ICRpbXBsVHlwZSA9fiAvU1ZHLzsKKyAg
ICAKKyAgICAkc3ZnTmF0aXZlVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVlZGlu
Z1RlYXJPZmYoJGltcGxUeXBlKTsKKyAgICByZXR1cm4gKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdM
aXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSkgaWYgbm90ICRzdmdOYXRpdmVUeXBlOwor
CisgICAgIyBBcHBlbmQgc3BhY2UgdG8gYXZvaWQgY29tcGlsYXRpb24gZXJyb3JzIHdoZW4gdXNp
bmcgIFBhc3NSZWZQdHI8JHN2Z05hdGl2ZVR5cGU+CisgICAgJHN2Z05hdGl2ZVR5cGUgPSAiJHN2
Z05hdGl2ZVR5cGUgIjsKKworICAgIG15ICRzdmdXcmFwcGVkTmF0aXZlVHlwZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5HZXRTVkdXcmFwcGVkVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsVHlwZSk7CisgICAg
aWYgKCRzdmdOYXRpdmVUeXBlID1+IC9TVkdQcm9wZXJ0eVRlYXJPZmYvKSB7CisgICAgICAgICRz
dmdQcm9wZXJ0eVR5cGUgPSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGU7CisgICAgICAgICRoZWFkZXJJ
bmNsdWRlc3siJHN2Z1dyYXBwZWROYXRpdmVUeXBlLmgifSA9IDE7CisgICAgICAgICRoZWFkZXJJ
bmNsdWRlc3siU1ZHUHJvcGVydHlUZWFyT2ZmLmgifSA9IDE7CisgICAgfSBlbHNpZiAoJHN2Z05h
dGl2ZVR5cGUgPX4gL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYvKSB7CisgICAgICAgICRzdmdMaXN0
UHJvcGVydHlUeXBlID0gJHN2Z1dyYXBwZWROYXRpdmVUeXBlOworICAgICAgICAkaGVhZGVySW5j
bHVkZXN7IiRzdmdXcmFwcGVkTmF0aXZlVHlwZS5oIn0gPSAxOworICAgICAgICAkaGVhZGVySW5j
bHVkZXN7IlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCJ9ID0gMTsKKyAgICB9CisKKyAgICByZXR1
cm4gKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlw
ZSk7Cit9CisKIHN1YiBJc05hdGl2ZVR5cGUKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwpAQCAt
MjY0OSw3ICsyNjU4LDcgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgIH0gZWxzZSB7CiAgICAg
ICAgICMgRGVmYXVsdCwgaW5jbHVkZSBoZWFkZXIgd2l0aCBzYW1lIG5hbWUuCiAgICAgICAgICRp
bXBsSW5jbHVkZXN7IkpTJHR5cGUuaCJ9ID0gMTsKLSAgICAgICAgJGltcGxJbmNsdWRlc3siJHR5
cGUuaCJ9ID0gMTsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siJHR5cGUuaCJ9ID0gMSBpZiBub3Qg
JGNvZGVHZW5lcmF0b3ItPkF2b2lkSW5jbHVzaW9uT2ZUeXBlKCR0eXBlKTsKICAgICB9CiAKICAg
ICByZXR1cm4gJHZhbHVlIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkdHlw
ZSk7CkBAIC0yNjY1LDEzICsyNjc0LDkgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogCiAgICAgaWYg
KCRjb2RlR2VuZXJhdG9yLT5Jc1NWR05ld1N0eWxlQW5pbWF0ZWRUeXBlKCRpbXBsQ2xhc3NOYW1l
KSkgewogICAgICAgICAjIENvbnZlcnQgZnJvbSBhYnN0cmFjdCBTVkdQcm9wZXJ0eSB0byByZWFs
IHR5cGUsIHNvIHRoZSByaWdodCB0b0pTKCkgbWV0aG9kIGNhbiBiZSBpbnZva2VkLgotICAgICAg
ICBpZiAoJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykgewotICAgICAgICAgICAgJHZhbHVlID0g
InN0YXRpY19jYXN0PFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8JHR5cGU+Kj4oJHZhbHVlKSI7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkdmFsdWUgPSAic3RhdGljX2Nhc3Q8U1ZHUHJv
cGVydHlUZWFyT2ZmPCR0eXBlPio+KCR2YWx1ZSkiOwotICAgICAgICB9CisgICAgICAgICR2YWx1
ZSA9ICJzdGF0aWNfY2FzdDwiIC4gR2V0TmF0aXZlVHlwZSgkdHlwZSkgLiAiPigkdmFsdWUpIjsK
ICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5
cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykgewotICAgICAgICAkdmFsdWUg
PSAiU1ZHUHJvcGVydHlUZWFyT2ZmPCR0eXBlPjo6Y3JlYXRlKCR2YWx1ZSkiOworICAgICAgICAk
dmFsdWUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKSAu
ICI6OmNyZWF0ZSgkdmFsdWUpIjsKICAgICB9CiAKICAgICByZXR1cm4gInRvSlMoZXhlYywgJGds
b2JhbE9iamVjdCwgV1RGOjpnZXRQdHIoJHZhbHVlKSkiOwpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkocmV2aXNpb24gNzA1MjYpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0JKHdvcmtpbmcgY29w
eSkKQEAgLTYwMCwxMiArNjAwLDYgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCR0eXBlIGVxICJTVkdSZWN0IikgewotICAgICAgICAk
aW1wbEluY2x1ZGVzeyJGbG9hdFJlY3QuaCJ9ID0gMTsKLSAgICAgICAgJGltcGxJbmNsdWRlc3si
RE9NU1ZHUmVjdEludGVybmFsLmgifSA9IDE7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAg
ICBpZiAoJHR5cGUgZXEgIlNWR1BvaW50IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJGbG9h
dFBvaW50LmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkRPTVNWR1BvaW50SW50ZXJu
YWwuaCJ9ID0gMTsKQEAgLTY1OCwxMCArNjUyLDM5IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUK
ICAgICAkaW1wbEluY2x1ZGVzeyJOYW1lTm9kZUxpc3QuaCJ9ID0gMSBpZiAkdHlwZSBlcSAiTm9k
ZUxpc3QiOwogCiAgICAgIyBEZWZhdWx0LCBpbmNsdWRlIHRoZSBzYW1lIG5hbWVkIGZpbGUgKHRo
ZSBpbXBsZW1lbnRhdGlvbikgYW5kIHRoZSBzYW1lIG5hbWUgcHJlZml4ZWQgd2l0aCAiRE9NIi4g
Ci0gICAgJGltcGxJbmNsdWRlc3siJHR5cGUuaCJ9ID0gMTsKKyAgICAkaW1wbEluY2x1ZGVzeyIk
dHlwZS5oIn0gPSAxIGlmIG5vdCAkY29kZUdlbmVyYXRvci0+QXZvaWRJbmNsdXNpb25PZlR5cGUo
JHR5cGUpOwogICAgICRpbXBsSW5jbHVkZXN7IkRPTSR7dHlwZX1JbnRlcm5hbC5oIn0gPSAxOwog
fQogCitzdWIgR2V0U1ZHUHJvcGVydHlUeXBlcworeworICAgIG15ICRpbXBsVHlwZSA9IHNoaWZ0
OworCisgICAgbXkgJHN2Z1Byb3BlcnR5VHlwZTsKKyAgICBteSAkc3ZnTGlzdFByb3BlcnR5VHlw
ZTsKKyAgICBteSAkc3ZnTmF0aXZlVHlwZTsKKworICAgIHJldHVybiAoJHN2Z1Byb3BlcnR5VHlw
ZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKSBpZiBub3QgJGltcGxUeXBl
ID1+IC9TVkcvOworCisgICAgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZH
VHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsVHlwZSk7CisgICAgcmV0dXJuICgkc3ZnUHJvcGVydHlU
eXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpIGlmIG5vdCAkc3ZnTmF0
aXZlVHlwZTsKKworICAgICMgQXBwZW5kIHNwYWNlIHRvIGF2b2lkIGNvbXBpbGF0aW9uIGVycm9y
cyB3aGVuIHVzaW5nICBQYXNzUmVmUHRyPCRzdmdOYXRpdmVUeXBlPgorICAgICRzdmdOYXRpdmVU
eXBlID0gIldlYkNvcmU6OiRzdmdOYXRpdmVUeXBlICI7CisgICAgJHN2Z05hdGl2ZVR5cGUgPX4g
cy88L1w8V2ViQ29yZTo6LzsKKworICAgIG15ICRzdmdXcmFwcGVkTmF0aXZlVHlwZSA9ICRjb2Rl
R2VuZXJhdG9yLT5HZXRTVkdXcmFwcGVkVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsVHlwZSk7Cisg
ICAgaWYgKCRzdmdOYXRpdmVUeXBlID1+IC9TVkdQcm9wZXJ0eVRlYXJPZmYvKSB7CisgICAgICAg
ICRzdmdQcm9wZXJ0eVR5cGUgPSAiV2ViQ29yZTo6JHN2Z1dyYXBwZWROYXRpdmVUeXBlIjsKKyAg
ICAgICAgJHN2Z1Byb3BlcnR5VHlwZSA9fiBzLzwvXDxXZWJDb3JlOjovOworICAgIH0gZWxzaWYg
KCRzdmdOYXRpdmVUeXBlID1+IC9TVkdMaXN0UHJvcGVydHlUZWFyT2ZmLykgeworICAgICAgICAk
c3ZnTGlzdFByb3BlcnR5VHlwZSA9ICJXZWJDb3JlOjokc3ZnV3JhcHBlZE5hdGl2ZVR5cGUiOwor
ICAgICAgICAkc3ZnTGlzdFByb3BlcnR5VHlwZSA9fiBzLzwvXDxXZWJDb3JlOjovOworICAgIH0K
KworICAgIHJldHVybiAoJHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRz
dmdOYXRpdmVUeXBlKTsKK30KKwogc3ViIEdlbmVyYXRlSGVhZGVyCiB7CiAgICAgbXkgJG9iamVj
dCA9IHNoaWZ0OwpAQCAtOTc0LDIzICs5OTcsMTYgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAg
dW5sZXNzICgkaXNQcm90b2NvbCkgewogICAgICAgICAjIEdlbmVyYXRlIGludGVybmFsIGludGVy
ZmFjZXMKICAgICAgICAgbXkgJHBvZFR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJQT0RUeXBlIn07Ci0gICAgICAgIG15ICRzdmdQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdQcm9wZXJ0eSJ9OwotICAgICAgICBteSAkc3ZnTGlz
dFByb3BlcnR5VHlwZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlNWR0xpc3RQ
cm9wZXJ0eSJ9OwogICAgICAgICBteSAkcG9kVHlwZVdpdGhOYW1lc3BhY2U7Ci0gICAgICAgIG15
ICRzdmdQcm9wZXJ0eVR5cGVXaXRoTmFtZXNwYWNlOwotICAgICAgICBteSAkc3ZnTGlzdFByb3Bl
cnR5VHlwZVdpdGhOYW1lc3BhY2U7CiAgICAgICAgIG15ICRpbXBsQ2xhc3NOYW1lID0gR2V0SW1w
bENsYXNzTmFtZSgkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAgIG15ICRpbXBsQ2xhc3NOYW1lV2l0
aE5hbWVzcGFjZSA9ICJXZWJDb3JlOjoiIC4gJGltcGxDbGFzc05hbWU7CiAKICAgICAgICAgbXkg
JGltcGxUeXBlID0gJGltcGxDbGFzc05hbWVXaXRoTmFtZXNwYWNlOworICAgICAgICBteSAoJHN2
Z1Byb3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKSA9IEdl
dFNWR1Byb3BlcnR5VHlwZXMoJGltcGxDbGFzc05hbWUpOworICAgICAgICAkaW1wbFR5cGUgPSAk
c3ZnTmF0aXZlVHlwZSBpZiAkc3ZnTmF0aXZlVHlwZTsKKwogICAgICAgICBpZiAoJHBvZFR5cGUp
IHsKICAgICAgICAgICAgICRwb2RUeXBlV2l0aE5hbWVzcGFjZSA9ICgkcG9kVHlwZSBlcSAiZmxv
YXQiKSA/ICIkcG9kVHlwZSIgOiAiV2ViQ29yZTo6JHBvZFR5cGUiOwotICAgICAgICB9IGVsc2lm
ICgkc3ZnUHJvcGVydHlUeXBlKSB7Ci0gICAgICAgICAgICAkaW1wbFR5cGUgPSAiV2ViQ29yZTo6
U1ZHUHJvcGVydHlUZWFyT2ZmPCRpbXBsVHlwZT4iOwotICAgICAgICAgICAgJHN2Z1Byb3BlcnR5
VHlwZVdpdGhOYW1lc3BhY2UgPSAoJHN2Z1Byb3BlcnR5VHlwZSBlcSAiZmxvYXQiKSA/ICIkc3Zn
UHJvcGVydHlUeXBlIiA6ICJXZWJDb3JlOjokc3ZnUHJvcGVydHlUeXBlIjsKLSAgICAgICAgfSBl
bHNpZiAoJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgICAgICRpbXBsVHlwZSA9ICJX
ZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPCRpbXBsVHlwZT4iOwotICAgICAgICAgICAg
JHN2Z0xpc3RQcm9wZXJ0eVR5cGVXaXRoTmFtZXNwYWNlID0gIldlYkNvcmU6OiRzdmdMaXN0UHJv
cGVydHlUeXBlIjsKICAgICAgICAgfQogIAogICAgICAgICAjIEdlbmVyYXRlIGludGVyZmFjZSBk
ZWZpbml0aW9ucy4gCkBAIC0xMDE3LDEwICsxMDMzLDYgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAg
ICAgICAgICAgICAkc3RhcnRlZE5hbWVzcGFjZSA9IDE7CiAgICAgICAgICAgICBpZiAoJHBvZFR5
cGUgYW5kICRwb2RUeXBlIG5lICJmbG9hdCIpIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbnRl
cm5hbEhlYWRlckNvbnRlbnQsICIgICAgY2xhc3MgJHBvZFR5cGU7XG4iKTsKLSAgICAgICAgICAg
IH0gZWxzaWYgKCRzdmdQcm9wZXJ0eVR5cGUgYW5kICRzdmdQcm9wZXJ0eVR5cGUgbmUgImZsb2F0
IikgewotICAgICAgICAgICAgICAgIHB1c2goQGludGVybmFsSGVhZGVyQ29udGVudCwgIiAgICBj
bGFzcyAkc3ZnUHJvcGVydHlUeXBlO1xuIik7Ci0gICAgICAgICAgICB9IGVsc2lmICgkc3ZnTGlz
dFByb3BlcnR5VHlwZSkgewotICAgICAgICAgICAgICAgIHB1c2goQGludGVybmFsSGVhZGVyQ29u
dGVudCwgIiAgICBjbGFzcyAkc3ZnTGlzdFByb3BlcnR5VHlwZTtcbiIpOwogICAgICAgICAgICAg
fSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGUiKSB7CiAgICAgICAgICAgICAgICAgcHVz
aChAaW50ZXJuYWxIZWFkZXJDb250ZW50LCAiICAgIGNsYXNzIEV2ZW50VGFyZ2V0O1xuICAgIGNs
YXNzIE5vZGU7XG4iKTsKICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0xMDcyLDIxICsxMDg0LDE0
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgJG51bUZ1bmN0aW9ucyA9IEB7
JGRhdGFOb2RlLT5mdW5jdGlvbnN9OwogCiAgICAgbXkgJHBvZFR5cGUgPSAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBlIn07Ci0gICAgbXkgJHN2Z1Byb3BlcnR5VHlwZSA9
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlNWR1Byb3BlcnR5In07Ci0gICAgbXkg
JHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJT
VkdMaXN0UHJvcGVydHkifTsKICAgICBteSAkcG9kVHlwZVdpdGhOYW1lc3BhY2U7Ci0gICAgbXkg
JHN2Z1Byb3BlcnR5VHlwZVdpdGhOYW1lc3BhY2U7Ci0gICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5
cGVXaXRoTmFtZXNwYWNlOwogICAgIG15ICRpbXBsVHlwZSA9ICRpbXBsQ2xhc3NOYW1lV2l0aE5h
bWVzcGFjZTsKIAorICAgIG15ICgkc3ZnUHJvcGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlw
ZSwgJHN2Z05hdGl2ZVR5cGUpID0gR2V0U1ZHUHJvcGVydHlUeXBlcygkaW1wbENsYXNzTmFtZSk7
CisgICAgJGltcGxUeXBlID0gJHN2Z05hdGl2ZVR5cGUgaWYgJHN2Z05hdGl2ZVR5cGU7CisKICAg
ICBpZiAoJHBvZFR5cGUpIHsKICAgICAgICAgJHBvZFR5cGVXaXRoTmFtZXNwYWNlID0gKCRwb2RU
eXBlIGVxICJmbG9hdCIpID8gIiRwb2RUeXBlIiA6ICJXZWJDb3JlOjokcG9kVHlwZSI7Ci0gICAg
fSBlbHNpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewotICAgICAgICAkaW1wbFR5cGUgPSAiV2ViQ29y
ZTo6U1ZHUHJvcGVydHlUZWFyT2ZmPCRpbXBsVHlwZT4iOwotICAgICAgICAkc3ZnUHJvcGVydHlU
eXBlV2l0aE5hbWVzcGFjZSA9ICgkc3ZnUHJvcGVydHlUeXBlIGVxICJmbG9hdCIpID8gIiRzdmdQ
cm9wZXJ0eVR5cGUiIDogIldlYkNvcmU6OiRzdmdQcm9wZXJ0eVR5cGUiOwotICAgIH0gZWxzaWYg
KCRzdmdMaXN0UHJvcGVydHlUeXBlKSB7Ci0gICAgICAgICRpbXBsVHlwZSA9ICJXZWJDb3JlOjpT
VkdMaXN0UHJvcGVydHlUZWFyT2ZmPCRpbXBsVHlwZT4iOwotICAgICAgICAkc3ZnTGlzdFByb3Bl
cnR5VHlwZVdpdGhOYW1lc3BhY2UgPSAiV2ViQ29yZTo6JHN2Z0xpc3RQcm9wZXJ0eVR5cGUiOwog
ICAgIH0KIAogICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUuCkBAIC0xMTIzLDcg
KzExMjgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAkaW1wbEluY2x1
ZGVzeyIkMS5oIn0gPSAxOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghJHBvZFR5cGUpIHsK
LSAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IiRpbXBsQ2xhc3NOYW1lLmgifSA9IDE7CisgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyIkaW1wbENsYXNzTmFtZS5oIn0gPSAxIGlmIG5vdCAkY29k
ZUdlbmVyYXRvci0+QXZvaWRJbmNsdXNpb25PZlR5cGUoJGltcGxDbGFzc05hbWUpOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHBvZFR5cGUuaCJ9ID0gMSB1
bmxlc3MgJHBvZFR5cGUgZXEgImZsb2F0IjsKICAgICAgICAgfQpAQCAtMTIyNywxMiArMTIzMiwx
MSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGdldHRlckNv
bnRlbnRIZWFkID0gIklNUEwtPiRnZXR0ZXJFeHByZXNzaW9uUHJlZml4IjsKICAgICAgICAgICAg
IG15ICRnZXR0ZXJDb250ZW50VGFpbCA9ICIpIjsKIAotICAgICAgICAgICAgbXkgJHN2Z0FuaW1h
dGVkUHJvcGVydHlUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSJ9OwogICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKICAg
ICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiJGdldHRlckV4cHJlc3Npb25QcmVm
aXgiOwogCiAgICAgICAgICAgICAgICAgIyBUT0RPOiBIYW5kbGUgc3BlY2lhbCBjYXNlIGZvciBE
T01TVkdMZW5ndGguIFdlIGRvIG5lZWQgQ3VzdG9tIGNvZGUgc3VwcG9ydCBmb3IgdGhpcy4KLSAg
ICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSBlcSAiU1ZHTGVuZ3RoIiBhbmQgJGF0
dHJpYnV0ZU5hbWUgZXEgInZhbHVlIikgeworICAgICAgICAgICAgICAgIGlmICgkc3ZnUHJvcGVy
dHlUeXBlIGVxICJXZWJDb3JlOjpTVkdMZW5ndGgiIGFuZCAkYXR0cmlidXRlTmFtZSBlcSAidmFs
dWUiKSB7CiAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJ2YWx1ZSgw
IC8qIEZJWE1FICovIjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewpA
QCAtMTI4NSwxMiArMTI4OSwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFpbCAuPSAiKSI7CiAgICAgICAgICAgICB9IGVsc2lm
ICgkc3ZnUHJvcGVydHlUeXBlKSB7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFk
ID0gIklNUEwtPnByb3BlcnR5UmVmZXJlbmNlKCkuJGdldHRlckNvbnRlbnRIZWFkIjsKLSAgICAg
ICAgICAgIH0gZWxzaWYgKCRzdmdBbmltYXRlZFByb3BlcnR5VHlwZSkgewotICAgICAgICAgICAg
ICAgIGlmICgkaWRsVHlwZSA9fiAvTGlzdCQvKSB7Ci0gICAgICAgICAgICAgICAgICAgICRnZXR0
ZXJDb250ZW50SGVhZCA9ICJraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5
VGVhck9mZjxXZWJDb3JlOjokaWRsVHlwZT4qPigkZ2V0dGVyQ29udGVudEhlYWQpIjsKLSAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhl
YWQgPSAia2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjxXZWJDb3Jl
OjokaWRsVHlwZT4qPigkZ2V0dGVyQ29udGVudEhlYWQpIjsKLSAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNTVkdOZXdTdHlsZUFuaW1hdGVk
VHlwZSgkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgICAgICAgICBteSAkaWRsVHlwZVdpdGhO
YW1lc3BhY2UgPSAiV2ViQ29yZTo6IiAuICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVlZGlu
Z1RlYXJPZmYoJGlkbFR5cGUpOworICAgICAgICAgICAgICAgICRpZGxUeXBlV2l0aE5hbWVzcGFj
ZSA9fiBzLzwvXDxXZWJDb3JlOjovOworICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVh
ZCA9ICJraXQoc3RhdGljX2Nhc3Q8JGlkbFR5cGVXaXRoTmFtZXNwYWNlKj4oJGdldHRlckNvbnRl
bnRIZWFkKSI7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIpIjsKICAg
ICAgICAgICAgIH0gZWxzaWYgKElzUHJvdG9jb2xUeXBlKCRpZGxUeXBlKSBhbmQgJGlkbFR5cGUg
bmUgIkV2ZW50VGFyZ2V0IikgewogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9
ICJraXQoJGdldHRlckNvbnRlbnRIZWFkIjsKQEAgLTEzMDIsOCArMTMwNCwxNiBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9
ICIkZ2V0dGVyQ29udGVudEhlYWQiOwogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFp
bCAuPSAiLT50b1N0cmluZygpIjsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICB9IGVsc2lm
IChDb252ZXJzaW9uTmVlZGVkKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSkpIHsKLSAgICAg
ICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAia2l0KFdURjo6Z2V0UHRyKCRnZXR0ZXJD
b250ZW50SGVhZCI7Ci0gICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIpKSI7
CisgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVh
ck9mZigkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUg
PX4gL0xpc3QkLykgeworICAgICAgICAgICAgICAgICAgICBteSAkaWRsVHlwZSA9ICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgbXkgJGlkbFR5cGVXaXRo
TmFtZXNwYWNlID0gIldlYkNvcmU6OiIgLiAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRp
bmdUZWFyT2ZmKCRpZGxUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgJGlkbFR5cGVXaXRoTmFt
ZXNwYWNlID1+IHMvPC9cPFdlYkNvcmU6Oi87CisgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJD
b250ZW50SGVhZCA9ICJraXQoV1RGOjpnZXRQdHIoJHtpZGxUeXBlV2l0aE5hbWVzcGFjZX06OmNy
ZWF0ZSgkZ2V0dGVyQ29udGVudEhlYWQiOworICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29u
dGVudFRhaWwgLj0gIikpKSI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
ICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gImtpdChXVEY6OmdldFB0cigkZ2V0dGVyQ29u
dGVudEhlYWQiOworICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudFRhaWwgLj0gIikp
IjsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIG15ICRn
ZXR0ZXJDb250ZW50OwpAQCAtMTM2OSw3ICsxMzc5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KIAogICAgICAgICAgICAgICAgIGlmICgkc3ZnUHJvcGVydHlUeXBlKSB7CiAgICAgICAg
ICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICIkZ2V0dGVyRXhwcmVzc2lvblByZWZp
eCI7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRzdmdQcm9w
ZXJ0eVR5cGVXaXRoTmFtZXNwYWNlJiBwb2RJbXBsID0gSU1QTC0+cHJvcGVydHlSZWZlcmVuY2Uo
KTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkc3Zn
UHJvcGVydHlUeXBlJiBwb2RJbXBsID0gSU1QTC0+cHJvcGVydHlSZWZlcmVuY2UoKTtcbiIpOwog
ICAgICAgICAgICAgICAgICAgICBteSAkZWMgPSAkaGFzU2V0dGVyRXhjZXB0aW9uID8gIiwgZWMi
IDogIiI7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRleGNl
cHRpb25Jbml0XG4iKSBpZiAkaGFzU2V0dGVyRXhjZXB0aW9uOwogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBwb2RJbXBsLiRjb3JlU2V0dGVyTmFtZSgkYXJnJGVj
KTtcbiIpOwpAQCAtMTUwOCw3ICsxNTE4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICMgRklYTUUhIFdlIG5lZWQgW0N1c3RvbV0gc3VwcG9ydCBmb3IgT2JqQywg
dG8gbW92ZSB0aGVzZSBoYWNrcyBpbnRvIERPTVNWR0xlbmd0aC9NYXRyaXhDdXN0b20ubW0KICAg
ICAgICAgICAgIG15ICRzdmdNYXRyaXhSb3RhdGVGcm9tVmVjdG9yID0gKCRwb2RUeXBlIGFuZCAk
cG9kVHlwZSBlcSAiQWZmaW5lVHJhbnNmb3JtIiBhbmQgJGZ1bmN0aW9uTmFtZSBlcSAicm90YXRl
RnJvbVZlY3RvciIpOwogICAgICAgICAgICAgbXkgJHN2Z01hdHJpeEludmVyc2UgPSAoJHBvZFR5
cGUgYW5kICRwb2RUeXBlIGVxICJBZmZpbmVUcmFuc2Zvcm0iIGFuZCAkZnVuY3Rpb25OYW1lIGVx
ICJpbnZlcnNlIik7Ci0gICAgICAgICAgICBteSAkc3ZnTGVuZ3RoQ29udmVydFRvU3BlY2lmaWVk
VW5pdHMgPSAoJHN2Z1Byb3BlcnR5VHlwZSBhbmQgJHN2Z1Byb3BlcnR5VHlwZSBlcSAiU1ZHTGVu
Z3RoIiBhbmQgJGZ1bmN0aW9uTmFtZSBlcSAiY29udmVydFRvU3BlY2lmaWVkVW5pdHMiKTsKKyAg
ICAgICAgICAgIG15ICRzdmdMZW5ndGhDb252ZXJ0VG9TcGVjaWZpZWRVbml0cyA9ICgkc3ZnUHJv
cGVydHlUeXBlIGFuZCAkc3ZnUHJvcGVydHlUeXBlIGVxICJXZWJDb3JlOjpTVkdMZW5ndGgiIGFu
ZCAkZnVuY3Rpb25OYW1lIGVxICJjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyIpOwogCiAgICAgICAg
ICAgICBwdXNoKEBwYXJhbWV0ZXJOYW1lcywgImVjIikgaWYgJHJhaXNlc0V4Y2VwdGlvbnMgYW5k
ICEoJHN2Z01hdHJpeFJvdGF0ZUZyb21WZWN0b3IgfHwgJHN2Z01hdHJpeEludmVyc2UpOwogICAg
ICAgICAgICAgcHVzaChAcGFyYW1ldGVyTmFtZXMsICIwIC8qIEZJWE1FICovIikgaWYgJHN2Z0xl
bmd0aENvbnZlcnRUb1NwZWNpZmllZFVuaXRzOyAKQEAgLTE1MjQsOSArMTUzNCwxMCBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIG5leHQgaWYgbm90ICRjb2Rl
R2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigkaWRsVHlwZSkgb3IgJGltcGxDbGFz
c05hbWUgPX4gL0xpc3QkLzsKIAogICAgICAgICAgICAgICAgIG15ICRpbXBsR2V0dGVyID0gR2V0
T2JqQ1R5cGVHZXR0ZXIoJHBhcmFtTmFtZSwgJGlkbFR5cGUpOwotICAgICAgICAgICAgICAgIG15
ICRpZGxUeXBlV2l0aE5hbWVzcGFjZSA9ICgkaWRsVHlwZSBlcSAiZmxvYXQiKSA/ICIkaWRsVHlw
ZSIgOiAiV2ViQ29yZTo6JGlkbFR5cGUiOworICAgICAgICAgICAgICAgIG15ICRpZGxUeXBlV2l0
aE5hbWVzcGFjZSA9ICJXZWJDb3JlOjoiIC4gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1R5cGVOZWVk
aW5nVGVhck9mZigkaWRsVHlwZSk7CisgICAgICAgICAgICAgICAgJGlkbFR5cGVXaXRoTmFtZXNw
YWNlID1+IHMvPC9cPFdlYkNvcmU6Oi87CiAKLSAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlv
bkNvbnRlbnQsICIgICAgV2ViQ29yZTo6U1ZHUHJvcGVydHlUZWFyT2ZmPCRpZGxUeXBlV2l0aE5h
bWVzcGFjZT4qICR7cGFyYW1OYW1lfUNvcmUgPSAkaW1wbEdldHRlcjtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkaWRsVHlwZVdpdGhOYW1lc3BhY2Uq
ICR7cGFyYW1OYW1lfUNvcmUgPSAkaW1wbEdldHRlcjtcbiIpOwogICAgICAgICAgICAgICAgIHB1
c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICBpZiAoISR7cGFyYW1OYW1lfUNvcmUpIHtcbiIpOwog
ICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAgICAgV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZSBlYyA9IFdlYkNvcmU6OlRZUEVfTUlTTUFUQ0hfRVJSO1xuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICAkZXhjZXB0aW9uUmFp
c2VPbkVycm9yXG4iKTsKQEAgLTE1NDQsNyArMTU1NSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICBteSAkY29udGVudCA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2Zp
cnN0KCRmdW5jdGlvbk5hbWUpIC4gIigiIC4gam9pbigiLCAiLCBAcGFyYW1ldGVyTmFtZXMpIC4g
IikiOyAKIAogICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgICAg
ICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgJHN2Z1Byb3BlcnR5VHlwZVdpdGhOYW1l
c3BhY2UmIHBvZEltcGwgPSBJTVBMLT5wcm9wZXJ0eVJlZmVyZW5jZSgpO1xuIik7CisgICAgICAg
ICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICRzdmdQcm9wZXJ0eVR5cGUmIHBv
ZEltcGwgPSBJTVBMLT5wcm9wZXJ0eVJlZmVyZW5jZSgpO1xuIik7CiAgICAgICAgICAgICAgICAg
JGNvbnRlbnQgPSAicG9kSW1wbC4kY29udGVudDtcbiAgICBJTVBMLT5jb21taXRDaGFuZ2UoKSI7
IAogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAkY29udGVudCA9ICRjYWxs
ZXIgLiAiLT4kY29udGVudCI7CkBAIC0xNTkzLDcgKzE2MDQsMTAgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKENv
bnZlcnNpb25OZWVkZWQoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3Qk
LykgewotICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAia2l0KFdURjo6Z2V0UHRy
KFdlYkNvcmU6OlNWR1Byb3BlcnR5VGVhck9mZjxXZWJDb3JlOjoiIC4gJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPnR5cGUgLiAiPjo6Y3JlYXRlKCRjb250ZW50KSkpIjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG15ICRpZGxUeXBlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAg
ICAgICAgICAgICAgICAgICBteSAkaWRsVHlwZVdpdGhOYW1lc3BhY2UgPSAiV2ViQ29yZTo6IiAu
ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGlkbFR5cGUpOworICAg
ICAgICAgICAgICAgICAgICAgICAgJGlkbFR5cGVXaXRoTmFtZXNwYWNlID1+IHMvPC9cPFdlYkNv
cmU6Oi87CisgICAgICAgICAgICAgICAgICAgICAgICAkY29udGVudCA9ICJraXQoV1RGOjpnZXRQ
dHIoJHtpZGxUeXBlV2l0aE5hbWVzcGFjZX06OmNyZWF0ZSgkY29udGVudCkpKSI7CiAgICAgICAg
ICAgICAgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1BvZFR5cGUoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPnR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAkY29udGVudCA9
ICJraXQoJGNvbnRlbnQpIjsKICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQkocmV2aXNpb24gNzA1
MjYpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMTIsNiArMjEyLDM0IEBAIHN1YiBHZW5lcmF0ZUNvbmRpdGlvbmFsU3Ry
aW5nCiAgICAgfQogfQogCitzdWIgR2V0U1ZHUHJvcGVydHlUeXBlcworeworICAgIG15ICRpbXBs
VHlwZSA9IHNoaWZ0OworCisgICAgbXkgJHN2Z1Byb3BlcnR5VHlwZTsKKyAgICBteSAkc3ZnTGlz
dFByb3BlcnR5VHlwZTsKKyAgICBteSAkc3ZnTmF0aXZlVHlwZTsKKworICAgIHJldHVybiAoJHN2
Z1Byb3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKSBpZiBu
b3QgJGltcGxUeXBlID1+IC9TVkcvOworCisgICAgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVy
YXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsVHlwZSk7CisgICAgcmV0dXJuICgk
c3ZnUHJvcGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpIGlm
IG5vdCAkc3ZnTmF0aXZlVHlwZTsKKworICAgICMgQXBwZW5kIHNwYWNlIHRvIGF2b2lkIGNvbXBp
bGF0aW9uIGVycm9ycyB3aGVuIHVzaW5nICBQYXNzUmVmUHRyPCRzdmdOYXRpdmVUeXBlPgorICAg
ICRzdmdOYXRpdmVUeXBlID0gIiRzdmdOYXRpdmVUeXBlICI7CisKKyAgICBteSAkc3ZnV3JhcHBl
ZE5hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHV3JhcHBlZFR5cGVOZWVkaW5nVGVh
ck9mZigkaW1wbFR5cGUpOworICAgIGlmICgkc3ZnTmF0aXZlVHlwZSA9fiAvU1ZHUHJvcGVydHlU
ZWFyT2ZmLykgeworICAgICAgICAkc3ZnUHJvcGVydHlUeXBlID0gJHN2Z1dyYXBwZWROYXRpdmVU
eXBlOworICAgICAgICAkaW1wbEluY2x1ZGVzeyJTVkdQcm9wZXJ0eVRlYXJPZmYuaCJ9ID0gMSwK
KyAgICB9IGVsc2lmICgkc3ZnTmF0aXZlVHlwZSA9fiAvU1ZHTGlzdFByb3BlcnR5VGVhck9mZi8p
IHsKKyAgICAgICAgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGU7
CisgICAgICAgICRpbXBsSW5jbHVkZXN7IlNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCJ9ID0gMSwK
KyAgICB9CisKKyAgICByZXR1cm4gKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlU
eXBlLCAkc3ZnTmF0aXZlVHlwZSk7Cit9CisKIHN1YiBHZW5lcmF0ZUhlYWRlcgogewogICAgIG15
ICRvYmplY3QgPSBzaGlmdDsKQEAgLTIyOSwyMyArMjU3LDE5IEBAIHN1YiBHZW5lcmF0ZUhlYWRl
cgogCiAgICAgIyAtIEFkZCBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQogICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsIEdlbmVyYXRlSGVhZGVyQ29udGVudEhlYWRlcigkZGF0YU5vZGUpKTsKLQotICAg
ICMgR2V0IGNvcnJlY3QgcGFzcy9zdG9yZSB0eXBlcyByZXNwZWN0aW5nIFBPRFR5cGUgZmxhZwog
ICAgIG15ICRwb2RUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUE9EVHlw
ZSJ9OwotICAgIG15ICRzdmdQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJTVkdQcm9wZXJ0eSJ9OwotICAgIG15ICRzdmdMaXN0UHJvcGVydHlUeXBlID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHTGlzdFByb3BlcnR5In07CiAKICAgICBt
eSAlaGVhZGVySW5jbHVlcyA9ICgpOwogICAgICRoZWFkZXJJbmNsdWRlc3siJHBvZFR5cGUuaCJ9
ID0gMSBpZiAkcG9kVHlwZSBhbmQgKCRwb2RUeXBlIG5lICJkb3VibGUiIGFuZCAkcG9kVHlwZSBu
ZSAiZmxvYXQiIGFuZCAkcG9kVHlwZSBuZSAiUkdCQTMyIik7Ci0gICAgJGhlYWRlckluY2x1ZGVz
eyIkc3ZnUHJvcGVydHlUeXBlLmgifSA9IDEgaWYgJHN2Z1Byb3BlcnR5VHlwZSBhbmQgJHN2Z1By
b3BlcnR5VHlwZSBuZSAiZmxvYXQiOwotICAgICRoZWFkZXJJbmNsdWRlc3siJHN2Z0xpc3RQcm9w
ZXJ0eVR5cGUuaCJ9ID0gMSBpZiAkc3ZnTGlzdFByb3BlcnR5VHlwZTsKLSAgICAkaGVhZGVySW5j
bHVkZXN7IlNWR0FuaW1hdGVkUHJvcGVydHkuaCJ9ID0gMSBpZiAkc3ZnUHJvcGVydHlUeXBlIG9y
ICRzdmdMaXN0UHJvcGVydHlUeXBlOwogICAgICRoZWFkZXJJbmNsdWRlc3sid3RmL3RleHQvU3Ry
aW5nSGFzaC5oIn0gPSAxOwogICAgICRoZWFkZXJJbmNsdWRlc3siV3JhcHBlclR5cGVJbmZvLmgi
fSA9IDE7CiAgICAgJGhlYWRlckluY2x1ZGVzeyJWOERPTVdyYXBwZXIuaCJ9ID0gMTsKKwogICAg
IG15ICRoZWFkZXJDbGFzc0luY2x1ZGUgPSBHZXRIZWFkZXJDbGFzc0luY2x1ZGUoJGltcGxDbGFz
c05hbWUpOwogICAgICRoZWFkZXJJbmNsdWRlc3skaGVhZGVyQ2xhc3NJbmNsdWRlfSA9IDEgaWYg
JGhlYWRlckNsYXNzSW5jbHVkZSBuZSAiIjsKIAorICAgIG15ICgkc3ZnUHJvcGVydHlUeXBlLCAk
c3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpID0gR2V0U1ZHUHJvcGVydHlUeXBl
cygkaW1wbENsYXNzTmFtZSk7CisKICAgICBmb3JlYWNoIG15ICRoZWFkZXJJbmNsdWRlIChzb3J0
IGtleXMoJWhlYWRlckluY2x1ZGVzKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
I2luY2x1ZGUgXCIke2hlYWRlckluY2x1ZGV9XCJcbiIpOwogICAgIH0KQEAgLTY4NSw4ICs3MDks
NiBAQCBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyCiAKICAgICBteSAkbmF0aXZlVHlwZSA9
IEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgLTEpOwog
ICAgIG15ICRpc1BvZFR5cGUgPSBJc1BvZFR5cGUoJGltcGxDbGFzc05hbWUpOwotICAgIG15ICRz
dmdQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdQcm9w
ZXJ0eSJ9OwotICAgIG15ICRzdmdMaXN0UHJvcGVydHlUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiU1ZHTGlzdFByb3BlcnR5In07CiAgICAgbXkgJHNraXBDb250ZXh0ID0g
MDsKIAogICAgIGlmICgkaXNQb2RUeXBlKSB7CkBAIC02OTQsMjcgKzcxNiwxOSBAQCBzdWIgR2Vu
ZXJhdGVOb3JtYWxBdHRyR2V0dGVyCiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlY4U1ZHUE9EVHlw
ZVdyYXBwZXIuaCJ9ID0gMTsKICAgICB9CiAKLSAgICAkaW1wbEluY2x1ZGVzeyJTVkdQcm9wZXJ0
eVRlYXJPZmYuaCJ9ID0gMSBpZiAkc3ZnUHJvcGVydHlUeXBlOzsKLSAgICAkaW1wbEluY2x1ZGVz
eyJTVkdMaXN0UHJvcGVydHlUZWFyT2ZmLmgifSA9IDEgaWYgJHN2Z0xpc3RQcm9wZXJ0eVR5cGU7
Ci0KICAgICAjIFNwZWNpYWwgY2FzZTogU1ZHWm9vbUV2ZW50J3MgYXR0cmlidXRlcyBhcmUgYWxs
IHJlYWQtb25seQogICAgIGlmICgkaW1wbENsYXNzTmFtZSBlcSAiU1ZHWm9vbUV2ZW50Iikgewog
ICAgICAgICAkYXR0cklzUG9kVHlwZSA9IDA7CiAgICAgICAgICRza2lwQ29udGV4dCA9IDE7CiAg
ICAgfQogCi0gICAgIyBTcGVjaWFsIGNhc2U6IFNWR1NWR0VlbGVtZW50Ojp2aWV3cG9ydCBpcyBy
ZWFkLW9ubHkKLSAgICBpZiAoKCRpbXBsQ2xhc3NOYW1lIGVxICJTVkdTVkdFbGVtZW50IikgYW5k
ICgkYXR0ck5hbWUgZXEgInZpZXdwb3J0IikpIHsKLSAgICAgICAgJGF0dHJJc1BvZFR5cGUgPSAw
OwotICAgICAgICAkc2tpcENvbnRleHQgPSAxOwotICAgIH0KLQogICAgICMgU3BlY2lhbCBjYXNl
IGZvciBTVkdDb2xvcgogICAgIGlmICgoJGltcGxDbGFzc05hbWUgZXEgIlNWR0NvbG9yIikgYW5k
ICgkYXR0ck5hbWUgZXEgInJnYkNvbG9yIikpIHsKICAgICAgICAgJGF0dHJJc1BvZFR5cGUgPSAw
OwogICAgIH0KIAogICAgIG15ICRnZXR0ZXJTdHJpbmdVc2VzSW1wID0gJGltcGxDbGFzc05hbWUg
bmUgImZsb2F0IjsKKyAgICBteSAkc3ZnTmF0aXZlVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRT
VkdUeXBlTmVlZGluZ1RlYXJPZmYoJGltcGxDbGFzc05hbWUpOwogCiAgICAgIyBHZXR0ZXIKICAg
ICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSBHZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZSk7CkBAIC03MzYsMTggKzc1MCwyMCBAQCBFTkQKICAgICAkaW1wbENs
YXNzTmFtZSogaW1wID0gJmltcEluc3RhbmNlOwogRU5ECiAgICAgICAgIH0KLQotICAgIH0gZWxz
aWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
PDxFTkQpOwotICAgIFNWR1Byb3BlcnR5VGVhck9mZjwkc3ZnUHJvcGVydHlUeXBlPiogd3JhcHBl
ciA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgJHN2
Z1Byb3BlcnR5VHlwZSYgaW1wSW5zdGFuY2UgPSB3cmFwcGVyLT5wcm9wZXJ0eVJlZmVyZW5jZSgp
OwotICAgICRzdmdQcm9wZXJ0eVR5cGUqIGltcCA9ICZpbXBJbnN0YW5jZTsKKyAgICB9IGVsc2lm
ICgkc3ZnTmF0aXZlVHlwZSkgeworICAgICAgICBteSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUgPSAk
Y29kZUdlbmVyYXRvci0+R2V0U1ZHV3JhcHBlZFR5cGVOZWVkaW5nVGVhck9mZigkaW1wbENsYXNz
TmFtZSk7CisgICAgICAgIGlmICgkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUgPX4gL0xpc3QkLykgewor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgICRzdmdOYXRp
dmVUeXBlKiBpbXAgPSBWOCR7aW1wbENsYXNzTmFtZX06OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwogRU5ECi0gICAgfSBlbHNpZiAoJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwotICAgIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8
JHN2Z0xpc3RQcm9wZXJ0eVR5cGU+KiBpbXAgPSBWOCR7aW1wbENsYXNzTmFtZX06OnRvTmF0aXZl
KGluZm8uSG9sZGVyKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgPDxFTkQpOworICAgICRzdmdOYXRpdmVUeXBlKiB3cmFwcGVyID0gVjgk
e2ltcGxDbGFzc05hbWV9Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICAkc3ZnV3JhcHBl
ZE5hdGl2ZVR5cGUmIGltcEluc3RhbmNlID0gd3JhcHBlci0+cHJvcGVydHlSZWZlcmVuY2UoKTsK
KyAgICAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUqIGltcCA9ICZpbXBJbnN0YW5jZTsKIEVORAotICAg
IH0gIGVsc2lmICgkYXR0ckV4dC0+eyJ2OE9uUHJvdG8ifSB8fCAkYXR0ckV4dC0+eyJWOERpc2Fs
bG93U2hhZG93aW5nIn0pIHsKKyAgICAgICAgfQorICAgIH0gZWxzaWYgKCRhdHRyRXh0LT57InY4
T25Qcm90byJ9IHx8ICRhdHRyRXh0LT57IlY4RGlzYWxsb3dTaGFkb3dpbmcifSkgewogICAgICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhv
bGRlciA9IGluZm8uSG9sZGVyKCk7CkBAIC05MDQsMTIgKzkyMCwxNCBAQCBFTkQKICAgICB9CiAK
ICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHTmV3U3R5bGVBbmltYXRlZFR5cGUoJGltcGxD
bGFzc05hbWUpKSB7Ci0gICAgICAgICRpbXBsSW5jbHVkZXN7IlY4JHthdHRyVHlwZX0uaCJ9ID0g
MTsKLSAgICAgICAgaWYgKCRpbXBsQ2xhc3NOYW1lID1+IC9MaXN0JC8pIHsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U1ZH
TGlzdFByb3BlcnR5VGVhck9mZjwkYXR0clR5cGU+Kj4oJHJlc3VsdCkpO1xuIik7Ci0gICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1
cm4gdG9WOChzdGF0aWNfY2FzdDxTVkdQcm9wZXJ0eVRlYXJPZmY8JGF0dHJUeXBlPio+KCRyZXN1
bHQpKTtcbiIpOwotICAgICAgICAgfQorICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOCRhdHRyVHlw
ZS5oIn0gPSAxOworICAgICAgICBteSAkc3ZnTmF0aXZlVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5H
ZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGF0dHJUeXBlKTsKKyAgICAgICAgIyBDb252ZXJ0IGZy
b20gYWJzdHJhY3QgU1ZHUHJvcGVydHkgdG8gcmVhbCB0eXBlLCBzbyB0aGUgcmlnaHQgdG9KUygp
IG1ldGhvZCBjYW4gYmUgaW52b2tlZC4KKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
IiAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDwkc3ZnTmF0aXZlVHlwZSo+KCRyZXN1bHQpKTtc
biIpOworICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9m
ZigkYXR0clR5cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykgeworICAgICAg
ICAkaW1wbEluY2x1ZGVzeyJWOCRhdHRyVHlwZS5oIn0gPSAxOworICAgICAgICBteSAkc3ZnTmF0
aXZlVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGF0dHJU
eXBlKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gdG9WOChX
VEY6OmdldFB0cigke3N2Z05hdGl2ZVR5cGV9OjpjcmVhdGUoJHJlc3VsdCkpKTtcbiIpOwogICAg
IH0gZWxzaWYgKCRhdHRySXNQb2RUeXBlKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlY4JHth
dHRyVHlwZX0uaCJ9ID0gMTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBy
ZXR1cm4gdG9WOCh3cmFwcGVyLnJlbGVhc2UoKS5nZXQoKSk7XG4iKTsKQEAgLTk2MSw4ICs5Nzks
NyBAQCBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyU2V0dGVyCiAgICAgfQogCiAgICAgbXkgJGlzUG9k
VHlwZSA9IElzUG9kVHlwZSgkaW1wbENsYXNzTmFtZSk7Ci0gICAgbXkgJHN2Z1Byb3BlcnR5VHlw
ZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlNWR1Byb3BlcnR5In07Ci0gICAg
bXkgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJTVkdMaXN0UHJvcGVydHkifTsKKyAgICBteSAkc3ZnTmF0aXZlVHlwZSA9ICRjb2RlR2VuZXJh
dG9yLT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGltcGxDbGFzc05hbWUpOwogCiAgICAgaWYg
KCRpc1BvZFR5cGUpIHsKICAgICAgICAgJGltcGxDbGFzc05hbWUgPSBHZXROYXRpdmVUeXBlKCRp
bXBsQ2xhc3NOYW1lKTsKQEAgLTk3MCwxNiArOTg3LDE5IEBAIHN1YiBHZW5lcmF0ZU5vcm1hbEF0
dHJTZXR0ZXIKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBWOFNWR1BPRFR5
cGVXcmFwcGVyPCRpbXBsQ2xhc3NOYW1lPiogd3JhcHBlciA9IFY4U1ZHUE9EVHlwZVdyYXBwZXI8
JGltcGxDbGFzc05hbWU+Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTtcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICRpbXBsQ2xhc3NOYW1lIGltcEluc3RhbmNlID0g
KndyYXBwZXI7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkaW1w
bENsYXNzTmFtZSogaW1wID0gJmltcEluc3RhbmNlO1xuIik7Ci0gICAgfSBlbHNpZiAoJHN2Z1By
b3BlcnR5VHlwZSkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7Ci0g
ICAgU1ZHUHJvcGVydHlUZWFyT2ZmPCRzdmdQcm9wZXJ0eVR5cGU+KiB3cmFwcGVyID0gVjgke2lt
cGxDbGFzc05hbWV9Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICAkc3ZnUHJvcGVydHlU
eXBlJiBpbXBJbnN0YW5jZSA9IHdyYXBwZXItPnByb3BlcnR5UmVmZXJlbmNlKCk7Ci0gICAgJHN2
Z1Byb3BlcnR5VHlwZSogaW1wID0gJmltcEluc3RhbmNlOworICAgIH0gZWxzaWYgKCRzdmdOYXRp
dmVUeXBlKSB7CisgICAgICAgIG15ICRzdmdXcmFwcGVkTmF0aXZlVHlwZSA9ICRjb2RlR2VuZXJh
dG9yLT5HZXRTVkdXcmFwcGVkVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsQ2xhc3NOYW1lKTsKKyAg
ICAgICAgaWYgKCRzdmdXcmFwcGVkTmF0aXZlVHlwZSA9fiAvTGlzdCQvKSB7CisgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgJHN2Z05hdGl2ZVR5cGUqIGlt
cCA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiBFTkQKLSAg
ICB9IGVsc2lmICgkc3ZnTGlzdFByb3BlcnR5VHlwZSkgewotICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCA8PEVORCk7Ci0gICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZjwkc3ZnTGlzdFBy
b3BlcnR5VHlwZT4qIGltcCA9IFY4JHtpbXBsQ2xhc3NOYW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xk
ZXIoKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCA8PEVORCk7CisgICAgJHN2Z05hdGl2ZVR5cGUqIHdyYXBwZXIgPSBWOCR7aW1wbENsYXNz
TmFtZX06OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgICRzdmdXcmFwcGVkTmF0aXZlVHlw
ZSYgaW1wSW5zdGFuY2UgPSB3cmFwcGVyLT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICRzdmdX
cmFwcGVkTmF0aXZlVHlwZSogaW1wID0gJmltcEluc3RhbmNlOwogRU5ECisgICAgICAgIH0KICAg
ICB9IGVsc2lmICgkYXR0ckV4dC0+eyJ2OE9uUHJvdG8ifSkgewogICAgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
IDw8RU5EKTsKQEAgLTEyODAsMjIgKzEzMDAsMjMgQEAgRU5ECiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBteSAkc3ZnUHJvcGVydHlUeXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiU1ZHUHJvcGVydHkifTsgCi0gICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgPSAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJTVkdMaXN0UHJvcGVydHkifTsgCisgICAgbXkgKCRz
dmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSkgPSBH
ZXRTVkdQcm9wZXJ0eVR5cGVzKCRpbXBsQ2xhc3NOYW1lKTsKIAogICAgIGlmIChJc1BvZFR5cGUo
JGltcGxDbGFzc05hbWUpKSB7CiAgICAgICAgIG15ICRuYXRpdmVDbGFzc05hbWUgPSBHZXROYXRp
dmVUeXBlKCRpbXBsQ2xhc3NOYW1lKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
IiAgICBWOFNWR1BPRFR5cGVXcmFwcGVyPCRuYXRpdmVDbGFzc05hbWU+KiBpbXBXcmFwcGVyID0g
VjhTVkdQT0RUeXBlV3JhcHBlcjwkbmF0aXZlQ2xhc3NOYW1lPjo6dG9OYXRpdmUoYXJncy5Ib2xk
ZXIoKSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkbmF0aXZl
Q2xhc3NOYW1lIGltcEluc3RhbmNlID0gKmltcFdyYXBwZXI7XG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICAkbmF0aXZlQ2xhc3NOYW1lKiBpbXAgPSAmaW1wSW5zdGFu
Y2U7XG4iKTsKLSAgICB9IGVsc2lmICgkc3ZnUHJvcGVydHlUeXBlKSB7Ci0gICAgICAgIG15ICRu
YXRpdmVDbGFzc05hbWUgPSBHZXROYXRpdmVUeXBlKCRpbXBsQ2xhc3NOYW1lKTsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkbmF0aXZlQ2xhc3NOYW1lIHdyYXBwZXIgPSBW
OCR7c3ZnUHJvcGVydHlUeXBlfTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7XG4iKTsKLSAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkc3ZnUHJvcGVydHlUeXBlJiBpbXBJbnN0
YW5jZSA9IHdyYXBwZXItPnByb3BlcnR5UmVmZXJlbmNlKCk7XG4iKTsKLSAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICAkc3ZnUHJvcGVydHlUeXBlKiBpbXAgPSAmaW1wSW5zdGFu
Y2U7XG4iKTsKLSAgICB9IGVsc2lmICgkc3ZnTGlzdFByb3BlcnR5VHlwZSkgewotICAgICAgICBt
eSAkbmF0aXZlQ2xhc3NOYW1lID0gR2V0TmF0aXZlVHlwZSgkaW1wbENsYXNzTmFtZSk7Ci0gICAg
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgJG5hdGl2ZUNsYXNzTmFtZSBpbXAgPSBW
OCR7c3ZnTGlzdFByb3BlcnR5VHlwZX06OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpO1xuIik7Cisg
ICAgfSBlbHNpZiAoJHN2Z05hdGl2ZVR5cGUpIHsKKyAgICAgICAgbXkgJG5hdGl2ZUNsYXNzTmFt
ZSA9IEdldE5hdGl2ZVR5cGUoJGltcGxDbGFzc05hbWUpOyAKKyAgICAgICAgaWYgKCRpbXBsQ2xh
c3NOYW1lID1+IC9MaXN0JC8pIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
ICIgICAgJG5hdGl2ZUNsYXNzTmFtZSBpbXAgPSBWOCR7c3ZnTGlzdFByb3BlcnR5VHlwZX06OnRv
TmF0aXZlKGFyZ3MuSG9sZGVyKCkpO1xuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBteSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHV3JhcHBl
ZFR5cGVOZWVkaW5nVGVhck9mZigkaW1wbENsYXNzTmFtZSk7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCAiICAgICRuYXRpdmVDbGFzc05hbWUgd3JhcHBlciA9IFY4JHtzdmdQ
cm9wZXJ0eVR5cGV9Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUmIGltcElu
c3RhbmNlID0gd3JhcHBlci0+cHJvcGVydHlSZWZlcmVuY2UoKTtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUqIGltcCA9
ICZpbXBJbnN0YW5jZTtcbiIpOworICAgICAgICB9CiAgICAgfSBlbHNpZiAoISRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2xhc3NNZXRob2QifSkgewogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CiAgICAgJHtpbXBsQ2xhc3NOYW1lfSog
aW1wID0gVjgke2ltcGxDbGFzc05hbWV9Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKQEAgLTI2
NDUsMTMgKzI2NjYsMTEgQEAgc3ViIEdldE5hdGl2ZVR5cGVGb3JDb252ZXJzaW9ucwogICAgIG15
ICRkYXRhTm9kZSA9IHNoaWZ0OwogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgICAkdHlwZSA9
ICJGbG9hdFJlY3QiIGlmICR0eXBlIGVxICJTVkdSZWN0IjsKICAgICAkdHlwZSA9ICJGbG9hdFBv
aW50IiBpZiAkdHlwZSBlcSAiU1ZHUG9pbnQiOwogICAgICR0eXBlID0gIkFmZmluZVRyYW5zZm9y
bSIgaWYgJHR5cGUgZXEgIlNWR01hdHJpeCI7CiAgICAgJHR5cGUgPSAiZmxvYXQiIGlmICR0eXBl
IGVxICJTVkdOdW1iZXIiOwogICAgICR0eXBlID0gIlY4U1ZHUE9EVHlwZVdyYXBwZXI8JHR5cGU+
IiBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJQT0RUeXBlIn07Ci0gICAgJHR5
cGUgPSAiU1ZHUHJvcGVydHlUZWFyT2ZmPCR0eXBlPiIgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiU1ZHUHJvcGVydHkifTsKLSAgICAkdHlwZSA9ICJTVkdMaXN0UHJvcGVydHlU
ZWFyT2ZmPCR0eXBlPiIgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHTGlz
dFByb3BlcnR5In07CisgICAgJHR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRp
bmdUZWFyT2ZmKCR0eXBlKSBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJP
ZmYoJHR5cGUpOyAKICAgICByZXR1cm4gJHR5cGU7CiB9CiAKQEAgLTI2NjksNiArMjY4OCw5IEBA
IHN1YiBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZygpCiAgICAgbXkgJG5hdGl2ZVJldHVyblR5
cGUgPSBHZXROYXRpdmVUeXBlKCRyZXR1cm5UeXBlLCAwKTsKICAgICBteSAkcmVzdWx0ID0gIiI7
CiAKKyAgICBteSAkaXNTVkdUZWFyT2ZmVHlwZSA9ICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBl
TmVlZGluZ1RlYXJPZmYoJHJldHVyblR5cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xp
c3QkLyk7CisgICAgJG5hdGl2ZVJldHVyblR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHV3Jh
cHBlZFR5cGVOZWVkaW5nVGVhck9mZigkcmV0dXJuVHlwZSkgaWYgJGlzU1ZHVGVhck9mZlR5cGU7
CisKICAgICAjIFNwZWNpYWwgY2FzZTogU1ZHIG1hdHJpeCB0cmFuc2Zvcm0gbWV0aG9kcyBzaG91
bGQgbm90IG11dGF0ZQogICAgICMgdGhlIG1hdHJpeCBidXQgcmV0dXJuIGEgY29weQogICAgIG15
ICRjb3B5Rmlyc3QgPSAwOwpAQCAtMjgxNiwxMCArMjgzOCwxMiBAQCBzdWIgR2VuZXJhdGVGdW5j
dGlvbkNhbGxTdHJpbmcoKQogICAgICAgICAkcmV0dXJuID0gIndyYXBwZXIiOwogICAgIH0KIAot
ICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHJldHVyblR5
cGUpIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0xpc3QkLykgeworICAgIGlmICgkaXNTVkdU
ZWFyT2ZmVHlwZSkgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOCRyZXR1cm5UeXBlLmgifSA9
IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlNWR1Byb3BlcnR5VGVhck9mZi5oIn0gPSAxOwot
ICAgICAgICByZXR1cm4gJGluZGVudCAuICJyZXR1cm4gdG9WOChXVEY6OmdldFB0cihTVkdQcm9w
ZXJ0eVRlYXJPZmY8JHJldHVyblR5cGU+OjpjcmVhdGUoJHJldHVybikpKTtcbiI7CisgICAgICAg
IG15ICRzdmdOYXRpdmVUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1R5cGVOZWVkaW5nVGVh
ck9mZigkcmV0dXJuVHlwZSk7CisgICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJyZXR1cm4g
dG9WOChXVEY6OmdldFB0cigke3N2Z05hdGl2ZVR5cGV9OjpjcmVhdGUoJHJldHVybikpKTtcbiI7
CisgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgIH0KIAogICAgIG15ICRnZW5lcmF0ZWRTVkdD
b250ZXh0UmV0cmlldmFsID0gMDsKQEAgLTI4NDcsNyArMjg3MSw3IEBAIHN1YiBHZW5lcmF0ZUZ1
bmN0aW9uQ2FsbFN0cmluZygpCiAgICAgICAgIH0KIAogICAgICAgICAkcmVzdWx0IC49ICRpbmRl
bnQgLiAiaW1wV3JhcHBlci0+Y29tbWl0Q2hhbmdlKGltcEluc3RhbmNlLCBjb250ZXh0KTtcbiI7
Ci0gICAgfSBlbHNpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU1ZHUHJvcGVy
dHkifSkgeworICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVh
ck9mZigkaW1wbENsYXNzTmFtZSkgYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7
CiAgICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJ3cmFwcGVyLT5jb21taXRDaGFuZ2UoKTtc
biI7CiAgICAgfQogCkBAIC0yOTIzLDYgKzI5NDcsMTUgQEAgc3ViIEdldE5hdGl2ZVR5cGUKICAg
ICBteSAkdHlwZSA9IHNoaWZ0OwogICAgIG15ICRpc1BhcmFtZXRlciA9IHNoaWZ0OwogCisgICAg
bXkgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFy
T2ZmKCR0eXBlKTsKKyAgICBpZiAoJHN2Z05hdGl2ZVR5cGUpIHsKKyAgICAgICAgaWYgKCRzdmdO
YXRpdmVUeXBlID1+IC9MaXN0JC8pIHsKKyAgICAgICAgICAgIHJldHVybiAiJHtzdmdOYXRpdmVU
eXBlfSoiOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICJSZWZQdHI8JHtz
dmdOYXRpdmVUeXBlfSA+IjsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICgkdHlwZSBlcSAi
ZmxvYXQiIG9yICR0eXBlIGVxICJkb3VibGUiKSB7CiAgICAgICAgIHJldHVybiAkdHlwZTsKICAg
ICB9CkBAIC0yOTM3LDEzICsyOTcwLDkgQEAgc3ViIEdldE5hdGl2ZVR5cGUKICAgICByZXR1cm4g
ImJvb2wiIGlmICR0eXBlIGVxICJib29sZWFuIjsKICAgICByZXR1cm4gIlN0cmluZyIgaWYgJHR5
cGUgZXEgIkRPTVN0cmluZyI7CiAgICAgcmV0dXJuICJSYW5nZTo6Q29tcGFyZUhvdyIgaWYgJHR5
cGUgZXEgIkNvbXBhcmVIb3ciOwotICAgIHJldHVybiAiRmxvYXRSZWN0IiBpZiAkdHlwZSBlcSAi
U1ZHUmVjdCI7CiAgICAgcmV0dXJuICJGbG9hdFBvaW50IiBpZiAkdHlwZSBlcSAiU1ZHUG9pbnQi
OwogICAgIHJldHVybiAiQWZmaW5lVHJhbnNmb3JtIiBpZiAkdHlwZSBlcSAiU1ZHTWF0cml4IjsK
ICAgICByZXR1cm4gIlNWR1RyYW5zZm9ybSIgaWYgJHR5cGUgZXEgIlNWR1RyYW5zZm9ybSI7Ci0g
ICAgcmV0dXJuICJSZWZQdHI8U1ZHUHJvcGVydHlUZWFyT2ZmPFNWR0FuZ2xlPiA+IiBpZiAkdHlw
ZSBlcSAiU1ZHQW5nbGUiOwotICAgIHJldHVybiAiUmVmUHRyPFNWR1Byb3BlcnR5VGVhck9mZjxT
VkdMZW5ndGg+ID4iIGlmICR0eXBlIGVxICJTVkdMZW5ndGgiOwotICAgIHJldHVybiAiU1ZHTGlz
dFByb3BlcnR5VGVhck9mZjxTVkdMZW5ndGhMaXN0PioiIGlmICR0eXBlIGVxICJTVkdMZW5ndGhM
aXN0IjsKICAgICByZXR1cm4gImZsb2F0IiBpZiAkdHlwZSBlcSAiU1ZHTnVtYmVyIjsKICAgICBy
ZXR1cm4gIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8iIGlmICR0eXBlIGVxICJTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvIjsKICAgICByZXR1cm4gIlNWR1BhaW50OjpTVkdQYWludFR5cGUiIGlmICR0eXBl
IGVxICJTVkdQYWludFR5cGUiOwpAQCAtMjk5OCw3ICszMDI3LDYgQEAgc3ViIEJhc2ljVHlwZUNh
bkZhaWxDb252ZXJzaW9uCiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIlNWR01hdHJpeCI7CiAg
ICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIlNWR1BvaW50IjsKICAgICByZXR1cm4gMSBpZiAkdHlw
ZSBlcSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyI7Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEg
IlNWR1JlY3QiOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJTVkdUcmFuc2Zvcm0iOwogICAg
IHJldHVybiAwOwogfQpAQCAtMzM3OCwxNyArMzQwNiwxNiBAQCBzdWIgSXNTVkdUeXBlTmVlZGlu
Z0NvbnRleHRQYXJhbWV0ZXIKIHsKICAgICBteSAkaW1wbENsYXNzTmFtZSA9IHNoaWZ0OwogCisg
ICAgcmV0dXJuIDAgdW5sZXNzICRpbXBsQ2xhc3NOYW1lID1+IC9TVkcvOworICAgIHJldHVybiAw
IGlmICRpbXBsQ2xhc3NOYW1lID1+IC9FbGVtZW50LzsKICAgICByZXR1cm4gMCBpZiAkY29kZUdl
bmVyYXRvci0+SXNTVkdOZXdTdHlsZUFuaW1hdGVkVHlwZSgkaW1wbENsYXNzTmFtZSk7Ci0gICAg
aWYgKCRpbXBsQ2xhc3NOYW1lID1+IC9TVkcvIGFuZCBub3QgJGltcGxDbGFzc05hbWUgPX4gL0Vs
ZW1lbnQvKSB7Ci0gICAgICAgIHJldHVybiAxIHVubGVzcyAkaW1wbENsYXNzTmFtZSA9fiAvU1ZH
QW5nbGUvCi0gICAgICAgICAgICAgICAgICAgICBvciAkaW1wbENsYXNzTmFtZSA9fiAvU1ZHUGFp
bnQvCi0gICAgICAgICAgICAgICAgICAgICBvciAkaW1wbENsYXNzTmFtZSA9fiAvU1ZHQ29sb3Iv
Ci0gICAgICAgICAgICAgICAgICAgICBvciAkaW1wbENsYXNzTmFtZSA9fiAvU1ZHRG9jdW1lbnQv
Ci0gICAgICAgICAgICAgICAgICAgICBvciAkaW1wbENsYXNzTmFtZSA9fiAvU1ZHTGVuZ3RoLwot
ICAgICAgICAgICAgICAgICAgICAgb3IgJGltcGxDbGFzc05hbWUgPX4gL1NWR0xlbmd0aExpc3Qv
OwotICAgIH0KKyAgICByZXR1cm4gMCBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGlu
Z1RlYXJPZmYoJGltcGxDbGFzc05hbWUpOwogCi0gICAgcmV0dXJuIDA7CisgICAgbXkgQG5vQ29u
dGV4dE5lZWRlZCA9ICgiU1ZHQ29sb3IiLCAiU1ZHRG9jdW1lbnQiLCAiU1ZHUGFpbnRUeXBlIiwg
IlNWR1BhaW50IiwgIlNWR1pvb21FdmVudCIpOworICAgIGZvcmVhY2ggKEBub0NvbnRleHROZWVk
ZWQpIHsKKyAgICAgICAgcmV0dXJuIDAgaWYgJGltcGxDbGFzc05hbWUgZXEgJF87CisgICAgfQor
ICAgIHJldHVybiAxOwogfQogCiAjIEZJWE1FOiBUaGlzIG1ldGhvZCB3aWxsIGdvIGF3YXkgb25j
ZSBhbGwgU1ZHIGFuaW1hdGVkIHByb3BlcnRpZXMgYXJlIGNvbnZlcnRlZCB0byB0aGUgbmV3IHNj
aGVtZS4KSW5kZXg6IFdlYkNvcmUvc3ZnL0RlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5VHJh
aXRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJv
cGVydHlUcmFpdHMuaAkocmV2aXNpb24gNzA1MjYpCisrKyBXZWJDb3JlL3N2Zy9EZXByZWNhdGVk
U1ZHQW5pbWF0ZWRQcm9wZXJ0eVRyYWl0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsMTggKzEw
NSw2IEBAIHN0cnVjdCBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRyYWkKICAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKFBhc3NUeXBlIHR5cGUpIHsgcmV0dXJuIHR5cGUudmFsdWVBc1N0
cmluZygpOyB9CiB9OwogCi0vLyBTVkdBbmltYXRlZFJlY3QKLXRlbXBsYXRlPD4KLXN0cnVjdCBE
ZXByZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+IDogcHVibGljIE5v
bmNvcHlhYmxlIHsKLSAgICB0eXBlZGVmIGNvbnN0IEZsb2F0UmVjdCYgUGFzc1R5cGU7Ci0gICAg
dHlwZWRlZiBGbG9hdFJlY3QgUmV0dXJuVHlwZTsKLSAgICB0eXBlZGVmIEZsb2F0UmVjdCBTdG9y
ZWRUeXBlOwotCi0gICAgc3RhdGljIFJldHVyblR5cGUgbnVsbCgpIHsgcmV0dXJuIEZsb2F0UmVj
dCgpOyB9Ci0gICAgc3RhdGljIFJldHVyblR5cGUgdG9SZXR1cm5UeXBlKGNvbnN0IFN0b3JlZFR5
cGUmIHR5cGUpIHsgcmV0dXJuIHR5cGU7IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKFBh
c3NUeXBlIHR5cGUpIHsgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlZiAlZiAlZiAlZiIsIHR5cGUu
eCgpLCB0eXBlLnkoKSwgdHlwZS53aWR0aCgpLCB0eXBlLmhlaWdodCgpKTsgfQotfTsKLQogLy8g
U1ZHQW5pbWF0ZWRTdHJpbmcKIHRlbXBsYXRlPD4KIHN0cnVjdCBEZXByZWNhdGVkU1ZHQW5pbWF0
ZWRQcm9wZXJ0eVRyYWl0czxTdHJpbmc+IDogcHVibGljIE5vbmNvcHlhYmxlIHsKSW5kZXg6IFdl
YkNvcmUvc3ZnL0RlcHJlY2F0ZWRTVkdBbmltYXRlZFRlbXBsYXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGUuaAkocmV2aXNpb24gNzA1
MjYpCisrKyBXZWJDb3JlL3N2Zy9EZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHR5
cGVkZWYgRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8ZmxvYXQ+IFNWR0FuaW1hdGVkTnVt
YmVyOwogICAgIHR5cGVkZWYgRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGU8U1ZHTnVtYmVy
TGlzdCo+IFNWR0FuaW1hdGVkTnVtYmVyTGlzdDsgCiAgICAgdHlwZWRlZiBEZXByZWNhdGVkU1ZH
QW5pbWF0ZWRUZW1wbGF0ZTxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPiBTVkdBbmltYXRlZFByZXNl
cnZlQXNwZWN0UmF0aW87Ci0gICAgdHlwZWRlZiBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0
ZTxGbG9hdFJlY3Q+IFNWR0FuaW1hdGVkUmVjdDsKICAgICB0eXBlZGVmIERlcHJlY2F0ZWRTVkdB
bmltYXRlZFRlbXBsYXRlPFN0cmluZz4gU1ZHQW5pbWF0ZWRTdHJpbmc7CiAgICAgdHlwZWRlZiBE
ZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZTxTVkdUcmFuc2Zvcm1MaXN0Kj4gU1ZHQW5pbWF0
ZWRUcmFuc2Zvcm1MaXN0OwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmdsZS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaWRsCShyZXZpc2lvbiA3MDUyNikKKysrIFdl
YkNvcmUvc3ZnL1NWR0FuZ2xlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAog
CiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHLCBTVkdQcm9w
ZXJ0eT1TVkdBbmdsZV0gU1ZHQW5nbGUgeyAKKyAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNW
R10gU1ZHQW5nbGUgeyAKICAgICAgICAgLy8gQW5nbGUgVW5pdCBUeXBlcwogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VOS05PV04gPSAwOwogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVkdfQU5HTEVUWVBFX1VOU1BFQ0lGSUVEID0gMTsKSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVkQW5nbGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVkQW5nbGUuaWRsCShyZXZpc2lvbiA3MDUyNikKKysrIFdlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkQW5nbGUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKIG1v
ZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcsIFNWR0FuaW1hdGVk
UHJvcGVydHldIFNWR0FuaW1hdGVkQW5nbGUgeworICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9
U1ZHXSBTVkdBbmltYXRlZEFuZ2xlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0Fu
Z2xlIGJhc2VWYWw7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmdsZSBhbmltVmFs
OwogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZExlbmd0aC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRMZW5ndGguaWRsCShyZXZpc2lvbiA3MDUy
NikKKysrIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkTGVuZ3RoLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjUsNyArMjUsNyBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0
aW9uYWw9U1ZHLCBTVkdBbmltYXRlZFByb3BlcnR5XSBTVkdBbmltYXRlZExlbmd0aCB7CisgICAg
aW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0FuaW1hdGVkTGVuZ3RoIHsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFNWR0xlbmd0aCBiYXNlVmFsOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU1ZHTGVuZ3RoIGFuaW1WYWw7CiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkTGVuZ3RoTGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZWRMZW5ndGhMaXN0LmlkbAkocmV2aXNpb24gNzA1MjYpCisrKyBXZWJDb3JlL3N2Zy9TVkdB
bmltYXRlZExlbmd0aExpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAK
IG1vZHVsZSBzdmcgewogCi0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcsIFNWR0FuaW1h
dGVkUHJvcGVydHldIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCB7CisgICAgaW50ZXJmYWNlIFtDb25k
aXRpb25hbD1TVkddIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBTVkdMZW5ndGhMaXN0IGJhc2VWYWw7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTVkdMZW5ndGhMaXN0IGFuaW1WYWw7CiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVkUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUmVjdC5o
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRSZWN0LmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgU1ZHQW5pbWF0
ZWRSZWN0X2gKKyNkZWZpbmUgU1ZHQW5pbWF0ZWRSZWN0X2gKKworI2lmIEVOQUJMRShTVkcpCisj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJP
ZmYuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIFNWR0FuaW1hdGVkUHJvcGVy
dHlUZWFyT2ZmPEZsb2F0UmVjdD4gU1ZHQW5pbWF0ZWRSZWN0OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU1ZHKQorI2VuZGlmCkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdGaXRUb1ZpZXdCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGaXRUb1Zp
ZXdCb3guaAkocmV2aXNpb24gNzA1MjYpCisrKyBXZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3gu
aAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShEb2N1bWVudCosIEF0dHJpYnV0ZSopOwogICAgIGJvb2wgaXNLbm93
bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
Vmlld0JveEJhc2VWYWx1ZShEZXByZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRyYWl0czxGbG9h
dFJlY3Q+OjpQYXNzVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3Qm94QmFzZVZh
bHVlKGNvbnN0IEZsb2F0UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlc2VydmVB
c3BlY3RSYXRpb0Jhc2VWYWx1ZShEZXByZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRyYWl0czxT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvPjo6UGFzc1R5cGUpID0gMDsKIAogcHJpdmF0ZToKSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR0xlbmd0aC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
TGVuZ3RoLmlkbAkocmV2aXNpb24gNzA1MjYpCisrKyBXZWJDb3JlL3N2Zy9TVkdMZW5ndGguaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBACiAKIG1vZHVsZSBzdmcgewogCi0gICAg
aW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkcsIFNWR1Byb3BlcnR5PVNWR0xlbmd0aF0gU1ZHTGVu
Z3RoIHsgCisgICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1TVkddIFNWR0xlbmd0aCB7IAogICAg
ICAgICAvLyBMZW5ndGggVW5pdCBUeXBlcwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBT
VkdfTEVOR1RIVFlQRV9VTktOT1dOICAgID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgU1ZHX0xFTkdUSFRZUEVfTlVNQkVSICAgICA9IDE7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdN
YXJrZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVu
dC5oCShyZXZpc2lvbiA3MDUyNikKKysrIFdlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIERFQ0xBUkVfQU5J
TUFURURfUFJPUEVSVFkoU1ZHTWFya2VyRWxlbWVudCwgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWRBdHRyLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkKQogCiAgICAgLy8gU1ZHRml0VG9WaWV3Qm94Ci0gICAgREVDTEFS
RV9BTklNQVRFRF9QUk9QRVJUWShTVkdNYXJrZXJFbGVtZW50LCBTVkdOYW1lczo6dmlld0JveEF0
dHIsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKKyAgICBERUNMQVJFX0FOSU1BVEVEX1BS
T1BFUlRZX05FVyhTVkdNYXJrZXJFbGVtZW50LCBTVkdOYW1lczo6dmlld0JveEF0dHIsIEZsb2F0
UmVjdCwgVmlld0JveCwgdmlld0JveCkKICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNW
R01hcmtlckVsZW1lbnQsIFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0ciwgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpbywgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRp
bykKIH07CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAkocmV2aXNpb24gNzA1MjYpCisr
KyBXZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OSw3
ICs3OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9Q
Uk9QRVJUWShTVkdQYXR0ZXJuRWxlbWVudCwgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRBdHRyLCBib29sLCBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkKQogCiAgICAgICAgIC8vIFNWR1BhdHRlcm5FbGVtZW50Ci0gICAgICAgIERF
Q0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHUGF0dGVybkVsZW1lbnQsIFNWR05hbWVzOjp2aWV3
Qm94QXR0ciwgRmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQorICAgICAgICBERUNMQVJFX0FO
SU1BVEVEX1BST1BFUlRZX05FVyhTVkdQYXR0ZXJuRWxlbWVudCwgU1ZHTmFtZXM6OnZpZXdCb3hB
dHRyLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCiAgICAgICAgIERFQ0xBUkVfQU5JTUFU
RURfUFJPUEVSVFkoU1ZHUGF0dGVybkVsZW1lbnQsIFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0ciwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbywgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJl
c2VydmVBc3BlY3RSYXRpbykgCiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHUmVjdC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUmVjdC5pZGwJKHJldmlzaW9uIDcwNTI2
KQorKysgV2ViQ29yZS9zdmcvU1ZHUmVjdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDExICsy
MiwxMSBAQAogCiBtb2R1bGUgc3ZnIHsKIAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZH
LCBQT0RUeXBlPUZsb2F0UmVjdF0gU1ZHUmVjdCB7Ci0gICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB4
OwotICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgeTsKLSAgICAgICAgYXR0cmlidXRlIGZsb2F0IHdp
ZHRoOwotICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgaGVpZ2h0OworICAgIGludGVyZmFjZSBbQ29u
ZGl0aW9uYWw9U1ZHXSBTVkdSZWN0IHsKKyAgICAgICAgYXR0cmlidXRlIFtTdHJpY3RUeXBlQ2hl
Y2tpbmddIGZsb2F0IHg7CisgICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBm
bG9hdCB5OworICAgICAgICBhdHRyaWJ1dGUgW1N0cmljdFR5cGVDaGVja2luZ10gZmxvYXQgd2lk
dGg7CisgICAgICAgIGF0dHJpYnV0ZSBbU3RyaWN0VHlwZUNoZWNraW5nXSBmbG9hdCBoZWlnaHQ7
CiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHJldmlzaW9uIDcwNTI2KQor
KysgV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw3
ICsxODYsNyBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnNldFVzZUN1cnJlbnRWaWV3KGJvCiBTVkdW
aWV3U3BlYyogU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFZpZXcoKSBjb25zdAogewogICAgIGlmICgh
bV92aWV3U3BlYykKLSAgICAgICAgbV92aWV3U3BlYyA9IGFkb3B0UHRyKG5ldyBTVkdWaWV3U3Bl
Yyh0aGlzKSk7CisgICAgICAgIG1fdmlld1NwZWMgPSBhZG9wdFB0cihuZXcgU1ZHVmlld1NwZWMo
Y29uc3RfY2FzdDxTVkdTVkdFbGVtZW50Kj4odGhpcykpKTsKICAgICByZXR1cm4gbV92aWV3U3Bl
Yy5nZXQoKTsKIH0KIApAQCAtNTgwLDkgKzU4MCw5IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6aW5o
ZXJpdFZpZXdBdHRyaWJ1dGUKIHsKICAgICBzZXRVc2VDdXJyZW50Vmlldyh0cnVlKTsKICAgICBp
ZiAodmlld0VsZW1lbnQtPmhhc0F0dHJpYnV0ZShTVkdOYW1lczo6dmlld0JveEF0dHIpKQotICAg
ICAgICBjdXJyZW50VmlldygpLT5zZXRWaWV3Qm94KHZpZXdFbGVtZW50LT52aWV3Qm94KCkpOwor
ICAgICAgICBjdXJyZW50VmlldygpLT5zZXRWaWV3Qm94QmFzZVZhbHVlKHZpZXdFbGVtZW50LT52
aWV3Qm94KCkpOwogICAgIGVsc2UKLSAgICAgICAgY3VycmVudFZpZXcoKS0+c2V0Vmlld0JveCh2
aWV3Qm94KCkpOworICAgICAgICBjdXJyZW50VmlldygpLT5zZXRWaWV3Qm94QmFzZVZhbHVlKHZp
ZXdCb3goKSk7CiAKICAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIGFzcGVjdFJhdGlvOwogICAg
IGlmICh2aWV3RWxlbWVudC0+aGFzQXR0cmlidXRlKFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJh
dGlvQXR0cikpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCShyZXZpc2lvbiA3MDUyNikKKysrIFdlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDcgKzE0Niw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShT
VkdTVkdFbGVtZW50LCBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIsIGJv
b2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQp
CiAKICAgICAgICAgLy8gU1ZHRml0VG9WaWV3Qm94Ci0gICAgICAgIERFQ0xBUkVfQU5JTUFURURf
UFJPUEVSVFkoU1ZHU1ZHRWxlbWVudCwgU1ZHTmFtZXM6OnZpZXdCb3hBdHRyLCBGbG9hdFJlY3Qs
IFZpZXdCb3gsIHZpZXdCb3gpCisgICAgICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFlfTkVX
KFNWR1NWR0VsZW1lbnQsIFNWR05hbWVzOjp2aWV3Qm94QXR0ciwgRmxvYXRSZWN0LCBWaWV3Qm94
LCB2aWV3Qm94KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1NWR0VsZW1l
bnQsIFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0ciwgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpbywgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykKICAKICAgICAg
ICAgdmlydHVhbCB2b2lkIGRvY3VtZW50V2lsbEJlY29tZUluYWN0aXZlKCk7CkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdTVkdFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmlkbAkocmV2aXNpb24gNzA1MjYpCisrKyBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTQgKzQxLDE0IEBAIG1vZHVsZSBzdmcgewog
ICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBjb250ZW50U3R5bGVUeXBlCiAgICAg
ICAgICAgICAgICAgICAgICAvKnNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKSovOwotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0ltbXV0YWJsZV0gU1ZHUmVjdCB2aWV3cG9ydDsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1JlY3Qgdmlld3BvcnQ7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBmbG9hdCBwaXhlbFVuaXRUb01pbGxpbWV0ZXJYOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgZmxvYXQgcGl4ZWxVbml0VG9NaWxsaW1ldGVyWTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGZsb2F0IHNjcmVlblBpeGVsVG9NaWxsaW1ldGVyWDsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGZsb2F0IHNjcmVlblBpeGVsVG9NaWxsaW1ldGVyWTsKICAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gdXNlQ3VycmVudFZpZXcKICAgICAgICAgICAgICAg
ICAgICAgIC8qc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pKi87Ci0gICAgICAgIC8vIFRPRE8g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtJbW11dGFibGVdIFNWR1ZpZXdTcGVjIGN1cnJlbnRWaWV3
OworICAgICAgICAvLyBUT0RPICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdWaWV3U3BlYyBjdXJy
ZW50VmlldzsKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGZsb2F0IGN1cnJlbnRTY2FsZQog
ICAgICAgICAgICAgICAgICAgICAgLypzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50IGN1cnJlbnRUcmFuc2xhdGU7CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHU3ltYm9sRWxlbWVudC5oCShyZXZpc2lvbiA3MDUyNikKKysrIFdlYkNvcmUvc3ZnL1NW
R1N5bWJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogI2RlZmlu
ZSBTVkdTeW1ib2xFbGVtZW50X2gKIAogI2lmIEVOQUJMRShTVkcpCisjaW5jbHVkZSAiU1ZHQW5p
bWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQuaCIKICNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3guaCIKICNpbmNsdWRlICJTVkdMYW5n
U3BhY2UuaCIKQEAgLTUwLDcgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBE
RUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1N5bWJvbEVsZW1lbnQsIFNWR05hbWVzOjpleHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkQXR0ciwgYm9vbCwgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKICAKICAgICAgICAgLy8gU1ZHRml0VG9WaWV3
Qm94Ci0gICAgICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHU3ltYm9sRWxlbWVudCwg
U1ZHTmFtZXM6OnZpZXdCb3hBdHRyLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCisgICAg
ICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFlfTkVXKFNWR1N5bWJvbEVsZW1lbnQsIFNWR05h
bWVzOjp2aWV3Qm94QXR0ciwgRmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQogICAgICAgICBE
RUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1N5bWJvbEVsZW1lbnQsIFNWR05hbWVzOjpwcmVz
ZXJ2ZUFzcGVjdFJhdGlvQXR0ciwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbywgUHJlc2VydmVBc3Bl
Y3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykgCiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9z
dmcvU1ZHVmlld0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdWaWV3RWxl
bWVudC5oCShyZXZpc2lvbiA3MDUyNikKKysrIFdlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNkZWZpbmUgU1ZHVmlld0VsZW1lbnRf
aAogCiAjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdBbmltYXRlZFByb3BlcnR5TWFjcm9z
LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJTVkdGaXRUb1ZpZXdCb3guaCIKQEAgLTUx
LDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBERUNMQVJFX0FOSU1BVEVE
X1BST1BFUlRZKFNWR1ZpZXdFbGVtZW50LCBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZEF0dHIsIGJvb2wsIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQpCiAgCiAgICAgICAgIC8vIFNWR0ZpdFRvVmlld0JveAotICAgICAgICBERUNM
QVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1ZpZXdFbGVtZW50LCBTVkdOYW1lczo6dmlld0JveEF0
dHIsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKKyAgICAgICAgREVDTEFSRV9BTklNQVRF
RF9QUk9QRVJUWV9ORVcoU1ZHVmlld0VsZW1lbnQsIFNWR05hbWVzOjp2aWV3Qm94QXR0ciwgRmxv
YXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BF
UlRZKFNWR1ZpZXdFbGVtZW50LCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIsIFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0
UmF0aW8pCiAgCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR1N0cmluZ0xpc3Q+IG1fdmlld1Rh
cmdldDsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAJKHJldmlzaW9uIDcwNTI2KQorKysgV2ViQ29yZS9z
dmcvU1ZHVmlld1NwZWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKGNvbnN0IFNWR1NW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KQorU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KQogICAgIDogbV9jb250ZXh0RWxlbWVudChjb250ZXh0RWxl
bWVudCkKICAgICAsIG1fdHJhbnNmb3JtKFNWR1RyYW5zZm9ybUxpc3Q6OmNyZWF0ZShTVkdOYW1l
czo6dHJhbnNmb3JtQXR0cikpCiB7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgJKHJldmlzaW9uIDcwNTI2KQor
KysgV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEs
OCBAQAogI2RlZmluZSBTVkdWaWV3U3BlY19oCiAKICNpZiBFTkFCTEUoU1ZHKQorI2luY2x1ZGUg
IlNWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaCIKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAj
aW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94LmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUFuZFBhbi5oIgog
CkBAIC0yOSwxNCArMzEsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNW
R0VsZW1lbnQ7Ci0gICAgY2xhc3MgU1ZHU1ZHRWxlbWVudDsKICAgICBjbGFzcyBTVkdUcmFuc2Zv
cm1MaXN0OwogCiAgICAgY2xhc3MgU1ZHVmlld1NwZWMgOiBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94
LAogICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1pvb21BbmRQYW4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICBwdWJsaWMgTm9uY29weWFibGUgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgU1ZHVmlld1NwZWMoY29uc3QgU1ZHU1ZHRWxlbWVudCopOworICAgICAgICBTVkdWaWV3U3Bl
YyhTVkdFbGVtZW50Kik7CiAKICAgICAgICAgYm9vbCBwYXJzZVZpZXdTcGVjKGNvbnN0IFN0cmlu
ZyYpOwogCkBAIC01MSwxMyArNTIsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBT
dHJpbmcgdmlld1RhcmdldFN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1RhcmdldFN0cmlu
ZzsgfQogICAgICAgICBTVkdFbGVtZW50KiB2aWV3VGFyZ2V0KCkgY29uc3Q7CiAKLSAgICAgICAg
U1ZHU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0
PFNWR1NWR0VsZW1lbnQqPihtX2NvbnRleHRFbGVtZW50KTsgfQorICAgICAgICBTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8U1ZHRWxlbWVudCo+
KG1fY29udGV4dEVsZW1lbnQpOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBTVkdT
VkdFbGVtZW50KiBtX2NvbnRleHRFbGVtZW50OworICAgICAgICBTVkdFbGVtZW50KiBtX2NvbnRl
eHRFbGVtZW50OwogCiAgICAgICAgIC8vIFNWR0ZpdFRvVmlld0JveAotICAgICAgICBERUNMQVJF
X0FOSU1BVEVEX1BST1BFUlRZKFNWR1ZpZXdTcGVjLCBTVkdOYW1lczo6dmlld0JveEF0dHIsIEZs
b2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKKyAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9Q
RVJUWV9ORVcoU1ZHVmlld1NwZWMsIFNWR05hbWVzOjp2aWV3Qm94QXR0ciwgRmxvYXRSZWN0LCBW
aWV3Qm94LCB2aWV3Qm94KQogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1Zp
ZXdTcGVjLCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIsIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCiAKICAg
ICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4gbV90cmFuc2Zvcm07CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdab29tRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR1pvb21FdmVudC5pZGwJKHJldmlzaW9uIDcwNTI2KQorKysgV2ViQ29yZS9zdmcvU1ZHWm9v
bUV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogbW9kdWxlIHN2ZyB7
CiAKICAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPVNWR10gU1ZHWm9vbUV2ZW50IDogVUlFdmVu
dCB7IAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0ltbXV0YWJsZV0gU1ZHUmVjdCB6b29t
UmVjdFNjcmVlbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1JlY3Qgem9vbVJlY3RT
Y3JlZW47CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBwcmV2aW91c1NjYWxlOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0ltbXV0YWJsZV0gU1ZHUG9pbnQgcHJldmlvdXNU
cmFuc2xhdGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBuZXdTY2FsZTsKSW5k
ZXg6IFdlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1h
Y3Jvcy5oCShyZXZpc2lvbiA3MDUyNikKKysrIFdlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw4IEBAIFBy
b3BlcnR5VHlwZSYgTG93ZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKCkKIHZvaWQgc2V0IyNVcHBlclBy
b3BlcnR5IyNCYXNlVmFsdWUoY29uc3QgUHJvcGVydHlUeXBlJiB0eXBlKSBcCiB7IFwKICAgICBt
XyMjTG93ZXJQcm9wZXJ0eS52YWx1ZSA9IHR5cGU7IFwKLSAgICBpbnZhbGlkYXRlU1ZHQXR0cmli
dXRlcygpOyBcCisgICAgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQgPSBHZXRPd25lckVsZW1l
bnRGb3JUeXBlPE93bmVyVHlwZSwgSXNEZXJpdmVkRnJvbVNWR0VsZW1lbnQ8T3duZXJUeXBlPjo6
dmFsdWU+Ojpvd25lckVsZW1lbnQodGhpcyk7IFwKKyAgICBjb250ZXh0RWxlbWVudC0+aW52YWxp
ZGF0ZVNWR0F0dHJpYnV0ZXMoKTsgXAogfSBcCiBcCiB2b2lkIHN5bmNocm9uaXplIyNVcHBlclBy
b3BlcnR5KCkgXApAQCAtODEsMTMgKzgyLDE1IEBAIHZvaWQgc3luY2hyb25pemUjI1VwcGVyUHJv
cGVydHkoKSBcCiAgICAgaWYgKCFtXyMjTG93ZXJQcm9wZXJ0eS5zaG91bGRTeW5jaHJvbml6ZSkg
XAogICAgICAgICAgcmV0dXJuOyBcCiAgICAgQXRvbWljU3RyaW5nIHZhbHVlKFNWR1Byb3BlcnR5
VHJhaXRzPFByb3BlcnR5VHlwZT46OnRvU3RyaW5nKExvd2VyUHJvcGVydHkjI0Jhc2VWYWx1ZSgp
KSk7IFwKLSAgICBTVkdBbmltYXRlZFByb3BlcnR5U3luY2hyb25pemVyPElzRGVyaXZlZEZyb21T
VkdFbGVtZW50PE93bmVyVHlwZT46OnZhbHVlPjo6c3luY2hyb25pemUodGhpcywgRE9NQXR0cmli
dXRlLCB2YWx1ZSk7IFwKKyAgICBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCA9IEdldE93bmVy
RWxlbWVudEZvclR5cGU8T3duZXJUeXBlLCBJc0Rlcml2ZWRGcm9tU1ZHRWxlbWVudDxPd25lclR5
cGU+Ojp2YWx1ZT46Om93bmVyRWxlbWVudCh0aGlzKTsgXAorICAgIFNWR0FuaW1hdGVkUHJvcGVy
dHlTeW5jaHJvbml6ZXI8SXNEZXJpdmVkRnJvbVNWR0VsZW1lbnQ8T3duZXJUeXBlPjo6dmFsdWU+
OjpzeW5jaHJvbml6ZShjb250ZXh0RWxlbWVudCwgRE9NQXR0cmlidXRlLCB2YWx1ZSk7IFwKIH0g
XAogXAogUGFzc1JlZlB0cjxUZWFyT2ZmVHlwZT4gTG93ZXJQcm9wZXJ0eSMjQW5pbWF0ZWQoKSBc
CiB7IFwKICAgICBtXyMjTG93ZXJQcm9wZXJ0eS5zaG91bGRTeW5jaHJvbml6ZSA9IHRydWU7IFwK
LSAgICByZXR1cm4gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFwcGVyPFRl
YXJPZmZUeXBlLCBQcm9wZXJ0eVR5cGU+KHRoaXMsIERPTUF0dHJpYnV0ZSwgU1ZHRE9NQXR0cmli
dXRlSWRlbnRpZmllciwgbV8jI0xvd2VyUHJvcGVydHkudmFsdWUpOyBcCisgICAgU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQgPSBHZXRPd25lckVsZW1lbnRGb3JUeXBlPE93bmVyVHlwZSwgSXNE
ZXJpdmVkRnJvbVNWR0VsZW1lbnQ8T3duZXJUeXBlPjo6dmFsdWU+Ojpvd25lckVsZW1lbnQodGhp
cyk7IFwKKyAgICByZXR1cm4gU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6bG9va3VwT3JDcmVhdGVXcmFw
cGVyPFRlYXJPZmZUeXBlLCBQcm9wZXJ0eVR5cGU+KGNvbnRleHRFbGVtZW50LCBET01BdHRyaWJ1
dGUsIFNWR0RPTUF0dHJpYnV0ZUlkZW50aWZpZXIsIG1fIyNMb3dlclByb3BlcnR5LnZhbHVlKTsg
XAogfSBcCiBwcml2YXRlOiBcCiAgICAgbXV0YWJsZSBTVkdTeW5jaHJvbml6YWJsZUFuaW1hdGVk
UHJvcGVydHk8UHJvcGVydHlUeXBlPiBtXyMjTG93ZXJQcm9wZXJ0eTsKQEAgLTEwMyw3ICsxMDYs
OCBAQCBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZX05FV19TSEFSRUQoT3duCiBcCiB2b2lkIGRl
dGFjaEFuaW1hdGVkIyNVcHBlclByb3BlcnR5IyNMaXN0V3JhcHBlcnModW5zaWduZWQgbmV3TGlz
dFNpemUpIFwKIHsgXAotICAgIFNWR0FuaW1hdGVkUHJvcGVydHkqIHdyYXBwZXIgPSBTVkdBbmlt
YXRlZFByb3BlcnR5Ojpsb29rdXBXcmFwcGVyPFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9m
ZjxQcm9wZXJ0eVR5cGU+ID4odGhpcywgRE9NQXR0cmlidXRlLmxvY2FsTmFtZSgpKTsgXAorICAg
IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50ID0gR2V0T3duZXJFbGVtZW50Rm9yVHlwZTxPd25l
clR5cGUsIElzRGVyaXZlZEZyb21TVkdFbGVtZW50PE93bmVyVHlwZT46OnZhbHVlPjo6b3duZXJF
bGVtZW50KHRoaXMpOyBcCisgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSogd3JhcHBlciA9IFNWR0Fu
aW1hdGVkUHJvcGVydHk6Omxvb2t1cFdyYXBwZXI8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmPFByb3BlcnR5VHlwZT4gPihjb250ZXh0RWxlbWVudCwgRE9NQXR0cmlidXRlLmxvY2FsTmFt
ZSgpKTsgXAogICAgIGlmICghd3JhcHBlcikgXAogICAgICAgICByZXR1cm47IFwKICAgICBzdGF0
aWNfY2FzdDxTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPio+KHdy
YXBwZXIpLT5kZXRhY2hMaXN0V3JhcHBlcnMobmV3TGlzdFNpemUpOyBcCkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA3MDU0NikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE2IEBACisyMDEwLTEwLTI2ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFu
bkByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENvbnZlcnQgU1ZHUmVjdCB0byB0aGUgbmV3IFNWR1Byb3BlcnR5VGVhck9mZiBjb25jZXB0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODIwNAor
CisgICAgICAgIEFkZGVkIG5ldyB0ZXN0IHZlcmlmeWluZyB0aGF0IFN0cmljdFR5cGVDaGVja2lu
ZyBpcyBlbmFibGVkIGZvciBTVkdSZWN0LgorCisgICAgICAgICogc3ZnL2RvbS9TVkdSZWN0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2RvbS9TVkdSZWN0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9kb20vc2NyaXB0LXRlc3RzL1NWR1JlY3QuanM6IEFkZGVkLgorCiAy
MDEwLTEwLTI2ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdSZWN0LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1JlY3QtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdSZWN0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMyBAQAorVGhpcyB0ZXN0IGNoZWNr
cyB0aGUgU1ZHUmVjdCBBUEkKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworQ2hl
Y2sgaW5pdGlhbCByZWN0IHZhbHVlcworUEFTUyByZWN0LnggaXMgMAorUEFTUyByZWN0LnkgaXMg
MAorUEFTUyByZWN0LndpZHRoIGlzIDAKK1BBU1MgcmVjdC5oZWlnaHQgaXMgMAorCitDaGVjayBh
c3NpZ25pbmcgcmVjdHMKK1BBU1MgcmVjdC54ID0gMTAwIGlzIDEwMAorUEFTUyByZWN0LnkgPSAy
MDAgaXMgMjAwCitQQVNTIHJlY3Qud2lkdGggPSAzMDAgaXMgMzAwCitQQVNTIHJlY3QuaGVpZ2h0
ID0gNDAwIGlzIDQwMAorCitDaGVjayBhc3NpZ25pbmcgaW52YWxpZCByZWN0cworUEFTUyByZWN0
LnggPSByZWN0IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHJl
Y3QueSA9IG51bGwgaXMgbnVsbAorUEFTUyByZWN0LndpZHRoID0gJ2FTdHJpbmcnIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIHJlY3QuaGVpZ2h0ID0gc3ZnRWxl
bWVudCB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgorCitDaGVjayB0aGF0
IHRoZSByZWN0IGlzIHN0aWxsIGNvbnRhaW5pbmcgdGhlIGNvcnJlY3QgdmFsdWVzCitQQVNTIHJl
Y3QueCBpcyAxMDAKK1BBU1MgcmVjdC55IGlzIDAKK1BBU1MgcmVjdC53aWR0aCBpcyAzMDAKK1BB
U1MgcmVjdC5oZWlnaHQgaXMgNDAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdSZWN0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdSZWN0Lmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1JlY3QuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvU1ZHUmVjdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9kb20vc2NyaXB0LXRlc3Rz
L1NWR1JlY3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2RvbS9zY3JpcHQtdGVz
dHMvU1ZHUmVjdC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9kb20vc2NyaXB0
LXRlc3RzL1NWR1JlY3QuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKK2Rlc2NyaXB0
aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoZSBTVkdSZWN0IEFQSSIpOworCit2YXIgc3ZnRWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
LCAic3ZnIik7Cit2YXIgcmVjdCA9IHN2Z0VsZW1lbnQuY3JlYXRlU1ZHUmVjdCgpOworCitkZWJ1
ZygiIik7CitkZWJ1ZygiQ2hlY2sgaW5pdGlhbCByZWN0IHZhbHVlcyIpOworc2hvdWxkQmUoInJl
Y3QueCIsICIwIik7CitzaG91bGRCZSgicmVjdC55IiwgIjAiKTsKK3Nob3VsZEJlKCJyZWN0Lndp
ZHRoIiwgIjAiKTsKK3Nob3VsZEJlKCJyZWN0LmhlaWdodCIsICIwIik7CisKK2RlYnVnKCIiKTsK
K2RlYnVnKCJDaGVjayBhc3NpZ25pbmcgcmVjdHMiKTsKK3Nob3VsZEJlKCJyZWN0LnggPSAxMDAi
LCAiMTAwIik7CitzaG91bGRCZSgicmVjdC55ID0gMjAwIiwgIjIwMCIpOworc2hvdWxkQmUoInJl
Y3Qud2lkdGggPSAzMDAiLCAiMzAwIik7CitzaG91bGRCZSgicmVjdC5oZWlnaHQgPSA0MDAiLCAi
NDAwIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJDaGVjayBhc3NpZ25pbmcgaW52YWxpZCByZWN0
cyIpOworc2hvdWxkVGhyb3coInJlY3QueCA9IHJlY3QiKTsKK3Nob3VsZEJlTnVsbCgicmVjdC55
ID0gbnVsbCIpOworc2hvdWxkVGhyb3coInJlY3Qud2lkdGggPSAnYVN0cmluZyciKTsKK3Nob3Vs
ZFRocm93KCJyZWN0LmhlaWdodCA9IHN2Z0VsZW1lbnQiKTsKKworZGVidWcoIiIpOworZGVidWco
IkNoZWNrIHRoYXQgdGhlIHJlY3QgaXMgc3RpbGwgY29udGFpbmluZyB0aGUgY29ycmVjdCB2YWx1
ZXMiKTsKK3Nob3VsZEJlKCJyZWN0LngiLCAiMTAwIik7CitzaG91bGRCZSgicmVjdC55IiwgIjAi
KTsKK3Nob3VsZEJlKCJyZWN0LndpZHRoIiwgIjMwMCIpOworc2hvdWxkQmUoInJlY3QuaGVpZ2h0
IiwgIjQwMCIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="62068"
          type_id="1"
          status="+"
          setter="rwlbuis"
    />
          </attachment>
      

    </bug>

</bugzilla>