<?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>30183</bug_id>
          
          <creation_ts>2009-10-07 14:08:03 -0700</creation_ts>
          <short_desc>Kill virtual contextElement() method spread all over SVG code</short_desc>
          <delta_ts>2009-10-14 16:54:53 -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>
          <dependson>30184</dependson>
    
    <dependson>30218</dependson>
    
    <dependson>30230</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>eric</cc>
    
    <cc>staikos</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>153180</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-10-07 14:08:03 -0700</bug_when>
    <thetext>SVG uses &quot;virtual const SVGElement* contextElement() const&quot; for the sake of being able to declare ANIMATED_* properties in base classes like SVGFitToViewBox, SVGURIReference etc..
We can just move the ANIMATED_* macro declarations to the classes that currently inherit from SVGURIReference and completly save the need of a virtual function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153947</commentid>
    <comment_count>1</comment_count>
      <attachid>41005</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-10-11 16:15:21 -0700</bug_when>
    <thetext>Created attachment 41005
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154043</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-12 06:57:40 -0700</bug_when>
    <thetext>Is this safe?
 422             Attribute* old = namedAttrMap-&gt;getAttributeItem(attributeName);
Just want to make sure it&apos;s not another cause of bug 29620.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154046</commentid>
    <comment_count>3</comment_count>
      <attachid>41005</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-12 07:05:41 -0700</bug_when>
    <thetext>Comment on attachment 41005
Initial patch

I now see that the moved code is no different before, easing my concerns.

I don&apos;t understand when the &quot;false&quot; case of PropertySynchronizer is ever used?

Why?
         virtual const SVGElement* contextElement() const;
 54         const SVGElement* contextElement() const;

Your ChangeLog is pretty empty. :(

I don&apos;t understand when synchronize is called, if ever.

Why is this removal OK?
454          PassRefPtr&lt;SVGAnimatedProperty##UpperProperty::TearOff&gt; LowerProperty##Animated() const { return m_##LowerProperty.animatedTearOff(); } \
455          void synchronize##UpperProperty() const { m_##LowerProperty.synchronize(); }
 451         PassRefPtr&lt;SVGAnimatedProperty##UpperProperty::TearOff&gt; LowerProperty##Animated() const { return m_##LowerProperty.animatedTearOff(); }

I think in general this mostly needs a big update to the ChangeLog to explain all these individual changes, or you soudl split this patch up into separate parts.  I get the sense that a bunch of this change is a work in progress, and that the logic you&apos;re adding/changing isn&apos;t actually used for anything yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154090</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-10-12 09:34:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 41005 [details])
&gt; I now see that the moved code is no different before, easing my concerns.
&gt; 
&gt; I don&apos;t understand when the &quot;false&quot; case of PropertySynchronizer is ever used?
The false case is _only_ used for SVGViewSpec at the moment - the only class neededing ANIMATED_ macros that does not inherit from SVGElement (now that SVGFitToViewBox/SVGURIReference/SVGExternalResourcesRequired don&apos;t define any ANIMATED_ properties themselves anymore).

&gt; 
&gt; Why?
&gt;          virtual const SVGElement* contextElement() const;
&gt;  54         const SVGElement* contextElement() const;
For the reason above, contextElement() is needed for SVGViewSpec only, hence devirtualizing it.

&gt; 
&gt; Your ChangeLog is pretty empty. :(
Sorrz for that.

&gt; 
&gt; I don&apos;t understand when synchronize is called, if ever.
The synchronization logic is covered by existing LayoutTests in svg/custom and works just fine. To clarify it to ease your reviewing, here&apos;s a short summary of the structure of that code:

What we need:
someSVGElement.someAnimatedProperty.baseVal and someSVGElement.getAttribute(&quot;someAnimatedProperty&quot;) must stay synchronized all the time

How is it done:
Element::getAttribute() calls the virtual function updateAnimatedSVGProperty(String(..))
(hasAttribute() / attributes() also do this, but not relevant for the example)

SVGElement::updateAnimatedSVGProperty() either calls
a) invokeAllSVGPropertySynchronizers (if the passed String is empty, that means &apos;synchronize all possible attributes&apos; - invoked through Element::attributes())
b ) invokeSVGPropertySynchronizer(..) (invoked through Element::getAttribute(...))

These invoke(All)SVG* methods traverse the list of registered animated properties and call the &quot;synchronize()&quot; method on the desired SVGAnimatedProperty objects.

That&apos;s basically how the attribute synchronization works. To summarize: any SVG DOM change doesn&apos;t trigger any attribute synchronization, as soon as you getAttribute(..) on a SVG animated property, it synchronizes the XML attribute based on the SVG DOM representation.)

This code is all tested and works. Hope that clarifies it a bit.

&gt; 
&gt; Why is this removal OK?
&gt; 454          PassRefPtr&lt;SVGAnimatedProperty##UpperProperty::TearOff&gt;
&gt; LowerProperty##Animated() const { return m_##LowerProperty.animatedTearOff(); }
&gt; \
&gt; 455          void synchronize##UpperProperty() const {
&gt; m_##LowerProperty.synchronize(); }
&gt;  451         PassRefPtr&lt;SVGAnimatedProperty##UpperProperty::TearOff&gt;
&gt; LowerProperty##Animated() const { return m_##LowerProperty.animatedTearOff(); }

The removal is OK, because this method is not used anywhere. No one calls ie. &quot;synchronizeWidth&quot; in a manual fashion. I added this when implementing the synchronization facility for testing purposes.

&gt; 
&gt; I think in general this mostly needs a big update to the ChangeLog to explain
&gt; all these individual changes, or you soudl split this patch up into separate
&gt; parts.  I get the sense that a bunch of this change is a work in progress, and
&gt; that the logic you&apos;re adding/changing isn&apos;t actually used for anything yet.
Ok will investigate how to split up this patch.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154100</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-10-12 10:28:43 -0700</bug_when>
    <thetext>Hm, I don&apos;t think splitting up this patch makes any sense, except it would be less to review :-)
The only thing I could rip out is changing the first argument of the ANIMATED_ property macros (moving from SVGExternal/FitToViewBox/URIReference to the actual class) - but a follow-up patch would need to touch all files again, just removing contextElement().

I&apos;d highly appreciate if we could let it as is. Coming up with a detailed ChangeLog soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154101</commentid>
    <comment_count>6</comment_count>
      <attachid>41050</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-10-12 10:34:20 -0700</bug_when>
    <thetext>Created attachment 41050
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154674</commentid>
    <comment_count>7</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-10-14 16:54:53 -0700</bug_when>
    <thetext>Committed r49602: &lt;http://trac.webkit.org/changeset/49602&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41005</attachid>
            <date>2009-10-11 16:15:21 -0700</date>
            <delta_ts>2009-10-12 10:29:15 -0700</delta_ts>
            <desc>Initial patch</desc>
            <filename>bug-30183-20091012011513.patch</filename>
            <type>text/plain</type>
            <size>76397</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">PyAgICAgICBXZWJLaXQtWENvZGUtQnVpbGQtUGF0Y2gKPyAgICAgICBXZWJDb3JlL0xJU1QKPyAg
ICAgICBXZWJDb3JlL1NPTUVQQVRDSAo/ICAgICAgIExheW91dFRlc3RzL2FuaW1WYWwtYmFzZVZh
bC1zdXBwb3J0LnN2Zwo/ICAgICAgIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hbmltVmFsLWJh
c2VWYWwtc3VwcG9ydC1leHBlY3RlZC50eHQKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0OTQyOSkKKysrIFdlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzggQEAKKzIwMDktMTAtMTEgIE5p
a29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgS2lsbCB2aXJ0dWFsIGNvbnRleHRFbGVt
ZW50KCkgbWV0aG9kIHNwcmVhZCBhbGwgb3ZlciBTVkcgY29kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAxODMKKworICAgICAgICBSZW1vdmUgdmly
dHVhbCBjb250ZXh0RWxlbWVudCgpIGZ1bmN0aW9uIGZyb20gYWxsIFNWRypFbGVtZW50IGNsYXNz
ZXMsIGFzIGFsbCBhbmltYXRlZCBwcm9wZXJ0aWVzIGxpdmUgaW4gdGhlCisgICAgICAgIFNWRypF
bGVtZW50IGNsYXNzZXMgbm93IGluc3RlYWQgb2YgdGhlIFNWR0ZpdFRvVmlld0JveCAvIFNWR1VS
SVJlZmVyZW5jZSAvIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKKyAgICAgICAgc3ViY2xh
c3Nlcy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eSwgdGh1cyBubyBuZXcg
dGVzdHMuCisKKyAgICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
QWx0R2x5cGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUHJvcGVydHkuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ojo6c3luY2hyb25pemUpOgorICAgICAgICAoV2ViQ29yZTo6Ojpz
dGFydEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjo6OnN0b3BBbmltYXRpb24pOgorICAg
ICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR0N1cnNvckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRGVmc0VsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMu
aDoKKyAgICAgICAgKiBzdmcvU1ZHRml0VG9WaWV3Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZpdFRvVmlld0JveDo6cGFyc2VWaWV3Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Zp
dFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGaXRU
b1ZpZXdCb3guaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9udEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHR3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0ltYWdlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMaW5lRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdNUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXJrZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHTWFza0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UGF0dGVybkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
UGF0dGVybkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnVwZGF0ZUFuaW1hdGVkU1ZHQXR0cmlidXRl
KToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUmVj
dEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICog
c3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdTd2l0Y2hFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N5bWJv
bEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3ltYm9sRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTeW1ib2xFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR1RSZWZFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RleHRDb250ZW50
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHVXNlRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUp
OgorICAgICAgICAqIHN2Zy9TVkdWaWV3RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdWaWV3
U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3U3BlYzo6U1ZHVmlld1NwZWMpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnNldFZpZXdCb3hTdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMpOgorICAgICAgICAqIHN2Zy9T
VkdWaWV3U3BlYy5oOgorCiAyMDA5LTEwLTExICBTw7hyZW4gR2plc3NlICA8c2dqZXNzZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR0FFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQUVsZW1l
bnQuaAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zLDggKzMsNiBAQAogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBS
b2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNyBFcmljIFNlaWRl
bCA8ZXJpY0B3ZWJraXQub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTYwLDkgKzU4LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKE5vZGUqKSBjb25zdDsKIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVh
bCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7
IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdBRWxlbWVudCwgU1ZHTmFtZXM6OmFUYWdTdHJpbmcsIFNWR05hbWVzOjp0YXJnZXRBdHRy
U3RyaW5nLCBTdHJpbmcsIFRhcmdldCwgdGFyZ2V0KQogCkBAIC03MCw3ICs2NSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0FFbGVtZW50LCBTVkdVUklSZWZlcmVuY2VJZGVudGlmaWVyLCBYTGlua05hbWVzOjpocmVmQXR0
clN0cmluZywgU3RyaW5nLCBIcmVmLCBocmVmKQogCiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJ
ZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQUVs
ZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCkKICAgICB9OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDQ5
NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ3LDkgKzQ3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogICAgICAgICBTVkdH
bHlwaEVsZW1lbnQqIGdseXBoRWxlbWVudCgpIGNvbnN0OwogCi0gICAgcHJvdGVjdGVkOgotICAg
ICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gdGhpczsgfQotCiAgICAgcHJpdmF0ZTogICAgCiAgICAgICAgIC8vIFNWR1VSSVJlZmVy
ZW5jZQogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQWx0R2x5cGhF
bGVtZW50LCBTVkdVUklSZWZlcmVuY2VJZGVudGlmaWVyLCBYTGlua05hbWVzOjpocmVmQXR0clN0
cmluZywgU3RyaW5nLCBIcmVmLCBocmVmKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVkUHJvcGVydHku
aAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlZFByb3BlcnR5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAw
OCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMDkuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTYyLDggKzYzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIHN0cnVjdCBJc0Rlcml2ZWRGcm9tU1ZHRWxlbWVudDsKIAogICAgIC8vIEhlbHBlciB0
ZW1wbGF0ZSB1c2VkIGZvciBzeW5jaHJvbml6aW5nIFNWRyA8LT4gWE1MIHByb3BlcnRpZXMKLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBPd25lckVsZW1lbnQsIHR5cGVuYW1lIERlY29yYXRlZFR5cGU+
Ci0gICAgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5KGNvbnN0IE93bmVyRWxlbWVudCogb3duZXJF
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBEZWNvcmF0ZWRUeXBl
IGJhc2VWYWx1ZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJUeXBlLCB0eXBlbmFtZSBE
ZWNvcmF0ZWRUeXBlLCBib29sIGlzRGVyaXZlZEZyb21TVkdFbGVtZW50PgorICAgIHN0cnVjdCBQ
cm9wZXJ0eVN5bmNocm9uaXplcjsKIAogICAgIC8vIEFic3RyYWN0IGJhc2UgY2xhc3MKICAgICBj
bGFzcyBTVkdBbmltYXRlZFByb3BlcnR5QmFzZSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CkBAIC0z
NDMsNyArMzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpZiAoIW1fdmFsdWUu
bmVlZHNTeW5jaHJvbml6YXRpb24oKSkgCiAgICAgICAgICAgICByZXR1cm47IAogCi0gICAgICAg
IHN5bmNocm9uaXplUHJvcGVydHk8T3duZXJFbGVtZW50LCBEZWNvcmF0ZWRUeXBlPihvd25lckVs
ZW1lbnQoKSwgbV9hdHRyaWJ1dGVOYW1lLCBiYXNlVmFsdWUoKSk7CisgICAgICAgIFByb3BlcnR5
U3luY2hyb25pemVyPE93bmVyRWxlbWVudCwgRGVjb3JhdGVkVHlwZSwgSXNEZXJpdmVkRnJvbVNW
R0VsZW1lbnQ8T3duZXJUeXBlPjo6dmFsdWU+OjpzeW5jaHJvbml6ZShvd25lckVsZW1lbnQoKSwg
bV9hdHRyaWJ1dGVOYW1lLCBiYXNlVmFsdWUoKSk7CiAgICAgICAgIG1fdmFsdWUuc2V0U3luY2hy
b25pemVkKCk7IAogICAgIH0KIApAQCAtMzUxLDggKzM1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICB2b2lkIFNWR0FuaW1hdGVkUHJvcGVydHk8T3duZXJUeXBlQXJnLCBBbmltYXRlZFR5
cGVBcmcsIFRhZ05hbWUsIFByb3BlcnR5TmFtZT46OnN0YXJ0QW5pbWF0aW9uKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIGNvbnN0IE93bmVyRWxlbWVudCogb3duZXJFbGVtZW50ID0gdGhpcy0+b3du
ZXJFbGVtZW50KCk7Ci0gICAgICAgIFNWR0RvY3VtZW50RXh0ZW5zaW9ucyogZXh0ZW5zaW9ucyA9
IG93bmVyRWxlbWVudC0+YWNjZXNzRG9jdW1lbnRTVkdFeHRlbnNpb25zKCk7Ci0gICAgICAgIGlm
IChleHRlbnNpb25zKSB7CisgICAgICAgIGlmIChTVkdEb2N1bWVudEV4dGVuc2lvbnMqIGV4dGVu
c2lvbnMgPSBvd25lckVsZW1lbnQtPmFjY2Vzc0RvY3VtZW50U1ZHRXh0ZW5zaW9ucygpKSB7CiAg
ICAgICAgICAgICBBU1NFUlQoIWV4dGVuc2lvbnMtPmhhc0Jhc2VWYWx1ZTxEZWNvcmF0ZWRUeXBl
Pihvd25lckVsZW1lbnQsIG1fYXR0cmlidXRlSWRlbnRpZmllcikpOwogICAgICAgICAgICAgZXh0
ZW5zaW9ucy0+c2V0QmFzZVZhbHVlPERlY29yYXRlZFR5cGU+KG93bmVyRWxlbWVudCwgbV9hdHRy
aWJ1dGVJZGVudGlmaWVyLCBtX3ZhbHVlKTsKICAgICAgICAgfQpAQCAtMzYyLDggKzM2Miw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB2b2lkIFNWR0FuaW1hdGVkUHJvcGVydHk8T3duZXJU
eXBlQXJnLCBBbmltYXRlZFR5cGVBcmcsIFRhZ05hbWUsIFByb3BlcnR5TmFtZT46OnN0b3BBbmlt
YXRpb24oKQogICAgIHsKICAgICAgICAgY29uc3QgT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQg
PSB0aGlzLT5vd25lckVsZW1lbnQoKTsKLSAgICAgICAgU1ZHRG9jdW1lbnRFeHRlbnNpb25zKiBl
eHRlbnNpb25zID0gb3duZXJFbGVtZW50LT5hY2Nlc3NEb2N1bWVudFNWR0V4dGVuc2lvbnMoKTsK
LSAgICAgICAgaWYgKGV4dGVuc2lvbnMpIHsKKyAgICAgICAgaWYgKFNWR0RvY3VtZW50RXh0ZW5z
aW9ucyogZXh0ZW5zaW9ucyA9IG93bmVyRWxlbWVudC0+YWNjZXNzRG9jdW1lbnRTVkdFeHRlbnNp
b25zKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChleHRlbnNpb25zLT5oYXNCYXNlVmFsdWU8RGVj
b3JhdGVkVHlwZT4ob3duZXJFbGVtZW50LCBtX2F0dHJpYnV0ZUlkZW50aWZpZXIpKTsKICAgICAg
ICAgICAgIHNldFZhbHVlKGV4dGVuc2lvbnMtPmJhc2VWYWx1ZTxEZWNvcmF0ZWRUeXBlPihvd25l
ckVsZW1lbnQsIG1fYXR0cmlidXRlSWRlbnRpZmllcikpOwogICAgICAgICAgICAgZXh0ZW5zaW9u
cy0+cmVtb3ZlQmFzZVZhbHVlPEFuaW1hdGVkVHlwZT4ob3duZXJFbGVtZW50LCBtX2F0dHJpYnV0
ZUlkZW50aWZpZXIpOwpAQCAtNDA2LDM5ICs0MDUsMzcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7CiAgICAgfTsKIAotICAgIGNs
YXNzIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ7CisgICAgY2xhc3MgU1ZHVmlld1NwZWM7
CiAgICAgdGVtcGxhdGU8PgotICAgIHN0cnVjdCBJc0Rlcml2ZWRGcm9tU1ZHRWxlbWVudDxTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkPiA6IE5vbmNvcHlhYmxlIHsKKyAgICBzdHJ1Y3QgSXNE
ZXJpdmVkRnJvbVNWR0VsZW1lbnQ8U1ZHVmlld1NwZWM+IDogTm9uY29weWFibGUgewogICAgICAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IGZhbHNlOwogICAgIH07CiAKLSAgICBjbGFzcyBT
VkdGaXRUb1ZpZXdCb3g7Ci0gICAgdGVtcGxhdGU8PgotICAgIHN0cnVjdCBJc0Rlcml2ZWRGcm9t
U1ZHRWxlbWVudDxTVkdGaXRUb1ZpZXdCb3g+IDogTm9uY29weWFibGUgewotICAgICAgICBzdGF0
aWMgY29uc3QgYm9vbCB2YWx1ZSA9IGZhbHNlOwotICAgIH07CisgICAgLy8gUHJvcGVydHlTeW5j
aHJvbml6ZXIgaW1wbGVtZW50YXRpb24KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPd25lckVsZW1l
bnQsIHR5cGVuYW1lIERlY29yYXRlZFR5cGU+CisgICAgc3RydWN0IFByb3BlcnR5U3luY2hyb25p
emVyPE93bmVyRWxlbWVudCwgRGVjb3JhdGVkVHlwZSwgdHJ1ZT4gOiBOb25jb3B5YWJsZSB7Cisg
ICAgICAgIHN0YXRpYyB2b2lkIHN5bmNocm9uaXplKGNvbnN0IE93bmVyRWxlbWVudCogb3duZXJF
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBEZWNvcmF0ZWRUeXBl
IGJhc2VWYWx1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgQXRvbWljU3RyaW5nIHZhbHVlKFNW
R0FuaW1hdGVkVHlwZVZhbHVlPERlY29yYXRlZFR5cGU+Ojp0b1N0cmluZyhiYXNlVmFsdWUpKTsK
IAotICAgIGNsYXNzIFNWR1VSSVJlZmVyZW5jZTsKLSAgICB0ZW1wbGF0ZTw+Ci0gICAgc3RydWN0
IElzRGVyaXZlZEZyb21TVkdFbGVtZW50PFNWR1VSSVJlZmVyZW5jZT4gOiBOb25jb3B5YWJsZSB7
Ci0gICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gZmFsc2U7CisgICAgICAgICAgICBO
YW1lZE5vZGVNYXAqIG5hbWVkQXR0ck1hcCA9IG93bmVyRWxlbWVudC0+YXR0cmlidXRlcyhmYWxz
ZSk7IAorICAgICAgICAgICAgQXR0cmlidXRlKiBvbGQgPSBuYW1lZEF0dHJNYXAtPmdldEF0dHJp
YnV0ZUl0ZW0oYXR0cmlidXRlTmFtZSk7CisgICAgICAgICAgICBpZiAob2xkICYmIHZhbHVlLmlz
TnVsbCgpKSAKKyAgICAgICAgICAgICAgICBuYW1lZEF0dHJNYXAtPnJlbW92ZUF0dHJpYnV0ZShv
bGQtPm5hbWUoKSk7IAorICAgICAgICAgICAgZWxzZSBpZiAoIW9sZCAmJiAhdmFsdWUuaXNOdWxs
KCkpIAorICAgICAgICAgICAgICAgIG5hbWVkQXR0ck1hcC0+YWRkQXR0cmlidXRlKGNvbnN0X2Nh
c3Q8T3duZXJFbGVtZW50Kj4ob3duZXJFbGVtZW50KS0+Y3JlYXRlQXR0cmlidXRlKGF0dHJpYnV0
ZU5hbWUsIHZhbHVlKSk7CisgICAgICAgICAgICBlbHNlIGlmIChvbGQgJiYgIXZhbHVlLmlzTnVs
bCgpKSAKKyAgICAgICAgICAgICAgICBvbGQtPnNldFZhbHVlKHZhbHVlKTsgCisgICAgICAgIH0K
ICAgICB9OwogCi0gICAgLy8gQ2VudHJhbCBmdW5jdGlvbiBoYW5kbGluZyB0aGUgbWFpbiBTVkc8
LT5YTUwgc3luY2hyb25pemF0aW9uIHBhcnQuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJF
bGVtZW50LCB0eXBlbmFtZSBEZWNvcmF0ZWRUeXBlPgotICAgIHZvaWQgc3luY2hyb25pemVQcm9w
ZXJ0eShjb25zdCBPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgRGVjb3JhdGVkVHlwZSBiYXNlVmFsdWUpCi0gICAgewotICAgICAg
ICBBdG9taWNTdHJpbmcgdmFsdWUoU1ZHQW5pbWF0ZWRUeXBlVmFsdWU8RGVjb3JhdGVkVHlwZT46
OnRvU3RyaW5nKGJhc2VWYWx1ZSkpOwotCi0gICAgICAgIE5hbWVkTm9kZU1hcCogbmFtZWRBdHRy
TWFwID0gb3duZXJFbGVtZW50LT5hdHRyaWJ1dGVzKGZhbHNlKTsgCi0gICAgICAgIEF0dHJpYnV0
ZSogb2xkID0gbmFtZWRBdHRyTWFwLT5nZXRBdHRyaWJ1dGVJdGVtKGF0dHJpYnV0ZU5hbWUpOwot
ICAgICAgICBpZiAob2xkICYmIHZhbHVlLmlzTnVsbCgpKSAKLSAgICAgICAgICAgIG5hbWVkQXR0
ck1hcC0+cmVtb3ZlQXR0cmlidXRlKG9sZC0+bmFtZSgpKTsgCi0gICAgICAgIGVsc2UgaWYgKCFv
bGQgJiYgIXZhbHVlLmlzTnVsbCgpKSAKLSAgICAgICAgICAgIG5hbWVkQXR0ck1hcC0+YWRkQXR0
cmlidXRlKGNvbnN0X2Nhc3Q8T3duZXJFbGVtZW50Kj4ob3duZXJFbGVtZW50KS0+Y3JlYXRlQXR0
cmlidXRlKGF0dHJpYnV0ZU5hbWUsIHZhbHVlKSk7Ci0gICAgICAgIGVsc2UgaWYgKG9sZCAmJiAh
dmFsdWUuaXNOdWxsKCkpIAotICAgICAgICAgICAgb2xkLT5zZXRWYWx1ZSh2YWx1ZSk7IAotICAg
IH0KKyAgICBzdHJ1Y3QgUHJvcGVydHlTeW5jaHJvbml6ZXI8T3duZXJFbGVtZW50LCBEZWNvcmF0
ZWRUeXBlLCBmYWxzZT4gOiBOb25jb3B5YWJsZSB7CisgICAgICAgIHN0YXRpYyB2b2lkIHN5bmNo
cm9uaXplKGNvbnN0IE93bmVyRWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEZWNvcmF0
ZWRUeXBlKQorICAgICAgICB7CisgICAgICAgICAgICAvLyBuby1vcCwgZm9yIHR5cGVzIG5vdCBp
bmhlcml0aW5nIGZyb20gRWxlbWVudCwgdGh1cyBub3RoaW5nIHRvIHN5bmNocm9uaXplCisgICAg
ICAgIH0KKyAgICB9OwogCiAgICAgLy8gSGVscGVyIG1hY3JvIHVzZWQgdG8gcmVnaXN0ZXIgYW5p
bWF0ZWQgcHJvcGVydGllcyB3aXRoaW4gU1ZHKiBjbGFzc2VzCiAgICAgI2RlZmluZSBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoT3duZXJUeXBlLCBFbGVtZW50VGFnLCBBdHRyaWJ1dGVU
YWcsIEFuaW1hdGVkVHlwZSwgVXBwZXJQcm9wZXJ0eSwgTG93ZXJQcm9wZXJ0eSkgXApAQCAtNDUx
LDggKzQ0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXQjI1VwcGVy
UHJvcGVydHkoRGVjb3JhdGVkVHlwZUZvciMjVXBwZXJQcm9wZXJ0eSB0eXBlKSB7IG1fIyNMb3dl
clByb3BlcnR5LnNldFZhbHVlKHR5cGUpOyB9IFwKICAgICAgICAgRGVjb3JhdGVkVHlwZUZvciMj
VXBwZXJQcm9wZXJ0eSBMb3dlclByb3BlcnR5IyNCYXNlVmFsdWUoKSBjb25zdCB7IHJldHVybiBt
XyMjTG93ZXJQcm9wZXJ0eS5iYXNlVmFsdWUoKTsgfSBcCiAgICAgICAgIHZvaWQgc2V0IyNVcHBl
clByb3BlcnR5IyNCYXNlVmFsdWUoRGVjb3JhdGVkVHlwZUZvciMjVXBwZXJQcm9wZXJ0eSB0eXBl
KSB7IG1fIyNMb3dlclByb3BlcnR5LnNldEJhc2VWYWx1ZSh0eXBlKTsgfSBcCi0gICAgICAgIFBh
c3NSZWZQdHI8U1ZHQW5pbWF0ZWRQcm9wZXJ0eSMjVXBwZXJQcm9wZXJ0eTo6VGVhck9mZj4gTG93
ZXJQcm9wZXJ0eSMjQW5pbWF0ZWQoKSBjb25zdCB7IHJldHVybiBtXyMjTG93ZXJQcm9wZXJ0eS5h
bmltYXRlZFRlYXJPZmYoKTsgfSBcCi0gICAgICAgIHZvaWQgc3luY2hyb25pemUjI1VwcGVyUHJv
cGVydHkoKSBjb25zdCB7IG1fIyNMb3dlclByb3BlcnR5LnN5bmNocm9uaXplKCk7IH0KKyAgICAg
ICAgUGFzc1JlZlB0cjxTVkdBbmltYXRlZFByb3BlcnR5IyNVcHBlclByb3BlcnR5OjpUZWFyT2Zm
PiBMb3dlclByb3BlcnR5IyNBbmltYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fIyNMb3dlclByb3Bl
cnR5LmFuaW1hdGVkVGVhck9mZigpOyB9CiAKIH07CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25F
bGVtZW50LmgJKHJldmlzaW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEyICsxLDEwIEBACiAvKgotICAgIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAg
ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5u
QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxi
dWlzQGtkZS5vcmc+CiAgICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdl
YmtpdC5vcmc+CiAgICAgQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAgICBDb3B5cmlnaHQgKEMpIDIwMDggQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBt
Y2MuaWQuYXU+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQog
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNjYsOCArNjQsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHN0YXRpYyBib29sIGF0dHJpYnV0ZUlzQ1NTKGNvbnN0IFN0cmluZyYg
YXR0cmlidXRlTmFtZSk7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3Qg
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0gCiAg
ICAgICAgIGVudW0gQ2FsY01vZGUgeyBDYWxjTW9kZURpc2NyZXRlLCBDYWxjTW9kZUxpbmVhciwg
Q2FsY01vZGVQYWNlZCwgQ2FsY01vZGVTcGxpbmUgfTsKICAgICAgICAgQ2FsY01vZGUgY2FsY01v
ZGUoKSBjb25zdDsKICAgICAgICAgCkBAIC0xMTAsNyArMTA2LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJ
ZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQW5p
bWF0aW9uRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkKQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCShyZXZpc2lvbiA0OTQy
OCkKKysrIFdlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
Miw4ICsyLDYgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAy
MDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUg
aXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpA
QCAtNDcsNyArNDUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgUGF0
aCB0b1BhdGhEYXRhKCkgY29uc3Q7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwg
Y29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZVZhbHVlcygpIGNvbnN0OwogCiAgICAg
cHJpdmF0ZToKQEAgLTU2LDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ2lyY2xlRWxlbWVudCwgU1ZHTmFtZXM6
OmNpcmNsZVRhZ1N0cmluZywgU1ZHTmFtZXM6OnJBdHRyU3RyaW5nLCBTVkdMZW5ndGgsIFIsIHIp
CiAKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdDaXJjbGVFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9v
bCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAgICAgfTsKSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0NsaXBQYXRoRWxlbWVudC5oCShyZXZpc2lvbiA0OTQyOCkKKysrIFdlYkNvcmUvc3ZnL1NW
R0NsaXBQYXRoRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHpp
bW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9i
IEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUg
cHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC00OSwxNCArNDcsMTEgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgU1ZHUmVzb3VyY2UqIGNhbnZh
c1Jlc291cmNlKCk7CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KICAgICBw
cml2YXRlOgogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ2xpcFBh
dGhFbGVtZW50LCBTVkdOYW1lczo6Y2xpcFBhdGhUYWdTdHJpbmcsIFNWR05hbWVzOjpjbGlwUGF0
aFVuaXRzQXR0clN0cmluZywgaW50LCBDbGlwUGF0aFVuaXRzLCBjbGlwUGF0aFVuaXRzKQogCiAg
ICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHQ2xpcFBhdGhFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAKSW5kZXg6IFdlYkNvcmUvc3Zn
L1NWR0N1cnNvckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdDdXJzb3JF
bGVtZW50LmgJKHJldmlzaW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9y
Zz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2Rl
Lm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC01MCw5ICs0OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExp
c3RIYXNoU2V0PEtVUkw+JikgY29uc3Q7CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1
YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlz
OyB9Ci0KICAgICBwcml2YXRlOgogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHQ3Vyc29yRWxlbWVudCwgU1ZHTmFtZXM6OmN1cnNvclRhZ1N0cmluZywgU1ZHTmFtZXM6
OnhBdHRyU3RyaW5nLCBTVkdMZW5ndGgsIFgsIHgpCiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdDdXJzb3JFbGVtZW50LCBTVkdOYW1lczo6Y3Vyc29yVGFnU3RyaW5n
LCBTVkdOYW1lczo6eUF0dHJTdHJpbmcsIFNWR0xlbmd0aCwgWSwgeSkKQEAgLTYxLDcgKzU2LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHQ3Vyc29yRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlSWRlbnRpZmllciwgWExpbmtO
YW1lczo6aHJlZkF0dHJTdHJpbmcsIFN0cmluZywgSHJlZiwgaHJlZikKIAogICAgICAgICAvLyBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0N1cnNvckVsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVu
dGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTmFtZXM6
OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCShyZXZpc2lv
biA0OTQyOCkKKysrIFdlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTIsOCArMiw2IEBACiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAw
NSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIEtERSBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTQzLDEx
ICs0MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIFJlbmRlck9i
amVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogCi0gICAg
cHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCisgICAgcHJpdmF0ZToKICAgICAgICAgLy8g
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdEZWZzRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50
aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdOYW1lczo6
ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkKQogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50
LmgJKHJldmlzaW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
ICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgpAQCAtNDcsNyArNDUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgUGF0aCB0b1BhdGhEYXRhKCkgY29uc3Q7CiAKICAgICBwcm90ZWN0ZWQ6
Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiB0aGlzOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZVZhbHVl
cygpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKQEAgLTU3LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRWxsaXBz
ZUVsZW1lbnQsIFNWR05hbWVzOjplbGxpcHNlVGFnU3RyaW5nLCBTVkdOYW1lczo6cnlBdHRyU3Ry
aW5nLCBTVkdMZW5ndGgsIFJ5LCByeSkKIAogICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRp
ZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0VsbGlwc2VF
bGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQpCiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLmgJKHJldmlzaW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5A
a2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2Rl
Lm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC00NSw4ICs0Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgYm9vbCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsK
ICAgICAgICAgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAot
ICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3Qg
PSAwOwotCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0RXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZEJhc2VWYWx1ZShTVkdBbmltYXRlZFR5cGVWYWx1ZTxib29sPjo6RGVj
b3JhdGVkVHlwZSB0eXBlKSA9IDA7CiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMg
ZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCkBAIC00OSw5ICs0Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxLVVJMPiYpIGNv
bnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgYnVpbGQoU1ZHUmVzb3VyY2VGaWx0ZXIqKTsKIAot
ICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUltYWdlRWxlbWVudCwgU1ZHTmFt
ZXM6OmZlSW1hZ2VUYWdTdHJpbmcsIFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0clN0
cmluZywgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbywgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2Vy
dmVBc3BlY3RSYXRpbykKIApAQCAtNTksNyArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUltYWdlRWxlbWVudCwg
U1ZHVVJJUmVmZXJlbmNlSWRlbnRpZmllciwgWExpbmtOYW1lczo6aHJlZkF0dHJTdHJpbmcsIFN0
cmluZywgSHJlZiwgaHJlZikKIAogICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwK
KyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFSW1hZ2VFbGVtZW50
LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQp
CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJD
b3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw5ICszOSw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBMaWdodFNvdXJjZSogbGln
aHRTb3VyY2UoKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0
dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsKIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmly
dHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRo
aXM7IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdGRUxpZ2h0RWxlbWVudCwgU1ZHRkVMaWdodEVsZW1lbnRJZGVudGlmaWVyLCBTVkdO
YW1lczo6YXppbXV0aEF0dHJTdHJpbmcsIGZsb2F0LCBBemltdXRoLCBhemltdXRoKQogICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVMaWdodEVsZW1lbnQsIFNWR0ZF
TGlnaHRFbGVtZW50SWRlbnRpZmllciwgU1ZHTmFtZXM6OmVsZXZhdGlvbkF0dHJTdHJpbmcsIGZs
b2F0LCBFbGV2YXRpb24sIGVsZXZhdGlvbikKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VO
b2RlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oCShyZXZpc2lvbiA0OTQyOCkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAot
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCkBAIC0zNiw5ICszNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7
CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KICAgICBwcml2YXRlOgogICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVNZXJnZU5vZGVFbGVtZW50
LCBTVkdOYW1lczo6ZmVNZXJnZU5vZGVUYWdTdHJpbmcsIFNWR05hbWVzOjppbkF0dHJTdHJpbmcs
IFN0cmluZywgSW4xLCBpbjEpCiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZpbHRlckVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgJKHJl
dmlzaW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zLDggKzMsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICAgIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwg
V2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC01MSw5ICs0
OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFw
cGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBwcm90
ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQo
KSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KICAgICBwcml2YXRlOgogICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRmlsdGVyRWxlbWVudCwgU1ZHTmFtZXM6OmZpbHRl
clRhZ1N0cmluZywgU1ZHTmFtZXM6OmZpbHRlclVuaXRzQXR0clN0cmluZywgaW50LCBGaWx0ZXJV
bml0cywgZmlsdGVyVW5pdHMpCiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdGaWx0ZXJFbGVtZW50LCBTVkdOYW1lczo6ZmlsdGVyVGFnU3RyaW5nLCBTVkdOYW1lczo6
cHJpbWl0aXZlVW5pdHNBdHRyU3RyaW5nLCBpbnQsIFByaW1pdGl2ZVVuaXRzLCBwcmltaXRpdmVV
bml0cykKQEAgLTY4LDcgKzYzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRmlsdGVyRWxlbWVudCwgU1ZHVVJJUmVmZXJl
bmNlSWRlbnRpZmllciwgWExpbmtOYW1lczo6aHJlZkF0dHJTdHJpbmcsIFN0cmluZywgSHJlZiwg
aHJlZikKIAogICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlckVsZW1lbnQsIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyU3RyaW5n
LCBib29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKIApJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgJ
KHJldmlzaW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw2IEBACiAgICAgQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVy
bWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVp
cyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9q
ZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTUwLDcgKzQ4LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgZnJpZW5kIGNsYXNzIFNWR1Jl
c291cmNlRmlsdGVyOwogICAgICAgICB2b2lkIHNldFN0YW5kYXJkQXR0cmlidXRlcyhTVkdSZXNv
dXJjZUZpbHRlciosIEZpbHRlckVmZmVjdCopIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIGNvbnN0
IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcywgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzSWRlbnRpZmllciwgU1ZHTmFtZXM6OnhBdHRyU3RyaW5nLCBTVkdMZW5ndGgs
IFgsIHgpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAJKHJldmlzaW9uIDQ5NDI4KQorKysg
V2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsy
LDYgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJt
YW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtMjUs
NiArMjMsNyBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94Lmgi
CiAKKyNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKICNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKQEAgLTQ2LDkgKzQ1LDgg
QEAgU1ZHRml0VG9WaWV3Qm94Ojp+U1ZHRml0VG9WaWV3Qm94KCkKIHsKIH0KIAotYm9vbCBTVkdG
aXRUb1ZpZXdCb3g6OnBhcnNlVmlld0JveChjb25zdCBVQ2hhciomIGMsIGNvbnN0IFVDaGFyKiBl
bmQsIGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQmIHcsIGZsb2F0JiBoLCBib29sIHZhbGlkYXRl
KQorYm9vbCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlVmlld0JveChEb2N1bWVudCogZG9jLCBjb25z
dCBVQ2hhciomIGMsIGNvbnN0IFVDaGFyKiBlbmQsIGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQm
IHcsIGZsb2F0JiBoLCBib29sIHZhbGlkYXRlKQogewotICAgIERvY3VtZW50KiBkb2MgPSBjb250
ZXh0RWxlbWVudCgpLT5kb2N1bWVudCgpOwogICAgIFN0cmluZyBzdHIoYywgZW5kIC0gYyk7CiAK
ICAgICBza2lwT3B0aW9uYWxTcGFjZXMoYywgZW5kKTsKQEAgLTg4LDEzICs4NiwxMyBAQCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBTVkdGaXRUb1ZpZXdCb3g6OnZpCiAgICAgcmV0dXJuIHByZXNlcnZl
QXNwZWN0UmF0aW8tPmdldENUTSh2aWV3Qm94UmVjdC54KCksIHZpZXdCb3hSZWN0LnkoKSwgdmll
d0JveFJlY3Qud2lkdGgoKSwgdmlld0JveFJlY3QuaGVpZ2h0KCksIDAsIDAsIHZpZXdXaWR0aCwg
dmlld0hlaWdodCk7CiB9CiAKLWJvb2wgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0dHJp
YnV0ZShNYXBwZWRBdHRyaWJ1dGUqIGF0dHIpCitib29sIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoRG9jdW1lbnQqIGRvY3VtZW50LCBNYXBwZWRBdHRyaWJ1dGUqIGF0dHIp
CiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6dmlld0JveEF0dHIpIHsKICAg
ICAgICAgZmxvYXQgeCA9IDAuMGYsIHkgPSAwLjBmLCB3ID0gMC4wZiwgaCA9IDAuMGY7CiAgICAg
ICAgIGNvbnN0IFVDaGFyKiBjID0gYXR0ci0+dmFsdWUoKS5jaGFyYWN0ZXJzKCk7CiAgICAgICAg
IGNvbnN0IFVDaGFyKiBlbmQgPSBjICsgYXR0ci0+dmFsdWUoKS5sZW5ndGgoKTsKLSAgICAgICAg
aWYgKHBhcnNlVmlld0JveChjLCBlbmQsIHgsIHksIHcsIGgpKQorICAgICAgICBpZiAocGFyc2VW
aWV3Qm94KGRvY3VtZW50LCBjLCBlbmQsIHgsIHksIHcsIGgpKQogICAgICAgICAgICAgc2V0Vmll
d0JveEJhc2VWYWx1ZShGbG9hdFJlY3QoeCwgeSwgdywgaCkpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6cHJlc2VydmVBc3Bl
Y3RSYXRpb0F0dHIpIHsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oCShyZXZpc2lvbiA0OTQyOCkK
KysrIFdlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDgg
KzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1l
cm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC0z
OCwxNCArMzYsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTVkdGaXRUb1ZpZXdC
b3goKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRml0VG9WaWV3Qm94KCk7CiAKLSAgICAgICAgYm9v
bCBwYXJzZVZpZXdCb3goY29uc3QgVUNoYXIqJiBzdGFydCwgY29uc3QgVUNoYXIqIGVuZCwgZmxv
YXQmIHgsIGZsb2F0JiB5LCBmbG9hdCYgdywgZmxvYXQmIGgsIGJvb2wgdmFsaWRhdGUgPSB0cnVl
KTsKKyAgICAgICAgYm9vbCBwYXJzZVZpZXdCb3goRG9jdW1lbnQqLCBjb25zdCBVQ2hhciomIHN0
YXJ0LCBjb25zdCBVQ2hhciogZW5kLCBmbG9hdCYgeCwgZmxvYXQmIHksIGZsb2F0JiB3LCBmbG9h
dCYgaCwgYm9vbCB2YWxpZGF0ZSA9IHRydWUpOwogICAgICAgICBzdGF0aWMgVHJhbnNmb3JtYXRp
b25NYXRyaXggdmlld0JveFRvVmlld1RyYW5zZm9ybShjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3hS
ZWN0LCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKiwgZmxvYXQgdmlld1dpZHRoLCBmbG9hdCB2aWV3
SGVpZ2h0KTsKIAotICAgICAgICBib29sIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJp
YnV0ZSopOworICAgICAgICBib29sIHBhcnNlTWFwcGVkQXR0cmlidXRlKERvY3VtZW50KiwgTWFw
cGVkQXR0cmlidXRlKik7CiAgICAgICAgIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJik7CiAKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCgpIGNvbnN0ID0gMDsKLQogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCBT
VkdBbmltYXRlZFR5cGVWYWx1ZTxGbG9hdFJlY3Q+OjpEZWNvcmF0ZWRUeXBlIHZpZXdCb3hCYXNl
VmFsdWUoKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3Qm94QmFzZVZh
bHVlKFNWR0FuaW1hdGVkVHlwZVZhbHVlPEZsb2F0UmVjdD46OkRlY29yYXRlZFR5cGUgdHlwZSkg
PSAwOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCShyZXZpc2lvbiA0OTQyOCkKKysrIFdlYkNvcmUv
c3ZnL1NWR0ZvbnRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDE1ICs0NywxMiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgU1ZHTWlzc2luZ0dseXBoRWxlbWVudCogZmly
c3RNaXNzaW5nR2x5cGhFbGVtZW50KCkgY29uc3Q7CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAg
IHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biB0aGlzOyB9Ci0KKyAgICBwcml2YXRlOgogICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRp
ZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZvbnRFbGVt
ZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQpCiAKLSAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGVuc3VyZUdseXBoQ2FjaGUoKSBjb25z
dDsKIAogICAgICAgICB0eXBlZGVmIFZlY3RvcjxTVkdIb3Jpem9udGFsS2VybmluZ1BhaXI+IEtl
cm5pbmdQYWlyVmVjdG9yOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5o
CShyZXZpc2lvbiA0OTQyOCkKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw2IEBACiAvKgogICAgIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IFdlYktpdCBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTQ4LDkgKzQ2
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoTm9kZSopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSogc3R5bGUpOwogCi0g
ICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBT
VkdOYW1lczo6Zm9yZWlnbk9iamVjdFRhZ1N0cmluZywgU1ZHTmFtZXM6OnhBdHRyU3RyaW5nLCBT
VkdMZW5ndGgsIFgsIHgpCiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdGb3JlaWduT2JqZWN0RWxlbWVudCwgU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWdTdHJpbmcs
IFNWR05hbWVzOjp5QXR0clN0cmluZywgU1ZHTGVuZ3RoLCBZLCB5KQpAQCAtNjEsNyArNTYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdGb3JlaWduT2JqZWN0RWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlSWRlbnRpZmllciwg
WExpbmtOYW1lczo6aHJlZkF0dHJTdHJpbmcsIFN0cmluZywgSHJlZiwgaHJlZikKIAogICAgICAg
ICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAgICAgfTsKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR0dFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHR0VsZW1l
bnQuaAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg
MjAwNywgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAot
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCkBAIC00NywxNSArNDUsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSos
IFJlbmRlclN0eWxlKik7CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3Qg
U1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KKyAg
ICBwcml2YXRlOgogICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0dFbGVtZW50LCBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywg
Ym9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAKLSAgICBwcml2YXRl
OgogICAgICAgICBmcmllbmQgY2xhc3MgU1ZHVXNlRWxlbWVudDsKICAgICAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggbG9jYWxNYXRyaXgoKSBjb25zdDsKICAgICB9OwpJbmRleDogV2ViQ29yZS9z
dmcvU1ZHR3JhZGllbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHR3Jh
ZGllbnRFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHR3JhZGll
bnRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw2IEBACiAgICAgQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFu
bkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0
Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTYwLDggKzU4LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBWZWN0b3I8U1ZHR3JhZGllbnRTdG9wPiBidWlsZFN0b3BzKCkg
Y29uc3Q7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR1BhaW50U2VydmVyR3JhZGllbnQ+IG1f
cmVzb3VyY2U7CiAgCi0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVs
ZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdHcmFkaWVudEVsZW1lbnQsIFNWR0dy
YWRpZW50RWxlbWVudElkZW50aWZpZXIsIFNWR05hbWVzOjpzcHJlYWRNZXRob2RBdHRyU3RyaW5n
LCBpbnQsIFNwcmVhZE1ldGhvZCwgc3ByZWFkTWV0aG9kKQogICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHR3JhZGllbnRFbGVtZW50LCBTVkdHcmFkaWVudEVsZW1lbnRJ
ZGVudGlmaWVyLCBTVkdOYW1lczo6Z3JhZGllbnRVbml0c0F0dHJTdHJpbmcsIGludCwgR3JhZGll
bnRVbml0cywgZ3JhZGllbnRVbml0cykKQEAgLTcxLDcgKzY3LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHR3JhZGllbnRF
bGVtZW50LCBTVkdVUklSZWZlcmVuY2VJZGVudGlmaWVyLCBYTGlua05hbWVzOjpocmVmQXR0clN0
cmluZywgU3RyaW5nLCBIcmVmLCBocmVmKQogCiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVu
dGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHR3JhZGll
bnRFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQpCiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCShyZXZpc2lvbiA0OTQy
OCkKKysrIFdlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
LDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBOaWtv
bGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIw
MDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBA
IC02MSw3ICs1OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKTsKICAgICAgICAg
dmlydHVhbCBib29sIGhhc1JlbGF0aXZlVmFsdWVzKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwg
Y29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9
CiAKICAgICBwcml2YXRlOgogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHSW1hZ2VFbGVtZW50LCBTVkdOYW1lczo6aW1hZ2VUYWdTdHJpbmcsIFNWR05hbWVzOjp4QXR0
clN0cmluZywgU1ZHTGVuZ3RoLCBYLCB4KQpAQCAtNzQsNyArNzEsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdJbWFnZUVs
ZW1lbnQsIFNWR1VSSVJlZmVyZW5jZUlkZW50aWZpZXIsIFhMaW5rTmFtZXM6OmhyZWZBdHRyU3Ry
aW5nLCBTdHJpbmcsIEhyZWYsIGhyZWYpCiAKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50
aWZpZXIsCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdJbWFnZUVs
ZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCkKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCShyZXZpc2lvbiA0OTQyOCkKKysrIFdlYkNv
cmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw2IEBACiAg
ICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmltbWVybWFu
biA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAw
NiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IEtERSBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTUxLDcgKzQ5LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNYXJr
ZXJzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICB2
aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
dGhpczsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVWYWx1ZXMoKSBjb25zdDsK
IAogICAgIHByaXZhdGU6CkBAIC02MSw3ICs1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0xpbmVFbGVtZW50LCBTVkdO
YW1lczo6bGluZVRhZ1N0cmluZywgU1ZHTmFtZXM6OnkyQXR0clN0cmluZywgU1ZHTGVuZ3RoLCBZ
MiwgeTIpCiAKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMaW5lRWxlbWVudCwgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcs
IGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogICAgIH07CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdNUGF0aEVsZW1lbnQuaAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdN
UGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMSwyNiBAQAogLyoKLSBDb3B5
cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAKLSBUaGlzIGZp
bGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IHByb2plY3QKLSAKLSBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gCi0gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotIAotIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
Ki8KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4K
KworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisq
LwogCiAjaWZuZGVmIFNWR01QYXRoRWxlbWVudF9oCiAjZGVmaW5lIFNWR01QYXRoRWxlbWVudF9o
Ci0jaWYgRU5BQkxFKFNWRykKIAorI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHVVJJUmVm
ZXJlbmNlLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogCkBA
IC00MSwxNCArMzksMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAKICAgICAgICAg
U1ZHUGF0aEVsZW1lbnQqIHBhdGhFbGVtZW50KCk7CiAgICAgICAgIAotICAgIHByb3RlY3RlZDoK
LSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIHRoaXM7IH0KLQorICAgIHByaXZhdGU6CiAgICAgICAgIC8vIFNWR1VSSVJlZmVy
ZW5jZQogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTVBhdGhFbGVt
ZW50LCBTVkdVUklSZWZlcmVuY2VJZGVudGlmaWVyLCBYTGlua05hbWVzOjpocmVmQXR0clN0cmlu
ZywgU3RyaW5nLCBIcmVmLCBocmVmKQogCiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlm
aWVyLAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTVBhdGhFbGVt
ZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQpCiAgICAgfTsKQEAgLTU3LDUgKzUzLDMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjZW5k
aWYgLy8gRU5BQkxFKFNWRykKICNlbmRpZiAvLyBTVkdNUGF0aEVsZW1lbnRfaAotCi0vLyB2aW06
dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkocmV2aXNpb24gNDk0Mjgp
CisrKyBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTAyLDcgKzEwMiw3IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWIK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBpZiAoU1ZHRml0VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkK
KyAgICAgICAgaWYgKFNWR0ZpdFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoZG9jdW1l
bnQoKSwgYXR0cikpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgU1ZHU3R5bGVkRWxl
bWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cik7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdN
YXJrZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVu
dC5oCShyZXZpc2lvbiA0OTQyOCkKKysrIFdlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNzAsOSArNzAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJl
bmRlclN0eWxlKik7CiAgICAgICAgIHZpcnR1YWwgU1ZHUmVzb3VyY2UqIGNhbnZhc1Jlc291cmNl
KCk7CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KICAgICBwcml2YXRlOgog
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFya2VyRWxlbWVudCwg
U1ZHTmFtZXM6Om1hcmtlclRhZ1N0cmluZywgU1ZHTmFtZXM6OnJlZlhBdHRyU3RyaW5nLCBTVkdM
ZW5ndGgsIFJlZlgsIHJlZlgpCiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdNYXJrZXJFbGVtZW50LCBTVkdOYW1lczo6bWFya2VyVGFnU3RyaW5nLCBTVkdOYW1lczo6
cmVmWUF0dHJTdHJpbmcsIFNWR0xlbmd0aCwgUmVmWSwgcmVmWSkKQEAgLTgzLDEzICs4MCwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdNYXJrZXJFbGVtZW50LCBTVkdOYW1lczo6bWFya2VyVGFnU3RyaW5nLCBTVkdPcmll
bnRBbmdsZUF0dHJJZGVudGlmaWVyLCBTVkdBbmdsZSwgT3JpZW50QW5nbGUsIG9yaWVudEFuZ2xl
KQogCiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQs
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFya2VyRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJv
b2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogCiAgICAgICAgIC8vIFNW
R0ZpdFRvVmlld0JveAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
Rml0VG9WaWV3Qm94LCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlmaWVyLCBTVkdOYW1lczo6dmlld0Jv
eEF0dHJTdHJpbmcsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKLSAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpdFRvVmlld0JveCwgU1ZHRml0VG9WaWV3Qm94
SWRlbnRpZmllciwgU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyU3RyaW5nLCBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJh
dGlvKQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFya2VyRWxl
bWVudCwgU1ZHRml0VG9WaWV3Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6OnZpZXdCb3hBdHRyU3Ry
aW5nLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXJrZXJFbGVtZW50LCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlm
aWVyLCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHJTdHJpbmcsIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCiAg
CiAgICAgICAgIFJlZlB0cjxTVkdSZXNvdXJjZU1hcmtlcj4gbV9tYXJrZXI7CiAgICAgfTsKSW5k
ZXg6IFdlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHTWFza0VsZW1lbnQuaAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdN
YXNrRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogLyoKICAgICBDb3B5
cmlnaHQgKEMpIDIwMDUgQWxleGFuZGVyIEtlbGxldHQgPGx5cGFub3ZAa2RlLm9yZz4KIAotICAg
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCkBAIC01NCw5ICs1Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBkcmF3TWFza2VyQ29udGVudChjb25zdCBGbG9hdFJl
Y3QmIHRhcmdldFJlY3QsIEZsb2F0UmVjdCYgbWFza1JlY3QpIGNvbnN0OwogCi0gICAgcHJvdGVj
dGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR01hc2tFbGVtZW50LCBTVkdOYW1lczo6bWFza1RhZ1N0
cmluZywgU1ZHTmFtZXM6Om1hc2tVbml0c0F0dHJTdHJpbmcsIGludCwgTWFza1VuaXRzLCBtYXNr
VW5pdHMpCiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXNrRWxl
bWVudCwgU1ZHTmFtZXM6Om1hc2tUYWdTdHJpbmcsIFNWR05hbWVzOjptYXNrQ29udGVudFVuaXRz
QXR0clN0cmluZywgaW50LCBNYXNrQ29udGVudFVuaXRzLCBtYXNrQ29udGVudFVuaXRzKQpAQCAt
NjksNyArNjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXNrRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlSWRlbnRpZmll
ciwgWExpbmtOYW1lczo6aHJlZkF0dHJTdHJpbmcsIFN0cmluZywgSHJlZiwgaHJlZikKIAogICAg
ICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR01hc2tFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNW
R05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAko
cmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAg
ICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
IAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCkBAIC05OSwxNiArOTcsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c01hcmtlcnMoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KICAgICBwcml2YXRl
OgogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdQYXRoU2VnTGlzdD4gbV9wYXRoU2VnTGlzdDsK
IAogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUGF0aEVsZW1lbnQs
IFNWR05hbWVzOjpwYXRoVGFnU3RyaW5nLCBTVkdOYW1lczo6cGF0aExlbmd0aEF0dHJTdHJpbmcs
IGZsb2F0LCBQYXRoTGVuZ3RoLCBwYXRoTGVuZ3RoKQogCiAgICAgICAgIC8vIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
UGF0aEVsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCkKICAgICB9OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAkocmV2
aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgaWYgKFNWR0ZpdFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoYXR0cikpCisgICAgICAgIGlmIChTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlTWFwcGVkQXR0
cmlidXRlKGRvY3VtZW50KCksIGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IFNWR1N0eWxlZEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwpJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdQYXR0ZXJuRWxlbWVudC5oCShyZXZpc2lvbiA0OTQyOCkKKysrIFdlYkNvcmUvc3ZnL1NWR1Bh
dHRlcm5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw2IEBACiAgICAgQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVy
bWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBS
b2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtE
RSBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTU4LDkgKzU2LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgICAgICB2aXJ0dWFsIFNW
R1Jlc291cmNlKiBjYW52YXNSZXNvdXJjZSgpOwogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2
aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
dGhpczsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR1BhdHRlcm5FbGVtZW50LCBTVkdOYW1lczo6cGF0dGVyblRhZ1N0cmluZywgU1ZH
TmFtZXM6OnhBdHRyU3RyaW5nLCBTVkdMZW5ndGgsIFgsIHgpCiAgICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdQYXR0ZXJuRWxlbWVudCwgU1ZHTmFtZXM6OnBhdHRlcm5U
YWdTdHJpbmcsIFNWR05hbWVzOjp5QXR0clN0cmluZywgU1ZHTGVuZ3RoLCBZLCB5KQpAQCAtNzQs
MTMgKzY5LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR1BhdHRlcm5FbGVtZW50LCBTVkdVUklSZWZlcmVuY2VJZGVudGlm
aWVyLCBYTGlua05hbWVzOjpocmVmQXR0clN0cmluZywgU3RyaW5nLCBIcmVmLCBocmVmKQogCiAg
ICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHUGF0dGVybkVsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWRJZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKIAotICAgICAgICAvLyBTVkdGaXRU
b1ZpZXdCb3gKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpdFRv
Vmlld0JveCwgU1ZHRml0VG9WaWV3Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6OnZpZXdCb3hBdHRy
U3RyaW5nLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCi0gICAgICAgIEFOSU1BVEVEX1BS
T1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaXRUb1ZpZXdCb3gsIFNWR0ZpdFRvVmlld0JveElkZW50
aWZpZXIsIFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0clN0cmluZywgU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbywgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykK
KyAgICAgICAgLy8gU1ZHUGF0dGVybkVsZW1lbnQKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR1BhdHRlcm5FbGVtZW50LCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlmaWVy
LCBTVkdOYW1lczo6dmlld0JveEF0dHJTdHJpbmcsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0Jv
eCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1BhdHRlcm5FbGVt
ZW50LCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlmaWVyLCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RS
YXRpb0F0dHJTdHJpbmcsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0
aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCiAgCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR1Bh
aW50U2VydmVyUGF0dGVybj4gbV9yZXNvdXJjZTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHUG9s
eUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNw
cAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lkIFNWR1BvbHlFbGVtZW50Ojp1cGRh
dGVBbmltYXRlZFNWR0F0CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnBvaW50c0F0dHIubG9j
YWxOYW1lKCkpIHsKICAgICAgICAgbV9zeW5jaHJvbml6aW5nU1ZHQXR0cmlidXRlcyA9IHRydWU7
CiAKLSAgICAgICAgc3luY2hyb25pemVQcm9wZXJ0eTxTVkdQb2x5RWxlbWVudCwgU1ZHUG9pbnRM
aXN0Kj4odGhpcywgU1ZHTmFtZXM6OnBvaW50c0F0dHIsIG1fcG9pbnRzLmdldCgpKTsKKyAgICAg
ICAgUHJvcGVydHlTeW5jaHJvbml6ZXI8U1ZHUG9seUVsZW1lbnQsIFNWR1BvaW50TGlzdCosIHRy
dWU+OjpzeW5jaHJvbml6ZSh0aGlzLCBTVkdOYW1lczo6cG9pbnRzQXR0ciwgbV9wb2ludHMuZ2V0
KCkpOwogICAgICAgICBzZXRTeW5jaHJvbml6ZWRTVkdBdHRyaWJ1dGVzKHRydWUpOwogICAgICAg
ICBtX3N5bmNocm9uaXppbmdTVkdBdHRyaWJ1dGVzID0gZmFsc2U7CiAgICAgICAgIHJldHVybjsK
SW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9T
VkdQb2x5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1l
cm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBL
REUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC01NCwxNSArNTIsMTIg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmlt
YXRlZFNWR0F0dHJpYnV0ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKIAotICAgIHByb3RlY3RlZDoK
LSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIHRoaXM7IH0KLQorICAgIHByaXZhdGU6CiAgICAgICAgIC8vIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
UG9seUVsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZCkKIAotICAgIHByaXZhdGU6CiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNWR1Bv
aW50TGlzdD4gbV9wb2ludHM7CiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCShyZXZp
c2lvbiA0OTQyOCkKKysrIFdlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTIsOCArMiw2IEBACiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAg
ICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhp
cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAg
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKQEAgLTQ3LDcgKzQ1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0
dWFsIFBhdGggdG9QYXRoRGF0YSgpIGNvbnN0OwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICB2
aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
dGhpczsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVWYWx1ZXMoKSBjb25zdDsK
IAogICAgIHByaXZhdGU6CkBAIC01OSw3ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1JlY3RFbGVtZW50LCBTVkdO
YW1lczo6cmVjdFRhZ1N0cmluZywgU1ZHTmFtZXM6OnJ5QXR0clN0cmluZywgU1ZHTGVuZ3RoLCBS
eSwgcnkpCiAKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSZWN0RWxlbWVudCwgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcs
IGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogICAgIH07CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgU1ZH
U1ZHRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoU1ZHRml0VG9WaWV3
Qm94OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKKyAgICAgICAgaWYgKFNWR0ZpdFRvVmll
d0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoZG9jdW1lbnQoKSwgYXR0cikpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIGlmIChTVkdab29tQW5kUGFuOjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NWR0Vs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHJldmlz
aW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiBOaWtv
bGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMg
ZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCkBAIC0xMzMsOCArMTMxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IGluaGVyaXRWaWV3QXR0cmlidXRlcyhTVkdWaWV3RWxlbWVudCopOwogCiAgICAgcHJvdGVjdGVk
OgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgICAgIGZyaWVuZCBjbGFzcyBSZW5kZXJTVkdSb290
OwogICAgICAgICBmcmllbmQgY2xhc3MgUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXI7CiAKQEAg
LTE0OSwxMyArMTQ1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1NWR0VsZW1lbnQsIFNWR05hbWVzOjpzdmdUYWdTdHJp
bmcsIFNWR05hbWVzOjpoZWlnaHRBdHRyU3RyaW5nLCBTVkdMZW5ndGgsIEhlaWdodCwgaGVpZ2h0
KQogCiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQs
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHU1ZHRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2ws
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogCiAgICAgICAgIC8vIFNWR0Zp
dFRvVmlld0JveAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRml0
VG9WaWV3Qm94LCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlmaWVyLCBTVkdOYW1lczo6dmlld0JveEF0
dHJTdHJpbmcsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKLSAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpdFRvVmlld0JveCwgU1ZHRml0VG9WaWV3Qm94SWRl
bnRpZmllciwgU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyU3RyaW5nLCBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlv
KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHU1ZHRWxlbWVudCwg
U1ZHRml0VG9WaWV3Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6OnZpZXdCb3hBdHRyU3RyaW5nLCBG
bG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdTVkdFbGVtZW50LCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlmaWVyLCBTVkdO
YW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHJTdHJpbmcsIFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCiAgCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBkb2N1bWVudFdpbGxCZWNvbWVJbmFjdGl2ZSgpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZG9jdW1lbnREaWRCZWNvbWVBY3RpdmUoKTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmgJKHJldmlzaW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAg
ICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAot
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCkBAIC02MCw3ICs1OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCBib29sIHNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogICAgICAgICB2
aXJ0dWFsIGJvb2wgaGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2VzKCk7CiAKICAgICAgICAgdmly
dHVhbCBTdHJpbmcgc291cmNlQXR0cmlidXRlVmFsdWUoKSBjb25zdDsKQEAgLTc3LDcgKzc0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHU2NyaXB0RWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlSWRlbnRpZmllciwgWExpbmtO
YW1lczo6aHJlZkF0dHJTdHJpbmcsIFN0cmluZywgSHJlZiwgaHJlZikKIAogICAgICAgICAvLyBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR1NjcmlwdEVsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVu
dGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTmFtZXM6
OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAkocmV2
aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsOSArMSw3IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAg
ICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKLSAg
ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgpAQCAtMjIsOCArMjAsOCBAQAogCiAjaWZuZGVmIFNWR1N3aXRjaEVsZW1lbnRf
aAogI2RlZmluZSBTVkdTd2l0Y2hFbGVtZW50X2gKLSNpZiBFTkFCTEUoU1ZHKQogCisjaWYgRU5B
QkxFKFNWRykKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgiCiAjaW5j
bHVkZSAiU1ZHTGFuZ1NwYWNlLmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQuaCIKQEAgLTQ0LDEyICs0Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5k
ZXJTdHlsZSopOwogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJp
dmF0ZToKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdTd2l0Y2hFbGVtZW50LCBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywg
Ym9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAgICAgfTsKQEAgLTU4
LDUgKzUzLDMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykK
ICNlbmRpZgotCi0vLyB2aW06dHM9NDpub2V0CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTeW1ib2xF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNw
cAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCB2b2lkIFNWR1N5bWJvbEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmliCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAgIHJldHVy
bjsKLSAgICBpZiAoU1ZHRml0VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkK
KyAgICBpZiAoU1ZHRml0VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShkb2N1bWVudCgp
LCBhdHRyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgU1ZHU3R5bGVkRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoYXR0cik7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCShyZXZpc2lv
biA0OTQyOCkKKysrIFdlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw5ICsxLDcgQEAKIC8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29s
YXMgWmltbWVybWFubiA8d2lsZGZveEBrZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRo
aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAg
ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCkBAIC0yMiw4ICsyMCw4IEBACiAKICNpZm5kZWYgU1ZHU3ltYm9sRWxlbWVudF9oCiAj
ZGVmaW5lIFNWR1N5bWJvbEVsZW1lbnRfaAotI2lmIEVOQUJMRShTVkcpCiAKKyNpZiBFTkFCTEUo
U1ZHKQogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRl
ICJTVkdGaXRUb1ZpZXdCb3guaCIKICNpbmNsdWRlICJTVkdMYW5nU3BhY2UuaCIKQEAgLTQ0LDE4
ICs0MiwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9v
bCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKikgeyByZXR1cm4gZmFsc2U7IH0KIAotICAg
IHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAgIC8v
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHU3ltYm9sRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElk
ZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdOYW1l
czo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBl
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogIAogICAgICAgICAvLyBTVkdGaXRUb1ZpZXdCb3gK
LSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpdFRvVmlld0JveCwg
U1ZHRml0VG9WaWV3Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6OnZpZXdCb3hBdHRyU3RyaW5nLCBG
bG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdGaXRUb1ZpZXdCb3gsIFNWR0ZpdFRvVmlld0JveElkZW50aWZpZXIsIFNW
R05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0clN0cmluZywgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpbywgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykgCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdTeW1ib2xFbGVtZW50LCBTVkdGaXRU
b1ZpZXdCb3hJZGVudGlmaWVyLCBTVkdOYW1lczo6dmlld0JveEF0dHJTdHJpbmcsIEZsb2F0UmVj
dCwgVmlld0JveCwgdmlld0JveCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR1N5bWJvbEVsZW1lbnQsIFNWR0ZpdFRvVmlld0JveElkZW50aWZpZXIsIFNWR05hbWVz
OjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0clN0cmluZywgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbywg
UHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykgCiAgICAgfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCShyZXZpc2lvbiA0OTQy
OCkKKysrIFdlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIs
OCArMiw2IEBACiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAw
NSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIEtERSBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTQwLDkg
KzM4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgICAgICBi
b29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoTm9kZSopIGNvbnN0OwogCi0gICAgcHJvdGVj
dGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCB1cGRh
dGVSZWZlcmVuY2VkVGV4dCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQu
aAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAg
ICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNjYsMTUgKzY0LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNv
bnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1RleHRDb250ZW50RWxlbWVu
dCwgU1ZHVGV4dENvbnRlbnRFbGVtZW50SWRlbnRpZmllciwgU1ZHTmFtZXM6OnRleHRMZW5ndGhB
dHRyU3RyaW5nLCBTVkdMZW5ndGgsIFRleHRMZW5ndGgsIHRleHRMZW5ndGgpCiAgICAgICAgIEFO
SU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdUZXh0Q29udGVudEVsZW1lbnQsIFNWR1Rl
eHRDb250ZW50RWxlbWVudElkZW50aWZpZXIsIFNWR05hbWVzOjpsZW5ndGhBZGp1c3RBdHRyU3Ry
aW5nLCBpbnQsIExlbmd0aEFkanVzdCwgbGVuZ3RoQWRqdXN0KQogCiAgICAgICAgIC8vIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHVGV4dENvbnRlbnRFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRl
bnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVz
OjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpIAogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdU
ZXh0UGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVs
ZW1lbnQuaAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDYgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChD
KSAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogCi0gICAgVGhp
cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAg
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKQEAgLTY0LDkgKzYyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJv
b2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Q7CiAKLSAgICBwcm90ZWN0
ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiB0aGlzOyB9Ci0KICAgICBwcml2YXRlOgogICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVGV4dFBhdGhFbGVtZW50LCBTVkdOYW1lczo6dGV4dFBh
dGhUYWdTdHJpbmcsIFNWR05hbWVzOjpzdGFydE9mZnNldEF0dHJTdHJpbmcsIFNWR0xlbmd0aCwg
U3RhcnRPZmZzZXQsIHN0YXJ0T2Zmc2V0KQogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHVGV4dFBhdGhFbGVtZW50LCBTVkdOYW1lczo6dGV4dFBhdGhUYWdTdHJpbmcs
IFNWR05hbWVzOjptZXRob2RBdHRyU3RyaW5nLCBpbnQsIE1ldGhvZCwgbWV0aG9kKQpJbmRleDog
V2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuaAkocmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdVc2VFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw2IEBACiAgICAgQ29weXJpZ2h0IChDKSAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFu
bkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBSb2Ig
QnVpcyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTY4LDkgKzY2LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgdm9pZCByZW1vdmVEaXNhbGxvd2VkRWxl
bWVudHNGcm9tU3VidHJlZShOb2RlKiBlbGVtZW50KTsKICAgICAgICAgU1ZHRWxlbWVudEluc3Rh
bmNlKiBpbnN0YW5jZUZvclNoYWRvd1RyZWVFbGVtZW50KE5vZGUqIGVsZW1lbnQpIGNvbnN0Owog
Ci0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1VzZUVsZW1lbnQsIFNWR05hbWVz
Ojp1c2VUYWdTdHJpbmcsIFNWR05hbWVzOjp4QXR0clN0cmluZywgU1ZHTGVuZ3RoLCBYLCB4KQog
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVXNlRWxlbWVudCwgU1ZH
TmFtZXM6OnVzZVRhZ1N0cmluZywgU1ZHTmFtZXM6OnlBdHRyU3RyaW5nLCBTVkdMZW5ndGgsIFks
IHkpCkBAIC04MSw3ICs3Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1VzZUVsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZUlk
ZW50aWZpZXIsIFhMaW5rTmFtZXM6OmhyZWZBdHRyU3RyaW5nLCBTdHJpbmcsIEhyZWYsIGhyZWYp
CiAKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdVc2VFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAKSW5kZXg6IFdlYkNvcmUvc3Zn
L1NWR1ZpZXdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdWaWV3RWxl
bWVudC5jcHAJKHJldmlzaW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgU1ZHVmlld0VsZW1lbnQ6
OnBhcnNlTWFwcGVkQXR0cmlidXQKICAgICAgICAgdmlld1RhcmdldCgpLT5yZXNldChhdHRyLT52
YWx1ZSgpKTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpCi0gICAgICAgICAgIHx8IFNWR0ZpdFRv
Vmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikKKyAgICAgICAgICAgfHwgU1ZHRml0
VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShkb2N1bWVudCgpLCBhdHRyKQogICAgICAg
ICAgICB8fCBTVkdab29tQW5kUGFuOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAg
ICAgICAgIHJldHVybjsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCShyZXZpc2lvbiA0OTQyOCkK
KysrIFdlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsOCAr
Miw2IEBACiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4IE5pa29sYXMgWmltbWVy
bWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwg
MjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEtERSBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTQ2LDE4ICs0
NCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgcHJvdGVj
dGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgLy8gU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJB
VElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdWaWV3RWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkKQogIAogICAgICAgICAvLyBTVkdGaXRUb1ZpZXdCb3gKLSAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpdFRvVmlld0JveCwgU1ZHRml0VG9W
aWV3Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6OnZpZXdCb3hBdHRyU3RyaW5nLCBGbG9hdFJlY3Qs
IFZpZXdCb3gsIHZpZXdCb3gpCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdGaXRUb1ZpZXdCb3gsIFNWR0ZpdFRvVmlld0JveElkZW50aWZpZXIsIFNWR05hbWVzOjpw
cmVzZXJ2ZUFzcGVjdFJhdGlvQXR0clN0cmluZywgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbywgUHJl
c2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykKKyAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1ZpZXdFbGVtZW50LCBTVkdGaXRUb1ZpZXdCb3hJZGVu
dGlmaWVyLCBTVkdOYW1lczo6dmlld0JveEF0dHJTdHJpbmcsIEZsb2F0UmVjdCwgVmlld0JveCwg
dmlld0JveCkKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1ZpZXdF
bGVtZW50LCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlmaWVyLCBTVkdOYW1lczo6cHJlc2VydmVBc3Bl
Y3RSYXRpb0F0dHJTdHJpbmcsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0
UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCiAgCiAgICAgICAgIG11dGFibGUgUmVmUHRyPFNW
R1N0cmluZ0xpc3Q+IG1fdmlld1RhcmdldDsKICAgICB9OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZH
Vmlld1NwZWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAko
cmV2aXNpb24gNDk0MjgpCisrKyBXZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsOCArMSw2IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNyBSb2IgQnVp
cyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9q
ZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTU3LDcgKzU1LDcgQEAgdm9pZCBT
VkdWaWV3U3BlYzo6c2V0Vmlld0JveFN0cmluZyhjb25zdAogICAgIGZsb2F0IHgsIHksIHcsIGg7
CiAgICAgY29uc3QgVUNoYXIqIGMgPSB2aWV3Qm94LmNoYXJhY3RlcnMoKTsKICAgICBjb25zdCBV
Q2hhciogZW5kID0gYyArIHZpZXdCb3gubGVuZ3RoKCk7Ci0gICAgaWYgKCFwYXJzZVZpZXdCb3go
YywgZW5kLCB4LCB5LCB3LCBoLCBmYWxzZSkpCisgICAgaWYgKCFwYXJzZVZpZXdCb3gobV9jb250
ZXh0RWxlbWVudC0+ZG9jdW1lbnQoKSwgYywgZW5kLCB4LCB5LCB3LCBoLCBmYWxzZSkpCiAgICAg
ICAgIHJldHVybjsKICAgICBzZXRWaWV3Qm94QmFzZVZhbHVlKEZsb2F0UmVjdCh4LCB5LCB3LCBo
KSk7CiB9CkBAIC0xMTMsNyArMTExLDcgQEAgYm9vbCBTVkdWaWV3U3BlYzo6cGFyc2VWaWV3U3Bl
Yyhjb25zdCBTdAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICAgICAgY3VyclZpZXdTcGVjKys7CiAgICAgICAgICAgICAgICAgZmxvYXQgeCwgeSwgdywgaDsK
LSAgICAgICAgICAgICAgICBpZiAoIXBhcnNlVmlld0JveChjdXJyVmlld1NwZWMsIGVuZCwgeCwg
eSwgdywgaCwgZmFsc2UpKQorICAgICAgICAgICAgICAgIGlmICghcGFyc2VWaWV3Qm94KG1fY29u
dGV4dEVsZW1lbnQtPmRvY3VtZW50KCksIGN1cnJWaWV3U3BlYywgZW5kLCB4LCB5LCB3LCBoLCBm
YWxzZSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAg
ICBzZXRWaWV3Qm94QmFzZVZhbHVlKEZsb2F0UmVjdCh4LCB5LCB3LCBoKSk7CiAgICAgICAgICAg
ICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQgfHwgKmN1cnJWaWV3U3BlYyAhPSAnKScpCklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR1ZpZXdTcGVjLmgJKHJldmlzaW9uIDQ5NDI4KQorKysgV2ViQ29yZS9zdmcvU1ZHVmlld1Nw
ZWMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDYgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChD
KSAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBv
ZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNTMsMTMg
KzUxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU3RyaW5nIHZpZXdUYXJnZXRT
dHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdUYXJnZXRTdHJpbmc7IH0KICAgICAgICAgU1ZH
RWxlbWVudCogdmlld1RhcmdldCgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdDsKKyAgICAgICAgY29uc3QgU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQoKSBjb25zdDsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIFNW
R0ZpdFRvVmlld0JveAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
Rml0VG9WaWV3Qm94LCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlmaWVyLCBTVkdOYW1lczo6dmlld0Jv
eEF0dHJTdHJpbmcsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKLSAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpdFRvVmlld0JveCwgU1ZHRml0VG9WaWV3Qm94
SWRlbnRpZmllciwgU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyU3RyaW5nLCBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvLCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJh
dGlvKQotIAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVmlld1Nw
ZWMsIFNWR0ZpdFRvVmlld0JveElkZW50aWZpZXIsIFNWR05hbWVzOjp2aWV3Qm94QXR0clN0cmlu
ZywgRmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQorICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHVmlld1NwZWMsIFNWR0ZpdFRvVmlld0JveElkZW50aWZpZXIsIFNW
R05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0clN0cmluZywgU1ZHUHJlc2VydmVBc3BlY3RS
YXRpbywgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVBc3BlY3RSYXRpbykKKwogICAgICAg
ICBtdXRhYmxlIFJlZlB0cjxTVkdUcmFuc2Zvcm1MaXN0PiBtX3RyYW5zZm9ybTsKICAgICAgICAg
Y29uc3QgU1ZHU1ZHRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKICAgICAgICAgU3RyaW5nIG1f
dmlld1RhcmdldFN0cmluZzs=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41050</attachid>
            <date>2009-10-12 10:34:20 -0700</date>
            <delta_ts>2009-10-14 16:39:25 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-30183-20091012193411.patch</filename>
            <type>text/plain</type>
            <size>78915</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">PyAgICAgICBXZWJLaXQtWENvZGUtQnVpbGQtUGF0Y2gKPyAgICAgICBXZWJDb3JlL0xJU1QKPyAg
ICAgICBXZWJDb3JlL1NPTUVQQVRDSAo/ICAgICAgIExheW91dFRlc3RzL2FuaW1WYWwtYmFzZVZh
bC1zdXBwb3J0LnN2Zwo/ICAgICAgIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hbmltVmFsLWJh
c2VWYWwtc3VwcG9ydC1leHBlY3RlZC50eHQKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzggQEAKKzIwMDktMTAtMTEgIE5p
a29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgS2lsbCB2aXJ0dWFsIGNvbnRleHRFbGVt
ZW50KCkgbWV0aG9kIHNwcmVhZCBhbGwgb3ZlciBTVkcgY29kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAxODMKKworICAgICAgICBSZW1vdmUgdmly
dHVhbCBjb250ZXh0RWxlbWVudCgpIGZ1bmN0aW9uIGZyb20gYWxsIFNWRypFbGVtZW50IGNsYXNz
ZXMsIGFzIGFsbCBhbmltYXRlZCBwcm9wZXJ0aWVzIGxpdmUgaW4gdGhlCisgICAgICAgIFNWRypF
bGVtZW50IGNsYXNzZXMgbm93IGluc3RlYWQgb2YgdGhlIFNWR0ZpdFRvVmlld0JveCAvIFNWR1VS
SVJlZmVyZW5jZSAvIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKKyAgICAgICAgc3ViY2xh
c3Nlcy4gVGhpcyBpcyBhIGZpcnN0IHN0ZXAgdG8gd29ya2luZyBhbmltVmFsIHN1cHBvcnQuIE1v
cmUgcGF0Y2hlcyB3aWxsIGZvbGxvdyB0aGF0IGRlcGVuZCBvbiB0aGlzIGNoYW5nZS4KKworICAg
ICAgICBSZW1vdmUgIlRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdCIgZnJvbSBz
ZXZlcmFsIGZpbGVzLCBjaGFuZ2UgbXkgb2xkIG1haWwgYWRyZXNzIHdpbGRmb3ggLT4gemltbWVy
bWFubiwKKyAgICAgICAgYW5kIHJlbW92ZSB2aW0gbW9kZWxpbmVzIG9uIGFsbCBmaWxlcyBJIHRv
dWNoZWQuIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LCB0aHVzIG5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5oOiBSZW1vdmUgdmlydHVhbCBjb250ZXh0RWxlbWVu
dCgpIG1ldGhvZC4gQ2hhbmdlIE93bmVyVHlwZSBvZiBBTklNQVRFRF8qIG1hY3JvcyB0byB0aGlz
IGNsYXNzLgorICAgICAgICAqIHN2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaDogUmVtb3ZlIHZpcnR1
YWwgY29udGV4dEVsZW1lbnQoKSBtZXRob2QuCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVkUHJv
cGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6c3luY2hyb25pemUpOgorICAgICAgICAoV2Vi
Q29yZTo6OjpzdGFydEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjo6OnN0b3BBbmltYXRp
b24pOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50Lmg6IFJlbW92ZSB2aXJ0dWFs
IGNvbnRleHRFbGVtZW50KCkgbWV0aG9kLiBDaGFuZ2UgT3duZXJUeXBlIG9mIEFOSU1BVEVEXyog
bWFjcm9zIHRvIHRoaXMgY2xhc3MuCisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaDog
RGl0dG8uCisgICAgICAgICogc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oOiBEaXR0by4KKyAgICAg
ICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHRGVm
c0VsZW1lbnQuaDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VFbGVtZW50Lmg6IERp
dHRvLgorICAgICAgICAqIHN2Zy9TVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmg6IFJlbW92
ZSBwdXJlLXZpcnR1YWwgY29udGV4dEVsZW1lbnQoKSBtZXRob2QuCisgICAgICAgICogc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50Lmg6IFJlbW92ZSB2aXJ0dWFsIGNvbnRleHRFbGVtZW50KCkgbWV0aG9k
LiBDaGFuZ2UgT3duZXJUeXBlIG9mIEFOSU1BVEVEXyogbWFjcm9zIHRvIHRoaXMgY2xhc3MuCisg
ICAgICAgICogc3ZnL1NWR0ZFTGlnaHRFbGVtZW50Lmg6IFJlbW92ZSB2aXJ0dWFsIGNvbnRleHRF
bGVtZW50KCkgbWV0aG9kLgorICAgICAgICAqIHN2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaDog
RGl0dG8uCisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDogUmVtb3ZlIHZpcnR1YWwg
Y29udGV4dEVsZW1lbnQoKSBtZXRob2QuIENoYW5nZSBPd25lclR5cGUgb2YgQU5JTUFURURfKiBt
YWNyb3MgdG8gdGhpcyBjbGFzcy4KKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzLmg6IFJlbW92ZSB2aXJ0dWFsIGNvbnRleHRFbGVtZW50KCkgbWV0aG9k
LgorICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRml0VG9WaWV3Qm94OjpwYXJzZVZpZXdCb3gpOiBBZGQgRG9jdW1lbnQqIHBhcmFtZXRlciAt
IHdlIHVzZWQgdG8gZmV0Y2ggdGhlIERvY3VtZW50IHBvaW50ZXIgZnJvbSB0aGUgY29udGV4dCBl
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guaDogUmVtb3Zl
IHB1cmUtdmlydHVhbCBjb250ZXh0RWxlbWVudCgpIG1ldGhvZC4KKyAgICAgICAgKiBzdmcvU1ZH
Rm9udEVsZW1lbnQuaDogUmVtb3ZlIHZpcnR1YWwgY29udGV4dEVsZW1lbnQoKSBtZXRob2QuIENo
YW5nZSBPd25lclR5cGUgb2YgQU5JTUFURURfKiBtYWNyb3MgdG8gdGhpcyBjbGFzcy4KKyAgICAg
ICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaDogRGl0dG8uCisgICAgICAgICogc3Zn
L1NWR0dFbGVtZW50Lmg6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdHcmFkaWVudEVsZW1lbnQu
aDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5oOiBEaXR0by4KKyAgICAg
ICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQuaDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR01QYXRo
RWxlbWVudC5oOiBEaXR0by4gRml4IGxpY2Vuc2UgaW5kZW50aW9uLgorICAgICAgICAqIHN2Zy9T
VkdNYXJrZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6
OnBhcnNlTWFwcGVkQXR0cmlidXRlKTogUGFzcyBkb2N1bWVudCgpIHRvIFNWR0ZpdFRvVmlld0Jv
eDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoKS4KKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVu
dC5oOiBSZW1vdmUgdmlydHVhbCBjb250ZXh0RWxlbWVudCgpIG1ldGhvZC4gQ2hhbmdlIE93bmVy
VHlwZSBvZiBBTklNQVRFRF8qIG1hY3JvcyB0byB0aGlzIGNsYXNzLgorICAgICAgICAqIHN2Zy9T
VkdNYXNrRWxlbWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuaDog
RGl0dG8uCisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BhdHRlcm5FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6IFBhc3MgZG9j
dW1lbnQoKSB0byBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlTWFwcGVkQXR0cmlidXRlKCkuCisgICAg
ICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50Lmg6IFJlbW92ZSB2aXJ0dWFsIGNvbnRleHRFbGVt
ZW50KCkgbWV0aG9kLiBDaGFuZ2UgT3duZXJUeXBlIG9mIEFOSU1BVEVEXyogbWFjcm9zIHRvIHRo
aXMgY2xhc3MuCisgICAgICAgICogc3ZnL1NWR1BvbHlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1BvbHlFbGVtZW50Ojp1cGRhdGVBbmltYXRlZFNWR0F0dHJpYnV0ZSk6IHN5bmNo
cm9uaXplUHJvcGVydHk8Li4uPigpIGhhcyBiZWVuIHJlbmFtZWQgdG8gUHJvcGVydHlTeW5jaHJv
bml6ZXI8Li4uPjo6c3luY2hyb25pemUoKS4KKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQu
aDogUmVtb3ZlIHZpcnR1YWwgY29udGV4dEVsZW1lbnQoKSBtZXRob2QuIENoYW5nZSBPd25lclR5
cGUgb2YgQU5JTUFURURfKiBtYWNyb3MgdG8gdGhpcyBjbGFzcy4KKyAgICAgICAgKiBzdmcvU1ZH
UmVjdEVsZW1lbnQuaDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBQ
YXNzIGRvY3VtZW50KCkgdG8gU1ZHRml0VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSgp
LgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50Lmg6IFJlbW92ZSB2aXJ0dWFsIGNvbnRleHRF
bGVtZW50KCkgbWV0aG9kLiBDaGFuZ2UgT3duZXJUeXBlIG9mIEFOSU1BVEVEXyogbWFjcm9zIHRv
IHRoaXMgY2xhc3MuCisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaDogRGl0dG8uCisg
ICAgICAgICogc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaDogRGl0dG8uCisgICAgICAgICogc3ZnL1NW
R1N5bWJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3ltYm9sRWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOiBQYXNzIGRvY3VtZW50KCkgdG8gU1ZHRml0VG9WaWV3Qm94
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSgpLgorICAgICAgICAqIHN2Zy9TVkdTeW1ib2xFbGVtZW50
Lmg6IFJlbW92ZSB2aXJ0dWFsIGNvbnRleHRFbGVtZW50KCkgbWV0aG9kLiBDaGFuZ2UgT3duZXJU
eXBlIG9mIEFOSU1BVEVEXyogbWFjcm9zIHRvIHRoaXMgY2xhc3MuCisgICAgICAgICogc3ZnL1NW
R1RSZWZFbGVtZW50Lmg6IFJlbW92ZSB2aXJ0dWFsIGNvbnRleHRFbGVtZW50KCkgbWV0aG9kLgor
ICAgICAgICAqIHN2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaDogUmVtb3ZlIHZpcnR1YWwgY29u
dGV4dEVsZW1lbnQoKSBtZXRob2QuIENoYW5nZSBPd25lclR5cGUgb2YgQU5JTUFURURfKiBtYWNy
b3MgdG8gdGhpcyBjbGFzcy4KKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBhdGhFbGVtZW50Lmg6IFJl
bW92ZSB2aXJ0dWFsIGNvbnRleHRFbGVtZW50KCkgbWV0aG9kLgorICAgICAgICAqIHN2Zy9TVkdV
c2VFbGVtZW50Lmg6IFJlbW92ZSB2aXJ0dWFsIGNvbnRleHRFbGVtZW50KCkgbWV0aG9kLiBDaGFu
Z2UgT3duZXJUeXBlIG9mIEFOSU1BVEVEXyogbWFjcm9zIHRvIHRoaXMgY2xhc3MuCisgICAgICAg
ICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6IFBhc3MgZG9jdW1lbnQoKSB0byBTVkdGaXRUb1Zp
ZXdCb3g6OnBhcnNlTWFwcGVkQXR0cmlidXRlKCkuCisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVt
ZW50Lmg6IFJlbW92ZSB2aXJ0dWFsIGNvbnRleHRFbGVtZW50KCkgbWV0aG9kLiBDaGFuZ2UgT3du
ZXJUeXBlIG9mIEFOSU1BVEVEXyogbWFjcm9zIHRvIHRoaXMgY2xhc3MuCisgICAgICAgICogc3Zn
L1NWR1ZpZXdTcGVjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpzZXRWaWV3
Qm94U3RyaW5nKTogUGFzcyBkb2N1bWVudCgpIHRvIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoKS4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdT
cGVjKTogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR1ZpZXdTcGVjLmg6IERldmlydHVhbGl6ZSBj
b250ZXh0RWxlbWVudCgpIG1ldGhvZCwgaXQncyB0aGUgb25seSBwbGFjZSB3aGVyZSBjb250ZXh0
RWxlbWVudCgpIHJlbWFpbnMgbmVlZGVkLgorCiAyMDA5LTEwLTEyICBDYW1lcm9uIE1jQ29ybWFj
ayAgPGNhbUBtY2MuaWQuYXU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0FFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHQUVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDYgQEAKICAgICAgICAgICAgICAgICAgIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDcg
RXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC02MCw5ICs1
OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRT
aG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Q7CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAg
ICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiB0aGlzOyB9Ci0KICAgICBwcml2YXRlOgogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHQUVsZW1lbnQsIFNWR05hbWVzOjphVGFnU3RyaW5nLCBTVkdOYW1lczo6
dGFyZ2V0QXR0clN0cmluZywgU3RyaW5nLCBUYXJnZXQsIHRhcmdldCkKIApAQCAtNzAsNyArNjUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdBRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlSWRlbnRpZmllciwgWExpbmtOYW1l
czo6aHJlZkF0dHJTdHJpbmcsIFN0cmluZywgSHJlZiwgaHJlZikKIAogICAgICAgICAvLyBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR0FFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQpCiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCShy
ZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Nyw5ICs0Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKICAg
ICAgICAgU1ZHR2x5cGhFbGVtZW50KiBnbHlwaEVsZW1lbnQoKSBjb25zdDsKIAotICAgIHByb3Rl
Y3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgIHByaXZhdGU6ICAgIAogICAgICAgICAvLyBT
VkdVUklSZWZlcmVuY2UKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0FsdEdseXBoRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlSWRlbnRpZmllciwgWExpbmtOYW1lczo6
aHJlZkF0dHJTdHJpbmcsIFN0cmluZywgSHJlZiwgaHJlZikKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVkUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRl
ZFByb3BlcnR5LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAgICBDb3B5cmln
aHQgKEMpIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgICAg
Q29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDA5LiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02Miw4ICs2Myw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBzdHJ1Y3QgSXNEZXJpdmVkRnJvbVNWR0VsZW1lbnQ7CiAKICAgICAv
LyBIZWxwZXIgdGVtcGxhdGUgdXNlZCBmb3Igc3luY2hyb25pemluZyBTVkcgPC0+IFhNTCBwcm9w
ZXJ0aWVzCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgT3duZXJFbGVtZW50LCB0eXBlbmFtZSBEZWNv
cmF0ZWRUeXBlPgotICAgIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBPd25lckVsZW1l
bnQqIG93bmVyRWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgRGVj
b3JhdGVkVHlwZSBiYXNlVmFsdWUpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZSwg
dHlwZW5hbWUgRGVjb3JhdGVkVHlwZSwgYm9vbCBpc0Rlcml2ZWRGcm9tU1ZHRWxlbWVudD4KKyAg
ICBzdHJ1Y3QgUHJvcGVydHlTeW5jaHJvbml6ZXI7CiAKICAgICAvLyBBYnN0cmFjdCBiYXNlIGNs
YXNzCiAgICAgY2xhc3MgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUJhc2UgOiBwdWJsaWMgTm9uY29weWFi
bGUgewpAQCAtMzQzLDcgKzM0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaWYg
KCFtX3ZhbHVlLm5lZWRzU3luY2hyb25pemF0aW9uKCkpIAogICAgICAgICAgICAgcmV0dXJuOyAK
IAotICAgICAgICBzeW5jaHJvbml6ZVByb3BlcnR5PE93bmVyRWxlbWVudCwgRGVjb3JhdGVkVHlw
ZT4ob3duZXJFbGVtZW50KCksIG1fYXR0cmlidXRlTmFtZSwgYmFzZVZhbHVlKCkpOworICAgICAg
ICBQcm9wZXJ0eVN5bmNocm9uaXplcjxPd25lckVsZW1lbnQsIERlY29yYXRlZFR5cGUsIElzRGVy
aXZlZEZyb21TVkdFbGVtZW50PE93bmVyVHlwZT46OnZhbHVlPjo6c3luY2hyb25pemUob3duZXJF
bGVtZW50KCksIG1fYXR0cmlidXRlTmFtZSwgYmFzZVZhbHVlKCkpOwogICAgICAgICBtX3ZhbHVl
LnNldFN5bmNocm9uaXplZCgpOyAKICAgICB9CiAKQEAgLTM1MSw4ICszNTIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgdm9pZCBTVkdBbmltYXRlZFByb3BlcnR5PE93bmVyVHlwZUFyZywg
QW5pbWF0ZWRUeXBlQXJnLCBUYWdOYW1lLCBQcm9wZXJ0eU5hbWU+OjpzdGFydEFuaW1hdGlvbigp
IGNvbnN0CiAgICAgewogICAgICAgICBjb25zdCBPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9
IHRoaXMtPm93bmVyRWxlbWVudCgpOwotICAgICAgICBTVkdEb2N1bWVudEV4dGVuc2lvbnMqIGV4
dGVuc2lvbnMgPSBvd25lckVsZW1lbnQtPmFjY2Vzc0RvY3VtZW50U1ZHRXh0ZW5zaW9ucygpOwot
ICAgICAgICBpZiAoZXh0ZW5zaW9ucykgeworICAgICAgICBpZiAoU1ZHRG9jdW1lbnRFeHRlbnNp
b25zKiBleHRlbnNpb25zID0gb3duZXJFbGVtZW50LT5hY2Nlc3NEb2N1bWVudFNWR0V4dGVuc2lv
bnMoKSkgewogICAgICAgICAgICAgQVNTRVJUKCFleHRlbnNpb25zLT5oYXNCYXNlVmFsdWU8RGVj
b3JhdGVkVHlwZT4ob3duZXJFbGVtZW50LCBtX2F0dHJpYnV0ZUlkZW50aWZpZXIpKTsKICAgICAg
ICAgICAgIGV4dGVuc2lvbnMtPnNldEJhc2VWYWx1ZTxEZWNvcmF0ZWRUeXBlPihvd25lckVsZW1l
bnQsIG1fYXR0cmlidXRlSWRlbnRpZmllciwgbV92YWx1ZSk7CiAgICAgICAgIH0KQEAgLTM2Miw4
ICszNjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdm9pZCBTVkdBbmltYXRlZFByb3Bl
cnR5PE93bmVyVHlwZUFyZywgQW5pbWF0ZWRUeXBlQXJnLCBUYWdOYW1lLCBQcm9wZXJ0eU5hbWU+
OjpzdG9wQW5pbWF0aW9uKCkKICAgICB7CiAgICAgICAgIGNvbnN0IE93bmVyRWxlbWVudCogb3du
ZXJFbGVtZW50ID0gdGhpcy0+b3duZXJFbGVtZW50KCk7Ci0gICAgICAgIFNWR0RvY3VtZW50RXh0
ZW5zaW9ucyogZXh0ZW5zaW9ucyA9IG93bmVyRWxlbWVudC0+YWNjZXNzRG9jdW1lbnRTVkdFeHRl
bnNpb25zKCk7Ci0gICAgICAgIGlmIChleHRlbnNpb25zKSB7CisgICAgICAgIGlmIChTVkdEb2N1
bWVudEV4dGVuc2lvbnMqIGV4dGVuc2lvbnMgPSBvd25lckVsZW1lbnQtPmFjY2Vzc0RvY3VtZW50
U1ZHRXh0ZW5zaW9ucygpKSB7CiAgICAgICAgICAgICBBU1NFUlQoZXh0ZW5zaW9ucy0+aGFzQmFz
ZVZhbHVlPERlY29yYXRlZFR5cGU+KG93bmVyRWxlbWVudCwgbV9hdHRyaWJ1dGVJZGVudGlmaWVy
KSk7CiAgICAgICAgICAgICBzZXRWYWx1ZShleHRlbnNpb25zLT5iYXNlVmFsdWU8RGVjb3JhdGVk
VHlwZT4ob3duZXJFbGVtZW50LCBtX2F0dHJpYnV0ZUlkZW50aWZpZXIpKTsKICAgICAgICAgICAg
IGV4dGVuc2lvbnMtPnJlbW92ZUJhc2VWYWx1ZTxBbmltYXRlZFR5cGU+KG93bmVyRWxlbWVudCwg
bV9hdHRyaWJ1dGVJZGVudGlmaWVyKTsKQEAgLTQwNiwzOSArNDA1LDM3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOwogICAgIH07
CiAKLSAgICBjbGFzcyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOworICAgIGNsYXNzIFNW
R1ZpZXdTcGVjOwogICAgIHRlbXBsYXRlPD4KLSAgICBzdHJ1Y3QgSXNEZXJpdmVkRnJvbVNWR0Vs
ZW1lbnQ8U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZD4gOiBOb25jb3B5YWJsZSB7CisgICAg
c3RydWN0IElzRGVyaXZlZEZyb21TVkdFbGVtZW50PFNWR1ZpZXdTcGVjPiA6IE5vbmNvcHlhYmxl
IHsKICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBmYWxzZTsKICAgICB9OwogCi0g
ICAgY2xhc3MgU1ZHRml0VG9WaWV3Qm94OwotICAgIHRlbXBsYXRlPD4KLSAgICBzdHJ1Y3QgSXNE
ZXJpdmVkRnJvbVNWR0VsZW1lbnQ8U1ZHRml0VG9WaWV3Qm94PiA6IE5vbmNvcHlhYmxlIHsKLSAg
ICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBmYWxzZTsKLSAgICB9OworICAgIC8vIFBy
b3BlcnR5U3luY2hyb25pemVyIGltcGxlbWVudGF0aW9uCisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
T3duZXJFbGVtZW50LCB0eXBlbmFtZSBEZWNvcmF0ZWRUeXBlPgorICAgIHN0cnVjdCBQcm9wZXJ0
eVN5bmNocm9uaXplcjxPd25lckVsZW1lbnQsIERlY29yYXRlZFR5cGUsIHRydWU+IDogTm9uY29w
eWFibGUgeworICAgICAgICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZShjb25zdCBPd25lckVsZW1l
bnQqIG93bmVyRWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgRGVj
b3JhdGVkVHlwZSBiYXNlVmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIEF0b21pY1N0cmlu
ZyB2YWx1ZShTVkdBbmltYXRlZFR5cGVWYWx1ZTxEZWNvcmF0ZWRUeXBlPjo6dG9TdHJpbmcoYmFz
ZVZhbHVlKSk7CiAKLSAgICBjbGFzcyBTVkdVUklSZWZlcmVuY2U7Ci0gICAgdGVtcGxhdGU8Pgot
ICAgIHN0cnVjdCBJc0Rlcml2ZWRGcm9tU1ZHRWxlbWVudDxTVkdVUklSZWZlcmVuY2U+IDogTm9u
Y29weWFibGUgewotICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IGZhbHNlOworICAg
ICAgICAgICAgTmFtZWROb2RlTWFwKiBuYW1lZEF0dHJNYXAgPSBvd25lckVsZW1lbnQtPmF0dHJp
YnV0ZXMoZmFsc2UpOyAKKyAgICAgICAgICAgIEF0dHJpYnV0ZSogb2xkID0gbmFtZWRBdHRyTWFw
LT5nZXRBdHRyaWJ1dGVJdGVtKGF0dHJpYnV0ZU5hbWUpOworICAgICAgICAgICAgaWYgKG9sZCAm
JiB2YWx1ZS5pc051bGwoKSkgCisgICAgICAgICAgICAgICAgbmFtZWRBdHRyTWFwLT5yZW1vdmVB
dHRyaWJ1dGUob2xkLT5uYW1lKCkpOyAKKyAgICAgICAgICAgIGVsc2UgaWYgKCFvbGQgJiYgIXZh
bHVlLmlzTnVsbCgpKSAKKyAgICAgICAgICAgICAgICBuYW1lZEF0dHJNYXAtPmFkZEF0dHJpYnV0
ZShjb25zdF9jYXN0PE93bmVyRWxlbWVudCo+KG93bmVyRWxlbWVudCktPmNyZWF0ZUF0dHJpYnV0
ZShhdHRyaWJ1dGVOYW1lLCB2YWx1ZSkpOworICAgICAgICAgICAgZWxzZSBpZiAob2xkICYmICF2
YWx1ZS5pc051bGwoKSkgCisgICAgICAgICAgICAgICAgb2xkLT5zZXRWYWx1ZSh2YWx1ZSk7IAor
ICAgICAgICB9CiAgICAgfTsKIAotICAgIC8vIENlbnRyYWwgZnVuY3Rpb24gaGFuZGxpbmcgdGhl
IG1haW4gU1ZHPC0+WE1MIHN5bmNocm9uaXphdGlvbiBwYXJ0LgogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIE93bmVyRWxlbWVudCwgdHlwZW5hbWUgRGVjb3JhdGVkVHlwZT4KLSAgICB2b2lkIHN5bmNo
cm9uaXplUHJvcGVydHkoY29uc3QgT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIERlY29yYXRlZFR5cGUgYmFzZVZhbHVlKQotICAg
IHsKLSAgICAgICAgQXRvbWljU3RyaW5nIHZhbHVlKFNWR0FuaW1hdGVkVHlwZVZhbHVlPERlY29y
YXRlZFR5cGU+Ojp0b1N0cmluZyhiYXNlVmFsdWUpKTsKLQotICAgICAgICBOYW1lZE5vZGVNYXAq
IG5hbWVkQXR0ck1hcCA9IG93bmVyRWxlbWVudC0+YXR0cmlidXRlcyhmYWxzZSk7IAotICAgICAg
ICBBdHRyaWJ1dGUqIG9sZCA9IG5hbWVkQXR0ck1hcC0+Z2V0QXR0cmlidXRlSXRlbShhdHRyaWJ1
dGVOYW1lKTsKLSAgICAgICAgaWYgKG9sZCAmJiB2YWx1ZS5pc051bGwoKSkgCi0gICAgICAgICAg
ICBuYW1lZEF0dHJNYXAtPnJlbW92ZUF0dHJpYnV0ZShvbGQtPm5hbWUoKSk7IAotICAgICAgICBl
bHNlIGlmICghb2xkICYmICF2YWx1ZS5pc051bGwoKSkgCi0gICAgICAgICAgICBuYW1lZEF0dHJN
YXAtPmFkZEF0dHJpYnV0ZShjb25zdF9jYXN0PE93bmVyRWxlbWVudCo+KG93bmVyRWxlbWVudCkt
PmNyZWF0ZUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCB2YWx1ZSkpOwotICAgICAgICBlbHNlIGlm
IChvbGQgJiYgIXZhbHVlLmlzTnVsbCgpKSAKLSAgICAgICAgICAgIG9sZC0+c2V0VmFsdWUodmFs
dWUpOyAKLSAgICB9CisgICAgc3RydWN0IFByb3BlcnR5U3luY2hyb25pemVyPE93bmVyRWxlbWVu
dCwgRGVjb3JhdGVkVHlwZSwgZmFsc2U+IDogTm9uY29weWFibGUgeworICAgICAgICBzdGF0aWMg
dm9pZCBzeW5jaHJvbml6ZShjb25zdCBPd25lckVsZW1lbnQqLCBjb25zdCBRdWFsaWZpZWROYW1l
JiwgRGVjb3JhdGVkVHlwZSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gbm8tb3AsIGZvciB0
eXBlcyBub3QgaW5oZXJpdGluZyBmcm9tIEVsZW1lbnQsIHRodXMgbm90aGluZyB0byBzeW5jaHJv
bml6ZQorICAgICAgICB9CisgICAgfTsKIAogICAgIC8vIEhlbHBlciBtYWNybyB1c2VkIHRvIHJl
Z2lzdGVyIGFuaW1hdGVkIHByb3BlcnRpZXMgd2l0aGluIFNWRyogY2xhc3NlcwogICAgICNkZWZp
bmUgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKE93bmVyVHlwZSwgRWxlbWVudFRhZywg
QXR0cmlidXRlVGFnLCBBbmltYXRlZFR5cGUsIFVwcGVyUHJvcGVydHksIExvd2VyUHJvcGVydHkp
IFwKQEAgLTQ1MSw4ICs0NDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQg
c2V0IyNVcHBlclByb3BlcnR5KERlY29yYXRlZFR5cGVGb3IjI1VwcGVyUHJvcGVydHkgdHlwZSkg
eyBtXyMjTG93ZXJQcm9wZXJ0eS5zZXRWYWx1ZSh0eXBlKTsgfSBcCiAgICAgICAgIERlY29yYXRl
ZFR5cGVGb3IjI1VwcGVyUHJvcGVydHkgTG93ZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV8jI0xvd2VyUHJvcGVydHkuYmFzZVZhbHVlKCk7IH0gXAogICAgICAgICB2b2lk
IHNldCMjVXBwZXJQcm9wZXJ0eSMjQmFzZVZhbHVlKERlY29yYXRlZFR5cGVGb3IjI1VwcGVyUHJv
cGVydHkgdHlwZSkgeyBtXyMjTG93ZXJQcm9wZXJ0eS5zZXRCYXNlVmFsdWUodHlwZSk7IH0gXAot
ICAgICAgICBQYXNzUmVmUHRyPFNWR0FuaW1hdGVkUHJvcGVydHkjI1VwcGVyUHJvcGVydHk6OlRl
YXJPZmY+IExvd2VyUHJvcGVydHkjI0FuaW1hdGVkKCkgY29uc3QgeyByZXR1cm4gbV8jI0xvd2Vy
UHJvcGVydHkuYW5pbWF0ZWRUZWFyT2ZmKCk7IH0gXAotICAgICAgICB2b2lkIHN5bmNocm9uaXpl
IyNVcHBlclByb3BlcnR5KCkgY29uc3QgeyBtXyMjTG93ZXJQcm9wZXJ0eS5zeW5jaHJvbml6ZSgp
OyB9CisgICAgICAgIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZWRQcm9wZXJ0eSMjVXBwZXJQcm9wZXJ0
eTo6VGVhck9mZj4gTG93ZXJQcm9wZXJ0eSMjQW5pbWF0ZWQoKSBjb25zdCB7IHJldHVybiBtXyMj
TG93ZXJQcm9wZXJ0eS5hbmltYXRlZFRlYXJPZmYoKTsgfQogCiB9OwogCkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0aW9uRWxlbWVudC5oCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGlvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxMiArMSwxMCBAQAogLyoKLSAg
ICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtk
ZS5vcmc+CisgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBS
b2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICAgIENvcHlyaWdodCAoQykgMjAwNyBFcmljIFNlaWRl
bCA8ZXJpY0B3ZWJraXQub3JnPgogICAgIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgICAgQ29weXJpZ2h0IChDKSAyMDA4IENhbWVyb24gTWNDb3Jt
YWNrIDxjYW1AbWNjLmlkLmF1PgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBw
cm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTY2LDggKzY0LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGF0aWMgYm9vbCBhdHRyaWJ1dGVJc0NTUyhjb25z
dCBTdHJpbmcmIGF0dHJpYnV0ZU5hbWUpOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0
dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhp
czsgfQotIAogICAgICAgICBlbnVtIENhbGNNb2RlIHsgQ2FsY01vZGVEaXNjcmV0ZSwgQ2FsY01v
ZGVMaW5lYXIsIENhbGNNb2RlUGFjZWQsIENhbGNNb2RlU3BsaW5lIH07CiAgICAgICAgIENhbGNN
b2RlIGNhbGNNb2RlKCkgY29uc3Q7CiAgICAgICAgIApAQCAtMTEwLDcgKzEwNiw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgCiAgICAgcHJvdGVjdGVkOgogICAgICAgICAvLyBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xB
UkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR0FuaW1hdGlvbkVsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVu
dGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTmFtZXM6
OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAkocmV2
aXNpb24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIsOCArMiw2IEBACiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAg
ICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCi0gICAg
VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
ICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKQEAgLTQ3LDcgKzQ1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIFBhdGggdG9QYXRoRGF0YSgpIGNvbnN0OwogCiAgICAgcHJvdGVjdGVkOgotICAgICAg
ICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gdGhpczsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVWYWx1ZXMoKSBjb25z
dDsKIAogICAgIHByaXZhdGU6CkBAIC01Niw3ICs1Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0NpcmNsZUVsZW1lbnQs
IFNWR05hbWVzOjpjaXJjbGVUYWdTdHJpbmcsIFNWR05hbWVzOjpyQXR0clN0cmluZywgU1ZHTGVu
Z3RoLCBSLCByKQogCiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ2lyY2xlRWxlbWVudCwgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJT
dHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogICAgIH07
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAkocmV2aXNpb24gNDk0NDMpCisrKyBXZWJD
b3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYg
QEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDggTmlrb2xhcyBaaW1t
ZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1
LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBv
ZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNDksMTQg
KzQ3LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIFNWR1Jlc291
cmNlKiBjYW52YXNSZXNvdXJjZSgpOwogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFs
IGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsg
fQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0NsaXBQYXRoRWxlbWVudCwgU1ZHTmFtZXM6OmNsaXBQYXRoVGFnU3RyaW5nLCBTVkdOYW1l
czo6Y2xpcFBhdGhVbml0c0F0dHJTdHJpbmcsIGludCwgQ2xpcFBhdGhVbml0cywgY2xpcFBhdGhV
bml0cykKIAogICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0NsaXBQYXRoRWxlbWVudCwgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJp
bmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogCkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHQ3Vyc29yRWxlbWVudC5oCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR0N1
cnNvckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKLQogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNTAsOSArNDgsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmli
dXRlVVJMcyhMaXN0SGFzaFNldDxLVVJMPiYpIGNvbnN0OwogCi0gICAgcHJvdGVjdGVkOgotICAg
ICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gdGhpczsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR0N1cnNvckVsZW1lbnQsIFNWR05hbWVzOjpjdXJzb3JUYWdTdHJpbmcs
IFNWR05hbWVzOjp4QXR0clN0cmluZywgU1ZHTGVuZ3RoLCBYLCB4KQogICAgICAgICBBTklNQVRF
RF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHQ3Vyc29yRWxlbWVudCwgU1ZHTmFtZXM6OmN1cnNv
clRhZ1N0cmluZywgU1ZHTmFtZXM6OnlBdHRyU3RyaW5nLCBTVkdMZW5ndGgsIFksIHkpCkBAIC02
MSw3ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR0N1cnNvckVsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZUlkZW50aWZp
ZXIsIFhMaW5rTmFtZXM6OmhyZWZBdHRyU3RyaW5nLCBTdHJpbmcsIEhyZWYsIGhyZWYpCiAKICAg
ICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdDdXJzb3JFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R0RlZnNFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQu
aAkocmV2aXNpb24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAg
IDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CkBAIC00MywxMSArNDEsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVh
bCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUq
KTsKIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBj
b250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQorICAgIHByaXZhdGU6CiAg
ICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURf
UFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9Q
RVJUWV9ERUNMQVJBVElPTlMoU1ZHRGVmc0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRJZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKICAgICB9OwpJbmRleDogV2ViQ29yZS9z
dmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5oCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR0VsbGlwc2VF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw2IEBACiAgICAgQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBr
ZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVp
c0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0K
ICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTQ3LDcgKzQ1LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIFBhdGggdG9QYXRoRGF0YSgpIGNvbnN0OwogCiAgICAg
cHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVs
YXRpdmVWYWx1ZXMoKSBjb25zdDsKIAogICAgIHByaXZhdGU6CkBAIC01Nyw3ICs1NCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0VsbGlwc2VFbGVtZW50LCBTVkdOYW1lczo6ZWxsaXBzZVRhZ1N0cmluZywgU1ZHTmFtZXM6
OnJ5QXR0clN0cmluZywgU1ZHTGVuZ3RoLCBSeSwgcnkpCiAKICAgICAgICAgLy8gU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdFbGxpcHNlRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkKQogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZC5oCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAK
ICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6
aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlz
IDxidWlzQGtkZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2pl
Y3QKLQogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNDUsOCArNDMsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0
cmlidXRlKik7CiAgICAgICAgIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJik7CiAKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCgpIGNvbnN0ID0gMDsKLQogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCB2b2lkIHNl
dEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRCYXNlVmFsdWUoU1ZHQW5pbWF0ZWRUeXBlVmFsdWU8
Ym9vbD46OkRlY29yYXRlZFR5cGUgdHlwZSkgPSAwOwogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdGRUltYWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+
CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAK
LSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgpAQCAtNDksOSArNDcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8
S1VSTD4mKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIGJ1aWxkKFNWR1Jlc291cmNlRmls
dGVyKik7CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KICAgICBwcml2YXRl
OgogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVJbWFnZUVsZW1l
bnQsIFNWR05hbWVzOjpmZUltYWdlVGFnU3RyaW5nLCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RS
YXRpb0F0dHJTdHJpbmcsIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0
aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCiAKQEAgLTU5LDcgKzU0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRkVJbWFn
ZUVsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZUlkZW50aWZpZXIsIFhMaW5rTmFtZXM6OmhyZWZBdHRy
U3RyaW5nLCBTdHJpbmcsIEhyZWYsIGhyZWYpCiAKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElk
ZW50aWZpZXIsCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGRUlt
YWdlRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkKQogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDQz
KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzksOSArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgTGlnaHRT
b3VyY2UqIGxpZ2h0U291cmNlKCkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcGFy
c2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7CiAKLSAgICBwcm90ZWN0ZWQ6Ci0g
ICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiB0aGlzOyB9Ci0KICAgICBwcml2YXRlOgogICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHRkVMaWdodEVsZW1lbnQsIFNWR0ZFTGlnaHRFbGVtZW50SWRlbnRp
ZmllciwgU1ZHTmFtZXM6OmF6aW11dGhBdHRyU3RyaW5nLCBmbG9hdCwgQXppbXV0aCwgYXppbXV0
aCkKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFTGlnaHRFbGVt
ZW50LCBTVkdGRUxpZ2h0RWxlbWVudElkZW50aWZpZXIsIFNWR05hbWVzOjplbGV2YXRpb25BdHRy
U3RyaW5nLCBmbG9hdCwgRWxldmF0aW9uLCBlbGV2YXRpb24pCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdGRU1lcmdlTm9kZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRU1l
cmdlTm9kZUVsZW1lbnQuaAkocmV2aXNpb24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRU1l
cmdlTm9kZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5v
cmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtMzYsOSArMzQsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0
dHJpYnV0ZSopOwogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0Vs
ZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJp
dmF0ZToKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZFTWVyZ2VO
b2RlRWxlbWVudCwgU1ZHTmFtZXM6OmZlTWVyZ2VOb2RlVGFnU3RyaW5nLCBTVkdOYW1lczo6aW5B
dHRyU3RyaW5nLCBTdHJpbmcsIEluMSwgaW4xKQogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxl
bWVudC5oCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDYgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICBDb3B5cmlnaHQgKEMpIDIw
MDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAKLSAgICBUaGlzIGZpbGUg
aXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpA
QCAtNTEsOSArNDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUqKTsKICAgICAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7IHJldHVybiBmYWxzZTsgfQog
Ci0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRl
eHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlckVsZW1lbnQsIFNWR05h
bWVzOjpmaWx0ZXJUYWdTdHJpbmcsIFNWR05hbWVzOjpmaWx0ZXJVbml0c0F0dHJTdHJpbmcsIGlu
dCwgRmlsdGVyVW5pdHMsIGZpbHRlclVuaXRzKQogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHRmlsdGVyRWxlbWVudCwgU1ZHTmFtZXM6OmZpbHRlclRhZ1N0cmluZywg
U1ZHTmFtZXM6OnByaW1pdGl2ZVVuaXRzQXR0clN0cmluZywgaW50LCBQcmltaXRpdmVVbml0cywg
cHJpbWl0aXZlVW5pdHMpCkBAIC02OCw3ICs2Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0ZpbHRlckVsZW1lbnQsIFNW
R1VSSVJlZmVyZW5jZUlkZW50aWZpZXIsIFhMaW5rTmFtZXM6OmhyZWZBdHRyU3RyaW5nLCBTdHJp
bmcsIEhyZWYsIGhyZWYpCiAKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisg
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaWx0ZXJFbGVtZW50LCBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVk
QXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAK
SW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy5oCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAog
ICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIw
MDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC01MCw3ICs0OCw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGZyaWVuZCBj
bGFzcyBTVkdSZXNvdXJjZUZpbHRlcjsKICAgICAgICAgdm9pZCBzZXRTdGFuZGFyZEF0dHJpYnV0
ZXMoU1ZHUmVzb3VyY2VGaWx0ZXIqLCBGaWx0ZXJFZmZlY3QqKSBjb25zdDsKLSAgICAgICAgdmly
dHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRo
aXM7IH0KIAogICAgIHByaXZhdGU6CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlc0lkZW50aWZpZXIsIFNWR05hbWVzOjp4QXR0clN0cmluZywg
U1ZHTGVuZ3RoLCBYLCB4KQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCShyZXZpc2lvbiA0
OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIsOCArMiw2IEBACiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4IE5pa29s
YXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKQEAgLTI1LDYgKzIzLDcgQEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUgIlNWR0ZpdFRv
Vmlld0JveC5oIgogCisjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCkBAIC00
Niw5ICs0NSw4IEBAIFNWR0ZpdFRvVmlld0JveDo6flNWR0ZpdFRvVmlld0JveCgpCiB7CiB9CiAK
LWJvb2wgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZVZpZXdCb3goY29uc3QgVUNoYXIqJiBjLCBjb25z
dCBVQ2hhciogZW5kLCBmbG9hdCYgeCwgZmxvYXQmIHksIGZsb2F0JiB3LCBmbG9hdCYgaCwgYm9v
bCB2YWxpZGF0ZSkKK2Jvb2wgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZVZpZXdCb3goRG9jdW1lbnQq
IGRvYywgY29uc3QgVUNoYXIqJiBjLCBjb25zdCBVQ2hhciogZW5kLCBmbG9hdCYgeCwgZmxvYXQm
IHksIGZsb2F0JiB3LCBmbG9hdCYgaCwgYm9vbCB2YWxpZGF0ZSkKIHsKLSAgICBEb2N1bWVudCog
ZG9jID0gY29udGV4dEVsZW1lbnQoKS0+ZG9jdW1lbnQoKTsKICAgICBTdHJpbmcgc3RyKGMsIGVu
ZCAtIGMpOwogCiAgICAgc2tpcE9wdGlvbmFsU3BhY2VzKGMsIGVuZCk7CkBAIC04OCwxMyArODYs
MTMgQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggU1ZHRml0VG9WaWV3Qm94Ojp2aQogICAgIHJldHVy
biBwcmVzZXJ2ZUFzcGVjdFJhdGlvLT5nZXRDVE0odmlld0JveFJlY3QueCgpLCB2aWV3Qm94UmVj
dC55KCksIHZpZXdCb3hSZWN0LndpZHRoKCksIHZpZXdCb3hSZWN0LmhlaWdodCgpLCAwLCAwLCB2
aWV3V2lkdGgsIHZpZXdIZWlnaHQpOwogfQogCi1ib29sIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQorYm9vbCBTVkdGaXRUb1ZpZXdC
b3g6OnBhcnNlTWFwcGVkQXR0cmlidXRlKERvY3VtZW50KiBkb2N1bWVudCwgTWFwcGVkQXR0cmli
dXRlKiBhdHRyKQogewogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnZpZXdCb3hB
dHRyKSB7CiAgICAgICAgIGZsb2F0IHggPSAwLjBmLCB5ID0gMC4wZiwgdyA9IDAuMGYsIGggPSAw
LjBmOwogICAgICAgICBjb25zdCBVQ2hhciogYyA9IGF0dHItPnZhbHVlKCkuY2hhcmFjdGVycygp
OwogICAgICAgICBjb25zdCBVQ2hhciogZW5kID0gYyArIGF0dHItPnZhbHVlKCkubGVuZ3RoKCk7
Ci0gICAgICAgIGlmIChwYXJzZVZpZXdCb3goYywgZW5kLCB4LCB5LCB3LCBoKSkKKyAgICAgICAg
aWYgKHBhcnNlVmlld0JveChkb2N1bWVudCwgYywgZW5kLCB4LCB5LCB3LCBoKSkKICAgICAgICAg
ICAgIHNldFZpZXdCb3hCYXNlVmFsdWUoRmxvYXRSZWN0KHgsIHksIHcsIGgpKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnBy
ZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdC
b3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaAkocmV2aXNp
b24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaAkod29ya2luZyBjb3B5
KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDggTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAy
MDA0LCAyMDA1LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKLSAgICBUaGlz
IGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgpAQCAtMzgsMTQgKzM2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU1ZH
Rml0VG9WaWV3Qm94KCk7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZpdFRvVmlld0JveCgpOwogCi0g
ICAgICAgIGJvb2wgcGFyc2VWaWV3Qm94KGNvbnN0IFVDaGFyKiYgc3RhcnQsIGNvbnN0IFVDaGFy
KiBlbmQsIGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQmIHcsIGZsb2F0JiBoLCBib29sIHZhbGlk
YXRlID0gdHJ1ZSk7CisgICAgICAgIGJvb2wgcGFyc2VWaWV3Qm94KERvY3VtZW50KiwgY29uc3Qg
VUNoYXIqJiBzdGFydCwgY29uc3QgVUNoYXIqIGVuZCwgZmxvYXQmIHgsIGZsb2F0JiB5LCBmbG9h
dCYgdywgZmxvYXQmIGgsIGJvb2wgdmFsaWRhdGUgPSB0cnVlKTsKICAgICAgICAgc3RhdGljIFRy
YW5zZm9ybWF0aW9uTWF0cml4IHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0oY29uc3QgRmxvYXRSZWN0
JiB2aWV3Qm94UmVjdCwgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyosIGZsb2F0IHZpZXdXaWR0aCwg
ZmxvYXQgdmlld0hlaWdodCk7CiAKLSAgICAgICAgYm9vbCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShN
YXBwZWRBdHRyaWJ1dGUqKTsKKyAgICAgICAgYm9vbCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShEb2N1
bWVudCosIE1hcHBlZEF0dHJpYnV0ZSopOwogICAgICAgICBib29sIGlzS25vd25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQoKSBjb25zdCA9IDA7Ci0KICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IHZpcnR1YWwgU1ZHQW5pbWF0ZWRUeXBlVmFsdWU8RmxvYXRSZWN0Pjo6RGVjb3JhdGVkVHlwZSB2
aWV3Qm94QmFzZVZhbHVlKCkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0Vmll
d0JveEJhc2VWYWx1ZShTVkdBbmltYXRlZFR5cGVWYWx1ZTxGbG9hdFJlY3Q+OjpEZWNvcmF0ZWRU
eXBlIHR5cGUpID0gMDsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAkocmV2aXNpb24gNDk0NDMpCisr
KyBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NywxNSAr
NDcsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIFNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQqIGZpcnN0TWlzc2luZ0dseXBoRWxlbWVudCgpIGNvbnN0OwogCi0gICAgcHJvdGVjdGVk
OgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gdGhpczsgfQotCisgICAgcHJpdmF0ZToKICAgICAgICAgLy8gU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElP
TlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhT
VkdGb250RWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkKQogCi0gICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBlbnN1cmVHbHlwaENh
Y2hlKCkgY29uc3Q7CiAKICAgICAgICAgdHlwZWRlZiBWZWN0b3I8U1ZHSG9yaXpvbnRhbEtlcm5p
bmdQYWlyPiBLZXJuaW5nUGFpclZlY3RvcjsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQuaAkocmV2aXNpb24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogLyoKICAgICBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KIAotICAgIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBXZWJLaXQgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBA
IC00OCw5ICs0Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBjaGlsZFNo
b3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBSZW5kZXJP
YmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqIHN0
eWxlKTsKIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50
KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgIHByaXZhdGU6
CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGb3JlaWduT2JqZWN0
RWxlbWVudCwgU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWdTdHJpbmcsIFNWR05hbWVzOjp4QXR0
clN0cmluZywgU1ZHTGVuZ3RoLCBYLCB4KQogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNM
QVJBVElPTlMoU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQsIFNWR05hbWVzOjpmb3JlaWduT2JqZWN0
VGFnU3RyaW5nLCBTVkdOYW1lczo6eUF0dHJTdHJpbmcsIFNWR0xlbmd0aCwgWSwgeSkKQEAgLTYx
LDcgKzU2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZUlk
ZW50aWZpZXIsIFhMaW5rTmFtZXM6OmhyZWZBdHRyU3RyaW5nLCBTdHJpbmcsIEhyZWYsIGhyZWYp
CiAKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGb3JlaWduT2JqZWN0RWxlbWVudCwgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJp
bmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogICAgIH07Cklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0dFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHR0VsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDcsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5v
cmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNDcsMTUgKzQ1LDEyIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0
dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhp
czsgfQotCisgICAgcHJpdmF0ZToKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZAotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIs
CisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdHRWxlbWVudCwgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0
dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogCi0g
ICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIFNWR1VzZUVsZW1lbnQ7CiAgICAgICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IGxvY2FsTWF0cml4KCkgY29uc3Q7CiAgICAgfTsKSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3Zn
L1NWR0dyYWRpZW50RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAg
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4g
PHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBL
REUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC02MCw4ICs1OCw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVmVjdG9yPFNWR0dyYWRpZW50U3RvcD4gYnVp
bGRTdG9wcygpIGNvbnN0OwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTVkdQYWludFNlcnZlckdy
YWRpZW50PiBtX3Jlc291cmNlOwogIAotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQq
IGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJvdGVjdGVk
OgogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHR3JhZGllbnRFbGVt
ZW50LCBTVkdHcmFkaWVudEVsZW1lbnRJZGVudGlmaWVyLCBTVkdOYW1lczo6c3ByZWFkTWV0aG9k
QXR0clN0cmluZywgaW50LCBTcHJlYWRNZXRob2QsIHNwcmVhZE1ldGhvZCkKICAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0dyYWRpZW50RWxlbWVudCwgU1ZHR3JhZGll
bnRFbGVtZW50SWRlbnRpZmllciwgU1ZHTmFtZXM6OmdyYWRpZW50VW5pdHNBdHRyU3RyaW5nLCBp
bnQsIEdyYWRpZW50VW5pdHMsIGdyYWRpZW50VW5pdHMpCkBAIC03MSw3ICs2Nyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R0dyYWRpZW50RWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlSWRlbnRpZmllciwgWExpbmtOYW1lczo6
aHJlZkF0dHJTdHJpbmcsIFN0cmluZywgSHJlZiwgaHJlZikKIAogICAgICAgICAvLyBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFU
SU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR0dyYWRpZW50RWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZp
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkKQogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdJbWFnZUVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAkocmV2
aXNpb24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYs
IDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAg
ICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKLSAgICBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwog
ICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgpAQCAtNjEsNyArNTksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJvdGVj
dGVkOgogICAgICAgICB2aXJ0dWFsIGJvb2wgaGF2ZUxvYWRlZFJlcXVpcmVkUmVzb3VyY2VzKCk7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxhdGl2ZVZhbHVlcygpIGNvbnN0OwotICAgICAg
ICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gdGhpczsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVD
TEFSQVRJT05TKFNWR0ltYWdlRWxlbWVudCwgU1ZHTmFtZXM6OmltYWdlVGFnU3RyaW5nLCBTVkdO
YW1lczo6eEF0dHJTdHJpbmcsIFNWR0xlbmd0aCwgWCwgeCkKQEAgLTc0LDcgKzcxLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHSW1hZ2VFbGVtZW50LCBTVkdVUklSZWZlcmVuY2VJZGVudGlmaWVyLCBYTGlua05hbWVzOjpo
cmVmQXR0clN0cmluZywgU3RyaW5nLCBIcmVmLCBocmVmKQogCiAgICAgICAgIC8vIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHSW1hZ2VFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQpCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaAkocmV2aXNpb24gNDk0NDMp
CisrKyBXZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDgg
KzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBOaWtvbGFz
IFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQs
IDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC01
MSw3ICs0OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzTWFya2VycygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHByb3RlY3RlZDoK
LSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIHRoaXM7IH0KICAgICAgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlVmFsdWVz
KCkgY29uc3Q7CiAKICAgICBwcml2YXRlOgpAQCAtNjEsNyArNTgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdMaW5lRWxl
bWVudCwgU1ZHTmFtZXM6OmxpbmVUYWdTdHJpbmcsIFNWR05hbWVzOjp5MkF0dHJTdHJpbmcsIFNW
R0xlbmd0aCwgWTIsIHkyKQogCiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTGluZUVsZW1lbnQsIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRB
dHRyU3RyaW5nLCBib29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKICAg
ICB9OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29y
ZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMjggKzEsMjYgQEAK
IC8qCi0gQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0g
Ci0gVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBwcm9qZWN0Ci0gCi0gVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotIAotIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAKLSBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCisgICAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdl
YmtpdC5vcmc+CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
ICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorKi8KIAogI2lmbmRlZiBTVkdNUGF0aEVsZW1lbnRfaAogI2RlZmluZSBTVkdNUGF0
aEVsZW1lbnRfaAotI2lmIEVOQUJMRShTVkcpCiAKKyNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUg
IlNWR1VSSVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQuaCIKIApAQCAtNDEsMTQgKzM5LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
CiAgICAgICAgIFNWR1BhdGhFbGVtZW50KiBwYXRoRWxlbWVudCgpOwogICAgICAgICAKLSAgICBw
cm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KKyAgICBwcml2YXRlOgogICAgICAgICAvLyBT
VkdVUklSZWZlcmVuY2UKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R01QYXRoRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlSWRlbnRpZmllciwgWExpbmtOYW1lczo6aHJl
ZkF0dHJTdHJpbmcsIFN0cmluZywgSHJlZiwgaHJlZikKIAogICAgICAgICAvLyBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R01QYXRoRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkKQogICAgIH07CkBAIC01Nyw1ICs1MywzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCiAjZW5kaWYgLy8gU1ZHTVBhdGhFbGVtZW50X2gK
LQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHJldmlz
aW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmliCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgaWYgKFNWR0ZpdFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoYXR0cikpCisgICAgICAgIGlmIChTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKGRvY3VtZW50KCksIGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIFNW
R1N0eWxlZEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01h
cmtlckVsZW1lbnQuaAkocmV2aXNpb24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDkgKzcwLDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgICAgICB2aXJ0dWFsIFNWR1Jlc291cmNlKiBjYW52
YXNSZXNvdXJjZSgpOwogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNW
R0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAg
cHJpdmF0ZToKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR01hcmtl
ckVsZW1lbnQsIFNWR05hbWVzOjptYXJrZXJUYWdTdHJpbmcsIFNWR05hbWVzOjpyZWZYQXR0clN0
cmluZywgU1ZHTGVuZ3RoLCBSZWZYLCByZWZYKQogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHTWFya2VyRWxlbWVudCwgU1ZHTmFtZXM6Om1hcmtlclRhZ1N0cmluZywg
U1ZHTmFtZXM6OnJlZllBdHRyU3RyaW5nLCBTVkdMZW5ndGgsIFJlZlksIHJlZlkpCkBAIC04Mywx
MyArODAsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBBTklNQVRFRF9QUk9QRVJU
WV9ERUNMQVJBVElPTlMoU1ZHTWFya2VyRWxlbWVudCwgU1ZHTmFtZXM6Om1hcmtlclRhZ1N0cmlu
ZywgU1ZHT3JpZW50QW5nbGVBdHRySWRlbnRpZmllciwgU1ZHQW5nbGUsIE9yaWVudEFuZ2xlLCBv
cmllbnRBbmdsZSkKIAogICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0g
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR01hcmtlckVsZW1lbnQsIFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRy
U3RyaW5nLCBib29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKIAogICAg
ICAgICAvLyBTVkdGaXRUb1ZpZXdCb3gKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0ZpdFRvVmlld0JveCwgU1ZHRml0VG9WaWV3Qm94SWRlbnRpZmllciwgU1ZHTmFt
ZXM6OnZpZXdCb3hBdHRyU3RyaW5nLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCi0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaXRUb1ZpZXdCb3gsIFNWR0Zp
dFRvVmlld0JveElkZW50aWZpZXIsIFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0clN0
cmluZywgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbywgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2Vy
dmVBc3BlY3RSYXRpbykKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNW
R01hcmtlckVsZW1lbnQsIFNWR0ZpdFRvVmlld0JveElkZW50aWZpZXIsIFNWR05hbWVzOjp2aWV3
Qm94QXR0clN0cmluZywgRmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQorICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFya2VyRWxlbWVudCwgU1ZHRml0VG9WaWV3
Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyU3RyaW5nLCBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVj
dFJhdGlvKQogIAogICAgICAgICBSZWZQdHI8U1ZHUmVzb3VyY2VNYXJrZXI+IG1fbWFya2VyOwog
ICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29y
ZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDYgQEAKIC8q
CiAgICAgQ29weXJpZ2h0IChDKSAyMDA1IEFsZXhhbmRlciBLZWxsZXR0IDxseXBhbm92QGtkZS5v
cmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNTQsOSArNTIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgUGFzc093blB0cjxJbWFnZUJ1ZmZlcj4gZHJhd01hc2tlckNvbnRlbnQoY29u
c3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBGbG9hdFJlY3QmIG1hc2tSZWN0KSBjb25zdDsKIAot
ICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXNrRWxlbWVudCwgU1ZHTmFtZXM6
Om1hc2tUYWdTdHJpbmcsIFNWR05hbWVzOjptYXNrVW5pdHNBdHRyU3RyaW5nLCBpbnQsIE1hc2tV
bml0cywgbWFza1VuaXRzKQogICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMo
U1ZHTWFza0VsZW1lbnQsIFNWR05hbWVzOjptYXNrVGFnU3RyaW5nLCBTVkdOYW1lczo6bWFza0Nv
bnRlbnRVbml0c0F0dHJTdHJpbmcsIGludCwgTWFza0NvbnRlbnRVbml0cywgbWFza0NvbnRlbnRV
bml0cykKQEAgLTY5LDcgKzY0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBBTklN
QVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHTWFza0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5j
ZUlkZW50aWZpZXIsIFhMaW5rTmFtZXM6OmhyZWZBdHRyU3RyaW5nLCBTdHJpbmcsIEhyZWYsIGhy
ZWYpCiAKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdNYXNrRWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJv
b2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogCkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdQYXRoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhF
bGVtZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+
CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQog
ICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtOTksMTYgKzk3LDEzIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNNYXJrZXJzKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0
IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHUGF0aFNlZ0xpc3Q+IG1fcGF0
aFNlZ0xpc3Q7CiAKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1Bh
dGhFbGVtZW50LCBTVkdOYW1lczo6cGF0aFRhZ1N0cmluZywgU1ZHTmFtZXM6OnBhdGhMZW5ndGhB
dHRyU3RyaW5nLCBmbG9hdCwgUGF0aExlbmd0aCwgcGF0aExlbmd0aCkKIAogICAgICAgICAvLyBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR1BhdGhFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRp
ZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpl
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAgICAgfTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdHRl
cm5FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBTVkdQYXR0ZXJuRWxl
bWVudDo6cGFyc2VNYXBwZWRBdHRyaQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAo
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikp
CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChTVkdGaXRUb1ZpZXdCb3g6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKGF0dHIpKQorICAgICAgICBpZiAoU1ZHRml0VG9WaWV3Qm94OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShkb2N1bWVudCgpLCBhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICBTVkdTdHlsZWRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsK
SW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAkocmV2aXNpb24gNDk0NDMpCisrKyBXZWJDb3Jl
L3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAog
ICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIw
MDYsIDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC01OCw5
ICs1Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICAgICAg
dmlydHVhbCBTVkdSZXNvdXJjZSogY2FudmFzUmVzb3VyY2UoKTsKIAotICAgIHByb3RlY3RlZDoK
LSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdQYXR0ZXJuRWxlbWVudCwgU1ZHTmFtZXM6OnBhdHRlcm5UYWdT
dHJpbmcsIFNWR05hbWVzOjp4QXR0clN0cmluZywgU1ZHTGVuZ3RoLCBYLCB4KQogICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUGF0dGVybkVsZW1lbnQsIFNWR05hbWVz
OjpwYXR0ZXJuVGFnU3RyaW5nLCBTVkdOYW1lczo6eUF0dHJTdHJpbmcsIFNWR0xlbmd0aCwgWSwg
eSkKQEAgLTc0LDEzICs2OSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEFOSU1B
VEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdQYXR0ZXJuRWxlbWVudCwgU1ZHVVJJUmVmZXJl
bmNlSWRlbnRpZmllciwgWExpbmtOYW1lczo6aHJlZkF0dHJTdHJpbmcsIFN0cmluZywgSHJlZiwg
aHJlZikKIAogICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5J
TUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1BhdHRlcm5FbGVtZW50LCBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmlu
ZywgYm9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAKLSAgICAgICAg
Ly8gU1ZHRml0VG9WaWV3Qm94Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdGaXRUb1ZpZXdCb3gsIFNWR0ZpdFRvVmlld0JveElkZW50aWZpZXIsIFNWR05hbWVzOjp2
aWV3Qm94QXR0clN0cmluZywgRmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQotICAgICAgICBB
TklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBTVkdGaXRUb1Zp
ZXdCb3hJZGVudGlmaWVyLCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHJTdHJpbmcs
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNw
ZWN0UmF0aW8pCisgICAgICAgIC8vIFNWR1BhdHRlcm5FbGVtZW50CisgICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdQYXR0ZXJuRWxlbWVudCwgU1ZHRml0VG9WaWV3Qm94
SWRlbnRpZmllciwgU1ZHTmFtZXM6OnZpZXdCb3hBdHRyU3RyaW5nLCBGbG9hdFJlY3QsIFZpZXdC
b3gsIHZpZXdCb3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdQ
YXR0ZXJuRWxlbWVudCwgU1ZHRml0VG9WaWV3Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6OnByZXNl
cnZlQXNwZWN0UmF0aW9BdHRyU3RyaW5nLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBQcmVzZXJ2
ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQogIAogICAgICAgICBtdXRhYmxlIFJl
ZlB0cjxTVkdQYWludFNlcnZlclBhdHRlcm4+IG1fcmVzb3VyY2U7CiAKSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR1BvbHlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2x5
RWxlbWVudC5jcHAJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNyArMTE4LDcgQEAgdm9pZCBTVkdQb2x5RWxl
bWVudDo6dXBkYXRlQW5pbWF0ZWRTVkdBdAogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpwb2lu
dHNBdHRyLmxvY2FsTmFtZSgpKSB7CiAgICAgICAgIG1fc3luY2hyb25pemluZ1NWR0F0dHJpYnV0
ZXMgPSB0cnVlOwogCi0gICAgICAgIHN5bmNocm9uaXplUHJvcGVydHk8U1ZHUG9seUVsZW1lbnQs
IFNWR1BvaW50TGlzdCo+KHRoaXMsIFNWR05hbWVzOjpwb2ludHNBdHRyLCBtX3BvaW50cy5nZXQo
KSk7CisgICAgICAgIFByb3BlcnR5U3luY2hyb25pemVyPFNWR1BvbHlFbGVtZW50LCBTVkdQb2lu
dExpc3QqLCB0cnVlPjo6c3luY2hyb25pemUodGhpcywgU1ZHTmFtZXM6OnBvaW50c0F0dHIsIG1f
cG9pbnRzLmdldCgpKTsKICAgICAgICAgc2V0U3luY2hyb25pemVkU1ZHQXR0cmlidXRlcyh0cnVl
KTsKICAgICAgICAgbV9zeW5jaHJvbml6aW5nU1ZHQXR0cmlidXRlcyA9IGZhbHNlOwogICAgICAg
ICByZXR1cm47CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2Vi
Q29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAK
ICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggTmlrb2xhcyBaaW1tZXJt
YW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFy
dCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNTQs
MTUgKzUyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlQW5pbWF0ZWRTVkdBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAKLSAgICBw
cm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KKyAgICBwcml2YXRlOgogICAgICAgICAvLyBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RF
Q0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291
cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR1BvbHlFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRp
ZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR05hbWVzOjpl
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAKLSAgICBwcml2YXRlOgogICAgICAgICBtdXRhYmxlIFJl
ZlB0cjxTVkdQb2ludExpc3Q+IG1fcG9pbnRzOwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUvc3Zn
L1NWR1JlY3RFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1l
bnQuaAkocmV2aXNpb24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNiwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAg
ICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
IAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCkBAIC00Nyw3ICs0NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCBQYXRoIHRvUGF0aERhdGEoKSBjb25zdDsKIAogICAgIHByb3RlY3RlZDoK
LSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIHRoaXM7IH0KICAgICAgICAgdmlydHVhbCBib29sIGhhc1JlbGF0aXZlVmFsdWVz
KCkgY29uc3Q7CiAKICAgICBwcml2YXRlOgpAQCAtNTksNyArNTYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdSZWN0RWxl
bWVudCwgU1ZHTmFtZXM6OnJlY3RUYWdTdHJpbmcsIFNWR05hbWVzOjpyeUF0dHJTdHJpbmcsIFNW
R0xlbmd0aCwgUnksIHJ5KQogCiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAor
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHUmVjdEVsZW1lbnQsIFNW
R0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRB
dHRyU3RyaW5nLCBib29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKICAg
ICB9OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29y
ZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NCw3ICsyNjQsNyBA
QCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZU1h
cHBlZEF0dHJpYnV0ZShhdHRyKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKFNW
R0ZpdFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCisgICAgICAgIGlmIChT
VkdGaXRUb1ZpZXdCb3g6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGRvY3VtZW50KCksIGF0dHIpKQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoU1ZHWm9vbUFuZFBhbjo6cGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoYXR0cikpCiAgICAgICAgICAgICByZXR1cm47CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVu
dC5oCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgICAgICAgICAg
ICAgICAgICAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAK
LSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgpAQCAtMTMzLDggKzEzMSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdm9pZCBpbmhlcml0Vmlld0F0dHJpYnV0ZXMoU1ZHVmlld0VsZW1lbnQqKTsKIAogICAg
IHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgICAgICBmcmllbmQgY2xhc3MgUmVu
ZGVyU1ZHUm9vdDsKICAgICAgICAgZnJpZW5kIGNsYXNzIFJlbmRlclNWR1ZpZXdwb3J0Q29udGFp
bmVyOwogCkBAIC0xNDksMTMgKzE0NSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdTVkdFbGVtZW50LCBTVkdOYW1lczo6
c3ZnVGFnU3RyaW5nLCBTVkdOYW1lczo6aGVpZ2h0QXR0clN0cmluZywgU1ZHTGVuZ3RoLCBIZWln
aHQsIGhlaWdodCkKIAogICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0g
ICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNl
c1JlcXVpcmVkLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAg
ICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1NWR0VsZW1lbnQsIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyU3Ry
aW5nLCBib29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKIAogICAgICAg
ICAvLyBTVkdGaXRUb1ZpZXdCb3gKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJ
T05TKFNWR0ZpdFRvVmlld0JveCwgU1ZHRml0VG9WaWV3Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6
OnZpZXdCb3hBdHRyU3RyaW5nLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCi0gICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaXRUb1ZpZXdCb3gsIFNWR0ZpdFRv
Vmlld0JveElkZW50aWZpZXIsIFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0clN0cmlu
ZywgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbywgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2VydmVB
c3BlY3RSYXRpbykKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1NW
R0VsZW1lbnQsIFNWR0ZpdFRvVmlld0JveElkZW50aWZpZXIsIFNWR05hbWVzOjp2aWV3Qm94QXR0
clN0cmluZywgRmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQorICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHU1ZHRWxlbWVudCwgU1ZHRml0VG9WaWV3Qm94SWRlbnRp
ZmllciwgU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyU3RyaW5nLCBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvLCBQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQog
IAogICAgICAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnRXaWxsQmVjb21lSW5hY3RpdmUoKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RGlkQmVjb21lQWN0aXZlKCk7CkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5oCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDYgQEAKICAgICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUsIDIwMDggTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5v
cmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAg
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgpAQCAtNjAsNyArNTgsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBj
b25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0K
ICAgICAgICAgdmlydHVhbCBib29sIGhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpOwogCiAg
ICAgICAgIHZpcnR1YWwgU3RyaW5nIHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkgY29uc3Q7CkBAIC03
Nyw3ICs3NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR1NjcmlwdEVsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZUlkZW50aWZp
ZXIsIFhMaW5rTmFtZXM6OmhyZWZBdHRyU3RyaW5nLCBTdHJpbmcsIEhyZWYsIGhyZWYpCiAKICAg
ICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZAotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCisgICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdTY3JpcHRFbGVtZW50LCBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkSWRlbnRpZmllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0clN0cmluZywgYm9vbCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R1N3aXRjaEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVt
ZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsNyBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx3aWxkZm94QGtkZS5vcmc+CisgICAgQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3Jn
PgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiBSb2IgQnVpcyA8YnVpc0BrZGUu
b3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KICAgICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTIyLDggKzIwLDggQEAKIAogI2lmbmRlZiBTVkdTd2l0
Y2hFbGVtZW50X2gKICNkZWZpbmUgU1ZHU3dpdGNoRWxlbWVudF9oCi0jaWYgRU5BQkxFKFNWRykK
IAorI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZC5oIgogI2luY2x1ZGUgIlNWR0xhbmdTcGFjZS5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5z
Zm9ybWFibGVFbGVtZW50LmgiCkBAIC00NCwxMiArNDIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiwgUmVuZGVyU3R5bGUqKTsKIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBj
b25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0K
LQogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQK
LSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAorICAg
ICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHU3dpdGNoRWxlbWVudCwgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0
dHJTdHJpbmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogICAg
IH07CkBAIC01OCw1ICs1MywzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2VuZGlmIC8vIEVO
QUJMRShTVkcpCiAjZW5kaWYKLQotLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9zdmcv
U1ZHU3ltYm9sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3ltYm9s
RWxlbWVudC5jcHAJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgdm9pZCBTVkdTeW1ib2xF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYgogICAgICAgICByZXR1cm47CiAgICAgaWYgKFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpKQogICAg
ICAgICByZXR1cm47Ci0gICAgaWYgKFNWR0ZpdFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoYXR0cikpCisgICAgaWYgKFNWR0ZpdFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUo
ZG9jdW1lbnQoKSwgYXR0cikpCiAgICAgICAgIHJldHVybjsKIAogICAgIFNWR1N0eWxlZEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3lt
Ym9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQu
aAkocmV2aXNpb24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsOSArMSw3IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSBOaWtvbGFzIFppbW1lcm1hbm4gPHdpbGRmb3hAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAg
ICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+
CiAKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgS0RFIHByb2plY3QKLQogICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwogICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgpAQCAtMjIsOCArMjAsOCBAQAogCiAjaWZuZGVmIFNWR1N5bWJvbEVs
ZW1lbnRfaAogI2RlZmluZSBTVkdTeW1ib2xFbGVtZW50X2gKLSNpZiBFTkFCTEUoU1ZHKQogCisj
aWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLmgi
CiAjaW5jbHVkZSAiU1ZHRml0VG9WaWV3Qm94LmgiCiAjaW5jbHVkZSAiU1ZHTGFuZ1NwYWNlLmgi
CkBAIC00NCwxOCArNDIsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZhbHNl
OyB9CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCog
Y29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0aGlzOyB9Ci0KICAgICBwcml2YXRlOgog
ICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVE
X1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR1N5bWJvbEVsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWRJZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1ZHTmFtZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKICAKICAgICAgICAgLy8gU1ZHRml0
VG9WaWV3Qm94Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaXRU
b1ZpZXdCb3gsIFNWR0ZpdFRvVmlld0JveElkZW50aWZpZXIsIFNWR05hbWVzOjp2aWV3Qm94QXR0
clN0cmluZywgRmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQotICAgICAgICBBTklNQVRFRF9Q
Uk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBTVkdGaXRUb1ZpZXdCb3hJZGVu
dGlmaWVyLCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHJTdHJpbmcsIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8p
IAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHU3ltYm9sRWxlbWVu
dCwgU1ZHRml0VG9WaWV3Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6OnZpZXdCb3hBdHRyU3RyaW5n
LCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZ
X0RFQ0xBUkFUSU9OUyhTVkdTeW1ib2xFbGVtZW50LCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlmaWVy
LCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHJTdHJpbmcsIFNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pIAogICAg
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1RSZWZF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAkocmV2
aXNpb24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBO
aWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAg
IDIwMDQsIDIwMDUsIDIwMDYgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmls
ZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CkBAIC00MCw5ICszOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBS
ZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsK
ICAgICAgICAgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdDsKIAot
ICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAg
IHZvaWQgdXBkYXRlUmVmZXJlbmNlZFRleHQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRl
bnRFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRl
bnRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw2IEBACiAgICAgQ29weXJpZ2h0
IChDKSAyMDA0LCAyMDA1LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUu
b3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0
Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKQEAgLTY2LDE1ICs2NCwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBpc0tub3duQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdF
bGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgIHBy
aXZhdGU6CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdUZXh0Q29u
dGVudEVsZW1lbnQsIFNWR1RleHRDb250ZW50RWxlbWVudElkZW50aWZpZXIsIFNWR05hbWVzOjp0
ZXh0TGVuZ3RoQXR0clN0cmluZywgU1ZHTGVuZ3RoLCBUZXh0TGVuZ3RoLCB0ZXh0TGVuZ3RoKQog
ICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LCBTVkdUZXh0Q29udGVudEVsZW1lbnRJZGVudGlmaWVyLCBTVkdOYW1lczo6bGVuZ3RoQWRq
dXN0QXR0clN0cmluZywgaW50LCBMZW5ndGhBZGp1c3QsIGxlbmd0aEFkanVzdCkKIAogICAgICAg
ICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkCi0gICAgICAgIEFOSU1BVEVEX1BST1BF
UlRZX0RFQ0xBUkFUSU9OUyhTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkSWRlbnRpZmllciwKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlf
REVDTEFSQVRJT05TKFNWR1RleHRDb250ZW50RWxlbWVudCwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJpbmcsIGJvb2wsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKSAKICAgICB9OwpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
VGV4dFBhdGhFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHVGV4
dFBhdGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw2IEBACiAvKgogICAgIENv
cHlyaWdodCAoQykgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4K
IAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCkBAIC02NCw5ICs2Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoTm9kZSopIGNvbnN0OwogCi0g
ICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRF
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gdGhpczsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAg
QU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1RleHRQYXRoRWxlbWVudCwgU1ZHTmFt
ZXM6OnRleHRQYXRoVGFnU3RyaW5nLCBTVkdOYW1lczo6c3RhcnRPZmZzZXRBdHRyU3RyaW5nLCBT
VkdMZW5ndGgsIFN0YXJ0T2Zmc2V0LCBzdGFydE9mZnNldCkKICAgICAgICAgQU5JTUFURURfUFJP
UEVSVFlfREVDTEFSQVRJT05TKFNWR1RleHRQYXRoRWxlbWVudCwgU1ZHTmFtZXM6OnRleHRQYXRo
VGFnU3RyaW5nLCBTVkdOYW1lczo6bWV0aG9kQXR0clN0cmluZywgaW50LCBNZXRob2QsIG1ldGhv
ZCkKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsNiBAQAogICAgIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4g
PHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYs
IDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC02OCw5ICs2
Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHZvaWQgcmVtb3ZlRGlz
YWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUoTm9kZSogZWxlbWVudCk7CiAgICAgICAgIFNWR0Vs
ZW1lbnRJbnN0YW5jZSogaW5zdGFuY2VGb3JTaGFkb3dUcmVlRWxlbWVudChOb2RlKiBlbGVtZW50
KSBjb25zdDsKIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVt
ZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgIHByaXZh
dGU6CiAgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdVc2VFbGVtZW50
LCBTVkdOYW1lczo6dXNlVGFnU3RyaW5nLCBTVkdOYW1lczo6eEF0dHJTdHJpbmcsIFNWR0xlbmd0
aCwgWCwgeCkKICAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1VzZUVs
ZW1lbnQsIFNWR05hbWVzOjp1c2VUYWdTdHJpbmcsIFNWR05hbWVzOjp5QXR0clN0cmluZywgU1ZH
TGVuZ3RoLCBZLCB5KQpAQCAtODEsNyArNzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdVc2VFbGVtZW50LCBTVkdVUklS
ZWZlcmVuY2VJZGVudGlmaWVyLCBYTGlua05hbWVzOjpocmVmQXR0clN0cmluZywgU3RyaW5nLCBI
cmVmLCBocmVmKQogCiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAg
ICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAorICAgICAg
ICBBTklNQVRFRF9QUk9QRVJUWV9ERUNMQVJBVElPTlMoU1ZHVXNlRWxlbWVudCwgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZElkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHJTdHJp
bmcsIGJvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKQogCkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHVmlld0VsZW1lbnQuY3BwCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3ZnL1NWR1Zp
ZXdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFNWR1Zp
ZXdFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0CiAgICAgICAgIHZpZXdUYXJnZXQoKS0+cmVz
ZXQoYXR0ci0+dmFsdWUoKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIGlmIChTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKQotICAgICAgICAgICB8
fCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpCisgICAgICAgICAg
IHx8IFNWR0ZpdFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoZG9jdW1lbnQoKSwgYXR0
cikKICAgICAgICAgICAgfHwgU1ZHWm9vbUFuZFBhbjo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0
cikpCiAgICAgICAgICAgICByZXR1cm47CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkocmV2aXNp
b24gNDk0NDMpCisrKyBXZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDggKzIsNiBAQAogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtv
bGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIw
MDQsIDIwMDUsIDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBA
IC00NiwxOCArNDQsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKikgeyByZXR1cm4gZmFsc2U7IH0KIAot
ICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBjb250ZXh0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRoaXM7IH0KLQogICAgIHByaXZhdGU6CiAgICAgICAg
IC8vIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQKLSAgICAgICAgQU5JTUFURURfUFJPUEVS
VFlfREVDTEFSQVRJT05TKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWRJZGVudGlmaWVyLAorICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHVmlld0VsZW1lbnQsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRJ
ZGVudGlmaWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHTmFt
ZXM6OmV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRBdHRyU3RyaW5nLCBib29sLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwg
ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKICAKICAgICAgICAgLy8gU1ZHRml0VG9WaWV3Qm94
Ci0gICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaXRUb1ZpZXdCb3gs
IFNWR0ZpdFRvVmlld0JveElkZW50aWZpZXIsIFNWR05hbWVzOjp2aWV3Qm94QXR0clN0cmluZywg
RmxvYXRSZWN0LCBWaWV3Qm94LCB2aWV3Qm94KQotICAgICAgICBBTklNQVRFRF9QUk9QRVJUWV9E
RUNMQVJBVElPTlMoU1ZHRml0VG9WaWV3Qm94LCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlmaWVyLCBT
VkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHJTdHJpbmcsIFNWR1ByZXNlcnZlQXNwZWN0
UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8pCisgICAgICAg
IEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdWaWV3RWxlbWVudCwgU1ZHRml0VG9W
aWV3Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6OnZpZXdCb3hBdHRyU3RyaW5nLCBGbG9hdFJlY3Qs
IFZpZXdCb3gsIHZpZXdCb3gpCisgICAgICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9O
UyhTVkdWaWV3RWxlbWVudCwgU1ZHRml0VG9WaWV3Qm94SWRlbnRpZmllciwgU1ZHTmFtZXM6OnBy
ZXNlcnZlQXNwZWN0UmF0aW9BdHRyU3RyaW5nLCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLCBQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLCBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQogIAogICAgICAgICBtdXRhYmxl
IFJlZlB0cjxTVkdTdHJpbmdMaXN0PiBtX3ZpZXdUYXJnZXQ7CiAgICAgfTsKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdWaWV3
U3BlYy5jcHAJKHJldmlzaW9uIDQ5NDQzKQorKysgV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsNiBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIw
MDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBLREUgcHJvamVjdAotCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCiAgICAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCkBAIC01Nyw3ICs1NSw3
IEBAIHZvaWQgU1ZHVmlld1NwZWM6OnNldFZpZXdCb3hTdHJpbmcoY29uc3QKICAgICBmbG9hdCB4
LCB5LCB3LCBoOwogICAgIGNvbnN0IFVDaGFyKiBjID0gdmlld0JveC5jaGFyYWN0ZXJzKCk7CiAg
ICAgY29uc3QgVUNoYXIqIGVuZCA9IGMgKyB2aWV3Qm94Lmxlbmd0aCgpOwotICAgIGlmICghcGFy
c2VWaWV3Qm94KGMsIGVuZCwgeCwgeSwgdywgaCwgZmFsc2UpKQorICAgIGlmICghcGFyc2VWaWV3
Qm94KG1fY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCksIGMsIGVuZCwgeCwgeSwgdywgaCwgZmFs
c2UpKQogICAgICAgICByZXR1cm47CiAgICAgc2V0Vmlld0JveEJhc2VWYWx1ZShGbG9hdFJlY3Qo
eCwgeSwgdywgaCkpOwogfQpAQCAtMTEzLDcgKzExMSw3IEBAIGJvb2wgU1ZHVmlld1NwZWM6OnBh
cnNlVmlld1NwZWMoY29uc3QgU3QKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgICAgICAgICAgICAgIGN1cnJWaWV3U3BlYysrOwogICAgICAgICAgICAgICAgIGZsb2F0IHgs
IHksIHcsIGg7Ci0gICAgICAgICAgICAgICAgaWYgKCFwYXJzZVZpZXdCb3goY3VyclZpZXdTcGVj
LCBlbmQsIHgsIHksIHcsIGgsIGZhbHNlKSkKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlVmll
d0JveChtX2NvbnRleHRFbGVtZW50LT5kb2N1bWVudCgpLCBjdXJyVmlld1NwZWMsIGVuZCwgeCwg
eSwgdywgaCwgZmFsc2UpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgICAgICAgICAgc2V0Vmlld0JveEJhc2VWYWx1ZShGbG9hdFJlY3QoeCwgeSwgdywgaCkpOwog
ICAgICAgICAgICAgICAgIGlmIChjdXJyVmlld1NwZWMgPj0gZW5kIHx8ICpjdXJyVmlld1NwZWMg
IT0gJyknKQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5oCShyZXZpc2lvbiA0OTQ0MykKKysrIFdlYkNvcmUvc3Zn
L1NWR1ZpZXdTcGVjLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw2IEBACiAvKgogICAgIENv
cHlyaWdodCAoQykgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCi0gICAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0KICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
QEAgLTUzLDEzICs1MSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0cmluZyB2
aWV3VGFyZ2V0U3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV92aWV3VGFyZ2V0U3RyaW5nOyB9CiAg
ICAgICAgIFNWR0VsZW1lbnQqIHZpZXdUYXJnZXQoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFs
IGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3Q7CisgICAgICAgIGNvbnN0
IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICAvLyBTVkdGaXRUb1ZpZXdCb3gKLSAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFS
QVRJT05TKFNWR0ZpdFRvVmlld0JveCwgU1ZHRml0VG9WaWV3Qm94SWRlbnRpZmllciwgU1ZHTmFt
ZXM6OnZpZXdCb3hBdHRyU3RyaW5nLCBGbG9hdFJlY3QsIFZpZXdCb3gsIHZpZXdCb3gpCi0gICAg
ICAgIEFOSU1BVEVEX1BST1BFUlRZX0RFQ0xBUkFUSU9OUyhTVkdGaXRUb1ZpZXdCb3gsIFNWR0Zp
dFRvVmlld0JveElkZW50aWZpZXIsIFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0clN0
cmluZywgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbywgUHJlc2VydmVBc3BlY3RSYXRpbywgcHJlc2Vy
dmVBc3BlY3RSYXRpbykKLSAKKyAgICAgICAgQU5JTUFURURfUFJPUEVSVFlfREVDTEFSQVRJT05T
KFNWR1ZpZXdTcGVjLCBTVkdGaXRUb1ZpZXdCb3hJZGVudGlmaWVyLCBTVkdOYW1lczo6dmlld0Jv
eEF0dHJTdHJpbmcsIEZsb2F0UmVjdCwgVmlld0JveCwgdmlld0JveCkKKyAgICAgICAgQU5JTUFU
RURfUFJPUEVSVFlfREVDTEFSQVRJT05TKFNWR1ZpZXdTcGVjLCBTVkdGaXRUb1ZpZXdCb3hJZGVu
dGlmaWVyLCBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHJTdHJpbmcsIFNWR1ByZXNl
cnZlQXNwZWN0UmF0aW8sIFByZXNlcnZlQXNwZWN0UmF0aW8sIHByZXNlcnZlQXNwZWN0UmF0aW8p
CisKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8U1ZHVHJhbnNmb3JtTGlzdD4gbV90cmFuc2Zvcm07
CiAgICAgICAgIGNvbnN0IFNWR1NWR0VsZW1lbnQqIG1fY29udGV4dEVsZW1lbnQ7CiAgICAgICAg
IFN0cmluZyBtX3ZpZXdUYXJnZXRTdHJpbmc7
</data>
<flag name="review"
          id="22364"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
      

    </bug>

</bugzilla>