<?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>20571</bug_id>
          
          <creation_ts>2008-08-29 19:02:57 -0700</creation_ts>
          <short_desc>Window object missing Animation/Transition event setter</short_desc>
          <delta_ts>2008-09-01 16:34:37 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>20361</blocked>
    
    <blocked>20572</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>89766</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-08-29 19:02:57 -0700</bug_when>
    <thetext>When I landed Transition events I forgot to put a setter for the attributes on the Window object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89767</commentid>
    <comment_count>1</comment_count>
      <attachid>23078</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-08-29 19:07:07 -0700</bug_when>
    <thetext>Created attachment 23078
patch with testcases

This patch also includes a code cleanup since a lot of this file violated the coding guidelines and hence offended my eyes. Check the next comment for the &quot;real&quot; patch.

Also, not all the tests included here are directly relevant to the fix in the patch, but are the tests that should have been landed with the events in the first place.

Lastly, there is an outstanding bug that makes using window pretty annoying. The event dispatch code only fires a transition event if the document was notified of a listener. If you attach only to Window then the Document doesn&apos;t know, and hence nothing happens. I&apos;ll file a separate bug on that. The workaround is to attach a transition event listener anywhere on the document (even if it isn&apos;t in the right place and is empty).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89768</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-08-29 19:07:42 -0700</bug_when>
    <thetext>Here is the real meat of the patch (without coding style fixes):

diff --git a/WebCore/bindings/js/JSDOMWindowBase.cpp b/WebCore/bindings/js/JSDOMWindowBase.cpp
index 60ac671..7c3e4b2 100644
--- a/WebCore/bindings/js/JSDOMWindowBase.cpp
+++ b/WebCore/bindings/js/JSDOMWindowBase.cpp
@@ -749,6 +761,22 @@ void JSDOMWindowBase::put(ExecState* exec, const Identifier&amp; propertyName, JSVal
       if (allowsAccessFrom(exec))
         setListener(exec, unloadEvent, value);
       return;
+    case OnWebKitAnimationStart:
+      if (allowsAccessFrom(exec))
+        setListener(exec, webkitAnimationStartEvent, value);
+       return;
+    case OnWebKitAnimationIteration:
+      if (allowsAccessFrom(exec))
+        setListener(exec, webkitAnimationIterationEvent, value);
+      return;
+    case OnWebKitAnimationEnd:
+      if (allowsAccessFrom(exec))
+        setListener(exec, webkitAnimationEndEvent, value);
+      return;
+    case OnWebKitTransitionEnd:
+      if (allowsAccessFrom(exec))
+        setListener(exec, webkitTransitionEndEvent, value);
+      return;
     default:



</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89787</commentid>
    <comment_count>3</comment_count>
      <attachid>23078</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-08-30 19:15:14 -0700</bug_when>
    <thetext>Comment on attachment 23078
patch with testcases

It&apos;d be better to clean up the whitespace in a separate check-in first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89840</commentid>
    <comment_count>4</comment_count>
      <attachid>23078</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-08-31 19:35:56 -0700</bug_when>
    <thetext>Comment on attachment 23078
patch with testcases

In general, we prefer if the test cases JS try and match our coding styles, but it is just something to think about in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89876</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-09-01 16:06:52 -0700</bug_when>
    <thetext>Code cleanup commit

Committed r36020
	M	WebCore/bindings/js/JSDOMWindowBase.cpp
	M	WebCore/ChangeLog

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89877</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-09-01 16:34:37 -0700</bug_when>
    <thetext>Committed r36021
	M	WebCore/bindings/js/JSDOMWindowBase.cpp
	M	WebCore/ChangeLog
	M	LayoutTests/ChangeLog
	A	LayoutTests/transitions/transition-end-event-all-properties.html
	A	LayoutTests/transitions/transition-end-event-left-expected.txt
	A	LayoutTests/transitions/transition-end-event-window.html
	A	LayoutTests/transitions/transition-end-event-multiple-01.html
	A	LayoutTests/transitions/transition-end-event-multiple-02.html
	A	LayoutTests/transitions/transition-end-event-transform.html
	A	LayoutTests/transitions/transition-end-event-multiple-03.html
	A	LayoutTests/transitions/transition-end-event-multiple-04.html
	A	LayoutTests/transitions/transition-end-event-all-properties-expected.txt
	A	LayoutTests/transitions/transition-end-event-window-expected.txt
	A	LayoutTests/transitions/end-event-helpers.js
	A	LayoutTests/transitions/transition-end-event-container.html
	A	LayoutTests/transitions/transition-end-event-nested.html
	A	LayoutTests/transitions/transition-end-event-multiple-01-expected.txt
	A	LayoutTests/transitions/transition-end-event-multiple-02-expected.txt
	A	LayoutTests/transitions/transition-end-event-multiple-03-expected.txt
	A	LayoutTests/transitions/transition-end-event-transform-expected.txt
	A	LayoutTests/transitions/transition-end-event-attributes.html
	A	LayoutTests/transitions/transition-end-event-multiple-04-expected.txt
	A	LayoutTests/transitions/transition-end-event-left.html
	A	LayoutTests/transitions/transition-end-event-container-expected.txt
	A	LayoutTests/transitions/transition-end-event-nested-expected.txt
	A	LayoutTests/transitions/transition-end-event-attributes-expected.txt

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23078</attachid>
            <date>2008-08-29 19:07:07 -0700</date>
            <delta_ts>2008-08-31 19:35:56 -0700</delta_ts>
            <desc>patch with testcases</desc>
            <filename>events-with-tests.patch</filename>
            <type>text/plain</type>
            <size>54743</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZmVmZjVlLi5mOTFlMmM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMDgtMDgt
MjkgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGJ1bmNoIG9mIHRlc3RzIGZvciBXZWJL
aXRUcmFuc2l0aW9uRW5kRXZlbnRzLgorCisgICAgICAgICogdHJhbnNpdGlvbnMvZW5kLWV2ZW50
LWhlbHBlcnMuanM6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL2ludGVycnVwdGVkLWFs
bC10cmFuc2l0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB0cmFuc2l0aW9ucy9pbnRlcnJ1
cHRlZC1hbGwtdHJhbnNpdGlvbi5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL29wYWNpdHkt
dHJhbnNpdGlvbi16aW5kZXgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHRyYW5zaXRpb25zL3Ry
YW5zaXRpb24tZW5kLWV2ZW50LWFsbC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtYWxsLXByb3BlcnRpZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL3Ry
YW5zaXRpb24tZW5kLWV2ZW50LWF0dHJpYnV0ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogdHJh
bnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtY29udGFpbmVyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtY29udGFpbmVy
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50
LWxlZnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0
aW9uLWVuZC1ldmVudC1sZWZ0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL3Ry
YW5zaXRpb24tZW5kLWV2ZW50LW11bHRpcGxlLTAxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbXVsdGlwbGUtMDEuaHRtbDog
QWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbXVsdGlw
bGUtMDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0
aW9uLWVuZC1ldmVudC1tdWx0aXBsZS0wMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0
aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1tdWx0aXBsZS0wMy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LW11bHRpcGxlLTAz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50
LW11bHRpcGxlLTA0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMv
dHJhbnNpdGlvbi1lbmQtZXZlbnQtbXVsdGlwbGUtMDQuaHRtbDogQWRkZWQuCisgICAgICAgICog
dHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbmVzdGVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LXRy
YW5zZm9ybS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRyYW5zaXRpb25zL3RyYW5z
aXRpb24tZW5kLWV2ZW50LXRyYW5zZm9ybS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0cmFuc2l0
aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC13aW5kb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC13aW5kb3cuaHRtbDogQWRk
ZWQuCisKIDIwMDgtMDgtMjkgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy9lbmQtZXZlbnQtaGVscGVycy5qcyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25z
L2VuZC1ldmVudC1oZWxwZXJzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmI5OTg2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9lbmQt
ZXZlbnQtaGVscGVycy5qcwpAQCAtMCwwICsxLDgwIEBACit2YXIgcmVzdWx0cyA9IG5ldyBBcnJh
eSgpOworCitmdW5jdGlvbiBjb21wYXJlRXZlbnRJbmZvKGUxLCBlMikgeworICAvLyBzb3J0IGJ5
IHByb3BlcnR5IG5hbWUgdGhlbiBldmVudCB0YXJnZXQgaWQKKyAgLy8gaW5kZXggMCBpcyB0aGUg
cHJvcGVydHlOYW1lCisgIGlmIChlMVswXTxlMlswXSkgcmV0dXJuIC0xOworICBpZiAoZTFbMF0+
ZTJbMF0pIHJldHVybiArMTsKKyAgLy8gaW5kZXggMSBpcyB0aGUgdGFyZ2V0IGlkCisgIGlmIChl
MVsxXTxlMlsxXSkgcmV0dXJuIC0xOworICBpZiAoZTFbMV0+ZTJbMV0pIHJldHVybiArMTsKKyAg
cmV0dXJuIDA7Cit9CisKK2Z1bmN0aW9uIHJlY29yZEV2ZW50KGV2ZW50KSB7CisgIHJlc3VsdHMu
cHVzaChbCisgICAgZXZlbnQucHJvcGVydHlOYW1lLAorICAgIGV2ZW50LnRhcmdldC5pZCwKKyAg
ICBldmVudC50eXBlLAorICAgIE1hdGgucm91bmQoZXZlbnQuZWxhcHNlZFRpbWUgKiAxMDAwKSAv
IDEwMDAgLy8gcm91bmQgb2ZmIGFueSBmbG9hdCBlcnJvcnMKKyAgICBdKTsKK30KKworZnVuY3Rp
b24gZXhhbWluZVJlc3VsdHMoZXhwZWN0ZWQpIHsKKyAgLy8gc29ydCByZXN1bHRzIHNvIGV2ZW50
cyBhbHdheXMgZGlzcGxheSBpbiB0aGUgc2FtZSBvcmRlcgorICByZXN1bHRzLnNvcnQoY29tcGFy
ZUV2ZW50SW5mbyk7CisgIHZhciByZXN1bHQgPSAnPHA+JzsKKyAgZm9yICh2YXIgaT0wOyBpIDwg
cmVzdWx0cy5sZW5ndGggJiYgaSA8IGV4cGVjdGVkLmxlbmd0aDsgKytpKSB7CisgICAgcmVzdWx0
ICs9ICJFeHBlY3RlZCBQcm9wZXJ0eTogIiArIGV4cGVjdGVkW2ldWzBdICsgIiAiOworICAgIHJl
c3VsdCArPSAiVGFyZ2V0OiAiICsgZXhwZWN0ZWRbaV1bMV0gKyAiICI7CisgICAgcmVzdWx0ICs9
ICJUeXBlOiAiICsgZXhwZWN0ZWRbaV1bMl0gKyAiICI7CisgICAgcmVzdWx0ICs9ICJFbGFwc2Vk
IFRpbWU6ICIgKyBleHBlY3RlZFtpXVszXSArICIgLS0gIjsKKyAgICAKKyAgICBpZiAoZXhwZWN0
ZWRbaV1bMF0gPT0gcmVzdWx0c1tpXVswXSAmJgorICAgICAgICBleHBlY3RlZFtpXVsxXSA9PSBy
ZXN1bHRzW2ldWzFdICYmCisgICAgICAgIGV4cGVjdGVkW2ldWzJdID09IHJlc3VsdHNbaV1bMl0g
JiYKKyAgICAgICAgZXhwZWN0ZWRbaV1bM10gPT0gcmVzdWx0c1tpXVszXSkKKyAgICAgIHJlc3Vs
dCArPSAiUEFTUyI7CisgICAgZWxzZSB7CisgICAgICByZXN1bHQgKz0gIkZBSUwgLS0gUmVjZWl2
ZWQiOworICAgICAgcmVzdWx0ICs9ICJQcm9wZXJ0eTogIiArIHJlc3VsdHNbaV1bMF0gKyAiICI7
CisgICAgICByZXN1bHQgKz0gIlRhcmdldDogIiArIHJlc3VsdHNbaV1bMV0gKyAiICI7CisgICAg
ICByZXN1bHQgKz0gIlR5cGU6ICIgKyByZXN1bHRzW2ldWzJdICsgIiAiOworICAgICAgcmVzdWx0
ICs9ICJFbGFwc2VkIFRpbWU6ICIgKyByZXN1bHRzW2ldWzNdOworICAgICAgCisgICAgfQorICAg
IHJlc3VsdCArPSAiPGJyPiI7CisgIH0KKyAgcmVzdWx0ICs9ICI8L3A+IjsKKyAgCisgIGlmIChl
eHBlY3RlZC5sZW5ndGggPiByZXN1bHRzLmxlbmd0aCkgeworICAgIHJlc3VsdCArPSAiPHA+TWlz
c2luZyBldmVudHMgLS0gRkFJTDxicj4iOworICAgIGZvciAoaT1yZXN1bHRzLmxlbmd0aDsgaSA8
IGV4cGVjdGVkLmxlbmd0aDsgKytpKSB7CisgICAgICByZXN1bHQgKz0gIk1pc3NpbmcgUHJvcGVy
dHk6ICIgKyBleHBlY3RlZFtpXVswXSArICIgIjsKKyAgICAgIHJlc3VsdCArPSAiVGFyZ2V0OiAi
ICsgZXhwZWN0ZWRbaV1bMV0gKyAiICI7CisgICAgICByZXN1bHQgKz0gIlR5cGU6ICIgKyBleHBl
Y3RlZFtpXVsyXSArICIgIjsKKyAgICAgIHJlc3VsdCArPSAiRWxhcHNlZCBUaW1lOiAiICsgZXhw
ZWN0ZWRbaV1bM10gKyAiPGJyPiI7CisgICAgfQorICAgIHJlc3VsdCArPSAiPC9wPiI7CisgIH0g
ZWxzZSBpZiAoZXhwZWN0ZWQubGVuZ3RoIDwgcmVzdWx0cy5sZW5ndGgpIHsKKyAgICByZXN1bHQg
Kz0gIjxwPlVuZXhwZWN0ZWQgZXZlbnRzIC0tIEZBSUw8YnI+IjsKKyAgICBmb3IgKGk9ZXhwZWN0
ZWQubGVuZ3RoOyBpIDwgcmVzdWx0cy5sZW5ndGg7ICsraSkgeworICAgICAgcmVzdWx0ICs9ICJV
bmV4cGVjdGVkIFByb3BlcnR5OiAiICsgcmVzdWx0c1tpXVswXSArICIgIjsKKyAgICAgIHJlc3Vs
dCArPSAiVGFyZ2V0OiAiICsgcmVzdWx0c1tpXVsxXSArICIgIjsKKyAgICAgIHJlc3VsdCArPSAi
VHlwZTogIiArIHJlc3VsdHNbaV1bMl0gKyAiICI7CisgICAgICByZXN1bHQgKz0gIkVsYXBzZWQg
VGltZTogIiArIHJlc3VsdHNbaV1bM10gKyAiPGJyPiI7CisgICAgfQorICAgIHJlc3VsdCArPSAi
PC9wPiI7CisgIH0KKyAgCisgIHJldHVybiByZXN1bHQ7Cit9CisKK2Z1bmN0aW9uIGNsZWFudXAo
KQoreworICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb250YWluZXInKSk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5l
ckhUTUwgPSBleGFtaW5lUmVzdWx0cyhleHBlY3RlZCk7CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
K30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2
ZW50LWFsbC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25z
L3RyYW5zaXRpb24tZW5kLWV2ZW50LWFsbC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmEyNzYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtYWxsLXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0luaXRpYXRpbmcgdHJhbnNpdGlvbnMg
b24gdmFyaW91cyBwcm9wZXJ0aWVzIG9mIGFsbCBib3hlcy4KKworRXhwZWN0ZWQgUHJvcGVydHk6
IFRhcmdldDogYm94MSBUeXBlOiB3ZWJraXRUcmFuc2l0aW9uRW5kIEVsYXBzZWQgVGltZTogMC41
IC0tIFBBU1MKK0V4cGVjdGVkIFByb3BlcnR5OiBUYXJnZXQ6IGJveDIgVHlwZTogd2Via2l0VHJh
bnNpdGlvbkVuZCBFbGFwc2VkIFRpbWU6IDAuNSAtLSBQQVNTCitFeHBlY3RlZCBQcm9wZXJ0eTog
VGFyZ2V0OiBib3gyIFR5cGU6IHdlYmtpdFRyYW5zaXRpb25FbmQgRWxhcHNlZCBUaW1lOiAwLjUg
LS0gUEFTUworRXhwZWN0ZWQgUHJvcGVydHk6IFRhcmdldDogYm94MyBUeXBlOiB3ZWJraXRUcmFu
c2l0aW9uRW5kIEVsYXBzZWQgVGltZTogMC43IC0tIFBBU1MKK0V4cGVjdGVkIFByb3BlcnR5OiBU
YXJnZXQ6IGJveDMgVHlwZTogd2Via2l0VHJhbnNpdGlvbkVuZCBFbGFwc2VkIFRpbWU6IDAuNyAt
LSBQQVNTCitFeHBlY3RlZCBQcm9wZXJ0eTogVGFyZ2V0OiBib3gzIFR5cGU6IHdlYmtpdFRyYW5z
aXRpb25FbmQgRWxhcHNlZCBUaW1lOiAwLjcgLS0gUEFTUworRXhwZWN0ZWQgUHJvcGVydHk6IFRh
cmdldDogYm94MyBUeXBlOiB3ZWJraXRUcmFuc2l0aW9uRW5kIEVsYXBzZWQgVGltZTogMC43IC0t
IFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1l
bmQtZXZlbnQtYWxsLXByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Ry
YW5zaXRpb24tZW5kLWV2ZW50LWFsbC1wcm9wZXJ0aWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNDBkYTA0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWFsbC1wcm9wZXJ0aWVzLmh0bWwKQEAg
LTAsMCArMSw3NyBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlRyYW5zaXRpb24gRW5kIEV2
ZW50czwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Cisg
ICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBw
eDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LXRyYW5zaXRp
b24tZHVyYXRpb246IDAuNXM7CisgICAgfQorICAgIAorICAgIC5ib3gxIHsKKyAgICAgIGxlZnQ6
IDUwcHg7CisgICAgfQorICAgIAorICAgIC5ib3gyIHsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6
IHJlZDsKKyAgICAgIGxlZnQ6IDUwcHg7CisgICAgfQorICAgIAorICAgIC5ib3gzIHsKKyAgICAg
IHdpZHRoOiAxNTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgbGVm
dDogNTBweDsKKyAgICAgIGhlaWdodDogMTIwcHg7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24t
ZHVyYXRpb246IDAuN3M7CisgICAgfQorICAgIAorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0i
ZW5kLWV2ZW50LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm
LTgiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0i
dXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgdmFyIGV4cGVjdGVkID0gWwor
ICAgICAgWyIiLCAiYm94MSIsICJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwgMC41XSwKKyAgICAgIFsi
IiwgImJveDIiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAuNV0sCisgICAgICBbIiIsICJib3gy
IiwgIndlYmtpdFRyYW5zaXRpb25FbmQiLCAwLjVdLAorICAgICAgWyIiLCAiYm94MyIsICJ3ZWJr
aXRUcmFuc2l0aW9uRW5kIiwgMC43XSwKKyAgICAgIFsiIiwgImJveDMiLCAid2Via2l0VHJhbnNp
dGlvbkVuZCIsIDAuN10sCisgICAgICBbIiIsICJib3gzIiwgIndlYmtpdFRyYW5zaXRpb25FbmQi
LCAwLjddLAorICAgICAgWyIiLCAiYm94MyIsICJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwgMC43XQor
ICAgIF07CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRUcmFuc2l0aW9uKCkKKyAgICB7CisgICAg
ICB2YXIgYm94ZXMgPSBkb2N1bWVudC5ib2R5LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2JveCcp
OworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib3hlcy5sZW5ndGg7ICsraSkgeworICAgICAg
ICBib3hlc1tpXS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwgcmVjb3Jk
RXZlbnQsIGZhbHNlKTsKKyAgICAgICAgYm94ZXNbaV0uY2xhc3NOYW1lID0gImJveCBib3giICsg
KGkrMSk7CisgICAgICB9CisgICAgICAKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNsZWFudXAs
IDEwMDApOworICAgIH0KKyAgICAKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
IHN0YXJ0VHJhbnNpdGlvbiwgZmFsc2UpOworICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
Cis8cD5Jbml0aWF0aW5nIHRyYW5zaXRpb25zIG9uIHZhcmlvdXMgcHJvcGVydGllcyBvZiBhbGwg
Ym94ZXMuPC9wPgorCis8ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJib3gxIiBjbGFz
cz0iYm94Ij48L2Rpdj4KKyAgPGRpdiBpZD0iYm94MiIgY2xhc3M9ImJveCI+PC9kaXY+CisgIDxk
aXYgaWQ9ImJveDMiIGNsYXNzPSJib3giPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVu
dC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5z
aXRpb24tZW5kLWV2ZW50LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmRhZThlMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK0luaXRpYXRpbmcgYSA1MDBtcyB0cmFuc2l0aW9uIG9uIHRoZSBs
ZWZ0IHByb3BlcnR5IG9mIGJveDEuCisKK0V4cGVjdGVkIFByb3BlcnR5OiBsZWZ0IFRhcmdldDog
Ym94MSBUeXBlOiB3ZWJraXRUcmFuc2l0aW9uRW5kIEVsYXBzZWQgVGltZTogMC41IC0tIFBBU1MK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZl
bnQtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1l
bmQtZXZlbnQtYXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjRiYWM4NGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90
cmFuc2l0aW9uLWVuZC1ldmVudC1hdHRyaWJ1dGVzLmh0bWwKQEAgLTAsMCArMSw1MSBAQAorPGh0
bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlRyYW5zaXRpb24gRW5kIEV2ZW50czwvdGl0bGU+CisgIDxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7CisgICAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91
bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7
CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7CisgICAgfQorICA8L3N0
eWxlPgorICA8c2NyaXB0IHNyYz0iZW5kLWV2ZW50LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAg
IAorICAgIHZhciBleHBlY3RlZCA9IFsKKyAgICAgIFsnbGVmdCcsICdib3gxJywgJ3dlYmtpdFRy
YW5zaXRpb25FbmQnLCAwLjVdCisgICAgXTsKKworICAgIGZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlv
bigpCisgICAgeworICAgICAgdmFyIGJveGVzID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCdib3gnKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm94ZXMubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgYm94ZXNbaV0uc3R5bGUubGVmdCA9ICcyMDBweCc7CisgICAgICB9
CisgICAgICAKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNsZWFudXAsIDcwMCk7CisgICAgfQor
ICAgIAorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc3RhcnRUcmFuc2l0aW9u
LCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxwPkluaXRpYXRpbmcg
YSA1MDBtcyB0cmFuc2l0aW9uIG9uIHRoZSBsZWZ0IHByb3BlcnR5IG9mIGJveDEuPC9wPgorCis8
ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94IiBvbndlYmtp
dHRyYW5zaXRpb25lbmQ9InJlY29yZEV2ZW50KGV2ZW50KTsiPjwvZGl2PgorPC9kaXY+CisKKzxk
aXYgaWQ9InJlc3VsdCI+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0
aW9uLWVuZC1ldmVudC1jb250YWluZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNp
dGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtY29udGFpbmVyLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjRjNjYwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtY29udGFpbmVyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0luaXRpYXRpbmcgYSA1MDBtcyB0cmFuc2l0aW9u
IG9uIHRoZSBsZWZ0IHByb3BlcnR5IG9mIGJveDEgYW5kIGNhdGNoaW5nIGl0IG9uIHRoZSBwYXJl
bnQuCisKK0V4cGVjdGVkIFByb3BlcnR5OiBsZWZ0IFRhcmdldDogYm94MSBUeXBlOiB3ZWJraXRU
cmFuc2l0aW9uRW5kIEVsYXBzZWQgVGltZTogMC41IC0tIFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtY29udGFpbmVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1jb250YWluZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDk0NDEwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQt
Y29udGFpbmVyLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxl
PlRyYW5zaXRpb24gRW5kIEV2ZW50czwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIg
bWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgICBsZWZ0OiAwOworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsK
KyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAg
ICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7CisgICAgICAtd2Via2l0LXRyYW5z
aXRpb24tZHVyYXRpb246IDAuNXM7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0i
ZW5kLWV2ZW50LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm
LTgiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0i
dXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgdmFyIGV4cGVjdGVkID0gWwor
ICAgICAgWyJsZWZ0IiwgImJveDEiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAuNV0KKyAgICBd
OworICAgIAorICAgIGZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbigpCisgICAgeworICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtp
dFRyYW5zaXRpb25FbmQiLCByZWNvcmRFdmVudCwgZmFsc2UpOworICAgICAgdmFyIGJveGVzID0g
ZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gnKTsKKyAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgYm94ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYm94ZXNbaV0uc3R5
bGUubGVmdCA9ICcyMDBweCc7CisgICAgICB9CisgICAgICAKKyAgICAgIHdpbmRvdy5zZXRUaW1l
b3V0KGNsZWFudXAsIDcwMCk7CisgICAgfQorICAgIAorICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgc3RhcnRUcmFuc2l0aW9uLCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+CisKKzxwPkluaXRpYXRpbmcgYSA1MDBtcyB0cmFuc2l0aW9uIG9uIHRoZSBsZWZ0
IHByb3BlcnR5IG9mIGJveDEgYW5kIGNhdGNoaW5nIGl0IG9uIHRoZSBwYXJlbnQuPC9wPgorCis8
ZGl2IGlkPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94Ij48L2Rpdj4K
KzwvZGl2PgorCis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNp
dGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbGVmdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1sZWZ0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWU4ZTE3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbGVmdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitJbml0aWF0aW5nIGEgNTAwbXMgdHJhbnNpdGlvbiBv
biB0aGUgbGVmdCBwcm9wZXJ0eSBvZiBib3gxLgorCitFeHBlY3RlZCBQcm9wZXJ0eTogbGVmdCBU
YXJnZXQ6IGJveDEgVHlwZTogd2Via2l0VHJhbnNpdGlvbkVuZCBFbGFwc2VkIFRpbWU6IDAuNSAt
LSBQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24t
ZW5kLWV2ZW50LWxlZnQuaHRtbCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24t
ZW5kLWV2ZW50LWxlZnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
MmQ5OWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNp
dGlvbi1lbmQtZXZlbnQtbGVmdC5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzxodG1sPgorPGhlYWQ+
CisgIDx0aXRsZT5UcmFuc2l0aW9uIEVuZCBFdmVudHM8L3RpdGxlPgorICA8c3R5bGUgdHlwZT0i
dGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgIC5ib3ggeworICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgICAgbGVmdDogMDsKKyAgICAgIGhlaWdodDogMTAwcHg7CisgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICBtYXJnaW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0OworICAgICAgLXdl
YmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzOworICAgIH0KKyAgPC9zdHlsZT4KKyAgPHNj
cmlwdCBzcmM9ImVuZC1ldmVudC1oZWxwZXJzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNo
YXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIHZhciBleHBl
Y3RlZCA9IFsKKyAgICAgIFsibGVmdCIsICJib3gxIiwgIndlYmtpdFRyYW5zaXRpb25FbmQiLCAw
LjVdCisgICAgXTsKKyAgICAKKyAgICBmdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oKQorICAgIHsK
KyAgICAgIHZhciBib3hlcyA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgn
Ym94Jyk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJveGVzLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgIGJveGVzW2ldLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQiLCBy
ZWNvcmRFdmVudCwgZmFsc2UpOworICAgICAgICBib3hlc1tpXS5zdHlsZS5sZWZ0ID0gJzIwMHB4
JzsKKyAgICAgIH0KKyAgICAgIAorICAgICAgd2luZG93LnNldFRpbWVvdXQoY2xlYW51cCwgNzAw
KTsKKyAgICB9CisgICAgCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzdGFy
dFRyYW5zaXRpb24sIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+
SW5pdGlhdGluZyBhIDUwMG1zIHRyYW5zaXRpb24gb24gdGhlIGxlZnQgcHJvcGVydHkgb2YgYm94
MS48L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgIDxkaXYgaWQ9ImJveDEiIGNsYXNzPSJi
b3giPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CisKKzwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1tdWx0aXBsZS0wMS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1tdWx0
aXBsZS0wMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
M2JhN2IyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5z
aXRpb24tZW5kLWV2ZW50LW11bHRpcGxlLTAxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
K0luaXRpYXRpbmcgYSA1MDBtcyB0cmFuc2l0aW9uIG9uIHRoZSBsZWZ0LCBiYWNrZ3JvdW5kLWNv
bG9yLCB3aWR0aCBhbmQgaGVpZ2h0IHByb3BlcnRpZXMgb2YgYm94MS4KKworRXhwZWN0ZWQgUHJv
cGVydHk6IGJhY2tncm91bmQtY29sb3IgVGFyZ2V0OiBib3gxIFR5cGU6IHdlYmtpdFRyYW5zaXRp
b25FbmQgRWxhcHNlZCBUaW1lOiAwLjUgLS0gUEFTUworRXhwZWN0ZWQgUHJvcGVydHk6IGhlaWdo
dCBUYXJnZXQ6IGJveDEgVHlwZTogd2Via2l0VHJhbnNpdGlvbkVuZCBFbGFwc2VkIFRpbWU6IDAu
NSAtLSBQQVNTCitFeHBlY3RlZCBQcm9wZXJ0eTogbGVmdCBUYXJnZXQ6IGJveDEgVHlwZTogd2Vi
a2l0VHJhbnNpdGlvbkVuZCBFbGFwc2VkIFRpbWU6IDAuNSAtLSBQQVNTCitFeHBlY3RlZCBQcm9w
ZXJ0eTogd2lkdGggVGFyZ2V0OiBib3gxIFR5cGU6IHdlYmtpdFRyYW5zaXRpb25FbmQgRWxhcHNl
ZCBUaW1lOiAwLjUgLS0gUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9u
cy90cmFuc2l0aW9uLWVuZC1ldmVudC1tdWx0aXBsZS0wMS5odG1sIGIvTGF5b3V0VGVzdHMvdHJh
bnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbXVsdGlwbGUtMDEuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGUyMjhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbXVsdGlwbGUtMDEuaHRt
bApAQCAtMCwwICsxLDU4IEBACis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VHJhbnNpdGlvbiBF
bmQgRXZlbnRzPC90aXRsZT4KKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVu
Ij4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDA7
CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgbWFyZ2lu
OiAxMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13ZWJraXQtdHJh
bnNpdGlvbi1wcm9wZXJ0eTogd2lkdGgsIGxlZnQsIGJhY2tncm91bmQtY29sb3IsIGhlaWdodCwg
dG9wOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzOworICAgIH0KKyAg
PC9zdHlsZT4KKyAgPHNjcmlwdCBzcmM9ImVuZC1ldmVudC1oZWxwZXJzLmpzIiB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0K
KyAgICAKKyAgICB2YXIgZXhwZWN0ZWQgPSBbCisgICAgICBbImJhY2tncm91bmQtY29sb3IiLCAi
Ym94MSIsICJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwgMC41XSwKKyAgICAgIFsiaGVpZ2h0IiwgImJv
eDEiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAuNV0sCisgICAgICBbImxlZnQiLCAiYm94MSIs
ICJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwgMC41XSwKKyAgICAgIFsid2lkdGgiLCAiYm94MSIsICJ3
ZWJraXRUcmFuc2l0aW9uRW5kIiwgMC41XSwKKyAgICBdOworICAgIAorICAgIGZ1bmN0aW9uIHN0
YXJ0VHJhbnNpdGlvbigpCisgICAgeworICAgICAgdmFyIGJveGVzID0gZG9jdW1lbnQuYm9keS5n
ZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gnKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
Ym94ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYm94ZXNbaV0uYWRkRXZlbnRMaXN0ZW5lcigi
d2Via2l0VHJhbnNpdGlvbkVuZCIsIHJlY29yZEV2ZW50LCBmYWxzZSk7CisgICAgICAgIGJveGVz
W2ldLnN0eWxlLndpZHRoID0gIjE1MHB4IjsKKyAgICAgICAgYm94ZXNbaV0uc3R5bGUubGVmdCA9
ICcyMDBweCc7CisgICAgICAgIGJveGVzW2ldLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICdyZWQn
OworICAgICAgICBib3hlc1tpXS5zdHlsZS5oZWlnaHQgPSAnODBweCc7CisgICAgICB9CisgICAg
ICAKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNsZWFudXAsIDcwMCk7CisgICAgfQorICAgIAor
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc3RhcnRUcmFuc2l0aW9uLCBmYWxz
ZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxwPkluaXRpYXRpbmcgYSA1MDBt
cyB0cmFuc2l0aW9uIG9uIHRoZSBsZWZ0LCBiYWNrZ3JvdW5kLWNvbG9yLCB3aWR0aCBhbmQgaGVp
Z2h0IHByb3BlcnRpZXMgb2YgYm94MS48L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgIDxk
aXYgaWQ9ImJveDEiIGNsYXNzPSJib3giPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVu
dC1tdWx0aXBsZS0wMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFu
c2l0aW9uLWVuZC1ldmVudC1tdWx0aXBsZS0wMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOGMzNzhjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LW11bHRpcGxlLTAyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEwIEBACitJbml0aWF0aW5nIHRyYW5zaXRpb25zIG9uIHZhcmlvdXMg
cHJvcGVydGllcyBvZiBhbGwgYm94ZXMuCisKK0V4cGVjdGVkIFByb3BlcnR5OiBiYWNrZ3JvdW5k
LWNvbG9yIFRhcmdldDogYm94MiBUeXBlOiB3ZWJraXRUcmFuc2l0aW9uRW5kIEVsYXBzZWQgVGlt
ZTogMC41IC0tIFBBU1MKK0V4cGVjdGVkIFByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yIFRhcmdl
dDogYm94MyBUeXBlOiB3ZWJraXRUcmFuc2l0aW9uRW5kIEVsYXBzZWQgVGltZTogMC43IC0tIFBB
U1MKK0V4cGVjdGVkIFByb3BlcnR5OiBoZWlnaHQgVGFyZ2V0OiBib3gzIFR5cGU6IHdlYmtpdFRy
YW5zaXRpb25FbmQgRWxhcHNlZCBUaW1lOiAwLjcgLS0gUEFTUworRXhwZWN0ZWQgUHJvcGVydHk6
IGxlZnQgVGFyZ2V0OiBib3gxIFR5cGU6IHdlYmtpdFRyYW5zaXRpb25FbmQgRWxhcHNlZCBUaW1l
OiAwLjUgLS0gUEFTUworRXhwZWN0ZWQgUHJvcGVydHk6IGxlZnQgVGFyZ2V0OiBib3gyIFR5cGU6
IHdlYmtpdFRyYW5zaXRpb25FbmQgRWxhcHNlZCBUaW1lOiAwLjUgLS0gUEFTUworRXhwZWN0ZWQg
UHJvcGVydHk6IGxlZnQgVGFyZ2V0OiBib3gzIFR5cGU6IHdlYmtpdFRyYW5zaXRpb25FbmQgRWxh
cHNlZCBUaW1lOiAwLjcgLS0gUEFTUworRXhwZWN0ZWQgUHJvcGVydHk6IHdpZHRoIFRhcmdldDog
Ym94MyBUeXBlOiB3ZWJraXRUcmFuc2l0aW9uRW5kIEVsYXBzZWQgVGltZTogMC43IC0tIFBBU1MK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZl
bnQtbXVsdGlwbGUtMDIuaHRtbCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24t
ZW5kLWV2ZW50LW11bHRpcGxlLTAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNDdhNTMxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25z
L3RyYW5zaXRpb24tZW5kLWV2ZW50LW11bHRpcGxlLTAyLmh0bWwKQEAgLTAsMCArMSw3NyBAQAor
PGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlRyYW5zaXRpb24gRW5kIEV2ZW50czwvdGl0bGU+Cisg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7CisgICAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAgICAgaGVpZ2h0OiAxMDBw
eDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tn
cm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHdp
ZHRoLCBsZWZ0LCBiYWNrZ3JvdW5kLWNvbG9yLCBoZWlnaHQsIHRvcDsKKyAgICAgIC13ZWJraXQt
dHJhbnNpdGlvbi1kdXJhdGlvbjogMC41czsKKyAgICB9CisgICAgCisgICAgLmJveDEgeworICAg
ICAgbGVmdDogNTBweDsKKyAgICB9CisgICAgCisgICAgLmJveDIgeworICAgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmVkOworICAgICAgbGVmdDogNTBweDsKKyAgICB9CisgICAgCisgICAgLmJveDMg
eworICAgICAgd2lkdGg6IDE1MHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cisg
ICAgICBsZWZ0OiA1MHB4OworICAgICAgaGVpZ2h0OiAxMjBweDsKKyAgICAgIC13ZWJraXQtdHJh
bnNpdGlvbi1kdXJhdGlvbjogMC43czsKKyAgICB9CisgICAgCisgIDwvc3R5bGU+CisgIDxzY3Jp
cHQgc3JjPSJlbmQtZXZlbnQtaGVscGVycy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFy
c2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBj
aGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisgICAgdmFyIGV4cGVjdGVk
ID0gWworICAgICAgWyJiYWNrZ3JvdW5kLWNvbG9yIiwgImJveDIiLCAid2Via2l0VHJhbnNpdGlv
bkVuZCIsIDAuNV0sCisgICAgICBbImJhY2tncm91bmQtY29sb3IiLCAiYm94MyIsICJ3ZWJraXRU
cmFuc2l0aW9uRW5kIiwgMC43XSwKKyAgICAgIFsiaGVpZ2h0IiwgImJveDMiLCAid2Via2l0VHJh
bnNpdGlvbkVuZCIsIDAuN10sCisgICAgICBbImxlZnQiLCAiYm94MSIsICJ3ZWJraXRUcmFuc2l0
aW9uRW5kIiwgMC41XSwKKyAgICAgIFsibGVmdCIsICJib3gyIiwgIndlYmtpdFRyYW5zaXRpb25F
bmQiLCAwLjVdLAorICAgICAgWyJsZWZ0IiwgImJveDMiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIs
IDAuN10sCisgICAgICBbIndpZHRoIiwgImJveDMiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAu
N10sCisgICAgXTsKKworICAgIGZ1bmN0aW9uIHN0YXJ0VHJhbnNpdGlvbigpCisgICAgeworICAg
ICAgdmFyIGJveGVzID0gZG9jdW1lbnQuYm9keS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gn
KTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYm94ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgYm94ZXNbaV0uYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsIHJlY29y
ZEV2ZW50LCBmYWxzZSk7CisgICAgICAgIGJveGVzW2ldLmNsYXNzTmFtZSA9ICJib3ggYm94IiAr
IChpKzEpOworICAgICAgfQorICAgICAgCisgICAgICB3aW5kb3cuc2V0VGltZW91dChjbGVhbnVw
LCAxMDAwKTsKKyAgICB9CisgICAgCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBzdGFydFRyYW5zaXRpb24sIGZhbHNlKTsKKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KworPHA+SW5pdGlhdGluZyB0cmFuc2l0aW9ucyBvbiB2YXJpb3VzIHByb3BlcnRpZXMgb2YgYWxs
IGJveGVzLjwvcD4KKworPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgPGRpdiBpZD0iYm94MSIgY2xh
c3M9ImJveCI+PC9kaXY+CisgIDxkaXYgaWQ9ImJveDIiIGNsYXNzPSJib3giPjwvZGl2PgorICA8
ZGl2IGlkPSJib3gzIiBjbGFzcz0iYm94Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGlkPSJyZXN1
bHQiPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZl
bnQtbXVsdGlwbGUtMDMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJh
bnNpdGlvbi1lbmQtZXZlbnQtbXVsdGlwbGUtMDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNzNmOTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1tdWx0aXBsZS0wMy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMiBAQAorSW5pdGlhdGluZyB0cmFuc2l0aW9ucyBvbiB2YXJpb3Vz
IHByb3BlcnRpZXMgb2YgYWxsIGJveGVzLCB3aXRoIGRpZmZlcmVudCBzdGFydCB0aW1lcyBvbiB0
aGUgdHJhbnNpdGlvbnMuCisKK0V4cGVjdGVkIFByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yIFRh
cmdldDogYm94MiBUeXBlOiB3ZWJraXRUcmFuc2l0aW9uRW5kIEVsYXBzZWQgVGltZTogMC41IC0t
IFBBU1MKK0V4cGVjdGVkIFByb3BlcnR5OiBiYWNrZ3JvdW5kLWNvbG9yIFRhcmdldDogYm94MyBU
eXBlOiB3ZWJraXRUcmFuc2l0aW9uRW5kIEVsYXBzZWQgVGltZTogMC42IC0tIFBBU1MKK0V4cGVj
dGVkIFByb3BlcnR5OiBoZWlnaHQgVGFyZ2V0OiBib3gzIFR5cGU6IHdlYmtpdFRyYW5zaXRpb25F
bmQgRWxhcHNlZCBUaW1lOiAwLjYgLS0gUEFTUworRXhwZWN0ZWQgUHJvcGVydHk6IGhlaWdodCBU
YXJnZXQ6IGJveDQgVHlwZTogd2Via2l0VHJhbnNpdGlvbkVuZCBFbGFwc2VkIFRpbWU6IDAuMyAt
LSBQQVNTCitFeHBlY3RlZCBQcm9wZXJ0eTogbGVmdCBUYXJnZXQ6IGJveDEgVHlwZTogd2Via2l0
VHJhbnNpdGlvbkVuZCBFbGFwc2VkIFRpbWU6IDAuNSAtLSBQQVNTCitFeHBlY3RlZCBQcm9wZXJ0
eTogbGVmdCBUYXJnZXQ6IGJveDIgVHlwZTogd2Via2l0VHJhbnNpdGlvbkVuZCBFbGFwc2VkIFRp
bWU6IDAuNSAtLSBQQVNTCitFeHBlY3RlZCBQcm9wZXJ0eTogbGVmdCBUYXJnZXQ6IGJveDMgVHlw
ZTogd2Via2l0VHJhbnNpdGlvbkVuZCBFbGFwc2VkIFRpbWU6IDAuNiAtLSBQQVNTCitFeHBlY3Rl
ZCBQcm9wZXJ0eTogbGVmdCBUYXJnZXQ6IGJveDQgVHlwZTogd2Via2l0VHJhbnNpdGlvbkVuZCBF
bGFwc2VkIFRpbWU6IDAuMyAtLSBQQVNTCitFeHBlY3RlZCBQcm9wZXJ0eTogd2lkdGggVGFyZ2V0
OiBib3gzIFR5cGU6IHdlYmtpdFRyYW5zaXRpb25FbmQgRWxhcHNlZCBUaW1lOiAwLjYgLS0gUEFT
UworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1l
dmVudC1tdWx0aXBsZS0wMy5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1lbmQtZXZlbnQtbXVsdGlwbGUtMDMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi44NmU1Yzk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbXVsdGlwbGUtMDMuaHRtbApAQCAtMCwwICsxLDEwMiBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlRyYW5zaXRpb24gRW5kIEV2ZW50czwvdGl0bGU+
CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7Cisg
ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6
IHdpZHRoLCBsZWZ0LCBiYWNrZ3JvdW5kLWNvbG9yLCBoZWlnaHQsIHRvcDsKKyAgICAgIC13ZWJr
aXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41czsKKyAgICB9CisgICAgCisgICAgLmJveDEgewor
ICAgICAgbGVmdDogNTBweDsKKyAgICB9CisgICAgCisgICAgLmJveDIgeworICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmVkOworICAgICAgbGVmdDogNTBweDsKKyAgICB9CisgICAgCisgICAgLmJv
eDMgeworICAgICAgd2lkdGg6IDE1MHB4OworICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
CisgICAgICBsZWZ0OiA1MHB4OworICAgICAgaGVpZ2h0OiAxMjBweDsKKyAgICAgIC13ZWJraXQt
dHJhbnNpdGlvbi1kdXJhdGlvbjogMC42czsKKyAgICB9CisKKyAgICAuYm94NCB7CisgICAgICBs
ZWZ0OiAxMDBweDsKKyAgICAgIGhlaWdodDogMTQwcHg7CisgICAgICAtd2Via2l0LXRyYW5zaXRp
b24tZHVyYXRpb246IDAuM3M7CisgICAgfQorCisgICAgLmJveDUgeworICAgICAgLyogbm90aGlu
ZyAqLworICAgIH0KKworICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0iZW5kLWV2ZW50LWhlbHBl
cnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0Pgor
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgfQorCisgICAgdmFyIGV4cGVjdGVkID0gWworICAgICAgWyJiYWNrZ3Jv
dW5kLWNvbG9yIiwgImJveDIiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAuNV0sCisgICAgICBb
ImJhY2tncm91bmQtY29sb3IiLCAiYm94MyIsICJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwgMC42XSwK
KyAgICAgIFsiaGVpZ2h0IiwgImJveDMiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAuNl0sCisg
ICAgICBbImhlaWdodCIsICJib3g0IiwgIndlYmtpdFRyYW5zaXRpb25FbmQiLCAwLjNdLAorICAg
ICAgWyJsZWZ0IiwgImJveDEiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAuNV0sCisgICAgICBb
ImxlZnQiLCAiYm94MiIsICJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwgMC41XSwKKyAgICAgIFsibGVm
dCIsICJib3gzIiwgIndlYmtpdFRyYW5zaXRpb25FbmQiLCAwLjZdLAorICAgICAgWyJsZWZ0Iiwg
ImJveDQiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAuM10sCisgICAgICBbIndpZHRoIiwgImJv
eDMiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAuNl0KKyAgICBdOworICAgIAorICAgIGZ1bmN0
aW9uIHRyYW5zaXRpb25FbGVtZW50KGluZGV4KSB7CisgICAgICB2YXIgYm94ZXMgPSBkb2N1bWVu
dC5ib2R5LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2JveCcpOworICAgICAgYm94ZXNbaW5kZXgt
MV0uY2xhc3NOYW1lID0gImJveCBib3giICsgaW5kZXg7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c3RhcnRUcmFuc2l0aW9ucygpCisgICAgeworICAgICAgdmFyIGJveGVzID0gZG9jdW1lbnQuYm9k
eS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gnKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgYm94ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYm94ZXNbaV0uYWRkRXZlbnRMaXN0ZW5l
cigid2Via2l0VHJhbnNpdGlvbkVuZCIsIHJlY29yZEV2ZW50LCBmYWxzZSk7CisgICAgICB9CisK
KyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0cmFuc2l0aW9uRWxlbWVudCgx
KTsgfSwgMTAwKTsKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0cmFuc2l0
aW9uRWxlbWVudCgyKTsgfSwgMTUwKTsKKyAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeyB0cmFuc2l0aW9uRWxlbWVudCgzKTsgfSwgMjAwKTsKKyAgICAgIHdpbmRvdy5zZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeyB0cmFuc2l0aW9uRWxlbWVudCg0KTsgfSwgNTApOworICAgICAgd2lu
ZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyYW5zaXRpb25FbGVtZW50KDUpOyB9LCAxNTAp
OworICAgICAgCisgICAgICB3aW5kb3cuc2V0VGltZW91dChjbGVhbnVwLCAxMDAwKTsKKyAgICB9
CisgICAgCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzdGFydFRyYW5zaXRp
b25zLCBmYWxzZSk7CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxwPkluaXRpYXRp
bmcgdHJhbnNpdGlvbnMgb24gdmFyaW91cyBwcm9wZXJ0aWVzIG9mIGFsbCBib3hlcywgd2l0aCBk
aWZmZXJlbnQgc3RhcnQgdGltZXMgb24gdGhlIHRyYW5zaXRpb25zLjwvcD4KKworPGRpdiBpZD0i
Y29udGFpbmVyIj4KKyAgPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCI+PC9kaXY+CisgIDxkaXYg
aWQ9ImJveDIiIGNsYXNzPSJib3giPjwvZGl2PgorICA8ZGl2IGlkPSJib3gzIiBjbGFzcz0iYm94
Ij48L2Rpdj4KKyAgPGRpdiBpZD0iYm94NCIgY2xhc3M9ImJveCI+PC9kaXY+CisgIDxkaXYgaWQ9
ImJveDUiIGNsYXNzPSJib3giPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1tdWx0
aXBsZS0wNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9u
LWVuZC1ldmVudC1tdWx0aXBsZS0wNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYTYyNjM5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LW11bHRpcGxlLTA0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK0luaXRpYXRpbmcgdHJhbnNpdGlvbnMgb24gdHJhbnNmb3JtIHByb3Bl
cnRpZXMgb2YgYWxsIGJveGVzLCBzdGFydGluZyBhdCBkaWZmZXJlbnQgdGltZXMgYW5kIHdpdGgg
ZGlmZmVyZW50IGR1cmF0aW9ucyBhbmQgdmFsdWVzLgorCitFeHBlY3RlZCBQcm9wZXJ0eTogLXdl
YmtpdC10cmFuc2Zvcm0gVGFyZ2V0OiBib3gxIFR5cGU6IHdlYmtpdFRyYW5zaXRpb25FbmQgRWxh
cHNlZCBUaW1lOiAwLjUgLS0gUEFTUworRXhwZWN0ZWQgUHJvcGVydHk6IC13ZWJraXQtdHJhbnNm
b3JtIFRhcmdldDogYm94MiBUeXBlOiB3ZWJraXRUcmFuc2l0aW9uRW5kIEVsYXBzZWQgVGltZTog
MC41NSAtLSBQQVNTCitFeHBlY3RlZCBQcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm0gVGFyZ2V0
OiBib3g0IFR5cGU6IHdlYmtpdFRyYW5zaXRpb25FbmQgRWxhcHNlZCBUaW1lOiAwLjQgLS0gUEFT
UworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1l
dmVudC1tdWx0aXBsZS0wNC5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1lbmQtZXZlbnQtbXVsdGlwbGUtMDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41MDUzYzFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbXVsdGlwbGUtMDQuaHRtbApAQCAtMCwwICsxLDkzIEBA
Cis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+VHJhbnNpdGlvbiBFbmQgRXZlbnRzPC90aXRsZT4K
KyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuYm94IHsKKyAg
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDA7CisgICAgICBoZWlnaHQ6IDEw
MHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUo
MCk7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3Jt
OworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzOworICAgIH0KKyAgICAK
KyAgICAuYm94MSB7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwcHgpOwor
ICAgIH0KKyAgICAKKyAgICAuYm94MiB7CisgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlKDUwcHgpIHNjYWxlKDEuMDUpOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9u
OiAwLjU1czsKKyAgICB9CisgICAgCisgICAgLmJveDMgeworICAgICAgLXdlYmtpdC10cmFuc2Zv
cm06IHRyYW5zbGF0ZSgwKTsgLyogc2FtZSBhcyBkZWZhdWx0ICovCisgICAgICAtd2Via2l0LXRy
YW5zaXRpb24tZHVyYXRpb246IDAuM3M7CisgICAgfQorCisgICAgLmJveDQgeworICAgICAgLXdl
YmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMDBweCk7CisgICAgICAtd2Via2l0LXRyYW5zaXRp
b24tZHVyYXRpb246IDAuNHM7CisgICAgfQorCisgICAgLmJveDUgeworICAgICAgLyogbm90aGlu
ZyAqLworICAgIH0KKworICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0iZW5kLWV2ZW50LWhlbHBl
cnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0Pgor
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgfQorICAKKyAgICB2YXIgZXhwZWN0ZWQgPSBbCisgICAgICBbIi13ZWJr
aXQtdHJhbnNmb3JtIiwgImJveDEiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAuNV0sCisgICAg
ICBbIi13ZWJraXQtdHJhbnNmb3JtIiwgImJveDIiLCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAu
NTVdLAorICAgICAgWyItd2Via2l0LXRyYW5zZm9ybSIsICJib3g0IiwgIndlYmtpdFRyYW5zaXRp
b25FbmQiLCAwLjRdCisgICAgXTsKKyAgCisgICAgZnVuY3Rpb24gdHJhbnNpdGlvbkVsZW1lbnQo
aW5kZXgpIHsKKyAgICAgIHZhciBib3hlcyA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZSgnYm94Jyk7CisgICAgICBib3hlc1tpbmRleC0xXS5jbGFzc05hbWUgPSAiYm94IGJv
eCIgKyBpbmRleDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzdGFydFRyYW5zaXRpb25zKCkKKyAg
ICB7CisgICAgICB2YXIgYm94ZXMgPSBkb2N1bWVudC5ib2R5LmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoJ2JveCcpOworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBib3hlcy5sZW5ndGg7ICsraSkg
eworICAgICAgICBib3hlc1tpXS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJraXRUcmFuc2l0aW9uRW5k
IiwgcmVjb3JkRXZlbnQsIGZhbHNlKTsKKyAgICAgIH0KKworICAgICAgd2luZG93LnNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7IHRyYW5zaXRpb25FbGVtZW50KDEpOyB9LCAxMDApOworICAgICAgd2lu
ZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyYW5zaXRpb25FbGVtZW50KDIpOyB9LCAxNTAp
OworICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyYW5zaXRpb25FbGVtZW50
KDMpOyB9LCAyMDApOworICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyYW5z
aXRpb25FbGVtZW50KDQpOyB9LCA1MCk7CisgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsgdHJhbnNpdGlvbkVsZW1lbnQoNSk7IH0sIDE1MCk7CisgICAgICAKKyAgICAgIHdpbmRv
dy5zZXRUaW1lb3V0KGNsZWFudXAsIDEwMDApOworICAgIH0KKyAgICAKKyAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIHN0YXJ0VHJhbnNpdGlvbnMsIGZhbHNlKTsKKyAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPHA+SW5pdGlhdGluZyB0cmFuc2l0aW9ucyBvbiB0cmFu
c2Zvcm0gcHJvcGVydGllcyBvZiBhbGwgYm94ZXMsIHN0YXJ0aW5nIGF0IGRpZmZlcmVudCB0aW1l
cyBhbmQgd2l0aCBkaWZmZXJlbnQgZHVyYXRpb25zIGFuZCB2YWx1ZXMuPC9wPgorCis8ZGl2IGlk
PSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94Ij48L2Rpdj4KKyAgPGRp
diBpZD0iYm94MiIgY2xhc3M9ImJveCI+PC9kaXY+CisgIDxkaXYgaWQ9ImJveDMiIGNsYXNzPSJi
b3giPjwvZGl2PgorICA8ZGl2IGlkPSJib3g0IiBjbGFzcz0iYm94Ij48L2Rpdj4KKyAgPGRpdiBp
ZD0iYm94NSIgY2xhc3M9ImJveCI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBpZD0icmVzdWx0Ij48
L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LW5l
c3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVu
ZC1ldmVudC1uZXN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmRmNDEzN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9u
cy90cmFuc2l0aW9uLWVuZC1ldmVudC1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorSW5pdGlhdGluZyB0cmFuc2l0aW9ucyBvbiB2YXJpb3VzIHByb3BlcnRpZXMgb2YgYWxsIGJv
eGVzLgorCitFeHBlY3RlZCBQcm9wZXJ0eTogYmFja2dyb3VuZC1jb2xvciBUYXJnZXQ6IGJveDIg
VHlwZTogd2Via2l0VHJhbnNpdGlvbkVuZCBFbGFwc2VkIFRpbWU6IDAuMiAtLSBQQVNTCitFeHBl
Y3RlZCBQcm9wZXJ0eTogbGVmdCBUYXJnZXQ6IGJveDEgVHlwZTogd2Via2l0VHJhbnNpdGlvbkVu
ZCBFbGFwc2VkIFRpbWU6IDAuMiAtLSBQQVNTCitFeHBlY3RlZCBQcm9wZXJ0eTogd2lkdGggVGFy
Z2V0OiBib3gzIFR5cGU6IHdlYmtpdFRyYW5zaXRpb25FbmQgRWxhcHNlZCBUaW1lOiAwLjMgLS0g
UEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVu
ZC1ldmVudC1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24t
ZW5kLWV2ZW50LW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmExNjU2OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFu
c2l0aW9uLWVuZC1ldmVudC1uZXN0ZWQuaHRtbApAQCAtMCwwICsxLDk1IEBACis8aHRtbD4KKzxo
ZWFkPgorICA8dGl0bGU+VHJhbnNpdGlvbiBFbmQgRXZlbnRzPC90aXRsZT4KKyAgPHN0eWxlIHR5
cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKyAgICAuYm94IHsKKyAgICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDA7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgYmFja2dyb3VuZC1jb2xv
cjogYmx1ZTsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogd2lkdGgsIGxlZnQs
IGJhY2tncm91bmQtY29sb3IsIGhlaWdodCwgdG9wOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9u
LWR1cmF0aW9uOiAwLjJzOworICAgIH0KKyAgICAKKyAgICAuYm94MSB7CisgICAgICBsZWZ0OiA1
MHB4OworICAgIH0KKyAgICAKKyAgICAuYm94MiB7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7CisgICAgfQorICAgIAorICAgIC5ib3gzIHsKKyAgICAgIHdpZHRoOiAxNTBweDsKKyAgICAg
IC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4zczsKKyAgICB9CisgICAgCisgIDwvc3R5
bGU+CisgIDxzY3JpcHQgc3JjPSJlbmQtZXZlbnQtaGVscGVycy5qcyIgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAg
ICB2YXIgZXhwZWN0ZWQgPSBbCisgICAgICBbImJhY2tncm91bmQtY29sb3IiLCAiYm94MiIsICJ3
ZWJraXRUcmFuc2l0aW9uRW5kIiwgMC4yXSwKKyAgICAgIFsibGVmdCIsICJib3gxIiwgIndlYmtp
dFRyYW5zaXRpb25FbmQiLCAwLjJdLAorICAgICAgWyJ3aWR0aCIsICJib3gzIiwgIndlYmtpdFRy
YW5zaXRpb25FbmQiLCAwLjNdLAorICAgIF07CisgICAgCisgICAgZnVuY3Rpb24gc3RhcnRUcmFu
c2l0aW9uMSgpCisgICAgeworICAgICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJib3gxIik7CisgICAgICBib3guYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVu
ZCIsIGhhbmRsZUVuZEV2ZW50MSwgZmFsc2UpOworICAgICAgYm94LmNsYXNzTmFtZSA9ICJib3gg
Ym94MSI7CisgICAgfQorCisgICAgZnVuY3Rpb24gaGFuZGxlRW5kRXZlbnQxKGV2ZW50KSB7Cisg
ICAgICByZWNvcmRFdmVudChldmVudCk7CisgICAgICBzZXRUaW1lb3V0KHN0YXJ0VHJhbnNpdGlv
bjIsIDEwMCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RhcnRUcmFuc2l0aW9uMigpCisgICAg
eworICAgICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gyIik7CisgICAg
ICBib3guYWRkRXZlbnRMaXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsIGhhbmRsZUVuZEV2
ZW50MiwgZmFsc2UpOworICAgICAgYm94LmNsYXNzTmFtZSA9ICJib3ggYm94MiI7CisgICAgfQor
CisgICAgZnVuY3Rpb24gaGFuZGxlRW5kRXZlbnQyKGV2ZW50KSB7CisgICAgICByZWNvcmRFdmVu
dChldmVudCk7CisgICAgICBzZXRUaW1lb3V0KHN0YXJ0VHJhbnNpdGlvbjMsIDEwMCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gc3RhcnRUcmFuc2l0aW9uMygpCisgICAgeworICAgICAgdmFyIGJv
eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3gzIik7CisgICAgICBib3guYWRkRXZlbnRM
aXN0ZW5lcigid2Via2l0VHJhbnNpdGlvbkVuZCIsIGhhbmRsZUVuZEV2ZW50MywgZmFsc2UpOwor
ICAgICAgYm94LmNsYXNzTmFtZSA9ICJib3ggYm94MyI7CisgICAgfQorCisgICAgZnVuY3Rpb24g
aGFuZGxlRW5kRXZlbnQzKGV2ZW50KSB7CisgICAgICByZWNvcmRFdmVudChldmVudCk7CisgICAg
ICB3aW5kb3cuc2V0VGltZW91dChjbGVhbnVwLCAxMDApOworICAgIH0KKworICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc3RhcnRUcmFuc2l0aW9uMSwgZmFsc2UpOworICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8cD5Jbml0aWF0aW5nIHRyYW5zaXRpb25zIG9uIHZh
cmlvdXMgcHJvcGVydGllcyBvZiBhbGwgYm94ZXMuPC9wPgorCis8ZGl2IGlkPSJjb250YWluZXIi
PgorICA8ZGl2IGlkPSJib3gxIiBjbGFzcz0iYm94Ij48L2Rpdj4KKyAgPGRpdiBpZD0iYm94MiIg
Y2xhc3M9ImJveCI+PC9kaXY+CisgIDxkaXYgaWQ9ImJveDMiIGNsYXNzPSJib3giPjwvZGl2Pgor
PC9kaXY+CisKKzxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdHJhbnNmb3JtLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzJmNWE3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQt
dHJhbnNmb3JtLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0luaXRpYXRpbmcgYSA1MDBt
cyB0cmFuc2l0aW9uIG9uIHRoZSB0cmFuc2Zvcm0gcHJvcGVydHkgb2YgYm94MS4KKworRXhwZWN0
ZWQgUHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtIFRhcmdldDogYm94MSBUeXBlOiB3ZWJraXRU
cmFuc2l0aW9uRW5kIEVsYXBzZWQgVGltZTogMC41IC0tIFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtdHJhbnNmb3JtLmh0bWwg
Yi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC10cmFuc2Zvcm0u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjc0YzM1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQt
dHJhbnNmb3JtLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxl
PlRyYW5zaXRpb24gRW5kIEV2ZW50czwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIg
bWVkaWE9InNjcmVlbiI+CisgICAgLmJveCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgICBsZWZ0OiAwOworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsK
KyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAg
ICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtOworICAgICAg
LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzOworICAgICAgLXdlYmtpdC10cmFuc2Zv
cm06IHRyYW5zbGF0ZSgxMDBweCk7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0i
ZW5kLWV2ZW50LWhlbHBlcnMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm
LTgiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0i
dXRmLTgiPgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgdmFyIGV4cGVjdGVkID0gWwor
ICAgICAgWyItd2Via2l0LXRyYW5zZm9ybSIsICJib3gxIiwgIndlYmtpdFRyYW5zaXRpb25FbmQi
LCAwLjVdCisgICAgXTsKKyAgICAKKyAgICBmdW5jdGlvbiBzdGFydFRyYW5zaXRpb24oKQorICAg
IHsKKyAgICAgIHZhciBib3hlcyA9IGRvY3VtZW50LmJvZHkuZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZSgnYm94Jyk7CisgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJveGVzLmxlbmd0aDsgKytpKSB7
CisgICAgICAgIGJveGVzW2ldLmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25FbmQi
LCByZWNvcmRFdmVudCwgZmFsc2UpOworICAgICAgICBib3hlc1tpXS5zdHlsZS53ZWJraXRUcmFu
c2Zvcm0gPSAndHJhbnNsYXRlKDIwMHB4KSc7CisgICAgICB9CisgICAgICAKKyAgICAgIHdpbmRv
dy5zZXRUaW1lb3V0KGNsZWFudXAsIDcwMCk7CisgICAgfQorICAgIAorICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgc3RhcnRUcmFuc2l0aW9uLCBmYWxzZSk7CisgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisKKzxwPkluaXRpYXRpbmcgYSA1MDBtcyB0cmFuc2l0aW9uIG9u
IHRoZSB0cmFuc2Zvcm0gcHJvcGVydHkgb2YgYm94MS48L3A+CisKKzxkaXYgaWQ9ImNvbnRhaW5l
ciI+CisgIDxkaXYgaWQ9ImJveDEiIGNsYXNzPSJib3giPjwvZGl2PgorPC9kaXY+CisKKzxkaXYg
aWQ9InJlc3VsdCI+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9u
LWVuZC1ldmVudC13aW5kb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMv
dHJhbnNpdGlvbi1lbmQtZXZlbnQtd2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi40N2FhYjU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtd2luZG93LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKK0luaXRpYXRpbmcgYSA1MDBtcyB0cmFuc2l0aW9uIG9uIHRoZSBsZWZ0
IHByb3BlcnR5IG9mIGJveDEgYW5kIGNhdGNoaW5nIGl0IG9uIHRoZSB3aW5kb3cuCisKK0V4cGVj
dGVkIFByb3BlcnR5OiBsZWZ0IFRhcmdldDogYm94MSBUeXBlOiB3ZWJraXRUcmFuc2l0aW9uRW5k
IEVsYXBzZWQgVGltZTogMC41IC0tIFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJh
bnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC13aW5kb3cuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi40Mjc1MjkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtd2luZG93Lmh0bWwKQEAgLTAs
MCArMSw1NiBAQAorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlRyYW5zaXRpb24gRW5kIEV2ZW50
czwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAg
LmJveCB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICBsZWZ0OiAwOworICAgICAg
aGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24t
cHJvcGVydHk6IGxlZnQ7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuNXM7
CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHNyYz0iZW5kLWV2ZW50LWhlbHBlcnMuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgorICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgorICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgfQorCisgICAgdmFyIGV4cGVjdGVkID0gWworICAgICAgWyJsZWZ0IiwgImJveDEi
LCAid2Via2l0VHJhbnNpdGlvbkVuZCIsIDAuNV0KKyAgICBdOworICAgIAorICAgIGZ1bmN0aW9u
IHN0YXJ0VHJhbnNpdGlvbigpCisgICAgeworICAgICAgdmFyIGJveGVzID0gZG9jdW1lbnQuYm9k
eS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gnKTsKKyAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgYm94ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgLy8gd2UgaGF2ZSB0byBhdHRhY2ggYW4g
ZW1wdHkgaGFuZGxlciBoZXJlIG90aGVyd2lzZSB0aGUgZXZlbnQgaXNuJ3QKKyAgICAgICAgLy8g
ZmlyZWQgKFdlYkNvcmUgbG9va3MgYXQgdGhlIGRvY3VtZW50IHRvIHNlZSBpZiB0aGVyZSBhcmUg
YW55IGxpc3RlbmVycworICAgICAgICAvLyBhbmQgaWdub3JlcyB0aGUgb25lIG9uIFdpbmRvdykg
LSB0aGlzIHNob3VsZCBiZSBmaXhlZAorICAgICAgICBib3hlc1tpXS5hZGRFdmVudExpc3RlbmVy
KCJ3ZWJraXRUcmFuc2l0aW9uRW5kIiwgZnVuY3Rpb24gKCkge30sIGZhbHNlKTsKKyAgICAgICAg
Ym94ZXNbaV0uc3R5bGUubGVmdCA9ICcyMDBweCc7CisgICAgICB9CisgICAgICAKKyAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KGNsZWFudXAsIDcwMCk7CisgICAgfQorICAgIAorICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc3RhcnRUcmFuc2l0aW9uLCBmYWxzZSk7CisgICAgd2lu
ZG93Lm9ud2Via2l0dHJhbnNpdGlvbmVuZCA9IHJlY29yZEV2ZW50OworICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorCis8cD5Jbml0aWF0aW5nIGEgNTAwbXMgdHJhbnNpdGlvbiBvbiB0aGUg
bGVmdCBwcm9wZXJ0eSBvZiBib3gxIGFuZCBjYXRjaGluZyBpdCBvbiB0aGUgd2luZG93LjwvcD4K
KworPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgPGRpdiBpZD0iYm94MSIgY2xhc3M9ImJveCI+PC9k
aXY+Cis8L2Rpdj4KKworPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKworPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDg4ZTc3ZC4uZDVhODhhYSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MSBAQAorMjAwOC0wOC0yOSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBzdXJlIFdpbmRv
dyBvYmplY3QgY2FuIGFzc2lnbiBBbmltYXRpb24vVHJhbnNpdGlvbiBldmVudAorICAgICAgICBs
aXN0ZW5lcnMgdmlhIGF0dHJpYnV0ZXMuIEFsc28gaW5jbHVkZWQsIGF0IG5vIGV4dHJhIGNoYXJn
ZSwKKyAgICAgICAgaXMgYSBjb2RlIGNsZWFudXAgdG8gbWVldCB0aGUgY29kaW5nIGd1aWRlbGlu
ZXMuCisKKyAgICAgICAgQWxzbyBhZGRlZCBhIGJ1bmNoIG9mIHRyYW5zaXRpb24gZXZlbnQgdGVz
dHMsIGFsdGhvdWdoCisgICAgICAgIG9ubHkgdHJhbnNpdGlvbi1lbmQtZXZlbnQtd2luZG93IGlz
IGRpcmVjdGx5IHJlbGV2YW50IHRvIHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNl
OjpnZXRWYWx1ZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6
cHV0KToKKworICAgICAgICBUZXN0czogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQt
YWxsLXByb3BlcnRpZXMuaHRtbAorICAgICAgICAgICAgICAgdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1lbmQtZXZlbnQtYXR0cmlidXRlcy5odG1sCisgICAgICAgICAgICAgICB0cmFuc2l0aW9ucy90
cmFuc2l0aW9uLWVuZC1ldmVudC1jb250YWluZXIuaHRtbAorICAgICAgICAgICAgICAgdHJhbnNp
dGlvbnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtbGVmdC5odG1sCisgICAgICAgICAgICAgICB0cmFu
c2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1tdWx0aXBsZS0wMS5odG1sCisgICAgICAgICAg
ICAgICB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1tdWx0aXBsZS0wMi5odG1sCisg
ICAgICAgICAgICAgICB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1tdWx0aXBsZS0w
My5odG1sCisgICAgICAgICAgICAgICB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1t
dWx0aXBsZS0wNC5odG1sCisgICAgICAgICAgICAgICB0cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVu
ZC1ldmVudC1uZXN0ZWQuaHRtbAorICAgICAgICAgICAgICAgdHJhbnNpdGlvbnMvdHJhbnNpdGlv
bi1lbmQtZXZlbnQtdHJhbnNmb3JtLmh0bWwKKyAgICAgICAgICAgICAgIHRyYW5zaXRpb25zL3Ry
YW5zaXRpb24tZW5kLWV2ZW50LXdpbmRvdy5odG1sCisKKwogMjAwOC0wOC0yOSAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGVs
ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA2MGFjNjcxLi5l
M2QzOWU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC00MzIs
MTE2ICs0MzIsMTE2IEBAIHN0YXRpYyBKU1ZhbHVlKiBzaG93TW9kYWxEaWFsb2coRXhlY1N0YXRl
KiBleGVjLCBGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgdXJsCiAKIEpTVmFsdWUgKkpTRE9N
V2luZG93QmFzZTo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbikg
Y29uc3QKIHsKLSAgIEFTU0VSVChpbXBsKCktPmZyYW1lKCkpOworICAgIEFTU0VSVChpbXBsKCkt
PmZyYW1lKCkpOwogCi0gICBzd2l0Y2ggKHRva2VuKSB7Ci0gICBjYXNlIENyeXB0bzoKLSAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOyAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMKKyAgICBzd2l0
Y2ggKHRva2VuKSB7CisgICAgY2FzZSBDcnlwdG86CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOyAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMKICAgICBjYXNlIEV2ZW50XzoKLSAgICAgIGlm
ICghYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgICBpZiAoIWQoKS0+ZXZ0KQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGQoKS0+ZXZ0KTsKKyAgICAgICAgaWYgKCFhbGxvd3NBY2Nl
c3NGcm9tKGV4ZWMpKQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAg
IGlmICghZCgpLT5ldnQpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZCgpLT5ldnQpOwogICAgIGNhc2UgSW1hZ2U6Ci0gICAgICBp
ZiAoIWFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgICAgLy8gRklYTUU6IHRoaXMgcHJvcGVydHkgKGFuZCB0aGUgZmV3IGJlbG93KSBwcm9i
YWJseSBzaG91bGRuJ3QgY3JlYXRlIGEgbmV3IG9iamVjdCBldmVyeQotICAgICAgLy8gdGltZQot
ICAgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNJbWFnZUNvbnN0cnVjdG9yKGV4ZWMsIGltcGwoKS0+
ZnJhbWUoKS0+ZG9jdW1lbnQoKSk7CisgICAgICAgIGlmICghYWxsb3dzQWNjZXNzRnJvbShleGVj
KSkKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgICAgICAvLyBGSVhNRTog
dGhpcyBwcm9wZXJ0eSAoYW5kIHRoZSBmZXcgYmVsb3cpIHByb2JhYmx5IHNob3VsZG4ndCBjcmVh
dGUgYSBuZXcgb2JqZWN0IGV2ZXJ5CisgICAgICAgIC8vIHRpbWUKKyAgICAgICAgcmV0dXJuIG5l
dyAoZXhlYykgSlNJbWFnZUNvbnN0cnVjdG9yKGV4ZWMsIGltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1l
bnQoKSk7CiAgICAgY2FzZSBPcHRpb246Ci0gICAgICBpZiAoIWFsbG93c0FjY2Vzc0Zyb20oZXhl
YykpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgcmV0dXJuIG5ldyAoZXhl
YykgSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yKGV4ZWMsIGltcGwoKS0+ZnJhbWUoKS0+
ZG9jdW1lbnQoKSk7CisgICAgICAgIGlmICghYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKKyAgICAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgICAgICByZXR1cm4gbmV3IChleGVjKSBK
U0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IoZXhlYywgaW1wbCgpLT5mcmFtZSgpLT5kb2N1
bWVudCgpKTsKICAgICBjYXNlIFhNTEh0dHBSZXF1ZXN0OgotICAgICAgaWYgKCFhbGxvd3NBY2Nl
c3NGcm9tKGV4ZWMpKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgIHJldHVy
biBuZXcgKGV4ZWMpIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvcihleGVjLCBpbXBsKCktPmZy
YW1lKCktPmRvY3VtZW50KCkpOworICAgICAgICBpZiAoIWFsbG93c0FjY2Vzc0Zyb20oZXhlYykp
CisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgcmV0dXJuIG5ldyAo
ZXhlYykgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKGV4ZWMsIGltcGwoKS0+ZnJhbWUoKS0+
ZG9jdW1lbnQoKSk7CiAgICAgY2FzZSBBdWRpbzoKICNpZiBFTkFCTEUoVklERU8pCi0gICAgICBp
ZiAoIWFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgICAgaWYgKCFNZWRpYVBsYXllcjo6aXNBdmFpbGFibGUoKSkKLSAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0gICAgICByZXR1cm4gbmV3IChleGVjKSBKU0F1ZGlvQ29uc3RydWN0
b3IoZXhlYywgaW1wbCgpLT5mcmFtZSgpLT5kb2N1bWVudCgpKTsKKyAgICAgICAgaWYgKCFhbGxv
d3NBY2Nlc3NGcm9tKGV4ZWMpKQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgICAgIGlmICghTWVkaWFQbGF5ZXI6OmlzQXZhaWxhYmxlKCkpCisgICAgICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNBdWRpb0NvbnN0
cnVjdG9yKGV4ZWMsIGltcGwoKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSk7CiAjZWxzZQotICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogI2Vu
ZGlmCiAgICAgY2FzZSBYU0xUUHJvY2Vzc29yOgogI2lmIEVOQUJMRShYU0xUKQotICAgICAgaWYg
KCFhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LSAgICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yKGV4ZWMp
OworICAgICAgICBpZiAoIWFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKKyAgICAgICAgcmV0dXJuIG5ldyAoZXhlYykgSlNYU0xUUHJvY2Vz
c29yQ29uc3RydWN0b3IoZXhlYyk7CiAjZWxzZQotICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogI2VuZGlmCi0gICB9Ci0KLSAgIGlmICgh
YWxsb3dzQWNjZXNzRnJvbShleGVjKSkKLSAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAg
IHN3aXRjaCAodG9rZW4pIHsKLSAgIGNhc2UgT25hYm9ydDoKLSAgICAgcmV0dXJuIGdldExpc3Rl
bmVyKGV4ZWMsIGFib3J0RXZlbnQpOwotICAgY2FzZSBPbmJsdXI6Ci0gICAgIHJldHVybiBnZXRM
aXN0ZW5lcihleGVjLCBibHVyRXZlbnQpOwotICAgY2FzZSBPbmNoYW5nZToKLSAgICAgcmV0dXJu
IGdldExpc3RlbmVyKGV4ZWMsIGNoYW5nZUV2ZW50KTsKLSAgIGNhc2UgT25jbGljazoKLSAgICAg
cmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIGNsaWNrRXZlbnQpOwotICAgY2FzZSBPbmRibGNsaWNr
OgotICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywgZGJsY2xpY2tFdmVudCk7Ci0gICBjYXNl
IE9uZXJyb3I6Ci0gICAgIHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCBlcnJvckV2ZW50KTsKLSAg
IGNhc2UgT25mb2N1czoKLSAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIGZvY3VzRXZlbnQp
OwotICAgY2FzZSBPbmtleWRvd246Ci0gICAgIHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCBrZXlk
b3duRXZlbnQpOwotICAgY2FzZSBPbmtleXByZXNzOgotICAgICByZXR1cm4gZ2V0TGlzdGVuZXIo
ZXhlYywga2V5cHJlc3NFdmVudCk7Ci0gICBjYXNlIE9ua2V5dXA6Ci0gICAgIHJldHVybiBnZXRM
aXN0ZW5lcihleGVjLCBrZXl1cEV2ZW50KTsKLSAgIGNhc2UgT25sb2FkOgotICAgICByZXR1cm4g
Z2V0TGlzdGVuZXIoZXhlYywgbG9hZEV2ZW50KTsKLSAgIGNhc2UgT25tb3VzZWRvd246Ci0gICAg
IHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCBtb3VzZWRvd25FdmVudCk7Ci0gICBjYXNlIE9ubW91
c2Vtb3ZlOgotICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywgbW91c2Vtb3ZlRXZlbnQpOwot
ICAgY2FzZSBPbm1vdXNlb3V0OgotICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywgbW91c2Vv
dXRFdmVudCk7Ci0gICBjYXNlIE9ubW91c2VvdmVyOgotICAgICByZXR1cm4gZ2V0TGlzdGVuZXIo
ZXhlYywgbW91c2VvdmVyRXZlbnQpOwotICAgY2FzZSBPbm1vdXNldXA6Ci0gICAgIHJldHVybiBn
ZXRMaXN0ZW5lcihleGVjLCBtb3VzZXVwRXZlbnQpOwotICAgY2FzZSBPbldpbmRvd01vdXNlV2hl
ZWw6Ci0gICAgIHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCBtb3VzZXdoZWVsRXZlbnQpOwotICAg
Y2FzZSBPbnJlc2V0OgotICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywgcmVzZXRFdmVudCk7
Ci0gICBjYXNlIE9ucmVzaXplOgotICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYyxyZXNpemVF
dmVudCk7Ci0gICBjYXNlIE9uc2Nyb2xsOgotICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYyxz
Y3JvbGxFdmVudCk7Ci0gICBjYXNlIE9uc2VhcmNoOgotICAgICByZXR1cm4gZ2V0TGlzdGVuZXIo
ZXhlYyxzZWFyY2hFdmVudCk7Ci0gICBjYXNlIE9uc2VsZWN0OgotICAgICByZXR1cm4gZ2V0TGlz
dGVuZXIoZXhlYyxzZWxlY3RFdmVudCk7Ci0gICBjYXNlIE9uc3VibWl0OgotICAgICByZXR1cm4g
Z2V0TGlzdGVuZXIoZXhlYyxzdWJtaXRFdmVudCk7Ci0gICBjYXNlIE9uYmVmb3JldW5sb2FkOgot
ICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywgYmVmb3JldW5sb2FkRXZlbnQpOwotICAgY2Fz
ZSBPbnVubG9hZDoKLSAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIHVubG9hZEV2ZW50KTsK
LSAgIGNhc2UgT25XZWJLaXRBbmltYXRpb25TdGFydDoKLSAgICAgcmV0dXJuIGdldExpc3RlbmVy
KGV4ZWMsIHdlYmtpdEFuaW1hdGlvblN0YXJ0RXZlbnQpOwotICAgY2FzZSBPbldlYktpdEFuaW1h
dGlvbkl0ZXJhdGlvbjoKLSAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIHdlYmtpdEFuaW1h
dGlvbkl0ZXJhdGlvbkV2ZW50KTsKLSAgIGNhc2UgT25XZWJLaXRBbmltYXRpb25FbmQ6Ci0gICAg
IHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCB3ZWJraXRBbmltYXRpb25FbmRFdmVudCk7Ci0gICBj
YXNlIE9uV2ViS2l0VHJhbnNpdGlvbkVuZDoKLSAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMs
IHdlYmtpdFRyYW5zaXRpb25FbmRFdmVudCk7Ci0gICB9Ci0gICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKworICAgIGlmICghYWxsb3dzQWNj
ZXNzRnJvbShleGVjKSkKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICBzd2l0
Y2ggKHRva2VuKSB7CisgICAgY2FzZSBPbmFib3J0OgorICAgICAgICByZXR1cm4gZ2V0TGlzdGVu
ZXIoZXhlYywgYWJvcnRFdmVudCk7CisgICAgY2FzZSBPbmJsdXI6CisgICAgICAgIHJldHVybiBn
ZXRMaXN0ZW5lcihleGVjLCBibHVyRXZlbnQpOworICAgIGNhc2UgT25jaGFuZ2U6CisgICAgICAg
IHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCBjaGFuZ2VFdmVudCk7CisgICAgY2FzZSBPbmNsaWNr
OgorICAgICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywgY2xpY2tFdmVudCk7CisgICAgY2Fz
ZSBPbmRibGNsaWNrOgorICAgICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywgZGJsY2xpY2tF
dmVudCk7CisgICAgY2FzZSBPbmVycm9yOgorICAgICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhl
YywgZXJyb3JFdmVudCk7CisgICAgY2FzZSBPbmZvY3VzOgorICAgICAgICByZXR1cm4gZ2V0TGlz
dGVuZXIoZXhlYywgZm9jdXNFdmVudCk7CisgICAgY2FzZSBPbmtleWRvd246CisgICAgICAgIHJl
dHVybiBnZXRMaXN0ZW5lcihleGVjLCBrZXlkb3duRXZlbnQpOworICAgIGNhc2UgT25rZXlwcmVz
czoKKyAgICAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIGtleXByZXNzRXZlbnQpOworICAg
IGNhc2UgT25rZXl1cDoKKyAgICAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIGtleXVwRXZl
bnQpOworICAgIGNhc2UgT25sb2FkOgorICAgICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywg
bG9hZEV2ZW50KTsKKyAgICBjYXNlIE9ubW91c2Vkb3duOgorICAgICAgICByZXR1cm4gZ2V0TGlz
dGVuZXIoZXhlYywgbW91c2Vkb3duRXZlbnQpOworICAgIGNhc2UgT25tb3VzZW1vdmU6CisgICAg
ICAgIHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCBtb3VzZW1vdmVFdmVudCk7CisgICAgY2FzZSBP
bm1vdXNlb3V0OgorICAgICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywgbW91c2VvdXRFdmVu
dCk7CisgICAgY2FzZSBPbm1vdXNlb3ZlcjoKKyAgICAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4
ZWMsIG1vdXNlb3ZlckV2ZW50KTsKKyAgICBjYXNlIE9ubW91c2V1cDoKKyAgICAgICAgcmV0dXJu
IGdldExpc3RlbmVyKGV4ZWMsIG1vdXNldXBFdmVudCk7CisgICAgY2FzZSBPbldpbmRvd01vdXNl
V2hlZWw6CisgICAgICAgIHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCBtb3VzZXdoZWVsRXZlbnQp
OworICAgIGNhc2UgT25yZXNldDoKKyAgICAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIHJl
c2V0RXZlbnQpOworICAgIGNhc2UgT25yZXNpemU6CisgICAgICAgIHJldHVybiBnZXRMaXN0ZW5l
cihleGVjLHJlc2l6ZUV2ZW50KTsKKyAgICBjYXNlIE9uc2Nyb2xsOgorICAgICAgICByZXR1cm4g
Z2V0TGlzdGVuZXIoZXhlYyxzY3JvbGxFdmVudCk7CisgICAgY2FzZSBPbnNlYXJjaDoKKyAgICAg
ICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsc2VhcmNoRXZlbnQpOworICAgIGNhc2UgT25zZWxl
Y3Q6CisgICAgICAgIHJldHVybiBnZXRMaXN0ZW5lcihleGVjLHNlbGVjdEV2ZW50KTsKKyAgICBj
YXNlIE9uc3VibWl0OgorICAgICAgICByZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYyxzdWJtaXRFdmVu
dCk7CisgICAgY2FzZSBPbmJlZm9yZXVubG9hZDoKKyAgICAgICAgcmV0dXJuIGdldExpc3RlbmVy
KGV4ZWMsIGJlZm9yZXVubG9hZEV2ZW50KTsKKyAgICBjYXNlIE9udW5sb2FkOgorICAgICAgICBy
ZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywgdW5sb2FkRXZlbnQpOworICAgIGNhc2UgT25XZWJLaXRB
bmltYXRpb25TdGFydDoKKyAgICAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIHdlYmtpdEFu
aW1hdGlvblN0YXJ0RXZlbnQpOworICAgIGNhc2UgT25XZWJLaXRBbmltYXRpb25JdGVyYXRpb246
CisgICAgICAgIHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCB3ZWJraXRBbmltYXRpb25JdGVyYXRp
b25FdmVudCk7CisgICAgY2FzZSBPbldlYktpdEFuaW1hdGlvbkVuZDoKKyAgICAgICAgcmV0dXJu
IGdldExpc3RlbmVyKGV4ZWMsIHdlYmtpdEFuaW1hdGlvbkVuZEV2ZW50KTsKKyAgICBjYXNlIE9u
V2ViS2l0VHJhbnNpdGlvbkVuZDoKKyAgICAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIHdl
YmtpdFRyYW5zaXRpb25FbmRFdmVudCk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCiBKU1ZhbHVlKiBKU0RPTVdpbmRvd0Jh
c2U6OmNoaWxkRnJhbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKQEAgLTYzOCwxMjMgKzYzOCwx
MzkgQEAgYm9vbCBKU0RPTVdpbmRvd0Jhc2U6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3AKIAogdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSogdmFsdWUpCiB7Ci0gIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSBKU0RPTVdpbmRvd0Jhc2VU
YWJsZS5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOwotICBpZiAoZW50cnkpIHsKLSAgICAgaWYg
KGVudHJ5LT5hdHRyaWJ1dGVzICYgRnVuY3Rpb24pIHsKLSAgICAgICBpZiAoYWxsb3dzQWNjZXNz
RnJvbShleGVjKSkKLSAgICAgICAgIEJhc2U6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
KTsKLSAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcyAmIFJl
YWRPbmx5KQotICAgICAgcmV0dXJuOworICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSBKU0RP
TVdpbmRvd0Jhc2VUYWJsZS5lbnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgIGlmIChlbnRy
eSkgeworICAgICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMgJiBGdW5jdGlvbikgeworICAgICAg
ICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgICAgICAgICAgICAgQmFzZTo6
cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcyAmIFJlYWRPbmx5KQorICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgc3dpdGNoIChlbnRyeS0+aW50ZWdlclZhbHVlKSB7Ci0gICAg
Y2FzZSBPbmFib3J0OgotICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAgICAg
IHNldExpc3RlbmVyKGV4ZWMsIGFib3J0RXZlbnQsdmFsdWUpOwotICAgICAgcmV0dXJuOwotICAg
IGNhc2UgT25ibHVyOgotICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAgICAg
IHNldExpc3RlbmVyKGV4ZWMsIGJsdXJFdmVudCx2YWx1ZSk7Ci0gICAgICByZXR1cm47Ci0gICAg
Y2FzZSBPbmNoYW5nZToKLSAgICAgIGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQotICAgICAg
ICBzZXRMaXN0ZW5lcihleGVjLCBjaGFuZ2VFdmVudCx2YWx1ZSk7Ci0gICAgICByZXR1cm47Ci0g
ICAgY2FzZSBPbmNsaWNrOgotICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAg
ICAgIHNldExpc3RlbmVyKGV4ZWMsY2xpY2tFdmVudCx2YWx1ZSk7Ci0gICAgICByZXR1cm47Ci0g
ICAgY2FzZSBPbmRibGNsaWNrOgotICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0g
ICAgICAgIHNldExpc3RlbmVyKGV4ZWMsIGRibGNsaWNrRXZlbnQsdmFsdWUpOwotICAgICAgcmV0
dXJuOwotICAgIGNhc2UgT25lcnJvcjoKLSAgICAgIGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMp
KQotICAgICAgICBzZXRMaXN0ZW5lcihleGVjLCBlcnJvckV2ZW50LCB2YWx1ZSk7Ci0gICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBPbmZvY3VzOgotICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhl
YykpCi0gICAgICAgIHNldExpc3RlbmVyKGV4ZWMsZm9jdXNFdmVudCx2YWx1ZSk7Ci0gICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBPbmtleWRvd246Ci0gICAgICBpZiAoYWxsb3dzQWNjZXNzRnJvbShl
eGVjKSkKLSAgICAgICAgc2V0TGlzdGVuZXIoZXhlYyxrZXlkb3duRXZlbnQsdmFsdWUpOwotICAg
ICAgcmV0dXJuOwotICAgIGNhc2UgT25rZXlwcmVzczoKLSAgICAgIGlmIChhbGxvd3NBY2Nlc3NG
cm9tKGV4ZWMpKQotICAgICAgICBzZXRMaXN0ZW5lcihleGVjLGtleXByZXNzRXZlbnQsdmFsdWUp
OwotICAgICAgcmV0dXJuOwotICAgIGNhc2UgT25rZXl1cDoKLSAgICAgIGlmIChhbGxvd3NBY2Nl
c3NGcm9tKGV4ZWMpKQotICAgICAgICBzZXRMaXN0ZW5lcihleGVjLGtleXVwRXZlbnQsdmFsdWUp
OwotICAgICAgcmV0dXJuOwotICAgIGNhc2UgT25sb2FkOgotICAgICAgaWYgKGFsbG93c0FjY2Vz
c0Zyb20oZXhlYykpCi0gICAgICAgIHNldExpc3RlbmVyKGV4ZWMsbG9hZEV2ZW50LHZhbHVlKTsK
LSAgICAgIHJldHVybjsKLSAgICBjYXNlIE9ubW91c2Vkb3duOgotICAgICAgaWYgKGFsbG93c0Fj
Y2Vzc0Zyb20oZXhlYykpCi0gICAgICAgIHNldExpc3RlbmVyKGV4ZWMsbW91c2Vkb3duRXZlbnQs
dmFsdWUpOwotICAgICAgcmV0dXJuOwotICAgIGNhc2UgT25tb3VzZW1vdmU6Ci0gICAgICBpZiAo
YWxsb3dzQWNjZXNzRnJvbShleGVjKSkKLSAgICAgICAgc2V0TGlzdGVuZXIoZXhlYyxtb3VzZW1v
dmVFdmVudCx2YWx1ZSk7Ci0gICAgICByZXR1cm47Ci0gICAgY2FzZSBPbm1vdXNlb3V0OgotICAg
ICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAgICAgIHNldExpc3RlbmVyKGV4ZWMs
bW91c2VvdXRFdmVudCx2YWx1ZSk7Ci0gICAgICByZXR1cm47Ci0gICAgY2FzZSBPbm1vdXNlb3Zl
cjoKLSAgICAgIGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQotICAgICAgICBzZXRMaXN0ZW5l
cihleGVjLG1vdXNlb3ZlckV2ZW50LHZhbHVlKTsKLSAgICAgIHJldHVybjsKLSAgICBjYXNlIE9u
bW91c2V1cDoKLSAgICAgIGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQotICAgICAgICBzZXRM
aXN0ZW5lcihleGVjLG1vdXNldXBFdmVudCx2YWx1ZSk7Ci0gICAgICByZXR1cm47Ci0gICAgY2Fz
ZSBPbldpbmRvd01vdXNlV2hlZWw6Ci0gICAgICBpZiAoYWxsb3dzQWNjZXNzRnJvbShleGVjKSkK
LSAgICAgICAgc2V0TGlzdGVuZXIoZXhlYywgbW91c2V3aGVlbEV2ZW50LHZhbHVlKTsKLSAgICAg
IHJldHVybjsKLSAgICBjYXNlIE9ucmVzZXQ6Ci0gICAgICBpZiAoYWxsb3dzQWNjZXNzRnJvbShl
eGVjKSkKLSAgICAgICAgc2V0TGlzdGVuZXIoZXhlYyxyZXNldEV2ZW50LHZhbHVlKTsKLSAgICAg
IHJldHVybjsKLSAgICBjYXNlIE9ucmVzaXplOgotICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20o
ZXhlYykpCi0gICAgICAgIHNldExpc3RlbmVyKGV4ZWMscmVzaXplRXZlbnQsdmFsdWUpOwotICAg
ICAgcmV0dXJuOwotICAgIGNhc2UgT25zY3JvbGw6Ci0gICAgICBpZiAoYWxsb3dzQWNjZXNzRnJv
bShleGVjKSkKLSAgICAgICAgc2V0TGlzdGVuZXIoZXhlYyxzY3JvbGxFdmVudCx2YWx1ZSk7Ci0g
ICAgICByZXR1cm47Ci0gICAgY2FzZSBPbnNlYXJjaDoKLSAgICAgICAgaWYgKGFsbG93c0FjY2Vz
c0Zyb20oZXhlYykpCi0gICAgICAgICAgICBzZXRMaXN0ZW5lcihleGVjLHNlYXJjaEV2ZW50LHZh
bHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgT25zZWxlY3Q6Ci0gICAgICBpZiAoYWxs
b3dzQWNjZXNzRnJvbShleGVjKSkKLSAgICAgICAgc2V0TGlzdGVuZXIoZXhlYyxzZWxlY3RFdmVu
dCx2YWx1ZSk7Ci0gICAgICByZXR1cm47Ci0gICAgY2FzZSBPbnN1Ym1pdDoKLSAgICAgIGlmIChh
bGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQotICAgICAgICBzZXRMaXN0ZW5lcihleGVjLHN1Ym1pdEV2
ZW50LHZhbHVlKTsKLSAgICAgIHJldHVybjsKLSAgICBjYXNlIE9uYmVmb3JldW5sb2FkOgotICAg
ICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCi0gICAgICAgIHNldExpc3RlbmVyKGV4ZWMs
IGJlZm9yZXVubG9hZEV2ZW50LCB2YWx1ZSk7Ci0gICAgICByZXR1cm47Ci0gICAgY2FzZSBPbnVu
bG9hZDoKLSAgICAgIGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQotICAgICAgICBzZXRMaXN0
ZW5lcihleGVjLCB1bmxvYWRFdmVudCwgdmFsdWUpOwotICAgICAgcmV0dXJuOwotICAgIGRlZmF1
bHQ6Ci0gICAgICBicmVhazsKKyAgICAgICAgc3dpdGNoIChlbnRyeS0+aW50ZWdlclZhbHVlKSB7
CisgICAgICAgIGNhc2UgT25hYm9ydDoKKyAgICAgICAgICAgIGlmIChhbGxvd3NBY2Nlc3NGcm9t
KGV4ZWMpKQorICAgICAgICAgICAgICAgIHNldExpc3RlbmVyKGV4ZWMsIGFib3J0RXZlbnQsIHZh
bHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBPbmJsdXI6CisgICAgICAg
ICAgICBpZiAoYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKKyAgICAgICAgICAgICAgICBzZXRMaXN0
ZW5lcihleGVjLCBibHVyRXZlbnQsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgY2FzZSBPbmNoYW5nZToKKyAgICAgICAgICAgIGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMp
KQorICAgICAgICAgICAgICAgIHNldExpc3RlbmVyKGV4ZWMsIGNoYW5nZUV2ZW50LCB2YWx1ZSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgT25jbGljazoKKyAgICAgICAgICAg
IGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQorICAgICAgICAgICAgICAgIHNldExpc3RlbmVy
KGV4ZWMsIGNsaWNrRXZlbnQsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
Y2FzZSBPbmRibGNsaWNrOgorICAgICAgICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykp
CisgICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIoZXhlYywgZGJsY2xpY2tFdmVudCwgdmFsdWUp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIE9uZXJyb3I6CisgICAgICAgICAg
ICBpZiAoYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKKyAgICAgICAgICAgICAgICBzZXRMaXN0ZW5l
cihleGVjLCBlcnJvckV2ZW50LCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IGNhc2UgT25mb2N1czoKKyAgICAgICAgICAgIGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQor
ICAgICAgICAgICAgICAgIHNldExpc3RlbmVyKGV4ZWMsIGZvY3VzRXZlbnQsIHZhbHVlKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBPbmtleWRvd246CisgICAgICAgICAgICBp
ZiAoYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKKyAgICAgICAgICAgICAgICBzZXRMaXN0ZW5lcihl
eGVjLCBrZXlkb3duRXZlbnQsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
Y2FzZSBPbmtleXByZXNzOgorICAgICAgICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykp
CisgICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIoZXhlYywga2V5cHJlc3NFdmVudCwgdmFsdWUp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIE9ua2V5dXA6CisgICAgICAgICAg
ICBpZiAoYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKKyAgICAgICAgICAgICAgICBzZXRMaXN0ZW5l
cihleGVjLCBrZXl1cEV2ZW50LCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IGNhc2UgT25sb2FkOgorICAgICAgICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisg
ICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIoZXhlYywgbG9hZEV2ZW50LCB2YWx1ZSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgT25tb3VzZWRvd246CisgICAgICAgICAgICBp
ZiAoYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKKyAgICAgICAgICAgICAgICBzZXRMaXN0ZW5lcihl
eGVjLCBtb3VzZWRvd25FdmVudCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICBjYXNlIE9ubW91c2Vtb3ZlOgorICAgICAgICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhl
YykpCisgICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIoZXhlYywgbW91c2Vtb3ZlRXZlbnQsIHZh
bHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBPbm1vdXNlb3V0OgorICAg
ICAgICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgICAgICAgICAgICAgc2V0
TGlzdGVuZXIoZXhlYywgbW91c2VvdXRFdmVudCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICBjYXNlIE9ubW91c2VvdmVyOgorICAgICAgICAgICAgaWYgKGFsbG93c0FjY2Vz
c0Zyb20oZXhlYykpCisgICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIoZXhlYywgbW91c2VvdmVy
RXZlbnQsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBPbm1vdXNl
dXA6CisgICAgICAgICAgICBpZiAoYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKKyAgICAgICAgICAg
ICAgICBzZXRMaXN0ZW5lcihleGVjLCBtb3VzZXVwRXZlbnQsIHZhbHVlKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgY2FzZSBPbldpbmRvd01vdXNlV2hlZWw6CisgICAgICAgICAgICBp
ZiAoYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKKyAgICAgICAgICAgICAgICBzZXRMaXN0ZW5lcihl
eGVjLCBtb3VzZXdoZWVsRXZlbnQsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgY2FzZSBPbnJlc2V0OgorICAgICAgICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykp
CisgICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIoZXhlYywgcmVzZXRFdmVudCwgdmFsdWUpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIE9ucmVzaXplOgorICAgICAgICAgICAg
aWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIo
ZXhlYywgcmVzaXplRXZlbnQsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
Y2FzZSBPbnNjcm9sbDoKKyAgICAgICAgICAgIGlmIChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQor
ICAgICAgICAgICAgICAgIHNldExpc3RlbmVyKGV4ZWMsIHNjcm9sbEV2ZW50LCB2YWx1ZSk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNhc2UgT25zZWFyY2g6CisgICAgICAgICAgICBp
ZiAoYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKKyAgICAgICAgICAgICAgICBzZXRMaXN0ZW5lcihl
eGVjLCBzZWFyY2hFdmVudCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBj
YXNlIE9uc2VsZWN0OgorICAgICAgICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisg
ICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIoZXhlYywgc2VsZWN0RXZlbnQsIHZhbHVlKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgY2FzZSBPbnN1Ym1pdDoKKyAgICAgICAgICAgIGlm
IChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQorICAgICAgICAgICAgICAgIHNldExpc3RlbmVyKGV4
ZWMsIHN1Ym1pdEV2ZW50LCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNh
c2UgT25iZWZvcmV1bmxvYWQ6CisgICAgICAgICAgICBpZiAoYWxsb3dzQWNjZXNzRnJvbShleGVj
KSkKKyAgICAgICAgICAgICAgICBzZXRMaXN0ZW5lcihleGVjLCBiZWZvcmV1bmxvYWRFdmVudCwg
dmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBjYXNlIE9udW5sb2FkOgorICAg
ICAgICAgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgICAgICAgICAgICAgc2V0
TGlzdGVuZXIoZXhlYywgdW5sb2FkRXZlbnQsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgY2FzZSBPbldlYktpdEFuaW1hdGlvblN0YXJ0OgorICAgICAgICAgICAgaWYgKGFs
bG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIoZXhlYywg
d2Via2l0QW5pbWF0aW9uU3RhcnRFdmVudCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBjYXNlIE9uV2ViS2l0QW5pbWF0aW9uSXRlcmF0aW9uOgorICAgICAgICAgICAgaWYg
KGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIoZXhl
Yywgd2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uRXZlbnQsIHZhbHVlKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgY2FzZSBPbldlYktpdEFuaW1hdGlvbkVuZDoKKyAgICAgICAgICAgIGlm
IChhbGxvd3NBY2Nlc3NGcm9tKGV4ZWMpKQorICAgICAgICAgICAgICAgIHNldExpc3RlbmVyKGV4
ZWMsIHdlYmtpdEFuaW1hdGlvbkVuZEV2ZW50LCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGNhc2UgT25XZWJLaXRUcmFuc2l0aW9uRW5kOgorICAgICAgICAgICAgaWYgKGFs
bG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgICAgICAgICAgICAgc2V0TGlzdGVuZXIoZXhlYywg
d2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50LCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgIH0KLSAg
fQotICBpZiAoYWxsb3dzQWNjZXNzRnJvbShleGVjKSkKLSAgICBCYXNlOjpwdXQoZXhlYywgcHJv
cGVydHlOYW1lLCB2YWx1ZSk7CisgICAgaWYgKGFsbG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAg
ICAgIEJhc2U6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKIH0KIAogU3RyaW5nIEpT
RE9NV2luZG93QmFzZTo6Y3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoY29uc3QgSlNHbG9i
YWxPYmplY3QqIG90aGVyKSBjb25zdAo=
</data>
<flag name="review"
          id="10274"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>