<?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>109284</bug_id>
          
          <creation_ts>2013-02-08 04:18:18 -0800</creation_ts>
          <short_desc>Web Inspector: for event listener provide handler function value in protocol and in UI</short_desc>
          <delta_ts>2013-03-15 14:10:00 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Peter Rybin">prybin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>dglazkov</cc>
    
    <cc>graouts</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>828422</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-02-08 04:18:18 -0800</bug_when>
    <thetext>Event listener handler is typically a JavaScript function. A direct display of the function value is missing. Function value should be expandable as any JavaScript value.
This allows to see closure variables and function-as-object properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828457</commentid>
    <comment_count>1</comment_count>
      <attachid>187293</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-02-08 05:08:42 -0800</bug_when>
    <thetext>Created attachment 187293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828470</commentid>
    <comment_count>2</comment_count>
      <attachid>187293</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-08 05:31:59 -0800</bug_when>
    <thetext>Comment on attachment 187293
Patch

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

&gt; Source/WebCore/bindings/v8/ScriptEventListener.cpp:112
&gt; +    V8AbstractEventListener* v8Listener = static_cast&lt;V8AbstractEventListener*&gt;(listener);

Please extract common part with eventListenerHandlerBody into a separate function.

&gt; Source/WebCore/inspector/Inspector.json:1748
&gt; +                    { &quot;name&quot;: &quot;handler&quot;, &quot;$ref&quot;: &quot;Runtime.RemoteObject&quot;, &quot;optional&quot;: true, &quot;hidden&quot;: true, &quot;description&quot;: &quot;Event handler function value&quot; }

The type is already hidden.

&gt; Source/WebCore/inspector/Inspector.json:1870
&gt; +                    { &quot;name&quot;: &quot;objectGroup&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;Symbolic group name for handler value.&quot; }

Please add a note on that handler won&apos;t be returned if the group is not specified.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1394
&gt; +                InjectedScript injectedScript = m_injectedScriptManager-&gt;injectedScriptFor(mainWorldScriptState(frame));

You should use the world from event listener instead.

&gt; Source/WebCore/inspector/front-end/EventListenersSidebarPane.js:123
&gt; +            node.eventListeners(&quot;arabypaC&quot;, callback);

Please use WebInspector.EventListenersSidebarPane._objectGroupName</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829817</commentid>
    <comment_count>3</comment_count>
      <attachid>187603</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-02-11 09:58:19 -0800</bug_when>
    <thetext>Created attachment 187603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829950</commentid>
    <comment_count>4</comment_count>
      <attachid>187603</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 11:37:05 -0800</bug_when>
    <thetext>Comment on attachment 187603
Patch

Attachment 187603 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16491317

New failing tests:
inspector/elements/event-listeners-about-blank.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829986</commentid>
    <comment_count>5</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-02-11 12:31:44 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/bindings/v8/ScriptEventListener.cpp:112
&gt; &gt; +    V8AbstractEventListener* v8Listener = static_cast&lt;V8AbstractEventListener*&gt;(listener);
&gt; Please extract common part with eventListenerHandlerBody into a separate function.

Cannot do this thing. It turned out that final toWebCoreStringWithNullCheck statement depends on contextScope and breaks if the object doesn&apos;t exist.

&gt; &gt; Source/WebCore/inspector/Inspector.json:1748
&gt; &gt; +                    { &quot;name&quot;: &quot;handler&quot;, &quot;$ref&quot;: &quot;Runtime.RemoteObject&quot;, &quot;optional&quot;: true, &quot;hidden&quot;: true, &quot;description&quot;: &quot;Event handler function value&quot; }
&gt; The type is already hidden.

Done

&gt; &gt; Source/WebCore/inspector/Inspector.json:1870
&gt; &gt; +                    { &quot;name&quot;: &quot;objectGroup&quot;, &quot;type&quot;: &quot;string&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;Symbolic group name for handler value.&quot; }
&gt; Please add a note on that handler won&apos;t be returned if the group is not specified.

Done

&gt; &gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1394
&gt; &gt; +                InjectedScript injectedScript = m_injectedScriptManager-&gt;injectedScriptFor(mainWorldScriptState(frame));
&gt; You should use the world from event listener instead.

Done

&gt; &gt; Source/WebCore/inspector/front-end/EventListenersSidebarPane.js:123
&gt; &gt; +            node.eventListeners(&quot;arabypaC&quot;, callback);
&gt; Please use WebInspector.EventListenersSidebarPane._objectGroupName

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829992</commentid>
    <comment_count>6</comment_count>
      <attachid>187603</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 12:39:48 -0800</bug_when>
    <thetext>Comment on attachment 187603
Patch

Attachment 187603 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16494309

New failing tests:
inspector/elements/event-listeners-about-blank.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830004</commentid>
    <comment_count>7</comment_count>
      <attachid>187641</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-02-11 12:59:31 -0800</bug_when>
    <thetext>Created attachment 187641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830694</commentid>
    <comment_count>8</comment_count>
      <attachid>187641</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-12 01:37:28 -0800</bug_when>
    <thetext>Comment on attachment 187641
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:1759
&gt; +                    { &quot;name&quot;: &quot;handler&quot;, &quot;$ref&quot;: &quot;Runtime.RemoteObject&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;Event handler function value&quot; }

Missing . at the end of the sentence.

&gt; Source/WebCore/inspector/InspectorDOMAgent.h:134
&gt; +    virtual void getEventListenersForNode(ErrorString*, int nodeId, const WTF::String*, RefPtr&lt;TypeBuilder::Array&lt;TypeBuilder::DOM::EventListener&gt; &gt;&amp; listenersArray);

Param name would make sense here, otherwise it is hard to guess that the string param is objectGroupId</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830915</commentid>
    <comment_count>9</comment_count>
      <attachid>187863</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-02-12 07:08:03 -0800</bug_when>
    <thetext>Created attachment 187863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830953</commentid>
    <comment_count>10</comment_count>
      <attachid>187863</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-12 08:03:07 -0800</bug_when>
    <thetext>Comment on attachment 187863
Patch

Clearing flags on attachment: 187863

Committed r142627: &lt;http://trac.webkit.org/changeset/142627&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830954</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-12 08:03:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856277</commentid>
    <comment_count>12</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2013-03-15 14:10:00 -0700</bug_when>
    <thetext>See duplicate bug with some context:
https://bugs.webkit.org/show_bug.cgi?id=107289</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187293</attachid>
            <date>2013-02-08 05:08:42 -0800</date>
            <delta_ts>2013-02-11 09:58:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109284-20130208170516.patch</filename>
            <type>text/plain</type>
            <size>21487</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmY2Q1Yzg5ZjlmYmNj
N2RlZjllNDNlNmMzYTVmMjViZmViNzcwNC4uMjcxYWIzNjdjNzMxM2Y4ZGJmNmJmODVlNzkwMjNk
OTE5ZGNhMWU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTA4ICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
Zm9yIGV2ZW50IGxpc3RlbmVyIHByb3ZpZGUgaGFuZGxlciBmdW5jdGlvbiB2YWx1ZSBpbiBwcm90
b2NvbCBhbmQgaW4gVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTI4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBmZWF0dXJlIGltcGxpZXMgdGhhdCB3ZSBpbmNsdWRlIGEgcmVhbCBoYW5kbGVy
IGZ1bmN0aW9uIHZhbHVlIGludG8gZXZlbnQgbGlzdGVuZXIgZGVzY3JpcHRpb24uCisgICAgICAg
IFByb3RvY29sIGRlc2NyaXB0aW9uLCBpbnNwZWN0b3IgRE9NIGFnZW50ICh3aXRoIFY4IGFuZCBK
U0MgYmFja2VuZHMpIGFuZCBmcm9udC1lbmQgaXMgcGF0Y2hlZCBhY2NvcmRpbmdseS4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZXZlbnRMaXN0ZW5lckhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvU2NyaXB0RXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpldmVudExpc3RlbmVySGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcik6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JET01B
Z2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5ldmVudExpc3RlbmVycyk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUucHJvdG90eXBl
LnVwZGF0ZSk6CisgICAgICAgICguKToKKwogMjAxMy0wMi0wNiAgQW5kcmVhcyBLbGluZyAgPGFr
bGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgR2x5cGhQYWdlIGZvciBjYXNlIHdo
ZXJlIGFsbCBnbHlwaHMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgc2FtZSBmb250LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAppbmRleCAx
YWNlNDdmNjA3OTc2NDQ5ZWI3MjIyYWY0M2Q4MTk2YWRlNTE5ZmRkLi45ZWUyYWVjZDkyMTk0OGU2
NzI4NmI1Mjc1MDY0YjRlYmNlYjliZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcApAQCAtMTA2LDYgKzEwNiwxOSBAQCBTdHJp
bmcgZXZlbnRMaXN0ZW5lckhhbmRsZXJCb2R5KERvY3VtZW50KiBkb2N1bWVudCwgRXZlbnRMaXN0
ZW5lciogZXZlbnRMaXN0ZW5lcgogICAgIHJldHVybiBqc0Z1bmN0aW9uLT50b1N0cmluZyhzY3Jp
cHRTdGF0ZSktPnZhbHVlKHNjcmlwdFN0YXRlKTsKIH0KIAorU2NyaXB0VmFsdWUgZXZlbnRMaXN0
ZW5lckhhbmRsZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBFdmVudExpc3RlbmVyKiBldmVudExpc3Rl
bmVyKQoreworICAgIGNvbnN0IEpTRXZlbnRMaXN0ZW5lcioganNMaXN0ZW5lciA9IEpTRXZlbnRM
aXN0ZW5lcjo6Y2FzdChldmVudExpc3RlbmVyKTsKKyAgICBBU1NFUlQoanNMaXN0ZW5lcik7Cisg
ICAgaWYgKCFqc0xpc3RlbmVyKQorICAgICAgICByZXR1cm4gU2NyaXB0VmFsdWUoKTsKKyAgICBK
U0xvY2tIb2xkZXIgbG9jayhqc0xpc3RlbmVyLT5pc29sYXRlZFdvcmxkKCktPmdsb2JhbERhdGEo
KSk7CisgICAgSlNDOjpKU09iamVjdCoganNGdW5jdGlvbiA9IGpzTGlzdGVuZXItPmpzRnVuY3Rp
b24oZG9jdW1lbnQpOworICAgIGlmICghanNGdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIFNjcmlw
dFZhbHVlKCk7CisgICAgcmV0dXJuIFNjcmlwdFZhbHVlKCpqc0xpc3RlbmVyLT5pc29sYXRlZFdv
cmxkKCktPmdsb2JhbERhdGEoKSwganNGdW5jdGlvbik7Cit9CisKIGJvb2wgZXZlbnRMaXN0ZW5l
ckhhbmRsZXJMb2NhdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIEV2ZW50TGlzdGVuZXIqIGV2ZW50
TGlzdGVuZXIsIFN0cmluZyYgc291cmNlTmFtZSwgU3RyaW5nJiBzY3JpcHRJZCwgaW50JiBsaW5l
TnVtYmVyKQogewogICAgIGNvbnN0IEpTRXZlbnRMaXN0ZW5lcioganNMaXN0ZW5lciA9IEpTRXZl
bnRMaXN0ZW5lcjo6Y2FzdChldmVudExpc3RlbmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuaAppbmRleCAwMTllM2QwZWI4YTAwZmQ3MDMw
NmY1NDk0ZDVmY2I4YmJhOGJmNTQ2Li43N2YzOTBlM2FlYmRkNjkxNWU0MDBlMmRiZGUxZWEwNzc4
YTBmNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVu
dExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRM
aXN0ZW5lci5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3Rl
bmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5o
IgogCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIApAQCAtNDYsNiArNDcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgUGFzc1JlZlB0cjxKU0xhenlFdmVudExpc3RlbmVyPiBjcmVh
dGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKE5vZGUqLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSk7CiAgICAgUGFzc1JlZlB0cjxKU0xhenlFdmVudExpc3Rl
bmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKEZyYW1lKiwgY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwogICAgIFN0cmluZyBldmVudExpc3Rl
bmVySGFuZGxlckJvZHkoRG9jdW1lbnQqLCBFdmVudExpc3RlbmVyKik7CisgICAgU2NyaXB0VmFs
dWUgZXZlbnRMaXN0ZW5lckhhbmRsZXIoRG9jdW1lbnQqLCBFdmVudExpc3RlbmVyKik7CiAgICAg
Ym9vbCBldmVudExpc3RlbmVySGFuZGxlckxvY2F0aW9uKERvY3VtZW50KiwgRXZlbnRMaXN0ZW5l
ciosIFN0cmluZyYgc291cmNlTmFtZSwgU3RyaW5nJiBzY3JpcHRJZCwgaW50JiBsaW5lTnVtYmVy
KTsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAppbmRleCA1NTBhMjRlY2Q3NzY5OTg0NjNm
ZWU1NGQwYWY3MGU1NTk1ZGY4NTVmLi5hOGQ4YzBkYzdjYWIyNTRlYjQyN2JiZGUyOGZmMDJhNzdk
NDRmMzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVu
dExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVu
dExpc3RlbmVyLmNwcApAQCAtMTAzLDYgKzEwMywyMSBAQCBTdHJpbmcgZXZlbnRMaXN0ZW5lckhh
bmRsZXJCb2R5KERvY3VtZW50KiBkb2N1bWVudCwgRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCiAg
ICAgcmV0dXJuIHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2soZnVuY3Rpb24pOwogfQogCitT
Y3JpcHRWYWx1ZSBldmVudExpc3RlbmVySGFuZGxlcihEb2N1bWVudCogZG9jdW1lbnQsIEV2ZW50
TGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIGlmIChsaXN0ZW5lci0+dHlwZSgpICE9IEV2ZW50
TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lclR5cGUpCisgICAgICAgIHJldHVybiBTY3JpcHRWYWx1
ZSgpOworCisgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOworICAgIFY4QWJzdHJhY3RFdmVudExp
c3RlbmVyKiB2OExpc3RlbmVyID0gc3RhdGljX2Nhc3Q8VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIq
PihsaXN0ZW5lcik7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCA9IHRvVjhD
b250ZXh0KGRvY3VtZW50LCB2OExpc3RlbmVyLT53b3JsZENvbnRleHQoKSk7CisgICAgdjg6OkNv
bnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKKyAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IGZ1bmN0aW9uID0gdjhMaXN0ZW5lci0+Z2V0TGlzdGVuZXJPYmplY3QoZG9jdW1lbnQp
OworICAgIGlmIChmdW5jdGlvbi5Jc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBTY3JpcHRWYWx1
ZSgpOworICAgIHJldHVybiBTY3JpcHRWYWx1ZShmdW5jdGlvbik7Cit9CisKIGJvb2wgZXZlbnRM
aXN0ZW5lckhhbmRsZXJMb2NhdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIEV2ZW50TGlzdGVuZXIq
IGxpc3RlbmVyLCBTdHJpbmcmIHNvdXJjZU5hbWUsIFN0cmluZyYgc2NyaXB0SWQsIGludCYgbGlu
ZU51bWJlcikKIHsKICAgICBpZiAobGlzdGVuZXItPnR5cGUoKSAhPSBFdmVudExpc3RlbmVyOjpK
U0V2ZW50TGlzdGVuZXJUeXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0RXZlbnRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0RXZlbnRMaXN0ZW5lci5oCmluZGV4IDkxMDg5MDNiMzA5MGNjYTU4M2I4MmI0ODNkZTUyMDJl
NTgzZTY1OGQuLjNlNmFjYmVkZjc1YWVhZmFmNDg2ZmM2OGFmNzM3NzA4ZjNjMDRlYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmgKQEAg
LTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgU2NyaXB0RXZlbnRMaXN0ZW5lcl9oCiAjZGVmaW5lIFNj
cmlwdEV2ZW50TGlzdGVuZXJfaAogCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRl
ICJWOExhenlFdmVudExpc3RlbmVyLmgiCiAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpA
QCAtNDYsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgUGFzc1JlZlB0cjxWOExh
enlFdmVudExpc3RlbmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKE5vZGUqLCBjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSk7CiAgICAgUGFzc1Jl
ZlB0cjxWOExhenlFdmVudExpc3RlbmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKEZy
YW1lKiwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwog
ICAgIFN0cmluZyBldmVudExpc3RlbmVySGFuZGxlckJvZHkoRG9jdW1lbnQqLCBFdmVudExpc3Rl
bmVyKik7CisgICAgU2NyaXB0VmFsdWUgZXZlbnRMaXN0ZW5lckhhbmRsZXIoRG9jdW1lbnQqLCBF
dmVudExpc3RlbmVyKik7CiAgICAgYm9vbCBldmVudExpc3RlbmVySGFuZGxlckxvY2F0aW9uKERv
Y3VtZW50KiwgRXZlbnRMaXN0ZW5lciosIFN0cmluZyYgc291cmNlTmFtZSwgU3RyaW5nJiBzY3Jp
cHRJZCwgaW50JiBsaW5lTnVtYmVyKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGVjZmNmZTc0YmRhYzE3ZTlhZWMy
MjgxMmVkNmI5YWVjZTdhNTkxYmQuLjFmYWIzMDM5ZWI2YjQxMzE0MzQyN2Q5ZjdmNWE2N2ZjOGMy
ZjVlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTE3NDQs
NyArMTc0NCw4IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRy
ZWYiOiAiTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRhcmdldCA8Y29kZT5ET01Ob2RlPC9jb2Rl
PiBpZC4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlckJvZHkiLCAi
dHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRXZlbnQgaGFuZGxlciBmdW5jdGlvbiBi
b2R5LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsb2NhdGlvbiIsICIkcmVm
IjogIkRlYnVnZ2VyLkxvY2F0aW9uIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IkhhbmRsZXIgY29kZSBsb2NhdGlvbi4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAic291cmNlTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJTb3VyY2Ugc2NyaXB0IFVSTC4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJzb3VyY2VOYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIlNvdXJjZSBzY3JpcHQgVVJMLiIgfSwKKyAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJoYW5kbGVyIiwgIiRyZWYiOiAiUnVudGltZS5SZW1vdGVPYmplY3QiLCAi
b3B0aW9uYWwiOiB0cnVlLCAiaGlkZGVuIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkV2ZW50IGhh
bmRsZXIgZnVuY3Rpb24gdmFsdWUiIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJET00gaW50ZXJhY3Rpb24gaXMgaW1wbGVtZW50ZWQgaW4gdGVy
bXMgb2YgbWlycm9yIG9iamVjdHMgdGhhdCByZXByZXNlbnQgdGhlIGFjdHVhbCBET00gbm9kZXMu
IERPTU5vZGUgaXMgYSBiYXNlIG5vZGUgbWlycm9yIHR5cGUuIgogICAgICAgICAgICAgfSwKQEAg
LTE4NjUsNyArMTg2Niw4IEBACiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUi
OiAiZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJO
b2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIG5vZGUgdG8gZ2V0IGxpc3RlbmVycyBm
b3IuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlkIiwgIiRyZWYiOiAi
Tm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBub2RlIHRvIGdldCBsaXN0ZW5lcnMg
Zm9yLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RHcm91cCIsICJ0
eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTeW1ib2xp
YyBncm91cCBuYW1lIGZvciBoYW5kbGVyIHZhbHVlLiIgfQogICAgICAgICAgICAgICAgIF0sCiAg
ICAgICAgICAgICAgICAgInJldHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAibGlzdGVuZXJzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkV2ZW50
TGlzdGVuZXIifSwgImRlc2NyaXB0aW9uIjogIkFycmF5IG9mIHJlbGV2YW50IGxpc3RlbmVycy4i
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmlu
ZGV4IDg0ZjZjNmQxNTcxMTY2MzlkZDMzYTAyZTQ0MTYxMjUyMjAyOGUzNTguLjcyOTFmYjIwYzcw
YTRmMDYxNzRkZjJlY2Y5ZWE1NTk2ODczZWFjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNzYyLDcgKzc2Miw3IEBAIHZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OnNldE5vZGVWYWx1ZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGlu
dCBub2RlSWQsIGNvbnN0CiAgICAgbV9kb21FZGl0b3ItPnJlcGxhY2VXaG9sZVRleHQodG9UZXh0
KG5vZGUpLCB2YWx1ZSwgZXJyb3JTdHJpbmcpOwogfQogCi12b2lkIEluc3BlY3RvckRPTUFnZW50
OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQg
bm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpET006OkV2ZW50
TGlzdGVuZXI+ID4mIGxpc3RlbmVyc0FycmF5KQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0
RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgaW50IG5vZGVJ
ZCwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyPiA+JiBsaXN0ZW5lcnNBcnJheSkKIHsKICAg
ICBsaXN0ZW5lcnNBcnJheSA9IFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6RE9NOjpF
dmVudExpc3RlbmVyPjo6Y3JlYXRlKCk7CiAgICAgTm9kZSogbm9kZSA9IGFzc2VydE5vZGUoZXJy
b3JTdHJpbmcsIG5vZGVJZCk7CkBAIC03NzksNyArNzc5LDcgQEAgdm9pZCBJbnNwZWN0b3JET01B
Z2VudDo6Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
aW50IG4KICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCB2ZWN0b3Iuc2l6ZSgpOyArK2op
IHsKICAgICAgICAgICAgIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiBsaXN0ZW5lciA9
IHZlY3RvcltqXTsKICAgICAgICAgICAgIGlmIChsaXN0ZW5lci51c2VDYXB0dXJlKQotICAgICAg
ICAgICAgICAgIGxpc3RlbmVyc0FycmF5LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0
ZW5lcihsaXN0ZW5lciwgaW5mby5ldmVudFR5cGUsIGluZm8ubm9kZSkpOworICAgICAgICAgICAg
ICAgIGxpc3RlbmVyc0FycmF5LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihs
aXN0ZW5lciwgaW5mby5ldmVudFR5cGUsIGluZm8ubm9kZSwgb2JqZWN0R3JvdXApKTsKICAgICAg
ICAgfQogICAgIH0KIApAQCAtNzkwLDcgKzc5MCw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6
OmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGludCBu
CiAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgdmVjdG9yLnNpemUoKTsgKytqKSB7CiAg
ICAgICAgICAgICBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIgPSB2ZWN0
b3Jbal07CiAgICAgICAgICAgICBpZiAoIWxpc3RlbmVyLnVzZUNhcHR1cmUpCi0gICAgICAgICAg
ICAgICAgbGlzdGVuZXJzQXJyYXktPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVy
KGxpc3RlbmVyLCBpbmZvLmV2ZW50VHlwZSwgaW5mby5ub2RlKSk7CisgICAgICAgICAgICAgICAg
bGlzdGVuZXJzQXJyYXktPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGxpc3Rl
bmVyLCBpbmZvLmV2ZW50VHlwZSwgaW5mby5ub2RlLCBvYmplY3RHcm91cCkpOwogICAgICAgICB9
CiAgICAgfQogfQpAQCAtMTM3NiwxNSArMTM3NiwyOSBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVy
OjpBcnJheTxUeXBlQnVpbGRlcjo6RE9NOjpOb2RlPiA+IEluc3BlY3RvckRPTUFnZW50OjpidWls
ZAogICAgIHJldHVybiBjaGlsZHJlbi5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8VHlwZUJ1
aWxkZXI6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0
Rm9yRXZlbnRMaXN0ZW5lcihjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgcmVnaXN0ZXJl
ZEV2ZW50TGlzdGVuZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiBub2Rl
KQorUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyPiBJbnNwZWN0b3JE
T01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVu
dExpc3RlbmVyJiByZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciwgY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXBJZCkKIHsKICAg
ICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lciA9IHJlZ2lzdGVyZWRFdmVudExp
c3RlbmVyLmxpc3RlbmVyOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG5vZGUtPmRvY3VtZW50
KCk7CiAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpET006OkV2ZW50TGlzdGVuZXI+IHZhbHVlID0g
VHlwZUJ1aWxkZXI6OkRPTTo6RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKCkKICAgICAgICAgLnNldFR5
cGUoZXZlbnRUeXBlKQogICAgICAgICAuc2V0VXNlQ2FwdHVyZShyZWdpc3RlcmVkRXZlbnRMaXN0
ZW5lci51c2VDYXB0dXJlKQogICAgICAgICAuc2V0SXNBdHRyaWJ1dGUoZXZlbnRMaXN0ZW5lci0+
aXNBdHRyaWJ1dGUoKSkKICAgICAgICAgLnNldE5vZGVJZChwdXNoTm9kZVBhdGhUb0Zyb250ZW5k
KG5vZGUpKQotICAgICAgICAuc2V0SGFuZGxlckJvZHkoZXZlbnRMaXN0ZW5lckhhbmRsZXJCb2R5
KG5vZGUtPmRvY3VtZW50KCksIGV2ZW50TGlzdGVuZXIuZ2V0KCkpKTsKKyAgICAgICAgLnNldEhh
bmRsZXJCb2R5KGV2ZW50TGlzdGVuZXJIYW5kbGVyQm9keShkb2N1bWVudCwgZXZlbnRMaXN0ZW5l
ci5nZXQoKSkpOworICAgIGlmIChvYmplY3RHcm91cElkKSB7CisgICAgICAgIFNjcmlwdFZhbHVl
IGZ1bmN0aW9uVmFsdWUgPSBldmVudExpc3RlbmVySGFuZGxlcihkb2N1bWVudCwgZXZlbnRMaXN0
ZW5lci5nZXQoKSk7CisgICAgICAgIGlmICghZnVuY3Rpb25WYWx1ZS5oYXNOb1ZhbHVlKCkpIHsK
KyAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOworICAgICAgICAg
ICAgaWYgKGZyYW1lKSB7CisgICAgICAgICAgICAgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRT
Y3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3IobWFpbldv
cmxkU2NyaXB0U3RhdGUoZnJhbWUpKTsKKyAgICAgICAgICAgICAgICBpZiAoIWluamVjdGVkU2Ny
aXB0Lmhhc05vVmFsdWUoKSkgeworICAgICAgICAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxk
ZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gdmFsdWVKc29uID0gaW5qZWN0ZWRTY3JpcHQud3Jh
cE9iamVjdChmdW5jdGlvblZhbHVlLCAqb2JqZWN0R3JvdXBJZCwgdHJ1ZSk7CisgICAgICAgICAg
ICAgICAgICAgIHZhbHVlLT5zZXRIYW5kbGVyKHZhbHVlSnNvbik7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogICAgIFN0cmluZyBzb3VyY2VOYW1l
OwogICAgIFN0cmluZyBzY3JpcHRJZDsKICAgICBpbnQgbGluZU51bWJlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggOTE5ZTg2OTNlOWYzOGY5
MmRkYmI3ZjI2NmNiNTBjMjY1MmYzOTRlMS4uMjExMjc5OTNmYjJjOWI2NWZjYWFiNjhjNmQ2MzUz
ODRhM2E1MDZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmgKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldE91
dGVySFRNTChFcnJvclN0cmluZyosIGludCBub2RlSWQsIFdURjo6U3RyaW5nKiBvdXRlckhUTUwp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlk
LCBjb25zdCBTdHJpbmcmIG91dGVySFRNTCk7CiAgICAgdmlydHVhbCB2b2lkIHNldE5vZGVWYWx1
ZShFcnJvclN0cmluZyosIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAgIHZp
cnR1YWwgdm9pZCBnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9k
ZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpET006OkV2ZW50TGlz
dGVuZXI+ID4mIGxpc3RlbmVyc0FycmF5KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RXZlbnRMaXN0
ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgY29uc3QgV1RGOjpTdHJpbmcq
LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpET006OkV2ZW50TGlzdGVu
ZXI+ID4mIGxpc3RlbmVyc0FycmF5KTsKICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVNlYXJjaChF
cnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgd2hpdGVzcGFjZVRyaW1tZWRRdWVyeSwgU3RyaW5n
KiBzZWFyY2hJZCwgaW50KiByZXN1bHRDb3VudCk7CiAgICAgdmlydHVhbCB2b2lkIGdldFNlYXJj
aFJlc3VsdHMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNlYXJjaElkLCBpbnQgZnJvbUlu
ZGV4LCBpbnQgdG9JbmRleCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxpbnQ+ID4mKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzY2FyZFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIHNlYXJjaElkKTsKQEAgLTIyNyw3ICsyMjcsNyBAQCBwcml2YXRlOgogICAgIFBhc3NS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gYnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqLCBp
bnQgZGVwdGgsIE5vZGVUb0lkTWFwKik7CiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJy
YXk8U3RyaW5nPiA+IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhFbGVtZW50Kik7CiAg
ICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4g
PiBidWlsZEFycmF5Rm9yQ29udGFpbmVyQ2hpbGRyZW4oTm9kZSogY29udGFpbmVyLCBpbnQgZGVw
dGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7Ci0gICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6
RE9NOjpFdmVudExpc3RlbmVyPiBidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIoY29uc3QgUmVn
aXN0ZXJlZEV2ZW50TGlzdGVuZXImLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9k
ZSopOworICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gYnVp
bGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiwg
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqLCBjb25zdCBTdHJpbmcqIG9iamVj
dEdyb3VwSWQpOwogCiAgICAgTm9kZSogbm9kZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2Vu
dC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKaW5k
ZXggY2MzZGNhNjA3MzZiM2Y0NmVmYWE1YWM1NjEwYTJiY2UzYWYxZmE4NC4uNTA3ZjY4MDhhZjlm
NDViZjE5MjkzZTk0ZDJkMmFiOWZmNTQ4NWI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCkBAIC0zNjMsMTEgKzM2MywxMiBAQCBXZWJJbnNw
ZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBvYmplY3RHcm91cElkCiAgICAgICogQHBhcmFtIHtmdW5jdGlvbig/UHJv
dG9jb2wuRXJyb3IpPX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICBldmVudExpc3RlbmVyczogZnVu
Y3Rpb24oY2FsbGJhY2spCisgICAgZXZlbnRMaXN0ZW5lcnM6IGZ1bmN0aW9uKG9iamVjdEdyb3Vw
SWQsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgRE9NQWdlbnQuZ2V0RXZlbnRMaXN0ZW5lcnNG
b3JOb2RlKHRoaXMuaWQsIGNhbGxiYWNrKTsKKyAgICAgICAgRE9NQWdlbnQuZ2V0RXZlbnRMaXN0
ZW5lcnNGb3JOb2RlKHRoaXMuaWQsIG9iamVjdEdyb3VwSWQsIGNhbGxiYWNrKTsKICAgICB9LAog
CiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuanMKaW5kZXggMjk0YWZiYmQ3NzIx
YmQ5Yjk3MmMwZmMzMWQ3NTY0MTQ3YjA3YTIwZS4uODdhM2Y5MWFlYWVjZjkzNTA1NGY1YThlNjg2
MzU5MDVkMzIxNWIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcwpAQCAtMTE5LDcg
KzExOSw4IEBAIFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChub2RlKQotICAgICAgICAgICAgbm9kZS5l
dmVudExpc3RlbmVycyhjYWxsYmFjayk7CisgICAgICAgICAgICAvLyBGSVhNRTogcHV0IGNvcnJl
Y3QgZ3JvdXAgaXMgZm9yIGZ1bmN0aW9uIHZhbHVlIGhlcmUuCisgICAgICAgICAgICBub2RlLmV2
ZW50TGlzdGVuZXJzKCJhcmFieXBhQyIsIGNhbGxiYWNrKTsKICAgICAgICAgdGhpcy5fc2VsZWN0
ZWROb2RlID0gbm9kZTsKICAgICB9LAogCkBAIC0yMDIsNiArMjAzLDEwIEBAIFdlYkluc3BlY3Rv
ci5FdmVudExpc3RlbmVyQmFyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBwcm9wZXJ0
aWVzLnB1c2goV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5LmZyb21QcmltaXRpdmVW
YWx1ZSgiaXNBdHRyaWJ1dGUiLCB0aGlzLmV2ZW50TGlzdGVuZXIuaXNBdHRyaWJ1dGUpKTsKICAg
ICAgICAgICAgIGlmIChub2RlT2JqZWN0KQogICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVz
aChuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KCJub2RlIiwgbm9kZU9iamVj
dCkpOworICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV2ZW50TGlzdGVuZXIuaGFuZGxlciAh
PT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAgICAgICB2YXIgcmVtb3RlT2JqZWN0ID0gV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZCh0aGlzLmV2ZW50TGlzdGVuZXIuaGFu
ZGxlcik7CisgICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3Iu
UmVtb3RlT2JqZWN0UHJvcGVydHkoImhhbmRsZXIiLCByZW1vdGVPYmplY3QpKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXJC
b2R5ICE9PSAidW5kZWZpbmVkIikKICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5LmZyb21QcmltaXRpdmVWYWx1ZSgibGlzdGVu
ZXJCb2R5IiwgdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5KSk7CiAgICAgICAgICAgICBp
ZiAodGhpcy5ldmVudExpc3RlbmVyLnNvdXJjZU5hbWUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmEwZThjYmEzOGJiZWY2
ZTEyYmEwOWIyNjIxNjcxOTU1M2JhYmRhOS4uOGZlMDIzNDhlNzM5ZGNmMjg4YjdiZWZiMTcyNTJi
OTVhMzE1ODIwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTA4ICBQZXRlciBSeWJp
biAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZm9yIGV2
ZW50IGxpc3RlbmVyIHByb3ZpZGUgaGFuZGxlciBmdW5jdGlvbiB2YWx1ZSBpbiBwcm90b2NvbCBh
bmQgaW4gVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTI4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3QgaXMgcmViYXNlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9ldmVudC1s
aXN0ZW5lci1zaWRlYmFyLWV4cGVjdGVkLnR4dDoKKwogMjAxMy0wMi0wNiAgTWFyamEgSMO2bHR0
w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1dLMl0gTmV3IHRlc3RzIGludHJv
ZHVjZWQgaW4gcjEwMDg5NSBmYWlsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50eHQK
aW5kZXggYzgzNThhYzI2ODg5ZGFkZjJjMDZmYmJjNzU1ZjA5MzFiODRhOGVjOC4uODIyOGNjYjMw
NjhmNmM3Mjk2MGZlNTYxMzQ0Y2FiNmU1YWQxYjFjZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5lci1zaWRlYmFy
LWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgSW5zcGVjdCBNZQogCiA9PT09PT09PSBjbGlj
ayA9PT09PT09PQogW2V4cGFuZGVkXSBkb2N1bWVudCBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0
bWw6MTkKKyAgICBoYW5kbGVyOiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNr
IC0gZG9jdW1lbnQgLSBjYXB0dXJpbmciKTsgfQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAg
IGxpbmVOdW1iZXI6IDE5CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQpIHsgY29u
c29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBjYXB0dXJpbmciKTsgfQpAQCAtMTIsMTIgKzEz
LDE0IEBAIEluc3BlY3QgTWUKICAgICB0eXBlOiBjbGljawogICAgIHVzZUNhcHR1cmU6IHRydWUK
IFtleHBhbmRlZF0gZG9jdW1lbnQgKGFub255bW91cyBmdW5jdGlvbikKKyAgICBoYW5kbGVyOiBP
YmplY3RIYW5kbGVyCiAgICAgaXNBdHRyaWJ1dGU6IGZhbHNlCiAgICAgbGlzdGVuZXJCb2R5OiBP
YmplY3RIYW5kbGVyCiAgICAgbm9kZTogI2RvY3VtZW50CiAgICAgdHlwZTogY2xpY2sKICAgICB1
c2VDYXB0dXJlOiB0cnVlCiBbZXhwYW5kZWRdIGJ1dHRvbiNub2RlIGV2ZW50LWxpc3RlbmVyLXNp
ZGViYXIuaHRtbDoxNQorICAgIGhhbmRsZXI6IGZ1bmN0aW9uIChldmVudCkgeyBjb25zb2xlLmxv
ZygiY2xpY2sgLSBidXR0b24gLSBjYXB0dXJpbmciKTsgfQogICAgIGlzQXR0cmlidXRlOiBmYWxz
ZQogICAgIGxpbmVOdW1iZXI6IDE1CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQp
IHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gY2FwdHVyaW5nIik7IH0KQEAgLTI2LDYg
KzI5LDcgQEAgSW5zcGVjdCBNZQogICAgIHR5cGU6IGNsaWNrCiAgICAgdXNlQ2FwdHVyZTogdHJ1
ZQogW2V4cGFuZGVkXSBidXR0b24jbm9kZSBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTIK
KyAgICBoYW5kbGVyOiBmdW5jdGlvbiBjbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2co
ImNsaWNrIC0gYnV0dG9uIC0gYnViYmxpbmcgKHJlZ2lzdGVyZWQgYmVmb3JlIGF0dHJpYnV0ZSki
KTsgfQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxpbmVOdW1iZXI6IDEyCiAgICAgbGlz
dGVuZXJCb2R5OiBmdW5jdGlvbiBjbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImNs
aWNrIC0gYnV0dG9uIC0gYnViYmxpbmcgKHJlZ2lzdGVyZWQgYmVmb3JlIGF0dHJpYnV0ZSkiKTsg
fQpAQCAtMzQsNiArMzgsNyBAQCBJbnNwZWN0IE1lCiAgICAgdHlwZTogY2xpY2sKICAgICB1c2VD
YXB0dXJlOiBmYWxzZQogW2V4cGFuZGVkXSBidXR0b24jbm9kZSBldmVudC1saXN0ZW5lci1zaWRl
YmFyLmh0bWw6MTYKKyAgICBoYW5kbGVyOiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2co
ImNsaWNrIC0gYnV0dG9uIC0gYXR0cmlidXRlIik7IH0KICAgICBpc0F0dHJpYnV0ZTogdHJ1ZQog
ICAgIGxpbmVOdW1iZXI6IDE2CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQpIHsg
Y29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYXR0cmlidXRlIik7IH0KQEAgLTQyLDYgKzQ3
LDcgQEAgSW5zcGVjdCBNZQogICAgIHR5cGU6IGNsaWNrCiAgICAgdXNlQ2FwdHVyZTogZmFsc2UK
IFtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjE3Cisg
ICAgaGFuZGxlcjogZnVuY3Rpb24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRv
biAtIGJ1YmJsaW5nIChyZWdpc3RlcmVkIGFmdGVyIGF0dHJpYnV0ZSkiKTsgfQogICAgIGlzQXR0
cmlidXRlOiBmYWxzZQogICAgIGxpbmVOdW1iZXI6IDE3CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5j
dGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYnViYmxpbmcgKHJl
Z2lzdGVyZWQgYWZ0ZXIgYXR0cmlidXRlKSIpOyB9CkBAIC01MCw2ICs1Niw3IEBAIEluc3BlY3Qg
TWUKICAgICB0eXBlOiBjbGljawogICAgIHVzZUNhcHR1cmU6IGZhbHNlCiBbZXhwYW5kZWRdIGRv
Y3VtZW50IGV2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbDo2CisgICAgaGFuZGxlcjogZnVuY3Rp
b24gZG9jdW1lbnRDbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9j
dW1lbnQgLSBhdHRyaWJ1dGUiKTsgfQogICAgIGlzQXR0cmlidXRlOiB0cnVlCiAgICAgbGluZU51
bWJlcjogNgogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gZG9jdW1lbnRDbGlja0hhbmRsZXIo
ZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBhdHRyaWJ1dGUiKTsgfQpA
QCAtNjAsNiArNjcsNyBAQCBJbnNwZWN0IE1lCiAKID09PT09PT09IGN1c3RvbSBldmVudCA9PT09
PT09PQogW2V4cGFuZGVkXSBib2R5IGV2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbDoxMAorICAg
IGhhbmRsZXI6IGZ1bmN0aW9uIGYoKSB7fQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxp
bmVOdW1iZXI6IDEwCiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiBmKCkge30KQEAgLTcwLDYg
Kzc4LDcgQEAgSW5zcGVjdCBNZQogCiA9PT09PT09PSBob3ZlciA9PT09PT09PQogW2V4cGFuZGVk
XSBidXR0b24jbm9kZSBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTQKKyAgICBoYW5kbGVy
OiBmdW5jdGlvbiBob3ZlckhhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImhvdmVyIC0gYnV0
dG9uIC0gYnViYmxpbmciKTsgfQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxpbmVOdW1i
ZXI6IDE0CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiBob3ZlckhhbmRsZXIoZXZlbnQpIHsg
Y29uc29sZS5sb2coImhvdmVyIC0gYnV0dG9uIC0gYnViYmxpbmciKTsgfQpAQCAtODAsNiArODks
NyBAQCBJbnNwZWN0IE1lCiAKID09PT09PT09IGNsaWNrID09PT09PT09CiBbZXhwYW5kZWRdIGRv
Y3VtZW50IGV2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbDoxOQorICAgIGhhbmRsZXI6IGZ1bmN0
aW9uIChldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sgLSBkb2N1bWVudCAtIGNhcHR1cmluZyIp
OyB9CiAgICAgaXNBdHRyaWJ1dGU6IGZhbHNlCiAgICAgbGluZU51bWJlcjogMTkKICAgICBsaXN0
ZW5lckJvZHk6IGZ1bmN0aW9uIChldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sgLSBkb2N1bWVu
dCAtIGNhcHR1cmluZyIpOyB9CkBAIC04OCwxMiArOTgsMTQgQEAgSW5zcGVjdCBNZQogICAgIHR5
cGU6IGNsaWNrCiAgICAgdXNlQ2FwdHVyZTogdHJ1ZQogW2V4cGFuZGVkXSBkb2N1bWVudCAoYW5v
bnltb3VzIGZ1bmN0aW9uKQorICAgIGhhbmRsZXI6IE9iamVjdEhhbmRsZXIKICAgICBpc0F0dHJp
YnV0ZTogZmFsc2UKICAgICBsaXN0ZW5lckJvZHk6IE9iamVjdEhhbmRsZXIKICAgICBub2RlOiAj
ZG9jdW1lbnQKICAgICB0eXBlOiBjbGljawogICAgIHVzZUNhcHR1cmU6IHRydWUKIFtleHBhbmRl
ZF0gZG9jdW1lbnQgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjYKKyAgICBoYW5kbGVyOiBm
dW5jdGlvbiBkb2N1bWVudENsaWNrSGFuZGxlcihldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sg
LSBkb2N1bWVudCAtIGF0dHJpYnV0ZSIpOyB9CiAgICAgaXNBdHRyaWJ1dGU6IHRydWUKICAgICBs
aW5lTnVtYmVyOiA2CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiBkb2N1bWVudENsaWNrSGFu
ZGxlcihldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sgLSBkb2N1bWVudCAtIGF0dHJpYnV0ZSIp
OyB9CkBAIC0xMDQsNiArMTE2LDcgQEAgSW5zcGVjdCBNZQogCiA9PT09PT09PSBjdXN0b20gZXZl
bnQgPT09PT09PT0KIFtleHBhbmRlZF0gYm9keSBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6
MTAKKyAgICBoYW5kbGVyOiBmdW5jdGlvbiBmKCkge30KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UK
ICAgICBsaW5lTnVtYmVyOiAxMAogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gZigpIHt9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187603</attachid>
            <date>2013-02-11 09:58:19 -0800</date>
            <delta_ts>2013-02-11 12:59:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109284-20130211215450.patch</filename>
            <type>text/plain</type>
            <size>22811</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RmY2Q1Yzg5ZjlmYmNj
N2RlZjllNDNlNmMzYTVmMjViZmViNzcwNC4uNTBiNjU4YjQyZmQ4NjU3YzBiMWIyNjRmZTEwMDgz
YTVmNjMwOWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAyLTExICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
Zm9yIGV2ZW50IGxpc3RlbmVyIHByb3ZpZGUgaGFuZGxlciBmdW5jdGlvbiB2YWx1ZSBpbiBwcm90
b2NvbCBhbmQgaW4gVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTI4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBmZWF0dXJlIGltcGxpZXMgdGhhdCB3ZSBpbmNsdWRlIGEgcmVhbCBoYW5kbGVy
IGZ1bmN0aW9uIHZhbHVlIGludG8gZXZlbnQgbGlzdGVuZXIgZGVzY3JpcHRpb24uCisgICAgICAg
IFByb3RvY29sIGRlc2NyaXB0aW9uLCBpbnNwZWN0b3IgRE9NIGFnZW50ICh3aXRoIFY4IGFuZCBK
U0MgYmFja2VuZHMpIGFuZCBmcm9udC1lbmQgaXMgcGF0Y2hlZCBhY2NvcmRpbmdseS4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZXZlbnRMaXN0ZW5lckhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpldmVudExpc3RlbmVySGFuZGxlclNjcmlwdFN0YXRlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmV2ZW50TGlzdGVuZXJIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6ZXZlbnRMaXN0ZW5lckhhbmRsZXJTY3JpcHRTdGF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2Vu
dDo6Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yRE9NQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUuZXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGUp
OgorICAgICAgICAoLik6CisKIDIwMTMtMDItMDYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIE9wdGltaXplIEdseXBoUGFnZSBmb3IgY2FzZSB3aGVyZSBhbGwg
Z2x5cGhzIGFyZSBhdmFpbGFibGUgaW4gdGhlIHNhbWUgZm9udC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggMWFjZTQ3ZjYw
Nzk3NjQ0OWViNzIyMmFmNDNkODE5NmFkZTUxOWZkZC4uOTE1NzEyNDk1NzkzMGI0MjQ2MDY2ZDFm
ZmFmZDU1NDNhZTViN2E1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTEwNiw2ICsxMDYsMzEgQEAgU3RyaW5nIGV2ZW50
TGlzdGVuZXJIYW5kbGVyQm9keShEb2N1bWVudCogZG9jdW1lbnQsIEV2ZW50TGlzdGVuZXIqIGV2
ZW50TGlzdGVuZXIKICAgICByZXR1cm4ganNGdW5jdGlvbi0+dG9TdHJpbmcoc2NyaXB0U3RhdGUp
LT52YWx1ZShzY3JpcHRTdGF0ZSk7CiB9CiAKK1NjcmlwdFZhbHVlIGV2ZW50TGlzdGVuZXJIYW5k
bGVyKERvY3VtZW50KiBkb2N1bWVudCwgRXZlbnRMaXN0ZW5lciogZXZlbnRMaXN0ZW5lcikKK3sK
KyAgICBjb25zdCBKU0V2ZW50TGlzdGVuZXIqIGpzTGlzdGVuZXIgPSBKU0V2ZW50TGlzdGVuZXI6
OmNhc3QoZXZlbnRMaXN0ZW5lcik7CisgICAgQVNTRVJUKGpzTGlzdGVuZXIpOworICAgIGlmICgh
anNMaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuIFNjcmlwdFZhbHVlKCk7CisgICAgSlNMb2NrSG9s
ZGVyIGxvY2soanNMaXN0ZW5lci0+aXNvbGF0ZWRXb3JsZCgpLT5nbG9iYWxEYXRhKCkpOworICAg
IEpTQzo6SlNPYmplY3QqIGpzRnVuY3Rpb24gPSBqc0xpc3RlbmVyLT5qc0Z1bmN0aW9uKGRvY3Vt
ZW50KTsKKyAgICBpZiAoIWpzRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBTY3JpcHRWYWx1ZSgp
OworICAgIHJldHVybiBTY3JpcHRWYWx1ZSgqanNMaXN0ZW5lci0+aXNvbGF0ZWRXb3JsZCgpLT5n
bG9iYWxEYXRhKCksIGpzRnVuY3Rpb24pOworfQorCitTY3JpcHRTdGF0ZSogZXZlbnRMaXN0ZW5l
ckhhbmRsZXJTY3JpcHRTdGF0ZShGcmFtZSogZnJhbWUsIEV2ZW50TGlzdGVuZXIqIGV2ZW50TGlz
dGVuZXIpCit7CisgICAgY29uc3QgSlNFdmVudExpc3RlbmVyKiBqc0xpc3RlbmVyID0gSlNFdmVu
dExpc3RlbmVyOjpjYXN0KGV2ZW50TGlzdGVuZXIpOworICAgIEFTU0VSVChqc0xpc3RlbmVyKTsK
KyAgICBpZiAoIWpzTGlzdGVuZXIpCisgICAgICAgIHJldHVybiAwOworICAgIGlmICghZnJhbWUt
PnNjcmlwdCgpLT5jYW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhlY3V0ZVNjcmlwdCkpCisg
ICAgICAgIHJldHVybiAwOworICAgIERPTVdyYXBwZXJXb3JsZCogd29ybGQgPSBqc0xpc3RlbmVy
LT5pc29sYXRlZFdvcmxkKCk7CisgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS0+Z2xvYmFsT2Jq
ZWN0KHdvcmxkKS0+Z2xvYmFsRXhlYygpOworfQorCiBib29sIGV2ZW50TGlzdGVuZXJIYW5kbGVy
TG9jYXRpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBFdmVudExpc3RlbmVyKiBldmVudExpc3RlbmVy
LCBTdHJpbmcmIHNvdXJjZU5hbWUsIFN0cmluZyYgc2NyaXB0SWQsIGludCYgbGluZU51bWJlcikK
IHsKICAgICBjb25zdCBKU0V2ZW50TGlzdGVuZXIqIGpzTGlzdGVuZXIgPSBKU0V2ZW50TGlzdGVu
ZXI6OmNhc3QoZXZlbnRMaXN0ZW5lcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRFdmVudExpc3RlbmVyLmgKaW5kZXggMDE5ZTNkMGViOGEwMGZkNzAzMDZmNTQ5NGQ1
ZmNiOGJiYThiZjU0Ni4uNzhiYzE3OTBkYjkzMTIyN2ViZjI0NjMyNzQyZTdjNjY1N2IwNDNlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRMaXN0ZW5l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIu
aApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0ZW5lci5oIgog
I2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKIAogI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKQEAgLTQ2LDYgKzQ3LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIFBhc3NSZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlQXR0cmli
dXRlRXZlbnRMaXN0ZW5lcihOb2RlKiwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWUpOwogICAgIFBhc3NSZWZQdHI8SlNMYXp5RXZlbnRMaXN0ZW5lcj4gY3Jl
YXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihGcmFtZSosIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKTsKICAgICBTdHJpbmcgZXZlbnRMaXN0ZW5lckhhbmRs
ZXJCb2R5KERvY3VtZW50KiwgRXZlbnRMaXN0ZW5lciopOworICAgIFNjcmlwdFZhbHVlIGV2ZW50
TGlzdGVuZXJIYW5kbGVyKERvY3VtZW50KiwgRXZlbnRMaXN0ZW5lciopOworICAgIFNjcmlwdFN0
YXRlKiBldmVudExpc3RlbmVySGFuZGxlclNjcmlwdFN0YXRlKEZyYW1lKiwgRXZlbnRMaXN0ZW5l
ciopOwogICAgIGJvb2wgZXZlbnRMaXN0ZW5lckhhbmRsZXJMb2NhdGlvbihEb2N1bWVudCosIEV2
ZW50TGlzdGVuZXIqLCBTdHJpbmcmIHNvdXJjZU5hbWUsIFN0cmluZyYgc2NyaXB0SWQsIGludCYg
bGluZU51bWJlcik7CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggNTUwYTI0ZWNk
Nzc2OTk4NDYzZmVlNTRkMGFmNzBlNTU5NWRmODU1Zi4uMjFkMjQ2MGQ4ZGY2MDFjNWJlMTcyOWUy
MmQ4Mzc4ZTk3MTUxZWI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTEwMyw2ICsxMDMsMzEgQEAgU3RyaW5nIGV2ZW50
TGlzdGVuZXJIYW5kbGVyQm9keShEb2N1bWVudCogZG9jdW1lbnQsIEV2ZW50TGlzdGVuZXIqIGxp
c3RlbmVyKQogICAgIHJldHVybiB0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKGZ1bmN0aW9u
KTsKIH0KIAorU2NyaXB0VmFsdWUgZXZlbnRMaXN0ZW5lckhhbmRsZXIoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAgICBpZiAobGlzdGVuZXItPnR5cGUo
KSAhPSBFdmVudExpc3RlbmVyOjpKU0V2ZW50TGlzdGVuZXJUeXBlKQorICAgICAgICByZXR1cm4g
U2NyaXB0VmFsdWUoKTsKKworICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKKyAgICBWOEFic3Ry
YWN0RXZlbnRMaXN0ZW5lciogdjhMaXN0ZW5lciA9IHN0YXRpY19jYXN0PFY4QWJzdHJhY3RFdmVu
dExpc3RlbmVyKj4obGlzdGVuZXIpOworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRl
eHQgPSB0b1Y4Q29udGV4dChkb2N1bWVudCwgdjhMaXN0ZW5lci0+d29ybGRDb250ZXh0KCkpOwor
ICAgIHY4OjpDb250ZXh0OjpTY29wZSBjb250ZXh0U2NvcGUoY29udGV4dCk7CisgICAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBmdW5jdGlvbiA9IHY4TGlzdGVuZXItPmdldExpc3RlbmVyT2JqZWN0
KGRvY3VtZW50KTsKKyAgICBpZiAoZnVuY3Rpb24uSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
U2NyaXB0VmFsdWUoKTsKKyAgICByZXR1cm4gU2NyaXB0VmFsdWUoZnVuY3Rpb24pOworfQorCitT
Y3JpcHRTdGF0ZSogZXZlbnRMaXN0ZW5lckhhbmRsZXJTY3JpcHRTdGF0ZShGcmFtZSogZnJhbWUs
IEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIGlmIChsaXN0ZW5lci0+dHlwZSgpICE9
IEV2ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lclR5cGUpCisgICAgICAgIHJldHVybiAwOwor
ICAgIFY4QWJzdHJhY3RFdmVudExpc3RlbmVyKiB2OExpc3RlbmVyID0gc3RhdGljX2Nhc3Q8VjhB
YnN0cmFjdEV2ZW50TGlzdGVuZXIqPihsaXN0ZW5lcik7CisgICAgdjg6OkhhbmRsZVNjb3BlIHNj
b3BlOworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHY4Q29udGV4dCA9IHY4TGlzdGVuZXIt
PndvcmxkQ29udGV4dCgpLmFkanVzdGVkQ29udGV4dChmcmFtZS0+c2NyaXB0KCkpOworICAgIHJl
dHVybiBTY3JpcHRTdGF0ZTo6Zm9yQ29udGV4dCgqdjhDb250ZXh0KTsKK30KKwogYm9vbCBldmVu
dExpc3RlbmVySGFuZGxlckxvY2F0aW9uKERvY3VtZW50KiBkb2N1bWVudCwgRXZlbnRMaXN0ZW5l
ciogbGlzdGVuZXIsIFN0cmluZyYgc291cmNlTmFtZSwgU3RyaW5nJiBzY3JpcHRJZCwgaW50JiBs
aW5lTnVtYmVyKQogewogICAgIGlmIChsaXN0ZW5lci0+dHlwZSgpICE9IEV2ZW50TGlzdGVuZXI6
OkpTRXZlbnRMaXN0ZW5lclR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRFdmVudExpc3RlbmVyLmgKaW5kZXggOTEwODkwM2IzMDkwY2NhNTgzYjgyYjQ4M2RlNTIw
MmU1ODNlNjU4ZC4uZDliMjJlOTA4YTNmODA4ZTkwMDMyZDUxNWJmNmQ1NTE0MjVkOTM0OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuaApA
QCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBTY3JpcHRFdmVudExpc3RlbmVyX2gKICNkZWZpbmUg
U2NyaXB0RXZlbnRMaXN0ZW5lcl9oCiAKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1
ZGUgIlY4TGF6eUV2ZW50TGlzdGVuZXIuaCIKIAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CkBAIC00Niw2ICs0Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBQYXNzUmVmUHRyPFY4
TGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoTm9kZSosIGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKTsKICAgICBQYXNz
UmVmUHRyPFY4TGF6eUV2ZW50TGlzdGVuZXI+IGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIo
RnJhbWUqLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSk7
CiAgICAgU3RyaW5nIGV2ZW50TGlzdGVuZXJIYW5kbGVyQm9keShEb2N1bWVudCosIEV2ZW50TGlz
dGVuZXIqKTsKKyAgICBTY3JpcHRWYWx1ZSBldmVudExpc3RlbmVySGFuZGxlcihEb2N1bWVudCos
IEV2ZW50TGlzdGVuZXIqKTsKKyAgICBTY3JpcHRTdGF0ZSogZXZlbnRMaXN0ZW5lckhhbmRsZXJT
Y3JpcHRTdGF0ZShGcmFtZSosIEV2ZW50TGlzdGVuZXIqKTsKICAgICBib29sIGV2ZW50TGlzdGVu
ZXJIYW5kbGVyTG9jYXRpb24oRG9jdW1lbnQqLCBFdmVudExpc3RlbmVyKiwgU3RyaW5nJiBzb3Vy
Y2VOYW1lLCBTdHJpbmcmIHNjcmlwdElkLCBpbnQmIGxpbmVOdW1iZXIpOwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXgg
ZWNmY2ZlNzRiZGFjMTdlOWFlYzIyODEyZWQ2YjlhZWNlN2E1OTFiZC4uMWZhYjMwMzllYjZiNDEz
MTQzNDI3ZDlmN2Y1YTY3ZmM4YzJmNWU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgpAQCAtMTc0NCw3ICsxNzQ0LDggQEAKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJub2RlSWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGFyZ2V0
IDxjb2RlPkRPTU5vZGU8L2NvZGU+IGlkLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJoYW5kbGVyQm9keSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJFdmVu
dCBoYW5kbGVyIGZ1bmN0aW9uIGJvZHkuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImxvY2F0aW9uIiwgIiRyZWYiOiAiRGVidWdnZXIuTG9jYXRpb24iLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiSGFuZGxlciBjb2RlIGxvY2F0aW9uLiIgfSwKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2VOYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNvdXJjZSBzY3JpcHQgVVJMLiIgfQorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZU5hbWUiLCAidHlwZSI6ICJzdHJpbmci
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU291cmNlIHNjcmlwdCBVUkwuIiB9
LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZXIiLCAiJHJlZiI6ICJSdW50
aW1lLlJlbW90ZU9iamVjdCIsICJvcHRpb25hbCI6IHRydWUsICJoaWRkZW4iOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiRXZlbnQgaGFuZGxlciBmdW5jdGlvbiB2YWx1ZSIgfQogICAgICAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRPTSBpbnRlcmFjdGlvbiBp
cyBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZiBtaXJyb3Igb2JqZWN0cyB0aGF0IHJlcHJlc2VudCB0
aGUgYWN0dWFsIERPTSBub2Rlcy4gRE9NTm9kZSBpcyBhIGJhc2Ugbm9kZSBtaXJyb3IgdHlwZS4i
CiAgICAgICAgICAgICB9LApAQCAtMTg2NSw3ICsxODY2LDggQEAKICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAibmFtZSI6ICJnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUiLAogICAgICAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgbm9k
ZSB0byBnZXQgbGlzdGVuZXJzIGZvci4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJub2RlSWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIG5v
ZGUgdG8gZ2V0IGxpc3RlbmVycyBmb3IuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogIm9iamVjdEdyb3VwIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIlN5bWJvbGljIGdyb3VwIG5hbWUgZm9yIGhhbmRsZXIgdmFsdWUuIiB9CiAg
ICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJsaXN0ZW5lcnMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVt
cyI6IHsgIiRyZWYiOiAiRXZlbnRMaXN0ZW5lciJ9LCAiZGVzY3JpcHRpb24iOiAiQXJyYXkgb2Yg
cmVsZXZhbnQgbGlzdGVuZXJzLiIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKaW5kZXggODRmNmM2ZDE1NzExNjYzOWRkMzNhMDJlNDQxNjEyNTIy
MDI4ZTM1OC4uNWZkZmJmYmVlYjdjMGZmYmU3YmFjZjIwYWE2MmUzYTlkMmFiMTkyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC03NjIs
NyArNzYyLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0Tm9kZVZhbHVlKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgY29uc3QKICAgICBtX2RvbUVkaXRvci0+cmVw
bGFjZVdob2xlVGV4dCh0b1RleHQobm9kZSksIHZhbHVlLCBlcnJvclN0cmluZyk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlw
ZUJ1aWxkZXI6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gPiYgbGlzdGVuZXJzQXJyYXkpCit2b2lkIElu
c3BlY3RvckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUoRXJyb3JTdHJpbmcqIGVy
cm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8
VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpET006OkV2ZW50TGlzdGVuZXI+ID4mIGxp
c3RlbmVyc0FycmF5KQogewogICAgIGxpc3RlbmVyc0FycmF5ID0gVHlwZUJ1aWxkZXI6OkFycmF5
PFR5cGVCdWlsZGVyOjpET006OkV2ZW50TGlzdGVuZXI+OjpjcmVhdGUoKTsKICAgICBOb2RlKiBu
b2RlID0gYXNzZXJ0Tm9kZShlcnJvclN0cmluZywgbm9kZUlkKTsKQEAgLTc3OSw3ICs3NzksNyBA
QCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUoRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbgogICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8
IHZlY3Rvci5zaXplKCk7ICsraikgewogICAgICAgICAgICAgY29uc3QgUmVnaXN0ZXJlZEV2ZW50
TGlzdGVuZXImIGxpc3RlbmVyID0gdmVjdG9yW2pdOwogICAgICAgICAgICAgaWYgKGxpc3RlbmVy
LnVzZUNhcHR1cmUpCi0gICAgICAgICAgICAgICAgbGlzdGVuZXJzQXJyYXktPmFkZEl0ZW0oYnVp
bGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGxpc3RlbmVyLCBpbmZvLmV2ZW50VHlwZSwgaW5mby5u
b2RlKSk7CisgICAgICAgICAgICAgICAgbGlzdGVuZXJzQXJyYXktPmFkZEl0ZW0oYnVpbGRPYmpl
Y3RGb3JFdmVudExpc3RlbmVyKGxpc3RlbmVyLCBpbmZvLmV2ZW50VHlwZSwgaW5mby5ub2RlLCBv
YmplY3RHcm91cCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC03OTAsNyArNzkwLDcgQEAgdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgaW50IG4KICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCB2ZWN0
b3Iuc2l6ZSgpOyArK2opIHsKICAgICAgICAgICAgIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3Rl
bmVyJiBsaXN0ZW5lciA9IHZlY3RvcltqXTsKICAgICAgICAgICAgIGlmICghbGlzdGVuZXIudXNl
Q2FwdHVyZSkKLSAgICAgICAgICAgICAgICBsaXN0ZW5lcnNBcnJheS0+YWRkSXRlbShidWlsZE9i
amVjdEZvckV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGluZm8uZXZlbnRUeXBlLCBpbmZvLm5vZGUp
KTsKKyAgICAgICAgICAgICAgICBsaXN0ZW5lcnNBcnJheS0+YWRkSXRlbShidWlsZE9iamVjdEZv
ckV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGluZm8uZXZlbnRUeXBlLCBpbmZvLm5vZGUsIG9iamVj
dEdyb3VwKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMzc2LDE1ICsxMzc2LDMyIEBAIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpET006Ok5vZGU+ID4gSW5z
cGVjdG9yRE9NQWdlbnQ6OmJ1aWxkCiAgICAgcmV0dXJuIGNoaWxkcmVuLnJlbGVhc2UoKTsKIH0K
IAotUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyPiBJbnNwZWN0b3JE
T01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVu
dExpc3RlbmVyJiByZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciwgY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIE5vZGUqIG5vZGUpCitQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET006OkV2ZW50
TGlzdGVuZXI+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIo
Y29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImIHJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLCBj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nKiBv
YmplY3RHcm91cElkKQogewogICAgIFJlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVy
ID0gcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIubGlzdGVuZXI7CisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gbm9kZS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6RXZl
bnRMaXN0ZW5lcj4gdmFsdWUgPSBUeXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyOjpjcmVh
dGUoKQogICAgICAgICAuc2V0VHlwZShldmVudFR5cGUpCiAgICAgICAgIC5zZXRVc2VDYXB0dXJl
KHJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLnVzZUNhcHR1cmUpCiAgICAgICAgIC5zZXRJc0F0dHJp
YnV0ZShldmVudExpc3RlbmVyLT5pc0F0dHJpYnV0ZSgpKQogICAgICAgICAuc2V0Tm9kZUlkKHB1
c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSkpCi0gICAgICAgIC5zZXRIYW5kbGVyQm9keShldmVu
dExpc3RlbmVySGFuZGxlckJvZHkobm9kZS0+ZG9jdW1lbnQoKSwgZXZlbnRMaXN0ZW5lci5nZXQo
KSkpOworICAgICAgICAuc2V0SGFuZGxlckJvZHkoZXZlbnRMaXN0ZW5lckhhbmRsZXJCb2R5KGRv
Y3VtZW50LCBldmVudExpc3RlbmVyLmdldCgpKSk7CisgICAgaWYgKG9iamVjdEdyb3VwSWQpIHsK
KyAgICAgICAgU2NyaXB0VmFsdWUgZnVuY3Rpb25WYWx1ZSA9IGV2ZW50TGlzdGVuZXJIYW5kbGVy
KGRvY3VtZW50LCBldmVudExpc3RlbmVyLmdldCgpKTsKKyAgICAgICAgaWYgKCFmdW5jdGlvblZh
bHVlLmhhc05vVmFsdWUoKSkgeworICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQt
PmZyYW1lKCk7CisgICAgICAgICAgICBpZiAoZnJhbWUpIHsKKyAgICAgICAgICAgICAgICBTY3Jp
cHRTdGF0ZSogc2NyaXB0U3RhdGUgPSBldmVudExpc3RlbmVySGFuZGxlclNjcmlwdFN0YXRlKGZy
YW1lLCBldmVudExpc3RlbmVyLmdldCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoc2NyaXB0U3Rh
dGUpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQg
PSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3Ioc2NyaXB0U3RhdGUp
OworICAgICAgICAgICAgICAgICAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpS
ZW1vdGVPYmplY3Q+IHZhbHVlSnNvbiA9IGluamVjdGVkU2NyaXB0LndyYXBPYmplY3QoZnVuY3Rp
b25WYWx1ZSwgKm9iamVjdEdyb3VwSWQsIHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAg
dmFsdWUtPnNldEhhbmRsZXIodmFsdWVKc29uKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KICAgICBTdHJp
bmcgc291cmNlTmFtZTsKICAgICBTdHJpbmcgc2NyaXB0SWQ7CiAgICAgaW50IGxpbmVOdW1iZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IDkx
OWU4NjkzZTlmMzhmOTJkZGJiN2YyNjZjYjUwYzI2NTJmMzk0ZTEuLjIxMTI3OTkzZmIyYzliNjVm
Y2FhYjY4YzZkNjM1Mzg0YTNhNTA2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBnZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBXVEY6OlN0cmlu
Zyogb3V0ZXJIVE1MKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5n
KiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBvdXRlckhUTUwpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXROb2RlVmFsdWUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHZh
bHVlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3Ry
aW5nKiwgaW50IG5vZGVJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6
RE9NOjpFdmVudExpc3RlbmVyPiA+JiBsaXN0ZW5lcnNBcnJheSk7CisgICAgdmlydHVhbCB2b2lk
IGdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShFcnJvclN0cmluZyosIGludCBub2RlSWQsIGNvbnN0
IFdURjo6U3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6RE9N
OjpFdmVudExpc3RlbmVyPiA+JiBsaXN0ZW5lcnNBcnJheSk7CiAgICAgdmlydHVhbCB2b2lkIHBl
cmZvcm1TZWFyY2goRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHdoaXRlc3BhY2VUcmltbWVk
UXVlcnksIFN0cmluZyogc2VhcmNoSWQsIGludCogcmVzdWx0Q291bnQpOwogICAgIHZpcnR1YWwg
dm9pZCBnZXRTZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzZWFyY2hJ
ZCwgaW50IGZyb21JbmRleCwgaW50IHRvSW5kZXgsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8
aW50PiA+Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpc2NhcmRTZWFyY2hSZXN1bHRzKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBzZWFyY2hJZCk7CkBAIC0yMjcsNyArMjI3LDcgQEAgcHJpdmF0
ZToKICAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET006Ok5vZGU+IGJ1aWxkT2JqZWN0Rm9y
Tm9kZShOb2RlKiwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCopOwogICAgIFBhc3NSZWZQdHI8VHlw
ZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0ZXMo
RWxlbWVudCopOwogICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVy
OjpET006Ok5vZGU+ID4gYnVpbGRBcnJheUZvckNvbnRhaW5lckNoaWxkcmVuKE5vZGUqIGNvbnRh
aW5lciwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApOwotICAgIFBhc3NSZWZQdHI8
VHlwZUJ1aWxkZXI6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gYnVpbGRPYmplY3RGb3JFdmVudExpc3Rl
bmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIE5vZGUqKTsKKyAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET006OkV2ZW50
TGlzdGVuZXI+IGJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihjb25zdCBSZWdpc3RlcmVkRXZl
bnRMaXN0ZW5lciYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiwgY29uc3Qg
U3RyaW5nKiBvYmplY3RHcm91cElkKTsKIAogICAgIE5vZGUqIG5vZGVGb3JQYXRoKGNvbnN0IFN0
cmluZyYgcGF0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRE9NQWdlbnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RP
TUFnZW50LmpzCmluZGV4IGNjM2RjYTYwNzM2YjNmNDZlZmFhNWFjNTYxMGEyYmNlM2FmMWZhODQu
LjUwN2Y2ODA4YWY5ZjQ1YmYxOTI5M2U5NGQyZDJhYjlmZjU0ODViOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtMzYzLDExICszNjMs
MTIgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gb2JqZWN0R3JvdXBJZAogICAgICAqIEBwYXJhbSB7
ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yKT19IGNhbGxiYWNrCiAgICAgICovCi0gICAgZXZlbnRM
aXN0ZW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIGV2ZW50TGlzdGVuZXJzOiBmdW5jdGlv
bihvYmplY3RHcm91cElkLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIERPTUFnZW50LmdldEV2
ZW50TGlzdGVuZXJzRm9yTm9kZSh0aGlzLmlkLCBjYWxsYmFjayk7CisgICAgICAgIERPTUFnZW50
LmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZSh0aGlzLmlkLCBvYmplY3RHcm91cElkLCBjYWxsYmFj
ayk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzCmluZGV4
IDI5NGFmYmJkNzcyMWJkOWI5NzJjMGZjMzFkNzU2NDE0N2IwN2EyMGUuLjg3YTNmOTFhZWFlY2Y5
MzUwNTRmNWE4ZTY4NjM1OTA1ZDMyMTViMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUu
anMKQEAgLTExOSw3ICsxMTksOCBAQCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcnNTaWRlYmFy
UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobm9kZSkKLSAgICAg
ICAgICAgIG5vZGUuZXZlbnRMaXN0ZW5lcnMoY2FsbGJhY2spOworICAgICAgICAgICAgLy8gRklY
TUU6IHB1dCBjb3JyZWN0IGdyb3VwIGlzIGZvciBmdW5jdGlvbiB2YWx1ZSBoZXJlLgorICAgICAg
ICAgICAgbm9kZS5ldmVudExpc3RlbmVycygiYXJhYnlwYUMiLCBjYWxsYmFjayk7CiAgICAgICAg
IHRoaXMuX3NlbGVjdGVkTm9kZSA9IG5vZGU7CiAgICAgfSwKIApAQCAtMjAyLDYgKzIwMywxMCBA
QCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lckJhci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgcHJvcGVydGllcy5wdXNoKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eS5m
cm9tUHJpbWl0aXZlVmFsdWUoImlzQXR0cmlidXRlIiwgdGhpcy5ldmVudExpc3RlbmVyLmlzQXR0
cmlidXRlKSk7CiAgICAgICAgICAgICBpZiAobm9kZU9iamVjdCkKICAgICAgICAgICAgICAgICBw
cm9wZXJ0aWVzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eSgibm9k
ZSIsIG5vZGVPYmplY3QpKTsKKyAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5ldmVudExpc3Rl
bmVyLmhhbmRsZXIgIT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICAgICAgdmFyIHJlbW90
ZU9iamVjdCA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQodGhpcy5ldmVu
dExpc3RlbmVyLmhhbmRsZXIpOworICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChuZXcg
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KCJoYW5kbGVyIiwgcmVtb3RlT2JqZWN0
KSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXZlbnRMaXN0
ZW5lci5oYW5kbGVyQm9keSAhPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICAgICAgICAgcHJvcGVy
dGllcy5wdXNoKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eS5mcm9tUHJpbWl0aXZl
VmFsdWUoImxpc3RlbmVyQm9keSIsIHRoaXMuZXZlbnRMaXN0ZW5lci5oYW5kbGVyQm9keSkpOwog
ICAgICAgICAgICAgaWYgKHRoaXMuZXZlbnRMaXN0ZW5lci5zb3VyY2VOYW1lKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZh
MGU4Y2JhMzhiYmVmNmUxMmJhMDliMjYyMTY3MTk1NTNiYWJkYTkuLjAwMTZjNDU2NGQ5YWNiNjNl
OThlMjcwZDgwODdkMzM4MWNjNTVkZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMi0x
MSAgUGV0ZXIgUnliaW4gIDxwcnliaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGZvciBldmVudCBsaXN0ZW5lciBwcm92aWRlIGhhbmRsZXIgZnVuY3Rpb24gdmFsdWUg
aW4gcHJvdG9jb2wgYW5kIGluIFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDkyODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0IGlzIHJlYmFzZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxl
bWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50eHQ6CisKIDIwMTMtMDItMDYg
IE1hcmphIEjDtmx0dMOkICA8bWFyamFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtXSzJdIE5l
dyB0ZXN0cyBpbnRyb2R1Y2VkIGluIHIxMDA4OTUgZmFpbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXIt
ZXhwZWN0ZWQudHh0CmluZGV4IGM4MzU4YWMyNjg4OWRhZGYyYzA2ZmJiYzc1NWYwOTMxYjg0YThl
YzguLjgyMjhjY2IzMDY4ZjZjNzI5NjBmZTU2MTM0NGNhYjZlNWFkMWIxY2UgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5lci1zaWRlYmFyLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlz
dGVuZXItc2lkZWJhci1leHBlY3RlZC50eHQKQEAgLTQsNiArNCw3IEBAIEluc3BlY3QgTWUKIAog
PT09PT09PT0gY2xpY2sgPT09PT09PT0KIFtleHBhbmRlZF0gZG9jdW1lbnQgZXZlbnQtbGlzdGVu
ZXItc2lkZWJhci5odG1sOjE5CisgICAgaGFuZGxlcjogZnVuY3Rpb24gKGV2ZW50KSB7IGNvbnNv
bGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gY2FwdHVyaW5nIik7IH0KICAgICBpc0F0dHJpYnV0
ZTogZmFsc2UKICAgICBsaW5lTnVtYmVyOiAxOQogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24g
KGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gY2FwdHVyaW5nIik7IH0K
QEAgLTEyLDEyICsxMywxNCBAQCBJbnNwZWN0IE1lCiAgICAgdHlwZTogY2xpY2sKICAgICB1c2VD
YXB0dXJlOiB0cnVlCiBbZXhwYW5kZWRdIGRvY3VtZW50IChhbm9ueW1vdXMgZnVuY3Rpb24pCisg
ICAgaGFuZGxlcjogT2JqZWN0SGFuZGxlcgogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxp
c3RlbmVyQm9keTogT2JqZWN0SGFuZGxlcgogICAgIG5vZGU6ICNkb2N1bWVudAogICAgIHR5cGU6
IGNsaWNrCiAgICAgdXNlQ2FwdHVyZTogdHJ1ZQogW2V4cGFuZGVkXSBidXR0b24jbm9kZSBldmVu
dC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTUKKyAgICBoYW5kbGVyOiBmdW5jdGlvbiAoZXZlbnQp
IHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gY2FwdHVyaW5nIik7IH0KICAgICBpc0F0
dHJpYnV0ZTogZmFsc2UKICAgICBsaW5lTnVtYmVyOiAxNQogICAgIGxpc3RlbmVyQm9keTogZnVu
Y3Rpb24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGNhcHR1cmluZyIp
OyB9CkBAIC0yNiw2ICsyOSw3IEBAIEluc3BlY3QgTWUKICAgICB0eXBlOiBjbGljawogICAgIHVz
ZUNhcHR1cmU6IHRydWUKIFtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZlbnQtbGlzdGVuZXItc2lk
ZWJhci5odG1sOjEyCisgICAgaGFuZGxlcjogZnVuY3Rpb24gY2xpY2tIYW5kbGVyKGV2ZW50KSB7
IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGJ1YmJsaW5nIChyZWdpc3RlcmVkIGJlZm9y
ZSBhdHRyaWJ1dGUpIik7IH0KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UKICAgICBsaW5lTnVtYmVy
OiAxMgogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gY2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNv
bnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGJ1YmJsaW5nIChyZWdpc3RlcmVkIGJlZm9yZSBh
dHRyaWJ1dGUpIik7IH0KQEAgLTM0LDYgKzM4LDcgQEAgSW5zcGVjdCBNZQogICAgIHR5cGU6IGNs
aWNrCiAgICAgdXNlQ2FwdHVyZTogZmFsc2UKIFtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZlbnQt
bGlzdGVuZXItc2lkZWJhci5odG1sOjE2CisgICAgaGFuZGxlcjogZnVuY3Rpb24gKGV2ZW50KSB7
IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGF0dHJpYnV0ZSIpOyB9CiAgICAgaXNBdHRy
aWJ1dGU6IHRydWUKICAgICBsaW5lTnVtYmVyOiAxNgogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rp
b24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGF0dHJpYnV0ZSIpOyB9
CkBAIC00Miw2ICs0Nyw3IEBAIEluc3BlY3QgTWUKICAgICB0eXBlOiBjbGljawogICAgIHVzZUNh
cHR1cmU6IGZhbHNlCiBbZXhwYW5kZWRdIGJ1dHRvbiNub2RlIGV2ZW50LWxpc3RlbmVyLXNpZGVi
YXIuaHRtbDoxNworICAgIGhhbmRsZXI6IGZ1bmN0aW9uIChldmVudCkgeyBjb25zb2xlLmxvZygi
Y2xpY2sgLSBidXR0b24gLSBidWJibGluZyAocmVnaXN0ZXJlZCBhZnRlciBhdHRyaWJ1dGUpIik7
IH0KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UKICAgICBsaW5lTnVtYmVyOiAxNwogICAgIGxpc3Rl
bmVyQm9keTogZnVuY3Rpb24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAt
IGJ1YmJsaW5nIChyZWdpc3RlcmVkIGFmdGVyIGF0dHJpYnV0ZSkiKTsgfQpAQCAtNTAsNiArNTYs
NyBAQCBJbnNwZWN0IE1lCiAgICAgdHlwZTogY2xpY2sKICAgICB1c2VDYXB0dXJlOiBmYWxzZQog
W2V4cGFuZGVkXSBkb2N1bWVudCBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6NgorICAgIGhh
bmRsZXI6IGZ1bmN0aW9uIGRvY3VtZW50Q2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9n
KCJjbGljayAtIGRvY3VtZW50IC0gYXR0cmlidXRlIik7IH0KICAgICBpc0F0dHJpYnV0ZTogdHJ1
ZQogICAgIGxpbmVOdW1iZXI6IDYKICAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIGRvY3VtZW50
Q2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gYXR0
cmlidXRlIik7IH0KQEAgLTYwLDYgKzY3LDcgQEAgSW5zcGVjdCBNZQogCiA9PT09PT09PSBjdXN0
b20gZXZlbnQgPT09PT09PT0KIFtleHBhbmRlZF0gYm9keSBldmVudC1saXN0ZW5lci1zaWRlYmFy
Lmh0bWw6MTAKKyAgICBoYW5kbGVyOiBmdW5jdGlvbiBmKCkge30KICAgICBpc0F0dHJpYnV0ZTog
ZmFsc2UKICAgICBsaW5lTnVtYmVyOiAxMAogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gZigp
IHt9CkBAIC03MCw2ICs3OCw3IEBAIEluc3BlY3QgTWUKIAogPT09PT09PT0gaG92ZXIgPT09PT09
PT0KIFtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjE0
CisgICAgaGFuZGxlcjogZnVuY3Rpb24gaG92ZXJIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9n
KCJob3ZlciAtIGJ1dHRvbiAtIGJ1YmJsaW5nIik7IH0KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UK
ICAgICBsaW5lTnVtYmVyOiAxNAogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gaG92ZXJIYW5k
bGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJob3ZlciAtIGJ1dHRvbiAtIGJ1YmJsaW5nIik7IH0K
QEAgLTgwLDYgKzg5LDcgQEAgSW5zcGVjdCBNZQogCiA9PT09PT09PSBjbGljayA9PT09PT09PQog
W2V4cGFuZGVkXSBkb2N1bWVudCBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTkKKyAgICBo
YW5kbGVyOiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQg
LSBjYXB0dXJpbmciKTsgfQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxpbmVOdW1iZXI6
IDE5CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNs
aWNrIC0gZG9jdW1lbnQgLSBjYXB0dXJpbmciKTsgfQpAQCAtODgsMTIgKzk4LDE0IEBAIEluc3Bl
Y3QgTWUKICAgICB0eXBlOiBjbGljawogICAgIHVzZUNhcHR1cmU6IHRydWUKIFtleHBhbmRlZF0g
ZG9jdW1lbnQgKGFub255bW91cyBmdW5jdGlvbikKKyAgICBoYW5kbGVyOiBPYmplY3RIYW5kbGVy
CiAgICAgaXNBdHRyaWJ1dGU6IGZhbHNlCiAgICAgbGlzdGVuZXJCb2R5OiBPYmplY3RIYW5kbGVy
CiAgICAgbm9kZTogI2RvY3VtZW50CiAgICAgdHlwZTogY2xpY2sKICAgICB1c2VDYXB0dXJlOiB0
cnVlCiBbZXhwYW5kZWRdIGRvY3VtZW50IGV2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbDo2Cisg
ICAgaGFuZGxlcjogZnVuY3Rpb24gZG9jdW1lbnRDbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29s
ZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBhdHRyaWJ1dGUiKTsgfQogICAgIGlzQXR0cmlidXRl
OiB0cnVlCiAgICAgbGluZU51bWJlcjogNgogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gZG9j
dW1lbnRDbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQg
LSBhdHRyaWJ1dGUiKTsgfQpAQCAtMTA0LDYgKzExNiw3IEBAIEluc3BlY3QgTWUKIAogPT09PT09
PT0gY3VzdG9tIGV2ZW50ID09PT09PT09CiBbZXhwYW5kZWRdIGJvZHkgZXZlbnQtbGlzdGVuZXIt
c2lkZWJhci5odG1sOjEwCisgICAgaGFuZGxlcjogZnVuY3Rpb24gZigpIHt9CiAgICAgaXNBdHRy
aWJ1dGU6IGZhbHNlCiAgICAgbGluZU51bWJlcjogMTAKICAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0
aW9uIGYoKSB7fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187641</attachid>
            <date>2013-02-11 12:59:31 -0800</date>
            <delta_ts>2013-02-12 07:07:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109284-20130212005601.patch</filename>
            <type>text/plain</type>
            <size>23948</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RjZWE1NTAxMjllNWMz
OTBmYTA4MjBhZGY5MTE5MWQ3ODgwYmJkZi4uMDkyY2FlZGFmODY0NjRkYmMwNjNiODE2OWE5Yjg2
ZjAxNjBmMmRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAyLTExICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
Zm9yIGV2ZW50IGxpc3RlbmVyIHByb3ZpZGUgaGFuZGxlciBmdW5jdGlvbiB2YWx1ZSBpbiBwcm90
b2NvbCBhbmQgaW4gVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTI4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBmZWF0dXJlIGltcGxpZXMgdGhhdCB3ZSBpbmNsdWRlIGEgcmVhbCBoYW5kbGVy
IGZ1bmN0aW9uIHZhbHVlIGludG8gZXZlbnQgbGlzdGVuZXIgZGVzY3JpcHRpb24uCisgICAgICAg
IFByb3RvY29sIGRlc2NyaXB0aW9uLCBpbnNwZWN0b3IgRE9NIGFnZW50ICh3aXRoIFY4IGFuZCBK
U0MgYmFja2VuZHMpIGFuZCBmcm9udC1lbmQgaXMgcGF0Y2hlZCBhY2NvcmRpbmdseS4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZXZlbnRMaXN0ZW5lckhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpldmVudExpc3RlbmVySGFuZGxlclNjcmlwdFN0YXRlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmV2ZW50TGlzdGVuZXJIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6ZXZlbnRMaXN0ZW5lckhhbmRsZXJTY3JpcHRTdGF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2Vu
dDo6Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yRE9NQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUuZXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGUp
OgorICAgICAgICAoLik6CisKIDIwMTMtMDItMTEgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBkb2N1bWVudC53cml0ZSBkdXJpbmcgd2luZG93Lm9ubG9hZCBjYW4g
dHJpZ2dlciBEdW1wUmVuZGVyVHJlZSB0byBkdW1wIHRoZSByZW5kZXIgdHJlZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAppbmRleCAx
YWNlNDdmNjA3OTc2NDQ5ZWI3MjIyYWY0M2Q4MTk2YWRlNTE5ZmRkLi45MTU3MTI0OTU3OTMwYjQy
NDYwNjZkMWZmYWZkNTU0M2FlNWI3YTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcApAQCAtMTA2LDYgKzEwNiwzMSBAQCBTdHJp
bmcgZXZlbnRMaXN0ZW5lckhhbmRsZXJCb2R5KERvY3VtZW50KiBkb2N1bWVudCwgRXZlbnRMaXN0
ZW5lciogZXZlbnRMaXN0ZW5lcgogICAgIHJldHVybiBqc0Z1bmN0aW9uLT50b1N0cmluZyhzY3Jp
cHRTdGF0ZSktPnZhbHVlKHNjcmlwdFN0YXRlKTsKIH0KIAorU2NyaXB0VmFsdWUgZXZlbnRMaXN0
ZW5lckhhbmRsZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBFdmVudExpc3RlbmVyKiBldmVudExpc3Rl
bmVyKQoreworICAgIGNvbnN0IEpTRXZlbnRMaXN0ZW5lcioganNMaXN0ZW5lciA9IEpTRXZlbnRM
aXN0ZW5lcjo6Y2FzdChldmVudExpc3RlbmVyKTsKKyAgICBBU1NFUlQoanNMaXN0ZW5lcik7Cisg
ICAgaWYgKCFqc0xpc3RlbmVyKQorICAgICAgICByZXR1cm4gU2NyaXB0VmFsdWUoKTsKKyAgICBK
U0xvY2tIb2xkZXIgbG9jayhqc0xpc3RlbmVyLT5pc29sYXRlZFdvcmxkKCktPmdsb2JhbERhdGEo
KSk7CisgICAgSlNDOjpKU09iamVjdCoganNGdW5jdGlvbiA9IGpzTGlzdGVuZXItPmpzRnVuY3Rp
b24oZG9jdW1lbnQpOworICAgIGlmICghanNGdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIFNjcmlw
dFZhbHVlKCk7CisgICAgcmV0dXJuIFNjcmlwdFZhbHVlKCpqc0xpc3RlbmVyLT5pc29sYXRlZFdv
cmxkKCktPmdsb2JhbERhdGEoKSwganNGdW5jdGlvbik7Cit9CisKK1NjcmlwdFN0YXRlKiBldmVu
dExpc3RlbmVySGFuZGxlclNjcmlwdFN0YXRlKEZyYW1lKiBmcmFtZSwgRXZlbnRMaXN0ZW5lciog
ZXZlbnRMaXN0ZW5lcikKK3sKKyAgICBjb25zdCBKU0V2ZW50TGlzdGVuZXIqIGpzTGlzdGVuZXIg
PSBKU0V2ZW50TGlzdGVuZXI6OmNhc3QoZXZlbnRMaXN0ZW5lcik7CisgICAgQVNTRVJUKGpzTGlz
dGVuZXIpOworICAgIGlmICghanNMaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYg
KCFmcmFtZS0+c2NyaXB0KCktPmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2Ny
aXB0KSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCA9IGpz
TGlzdGVuZXItPmlzb2xhdGVkV29ybGQoKTsKKyAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLT5n
bG9iYWxPYmplY3Qod29ybGQpLT5nbG9iYWxFeGVjKCk7Cit9CisKIGJvb2wgZXZlbnRMaXN0ZW5l
ckhhbmRsZXJMb2NhdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIEV2ZW50TGlzdGVuZXIqIGV2ZW50
TGlzdGVuZXIsIFN0cmluZyYgc291cmNlTmFtZSwgU3RyaW5nJiBzY3JpcHRJZCwgaW50JiBsaW5l
TnVtYmVyKQogewogICAgIGNvbnN0IEpTRXZlbnRMaXN0ZW5lcioganNMaXN0ZW5lciA9IEpTRXZl
bnRMaXN0ZW5lcjo6Y2FzdChldmVudExpc3RlbmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuaAppbmRleCAwMTllM2QwZWI4YTAwZmQ3MDMw
NmY1NDk0ZDVmY2I4YmJhOGJmNTQ2Li43OGJjMTc5MGRiOTMxMjI3ZWJmMjQ2MzI3NDJlN2M2NjU3
YjA0M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVu
dExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRM
aXN0ZW5lci5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3Rl
bmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5o
IgogCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIApAQCAtNDYsNiArNDcsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgUGFzc1JlZlB0cjxKU0xhenlFdmVudExpc3RlbmVyPiBjcmVh
dGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKE5vZGUqLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSk7CiAgICAgUGFzc1JlZlB0cjxKU0xhenlFdmVudExpc3Rl
bmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKEZyYW1lKiwgY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwogICAgIFN0cmluZyBldmVudExpc3Rl
bmVySGFuZGxlckJvZHkoRG9jdW1lbnQqLCBFdmVudExpc3RlbmVyKik7CisgICAgU2NyaXB0VmFs
dWUgZXZlbnRMaXN0ZW5lckhhbmRsZXIoRG9jdW1lbnQqLCBFdmVudExpc3RlbmVyKik7CisgICAg
U2NyaXB0U3RhdGUqIGV2ZW50TGlzdGVuZXJIYW5kbGVyU2NyaXB0U3RhdGUoRnJhbWUqLCBFdmVu
dExpc3RlbmVyKik7CiAgICAgYm9vbCBldmVudExpc3RlbmVySGFuZGxlckxvY2F0aW9uKERvY3Vt
ZW50KiwgRXZlbnRMaXN0ZW5lciosIFN0cmluZyYgc291cmNlTmFtZSwgU3RyaW5nJiBzY3JpcHRJ
ZCwgaW50JiBsaW5lTnVtYmVyKTsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAppbmRleCA1
NTBhMjRlY2Q3NzY5OTg0NjNmZWU1NGQwYWY3MGU1NTk1ZGY4NTVmLi4yMWQyNDYwZDhkZjYwMWM1
YmUxNzI5ZTIyZDgzNzhlOTcxNTFlYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcApAQCAtMTAzLDYgKzEwMywzMSBAQCBTdHJp
bmcgZXZlbnRMaXN0ZW5lckhhbmRsZXJCb2R5KERvY3VtZW50KiBkb2N1bWVudCwgRXZlbnRMaXN0
ZW5lciogbGlzdGVuZXIpCiAgICAgcmV0dXJuIHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2so
ZnVuY3Rpb24pOwogfQogCitTY3JpcHRWYWx1ZSBldmVudExpc3RlbmVySGFuZGxlcihEb2N1bWVu
dCogZG9jdW1lbnQsIEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIGlmIChsaXN0ZW5l
ci0+dHlwZSgpICE9IEV2ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lclR5cGUpCisgICAgICAg
IHJldHVybiBTY3JpcHRWYWx1ZSgpOworCisgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOworICAg
IFY4QWJzdHJhY3RFdmVudExpc3RlbmVyKiB2OExpc3RlbmVyID0gc3RhdGljX2Nhc3Q8VjhBYnN0
cmFjdEV2ZW50TGlzdGVuZXIqPihsaXN0ZW5lcik7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4
dD4gY29udGV4dCA9IHRvVjhDb250ZXh0KGRvY3VtZW50LCB2OExpc3RlbmVyLT53b3JsZENvbnRl
eHQoKSk7CisgICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKKyAg
ICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGZ1bmN0aW9uID0gdjhMaXN0ZW5lci0+Z2V0TGlzdGVu
ZXJPYmplY3QoZG9jdW1lbnQpOworICAgIGlmIChmdW5jdGlvbi5Jc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiBTY3JpcHRWYWx1ZSgpOworICAgIHJldHVybiBTY3JpcHRWYWx1ZShmdW5jdGlvbik7
Cit9CisKK1NjcmlwdFN0YXRlKiBldmVudExpc3RlbmVySGFuZGxlclNjcmlwdFN0YXRlKEZyYW1l
KiBmcmFtZSwgRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCit7CisgICAgaWYgKGxpc3RlbmVyLT50
eXBlKCkgIT0gRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyVHlwZSkKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIqIHY4TGlzdGVuZXIgPSBzdGF0aWNf
Y2FzdDxWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcio+KGxpc3RlbmVyKTsKKyAgICB2ODo6SGFuZGxl
U2NvcGUgc2NvcGU7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gdjhM
aXN0ZW5lci0+d29ybGRDb250ZXh0KCkuYWRqdXN0ZWRDb250ZXh0KGZyYW1lLT5zY3JpcHQoKSk7
CisgICAgcmV0dXJuIFNjcmlwdFN0YXRlOjpmb3JDb250ZXh0KCp2OENvbnRleHQpOworfQorCiBi
b29sIGV2ZW50TGlzdGVuZXJIYW5kbGVyTG9jYXRpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBFdmVu
dExpc3RlbmVyKiBsaXN0ZW5lciwgU3RyaW5nJiBzb3VyY2VOYW1lLCBTdHJpbmcmIHNjcmlwdElk
LCBpbnQmIGxpbmVOdW1iZXIpCiB7CiAgICAgaWYgKGxpc3RlbmVyLT50eXBlKCkgIT0gRXZlbnRM
aXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuaAppbmRleCA5MTA4OTAzYjMwOTBjY2E1ODNiODJi
NDgzZGU1MjAyZTU4M2U2NThkLi5kOWIyMmU5MDhhM2Y4MDhlOTAwMzJkNTE1YmY2ZDU1MTQyNWQ5
MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVudExp
c3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0
ZW5lci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIFNjcmlwdEV2ZW50TGlzdGVuZXJfaAog
I2RlZmluZSBTY3JpcHRFdmVudExpc3RlbmVyX2gKIAorI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgi
CiAjaW5jbHVkZSAiVjhMYXp5RXZlbnRMaXN0ZW5lci5oIgogCiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KQEAgLTQ2LDYgKzQ3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFBhc3NS
ZWZQdHI8VjhMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihO
b2RlKiwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwog
ICAgIFBhc3NSZWZQdHI8VjhMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlQXR0cmlidXRlRXZlbnRM
aXN0ZW5lcihGcmFtZSosIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
IHZhbHVlKTsKICAgICBTdHJpbmcgZXZlbnRMaXN0ZW5lckhhbmRsZXJCb2R5KERvY3VtZW50Kiwg
RXZlbnRMaXN0ZW5lciopOworICAgIFNjcmlwdFZhbHVlIGV2ZW50TGlzdGVuZXJIYW5kbGVyKERv
Y3VtZW50KiwgRXZlbnRMaXN0ZW5lciopOworICAgIFNjcmlwdFN0YXRlKiBldmVudExpc3RlbmVy
SGFuZGxlclNjcmlwdFN0YXRlKEZyYW1lKiwgRXZlbnRMaXN0ZW5lciopOwogICAgIGJvb2wgZXZl
bnRMaXN0ZW5lckhhbmRsZXJMb2NhdGlvbihEb2N1bWVudCosIEV2ZW50TGlzdGVuZXIqLCBTdHJp
bmcmIHNvdXJjZU5hbWUsIFN0cmluZyYgc2NyaXB0SWQsIGludCYgbGluZU51bWJlcik7CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgppbmRleCA1NDBkMmJhZWZlNmY2ODMzOTNhYmRkYWMzYTkwZTlkMzY4ZmRhYjljLi5kZDM4MDI1
ZGNkZjE0NDczMTc4OWQ2MGQzZTgzMjllYzRmOWVmM2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCkBAIC0xNzU1LDcgKzE3NTUsOCBAQAogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6
ICJUYXJnZXQgPGNvZGU+RE9NTm9kZTwvY29kZT4gaWQuIiB9LAogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImhhbmRsZXJCb2R5IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9u
IjogIkV2ZW50IGhhbmRsZXIgZnVuY3Rpb24gYm9keS4iIH0sCiAgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAibG9jYXRpb24iLCAiJHJlZiI6ICJEZWJ1Z2dlci5Mb2NhdGlvbiIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJIYW5kbGVyIGNvZGUgbG9jYXRpb24uIiB9LAot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZU5hbWUiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU291cmNlIHNjcmlwdCBVUkwu
IiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlTmFtZSIsICJ0eXBlIjog
InN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTb3VyY2Ugc2NyaXB0
IFVSTC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlciIsICIkcmVm
IjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkV2ZW50IGhhbmRsZXIgZnVuY3Rpb24gdmFsdWUiIH0KICAgICAgICAgICAgICAgICBdLAog
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJET00gaW50ZXJhY3Rpb24gaXMgaW1wbGVt
ZW50ZWQgaW4gdGVybXMgb2YgbWlycm9yIG9iamVjdHMgdGhhdCByZXByZXNlbnQgdGhlIGFjdHVh
bCBET00gbm9kZXMuIERPTU5vZGUgaXMgYSBiYXNlIG5vZGUgbWlycm9yIHR5cGUuIgogICAgICAg
ICAgICAgfSwKQEAgLTE4NzYsNyArMTg3Nyw4IEBACiAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgIm5hbWUiOiAiZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlIiwKICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSWQi
LCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiSWQgb2YgdGhlIG5vZGUgdG8gZ2V0
IGxpc3RlbmVycyBmb3IuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlk
IiwgIiRyZWYiOiAiTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBub2RlIHRvIGdl
dCBsaXN0ZW5lcnMgZm9yLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmpl
Y3RHcm91cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlv
biI6ICJTeW1ib2xpYyBncm91cCBuYW1lIGZvciBoYW5kbGVyIHZhbHVlLiBIYW5kbGVyIHZhbHVl
IGlzIG5vdCByZXR1cm5lZCB3aXRob3V0IHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllZC4iIH0KICAg
ICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImxpc3RlbmVycyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAiJHJlZiI6ICJFdmVudExpc3RlbmVyIn0sICJkZXNjcmlwdGlvbiI6ICJBcnJheSBvZiBy
ZWxldmFudCBsaXN0ZW5lcnMuIiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcAppbmRleCA4NGY2YzZkMTU3MTE2NjM5ZGQzM2EwMmU0NDE2MTI1MjIw
MjhlMzU4Li41ZmRmYmZiZWViN2MwZmZiZTdiYWNmMjBhYTYyZTNhOWQyYWIxOTIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTc2Miw3
ICs3NjIsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXROb2RlVmFsdWUoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdAogICAgIG1fZG9tRWRpdG9yLT5yZXBs
YWNlV2hvbGVUZXh0KHRvVGV4dChub2RlKSwgdmFsdWUsIGVycm9yU3RyaW5nKTsKIH0KIAotdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBl
QnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyPiA+JiBsaXN0ZW5lcnNBcnJheSkKK3ZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXAsIFJlZlB0cjxU
eXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gPiYgbGlz
dGVuZXJzQXJyYXkpCiB7CiAgICAgbGlzdGVuZXJzQXJyYXkgPSBUeXBlQnVpbGRlcjo6QXJyYXk8
VHlwZUJ1aWxkZXI6OkRPTTo6RXZlbnRMaXN0ZW5lcj46OmNyZWF0ZSgpOwogICAgIE5vZGUqIG5v
ZGUgPSBhc3NlcnROb2RlKGVycm9yU3RyaW5nLCBub2RlSWQpOwpAQCAtNzc5LDcgKzc3OSw3IEBA
IHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGludCBuCiAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwg
dmVjdG9yLnNpemUoKTsgKytqKSB7CiAgICAgICAgICAgICBjb25zdCBSZWdpc3RlcmVkRXZlbnRM
aXN0ZW5lciYgbGlzdGVuZXIgPSB2ZWN0b3Jbal07CiAgICAgICAgICAgICBpZiAobGlzdGVuZXIu
dXNlQ2FwdHVyZSkKLSAgICAgICAgICAgICAgICBsaXN0ZW5lcnNBcnJheS0+YWRkSXRlbShidWls
ZE9iamVjdEZvckV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGluZm8uZXZlbnRUeXBlLCBpbmZvLm5v
ZGUpKTsKKyAgICAgICAgICAgICAgICBsaXN0ZW5lcnNBcnJheS0+YWRkSXRlbShidWlsZE9iamVj
dEZvckV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGluZm8uZXZlbnRUeXBlLCBpbmZvLm5vZGUsIG9i
amVjdEdyb3VwKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTc5MCw3ICs3OTAsNyBAQCB2b2lk
IEluc3BlY3RvckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBpbnQgbgogICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHZlY3Rv
ci5zaXplKCk7ICsraikgewogICAgICAgICAgICAgY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVu
ZXImIGxpc3RlbmVyID0gdmVjdG9yW2pdOwogICAgICAgICAgICAgaWYgKCFsaXN0ZW5lci51c2VD
YXB0dXJlKQotICAgICAgICAgICAgICAgIGxpc3RlbmVyc0FycmF5LT5hZGRJdGVtKGJ1aWxkT2Jq
ZWN0Rm9yRXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgaW5mby5ldmVudFR5cGUsIGluZm8ubm9kZSkp
OworICAgICAgICAgICAgICAgIGxpc3RlbmVyc0FycmF5LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9y
RXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgaW5mby5ldmVudFR5cGUsIGluZm8ubm9kZSwgb2JqZWN0
R3JvdXApKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTEzNzYsMTUgKzEzNzYsMzIgQEAgUGFz
c1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gPiBJbnNw
ZWN0b3JET01BZ2VudDo6YnVpbGQKICAgICByZXR1cm4gY2hpbGRyZW4ucmVsZWFzZSgpOwogfQog
Ci1QYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET006OkV2ZW50TGlzdGVuZXI+IEluc3BlY3RvckRP
TUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIoY29uc3QgUmVnaXN0ZXJlZEV2ZW50
TGlzdGVuZXImIHJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgTm9kZSogbm9kZSkKK1Bhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6RXZlbnRM
aXN0ZW5lcj4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihj
b25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIsIGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcqIG9i
amVjdEdyb3VwSWQpCiB7CiAgICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIg
PSByZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5saXN0ZW5lcjsKKyAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBub2RlLT5kb2N1bWVudCgpOwogICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6RE9NOjpFdmVu
dExpc3RlbmVyPiB2YWx1ZSA9IFR5cGVCdWlsZGVyOjpET006OkV2ZW50TGlzdGVuZXI6OmNyZWF0
ZSgpCiAgICAgICAgIC5zZXRUeXBlKGV2ZW50VHlwZSkKICAgICAgICAgLnNldFVzZUNhcHR1cmUo
cmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIudXNlQ2FwdHVyZSkKICAgICAgICAgLnNldElzQXR0cmli
dXRlKGV2ZW50TGlzdGVuZXItPmlzQXR0cmlidXRlKCkpCiAgICAgICAgIC5zZXROb2RlSWQocHVz
aE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKSkKLSAgICAgICAgLnNldEhhbmRsZXJCb2R5KGV2ZW50
TGlzdGVuZXJIYW5kbGVyQm9keShub2RlLT5kb2N1bWVudCgpLCBldmVudExpc3RlbmVyLmdldCgp
KSk7CisgICAgICAgIC5zZXRIYW5kbGVyQm9keShldmVudExpc3RlbmVySGFuZGxlckJvZHkoZG9j
dW1lbnQsIGV2ZW50TGlzdGVuZXIuZ2V0KCkpKTsKKyAgICBpZiAob2JqZWN0R3JvdXBJZCkgewor
ICAgICAgICBTY3JpcHRWYWx1ZSBmdW5jdGlvblZhbHVlID0gZXZlbnRMaXN0ZW5lckhhbmRsZXIo
ZG9jdW1lbnQsIGV2ZW50TGlzdGVuZXIuZ2V0KCkpOworICAgICAgICBpZiAoIWZ1bmN0aW9uVmFs
dWUuaGFzTm9WYWx1ZSgpKSB7CisgICAgICAgICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+
ZnJhbWUoKTsKKyAgICAgICAgICAgIGlmIChmcmFtZSkgeworICAgICAgICAgICAgICAgIFNjcmlw
dFN0YXRlKiBzY3JpcHRTdGF0ZSA9IGV2ZW50TGlzdGVuZXJIYW5kbGVyU2NyaXB0U3RhdGUoZnJh
bWUsIGV2ZW50TGlzdGVuZXIuZ2V0KCkpOworICAgICAgICAgICAgICAgIGlmIChzY3JpcHRTdGF0
ZSkgeworICAgICAgICAgICAgICAgICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RlZFNjcmlwdEZvcihzY3JpcHRTdGF0ZSk7
CisgICAgICAgICAgICAgICAgICAgIGlmICghaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJl
bW90ZU9iamVjdD4gdmFsdWVKc29uID0gaW5qZWN0ZWRTY3JpcHQud3JhcE9iamVjdChmdW5jdGlv
blZhbHVlLCAqb2JqZWN0R3JvdXBJZCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB2
YWx1ZS0+c2V0SGFuZGxlcih2YWx1ZUpzb24pOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogICAgIFN0cmlu
ZyBzb3VyY2VOYW1lOwogICAgIFN0cmluZyBzY3JpcHRJZDsKICAgICBpbnQgbGluZU51bWJlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggOTE5
ZTg2OTNlOWYzOGY5MmRkYmI3ZjI2NmNiNTBjMjY1MmYzOTRlMS4uMjExMjc5OTNmYjJjOWI2NWZj
YWFiNjhjNmQ2MzUzODRhM2E1MDZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGdldE91dGVySFRNTChFcnJvclN0cmluZyosIGludCBub2RlSWQsIFdURjo6U3RyaW5n
KiBvdXRlckhUTUwpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcq
LCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIG91dGVySFRNTCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldE5vZGVWYWx1ZShFcnJvclN0cmluZyosIGludCBub2RlSWQsIGNvbnN0IFN0cmluZyYgdmFs
dWUpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUoRXJyb3JTdHJp
bmcqLCBpbnQgbm9kZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpE
T006OkV2ZW50TGlzdGVuZXI+ID4mIGxpc3RlbmVyc0FycmF5KTsKKyAgICB2aXJ0dWFsIHZvaWQg
Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgY29uc3Qg
V1RGOjpTdHJpbmcqLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpET006
OkV2ZW50TGlzdGVuZXI+ID4mIGxpc3RlbmVyc0FycmF5KTsKICAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybVNlYXJjaChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgd2hpdGVzcGFjZVRyaW1tZWRR
dWVyeSwgU3RyaW5nKiBzZWFyY2hJZCwgaW50KiByZXN1bHRDb3VudCk7CiAgICAgdmlydHVhbCB2
b2lkIGdldFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNlYXJjaElk
LCBpbnQgZnJvbUluZGV4LCBpbnQgdG9JbmRleCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxp
bnQ+ID4mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzY2FyZFNlYXJjaFJlc3VsdHMoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIHNlYXJjaElkKTsKQEAgLTIyNyw3ICsyMjcsNyBAQCBwcml2YXRl
OgogICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6Tm9kZT4gYnVpbGRPYmplY3RGb3JO
b2RlKE5vZGUqLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKik7CiAgICAgUGFzc1JlZlB0cjxUeXBl
QnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhF
bGVtZW50Kik7CiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6
OkRPTTo6Tm9kZT4gPiBidWlsZEFycmF5Rm9yQ29udGFpbmVyQ2hpbGRyZW4oTm9kZSogY29udGFp
bmVyLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7Ci0gICAgUGFzc1JlZlB0cjxU
eXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyPiBidWlsZE9iamVjdEZvckV2ZW50TGlzdGVu
ZXIoY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgTm9kZSopOworICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6RXZlbnRM
aXN0ZW5lcj4gYnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVu
dExpc3RlbmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqLCBjb25zdCBT
dHJpbmcqIG9iamVjdEdyb3VwSWQpOwogCiAgICAgTm9kZSogbm9kZUZvclBhdGgoY29uc3QgU3Ry
aW5nJiBwYXRoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9ET01BZ2VudC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9N
QWdlbnQuanMKaW5kZXggY2MzZGNhNjA3MzZiM2Y0NmVmYWE1YWM1NjEwYTJiY2UzYWYxZmE4NC4u
NTA3ZjY4MDhhZjlmNDViZjE5MjkzZTk0ZDJkMmFiOWZmNTQ4NWI5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCkBAIC0zNjMsMTEgKzM2Mywx
MiBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8q
KgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvYmplY3RHcm91cElkCiAgICAgICogQHBhcmFtIHtm
dW5jdGlvbig/UHJvdG9jb2wuRXJyb3IpPX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICBldmVudExp
c3RlbmVyczogZnVuY3Rpb24oY2FsbGJhY2spCisgICAgZXZlbnRMaXN0ZW5lcnM6IGZ1bmN0aW9u
KG9iamVjdEdyb3VwSWQsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgRE9NQWdlbnQuZ2V0RXZl
bnRMaXN0ZW5lcnNGb3JOb2RlKHRoaXMuaWQsIGNhbGxiYWNrKTsKKyAgICAgICAgRE9NQWdlbnQu
Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKHRoaXMuaWQsIG9iamVjdEdyb3VwSWQsIGNhbGxiYWNr
KTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuanMKaW5kZXgg
Mjk0YWZiYmQ3NzIxYmQ5Yjk3MmMwZmMzMWQ3NTY0MTQ3YjA3YTIwZS4uMmJkMjA5YjAzZGRmNDE2
ZDIyYmZmNTEzMTBhYmI0ZDY4ZjA2MTgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5q
cwpAQCAtMTE5LDcgKzExOSw3IEBAIFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyc1NpZGViYXJQ
YW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChub2RlKQotICAgICAg
ICAgICAgbm9kZS5ldmVudExpc3RlbmVycyhjYWxsYmFjayk7CisgICAgICAgICAgICBub2RlLmV2
ZW50TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLl9vYmpl
Y3RHcm91cE5hbWUsIGNhbGxiYWNrKTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWROb2RlID0gbm9k
ZTsKICAgICB9LAogCkBAIC0yMDIsNiArMjAyLDEwIEBAIFdlYkluc3BlY3Rvci5FdmVudExpc3Rl
bmVyQmFyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goV2Vi
SW5zcGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5LmZyb21QcmltaXRpdmVWYWx1ZSgiaXNBdHRy
aWJ1dGUiLCB0aGlzLmV2ZW50TGlzdGVuZXIuaXNBdHRyaWJ1dGUpKTsKICAgICAgICAgICAgIGlm
IChub2RlT2JqZWN0KQogICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChuZXcgV2ViSW5z
cGVjdG9yLlJlbW90ZU9iamVjdFByb3BlcnR5KCJub2RlIiwgbm9kZU9iamVjdCkpOworICAgICAg
ICAgICAgaWYgKHR5cGVvZiB0aGlzLmV2ZW50TGlzdGVuZXIuaGFuZGxlciAhPT0gInVuZGVmaW5l
ZCIpIHsKKyAgICAgICAgICAgICAgICB2YXIgcmVtb3RlT2JqZWN0ID0gV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdC5mcm9tUGF5bG9hZCh0aGlzLmV2ZW50TGlzdGVuZXIuaGFuZGxlcik7CisgICAg
ICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
UHJvcGVydHkoImhhbmRsZXIiLCByZW1vdGVPYmplY3QpKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGlmICh0eXBlb2YgdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5ICE9PSAidW5k
ZWZpbmVkIikKICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdFByb3BlcnR5LmZyb21QcmltaXRpdmVWYWx1ZSgibGlzdGVuZXJCb2R5IiwgdGhp
cy5ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5KSk7CiAgICAgICAgICAgICBpZiAodGhpcy5ldmVu
dExpc3RlbmVyLnNvdXJjZU5hbWUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmE2MGY2NjI0YjViYTU1MGJjMTkxZTNjNDhi
YjE1YzU1ZWMyNTE1MS4uOWFmN2VmNjViMDFhNmVhMzVkMTg2ZGQ0NzBlODAzMDliNWU4MmFkNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTExICBQZXRlciBSeWJpbiAgPHByeWJpbkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZm9yIGV2ZW50IGxpc3RlbmVy
IHByb3ZpZGUgaGFuZGxlciBmdW5jdGlvbiB2YWx1ZSBpbiBwcm90b2NvbCBhbmQgaW4gVUkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTI4NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgaXMgcmVi
YXNlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5lci1zaWRl
YmFyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlz
dGVuZXJzLWFib3V0LWJsYW5rLWV4cGVjdGVkLnR4dDoKKwogMjAxMy0wMi0xMSAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIGRvY3VtZW50LndyaXRlIGR1cmluZyB3
aW5kb3cub25sb2FkIGNhbiB0cmlnZ2VyIER1bXBSZW5kZXJUcmVlIHRvIGR1bXAgdGhlIHJlbmRl
ciB0cmVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQt
bGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50eHQKaW5kZXggYzgzNThhYzI2
ODg5ZGFkZjJjMDZmYmJjNzU1ZjA5MzFiODRhOGVjOC4uODIyOGNjYjMwNjhmNmM3Mjk2MGZlNTYx
MzQ0Y2FiNmU1YWQxYjFjZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5lci1zaWRlYmFyLWV4cGVjdGVkLnR4dApA
QCAtNCw2ICs0LDcgQEAgSW5zcGVjdCBNZQogCiA9PT09PT09PSBjbGljayA9PT09PT09PQogW2V4
cGFuZGVkXSBkb2N1bWVudCBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTkKKyAgICBoYW5k
bGVyOiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBj
YXB0dXJpbmciKTsgfQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxpbmVOdW1iZXI6IDE5
CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNr
IC0gZG9jdW1lbnQgLSBjYXB0dXJpbmciKTsgfQpAQCAtMTIsMTIgKzEzLDE0IEBAIEluc3BlY3Qg
TWUKICAgICB0eXBlOiBjbGljawogICAgIHVzZUNhcHR1cmU6IHRydWUKIFtleHBhbmRlZF0gZG9j
dW1lbnQgKGFub255bW91cyBmdW5jdGlvbikKKyAgICBoYW5kbGVyOiBPYmplY3RIYW5kbGVyCiAg
ICAgaXNBdHRyaWJ1dGU6IGZhbHNlCiAgICAgbGlzdGVuZXJCb2R5OiBPYmplY3RIYW5kbGVyCiAg
ICAgbm9kZTogI2RvY3VtZW50CiAgICAgdHlwZTogY2xpY2sKICAgICB1c2VDYXB0dXJlOiB0cnVl
CiBbZXhwYW5kZWRdIGJ1dHRvbiNub2RlIGV2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbDoxNQor
ICAgIGhhbmRsZXI6IGZ1bmN0aW9uIChldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sgLSBidXR0
b24gLSBjYXB0dXJpbmciKTsgfQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxpbmVOdW1i
ZXI6IDE1CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2co
ImNsaWNrIC0gYnV0dG9uIC0gY2FwdHVyaW5nIik7IH0KQEAgLTI2LDYgKzI5LDcgQEAgSW5zcGVj
dCBNZQogICAgIHR5cGU6IGNsaWNrCiAgICAgdXNlQ2FwdHVyZTogdHJ1ZQogW2V4cGFuZGVkXSBi
dXR0b24jbm9kZSBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTIKKyAgICBoYW5kbGVyOiBm
dW5jdGlvbiBjbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9u
IC0gYnViYmxpbmcgKHJlZ2lzdGVyZWQgYmVmb3JlIGF0dHJpYnV0ZSkiKTsgfQogICAgIGlzQXR0
cmlidXRlOiBmYWxzZQogICAgIGxpbmVOdW1iZXI6IDEyCiAgICAgbGlzdGVuZXJCb2R5OiBmdW5j
dGlvbiBjbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0g
YnViYmxpbmcgKHJlZ2lzdGVyZWQgYmVmb3JlIGF0dHJpYnV0ZSkiKTsgfQpAQCAtMzQsNiArMzgs
NyBAQCBJbnNwZWN0IE1lCiAgICAgdHlwZTogY2xpY2sKICAgICB1c2VDYXB0dXJlOiBmYWxzZQog
W2V4cGFuZGVkXSBidXR0b24jbm9kZSBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTYKKyAg
ICBoYW5kbGVyOiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9u
IC0gYXR0cmlidXRlIik7IH0KICAgICBpc0F0dHJpYnV0ZTogdHJ1ZQogICAgIGxpbmVOdW1iZXI6
IDE2CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNs
aWNrIC0gYnV0dG9uIC0gYXR0cmlidXRlIik7IH0KQEAgLTQyLDYgKzQ3LDcgQEAgSW5zcGVjdCBN
ZQogICAgIHR5cGU6IGNsaWNrCiAgICAgdXNlQ2FwdHVyZTogZmFsc2UKIFtleHBhbmRlZF0gYnV0
dG9uI25vZGUgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjE3CisgICAgaGFuZGxlcjogZnVu
Y3Rpb24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGJ1YmJsaW5nIChy
ZWdpc3RlcmVkIGFmdGVyIGF0dHJpYnV0ZSkiKTsgfQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQog
ICAgIGxpbmVOdW1iZXI6IDE3CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQpIHsg
Y29uc29sZS5sb2coImNsaWNrIC0gYnV0dG9uIC0gYnViYmxpbmcgKHJlZ2lzdGVyZWQgYWZ0ZXIg
YXR0cmlidXRlKSIpOyB9CkBAIC01MCw2ICs1Niw3IEBAIEluc3BlY3QgTWUKICAgICB0eXBlOiBj
bGljawogICAgIHVzZUNhcHR1cmU6IGZhbHNlCiBbZXhwYW5kZWRdIGRvY3VtZW50IGV2ZW50LWxp
c3RlbmVyLXNpZGViYXIuaHRtbDo2CisgICAgaGFuZGxlcjogZnVuY3Rpb24gZG9jdW1lbnRDbGlj
a0hhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBhdHRyaWJ1
dGUiKTsgfQogICAgIGlzQXR0cmlidXRlOiB0cnVlCiAgICAgbGluZU51bWJlcjogNgogICAgIGxp
c3RlbmVyQm9keTogZnVuY3Rpb24gZG9jdW1lbnRDbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29s
ZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBhdHRyaWJ1dGUiKTsgfQpAQCAtNjAsNiArNjcsNyBA
QCBJbnNwZWN0IE1lCiAKID09PT09PT09IGN1c3RvbSBldmVudCA9PT09PT09PQogW2V4cGFuZGVk
XSBib2R5IGV2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbDoxMAorICAgIGhhbmRsZXI6IGZ1bmN0
aW9uIGYoKSB7fQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxpbmVOdW1iZXI6IDEwCiAg
ICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiBmKCkge30KQEAgLTcwLDYgKzc4LDcgQEAgSW5zcGVj
dCBNZQogCiA9PT09PT09PSBob3ZlciA9PT09PT09PQogW2V4cGFuZGVkXSBidXR0b24jbm9kZSBl
dmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTQKKyAgICBoYW5kbGVyOiBmdW5jdGlvbiBob3Zl
ckhhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImhvdmVyIC0gYnV0dG9uIC0gYnViYmxpbmci
KTsgfQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxpbmVOdW1iZXI6IDE0CiAgICAgbGlz
dGVuZXJCb2R5OiBmdW5jdGlvbiBob3ZlckhhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImhv
dmVyIC0gYnV0dG9uIC0gYnViYmxpbmciKTsgfQpAQCAtODAsNiArODksNyBAQCBJbnNwZWN0IE1l
CiAKID09PT09PT09IGNsaWNrID09PT09PT09CiBbZXhwYW5kZWRdIGRvY3VtZW50IGV2ZW50LWxp
c3RlbmVyLXNpZGViYXIuaHRtbDoxOQorICAgIGhhbmRsZXI6IGZ1bmN0aW9uIChldmVudCkgeyBj
b25zb2xlLmxvZygiY2xpY2sgLSBkb2N1bWVudCAtIGNhcHR1cmluZyIpOyB9CiAgICAgaXNBdHRy
aWJ1dGU6IGZhbHNlCiAgICAgbGluZU51bWJlcjogMTkKICAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0
aW9uIChldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sgLSBkb2N1bWVudCAtIGNhcHR1cmluZyIp
OyB9CkBAIC04OCwxMiArOTgsMTQgQEAgSW5zcGVjdCBNZQogICAgIHR5cGU6IGNsaWNrCiAgICAg
dXNlQ2FwdHVyZTogdHJ1ZQogW2V4cGFuZGVkXSBkb2N1bWVudCAoYW5vbnltb3VzIGZ1bmN0aW9u
KQorICAgIGhhbmRsZXI6IE9iamVjdEhhbmRsZXIKICAgICBpc0F0dHJpYnV0ZTogZmFsc2UKICAg
ICBsaXN0ZW5lckJvZHk6IE9iamVjdEhhbmRsZXIKICAgICBub2RlOiAjZG9jdW1lbnQKICAgICB0
eXBlOiBjbGljawogICAgIHVzZUNhcHR1cmU6IHRydWUKIFtleHBhbmRlZF0gZG9jdW1lbnQgZXZl
bnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjYKKyAgICBoYW5kbGVyOiBmdW5jdGlvbiBkb2N1bWVu
dENsaWNrSGFuZGxlcihldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sgLSBkb2N1bWVudCAtIGF0
dHJpYnV0ZSIpOyB9CiAgICAgaXNBdHRyaWJ1dGU6IHRydWUKICAgICBsaW5lTnVtYmVyOiA2CiAg
ICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiBkb2N1bWVudENsaWNrSGFuZGxlcihldmVudCkgeyBj
b25zb2xlLmxvZygiY2xpY2sgLSBkb2N1bWVudCAtIGF0dHJpYnV0ZSIpOyB9CkBAIC0xMDQsNiAr
MTE2LDcgQEAgSW5zcGVjdCBNZQogCiA9PT09PT09PSBjdXN0b20gZXZlbnQgPT09PT09PT0KIFtl
eHBhbmRlZF0gYm9keSBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTAKKyAgICBoYW5kbGVy
OiBmdW5jdGlvbiBmKCkge30KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UKICAgICBsaW5lTnVtYmVy
OiAxMAogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gZigpIHt9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXJzLWFib3V0LWJsYW5rLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5l
cnMtYWJvdXQtYmxhbmstZXhwZWN0ZWQudHh0CmluZGV4IGJiZGY3MjYwZTEwY2ZlNzZkMmNiOWE2
YjFhZTQ3NTk4MjZhM2IzMTMuLjFhYTY3NzRjNjk4YmY3OTkwYmMxZjdiY2MzMTJlYmJhZWQxYWZj
MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0
ZW5lcnMtYWJvdXQtYmxhbmstZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9lbGVtZW50cy9ldmVudC1saXN0ZW5lcnMtYWJvdXQtYmxhbmstZXhwZWN0ZWQudHh0CkBAIC00
LDYgKzQsNyBAQCBUZXN0cyBldmVudCBsaXN0ZW5lcnMgb3V0cHV0IGluIHRoZSBFbGVtZW50cyBz
aWRlYmFyIHBhbmVsIHdoZW4gdGhlIGxpc3RlbmVycyBhcgogCiA9PT09PT09PSBjbGljayA9PT09
PT09PQogW2V4cGFuZGVkXSBib2R5IGV2ZW50LWxpc3RlbmVycy1hYm91dC1ibGFuay5odG1sOjkK
KyAgICBoYW5kbGVyOiBmdW5jdGlvbiBmKCkge30KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UKICAg
ICBsaW5lTnVtYmVyOiA5CiAgICAgbGlzdGVuZXJCb2R5OiBmdW5jdGlvbiBmKCkge30KQEAgLTE0
LDYgKzE1LDcgQEAgVGVzdHMgZXZlbnQgbGlzdGVuZXJzIG91dHB1dCBpbiB0aGUgRWxlbWVudHMg
c2lkZWJhciBwYW5lbCB3aGVuIHRoZSBsaXN0ZW5lcnMgYXIKIAogPT09PT09PT0gaG92ZXIgPT09
PT09PT0KIFtleHBhbmRlZF0gZGl2I2Rpdi1pbi1pZnJhbWUgZXZlbnQtbGlzdGVuZXJzLWFib3V0
LWJsYW5rLmh0bWw6OQorICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGYoKSB7fQogICAgIGlzQXR0cmli
dXRlOiBmYWxzZQogICAgIGxpbmVOdW1iZXI6IDkKICAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9u
IGYoKSB7fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187863</attachid>
            <date>2013-02-12 07:08:03 -0800</date>
            <delta_ts>2013-02-12 08:03:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109284-20130212190433.patch</filename>
            <type>text/plain</type>
            <size>23961</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RjZWE1NTAxMjllNWMz
OTBmYTA4MjBhZGY5MTE5MWQ3ODgwYmJkZi4uMWQ4Mzg5OTRmYjk2ZTAyZmVjN2M4ZDJhMWQ2ZDg2
M2I4M2MxOTgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAyLTEyICBQZXRl
ciBSeWJpbiAgPHByeWJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
Zm9yIGV2ZW50IGxpc3RlbmVyIHByb3ZpZGUgaGFuZGxlciBmdW5jdGlvbiB2YWx1ZSBpbiBwcm90
b2NvbCBhbmQgaW4gVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTI4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBmZWF0dXJlIGltcGxpZXMgdGhhdCB3ZSBpbmNsdWRlIGEgcmVhbCBoYW5kbGVy
IGZ1bmN0aW9uIHZhbHVlIGludG8gZXZlbnQgbGlzdGVuZXIgZGVzY3JpcHRpb24uCisgICAgICAg
IFByb3RvY29sIGRlc2NyaXB0aW9uLCBpbnNwZWN0b3IgRE9NIGFnZW50ICh3aXRoIFY4IGFuZCBK
U0MgYmFja2VuZHMpIGFuZCBmcm9udC1lbmQgaXMgcGF0Y2hlZCBhY2NvcmRpbmdseS4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZXZlbnRMaXN0ZW5lckhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpldmVudExpc3RlbmVySGFuZGxlclNjcmlwdFN0YXRlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmV2ZW50TGlzdGVuZXJIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6ZXZlbnRMaXN0ZW5lckhhbmRsZXJTY3JpcHRTdGF0ZSk6CisgICAgICAgICog
YmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2Vu
dDo6Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yRE9NQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUuZXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLnByb3RvdHlwZS51cGRhdGUp
OgorICAgICAgICAoLik6CisKIDIwMTMtMDItMTEgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICBkb2N1bWVudC53cml0ZSBkdXJpbmcgd2luZG93Lm9ubG9hZCBjYW4g
dHJpZ2dlciBEdW1wUmVuZGVyVHJlZSB0byBkdW1wIHRoZSByZW5kZXIgdHJlZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAppbmRleCAx
YWNlNDdmNjA3OTc2NDQ5ZWI3MjIyYWY0M2Q4MTk2YWRlNTE5ZmRkLi45MTU3MTI0OTU3OTMwYjQy
NDYwNjZkMWZmYWZkNTU0M2FlNWI3YTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRFdmVudExpc3RlbmVyLmNwcApAQCAtMTA2LDYgKzEwNiwzMSBAQCBTdHJp
bmcgZXZlbnRMaXN0ZW5lckhhbmRsZXJCb2R5KERvY3VtZW50KiBkb2N1bWVudCwgRXZlbnRMaXN0
ZW5lciogZXZlbnRMaXN0ZW5lcgogICAgIHJldHVybiBqc0Z1bmN0aW9uLT50b1N0cmluZyhzY3Jp
cHRTdGF0ZSktPnZhbHVlKHNjcmlwdFN0YXRlKTsKIH0KIAorU2NyaXB0VmFsdWUgZXZlbnRMaXN0
ZW5lckhhbmRsZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBFdmVudExpc3RlbmVyKiBldmVudExpc3Rl
bmVyKQoreworICAgIGNvbnN0IEpTRXZlbnRMaXN0ZW5lcioganNMaXN0ZW5lciA9IEpTRXZlbnRM
aXN0ZW5lcjo6Y2FzdChldmVudExpc3RlbmVyKTsKKyAgICBBU1NFUlQoanNMaXN0ZW5lcik7Cisg
ICAgaWYgKCFqc0xpc3RlbmVyKQorICAgICAgICByZXR1cm4gU2NyaXB0VmFsdWUoKTsKKyAgICBK
U0xvY2tIb2xkZXIgbG9jayhqc0xpc3RlbmVyLT5pc29sYXRlZFdvcmxkKCktPmdsb2JhbERhdGEo
KSk7CisgICAgSlNDOjpKU09iamVjdCoganNGdW5jdGlvbiA9IGpzTGlzdGVuZXItPmpzRnVuY3Rp
b24oZG9jdW1lbnQpOworICAgIGlmICghanNGdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIFNjcmlw
dFZhbHVlKCk7CisgICAgcmV0dXJuIFNjcmlwdFZhbHVlKCpqc0xpc3RlbmVyLT5pc29sYXRlZFdv
cmxkKCktPmdsb2JhbERhdGEoKSwganNGdW5jdGlvbik7Cit9CisKK1NjcmlwdFN0YXRlKiBldmVu
dExpc3RlbmVySGFuZGxlclNjcmlwdFN0YXRlKEZyYW1lKiBmcmFtZSwgRXZlbnRMaXN0ZW5lciog
ZXZlbnRMaXN0ZW5lcikKK3sKKyAgICBjb25zdCBKU0V2ZW50TGlzdGVuZXIqIGpzTGlzdGVuZXIg
PSBKU0V2ZW50TGlzdGVuZXI6OmNhc3QoZXZlbnRMaXN0ZW5lcik7CisgICAgQVNTRVJUKGpzTGlz
dGVuZXIpOworICAgIGlmICghanNMaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYg
KCFmcmFtZS0+c2NyaXB0KCktPmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2Ny
aXB0KSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCA9IGpz
TGlzdGVuZXItPmlzb2xhdGVkV29ybGQoKTsKKyAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLT5n
bG9iYWxPYmplY3Qod29ybGQpLT5nbG9iYWxFeGVjKCk7Cit9CisKIGJvb2wgZXZlbnRMaXN0ZW5l
ckhhbmRsZXJMb2NhdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIEV2ZW50TGlzdGVuZXIqIGV2ZW50
TGlzdGVuZXIsIFN0cmluZyYgc291cmNlTmFtZSwgU3RyaW5nJiBzY3JpcHRJZCwgaW50JiBsaW5l
TnVtYmVyKQogewogICAgIGNvbnN0IEpTRXZlbnRMaXN0ZW5lcioganNMaXN0ZW5lciA9IEpTRXZl
bnRMaXN0ZW5lcjo6Y2FzdChldmVudExpc3RlbmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdEV2ZW50TGlzdGVuZXIuaAppbmRleCAwMTllM2QwZWI4YTAwZmQ3MDMw
NmY1NDk0ZDVmY2I4YmJhOGJmNTQ2Li43OGJjMTc5MGRiOTMxMjI3ZWJmMjQ2MzI3NDJlN2M2NjU3
YjA0M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRFdmVu
dExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RXZlbnRM
aXN0ZW5lci5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJKU0xhenlFdmVudExpc3Rl
bmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5o
IgogCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIApAQCAtNDYsNiArNDcsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgUGFzc1JlZlB0cjxKU0xhenlFdmVudExpc3RlbmVyPiBjcmVh
dGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKE5vZGUqLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSk7CiAgICAgUGFzc1JlZlB0cjxKU0xhenlFdmVudExpc3Rl
bmVyPiBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKEZyYW1lKiwgY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwogICAgIFN0cmluZyBldmVudExpc3Rl
bmVySGFuZGxlckJvZHkoRG9jdW1lbnQqLCBFdmVudExpc3RlbmVyKik7CisgICAgU2NyaXB0VmFs
dWUgZXZlbnRMaXN0ZW5lckhhbmRsZXIoRG9jdW1lbnQqLCBFdmVudExpc3RlbmVyKik7CisgICAg
U2NyaXB0U3RhdGUqIGV2ZW50TGlzdGVuZXJIYW5kbGVyU2NyaXB0U3RhdGUoRnJhbWUqLCBFdmVu
dExpc3RlbmVyKik7CiAgICAgYm9vbCBldmVudExpc3RlbmVySGFuZGxlckxvY2F0aW9uKERvY3Vt
ZW50KiwgRXZlbnRMaXN0ZW5lciosIFN0cmluZyYgc291cmNlTmFtZSwgU3RyaW5nJiBzY3JpcHRJ
ZCwgaW50JiBsaW5lTnVtYmVyKTsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0ZW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAppbmRleCA1
NTBhMjRlY2Q3NzY5OTg0NjNmZWU1NGQwYWY3MGU1NTk1ZGY4NTVmLi4yMWQyNDYwZDhkZjYwMWM1
YmUxNzI5ZTIyZDgzNzhlOTcxNTFlYjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRFdmVudExpc3RlbmVyLmNwcApAQCAtMTAzLDYgKzEwMywzMSBAQCBTdHJp
bmcgZXZlbnRMaXN0ZW5lckhhbmRsZXJCb2R5KERvY3VtZW50KiBkb2N1bWVudCwgRXZlbnRMaXN0
ZW5lciogbGlzdGVuZXIpCiAgICAgcmV0dXJuIHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2so
ZnVuY3Rpb24pOwogfQogCitTY3JpcHRWYWx1ZSBldmVudExpc3RlbmVySGFuZGxlcihEb2N1bWVu
dCogZG9jdW1lbnQsIEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIGlmIChsaXN0ZW5l
ci0+dHlwZSgpICE9IEV2ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lclR5cGUpCisgICAgICAg
IHJldHVybiBTY3JpcHRWYWx1ZSgpOworCisgICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOworICAg
IFY4QWJzdHJhY3RFdmVudExpc3RlbmVyKiB2OExpc3RlbmVyID0gc3RhdGljX2Nhc3Q8VjhBYnN0
cmFjdEV2ZW50TGlzdGVuZXIqPihsaXN0ZW5lcik7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4
dD4gY29udGV4dCA9IHRvVjhDb250ZXh0KGRvY3VtZW50LCB2OExpc3RlbmVyLT53b3JsZENvbnRl
eHQoKSk7CisgICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNvbnRleHRTY29wZShjb250ZXh0KTsKKyAg
ICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGZ1bmN0aW9uID0gdjhMaXN0ZW5lci0+Z2V0TGlzdGVu
ZXJPYmplY3QoZG9jdW1lbnQpOworICAgIGlmIChmdW5jdGlvbi5Jc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiBTY3JpcHRWYWx1ZSgpOworICAgIHJldHVybiBTY3JpcHRWYWx1ZShmdW5jdGlvbik7
Cit9CisKK1NjcmlwdFN0YXRlKiBldmVudExpc3RlbmVySGFuZGxlclNjcmlwdFN0YXRlKEZyYW1l
KiBmcmFtZSwgRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCit7CisgICAgaWYgKGxpc3RlbmVyLT50
eXBlKCkgIT0gRXZlbnRMaXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyVHlwZSkKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIqIHY4TGlzdGVuZXIgPSBzdGF0aWNf
Y2FzdDxWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcio+KGxpc3RlbmVyKTsKKyAgICB2ODo6SGFuZGxl
U2NvcGUgc2NvcGU7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gdjhDb250ZXh0ID0gdjhM
aXN0ZW5lci0+d29ybGRDb250ZXh0KCkuYWRqdXN0ZWRDb250ZXh0KGZyYW1lLT5zY3JpcHQoKSk7
CisgICAgcmV0dXJuIFNjcmlwdFN0YXRlOjpmb3JDb250ZXh0KCp2OENvbnRleHQpOworfQorCiBi
b29sIGV2ZW50TGlzdGVuZXJIYW5kbGVyTG9jYXRpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBFdmVu
dExpc3RlbmVyKiBsaXN0ZW5lciwgU3RyaW5nJiBzb3VyY2VOYW1lLCBTdHJpbmcmIHNjcmlwdElk
LCBpbnQmIGxpbmVOdW1iZXIpCiB7CiAgICAgaWYgKGxpc3RlbmVyLT50eXBlKCkgIT0gRXZlbnRM
aXN0ZW5lcjo6SlNFdmVudExpc3RlbmVyVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdEV2ZW50TGlzdGVuZXIuaAppbmRleCA5MTA4OTAzYjMwOTBjY2E1ODNiODJi
NDgzZGU1MjAyZTU4M2U2NThkLi5kOWIyMmU5MDhhM2Y4MDhlOTAwMzJkNTE1YmY2ZDU1MTQyNWQ5
MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRFdmVudExp
c3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RXZlbnRMaXN0
ZW5lci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIFNjcmlwdEV2ZW50TGlzdGVuZXJfaAog
I2RlZmluZSBTY3JpcHRFdmVudExpc3RlbmVyX2gKIAorI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgi
CiAjaW5jbHVkZSAiVjhMYXp5RXZlbnRMaXN0ZW5lci5oIgogCiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KQEAgLTQ2LDYgKzQ3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFBhc3NS
ZWZQdHI8VjhMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcihO
b2RlKiwgY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpOwog
ICAgIFBhc3NSZWZQdHI8VjhMYXp5RXZlbnRMaXN0ZW5lcj4gY3JlYXRlQXR0cmlidXRlRXZlbnRM
aXN0ZW5lcihGcmFtZSosIGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcm
IHZhbHVlKTsKICAgICBTdHJpbmcgZXZlbnRMaXN0ZW5lckhhbmRsZXJCb2R5KERvY3VtZW50Kiwg
RXZlbnRMaXN0ZW5lciopOworICAgIFNjcmlwdFZhbHVlIGV2ZW50TGlzdGVuZXJIYW5kbGVyKERv
Y3VtZW50KiwgRXZlbnRMaXN0ZW5lciopOworICAgIFNjcmlwdFN0YXRlKiBldmVudExpc3RlbmVy
SGFuZGxlclNjcmlwdFN0YXRlKEZyYW1lKiwgRXZlbnRMaXN0ZW5lciopOwogICAgIGJvb2wgZXZl
bnRMaXN0ZW5lckhhbmRsZXJMb2NhdGlvbihEb2N1bWVudCosIEV2ZW50TGlzdGVuZXIqLCBTdHJp
bmcmIHNvdXJjZU5hbWUsIFN0cmluZyYgc2NyaXB0SWQsIGludCYgbGluZU51bWJlcik7CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgppbmRleCA1NDBkMmJhZWZlNmY2ODMzOTNhYmRkYWMzYTkwZTlkMzY4ZmRhYjljLi43NTU5ZjAx
YmQ3YjZhODQyY2M3MGQ4Y2FlZjBjZDI2YjUxZmU1YjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCkBAIC0xNzU1LDcgKzE3NTUsOCBAQAogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6
ICJUYXJnZXQgPGNvZGU+RE9NTm9kZTwvY29kZT4gaWQuIiB9LAogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImhhbmRsZXJCb2R5IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9u
IjogIkV2ZW50IGhhbmRsZXIgZnVuY3Rpb24gYm9keS4iIH0sCiAgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAibG9jYXRpb24iLCAiJHJlZiI6ICJEZWJ1Z2dlci5Mb2NhdGlvbiIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJIYW5kbGVyIGNvZGUgbG9jYXRpb24uIiB9LAot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZU5hbWUiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiU291cmNlIHNjcmlwdCBVUkwu
IiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlTmFtZSIsICJ0eXBlIjog
InN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTb3VyY2Ugc2NyaXB0
IFVSTC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlciIsICIkcmVm
IjogIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkV2ZW50IGhhbmRsZXIgZnVuY3Rpb24gdmFsdWUuIiB9CiAgICAgICAgICAgICAgICAgXSwK
ICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRE9NIGludGVyYWN0aW9uIGlzIGltcGxl
bWVudGVkIGluIHRlcm1zIG9mIG1pcnJvciBvYmplY3RzIHRoYXQgcmVwcmVzZW50IHRoZSBhY3R1
YWwgRE9NIG5vZGVzLiBET01Ob2RlIGlzIGEgYmFzZSBub2RlIG1pcnJvciB0eXBlLiIKICAgICAg
ICAgICAgIH0sCkBAIC0xODc2LDcgKzE4NzcsOCBAQAogICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICJuYW1lIjogImdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZSIsCiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUlk
IiwgIiRyZWYiOiAiTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIklkIG9mIHRoZSBub2RlIHRvIGdl
dCBsaXN0ZW5lcnMgZm9yLiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJ
ZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZCBvZiB0aGUgbm9kZSB0byBn
ZXQgbGlzdGVuZXJzIGZvci4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib2Jq
ZWN0R3JvdXAiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiU3ltYm9saWMgZ3JvdXAgbmFtZSBmb3IgaGFuZGxlciB2YWx1ZS4gSGFuZGxlciB2YWx1
ZSBpcyBub3QgcmV0dXJuZWQgd2l0aG91dCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZWQuIiB9CiAg
ICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJsaXN0ZW5lcnMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVt
cyI6IHsgIiRyZWYiOiAiRXZlbnRMaXN0ZW5lciJ9LCAiZGVzY3JpcHRpb24iOiAiQXJyYXkgb2Yg
cmVsZXZhbnQgbGlzdGVuZXJzLiIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5jcHAKaW5kZXggODRmNmM2ZDE1NzExNjYzOWRkMzNhMDJlNDQxNjEyNTIy
MDI4ZTM1OC4uNWZkZmJmYmVlYjdjMGZmYmU3YmFjZjIwYWE2MmUzYTlkMmFiMTkyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC03NjIs
NyArNzYyLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0Tm9kZVZhbHVlKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgaW50IG5vZGVJZCwgY29uc3QKICAgICBtX2RvbUVkaXRvci0+cmVw
bGFjZVdob2xlVGV4dCh0b1RleHQobm9kZSksIHZhbHVlLCBlcnJvclN0cmluZyk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGludCBub2RlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlw
ZUJ1aWxkZXI6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gPiYgbGlzdGVuZXJzQXJyYXkpCit2b2lkIElu
c3BlY3RvckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUoRXJyb3JTdHJpbmcqIGVy
cm9yU3RyaW5nLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBSZWZQdHI8
VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpET006OkV2ZW50TGlzdGVuZXI+ID4mIGxp
c3RlbmVyc0FycmF5KQogewogICAgIGxpc3RlbmVyc0FycmF5ID0gVHlwZUJ1aWxkZXI6OkFycmF5
PFR5cGVCdWlsZGVyOjpET006OkV2ZW50TGlzdGVuZXI+OjpjcmVhdGUoKTsKICAgICBOb2RlKiBu
b2RlID0gYXNzZXJ0Tm9kZShlcnJvclN0cmluZywgbm9kZUlkKTsKQEAgLTc3OSw3ICs3NzksNyBA
QCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUoRXJyb3JT
dHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgbgogICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8
IHZlY3Rvci5zaXplKCk7ICsraikgewogICAgICAgICAgICAgY29uc3QgUmVnaXN0ZXJlZEV2ZW50
TGlzdGVuZXImIGxpc3RlbmVyID0gdmVjdG9yW2pdOwogICAgICAgICAgICAgaWYgKGxpc3RlbmVy
LnVzZUNhcHR1cmUpCi0gICAgICAgICAgICAgICAgbGlzdGVuZXJzQXJyYXktPmFkZEl0ZW0oYnVp
bGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGxpc3RlbmVyLCBpbmZvLmV2ZW50VHlwZSwgaW5mby5u
b2RlKSk7CisgICAgICAgICAgICAgICAgbGlzdGVuZXJzQXJyYXktPmFkZEl0ZW0oYnVpbGRPYmpl
Y3RGb3JFdmVudExpc3RlbmVyKGxpc3RlbmVyLCBpbmZvLmV2ZW50VHlwZSwgaW5mby5ub2RlLCBv
YmplY3RHcm91cCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC03OTAsNyArNzkwLDcgQEAgdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgaW50IG4KICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCB2ZWN0
b3Iuc2l6ZSgpOyArK2opIHsKICAgICAgICAgICAgIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3Rl
bmVyJiBsaXN0ZW5lciA9IHZlY3RvcltqXTsKICAgICAgICAgICAgIGlmICghbGlzdGVuZXIudXNl
Q2FwdHVyZSkKLSAgICAgICAgICAgICAgICBsaXN0ZW5lcnNBcnJheS0+YWRkSXRlbShidWlsZE9i
amVjdEZvckV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGluZm8uZXZlbnRUeXBlLCBpbmZvLm5vZGUp
KTsKKyAgICAgICAgICAgICAgICBsaXN0ZW5lcnNBcnJheS0+YWRkSXRlbShidWlsZE9iamVjdEZv
ckV2ZW50TGlzdGVuZXIobGlzdGVuZXIsIGluZm8uZXZlbnRUeXBlLCBpbmZvLm5vZGUsIG9iamVj
dEdyb3VwKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMzc2LDE1ICsxMzc2LDMyIEBAIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpET006Ok5vZGU+ID4gSW5z
cGVjdG9yRE9NQWdlbnQ6OmJ1aWxkCiAgICAgcmV0dXJuIGNoaWxkcmVuLnJlbGVhc2UoKTsKIH0K
IAotUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyPiBJbnNwZWN0b3JE
T01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVu
dExpc3RlbmVyJiByZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciwgY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIE5vZGUqIG5vZGUpCitQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET006OkV2ZW50
TGlzdGVuZXI+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIo
Y29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImIHJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLCBj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nKiBv
YmplY3RHcm91cElkKQogewogICAgIFJlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVy
ID0gcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIubGlzdGVuZXI7CisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gbm9kZS0+ZG9jdW1lbnQoKTsKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6RXZl
bnRMaXN0ZW5lcj4gdmFsdWUgPSBUeXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyOjpjcmVh
dGUoKQogICAgICAgICAuc2V0VHlwZShldmVudFR5cGUpCiAgICAgICAgIC5zZXRVc2VDYXB0dXJl
KHJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLnVzZUNhcHR1cmUpCiAgICAgICAgIC5zZXRJc0F0dHJp
YnV0ZShldmVudExpc3RlbmVyLT5pc0F0dHJpYnV0ZSgpKQogICAgICAgICAuc2V0Tm9kZUlkKHB1
c2hOb2RlUGF0aFRvRnJvbnRlbmQobm9kZSkpCi0gICAgICAgIC5zZXRIYW5kbGVyQm9keShldmVu
dExpc3RlbmVySGFuZGxlckJvZHkobm9kZS0+ZG9jdW1lbnQoKSwgZXZlbnRMaXN0ZW5lci5nZXQo
KSkpOworICAgICAgICAuc2V0SGFuZGxlckJvZHkoZXZlbnRMaXN0ZW5lckhhbmRsZXJCb2R5KGRv
Y3VtZW50LCBldmVudExpc3RlbmVyLmdldCgpKSk7CisgICAgaWYgKG9iamVjdEdyb3VwSWQpIHsK
KyAgICAgICAgU2NyaXB0VmFsdWUgZnVuY3Rpb25WYWx1ZSA9IGV2ZW50TGlzdGVuZXJIYW5kbGVy
KGRvY3VtZW50LCBldmVudExpc3RlbmVyLmdldCgpKTsKKyAgICAgICAgaWYgKCFmdW5jdGlvblZh
bHVlLmhhc05vVmFsdWUoKSkgeworICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQt
PmZyYW1lKCk7CisgICAgICAgICAgICBpZiAoZnJhbWUpIHsKKyAgICAgICAgICAgICAgICBTY3Jp
cHRTdGF0ZSogc2NyaXB0U3RhdGUgPSBldmVudExpc3RlbmVySGFuZGxlclNjcmlwdFN0YXRlKGZy
YW1lLCBldmVudExpc3RlbmVyLmdldCgpKTsKKyAgICAgICAgICAgICAgICBpZiAoc2NyaXB0U3Rh
dGUpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQg
PSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3Ioc2NyaXB0U3RhdGUp
OworICAgICAgICAgICAgICAgICAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpS
ZW1vdGVPYmplY3Q+IHZhbHVlSnNvbiA9IGluamVjdGVkU2NyaXB0LndyYXBPYmplY3QoZnVuY3Rp
b25WYWx1ZSwgKm9iamVjdEdyb3VwSWQsIHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAg
dmFsdWUtPnNldEhhbmRsZXIodmFsdWVKc29uKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KICAgICBTdHJp
bmcgc291cmNlTmFtZTsKICAgICBTdHJpbmcgc2NyaXB0SWQ7CiAgICAgaW50IGxpbmVOdW1iZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IDkx
OWU4NjkzZTlmMzhmOTJkZGJiN2YyNjZjYjUwYzI2NTJmMzk0ZTEuLmNjMDJlNmE1ZTQ1MzgyNTlm
ZWNlMjQ4YjM1MmM2NGQ3YzBlMDlmOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBnZXRPdXRlckhUTUwoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBXVEY6OlN0cmlu
Zyogb3V0ZXJIVE1MKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3V0ZXJIVE1MKEVycm9yU3RyaW5n
KiwgaW50IG5vZGVJZCwgY29uc3QgU3RyaW5nJiBvdXRlckhUTUwpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXROb2RlVmFsdWUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHZh
bHVlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKEVycm9yU3Ry
aW5nKiwgaW50IG5vZGVJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6
RE9NOjpFdmVudExpc3RlbmVyPiA+JiBsaXN0ZW5lcnNBcnJheSk7CisgICAgdmlydHVhbCB2b2lk
IGdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShFcnJvclN0cmluZyosIGludCBub2RlSWQsIGNvbnN0
IFdURjo6U3RyaW5nKiBvYmplY3RHcm91cCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBl
QnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyPiA+JiBsaXN0ZW5lcnNBcnJheSk7CiAgICAgdmly
dHVhbCB2b2lkIHBlcmZvcm1TZWFyY2goRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHdoaXRl
c3BhY2VUcmltbWVkUXVlcnksIFN0cmluZyogc2VhcmNoSWQsIGludCogcmVzdWx0Q291bnQpOwog
ICAgIHZpcnR1YWwgdm9pZCBnZXRTZWFyY2hSZXN1bHRzKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBzZWFyY2hJZCwgaW50IGZyb21JbmRleCwgaW50IHRvSW5kZXgsIFJlZlB0cjxUeXBlQnVp
bGRlcjo6QXJyYXk8aW50PiA+Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpc2NhcmRTZWFyY2hSZXN1
bHRzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzZWFyY2hJZCk7CkBAIC0yMjcsNyArMjI3
LDcgQEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET006Ok5vZGU+IGJ1
aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCopOwogICAgIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiBidWlsZEFycmF5Rm9yRWxlbWVu
dEF0dHJpYnV0ZXMoRWxlbWVudCopOwogICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5
PFR5cGVCdWlsZGVyOjpET006Ok5vZGU+ID4gYnVpbGRBcnJheUZvckNvbnRhaW5lckNoaWxkcmVu
KE5vZGUqIGNvbnRhaW5lciwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApOwotICAg
IFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gYnVpbGRPYmplY3RG
b3JFdmVudExpc3RlbmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiwgY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqKTsKKyAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVy
OjpET006OkV2ZW50TGlzdGVuZXI+IGJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihjb25zdCBS
ZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBO
b2RlKiwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cElkKTsKIAogICAgIE5vZGUqIG5vZGVGb3JQ
YXRoKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IGNjM2RjYTYwNzM2YjNmNDZlZmFhNWFjNTYxMGEy
YmNlM2FmMWZhODQuLjUwN2Y2ODA4YWY5ZjQ1YmYxOTI5M2U5NGQyZDJhYjlmZjU0ODViOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAt
MzYzLDExICszNjMsMTIgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlID0gewogICAg
IH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gb2JqZWN0R3JvdXBJZAogICAg
ICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yKT19IGNhbGxiYWNrCiAgICAgICov
Ci0gICAgZXZlbnRMaXN0ZW5lcnM6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIGV2ZW50TGlzdGVu
ZXJzOiBmdW5jdGlvbihvYmplY3RHcm91cElkLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIERP
TUFnZW50LmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZSh0aGlzLmlkLCBjYWxsYmFjayk7CisgICAg
ICAgIERPTUFnZW50LmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZSh0aGlzLmlkLCBvYmplY3RHcm91
cElkLCBjYWxsYmFjayk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQ
YW5lLmpzCmluZGV4IDI5NGFmYmJkNzcyMWJkOWI5NzJjMGZjMzFkNzU2NDE0N2IwN2EyMGUuLjJi
ZDIwOWIwM2RkZjQxNmQyMmJmZjUxMzEwYWJiNGQ2OGYwNjE4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJz
U2lkZWJhclBhbmUuanMKQEAgLTExOSw3ICsxMTksNyBAQCBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0
ZW5lcnNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
bm9kZSkKLSAgICAgICAgICAgIG5vZGUuZXZlbnRMaXN0ZW5lcnMoY2FsbGJhY2spOworICAgICAg
ICAgICAgbm9kZS5ldmVudExpc3RlbmVycyhXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcnNTaWRl
YmFyUGFuZS5fb2JqZWN0R3JvdXBOYW1lLCBjYWxsYmFjayk7CiAgICAgICAgIHRoaXMuX3NlbGVj
dGVkTm9kZSA9IG5vZGU7CiAgICAgfSwKIApAQCAtMjAyLDYgKzIwMiwxMCBAQCBXZWJJbnNwZWN0
b3IuRXZlbnRMaXN0ZW5lckJhci5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcHJvcGVy
dGllcy5wdXNoKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eS5mcm9tUHJpbWl0aXZl
VmFsdWUoImlzQXR0cmlidXRlIiwgdGhpcy5ldmVudExpc3RlbmVyLmlzQXR0cmlidXRlKSk7CiAg
ICAgICAgICAgICBpZiAobm9kZU9iamVjdCkKICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1
c2gobmV3IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eSgibm9kZSIsIG5vZGVPYmpl
Y3QpKTsKKyAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXIg
IT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICAgICAgdmFyIHJlbW90ZU9iamVjdCA9IFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQodGhpcy5ldmVudExpc3RlbmVyLmhh
bmRsZXIpOworICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdFByb3BlcnR5KCJoYW5kbGVyIiwgcmVtb3RlT2JqZWN0KSk7CisgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXZlbnRMaXN0ZW5lci5oYW5kbGVy
Qm9keSAhPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3RQcm9wZXJ0eS5mcm9tUHJpbWl0aXZlVmFsdWUoImxpc3Rl
bmVyQm9keSIsIHRoaXMuZXZlbnRMaXN0ZW5lci5oYW5kbGVyQm9keSkpOwogICAgICAgICAgICAg
aWYgKHRoaXMuZXZlbnRMaXN0ZW5lci5zb3VyY2VOYW1lKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJhNjBmNjYyNGI1YmE1
NTBiYzE5MWUzYzQ4YmIxNWM1NWVjMjUxNTEuLjY1ZDY0NjEwYmRhZjZiMTg2N2QxYjRiYThlYmJh
NzE3NjAxZWY5YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMi0xMiAgUGV0ZXIgUnli
aW4gIDxwcnliaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGZvciBl
dmVudCBsaXN0ZW5lciBwcm92aWRlIGhhbmRsZXIgZnVuY3Rpb24gdmFsdWUgaW4gcHJvdG9jb2wg
YW5kIGluIFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDkyODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0IGlzIHJlYmFzZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQt
bGlzdGVuZXItc2lkZWJhci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2VsZW1l
bnRzL2V2ZW50LWxpc3RlbmVycy1hYm91dC1ibGFuay1leHBlY3RlZC50eHQ6CisKIDIwMTMtMDIt
MTEgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBkb2N1bWVudC53
cml0ZSBkdXJpbmcgd2luZG93Lm9ubG9hZCBjYW4gdHJpZ2dlciBEdW1wUmVuZGVyVHJlZSB0byBk
dW1wIHRoZSByZW5kZXIgdHJlZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVyLXNpZGViYXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IGM4MzU4YWMyNjg4OWRhZGYyYzA2ZmJiYzc1NWYwOTMxYjg0YThlYzguLjgyMjhjY2IzMDY4
ZjZjNzI5NjBmZTU2MTM0NGNhYjZlNWFkMWIxY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy9ldmVudC1saXN0ZW5lci1zaWRlYmFyLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXItc2lkZWJhci1l
eHBlY3RlZC50eHQKQEAgLTQsNiArNCw3IEBAIEluc3BlY3QgTWUKIAogPT09PT09PT0gY2xpY2sg
PT09PT09PT0KIFtleHBhbmRlZF0gZG9jdW1lbnQgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1s
OjE5CisgICAgaGFuZGxlcjogZnVuY3Rpb24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAt
IGRvY3VtZW50IC0gY2FwdHVyaW5nIik7IH0KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UKICAgICBs
aW5lTnVtYmVyOiAxOQogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gKGV2ZW50KSB7IGNvbnNv
bGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gY2FwdHVyaW5nIik7IH0KQEAgLTEyLDEyICsxMywx
NCBAQCBJbnNwZWN0IE1lCiAgICAgdHlwZTogY2xpY2sKICAgICB1c2VDYXB0dXJlOiB0cnVlCiBb
ZXhwYW5kZWRdIGRvY3VtZW50IChhbm9ueW1vdXMgZnVuY3Rpb24pCisgICAgaGFuZGxlcjogT2Jq
ZWN0SGFuZGxlcgogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxpc3RlbmVyQm9keTogT2Jq
ZWN0SGFuZGxlcgogICAgIG5vZGU6ICNkb2N1bWVudAogICAgIHR5cGU6IGNsaWNrCiAgICAgdXNl
Q2FwdHVyZTogdHJ1ZQogW2V4cGFuZGVkXSBidXR0b24jbm9kZSBldmVudC1saXN0ZW5lci1zaWRl
YmFyLmh0bWw6MTUKKyAgICBoYW5kbGVyOiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2co
ImNsaWNrIC0gYnV0dG9uIC0gY2FwdHVyaW5nIik7IH0KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UK
ICAgICBsaW5lTnVtYmVyOiAxNQogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gKGV2ZW50KSB7
IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGNhcHR1cmluZyIpOyB9CkBAIC0yNiw2ICsy
OSw3IEBAIEluc3BlY3QgTWUKICAgICB0eXBlOiBjbGljawogICAgIHVzZUNhcHR1cmU6IHRydWUK
IFtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjEyCisg
ICAgaGFuZGxlcjogZnVuY3Rpb24gY2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJj
bGljayAtIGJ1dHRvbiAtIGJ1YmJsaW5nIChyZWdpc3RlcmVkIGJlZm9yZSBhdHRyaWJ1dGUpIik7
IH0KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UKICAgICBsaW5lTnVtYmVyOiAxMgogICAgIGxpc3Rl
bmVyQm9keTogZnVuY3Rpb24gY2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGlj
ayAtIGJ1dHRvbiAtIGJ1YmJsaW5nIChyZWdpc3RlcmVkIGJlZm9yZSBhdHRyaWJ1dGUpIik7IH0K
QEAgLTM0LDYgKzM4LDcgQEAgSW5zcGVjdCBNZQogICAgIHR5cGU6IGNsaWNrCiAgICAgdXNlQ2Fw
dHVyZTogZmFsc2UKIFtleHBhbmRlZF0gYnV0dG9uI25vZGUgZXZlbnQtbGlzdGVuZXItc2lkZWJh
ci5odG1sOjE2CisgICAgaGFuZGxlcjogZnVuY3Rpb24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJj
bGljayAtIGJ1dHRvbiAtIGF0dHJpYnV0ZSIpOyB9CiAgICAgaXNBdHRyaWJ1dGU6IHRydWUKICAg
ICBsaW5lTnVtYmVyOiAxNgogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gKGV2ZW50KSB7IGNv
bnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGF0dHJpYnV0ZSIpOyB9CkBAIC00Miw2ICs0Nyw3
IEBAIEluc3BlY3QgTWUKICAgICB0eXBlOiBjbGljawogICAgIHVzZUNhcHR1cmU6IGZhbHNlCiBb
ZXhwYW5kZWRdIGJ1dHRvbiNub2RlIGV2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbDoxNworICAg
IGhhbmRsZXI6IGZ1bmN0aW9uIChldmVudCkgeyBjb25zb2xlLmxvZygiY2xpY2sgLSBidXR0b24g
LSBidWJibGluZyAocmVnaXN0ZXJlZCBhZnRlciBhdHRyaWJ1dGUpIik7IH0KICAgICBpc0F0dHJp
YnV0ZTogZmFsc2UKICAgICBsaW5lTnVtYmVyOiAxNwogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rp
b24gKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGJ1dHRvbiAtIGJ1YmJsaW5nIChyZWdp
c3RlcmVkIGFmdGVyIGF0dHJpYnV0ZSkiKTsgfQpAQCAtNTAsNiArNTYsNyBAQCBJbnNwZWN0IE1l
CiAgICAgdHlwZTogY2xpY2sKICAgICB1c2VDYXB0dXJlOiBmYWxzZQogW2V4cGFuZGVkXSBkb2N1
bWVudCBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6NgorICAgIGhhbmRsZXI6IGZ1bmN0aW9u
IGRvY3VtZW50Q2xpY2tIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3Vt
ZW50IC0gYXR0cmlidXRlIik7IH0KICAgICBpc0F0dHJpYnV0ZTogdHJ1ZQogICAgIGxpbmVOdW1i
ZXI6IDYKICAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIGRvY3VtZW50Q2xpY2tIYW5kbGVyKGV2
ZW50KSB7IGNvbnNvbGUubG9nKCJjbGljayAtIGRvY3VtZW50IC0gYXR0cmlidXRlIik7IH0KQEAg
LTYwLDYgKzY3LDcgQEAgSW5zcGVjdCBNZQogCiA9PT09PT09PSBjdXN0b20gZXZlbnQgPT09PT09
PT0KIFtleHBhbmRlZF0gYm9keSBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTAKKyAgICBo
YW5kbGVyOiBmdW5jdGlvbiBmKCkge30KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UKICAgICBsaW5l
TnVtYmVyOiAxMAogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gZigpIHt9CkBAIC03MCw2ICs3
OCw3IEBAIEluc3BlY3QgTWUKIAogPT09PT09PT0gaG92ZXIgPT09PT09PT0KIFtleHBhbmRlZF0g
YnV0dG9uI25vZGUgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjE0CisgICAgaGFuZGxlcjog
ZnVuY3Rpb24gaG92ZXJIYW5kbGVyKGV2ZW50KSB7IGNvbnNvbGUubG9nKCJob3ZlciAtIGJ1dHRv
biAtIGJ1YmJsaW5nIik7IH0KICAgICBpc0F0dHJpYnV0ZTogZmFsc2UKICAgICBsaW5lTnVtYmVy
OiAxNAogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gaG92ZXJIYW5kbGVyKGV2ZW50KSB7IGNv
bnNvbGUubG9nKCJob3ZlciAtIGJ1dHRvbiAtIGJ1YmJsaW5nIik7IH0KQEAgLTgwLDYgKzg5LDcg
QEAgSW5zcGVjdCBNZQogCiA9PT09PT09PSBjbGljayA9PT09PT09PQogW2V4cGFuZGVkXSBkb2N1
bWVudCBldmVudC1saXN0ZW5lci1zaWRlYmFyLmh0bWw6MTkKKyAgICBoYW5kbGVyOiBmdW5jdGlv
biAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBjYXB0dXJpbmciKTsg
fQogICAgIGlzQXR0cmlidXRlOiBmYWxzZQogICAgIGxpbmVOdW1iZXI6IDE5CiAgICAgbGlzdGVu
ZXJCb2R5OiBmdW5jdGlvbiAoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQg
LSBjYXB0dXJpbmciKTsgfQpAQCAtODgsMTIgKzk4LDE0IEBAIEluc3BlY3QgTWUKICAgICB0eXBl
OiBjbGljawogICAgIHVzZUNhcHR1cmU6IHRydWUKIFtleHBhbmRlZF0gZG9jdW1lbnQgKGFub255
bW91cyBmdW5jdGlvbikKKyAgICBoYW5kbGVyOiBPYmplY3RIYW5kbGVyCiAgICAgaXNBdHRyaWJ1
dGU6IGZhbHNlCiAgICAgbGlzdGVuZXJCb2R5OiBPYmplY3RIYW5kbGVyCiAgICAgbm9kZTogI2Rv
Y3VtZW50CiAgICAgdHlwZTogY2xpY2sKICAgICB1c2VDYXB0dXJlOiB0cnVlCiBbZXhwYW5kZWRd
IGRvY3VtZW50IGV2ZW50LWxpc3RlbmVyLXNpZGViYXIuaHRtbDo2CisgICAgaGFuZGxlcjogZnVu
Y3Rpb24gZG9jdW1lbnRDbGlja0hhbmRsZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0g
ZG9jdW1lbnQgLSBhdHRyaWJ1dGUiKTsgfQogICAgIGlzQXR0cmlidXRlOiB0cnVlCiAgICAgbGlu
ZU51bWJlcjogNgogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24gZG9jdW1lbnRDbGlja0hhbmRs
ZXIoZXZlbnQpIHsgY29uc29sZS5sb2coImNsaWNrIC0gZG9jdW1lbnQgLSBhdHRyaWJ1dGUiKTsg
fQpAQCAtMTA0LDYgKzExNiw3IEBAIEluc3BlY3QgTWUKIAogPT09PT09PT0gY3VzdG9tIGV2ZW50
ID09PT09PT09CiBbZXhwYW5kZWRdIGJvZHkgZXZlbnQtbGlzdGVuZXItc2lkZWJhci5odG1sOjEw
CisgICAgaGFuZGxlcjogZnVuY3Rpb24gZigpIHt9CiAgICAgaXNBdHRyaWJ1dGU6IGZhbHNlCiAg
ICAgbGluZU51bWJlcjogMTAKICAgICBsaXN0ZW5lckJvZHk6IGZ1bmN0aW9uIGYoKSB7fQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2V2ZW50LWxpc3RlbmVycy1h
Ym91dC1ibGFuay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMv
ZXZlbnQtbGlzdGVuZXJzLWFib3V0LWJsYW5rLWV4cGVjdGVkLnR4dAppbmRleCBiYmRmNzI2MGUx
MGNmZTc2ZDJjYjlhNmIxYWU0NzU5ODI2YTNiMzEzLi4xYWE2Nzc0YzY5OGJmNzk5MGJjMWY3YmNj
MzEyZWJiYWVkMWFmYzM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVu
dHMvZXZlbnQtbGlzdGVuZXJzLWFib3V0LWJsYW5rLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMvZXZlbnQtbGlzdGVuZXJzLWFib3V0LWJsYW5rLWV4cGVj
dGVkLnR4dApAQCAtNCw2ICs0LDcgQEAgVGVzdHMgZXZlbnQgbGlzdGVuZXJzIG91dHB1dCBpbiB0
aGUgRWxlbWVudHMgc2lkZWJhciBwYW5lbCB3aGVuIHRoZSBsaXN0ZW5lcnMgYXIKIAogPT09PT09
PT0gY2xpY2sgPT09PT09PT0KIFtleHBhbmRlZF0gYm9keSBldmVudC1saXN0ZW5lcnMtYWJvdXQt
YmxhbmsuaHRtbDo5CisgICAgaGFuZGxlcjogZnVuY3Rpb24gZigpIHt9CiAgICAgaXNBdHRyaWJ1
dGU6IGZhbHNlCiAgICAgbGluZU51bWJlcjogOQogICAgIGxpc3RlbmVyQm9keTogZnVuY3Rpb24g
ZigpIHt9CkBAIC0xNCw2ICsxNSw3IEBAIFRlc3RzIGV2ZW50IGxpc3RlbmVycyBvdXRwdXQgaW4g
dGhlIEVsZW1lbnRzIHNpZGViYXIgcGFuZWwgd2hlbiB0aGUgbGlzdGVuZXJzIGFyCiAKID09PT09
PT09IGhvdmVyID09PT09PT09CiBbZXhwYW5kZWRdIGRpdiNkaXYtaW4taWZyYW1lIGV2ZW50LWxp
c3RlbmVycy1hYm91dC1ibGFuay5odG1sOjkKKyAgICBoYW5kbGVyOiBmdW5jdGlvbiBmKCkge30K
ICAgICBpc0F0dHJpYnV0ZTogZmFsc2UKICAgICBsaW5lTnVtYmVyOiA5CiAgICAgbGlzdGVuZXJC
b2R5OiBmdW5jdGlvbiBmKCkge30K
</data>

          </attachment>
      

    </bug>

</bugzilla>