<?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>215938</bug_id>
          
          <creation_ts>2020-08-28 11:29:58 -0700</creation_ts>
          <short_desc>[macOS] Handle events for date inputs with editable components</short_desc>
          <delta_ts>2020-09-01 08:45:17 -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>Forms</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>215155</dependson>
          <blocked>119175</blocked>
    
    <blocked>216004</blocked>
    
    <blocked>216005</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>mifenton</cc>
    
    <cc>m.kurz+webkitbugs</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1683716</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-28 11:29:58 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684128</commentid>
    <comment_count>1</comment_count>
      <attachid>407602</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-31 08:14:19 -0700</bug_when>
    <thetext>Created attachment 407602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684132</commentid>
    <comment_count>2</comment_count>
      <attachid>407603</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-31 08:25:26 -0700</bug_when>
    <thetext>Created attachment 407603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684157</commentid>
    <comment_count>3</comment_count>
      <attachid>407607</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-31 09:49:19 -0700</bug_when>
    <thetext>Created attachment 407607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684161</commentid>
    <comment_count>4</comment_count>
      <attachid>407603</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-31 10:05:16 -0700</bug_when>
    <thetext>Comment on attachment 407603
Patch

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

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:257
&gt; +    if (!m_dateTimeEditElement) {
&gt; +        InputType::handleFocusEvent(oldFocusedNode, direction);
&gt; +    } else if (direction == FocusDirectionBackward) {

WebKit coding style doesn’t use braces in a single-line if statement body like this. Or could do this in early return style instead of using else.

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:259
&gt; +        if (auto* page = element()-&gt;document().page())
&gt; +            page-&gt;focusController().advanceFocus(direction, 0);

I’m confused about this code. Why do we need this here explicitly and don’t instead call through to some other code that does this? This doesn’t seem like behavior that’s specific to this particular element and input type.

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h:67
&gt; +    void editControlValueChanged() final;

This is a confusing function name. It sounds like something that would return a boolean to tell you if the edit control value changed. This is the reason we use names like &quot;didBlur&quot;. This one could use a name like &quot;didChangeValue&quot; to be less ambiguous.

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h:80
&gt; +    void handleFocusEvent(Node* oldFocusedNode, FocusDirection) override;

I’d think this should be final, not override.

&gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h:84
&gt; +    bool hasCustomFocusLogic() const override;

I’d think this should be final, not override.

&gt; Source/WebCore/html/DateTimeFieldsState.h:33
&gt; +class DateTimeFieldsState {

Can this just be a struct containing three optional data members instead of a class with lots of functions?

&gt; Source/WebCore/html/DateTimeFieldsState.h:35
&gt; +    static const unsigned emptyValue;

Why? Can we use Optional&lt;unsigned&gt; instead for clarity? Or if the reason we don’t want to use Optional is that we want to save space, then could we use uint8_t instead of uint32_t?

&gt; Source/WebCore/html/DateTimeFieldsState.h:41
&gt; +    unsigned dayOfMonth() const { return m_dayOfMonth; }
&gt; +    unsigned month() const { return m_month; }
&gt; +    unsigned year() const { return m_year; }

Should these assert that the values are not &quot;emptyValue&quot;?

&gt; Source/WebCore/html/DateTimeFieldsState.h:49
&gt; +    void setDayOfMonth(unsigned dayOfMonth) { m_dayOfMonth = dayOfMonth; }
&gt; +    void setMonth(unsigned month) { m_month = month; }
&gt; +    void setYear(unsigned year) { m_year = year; }

Are callers allowed to pass &quot;emptyValue&quot;?

&gt; Source/WebCore/html/DateTimeFieldsState.h:54
&gt; +    unsigned m_year;
&gt; +    unsigned m_month;
&gt; +    unsigned m_dayOfMonth;

I suggest initializing the values here, not in a constructor.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:164
&gt; +    for (size_t fieldIndex = 0; fieldIndex &lt; m_fields.size(); ++fieldIndex) {
&gt; +        if (m_fields[fieldIndex].ptr() == &amp;field)
&gt; +            return fieldIndex;
&gt; +    }
&gt; +    return invalidFieldIndex;

I suggest using Vector::findMatching instead of writing the loop.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:208
&gt; +    bool notifyOwner = true;
&gt; +    for (auto&amp; field : m_fields) {
&gt; +        if (field.ptr() == newFocusedElement.get()) {
&gt; +            notifyOwner = false;
&gt; +            break;
&gt; +        }
&gt; +    }

This would be nicer if it used Vector::contains (or probably needs to use Vector::findMatching because there is no Vector::containsMatching yet).

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:224
&gt; +    for (size_t fieldIndex = startIndex; fieldIndex &lt; m_fields.size(); ++fieldIndex) {

Seems like fieldIndex is a really long name for such a super-local thing. Typically we use &quot;I&quot; for things like this, one of the few exceptions to &quot;use words for variable names&quot; style in WebKit.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:240
&gt; +    const size_t startFieldIndex = fieldIndexOf(field);

The const here doesn’t add much. We normally don’t use const just because a local variable isn’t changed, especially in such a short function.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:248
&gt; +    const size_t startFieldIndex = fieldIndexOf(field);

Ditto.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.h:75
&gt; +    static constexpr size_t invalidFieldIndex = static_cast&lt;size_t&gt;(-1);

Can we use an Optional&lt;size_t&gt; instead of using a special value to express &quot;not found&quot;? Or you could use the same notFound that Vector uses for its find operation (I plan to change that to an Optional at some point).

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:87
&gt; +    if (key == &quot;Left&quot;) {
&gt; +        if (m_fieldOwner &amp;&amp; m_fieldOwner-&gt;focusOnPreviousField(*this)) {
&gt; +            keyboardEvent.setDefaultHandled();
&gt; +            return;
&gt; +        }
&gt; +    }

I suggest using &amp;&amp; here unless you want to move the return out of the inner if statement.

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:94
&gt; +    if (key == &quot;Right&quot;) {
&gt; +        if (m_fieldOwner &amp;&amp; m_fieldOwner-&gt;focusOnNextField(*this)) {
&gt; +            keyboardEvent.setDefaultHandled();
&gt; +            return;
&gt; +        }
&gt; +    }

Ditto.

&gt; Source/WebCore/html/shadow/DateTimeFieldElement.h:43
&gt; +    enum EventBehavior { DispatchNoEvent, DispatchInputAndChangeEvent };

I suggest renaming to DispatchInputAndChangeEvents. Also would be good to base this enumeration on bool.

    enum EventBehavior : bool { DispatchNoEvents, DispatchInputAndChangeEvents };

&gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp:43
&gt; +    return std::min(std::max(value, minimum), maximum);

Could use std::clamp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684206</commentid>
    <comment_count>5</comment_count>
      <attachid>407616</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-31 12:34:30 -0700</bug_when>
    <thetext>Created attachment 407616
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684222</commentid>
    <comment_count>6</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-08-31 12:57:45 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 407603 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=407603&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:257
&gt; &gt; +    if (!m_dateTimeEditElement) {
&gt; &gt; +        InputType::handleFocusEvent(oldFocusedNode, direction);
&gt; &gt; +    } else if (direction == FocusDirectionBackward) {
&gt; 
&gt; WebKit coding style doesn’t use braces in a single-line if statement body
&gt; like this. Or could do this in early return style instead of using else.

Changed to an early return for readability.
 
&gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp:259
&gt; &gt; +        if (auto* page = element()-&gt;document().page())
&gt; &gt; +            page-&gt;focusController().advanceFocus(direction, 0);
&gt; 
&gt; I’m confused about this code. Why do we need this here explicitly and don’t
&gt; instead call through to some other code that does this? This doesn’t seem
&gt; like behavior that’s specific to this particular element and input type.

I&apos;ve added a comment to explain, but will also explain here.

Consider the following list of focusable elements, with their focusable children:

- &lt;input type=text id=&quot;before&quot;&gt;
- &lt;input type=date&gt;
    - &lt;datetime-month-field&gt;
    - &lt;datetime-day-field&gt;
    - &lt;datetime-year-field&gt;
- &lt;input type=text id=&quot;after&quot;&gt;

Suppose the &lt;datetime-month-field&gt; has focus. Upon a Shift+Tab, the &lt;input type=date&gt; &quot;receives focus&quot; (as it is the previous focusable element), and the handleFocusEvent method is called with FocusDirectionBackward. However, backwards focus from &lt;datetime-month-field&gt; should focus the &quot;before&quot; element. Consequently, an additional call to advanceFocus is made. Without the added logic, two Shift+Tabs would be required to focus the &quot;before&quot; element if &lt;datetime-month-field&gt; is focused.

&gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h:67
&gt; &gt; +    void editControlValueChanged() final;
&gt; 
&gt; This is a confusing function name. It sounds like something that would
&gt; return a boolean to tell you if the edit control value changed. This is the
&gt; reason we use names like &quot;didBlur&quot;. This one could use a name like
&gt; &quot;didChangeValue&quot; to be less ambiguous.

Renamed to &quot;didChangeValueFromControl&quot;.
 
&gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h:80
&gt; &gt; +    void handleFocusEvent(Node* oldFocusedNode, FocusDirection) override;
&gt; 
&gt; I’d think this should be final, not override.

Changed to final.
 
&gt; &gt; Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.h:84
&gt; &gt; +    bool hasCustomFocusLogic() const override;
&gt; 
&gt; I’d think this should be final, not override.

Changed to final.
 
&gt; &gt; Source/WebCore/html/DateTimeFieldsState.h:33
&gt; &gt; +class DateTimeFieldsState {
&gt; 
&gt; Can this just be a struct containing three optional data members instead of
&gt; a class with lots of functions?

Changed to a struct with optional data members. Note that this struct will grow in the near future, as support for more date/time inputs is added.
 
&gt; &gt; Source/WebCore/html/DateTimeFieldsState.h:35
&gt; &gt; +    static const unsigned emptyValue;
&gt; 
&gt; Why? Can we use Optional&lt;unsigned&gt; instead for clarity? Or if the reason we
&gt; don’t want to use Optional is that we want to save space, then could we use
&gt; uint8_t instead of uint32_t?

The members are now Optional&lt;unsigned&gt;.
 
&gt; &gt; Source/WebCore/html/DateTimeFieldsState.h:41
&gt; &gt; +    unsigned dayOfMonth() const { return m_dayOfMonth; }
&gt; &gt; +    unsigned month() const { return m_month; }
&gt; &gt; +    unsigned year() const { return m_year; }
&gt; 
&gt; Should these assert that the values are not &quot;emptyValue&quot;?

They probably should have, but I&apos;ve removed these methods with the change to a struct of Optionals.
 
&gt; &gt; Source/WebCore/html/DateTimeFieldsState.h:49
&gt; &gt; +    void setDayOfMonth(unsigned dayOfMonth) { m_dayOfMonth = dayOfMonth; }
&gt; &gt; +    void setMonth(unsigned month) { m_month = month; }
&gt; &gt; +    void setYear(unsigned year) { m_year = year; }
&gt; 
&gt; Are callers allowed to pass &quot;emptyValue&quot;?

They weren&apos;t. However, the methods have now been removed with the change to a struct of Optionals.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:164
&gt; &gt; +    for (size_t fieldIndex = 0; fieldIndex &lt; m_fields.size(); ++fieldIndex) {
&gt; &gt; +        if (m_fields[fieldIndex].ptr() == &amp;field)
&gt; &gt; +            return fieldIndex;
&gt; &gt; +    }
&gt; &gt; +    return invalidFieldIndex;
&gt; 
&gt; I suggest using Vector::findMatching instead of writing the loop.

Done.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:208
&gt; &gt; +    bool notifyOwner = true;
&gt; &gt; +    for (auto&amp; field : m_fields) {
&gt; &gt; +        if (field.ptr() == newFocusedElement.get()) {
&gt; &gt; +            notifyOwner = false;
&gt; &gt; +            break;
&gt; &gt; +        }
&gt; &gt; +    }
&gt; 
&gt; This would be nicer if it used Vector::contains (or probably needs to use
&gt; Vector::findMatching because there is no Vector::containsMatching yet).

Used Vector::findMatching.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:224
&gt; &gt; +    for (size_t fieldIndex = startIndex; fieldIndex &lt; m_fields.size(); ++fieldIndex) {
&gt; 
&gt; Seems like fieldIndex is a really long name for such a super-local thing.
&gt; Typically we use &quot;I&quot; for things like this, one of the few exceptions to &quot;use
&gt; words for variable names&quot; style in WebKit.

Used &quot;i&quot;.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:240
&gt; &gt; +    const size_t startFieldIndex = fieldIndexOf(field);
&gt; 
&gt; The const here doesn’t add much. We normally don’t use const just because a
&gt; local variable isn’t changed, especially in such a short function.

Removed.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:248
&gt; &gt; +    const size_t startFieldIndex = fieldIndexOf(field);
&gt; 
&gt; Ditto.

Removed.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeEditElement.h:75
&gt; &gt; +    static constexpr size_t invalidFieldIndex = static_cast&lt;size_t&gt;(-1);
&gt; 
&gt; Can we use an Optional&lt;size_t&gt; instead of using a special value to express
&gt; &quot;not found&quot;? Or you could use the same notFound that Vector uses for its
&gt; find operation (I plan to change that to an Optional at some point).

I used notFound, since this was only returned when using findMatching.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:87
&gt; &gt; +    if (key == &quot;Left&quot;) {
&gt; &gt; +        if (m_fieldOwner &amp;&amp; m_fieldOwner-&gt;focusOnPreviousField(*this)) {
&gt; &gt; +            keyboardEvent.setDefaultHandled();
&gt; &gt; +            return;
&gt; &gt; +        }
&gt; &gt; +    }
&gt; 
&gt; I suggest using &amp;&amp; here unless you want to move the return out of the inner
&gt; if statement.

Done.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeFieldElement.cpp:94
&gt; &gt; +    if (key == &quot;Right&quot;) {
&gt; &gt; +        if (m_fieldOwner &amp;&amp; m_fieldOwner-&gt;focusOnNextField(*this)) {
&gt; &gt; +            keyboardEvent.setDefaultHandled();
&gt; &gt; +            return;
&gt; &gt; +        }
&gt; &gt; +    }
&gt; 
&gt; Ditto.

Done.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeFieldElement.h:43
&gt; &gt; +    enum EventBehavior { DispatchNoEvent, DispatchInputAndChangeEvent };
&gt; 
&gt; I suggest renaming to DispatchInputAndChangeEvents. Also would be good to
&gt; base this enumeration on bool.
&gt; 
&gt;     enum EventBehavior : bool { DispatchNoEvents,
&gt; DispatchInputAndChangeEvents };

Done.
 
&gt; &gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp:43
&gt; &gt; +    return std::min(std::max(value, minimum), maximum);
&gt; 
&gt; Could use std::clamp.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684474</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-01 08:44:14 -0700</bug_when>
    <thetext>Committed r266396: &lt;https://trac.webkit.org/changeset/266396&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407616.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684475</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-01 08:45:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/68145864&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407602</attachid>
            <date>2020-08-31 08:14:19 -0700</date>
            <delta_ts>2020-08-31 08:25:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215938-20200831111417.patch</filename>
            <type>text/plain</type>
            <size>83351</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWE5YmI4NjY2MGUyNWQy
OGFlNTgwMTk4NzJmNjE0OGFkMGQ3MjMwZC4uOGIzOTNhMjg2NDhhNWU1M2Q1YWJkZWJhMjE1ZWNh
MWQyNjk0YzUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MyBAQAorMjAyMC0wOC0yOCAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBIYW5k
bGUgZXZlbnRzIGZvciBkYXRlIGlucHV0cyB3aXRoIGVkaXRhYmxlIGNvbXBvbmVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTkzOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBhY3R1YWwgZWRpdGFiaWxpdHkgdG8gZGF0ZSBpbnB1dHMgd2l0aCBlZGl0YWJsZQorICAgICAg
ICBjb21wb25lbnRzLCBhcyB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIG5vdyByZXNwb25kIHRv
IGtleWJvYXJkCisgICAgICAgIGV2ZW50cy4gTnVtYmVyIGtleXMgY2FuIGJlIHVzZWQgdG8gZW50
ZXIgYSBkYXksIG1vbnRoLCBvciB5ZWFyLiBUaGUKKyAgICAgICAgbGVmdCBhbmQgcmlnaHQgYXJy
b3cga2V5cywgYXMgd2VsbCBhcyB0aGUgdGFiIGtleSwgY2FuIGJlIHVzZWQgdG8KKyAgICAgICAg
dHJhdmVyc2UgdGhlIHZhcmlvdXMgY29tcG9uZW50cy4gRmluYWxseSwgdGhlIGJhY2tzcGFjZSBh
bmQgZGVsZXRlIGtleXMKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gY2xlYXIgdGhlIHZhbHVlIG9m
IGEgcGFydGljdWxhciBjb21wb25lbnQuCisKKyAgICAgICAgVG8gbWF0Y2ggdGhlIGJlaGF2aW9y
IG9mIE5TRGF0ZVBpY2tlciwgYSB0eXBlYWhlYWQgYnVmZmVyIHdpdGggYQorICAgICAgICB0aW1l
b3V0IGlzIHVzZWQgd2hlbiBlZGl0aW5nLiBGb3IgZXhhbXBsZSwgZW50ZXJpbmcgIjIiIGFuZCAi
MyIgaW4KKyAgICAgICAgaW1tZWRpYXRlIHN1Y2Nlc3Npb24gd2lsbCByZXN1bHQgaW4gYSB5ZWFy
IG9mICIwMDIzIiwgYnV0IGEgb25lIHNlY29uZAorICAgICAgICBnYXAgYmV0d2VlbiB0aGUgdHdv
IGNoYXJhY3RlcnMgd2lsbCByZXN1bHQgaW4gYSB5ZWFyIG9mICIwMDAzIi4KKworICAgICAgICBG
aW5hbGx5LCB0aGlzIHBhdGNoIGVuc3VyZXMgdGhhdCAiZm9jdXMiLCAiYmx1ciIsICJpbnB1dCIs
IGFuZCAiY2hhbmdlIgorICAgICAgICBldmVudHMgYXJlIGRpc3BhdGNoZWQgYXBwcm9wcmlhdGVs
eS4KKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9u
ZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRzLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMv
ZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWtleWJvYXJkLWV2ZW50cy5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFi
bGUtY29tcG9uZW50cy1tb3VzZS1ldmVudHMuaHRtbAorCisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmVsZW1lbnREaWRC
bHVyKToKKworICAgICAgICBPbmx5IGNsb3NlIHRoZSBhdHRhY2hlZCBwaWNrZXIgaWYgZWRpdGFi
bGUgY29tcG9uZW50cyBkbyBub3QgZXhpc3QsIGFzCisgICAgICAgIHRoZSBwaWNrZXIgaXMgYWxy
ZWFkeSBjbG9zZWQgYnkgZGlkQmx1ckZyb21Db250cm9sLgorCisgICAgICAgIChXZWJDb3JlOjpC
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlRm9jdXNFdmVudCk6CisK
KyAgICAgICAgT3ZlcnJpZGUgdGhpcyBtZXRob2Qgc28gdGhhdCBhbnkgYXR0ZW1wdCB0byBmb2N1
cyB0aGUgZGF0ZSBpbnB1dAorICAgICAgICBlbGVtZW50IHdpbGwgZm9jdXMgdGhlIGFwcHJvcHJp
YXRlIGVkaXRhYmxlIGNvbXBvbmVudC4KKworICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJP
bmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMgY29uc3QpOgorCisg
ICAgICAgIE92ZXJyaWRlIHRoaXMgbWV0aG9kIGFuZCByZXR1cm4gZmFsc2UgaWYgZWRpdGFibGUg
Y29tcG9uZW50cyBhcmUKKyAgICAgICAgcHJlc2VudCBzbyB0aGF0IHRoZSBlbGVtZW50IGNhbiBi
ZSBhIEZvY3VzU2NvcGVPd25lci4gVGhpcyBpcyBuZWVkZWQgdG8KKyAgICAgICAgYmUgYWJsZSB0
byB0YWIgdGhyb3VnaCBpbmRpdmlkdWFsIGNvbXBvbmVudHMuCisKKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRCbHVyRnJvbUNvbnRyb2wp
OgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
Ojppc0tleWJvYXJkRm9jdXNhYmxlIGNvbnN0KTogRGF0ZSBpbnB1dHMgc2hvdWxkIGJlIGtleWJv
YXJkIGZvY3VzYWJsZSBvbiBhbGwgcGxhdGZvcm1zLgorICAgICAgICAqIGh0bWwvQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUg
Y29uc3QpOiBTZXJpYWxpemUgdGhlIHN0YXRlIG9mIHRoZSBlZGl0IGNvbnRyb2wgaW50byBhIHZh
bGlkIEhUTUwgZGF0ZSBzdHJpbmcuCisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6Cisg
ICAgICAgICogaHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmNwcDogQWRkZWQuCisKKyAgICAgICAg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSBpcyB1c2VkIHRvIHNlcmlhbGl6ZSBhbmQgZGVzZXJpYWxpemUg
dGhlIGNvbnRlbnRzIG9mCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQuIEluIHRoZSBmdXR1
cmUsIHRoaXMgY2xhc3Mgd2lsbCBhbHNvIGJlIHVzZWQgdG8KKyAgICAgICAgc2F2ZSBmb3JtIHN0
YXRlIG9uIGZvcndhcmQvYmFja3dhcmQgbmF2aWdhdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZSk6CisgICAgICAgICogaHRt
bC9EYXRlVGltZUZpZWxkc1N0YXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6ZGF5T2ZNb250aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUZpZWxkc1N0YXRlOjptb250aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUZpZWxkc1N0YXRlOjp5ZWFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmll
bGRzU3RhdGU6Omhhc0RheU9mTW9udGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6aGFzTW9udGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6aGFzWWVhciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUZpZWxkc1N0YXRlOjpzZXREYXlPZk1vbnRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RmllbGRzU3RhdGU6OnNldE1vbnRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRz
U3RhdGU6OnNldFllYXIpOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpmb3JtYXREYXRl
VGltZUZpZWxkc1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9UaW1lSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVU
aW1lRmllbGRzU3RhdGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5oOgor
ICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWVr
SW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBo
dG1sL1dlZWtJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxk
SW5kZXhPZiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpi
bHVyRnJvbUZpZWxkKToKKworICAgICAgICBJZiBhIGZpZWxkIGlzIGJsdXJyZWQsIGVuc3VyZSB0
aGUgb3duZXIgaXMgbm90aWZpZWQgaWYgbm9uZSBvZiB0aGUKKyAgICAgICAgb3RoZXIgZmllbGRz
IGFyZSBmb2N1c2VkLgorCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpm
aWVsZFZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50
Ojpmb2N1c09uTmV4dEZvY3VzYWJsZUZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZvY3VzQnlPd25lcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZvY3VzT25QcmV2aW91c0ZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRWRpdEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OnZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlIGNvbnN0KToKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRpZEJsdXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZpc2libGVWYWx1ZSk6IEFk
ZCBFdmVudEJlaGF2aW9yIHBhcmFtZXRlciB0byBkaXNwYXRjaCAiaW5wdXQiIGFuZCAiY2hhbmdl
IiBldmVudHMgYWNjb3JkaW5nbHkuCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OkRhdGVUaW1l
RGF5RmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVt
ZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1l
RmllbGRzU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmll
bGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVU
aW1lRmllbGRzU3RhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50cy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJh
bmdlOjpjbGFtcFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6UmFuZ2U6OmlzSW5SYW5nZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmZvcm1h
dFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudDo6c2V0RW1wdHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmRpZEJsdXIpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZTo6UmFuZ2UpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpzZXRWYWx1
ZUFzSW50ZWdlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGlt
ZVN5bWJvbGljRmllbGRFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vRGF0ZUNvbXBvbmVu
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHM6OnBhcnNlWWVhcik6Cisg
ICAgICAgIChXZWJDb3JlOjp3aXRoaW5IVE1MRGF0ZUxpbWl0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlQ29tcG9uZW50czo6cGFyc2VXZWVrKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVDb21w
b25lbnRzOjpzZXRNb250aHNTaW5jZUVwb2NoKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVDb21w
b25lbnRzOjpzZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yV2Vlayk6CisgICAgICAgICogcGxh
dGZvcm0vRGF0ZUNvbXBvbmVudHMuaDogUGFydGlhbCByZXZlcnQgb2YgY2hhbmdlcyBtYWRlIGlu
IHIyNjUxMjYsIHRvIGVuc3VyZSB0aGUgbWluaW11bVllYXIgYW5kIG1heGltdW1ZZWFyIGFyZSBh
Y2Nlc3NpYmxlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHM6Om1pbmltdW1ZZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVDb21wb25lbnRzOjptYXhpbXVtWWVhcik6CisKIDIw
MjAtMDgtMjUgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFttYWNPU10gRGF0ZSBpbnB1dHMgc2hvdWxkIGNvbnRhaW4gZWRpdGFibGUgY29tcG9uZW50cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA0MTA5ODZhODc0ZmM1NzliNjZkZDhiZWJiNGMwOGZlNTBmNDJlMWIy
Li4yOTk1YjM3MjE1N2MxYTYzOGZjYWEyNGFhY2Y3ODVmNDk4MzA4ZmQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTA3NSw2ICsxMDc1LDcgQEAgaHRtbC9ET01Ub2tlbkxpc3QuY3BwCiBodG1sL0RPTVVS
TC5jcHAKIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHAKIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZS5jcHAKK2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAKIGh0bWwvRGlyZWN0b3J5RmlsZUxp
c3RDcmVhdG9yLmNwcAogaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKIGh0bWwvRW50ZXJLZXlIaW50
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDNkMjBlOTE3MTM2OGEzYWE2M2ZkN2NhODM4YjgzYWU5NGUzMzA0NzEuLjViNTU2
M2ZmNzE4ZmEwZGM0NzI3NzUwMTZkMmU5NzA0ODZmYzdiNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwNzQsNiArNTA3NCw3
IEBACiAJCUU0RjlFRUYzMTU2REEwMDcwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RjlFRUYxMTU2
RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNTE2Njk5MTIwRkY5OTE4MDA5RDJDMjcg
LyogTGlzdEJ1dHRvbkFycm93QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTUxNjY5OEYyMEZGOTkxNjAwOUQyQzI3IC8qIExpc3RCdXR0b25B
cnJvd0AyeC5wbmcgKi87IH07CiAJCUU1MTc2NzAzMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlz
dFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTUxNzY3MDIyMEI4OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3VnZ2Vz
dGlvbkluZm9ybWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJRTUxRDZBMUYyNEUxRTI1NTAwODkxQ0ZBIC8qIERhdGVUaW1lRmllbGRzU3Rh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MUQ2
QTFEMjRFMUUyNTUwMDg5MUNGQSAvKiBEYXRlVGltZUZpZWxkc1N0YXRlLmggKi87IH07CiAJCUU1
MkNGNTREMjBBMjY4QUMwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTJDRjU0QzIwQTI2
OEFDMDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU1MkNGNTRGMjBBMzVBMjgwMERB
REEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTRFMjBBMzVBMjgwMERBREEyNyAvKiBEYXRh
TGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlFNTJFRkRGNDIxMTI4NzVBMDBBRDI4MkEgLyogSW5wdXRNb2RlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTJFRkRGMjIx
MTI4NzVBMDBBRDI4MkEgLyogSW5wdXRNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1OTIxLDYgKzE1OTIyLDggQEAKIAkJRTUxNjY5OEYy
MEZGOTkxNjAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0AyeC5wbmcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiTGlz
dEJ1dHRvbkFycm93QDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MTc2
NzAyMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNTFBODFERTE3Mjk4RDc3MDBCRkNBNjEgLyogSlNQZXJmb3Jt
YW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlcmZvcm1h
bmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUxRDZBMUQyNEUxRTI1NTAw
ODkxQ0ZBIC8qIERhdGVUaW1lRmllbGRzU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0ZVRpbWVG
aWVsZHNTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTFENkExRTI0RTFF
MjU1MDA4OTFDRkEgLyogRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEYXRlVGltZUZpZWxkc1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTUyNkFGM0UxNzI3RjhGMjAwRTQxNzgxIC8qIFBlcmZvcm1hbmNlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTUyQ0Y1NEMyMEEyNjhBQzAwREFEQTI3IC8qIERhdGFMaXN0U3VnZ2Vz
dGlvbnNDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU0RTIwQTM1QTI4MDBEQURBMjcg
LyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFMaXN0U3Vn
Z2VzdGlvblBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI1NzAsNiAr
MjI1NzMsOCBAQAogCQkJCUU1MTc2NzAyMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dl
c3Rpb25JbmZvcm1hdGlvbi5oICovLAogCQkJCUY1NUIzRDgxMTI1MUYxMkQwMDNFRjI2OSAvKiBE
YXRlSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q4MjEyNTFGMTJEMDAzRUYyNjkgLyogRGF0
ZUlucHV0VHlwZS5oICovLAorCQkJCUU1MUQ2QTFFMjRFMUUyNTUwMDg5MUNGQSAvKiBEYXRlVGlt
ZUZpZWxkc1N0YXRlLmNwcCAqLywKKwkJCQlFNTFENkExRDI0RTFFMjU1MDA4OTFDRkEgLyogRGF0
ZVRpbWVGaWVsZHNTdGF0ZS5oICovLAogCQkJCUY1NUIzRDg1MTI1MUYxMkQwMDNFRjI2OSAvKiBE
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q4NjEyNTFGMTJEMDAzRUYy
NjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oICovLAogCQkJCTgzNUQ1NEMxMUY0REU1MzQw
MEU2MDY3MSAvKiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwICovLApAQCAtMzA4MzUsNiAr
MzA4NDAsNyBAQAogCQkJCTVDRDlGNTY3MUFBMEY3NDIwMERBNDVGRiAvKiBERkFCeXRlY29kZUNv
bXBpbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0Q5RjU2ODFBQTBGNzQ2MDBEQTQ1RkYgLyog
REZBQnl0ZWNvZGVJbnRlcnByZXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZBODA3ODUxQjE4
Rjk3NzAwRTIxOUJFIC8qIERGQUNvbWJpbmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNTFENkEx
RjI0RTFFMjU1MDA4OTFDRkEgLyogRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMjZBNTE3RkUxQUI5MjIzODAwNjMzNURGIC8qIERGQU1pbmltaXplci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMjY3NzI1RkYxQTVCM0FEOTAwM0MyNEREIC8qIERGQU5vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNEMTlBMjY4MUExM0U3MDAwMDhENjUwRSAvKiBEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDJhODQ0
MjA1MTc2MTFiOWU1Y2Q4YzVjMjZmNzYxZjYyZTU1MzQ1OTcuLmVhZDhlMTA0YzFmOTIyYWVhYWZi
YzNmMGZkZGE4ZDNmOGE3MjhmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMiw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVycy5oIgogI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCisjaW5jbHVkZSAiRm9jdXND
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMTQxLDcgKzE0Miw4IEBAIHZv
aWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRl
RXZlbnQoRXZlbnQmKQogCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBl
OjplbGVtZW50RGlkQmx1cigpCiB7Ci0gICAgY2xvc2VEYXRlVGltZUNob29zZXIoKTsKKyAgICBp
ZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKKyAgICAgICAgY2xvc2VEYXRlVGltZUNob29zZXIo
KTsKIH0KIAogYm9vbCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNQcmVz
ZW50aW5nQXR0YWNoZWRWaWV3KCkgY29uc3QKQEAgLTI0OCw2ICsyNTAsMTcgQEAgdm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlS2V5dXBFdmVudChLZXlib2Fy
ZEV2ZW50JiBldmVudCkKICAgICBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6aGFuZGxl
S2V5dXBFdmVudCgqdGhpcywgZXZlbnQpOwogfQogCit2b2lkIEJhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVGb2N1c0V2ZW50KE5vZGUqIG9sZEZvY3VzZWROb2RlLCBG
b2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1l
bnQpIHsKKyAgICAgICAgSW5wdXRUeXBlOjpoYW5kbGVGb2N1c0V2ZW50KG9sZEZvY3VzZWROb2Rl
LCBkaXJlY3Rpb24pOworICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09IEZvY3VzRGlyZWN0aW9u
QmFja3dhcmQpIHsKKyAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBlbGVtZW50KCktPmRvY3VtZW50
KCkucGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuYWR2YW5jZUZv
Y3VzKGRpcmVjdGlvbiwgMCk7CisgICAgfSBlbHNlCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxl
bWVudC0+Zm9jdXNCeU93bmVyKCk7Cit9CisKIGJvb2wgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKICAg
ICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVu
dHMpOwpAQCAtMjYxLDYgKzI3NCwxMyBAQCBib29sIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlOjppc01vdXNlRm9jdXNhYmxlKCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudCgp
LT5pc1RleHRGb3JtQ29udHJvbEZvY3VzYWJsZSgpOwogfQogCitib29sIEJhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QKK3sKKyAg
ICBpZiAobV9kYXRlVGltZUVkaXRFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIElucHV0VHlwZTo6aGFzQ3VzdG9tRm9jdXNMb2dpYygpOworfQorCiB2b2lkIEJhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gdmFsdWVBdHRyKSB7CkBAIC0y
NzIsMTAgKzI5MiwxNSBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBl
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUpOwogfQogCi1TdHJpbmcgQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlRm9yRWRpdENvbnRyb2woKSBjb25z
dAordm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkQmx1ckZyb21D
b250cm9sKCkKIHsKLSAgICBBU1NFUlQoZWxlbWVudCgpKTsKLSAgICByZXR1cm4gZWxlbWVudCgp
LT52YWx1ZSgpOworICAgIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7Cit9CisKK3ZvaWQgQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkK
K3sKKyAgICBTdHJpbmcgdmFsdWUgPSBzYW5pdGl6ZVZhbHVlKG1fZGF0ZVRpbWVFZGl0RWxlbWVu
dC0+dmFsdWUoKSk7CisgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZSh2YWx1
ZSwgdmFsdWUgIT0gZWxlbWVudCgpLT52YWx1ZSgpLCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZl
bnQpOwogfQogCiBBdG9tU3RyaW5nIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBl
Ojpsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCBiMzE5MzE5
MWI0MzZjYmFhYzBlMmE5MzQ0NTJkZGNmY2RiNWRkMmI3Li41NjdmOGJkYWJlZWEwNTI3MzMzY2Ji
ZDNkYzU4YTM0MzY2MjFlMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC02Myw3ICs2Myw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjbG9zZURhdGVUaW1lQ2hvb3NlcigpOwogCiAgICAgLy8gRGF0
ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xPd25lciBmdW5jdGlvbnM6Ci0gICAgU3RyaW5n
IHZhbHVlRm9yRWRpdENvbnRyb2woKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGRpZEJsdXJGcm9t
Q29udHJvbCgpIGZpbmFsOworICAgIHZvaWQgZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKSBmaW5h
bDsKICAgICBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKIAogICAg
IC8vIElucHV0VHlwZSBmdW5jdGlvbnM6CkBAIC03Niw5ICs3NywxMSBAQCBwcml2YXRlOgogICAg
IFNob3VsZENhbGxCYXNlRXZlbnRIYW5kbGVyIGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2
ZW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5kbGVLZXlwcmVzc0V2ZW50KEtleWJvYXJkRXZl
bnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUtleXVwRXZlbnQoS2V5Ym9hcmRFdmVudCYp
IG92ZXJyaWRlOworICAgIHZvaWQgaGFuZGxlRm9jdXNFdmVudChOb2RlKiBvbGRGb2N1c2VkTm9k
ZSwgRm9jdXNEaXJlY3Rpb24pIG92ZXJyaWRlOwogICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJv
b2wgc2VuZE1vdXNlRXZlbnRzKSBvdmVycmlkZTsKICAgICBib29sIGlzTW91c2VGb2N1c2FibGUo
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzUHJlc2VudGluZ0F0dGFjaGVkVmlldygpIGNv
bnN0IGZpbmFsOworICAgIGJvb2wgaGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJp
ZGU7CiAKICAgICAvLyBEYXRlVGltZUNob29zZXJDbGllbnQgZnVuY3Rpb25zOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDFhN2Vk
MzE1NTE2ZjE0MDdhNzZhODJlMjlhNTU0YzZjMGU3NzlmMGUuLmQxNjNmNDA4NWViMGJlZjYwMmFk
NmY0MjM3NTc4Y2ZlZmEyZTA0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTE4NSwxMyArMTg1LDExIEBAIGJvb2wgQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29u
c3QKICAgICByZXR1cm4gZWxlbWVudCgpLT5pc1JlcXVpcmVkKCkgJiYgdmFsdWUuaXNFbXB0eSgp
OwogfQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIGJvb2wgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlOjppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAogewogICAg
IEFTU0VSVChlbGVtZW50KCkpOwogICAgIHJldHVybiAhZWxlbWVudCgpLT5pc1JlYWRPbmx5KCkg
JiYgZWxlbWVudCgpLT5pc1RleHRGb3JtQ29udHJvbEZvY3VzYWJsZSgpOwogfQotI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggODI3ZDAxYjlmMzZmMjgxNzdhN2MyMGJi
ZmIxNWYzMjQ5OTIwY2UwNS4uYmYxM2JhMGJlMDIzMDdmNmNjN2I1MDg1OWU2YTM4Y2Q2OGZjMTU2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5o
CkBAIC00OSw5ICs0OSw3IEBAIHByb3RlY3RlZDoKICAgICBTdHJpbmcgc2VyaWFsaXplV2l0aENv
bXBvbmVudHMoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBjb25zdDsKICAgICBTdHJpbmcgdmlzaWJs
ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IGJvb2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3Qgb3ZlcnJpZGU7
Ci0jZW5kaWYKIAogICAgIHZpcnR1YWwgT3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9E
YXRlQ29tcG9uZW50cyhjb25zdCBTdHJpbmdWaWV3JikgY29uc3QgPSAwOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCBjOTEyYTQwODdiMGE2OTY1NTFkYTkzOWJhNWIz
NTViOGNlMzM2MTEyLi5kZTgxZDNjYTJjM2JkNGY5MjQ1YmJhYjIwZmUyNmJhZDQ0MTQ4YWZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQogI2luY2x1ZGUgIkRhdGVJbnB1dFR5cGUuaCIKIAor
I2luY2x1ZGUgIkRhdGVUaW1lRmllbGRzU3RhdGUuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMu
aCIKQEAgLTkyLDYgKzkzLDE0IEBAIGJvb2wgRGF0ZUlucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChP
cHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4gcmVzCiAgICAgcmV0dXJu
IHJlc3VsdHMuY29udGFpbnNBbGwoeyBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpI
YXNZZWFyLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCwgRGF0ZVRp
bWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzRGF5IH0pOwogfQogCitTdHJpbmcgRGF0ZUlu
cHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0
YXRlJiBzdGF0ZSkgY29uc3QKK3sKKyAgICBpZiAoIXN0YXRlLmhhc0RheU9mTW9udGgoKSB8fCAh
c3RhdGUuaGFzTW9udGgoKSB8fCAhc3RhdGUuaGFzWWVhcigpKQorICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKKworICAgIHJldHVybiBtYWtlU3RyaW5nKHBhZCgnMCcsIDQsIHN0YXRlLnll
YXIoKSksICctJywgcGFkKCcwJywgMiwgc3RhdGUubW9udGgoKSksICctJywgcGFkKCcwJywgMiwg
c3RhdGUuZGF5T2ZNb250aCgpKSk7Cit9CisKIHZvaWQgRGF0ZUlucHV0VHlwZTo6c2V0dXBMYXlv
dXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91
dFBhcmFtZXRlcnMpIGNvbnN0CiB7CiAgICAgbGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1h
dCA9IGxheW91dFBhcmFtZXRlcnMubG9jYWxlLmRhdGVGb3JtYXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlSW5wdXRUeXBlLmgKaW5kZXggZDg5OTIzMzJmOGE1YjMxZmM2MDA1NTY1MDE1ZmM3MmRlMTIw
N2I5OC4uODhiYTFjMDZlNGI1Y2FkMGY5YThjNTViZWRjMjM2ZGRlY2I1MWYwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGlzRGF0ZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzVmFsaWRGb3Jt
YXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBmaW5h
bDsKKyAgICBTdHJpbmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZp
ZWxkc1N0YXRlJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMo
RGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZpbmFsOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjZmYzZlZTEwZWY1MTBmYzg2YmQyYjY3MmZjYTZhMjI0N2IwNTdlYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAKQEAgLTAs
MCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRh
dGVUaW1lRmllbGRzU3RhdGUuaCIKKworI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZ
UEVTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0ZXhwciB1bnNpZ25lZCBEYXRlVGlt
ZUZpZWxkc1N0YXRlOjplbXB0eVZhbHVlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KC0xKTsKKwor
RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZSgpCisgICAgOiBtX3llYXIo
ZW1wdHlWYWx1ZSkKKyAgICAsIG1fbW9udGgoZW1wdHlWYWx1ZSkKKyAgICAsIG1fZGF5T2ZNb250
aChlbXB0eVZhbHVlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUZpZWxkc1N0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVmOTIzNTE4YmFhYzQ1MTliZjNlNmVj
YWZlYWYxNDQ0NGI5NzNlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZVRpbWVGaWVsZHNTdGF0ZS5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGF0ZVRpbWVGaWVsZHNTdGF0ZSB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGVtcHR5VmFsdWU7CisKKyAgICBEYXRlVGltZUZpZWxk
c1N0YXRlKCk7CisKKyAgICB1bnNpZ25lZCBkYXlPZk1vbnRoKCkgY29uc3QgeyByZXR1cm4gbV9k
YXlPZk1vbnRoOyB9CisgICAgdW5zaWduZWQgbW9udGgoKSBjb25zdCB7IHJldHVybiBtX21vbnRo
OyB9CisgICAgdW5zaWduZWQgeWVhcigpIGNvbnN0IHsgcmV0dXJuIG1feWVhcjsgfQorCisgICAg
Ym9vbCBoYXNEYXlPZk1vbnRoKCkgY29uc3QgeyByZXR1cm4gbV9kYXlPZk1vbnRoICE9IGVtcHR5
VmFsdWU7IH0KKyAgICBib29sIGhhc01vbnRoKCkgY29uc3QgeyByZXR1cm4gbV9tb250aCAhPSBl
bXB0eVZhbHVlOyB9CisgICAgYm9vbCBoYXNZZWFyKCkgY29uc3QgeyByZXR1cm4gbV95ZWFyICE9
IGVtcHR5VmFsdWU7IH0KKworICAgIHZvaWQgc2V0RGF5T2ZNb250aCh1bnNpZ25lZCBkYXlPZk1v
bnRoKSB7IG1fZGF5T2ZNb250aCA9IGRheU9mTW9udGg7IH0KKyAgICB2b2lkIHNldE1vbnRoKHVu
c2lnbmVkIG1vbnRoKSB7IG1fbW9udGggPSBtb250aDsgfQorICAgIHZvaWQgc2V0WWVhcih1bnNp
Z25lZCB5ZWFyKSB7IG1feWVhciA9IHllYXI7IH0KKworcHJpdmF0ZToKKyAgICB1bnNpZ25lZCBt
X3llYXI7CisgICAgdW5zaWduZWQgbV9tb250aDsKKyAgICB1bnNpZ25lZCBtX2RheU9mTW9udGg7
CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRF
X0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVM
b2NhbElucHV0VHlwZS5jcHAKaW5kZXggZWEwZjc4ZmU4MGFlNjZmYzExYmM5NDZmMGE3MzhiN2Fi
NTNiNTgwMS4uZWM0ZTVhYWYyYWRkNTZhOTZkN2ViNzViMmViYWY0MWZjZDAwNGY0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC0xMDAs
NiArMTAwLDExIEBAIGJvb2wgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6aXNWYWxpZEZvcm1hdChP
cHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzCiAgICAgcmV0dXJuIHJlc3VsdHMu
Y29udGFpbnNBbGwoeyBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyLCBE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCwgRGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0czo6SGFzRGF5LCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
OjpIYXNIb3VyLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNaW51dGUgfSk7
CiB9CiAKK1N0cmluZyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxk
c1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmKSBjb25zdAoreworICAgIHJldHVybiBl
bXB0eVN0cmluZygpOworfQorCiB2b2lkIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNldHVwTGF5
b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29u
c3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgK
aW5kZXggZjdmMGFlNzIyMzNhNjhkMzljN2IyMDNhYzFjMjJlOWI2NTAzM2FhYi4uYzkwZDZlYjE5
MDkzMGU0OGQ4YzhlMDNmMzYyYWUwMjFlMTQ4NWI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIGlzRGF0ZVRpbWVMb2NhbEZpZWxkKCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGlz
VmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+KSBj
b25zdCBmaW5hbDsKKyAgICBTdHJpbmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBE
YXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXR1cExheW91dFBh
cmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZp
bmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCBiODZh
NDhjZTYwMjM3MzNjMDIwNmZmNmY1ZTAxZTQ1OTFjOWY0OGY2Li41N2EyZTg4NmI1OGMzMjA2MzJk
NzI4OGEyMzRiZTc4ZWUyOGZmYzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01v
bnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBl
LmNwcApAQCAtMTM4LDYgKzEzOCwxMSBAQCBib29sIE1vbnRoSW5wdXRUeXBlOjppc1ZhbGlkRm9y
bWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZQogICAgIHJl
dHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0
czo6SGFzWWVhciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9udGggfSk7
CiB9CiAKK1N0cmluZyBNb250aElucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShj
b25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QKK3sKKyAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKK30KKwogdm9pZCBNb250aElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERh
dGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5oCmluZGV4IDFlZmMyN2MxMjI0MjVkMzBlNzNjMmFiNmU1
YTMwMWEyZDQ4NGJhZjMuLmQ1ZDU2NDI2NjI3MmY3NDAyYjAzYjY5MmNlOWQzODAzNWQyZTdiMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKQEAgLTU0LDYgKzU0LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsK
IAogICAgIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0
aW9uUmVzdWx0cz4pIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBmb3JtYXREYXRlVGltZUZpZWxk
c1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0
ZXJzJikgY29uc3QgZmluYWw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNw
cAppbmRleCBmNmU2MDI5YWY0Y2FiNGIyZjU0YTBkOWZhODE1Yjc1NjgzMmRkYzM3Li4xN2FjYzUx
MjEyMDM5YjY4MjgwNTNkMmM1YjA1MGNkMWM5N2M5NDE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5jcHAKQEAgLTExNCw2ICsxMTQsMTEgQEAgYm9vbCBUaW1lSW5wdXRUeXBlOjpp
c1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiBy
ZXMKICAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1lRm9ybWF0VmFsaWRh
dGlvblJlc3VsdHM6Okhhc0hvdXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhh
c01pbnV0ZSB9KTsKIH0KIAorU3RyaW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmll
bGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7Cit9CisKIHZvaWQgVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJh
bWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCA1ZjdkMTIwZDFiYzk1ODg0YzUz
NTgxMmQ2OGM2ODk5NmRlMzAxOWE4Li4wZjk3OTU0YTA2MDFlNzBmMDEyNGJiYmQ0MjRiZDM2ZDAz
M2NiZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtNTEsNiArNTEsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJy
aWRlOwogCiAgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZh
bGlkYXRpb25SZXN1bHRzPikgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGZvcm1hdERhdGVUaW1l
RmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IGZpbmFsOwogICAg
IHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBh
cmFtZXRlcnMmKSBjb25zdCBmaW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvV2Vla0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5
cGUuY3BwCmluZGV4IGM5YTk2NmZmNjE1MDg3YTVmNzFmYzhmNTAxNzkyZGEyN2RmYzcxNWUuLmQw
MDIwMzM3MjA4ZmNlMmY3YWUxOTQxNzE1N2MyZmVlMzE2MGU1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9XZWVrSW5wdXRUeXBlLmNwcApAQCAtOTEsNiArOTEsMTEgQEAgYm9vbCBXZWVrSW5wdXRUeXBl
Ojppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRz
PiByZXMKICAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1lRm9ybWF0VmFs
aWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6
Okhhc1dlZWsgfSk7CiB9CiAKK1N0cmluZyBXZWVrSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZp
ZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmKSBjb25zdAoreworICAgIHJldHVy
biBlbXB0eVN0cmluZygpOworfQorCiB2b2lkIFdlZWtJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFy
YW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggOTE2ZTMzNTQ2YzM5NjA5ODcy
MTE1NjViMWRjNzBhYWU2MzQ4ZjU2MS4uNjI1ODJiZmJkYzU3NDdlNzNhYmM0YjMyZDE4NzY5NzQ2
ZGIyY2I5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAgLTUwLDYgKzUwLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmKSBvdmVy
cmlkZTsKIAogICAgIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBmb3JtYXREYXRlVGlt
ZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmKSBjb25zdCBmaW5hbDsKICAg
ICB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQ
YXJhbWV0ZXJzJikgY29uc3QgZmluYWw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCmluZGV4IDdlMWVkNTdhY2I2MmVjNjdi
NjYxMjc3ZDEzZjY0OTE5MTE5YTQ0MWUuLjNmYWFiNzZkNGZmZjI4NzhhMGRkMzNjZWU1OWJmYWU4
OTc3YjU2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RWRpdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RWRpdEVsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJEYXRlQ29tcG9u
ZW50cy5oIgogI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50cy5oIgorI2luY2x1ZGUgIkRh
dGVUaW1lRmllbGRzU3RhdGUuaCIKICNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgogI2luY2x1
ZGUgIkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKQEAgLTE1NCw2ICsxNTUsMTUgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjphZGRGaWVs
ZChSZWY8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+IGZpZWxkKQogICAgIGZpZWxkc1dyYXBwZXJFbGVt
ZW50KCkuYXBwZW5kQ2hpbGQoZmllbGQpOwogfQogCitzaXplX3QgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6ZmllbGRJbmRleE9mKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBmaWVsZCkgY29uc3QK
K3sKKyAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRz
LnNpemUoKTsgKytmaWVsZEluZGV4KSB7CisgICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4
XS5wdHIoKSA9PSAmZmllbGQpCisgICAgICAgICAgICByZXR1cm4gZmllbGRJbmRleDsKKyAgICB9
CisgICAgcmV0dXJuIGludmFsaWRGaWVsZEluZGV4OworfQorCiBSZWY8RGF0ZVRpbWVFZGl0RWxl
bWVudD4gRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgRWRp
dENvbnRyb2xPd25lciYgZWRpdENvbnRyb2xPd25lcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEYXRlVGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0Q29udHJvbE93bmVyKSk7CkBA
IC0xODcsNiArMTk3LDcwIEBAIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6bGF5b3V0KGNvbnN0
IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCiAgICAgfQogfQogCit2b2lkIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OmJsdXJGcm9tRmllbGQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9j
dXNlZEVsZW1lbnQpCit7CisgICAgYm9vbCBub3RpZnlPd25lciA9IHRydWU7CisgICAgZm9yIChh
dXRvJiBmaWVsZCA6IG1fZmllbGRzKSB7CisgICAgICAgIGlmIChmaWVsZC5wdHIoKSA9PSBuZXdG
b2N1c2VkRWxlbWVudC5nZXQoKSkgeworICAgICAgICAgICAgbm90aWZ5T3duZXIgPSBmYWxzZTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgSFRNTEVsZW1lbnQ6
OmRpc3BhdGNoQmx1ckV2ZW50KFdURk1vdmUobmV3Rm9jdXNlZEVsZW1lbnQpKTsKKworICAgIGlm
IChtX2VkaXRDb250cm9sT3duZXIgJiYgbm90aWZ5T3duZXIpCisgICAgICAgIG1fZWRpdENvbnRy
b2xPd25lci0+ZGlkQmx1ckZyb21Db250cm9sKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6ZmllbGRWYWx1ZUNoYW5nZWQoKQoreworICAgIGlmIChtX2VkaXRDb250cm9sT3duZXIp
CisgICAgICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKTsK
K30KKworYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uTmV4dEZvY3VzYWJsZUZpZWxk
KHNpemVfdCBzdGFydEluZGV4KQoreworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSBzdGFy
dEluZGV4OyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKKyAg
ICAgICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5pc0ZvY3VzYWJsZSgpKSB7CisgICAgICAg
ICAgICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+Zm9jdXMoKTsKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBEYXRl
VGltZUVkaXRFbGVtZW50Ojpmb2N1c0J5T3duZXIoKQoreworICAgIGZvY3VzT25OZXh0Rm9jdXNh
YmxlRmllbGQoMCk7Cit9CisKK2Jvb2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRG
aWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYgZmllbGQpCit7CisgICAgY29uc3Qgc2l6
ZV90IHN0YXJ0RmllbGRJbmRleCA9IGZpZWxkSW5kZXhPZihmaWVsZCk7CisgICAgaWYgKHN0YXJ0
RmllbGRJbmRleCA9PSBpbnZhbGlkRmllbGRJbmRleCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiBmb2N1c09uTmV4dEZvY3VzYWJsZUZpZWxkKHN0YXJ0RmllbGRJbmRleCArIDEp
OworfQorCitib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25QcmV2aW91c0ZpZWxkKGNv
bnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBmaWVsZCkKK3sKKyAgICBjb25zdCBzaXplX3Qgc3Rh
cnRGaWVsZEluZGV4ID0gZmllbGRJbmRleE9mKGZpZWxkKTsKKyAgICBpZiAoc3RhcnRGaWVsZElu
ZGV4ID09IGludmFsaWRGaWVsZEluZGV4KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBz
aXplX3QgZmllbGRJbmRleCA9IHN0YXJ0RmllbGRJbmRleDsKKyAgICB3aGlsZSAoZmllbGRJbmRl
eCA+IDApIHsKKyAgICAgICAgLS1maWVsZEluZGV4OworICAgICAgICBpZiAobV9maWVsZHNbZmll
bGRJbmRleF0tPmlzRm9jdXNhYmxlKCkpIHsKKyAgICAgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5k
ZXhdLT5mb2N1cygpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIEF0b21TdHJpbmcgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6bG9jYWxlSWRlbnRpZmllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZWRpdENvbnRyb2xP
d25lciA/IG1fZWRpdENvbnRyb2xPd25lci0+bG9jYWxlSWRlbnRpZmllcigpIDogbnVsbEF0b20o
KTsKQEAgLTIxMyw3ICsyODcsMTUgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRFbXB0
eVZhbHVlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMKIAogU3RyaW5n
IERhdGVUaW1lRWRpdEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9lZGl0
Q29udHJvbE93bmVyID8gbV9lZGl0Q29udHJvbE93bmVyLT52YWx1ZUZvckVkaXRDb250cm9sKCkg
OiBlbXB0eVN0cmluZygpOworICAgIHJldHVybiBtX2VkaXRDb250cm9sT3duZXIgPyBtX2VkaXRD
b250cm9sT3duZXItPmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUodmFsdWVBc0RhdGVUaW1lRmll
bGRzU3RhdGUoKSkgOiBlbXB0eVN0cmluZygpOworfQorCitEYXRlVGltZUZpZWxkc1N0YXRlIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OnZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKCkgY29uc3QKK3sK
KyAgICBEYXRlVGltZUZpZWxkc1N0YXRlIGRhdGVUaW1lRmllbGRzU3RhdGU7CisgICAgZm9yIChh
dXRvJiBmaWVsZCA6IG1fZmllbGRzKQorICAgICAgICBmaWVsZC0+cG9wdWxhdGVEYXRlVGltZUZp
ZWxkc1N0YXRlKGRhdGVUaW1lRmllbGRzU3RhdGUpOworICAgIHJldHVybiBkYXRlVGltZUZpZWxk
c1N0YXRlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKaW5kZXggZjRiNWJiMDFmNTQzMzk2
YzdiNjZmZGMxNzUyZWE1N2FiYjZmZmIyOS4uZThlNzM5OGFhMGQ0ZDYyM2JiOGNhMmY0MzYwMGU3
ZmM0YmU3YTRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RWRpdEVsZW1lbnQuaApAQCAtNDMsNyArNDMsOSBAQCBwdWJsaWM6CiAgICAgY2xhc3MgRWRpdENv
bnRyb2xPd25lciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxFZGl0Q29udHJvbE93bmVyPiB7CiAg
ICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5FZGl0Q29udHJvbE93bmVyKCk7Ci0gICAgICAg
IHZpcnR1YWwgU3RyaW5nIHZhbHVlRm9yRWRpdENvbnRyb2woKSBjb25zdCA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRCbHVyRnJvbUNvbnRyb2woKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBlZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCBTdHJp
bmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikg
Y29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigp
IGNvbnN0ID0gMDsKICAgICB9OwogCkBAIC02MywxMiArNjUsMTUgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfkRhdGVUaW1lRWRpdEVsZW1lbnQoKTsKICAgICB2b2lkIGFkZEZpZWxkKFJlZjxEYXRl
VGltZUZpZWxkRWxlbWVudD4pOwogICAgIEVsZW1lbnQmIGZpZWxkc1dyYXBwZXJFbGVtZW50KCkg
Y29uc3Q7CisgICAgdm9pZCBmb2N1c0J5T3duZXIoKTsKICAgICB2b2lkIHJlc2V0RmllbGRzKCk7
CiAgICAgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmKTsKICAgICB2
b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmLCBjb25zdCBEYXRlQ29t
cG9uZW50cyYpOwogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIHN0
YXRpYyBjb25zdGV4cHIgc2l6ZV90IGludmFsaWRGaWVsZEluZGV4ID0gc3RhdGljX2Nhc3Q8c2l6
ZV90PigtMSk7CisKICAgICAvLyBEYXRldGltZSBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYXQgbW9z
dCA4IGZpZWxkczoKICAgICAvLyAxLiB5ZWFyCiAgICAgLy8gMi4gbW9udGgKQEAgLTgyLDkgKzg3
LDE3IEBAIHByaXZhdGU6CiAKICAgICBEYXRlVGltZUVkaXRFbGVtZW50KERvY3VtZW50JiwgRWRp
dENvbnRyb2xPd25lciYpOwogCisgICAgc2l6ZV90IGZpZWxkSW5kZXhPZihjb25zdCBEYXRlVGlt
ZUZpZWxkRWxlbWVudCYpIGNvbnN0OwogICAgIHZvaWQgbGF5b3V0KGNvbnN0IExheW91dFBhcmFt
ZXRlcnMmKTsKKyAgICBEYXRlVGltZUZpZWxkc1N0YXRlIHZhbHVlQXNEYXRlVGltZUZpZWxkc1N0
YXRlKCkgY29uc3Q7CisKKyAgICBib29sIGZvY3VzT25OZXh0Rm9jdXNhYmxlRmllbGQoc2l6ZV90
IHN0YXJ0SW5kZXgpOwogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkZpZWxkT3duZXIg
ZnVuY3Rpb25zOgorICAgIHZvaWQgYmx1ckZyb21GaWVsZChSZWZQdHI8RWxlbWVudD4mJiBuZXdG
b2N1c2VkRWxlbWVudCkgZmluYWw7CisgICAgdm9pZCBmaWVsZFZhbHVlQ2hhbmdlZCgpIGZpbmFs
OworICAgIGJvb2wgZm9jdXNPbk5leHRGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYp
IGZpbmFsOworICAgIGJvb2wgZm9jdXNPblByZXZpb3VzRmllbGQoY29uc3QgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQmKSBmaW5hbDsKICAgICBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25z
dCBmaW5hbDsKIAogICAgIFZlY3RvcjxSZWY8RGF0ZVRpbWVGaWVsZEVsZW1lbnQ+LCBtYXhpbXVt
TnVtYmVyT2ZGaWVsZHM+IG1fZmllbGRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCmluZGV4IDBkZjUyYTBmYWRkNjI1YjZiODM2
MDljOTE2ZjhjNjcyOTFkODQ2NzMuLmYwODk1ODA4ZGU2YWUzZjY5MGY2MWIzZmU2MzE1OWJmYjU4
NmI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmll
bGRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZp
ZWxkRWxlbWVudC5jcHAKQEAgLTMwLDcgKzMwLDkgQEAKICNpZiBFTkFCTEUoREFURV9BTkRfVElN
RV9JTlBVVF9UWVBFUykKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIktleWJvYXJk
RXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1Mb2NhbGUuaCIKICNpbmNsdWRlICJUZXh0LmgiCkBAIC01NSw2ICs1Nyw2NCBAQCB2b2lkIERh
dGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBzZXVkbykK
ICAgICBzZXRQc2V1ZG8ocHNldWRvKTsKIH0KIAordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCit7CisgICAgaWYgKGlzPEtleWJvYXJk
RXZlbnQ+KGV2ZW50KSkgeworICAgICAgICBhdXRvJiBrZXlib2FyZEV2ZW50ID0gZG93bmNhc3Q8
S2V5Ym9hcmRFdmVudD4oZXZlbnQpOworICAgICAgICBoYW5kbGVLZXlib2FyZEV2ZW50KGtleWJv
YXJkRXZlbnQpOworICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5kZWZhdWx0SGFuZGxlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIo
a2V5Ym9hcmRFdmVudCk7CisgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LmRlZmF1bHRIYW5kbGVk
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSFRNTERpdkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworfQorCit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50
OjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRsZXIoS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVu
dCkKK3sKKyAgICBpZiAoa2V5Ym9hcmRFdmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLmtleWRv
d25FdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBrZXkgPSBrZXlib2FyZEV2ZW50
LmtleUlkZW50aWZpZXIoKTsKKworICAgIGlmIChrZXkgPT0gIkxlZnQiKSB7CisgICAgICAgIGlm
IChtX2ZpZWxkT3duZXIgJiYgbV9maWVsZE93bmVyLT5mb2N1c09uUHJldmlvdXNGaWVsZCgqdGhp
cykpIHsKKyAgICAgICAgICAgIGtleWJvYXJkRXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChrZXkgPT0gIlJp
Z2h0IikgeworICAgICAgICBpZiAobV9maWVsZE93bmVyICYmIG1fZmllbGRPd25lci0+Zm9jdXNP
bk5leHRGaWVsZCgqdGhpcykpIHsKKyAgICAgICAgICAgIGtleWJvYXJkRXZlbnQuc2V0RGVmYXVs
dEhhbmRsZWQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAg
IC8vIENsZWFyIHZhbHVlIHdoZW4gcHJlc3NpbmcgYmFja3NwYWNlIG9yIGRlbGV0ZS4KKyAgICBp
ZiAoa2V5ID09ICJVKzAwMDgiIHx8IGtleSA9PSAiVSswMDdGIikgeworICAgICAgICBrZXlib2Fy
ZEV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHNldEVtcHR5VmFsdWUoRGlzcGF0
Y2hJbnB1dEFuZENoYW5nZUV2ZW50KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9p
ZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+
JiYgbmV3Rm9jdXNlZEVsZW1lbnQpCit7CisgICAgaWYgKG1fZmllbGRPd25lcikKKyAgICAgICAg
bV9maWVsZE93bmVyLT5ibHVyRnJvbUZpZWxkKFdURk1vdmUobmV3Rm9jdXNlZEVsZW1lbnQpKTsK
KyAgICBlbHNlCisgICAgICAgIEhUTUxFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChXVEZNb3Zl
KG5ld0ZvY3VzZWRFbGVtZW50KSk7CisKKyAgICBkaWRCbHVyKCk7Cit9CisKK3ZvaWQgRGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OmRpZEJsdXIoKQoreworfQorCiBMb2NhbGUmIERhdGVUaW1lRmllbGRF
bGVtZW50Ojpsb2NhbGVGb3JPd25lcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCku
Z2V0Q2FjaGVkTG9jYWxlKGxvY2FsZUlkZW50aWZpZXIoKSk7CkBAIC02NSw3ICsxMjUsNyBAQCBB
dG9tU3RyaW5nIERhdGVUaW1lRmllbGRFbGVtZW50Ojpsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QK
ICAgICByZXR1cm4gbV9maWVsZE93bmVyID8gbV9maWVsZE93bmVyLT5sb2NhbGVJZGVudGlmaWVy
KCkgOiBudWxsQXRvbSgpOwogfQogCi12b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVW
aXNpYmxlVmFsdWUoKQordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZh
bHVlKEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikKIHsKICAgICBpZiAoIWZpcnN0Q2hpbGQo
KSkKICAgICAgICAgYXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50KCksIGVtcHR5U3Ry
aW5nKCkpKTsKQEAgLTc2LDYgKzEzNiw5IEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVw
ZGF0ZVZpc2libGVWYWx1ZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIHRleHROb2RlLnJlcGxh
Y2VXaG9sZVRleHQobmV3VmlzaWJsZVZhbHVlKTsKKworICAgIGlmIChldmVudEJlaGF2aW9yID09
IERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCAmJiBtX2ZpZWxkT3duZXIpCisgICAgICAgIG1f
ZmllbGRPd25lci0+ZmllbGRWYWx1ZUNoYW5nZWQoKTsKIH0KIAogYm9vbCBEYXRlVGltZUZpZWxk
RWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaAppbmRleCA0ZmE0ZDE1NjUxMzZmYjI5OWU0
YWFhMTU0ZDlkMzQ4YjM3NWU1MjljLi43NmY5NGM0NTgwNWI5NzM2M2U2YWVkOGJlNWM3OGYwMjQ3
Y2RhZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZp
ZWxkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmll
bGRFbGVtZW50LmgKQEAgLTM1LDIwICszNSwzMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBEYXRlQ29tcG9uZW50czsKK2NsYXNzIERhdGVUaW1lRmllbGRzU3RhdGU7CiAKIGNsYXNz
IERhdGVUaW1lRmllbGRFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lRmllbGRFbGVtZW50KTsKIHB1YmxpYzoKKyAgICBl
bnVtIEV2ZW50QmVoYXZpb3IgeyBEaXNwYXRjaE5vRXZlbnQsIERpc3BhdGNoSW5wdXRBbmRDaGFu
Z2VFdmVudCB9OworCiAgICAgY2xhc3MgRmllbGRPd25lciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxGaWVsZE93bmVyPiB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5GaWVsZE93bmVy
KCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBibHVyRnJvbUZpZWxkKFJlZlB0cjxFbGVtZW50PiYm
IG5ld0ZvY3VzZWRFbGVtZW50KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBmaWVsZFZhbHVl
Q2hhbmdlZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIGZvY3VzT25OZXh0RmllbGQoY29u
c3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9vbCBmb2N1
c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpID0gMDsKICAgICAg
ICAgdmlydHVhbCBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAgICAg
fTsKIAorICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1l
bnQpIG92ZXJyaWRlOworCiAgICAgdmlydHVhbCBib29sIGhhc1ZhbHVlKCkgY29uc3QgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBw
b3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0RW1wdHlWYWx1ZShFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2
ZW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21w
b25lbnRzJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0ludGVnZXIoaW50LCBFdmVudEJlaGF2aW9y
ID0gRGlzcGF0Y2hOb0V2ZW50KSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgPSAwOwogCkBA
IC01NywxMiArNjgsMTcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBB
dG9tU3RyaW5nJiBwc2V1ZG8pOwogICAgIExvY2FsZSYgbG9jYWxlRm9yT3duZXIoKSBjb25zdDsK
ICAgICBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZpZXIoKSBjb25zdDsKLSAgICB2b2lkIHVwZGF0
ZVZpc2libGVWYWx1ZSgpOworICAgIHZvaWQgdXBkYXRlVmlzaWJsZVZhbHVlKEV2ZW50QmVoYXZp
b3IpOwogICAgIHZpcnR1YWwgaW50IHZhbHVlQXNJbnRlZ2VyKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmKSA9IDA7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQmx1cigpOwogCiBwcml2YXRlOgogICAgIGJvb2wgc3VwcG9ydHNG
b2N1cygpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgdm9pZCBkZWZhdWx0S2V5Ym9hcmRFdmVudEhh
bmRsZXIoS2V5Ym9hcmRFdmVudCYpOworCiAgICAgV2Vha1B0cjxGaWVsZE93bmVyPiBtX2ZpZWxk
T3duZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnRzLmNwcAppbmRleCBjN2Y5ODQ0YTEzNDVkOGI0MzIwZjBjNDg5MWEzYTFi
MGQzNzcxODdmLi5hNTVkNTJmMWM4ZGY2YjY4MTVkZDBjMWNhNzVmZDQ2OWQ0MjAyMDRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
cy5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9U
WVBFUykKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVG
aWVsZHNTdGF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTM3LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lRGF5RmllbGRFbGVtZW50KTsKIAogRGF0
ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50KERvY3VtZW50JiBk
b2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKLSAgICA6IERhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgIi0tIl9zKQorICAgIDogRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBSYW5nZSgxLCAzMSksICIt
LSJfcykKIHsKICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21T
dHJpbmc+IGRheVBzZXVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwogICAgIGluaXRpYWxpemUoZGF5UHNldWRv
SWQpOwpAQCAtNDgsNiArNDksMTEgQEAgUmVmPERhdGVUaW1lRGF5RmllbGRFbGVtZW50PiBEYXRl
VGltZURheUZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZURheUZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRP
d25lcikpOwogfQogCit2b2lkIERhdGVUaW1lRGF5RmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVU
aW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgc3RhdGUpCit7CisgICAgc3RhdGUu
c2V0RGF5T2ZNb250aChoYXNWYWx1ZSgpID8gdmFsdWVBc0ludGVnZXIoKSA6IERhdGVUaW1lRmll
bGRzU3RhdGU6OmVtcHR5VmFsdWUpOworfQorCiB2b2lkIERhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKIHsKICAgICBzZXRW
YWx1ZUFzSW50ZWdlcihkYXRlLm1vbnRoRGF5KCkpOwpAQCAtNTYsNyArNjIsNyBAQCB2b2lkIERh
dGVUaW1lRGF5RmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50
cyYgZGF0ZSkKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZU1vbnRoRmllbGRF
bGVtZW50KTsKIAogRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNb250aEZpZWxk
RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCi0gICAg
OiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsICItLSJf
cykKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25l
ciwgUmFuZ2UoMSwgMTIpLCAiLS0iX3MpCiB7CiAgICAgc3RhdGljIE1haW5UaHJlYWROZXZlckRl
c3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiBtb250aFBzZXVkb0lkKCItd2Via2l0LWRhdGV0aW1l
LWVkaXQtbW9udGgtZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAg
ICAgaW5pdGlhbGl6ZShtb250aFBzZXVkb0lkKTsKQEAgLTY3LDYgKzczLDExIEBAIFJlZjxEYXRl
VGltZU1vbnRoRmllbGRFbGVtZW50PiBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVNb250aEZp
ZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lcikpOwogfQogCit2b2lkIERhdGVUaW1lTW9u
dGhGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxk
c1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBzdGF0ZS5zZXRNb250aChoYXNWYWx1ZSgpID8gdmFsdWVB
c0ludGVnZXIoKSA6IERhdGVUaW1lRmllbGRzU3RhdGU6OmVtcHR5VmFsdWUpOworfQorCiB2b2lk
IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlKQogewogICAgIC8vIERhdGVDb21wb25lbnRzIHJlcHJlc2VudHMgbW9udGhz
IGZyb20gMCAoSmFudWFyeSkgdG8gMTEgKERlY2VtYmVyKS4KQEAgLTg3LDYgKzk4LDExIEBAIFJl
ZjxEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ+IERhdGVUaW1lU3ltYm9saWNNb250
aEZpZWxkRWxlbWVudDo6Y3JlYXRlCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVT
eW1ib2xpY01vbnRoRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBsYWJlbHMpKTsK
IH0KIAordm9pZCBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0
ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBzdGF0
ZS5zZXRNb250aChoYXNWYWx1ZSgpID8gdmFsdWVBc0ludGVnZXIoKSArIDEgOiBEYXRlVGltZUZp
ZWxkc1N0YXRlOjplbXB0eVZhbHVlKTsKK30KKwogdm9pZCBEYXRlVGltZVN5bWJvbGljTW9udGhG
aWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQog
ewogICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubW9udGgoKSk7CkBAIC05NSw3ICsxMTEsNyBA
QCB2b2lkIERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERh
dGVUaW1lWWVhckZpZWxkRWxlbWVudCk7CiAKIERhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6RGF0
ZVRpbWVZZWFyRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmll
bGRPd25lcikKLSAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmll
bGRPd25lciwgIi0tLS0iX3MpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9j
dW1lbnQsIGZpZWxkT3duZXIsIFJhbmdlKERhdGVDb21wb25lbnRzOjptaW5pbXVtWWVhcigpLCBE
YXRlQ29tcG9uZW50czo6bWF4aW11bVllYXIoKSksICItLS0tIl9zKQogewogICAgIHN0YXRpYyBN
YWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4geWVhclBzZXVkb0lkKCIt
d2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKTsKICAgICBpbml0aWFsaXplKHllYXJQc2V1ZG9JZCk7CkBAIC0xMDYsNiArMTIy
LDExIEBAIFJlZjxEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ+IERhdGVUaW1lWWVhckZpZWxkRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7CiB9CiAKK3Zv
aWQgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUo
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYgc3RhdGUpCit7CisgICAgc3RhdGUuc2V0WWVhcihoYXNWYWx1
ZSgpID8gdmFsdWVBc0ludGVnZXIoKSA6IERhdGVUaW1lRmllbGRzU3RhdGU6OmVtcHR5VmFsdWUp
OworfQorCiB2b2lkIERhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29u
c3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCiB7CiAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5m
dWxsWWVhcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVG
aWVsZEVsZW1lbnRzLmgKaW5kZXggNGEwMDZiNzFjMzYzZjVkNWFiODNkMzg1NDFhYjU5MTk1ZjUy
NmM4Yy4uZjExMDM3ODI5YmY3YWQxYmY5YTAzYjlkMzQxMDk4ODViZDE5ZGEzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKQEAg
LTQ0LDYgKzQ0LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1
bmN0aW9uczoKICAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJik7
CisgICAgdm9pZCBwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0
ZSYpOwogfTsKIAogY2xhc3MgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCBmaW5hbCA6IHB1Ymxp
YyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQgewpAQCAtNTcsNiArNTgsNyBAQCBwcml2YXRl
OgogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgogICAgIHZvaWQgc2V0
VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKKyAgICB2b2lkIHBvcHVsYXRlRGF0
ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJik7CiB9OwogCiBjbGFzcyBEYXRl
VGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudCB7CkBAIC03MCw2ICs3Miw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBE
YXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CiAgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShj
b25zdCBEYXRlQ29tcG9uZW50cyYpOworICAgIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0
YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKTsKIH07CiAKIGNsYXNzIERhdGVUaW1lWWVhckZpZWxk
RWxlbWVudCBmaW5hbCA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQgewpAQCAt
ODMsNiArODYsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVu
Y3Rpb25zOgogICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsK
KyAgICB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRl
Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAppbmRl
eCA5OGY1YWI5YTA4OTRhYzY4ODFmMzE4NDY1NGQ1ZjU1MzJkNzlmMzBlLi4zMzMwYTY1M2I3NGEy
YjlmNzYwNGRmOGRmNDRmM2MzOTMxMzUzZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTI5
LDE1ICsyOSwzMCBAQAogCiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCiAK
KyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjb25zdGV4cHIgU2Vjb25kcyB0eXBlQWhlYWRU
aW1lb3V0IHsgMV9zIH07CisKK2ludCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJhbmdl
OjpjbGFtcFZhbHVlKGludCB2YWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RkOjptaW4oc3Rk
OjptYXgodmFsdWUsIG1pbmltdW0pLCBtYXhpbXVtKTsKK30KKworYm9vbCBEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQ6OlJhbmdlOjppc0luUmFuZ2UoaW50IHZhbHVlKSBjb25zdAoreworICAg
IHJldHVybiB2YWx1ZSA+PSBtaW5pbXVtICYmIHZhbHVlIDw9IG1heGltdW07Cit9CisKIFdURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOwogCi1E
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChE
b2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGNvbnN0IFN0cmluZyYg
cGxhY2Vob2xkZXIpCitEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIs
IGNvbnN0IFJhbmdlJiByYW5nZSwgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlcikKICAgICA6IERh
dGVUaW1lRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKQorICAgICwgbV9yYW5nZShy
YW5nZSkKICAgICAsIG1fcGxhY2Vob2xkZXIocGxhY2Vob2xkZXIpCiB7CiB9CkBAIC00NSw2ICs2
MCwxMSBAQCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIEZpZQogU3RyaW5nIERhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudDo6Zm9ybWF0VmFsdWUoaW50IHZhbHVlKSBjb25zdAogewogICAgIExvY2FsZSYg
bG9jYWxlID0gbG9jYWxlRm9yT3duZXIoKTsKKworICAgIGlmIChtX3JhbmdlLm1heGltdW0gPiA5
OTkpCisgICAgICAgIHJldHVybiBsb2NhbGUuY29udmVydFRvTG9jYWxpemVkTnVtYmVyKG1ha2VT
dHJpbmcocGFkKCcwJywgNCwgdmFsdWUpKSk7CisgICAgaWYgKG1fcmFuZ2UubWF4aW11bSA+IDk5
KQorICAgICAgICByZXR1cm4gbG9jYWxlLmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihtYWtlU3Ry
aW5nKHBhZCgnMCcsIDMsIHZhbHVlKSkpOwogICAgIHJldHVybiBsb2NhbGUuY29udmVydFRvTG9j
YWxpemVkTnVtYmVyKG1ha2VTdHJpbmcocGFkKCcwJywgMiwgdmFsdWUpKSk7CiB9CiAKQEAgLTU4
LDE4ICs3OCwxOSBAQCB2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aW5pdGlhbGl6
ZShjb25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pCiAgICAgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6Omlu
aXRpYWxpemUocHNldWRvKTsKIH0KIAotdm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6
OnNldEVtcHR5VmFsdWUoKQordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldEVt
cHR5VmFsdWUoRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIG1fdmFsdWUgPSAw
OwogICAgIG1faGFzVmFsdWUgPSBmYWxzZTsKLSAgICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAg
ICBtX3R5cGVBaGVhZEJ1ZmZlci5jbGVhcigpOworICAgIHVwZGF0ZVZpc2libGVWYWx1ZShldmVu
dEJlaGF2aW9yKTsKIH0KIAotdm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZh
bHVlQXNJbnRlZ2VyKGludCB2YWx1ZSkKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgdmFsdWUsIEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlv
cikKIHsKLSAgICBtX3ZhbHVlID0gdmFsdWU7CisgICAgbV92YWx1ZSA9IG1fcmFuZ2UuY2xhbXBW
YWx1ZSh2YWx1ZSk7CiAgICAgbV9oYXNWYWx1ZSA9IHRydWU7Ci0gICAgdXBkYXRlVmlzaWJsZVZh
bHVlKCk7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKGV2ZW50QmVoYXZpb3IpOwogfQogCiBTdHJp
bmcgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0CkBAIC04Nyw2ICsx
MDgsMzkgQEAgU3RyaW5nIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVl
KCkgY29uc3QKICAgICByZXR1cm4gbV9oYXNWYWx1ZSA/IHZhbHVlKCkgOiBtX3BsYWNlaG9sZGVy
OwogfQogCit2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRF
dmVudChLZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQoreworICAgIGlmIChrZXlib2FyZEV2
ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgYXV0byBjaGFyQ29kZSA9IHN0YXRpY19jYXN0PFVDaGFyPihrZXlib2FyZEV2ZW50
LmNoYXJDb2RlKCkpOworICAgIFN0cmluZyBudW1iZXIgPSBsb2NhbGVGb3JPd25lcigpLmNvbnZl
cnRGcm9tTG9jYWxpemVkTnVtYmVyKFN0cmluZygmY2hhckNvZGUsIDEpKTsKKyAgICBpbnQgZGln
aXQgPSBudW1iZXJbMF0gLSAnMCc7CisgICAgaWYgKGRpZ2l0IDwgMCB8fCBkaWdpdCA+IDkpCisg
ICAgICAgIHJldHVybjsKKworICAgIFNlY29uZHMgdGltZVNpbmNlTGFzdERpZ2l0Q2hhciA9IGtl
eWJvYXJkRXZlbnQudGltZVN0YW1wKCkgLSBtX2xhc3REaWdpdENoYXJUaW1lOworICAgIG1fbGFz
dERpZ2l0Q2hhclRpbWUgPSBrZXlib2FyZEV2ZW50LnRpbWVTdGFtcCgpOworCisgICAgaWYgKHRp
bWVTaW5jZUxhc3REaWdpdENoYXIgPiB0eXBlQWhlYWRUaW1lb3V0KSB7CisgICAgICAgIG1fdHlw
ZUFoZWFkQnVmZmVyLmNsZWFyKCk7CisgICAgfSBlbHNlIGlmIChhdXRvIGxlbmd0aCA9IG1fdHlw
ZUFoZWFkQnVmZmVyLmxlbmd0aCgpKSB7CisgICAgICAgIHVuc2lnbmVkIG1heExlbmd0aCA9IGZv
cm1hdFZhbHVlKG1fcmFuZ2UubWF4aW11bSkubGVuZ3RoKCk7CisgICAgICAgIGlmIChsZW5ndGgg
PT0gbWF4TGVuZ3RoKQorICAgICAgICAgICAgbV90eXBlQWhlYWRCdWZmZXIuY2xlYXIoKTsKKyAg
ICB9CisKKyAgICBtX3R5cGVBaGVhZEJ1ZmZlci5hcHBlbmQobnVtYmVyKTsKKyAgICBzZXRWYWx1
ZUFzSW50ZWdlcihtX3R5cGVBaGVhZEJ1ZmZlci50b1N0cmluZygpLnRvSW50KCksIERpc3BhdGNo
SW5wdXRBbmRDaGFuZ2VFdmVudCk7CisKKyAgICBrZXlib2FyZEV2ZW50LnNldERlZmF1bHRIYW5k
bGVkKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpkaWRCbHVyKCkK
K3sKKyAgICBtX3R5cGVBaGVhZEJ1ZmZlci5jbGVhcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50LmgKaW5kZXggZjAyYmZiMGVkZDAyOGE2ZjljODQzMjU4YmQ2OTViZTQ4MTgzNzM2
NC4uNDA0ZDM5MWQ4MTNkZDdlNTZlYTA4YTA5NzU1Y2U5MWY0NzI1ODg0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50LmgKQEAgLTI5LDMzICsyOSw0OSBAQAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVU
X1RZUEVTKQogCiAjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRlIDx3
dGYvTW9ub3RvbmljVGltZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KTsKIHB1YmxpYzoKKyAgICBzdHJ1Y3Qg
UmFuZ2UgeworICAgICAgICBSYW5nZShpbnQgbWluaW11bSwgaW50IG1heGltdW0pCisgICAgICAg
ICAgICA6IG1pbmltdW0obWluaW11bSksIG1heGltdW0obWF4aW11bSkgeyB9CisgICAgICAgIGlu
dCBjbGFtcFZhbHVlKGludCkgY29uc3Q7CisgICAgICAgIGJvb2wgaXNJblJhbmdlKGludCkgY29u
c3Q7CisKKyAgICAgICAgaW50IG1pbmltdW07CisgICAgICAgIGludCBtYXhpbXVtOworICAgIH07
CiAKIHByb3RlY3RlZDoKLSAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQm
LCBGaWVsZE93bmVyJiwgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlcik7CisgICAgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50JiwgRmllbGRPd25lciYsIGNvbnN0IFJhbmdlJiwg
Y29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlcik7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVu
dCBmdW5jdGlvbnM6CiAgICAgYm9vbCBoYXNWYWx1ZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQg
aW5pdGlhbGl6ZShjb25zdCBBdG9tU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRFbXB0eVZhbHVlKCkg
ZmluYWw7Ci0gICAgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQpIGZpbmFsOworICAgIHZvaWQg
c2V0RW1wdHlWYWx1ZShFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBmaW5hbDsKKyAg
ICB2b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGludCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9F
dmVudCkgZmluYWw7CiAgICAgaW50IHZhbHVlQXNJbnRlZ2VyKCkgY29uc3QgZmluYWw7CiAgICAg
U3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIC8vIERh
dGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKICAgICBTdHJpbmcgdmFsdWUoKSBjb25zdCBm
aW5hbDsKKyAgICB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZpbmFs
OworICAgIHZvaWQgZGlkQmx1cigpIGZpbmFsOwogCiAgICAgU3RyaW5nIGZvcm1hdFZhbHVlKGlu
dCkgY29uc3Q7CiAKKyAgICBjb25zdCBSYW5nZSBtX3JhbmdlOwogICAgIGNvbnN0IFN0cmluZyBt
X3BsYWNlaG9sZGVyOwogICAgIGludCBtX3ZhbHVlIHsgMCB9OwogICAgIGJvb2wgbV9oYXNWYWx1
ZSB7IGZhbHNlIH07CisgICAgU3RyaW5nQnVpbGRlciBtX3R5cGVBaGVhZEJ1ZmZlcjsKKyAgICBN
b25vdG9uaWNUaW1lIG1fbGFzdERpZ2l0Q2hhclRpbWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCmluZGV4IGRmNTRiZTgxODRmMjkwYWQ4ZTFlMjQy
ZTdiMDE5N2YwMzM2NGM2NjMuLmJmNjAyNTVjZGRjMTE5YTdjNGM3ZGQ1NmMzMDAzYzE1MjVkYzBk
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCkBAIC02MywxNiArNjMsMTYgQEAgdm9pZCBEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBz
ZXVkbykKICAgICBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShwc2V1ZG8pOwogfQog
Ci12b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUoKQordm9p
ZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKEV2ZW50QmVoYXZp
b3IgZXZlbnRCZWhhdmlvcikKIHsKICAgICBtX3NlbGVjdGVkSW5kZXggPSBpbnZhbGlkSW5kZXg7
Ci0gICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKGV2ZW50
QmVoYXZpb3IpOwogfQogCi12b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnNldFZh
bHVlQXNJbnRlZ2VyKGludCBuZXdTZWxlY3RlZEluZGV4KQordm9pZCBEYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgbmV3U2VsZWN0ZWRJbmRleCwgRXZl
bnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIG1fc2VsZWN0ZWRJbmRleCA9IHN0ZDo6
bWF4KDAsIHN0ZDo6bWluKG5ld1NlbGVjdGVkSW5kZXgsIHN0YXRpY19jYXN0PGludD4obV9zeW1i
b2xzLnNpemUoKSAtIDEpKSk7Ci0gICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7CisgICAgdXBkYXRl
VmlzaWJsZVZhbHVlKGV2ZW50QmVoYXZpb3IpOwogfQogCiBTdHJpbmcgRGF0ZVRpbWVTeW1ib2xp
Y0ZpZWxkRWxlbWVudDo6dmFsdWUoKSBjb25zdApAQCAtOTUsNiArOTUsMTEgQEAgU3RyaW5nIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0
dXJuIGhhc1ZhbHVlKCkgPyBtX3N5bWJvbHNbbV9zZWxlY3RlZEluZGV4XSA6IHZpc2libGVFbXB0
eVZhbHVlKCk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxl
S2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50JikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
IGFmdGVyIGFkZGluZyBsYXlvdXQgZm9yIDxpbnB1dCB0eXBlPXRpbWU+LgorfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9U
WVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQuaAppbmRleCA2N2E4MDc4NDA1YjZkYTY1ZmNkMGMwNjc1MzBk
ZGVmZTFmMjdkMGUyLi4zOGRmOTIxZDEwYmJmZDIyNWE1NWRhNzI5ZjcyNjc3NThkNzM4MGFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmll
bGRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudC5oCkBAIC0zOSw4ICszOSw4IEBAIHByb3RlY3RlZDoKICAgICBzaXpl
X3Qgc3ltYm9sc1NpemUoKSBjb25zdCB7IHJldHVybiBtX3N5bWJvbHMuc2l6ZSgpOyB9CiAgICAg
Ym9vbCBoYXNWYWx1ZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBB
dG9tU3RyaW5nJiBwc2V1ZG8pOwotICAgIHZvaWQgc2V0RW1wdHlWYWx1ZSgpIGZpbmFsOwotICAg
IHZvaWQgc2V0VmFsdWVBc0ludGVnZXIoaW50KSBmaW5hbDsKKyAgICB2b2lkIHNldEVtcHR5VmFs
dWUoRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCkgZmluYWw7CisgICAgdm9pZCBzZXRW
YWx1ZUFzSW50ZWdlcihpbnQsIEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpIGZpbmFs
OwogICAgIGludCB2YWx1ZUFzSW50ZWdlcigpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgpAQCAt
NTEsNiArNTEsNyBAQCBwcml2YXRlOgogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0
aW9uczoKICAgICBTdHJpbmcgdmFsdWUoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgdmlzaWJs
ZVZhbHVlKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJv
YXJkRXZlbnQmKSBmaW5hbDsKIAogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+IG1fc3ltYm9sczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuY3BwCmluZGV4IGY4NzFm
MmVhY2E2NzgxZmFmOTdlNjRhNmQwZjA2NTQ0NzdkOWI5ZTcuLjdlOGIxN2I5NTY4Mzk1MjcyZDAw
ODgxODJkOTg0ZDBkNDAxMmNiOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RhdGVDb21wb25lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29t
cG9uZW50cy5jcHAKQEAgLTQxLDE1ICs0MSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Ly8gSFRNTCB1c2VzIElTTy04NjAxIGZvcm1hdCB3aXRoIHllYXIgPj0gMS4gR3JlZ29yaWFuIGNh
bGVuZGFyIHN0YXJ0ZWQgaW4KLS8vIDE1ODIuIEhvd2V2ZXIsIHdlIG5lZWQgdG8gc3VwcG9ydCAw
MDAxLTAxLTAxIGluIEdyZWdvcmlhbiBjYWxlbmRhciBydWxlLgotc3RhdGljIGNvbnN0ZXhwciBp
bnQgbWluaW11bVllYXIgPSAxOwotCi0vLyBEYXRlIGluIEVDTUFTY3JpcHQgY2FuJ3QgcmVwcmVz
ZW50IGRhdGVzIGxhdGVyIHRoYW4gMjc1NzYwLTA5LTEzVDAwOjAwWi4KLS8vIFNvLCB3ZSBoYXZl
IHRoZSBzYW1lIHVwcGVyIGxpbWl0IGluIEhUTUw1IGRhdGUvdGltZSB0eXBlcy4KLXN0YXRpYyBj
b25zdGV4cHIgaW50IG1heGltdW1ZZWFyID0gMjc1NzYwOwotCi0vLyBIVE1MZGVmaW5lcyBtaW5p
bXVtIHdlZWsgb2YgeWVhciBpcyBvbmUuCisvLyBIVE1MIGRlZmluZXMgbWluaW11bSB3ZWVrIG9m
IHllYXIgaXMgb25lLgogc3RhdGljIGNvbnN0ZXhwciBpbnQgbWluaW11bVdlZWtOdW1iZXIgPSAx
OwogCiAvLyBIVE1MIGRlZmluZXMgbWF4aW11bSB3ZWVrIG9mIHllYXIgaXMgNTMuCkBAIC0xNTEs
NyArMTQzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gYm9vbCBEYXRlQ29t
cG9uZW50czo6cGFyc2VZZWFyKFN0cmluZ1BhcnNpbmdCdWYKICAgICBpZiAoZGlnaXRzTGVuZ3Ro
IDwgNCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYXV0byB5ZWFyID0gcGFyc2VJbnRX
aXRoaW5MaW1pdHMoYnVmZmVyLCBkaWdpdHNMZW5ndGgsIG1pbmltdW1ZZWFyLCBtYXhpbXVtWWVh
cik7CisgICAgYXV0byB5ZWFyID0gcGFyc2VJbnRXaXRoaW5MaW1pdHMoYnVmZmVyLCBkaWdpdHNM
ZW5ndGgsIG1pbmltdW1ZZWFyKCksIG1heGltdW1ZZWFyKCkpOwogICAgIGlmICgheWVhcikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xNjEsMTggKzE1MywxOCBAQCB0ZW1wbGF0ZTx0eXBl
bmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIERhdGVDb21wb25lbnRzOjpwYXJzZVllYXIoU3RyaW5n
UGFyc2luZ0J1ZgogCiBzdGF0aWMgYm9vbCB3aXRoaW5IVE1MRGF0ZUxpbWl0cyhpbnQgeWVhciwg
aW50IG1vbnRoKQogewotICAgIGlmICh5ZWFyIDwgbWluaW11bVllYXIpCisgICAgaWYgKHllYXIg
PCBEYXRlQ29tcG9uZW50czo6bWluaW11bVllYXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICh5ZWFyIDwgbWF4aW11bVllYXIpCisgICAgaWYgKHllYXIgPCBEYXRlQ29tcG9uZW50
czo6bWF4aW11bVllYXIoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgcmV0dXJuIG1vbnRo
IDw9IG1heGltdW1Nb250aEluTWF4aW11bVllYXI7CiB9CiAKIHN0YXRpYyBib29sIHdpdGhpbkhU
TUxEYXRlTGltaXRzKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBtb250aERheSkKIHsKLSAgICBp
ZiAoeWVhciA8IG1pbmltdW1ZZWFyKQorICAgIGlmICh5ZWFyIDwgRGF0ZUNvbXBvbmVudHM6Om1p
bmltdW1ZZWFyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoeWVhciA8IG1heGlt
dW1ZZWFyKQorICAgIGlmICh5ZWFyIDwgRGF0ZUNvbXBvbmVudHM6Om1heGltdW1ZZWFyKCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChtb250aCA8IG1heGltdW1Nb250aEluTWF4aW11
bVllYXIpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTgxLDkgKzE3Myw5IEBAIHN0YXRpYyBi
b29sIHdpdGhpbkhUTUxEYXRlTGltaXRzKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBtb250aERh
eSkKIAogc3RhdGljIGJvb2wgd2l0aGluSFRNTERhdGVMaW1pdHMoaW50IHllYXIsIGludCBtb250
aCwgaW50IG1vbnRoRGF5LCBpbnQgaG91ciwgaW50IG1pbnV0ZSwgaW50IHNlY29uZCwgaW50IG1p
bGxpc2Vjb25kKQogewotICAgIGlmICh5ZWFyIDwgbWluaW11bVllYXIpCisgICAgaWYgKHllYXIg
PCBEYXRlQ29tcG9uZW50czo6bWluaW11bVllYXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICh5ZWFyIDwgbWF4aW11bVllYXIpCisgICAgaWYgKHllYXIgPCBEYXRlQ29tcG9uZW50
czo6bWF4aW11bVllYXIoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG1vbnRoIDwg
bWF4aW11bU1vbnRoSW5NYXhpbXVtWWVhcikKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00MzYs
NyArNDI4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gYm9vbCBEYXRlQ29t
cG9uZW50czo6cGFyc2VXZWVrKFN0cmluZ1BhcnNpbmdCdWYKICAgICBpZiAoIXdlZWspCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChtX3llYXIgPT0gbWF4aW11bVllYXIgJiYgKndl
ZWsgPiBtYXhpbXVtV2Vla0luTWF4aW11bVllYXIpCisgICAgaWYgKG1feWVhciA9PSBtYXhpbXVt
WWVhcigpICYmICp3ZWVrID4gbWF4aW11bVdlZWtJbk1heGltdW1ZZWFyKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBtX3dlZWsgPSAqd2VlazsKQEAgLTY1Niw3ICs2NDgsNyBAQCBib29s
IERhdGVDb21wb25lbnRzOjpzZXRNb250aHNTaW5jZUVwb2NoKGRvdWJsZSBtb250aHMpCiAgICAg
bW9udGhzID0gcm91bmQobW9udGhzKTsKICAgICBkb3VibGUgZG91YmxlTW9udGggPSBwb3NpdGl2
ZUZtb2QobW9udGhzLCAxMik7CiAgICAgZG91YmxlIGRvdWJsZVllYXIgPSAxOTcwICsgKG1vbnRo
cyAtIGRvdWJsZU1vbnRoKSAvIDEyOwotICAgIGlmIChkb3VibGVZZWFyIDwgbWluaW11bVllYXIg
fHwgbWF4aW11bVllYXIgPCBkb3VibGVZZWFyKQorICAgIGlmIChkb3VibGVZZWFyIDwgbWluaW11
bVllYXIoKSB8fCBtYXhpbXVtWWVhcigpIDwgZG91YmxlWWVhcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGludCB5ZWFyID0gc3RhdGljX2Nhc3Q8aW50Pihkb3VibGVZZWFyKTsKICAgICBp
bnQgbW9udGggPSBzdGF0aWNfY2FzdDxpbnQ+KGRvdWJsZU1vbnRoKTsKQEAgLTY4Niw3ICs2Nzgs
NyBAQCBib29sIERhdGVDb21wb25lbnRzOjpzZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yV2Vl
ayhkb3VibGUgbXMpCiAgICAgbXMgPSByb3VuZChtcyk7CiAKICAgICBtX3llYXIgPSBtc1RvWWVh
cihtcyk7Ci0gICAgaWYgKG1feWVhciA8IG1pbmltdW1ZZWFyIHx8IG1feWVhciA+IG1heGltdW1Z
ZWFyKQorICAgIGlmIChtX3llYXIgPCBtaW5pbXVtWWVhcigpIHx8IG1feWVhciA+IG1heGltdW1Z
ZWFyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGludCB5ZWFyRGF5ID0gZGF5SW5Z
ZWFyKG1zLCBtX3llYXIpOwpAQCAtNjk0LDcgKzY4Niw3IEBAIGJvb2wgRGF0ZUNvbXBvbmVudHM6
OnNldE1pbGxpc2Vjb25kc1NpbmNlRXBvY2hGb3JXZWVrKGRvdWJsZSBtcykKICAgICBpZiAoeWVh
ckRheSA8IG9mZnNldCkgewogICAgICAgICAvLyBUaGUgZGF5IGJlbG9uZ3MgdG8gdGhlIGxhc3Qg
d2VlayBvZiB0aGUgcHJldmlvdXMgeWVhci4KICAgICAgICAgbV95ZWFyLS07Ci0gICAgICAgIGlm
IChtX3llYXIgPD0gbWluaW11bVllYXIpCisgICAgICAgIGlmIChtX3llYXIgPD0gbWluaW11bVll
YXIoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgbV93ZWVrID0gbWF4V2Vl
a051bWJlckluWWVhcigpOwogICAgIH0gZWxzZSB7CkBAIC03MDMsNyArNjk1LDcgQEAgYm9vbCBE
YXRlQ29tcG9uZW50czo6c2V0TWlsbGlzZWNvbmRzU2luY2VFcG9jaEZvcldlZWsoZG91YmxlIG1z
KQogICAgICAgICAgICAgbV95ZWFyKys7CiAgICAgICAgICAgICBtX3dlZWsgPSAxOwogICAgICAg
ICB9Ci0gICAgICAgIGlmIChtX3llYXIgPiBtYXhpbXVtWWVhciB8fCAobV95ZWFyID09IG1heGlt
dW1ZZWFyICYmIG1fd2VlayA+IG1heGltdW1XZWVrSW5NYXhpbXVtWWVhcikpCisgICAgICAgIGlm
IChtX3llYXIgPiBtYXhpbXVtWWVhcigpIHx8IChtX3llYXIgPT0gbWF4aW11bVllYXIoKSAmJiBt
X3dlZWsgPiBtYXhpbXVtV2Vla0luTWF4aW11bVllYXIpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KICAgICBtX3R5cGUgPSBXZWVrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Rh
dGVDb21wb25lbnRzLmgKaW5kZXggYzk3MjFmNzVkYjA5Y2ZhOTVmYTNkY2FkMmNjOTIxNjRiZDlm
NTU4My4uYjNiN2Y1MWNkMzVjYmM3NGY2YWZjZjU4NTY0ZmI5YmUwMGQ5YzE4MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oCkBAIC0xMzcsNiArMTM3LDE0IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3RleHByIGlubGluZSBkb3VibGUgbWF4aW11bVRpbWUoKSB7
IHJldHVybiA4NjM5OTk5OTsgfSAvLyAyMzo1OTo1OS45OTkKICAgICBzdGF0aWMgY29uc3RleHBy
IGlubGluZSBkb3VibGUgbWF4aW11bVdlZWsoKSB7IHJldHVybiA4NjM5OTk5NTY4MDAwMDAwLjA7
IH0gLy8gMjc1NzYwLTA5LTA4LCB0aGUgTW9uZGF5IG9mIHRoZSB3ZWVrIGluY2x1ZGluZyAyNzU3
NjAtMDktMTMuCiAKKyAgICAvLyBIVE1MIHVzZXMgSVNPLTg2MDEgZm9ybWF0IHdpdGggeWVhciA+
PSAxLiBHcmVnb3JpYW4gY2FsZW5kYXIgc3RhcnRlZCBpbgorICAgIC8vIDE1ODIuIEhvd2V2ZXIs
IHdlIG5lZWQgdG8gc3VwcG9ydCAwMDAxLTAxLTAxIGluIEdyZWdvcmlhbiBjYWxlbmRhciBydWxl
LgorICAgIHN0YXRpYyBjb25zdGV4cHIgaW5saW5lIGludCBtaW5pbXVtWWVhcigpIHsgcmV0dXJu
IDE7IH0KKworICAgIC8vIERhdGUgaW4gRUNNQVNjcmlwdCBjYW4ndCByZXByZXNlbnQgZGF0ZXMg
bGF0ZXIgdGhhbiAyNzU3NjAtMDktMTNUMDA6MDBaLgorICAgIC8vIFNvLCB3ZSBoYXZlIHRoZSBz
YW1lIHVwcGVyIGxpbWl0IGluIEhUTUw1IGRhdGUvdGltZSB0eXBlcy4KKyAgICBzdGF0aWMgY29u
c3RleHByIGlubGluZSBpbnQgbWF4aW11bVllYXIoKSB7IHJldHVybiAyNzU3NjA7IH0KKwogcHJp
dmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIHBhcnNlWWVh
cihTdHJpbmdQYXJzaW5nQnVmZmVyPENoYXJhY3RlclR5cGU+Jik7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ2hhcmFjdGVyVHlwZT4gYm9vbCBwYXJzZVRpbWVab25lKFN0cmluZ1BhcnNpbmdCdWZm
ZXI8Q2hhcmFjdGVyVHlwZT4mKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YjdhMmNiMzRhMWFkN2ZhNzVjMDkyOTYzZjNk
MGVjMGE3MTVkMDMyLi4zMWVhOWFhODZjYjdiZTljZDgyODQ0MjQxYjgzNGE1NDRhODAwNWZiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDgtMjggIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0
aGlAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gSGFuZGxlIGV2ZW50cyBmb3IgZGF0ZSBp
bnB1dHMgd2l0aCBlZGl0YWJsZSBjb21wb25lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU5MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byB2ZXJpZnkgY29ycmVjdG5lc3Mg
Zm9yIGtleWJvYXJkIGFuZCBtb3VzZSBpbnB1dHMgaW4gZGF0ZQorICAgICAgICBpbnB1dHMgd2l0
aCBlZGl0YWJsZSBjb21wb25lbnRzLiBUaGVzZSB0ZXN0cyBhbHNvIGVuc3VyZSB0aGF0IHRoZQor
ICAgICAgICBhcHByb3ByaWF0ZSBldmVudHMgYXJlIGRpc3BhdGNoZWQ6ICJjbGljayIsICJibHVy
IiwgImZvY3VzIiwgImlucHV0IgorICAgICAgICBhbmQgImNoYW5nZSIuCisKKyAgICAgICAgKiBU
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxl
LWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVyLWV2ZW50
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLWVk
aXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVy
LWV2ZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0
YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1rZXlib2FyZC1ldmVudHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0
YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1rZXlib2FyZC1ldmVudHMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29t
cG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtbW91c2UtZXZlbnRzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9u
ZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtbW91c2UtZXZlbnRzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0wOC0y
NSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09T
XSBEYXRlIGlucHV0cyBzaG91bGQgY29udGFpbiBlZGl0YWJsZSBjb21wb25lbnRzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBkY2RmNjI1YTJmNTExZjJmNmViNjVlMDM0NTAzOGQwOTYxODNjMzUxLi43
OWUxNTU5MzQzYmE3ODZhMTc0NjMwMWUzOWIxYTMxZThmNDhkOGJjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTMwLDYgKzMwLDcgQEAgZWRpdGluZy91bmRvLW1hbmFnZXIgWyBTa2lwIF0KIHRpbGVk
LWRyYXdpbmcgWyBTa2lwIF0KIGZhc3QvY3NzL2lvcyBbIFNraXAgXQogZmFzdC9jc3Mvd2F0Y2hv
cyBbIFNraXAgXQorZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cyBbIFNr
aXAgXQogZmFzdC9kb20vV2luZG93L3dhdGNob3MgWyBTa2lwIF0KIGZhc3QvZm9ybXMvc2VsZWN0
L21hYy13azIgWyBTa2lwIF0KIGZhc3QvZm9ybXMvdGV4dGFyZWEvaW9zIFsgU2tpcCBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25l
bnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1mb2N1cy1hbmQtYmx1ci1ldmVudHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9u
ZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZGU2ODFmN2M4MWU5Nzc2NTM4NzVjODRhMTc1YTI1NGMxMjE3
MzYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUt
ZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJs
dXItZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQwIEBACitUZXN0IGZvciBmb2N1cyBh
bmQgYmx1ciBldmVudHMgZm9yIDxpbnB1dCB0eXBlPWRhdGU+CisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitGb2N1cy9ibHVyIHVzaW5nIG1vdXNlCisKK1BBU1MgZm9jdXNFdmVudHNG
aXJlZCBpcyAxCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAwCitQQVNTIGZvY3VzRXZlbnRzRmly
ZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMAorUEFTUyBmb2N1c0V2ZW50c0ZpcmVk
IGlzIDEKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDAKK1BBU1MgZm9jdXNFdmVudHNGaXJlZCBp
cyAxCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAwCitQQVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMg
MQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMQorCitGb2N1cy9ibHVyIHVzaW5nIGtleWJvYXJk
CisKK1BBU1MgZm9jdXNFdmVudHNGaXJlZCBpcyAxCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAw
CitQQVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMAor
UEFTUyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDEKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDAKK1BB
U1MgZm9jdXNFdmVudHNGaXJlZCBpcyAxCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAxCitQQVNT
IGZvY3VzRXZlbnRzRmlyZWQgaXMgMgorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBm
b2N1c0V2ZW50c0ZpcmVkIGlzIDIKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDEKK1BBU1MgZm9j
dXNFdmVudHNGaXJlZCBpcyAyCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAxCitQQVNTIGZvY3Vz
RXZlbnRzRmlyZWQgaXMgMgorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVk
aXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUt
Y29tcG9uZW50cy1mb2N1cy1hbmQtYmx1ci1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWIwNGI0
YTMxYzBkMDQxMmVmMzBkNzQ0ZDJlYmM5ZTU4YTQwZDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVk
aXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwx
MjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
aW5wdXQgeworICAgIHdpZHRoOiAzMDBweDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUt
ZWRpdC10ZXh0IHsKKyAgICBmb250LXNpemU6IDMwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRh
dGV0aW1lLWVkaXQtbW9udGgtZmllbGQgeworICAgIGZvbnQtc2l6ZTogMzBweDsKK30KKworaW5w
dXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQgeworICAgIGZvbnQtc2l6ZTogMzBw
eDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkIHsKKyAgICBm
b250LXNpemU6IDMwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxpbnB1dCBp
ZD0iYmVmb3JlIiB0eXBlPSJ0ZXh0Ij4KKzxpbnB1dCBpZD0iaW5wdXQiIHR5cGU9ImRhdGUiIHZh
bHVlPSIyMDIwLTA4LTI2Ij4KKzxpbnB1dCBpZD0iYWZ0ZXIiIHR5cGU9InRleHQiPgorCis8c2Ny
aXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCBmb3IgZm9jdXMgYW5kIGJsdXIgZXZlbnRzIGZvciAm
bHQ7aW5wdXQgdHlwZT1kYXRlJmd0OyIpOworCitibHVyRXZlbnRzRmlyZWQgPSAwOworZnVuY3Rp
b24gb25CbHVyRXZlbnQoKSB7CisgICAgYmx1ckV2ZW50c0ZpcmVkKys7Cit9CisKK2ZvY3VzRXZl
bnRzRmlyZWQgPSAwOworZnVuY3Rpb24gb25Gb2N1c0V2ZW50KCkgeworICAgIGZvY3VzRXZlbnRz
RmlyZWQrKzsKK30KKworZnVuY3Rpb24gYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQobnVtRm9jdXNF
dmVudHMsIG51bUJsdXJFdmVudHMpIHsKKyAgICBzaG91bGRCZSgiZm9jdXNFdmVudHNGaXJlZCIs
IG51bUZvY3VzRXZlbnRzLnRvU3RyaW5nKCkpOworICAgIHNob3VsZEJlKCJibHVyRXZlbnRzRmly
ZWQiLCBudW1CbHVyRXZlbnRzLnRvU3RyaW5nKCkpOworfQorCitmdW5jdGlvbiByZXNldEZvY3Vz
QW5kQmx1ckNvdW50KCkgeworICAgIGJsdXJFdmVudHNGaXJlZCA9IDA7CisgICAgZm9jdXNFdmVu
dHNGaXJlZCA9IDA7Cit9CisKK2Z1bmN0aW9uIG1vdXNlQ2xpY2tPbih4LCB5KSB7CisgICAgaWYg
KCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgIHJldHVybjsKKyAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4ICsgaW5wdXQub2Zmc2V0TGVmdCwgeSArIGlucHV0Lm9mZnNldFRvcCk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
fQorCitpbnB1dC5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgb25CbHVyRXZlbnQpOworaW5wdXQu
YWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBvbkZvY3VzRXZlbnQpOworCitjb25zdCBjZW50ZXIg
PSBpbnB1dC5vZmZzZXRIZWlnaHQgLyAyOworCitkZWJ1ZygiRm9jdXMvYmx1ciB1c2luZyBtb3Vz
ZVxuIik7CisKKy8vIENsaWNrIG9uIG1vbnRoIGZpZWxkLgorbW91c2VDbGlja09uKDIwLCBjZW50
ZXIpOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMSwgMCk7CisvLyBDbGljayBvbiBkYXkgZmll
bGQuCittb3VzZUNsaWNrT24oNjAsIGNlbnRlcik7Cithc3NlcnRGb2N1c0FuZEJsdXJDb3VudCgx
LCAwKTsKKy8vIENsaWNrIG9uIHllYXIgZmllbGQuCittb3VzZUNsaWNrT24oMTIwLCBjZW50ZXIp
OworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMSwgMCk7CisvLyBDbGljayBvbiBjb250cm9sLCBi
dXQgbm90IGEgc3BlY2lmaWMgZmllbGQuCittb3VzZUNsaWNrT24oMjUwLCBjZW50ZXIpOworYXNz
ZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMSwgMCk7CisvLyBDbGljayBvdXRzaWRlIGNvbnRyb2wuCitt
b3VzZUNsaWNrT24oaW5wdXQub2Zmc2V0V2lkdGggKyA1LCBpbnB1dC5vZmZzZXRIZWlnaHQgKyA1
KTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDEpOworcmVzZXRGb2N1c0FuZEJsdXJDb3Vu
dCgpOworCitkZWJ1ZygiXG5Gb2N1cy9ibHVyIHVzaW5nIGtleWJvYXJkXG4iKTsKKworVUlIZWxw
ZXIuYWN0aXZhdGVFbGVtZW50KGJlZm9yZSk7CisvLyBGb2N1cyBvbiBtb250aCBmaWVsZC4KK1VJ
SGVscGVyLmtleURvd24oIlx0Iik7Cithc3NlcnRGb2N1c0FuZEJsdXJDb3VudCgxLCAwKTsKKy8v
IEZvY3VzIG9uIGRheSBmaWVsZC4KK1VJSGVscGVyLmtleURvd24oIlx0Iik7Cithc3NlcnRGb2N1
c0FuZEJsdXJDb3VudCgxLCAwKTsKKy8vIEZvY3VzIG9uIHllYXIgZmllbGQuCitVSUhlbHBlci5r
ZXlEb3duKCJcdCIpOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMSwgMCk7CisvLyBGb2N1cyBv
dXQuCitVSUhlbHBlci5rZXlEb3duKCJcdCIpOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMSwg
MSk7CisvLyBGb2N1cyBvbiB5ZWFyIGZpZWxkLgorVUlIZWxwZXIua2V5RG93bigiXHQiLCBbInNo
aWZ0S2V5Il0pOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMiwgMSk7CisvLyBGb2N1cyBvbiBk
YXkgZmllbGQuCitVSUhlbHBlci5rZXlEb3duKCJcdCIsIFsic2hpZnRLZXkiXSk7Cithc3NlcnRG
b2N1c0FuZEJsdXJDb3VudCgyLCAxKTsKKy8vIEZvY3VzIG9uIG1vbnRoIGZpZWxkLgorVUlIZWxw
ZXIua2V5RG93bigiXHQiLCBbInNoaWZ0S2V5Il0pOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQo
MiwgMSk7CisvLyBGb2N1cyBvdXQuCitVSUhlbHBlci5rZXlEb3duKCJcdCIsIFsic2hpZnRLZXki
XSk7Cithc3NlcnRGb2N1c0FuZEJsdXJDb3VudCgyLCAyKTsKKworPC9zY3JpcHQ+CisKKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0
ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWtleWJv
YXJkLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0
ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1rZXlib2FyZC1l
dmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNTg3NmI3MzU4NDY0OWY4Mzk1YjAxYzdl
ZTNiMmZlYTg5OTllNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1r
ZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTkgQEAKK1Rlc3QgZm9yIGtl
eWJvYXJkIG9wZXJhdGlvbnMgZm9yIDxpbnB1dCB0eXBlPWRhdGU+CisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCisKK0RpZ2l0IGtleXMKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTIt
MDktMDIiCitQQVNTIGNoYW5nZUV2ZW50c0ZpcmVkIGlzIDQKK1BBU1MgaW5wdXRFdmVudHNGaXJl
ZCBpcyA0CisKK0RpZ2l0IGtleXMgd2l0aCBsZWFkaW5nIHplcm8KK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjAwMzQtMDUtMDYiCitQQVNTIGNoYW5nZUV2ZW50c0ZpcmVkIGlzIDMKK1BBU1MgaW5wdXRF
dmVudHNGaXJlZCBpcyAzCisKK0RpZ2l0IGtleXMgYW5kIGJhY2tzcGFjZSBrZXkKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjIwMjAtMDItMDQiCitQQVNTIGNoYW5nZUV2ZW50c0ZpcmVkIGlzIDYKK1BB
U1MgaW5wdXRFdmVudHNGaXJlZCBpcyA2CisKK0RpZ2l0IGtleXMgd2l0aCB0aW1lb3V0CitQQVNT
IGlucHV0LnZhbHVlIGlzICIwMDAxLTAyLTA0IgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBpcyAy
CitQQVNTIGlucHV0RXZlbnRzRmlyZWQgaXMgMgorCitEaWdpdCBrZXlzIGNsYW1wIHZhbHVlCitQ
QVNTIGlucHV0LnZhbHVlIGlzICI5OTk5LTEyLTMxIgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBp
cyA0CitQQVNTIGlucHV0RXZlbnRzRmlyZWQgaXMgNAorCitMZWZ0L1JpZ2h0IGFycm93IGtleXMK
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjAwMDItMDItMDIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIw
MDAyLTAzLTAzIgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBpcyAzCitQQVNTIGlucHV0RXZlbnRz
RmlyZWQgaXMgMworCitUYWIga2V5CitQQVNTIGlucHV0LnZhbHVlIGlzICIwMDAyLTAyLTAyIgor
UEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIGlzICJhZnRlciIKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjAwMDItMDMtMDMiCitQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgImJl
Zm9yZSIKK1BBU1MgY2hhbmdlRXZlbnRzRmlyZWQgaXMgMworUEFTUyBpbnB1dEV2ZW50c0ZpcmVk
IGlzIDMKKworQmFja3NwYWNlIGtleQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiIgorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMjAyMC0wNy0yNiIKK1BBU1MgY2hhbmdlRXZlbnRzRmlyZWQgaXMgMgorUEFT
UyBpbnB1dEV2ZW50c0ZpcmVkIGlzIDIKKworRGVsZXRlIGtleQorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiIgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBpcyAxCitQQVNTIGlucHV0RXZlbnRzRmlyZWQg
aXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisg
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUt
Y29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2Rh
dGUtZWRpdGFibGUtY29tcG9uZW50cy1rZXlib2FyZC1ldmVudHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
MmNhNjY4NjhmNzRkNjA2OTRlOGVkMDhmNzViZDgzYzEzOTM5MDllCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9k
YXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwx
NzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CisKKzxpbnB1dCBpZD0iYmVmb3JlIiB0eXBlPSJ0ZXh0Ij4KKzxpbnB1dCBpZD0iaW5w
dXQiIHR5cGU9ImRhdGUiPgorPGlucHV0IGlkPSJhZnRlciIgdHlwZT0idGV4dCI+CisKKzxzY3Jp
cHQ+CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitjaGFuZ2VFdmVudHNGaXJlZCA9IDA7Citm
dW5jdGlvbiBvbkNoYW5nZUV2ZW50KCkgeworICAgIGNoYW5nZUV2ZW50c0ZpcmVkKys7Cit9CisK
K2lucHV0RXZlbnRzRmlyZWQgPSAwOworZnVuY3Rpb24gb25JbnB1dEV2ZW50KCkgeworICAgIGlu
cHV0RXZlbnRzRmlyZWQrKzsKK30KKworZnVuY3Rpb24gYmVnaW5UZXN0KHRpdGxlLCB2YWx1ZSkg
eworICAgIGRlYnVnKCJcbiIgKyB0aXRsZSk7CisgICAgaW5wdXQudmFsdWUgPSB2YWx1ZSB8fCAi
IjsKKyAgICBpbnB1dC5ibHVyKCk7CisgICAgaW5wdXQuZm9jdXMoKTsKKworICAgIGNoYW5nZUV2
ZW50c0ZpcmVkID0gMDsKKyAgICBpbnB1dEV2ZW50c0ZpcmVkID0gMDsKK30KKworaW5wdXQuYWRk
RXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgb25DaGFuZ2VFdmVudCk7CitpbnB1dC5hZGRFdmVudExp
c3RlbmVyKCJpbnB1dCIsIG9uSW5wdXRFdmVudCk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCBhc3luYyAoKSA9PiB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgZm9yIGtleWJvYXJkIG9wZXJh
dGlvbnMgZm9yICZsdDtpbnB1dCB0eXBlPWRhdGUmZ3Q7Iik7CisKKyAgICBiZWdpblRlc3QoIkRp
Z2l0IGtleXMiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gW21tXS9kZC95eXl5
CisgICAgVUlIZWxwZXIua2V5RG93bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIC0+IFswOV0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ci
KTsgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwOS9bZGRdL3l5eXkKKyAgICBVSUhlbHBl
ci5rZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDkv
WzAyXS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigicmlnaHRBcnJvdyIpOyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIC0+IDA5LzAyL1t5eXl5XQorICAgIFVJSGVscGVyLmtleURvd24oIjIi
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwOS8wMi9bMDAwMl0KKyAg
ICBVSUhlbHBlci5rZXlEb3duKCIwIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gLT4gMDkvMDIvWzAwMjBdCisgICAgVUlIZWxwZXIua2V5RG93bigiMSIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA5LzAyL1swMjAxXQorICAgIFVJSGVscGVyLmtl
eURvd24oIjIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwOS8wMi9b
MjAxMl0KKyAgICBVSUhlbHBlci5rZXlEb3duKCJBIik7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gSWdub3JlZC4KKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImlucHV0LnZh
bHVlIiwgIjIwMTItMDktMDIiKTsKKyAgICBzaG91bGRCZSgiY2hhbmdlRXZlbnRzRmlyZWQiLCAi
NCIpOworICAgIHNob3VsZEJlKCJpbnB1dEV2ZW50c0ZpcmVkIiwgIjQiKTsKKworICAgIGJlZ2lu
VGVzdCgiRGlnaXQga2V5cyB3aXRoIGxlYWRpbmcgemVybyIpOyAgICAgICAgICAgICAvLyBbbW1d
L2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCIwIik7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gLT4gWzAwXS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiNSIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswNV0vZGQveXl5eQorICAg
IFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAgICAgICAgICAgICAgICAgICAgICAv
LyAtPiAwNS9bZGRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCIwIik7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDUvWzAwXS95eXl5CisgICAgVUlIZWxwZXIua2V5
RG93bigiNiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA1L1swNl0v
eXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAgICAgICAgICAgICAg
ICAgICAgICAvLyAtPiAwNS8wNi9beXl5eV0KKyAgICBVSUhlbHBlci5rZXlEb3duKCIwIik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDUvMDYvWzAwMDFdCisgICAgVUlI
ZWxwZXIua2V5RG93bigiMCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+
IDA1LzA2L1swMDAxXQorICAgIFVJSGVscGVyLmtleURvd24oIjMiKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAtPiAwNS8wNi9bMDAwM10KKyAgICBVSUhlbHBlci5rZXlEb3du
KCI0Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDUvMDYvWzAwMzRd
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIwMDM0LTA1LTA2Iik7
CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50c0ZpcmVkIiwgIjMiKTsKKyAgICBzaG91bGRCZSgi
aW5wdXRFdmVudHNGaXJlZCIsICIzIik7CisKKyAgICBiZWdpblRlc3QoIkRpZ2l0IGtleXMgYW5k
IGJhY2tzcGFjZSBrZXkiKTsgICAgICAgICAgICAgLy8gW21tXS9kZC95eXl5CisgICAgVUlIZWxw
ZXIua2V5RG93bigiMSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFsw
MV0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIlxiIik7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyAtPiBbbW1dL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCIy
Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gWzAyXS9kZC95eXl5Cisg
ICAgVUlIZWxwZXIua2V5RG93bigicmlnaHRBcnJvdyIpOyAgICAgICAgICAgICAgICAgICAgICAg
IC8vIC0+IDAyL1tkZF0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjMiKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9bMDNdL3l5eXkKKyAgICBVSUhlbHBlci5r
ZXlEb3duKCJcYiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvW2Rk
XS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiNCIpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIC0+IDAyL1swNF0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0
QXJyb3ciKTsgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wNC9beXl5eV0KKyAgICBV
SUhlbHBlci5rZXlEb3duKCI0Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
LT4gMDIvMDQvWzAwMDRdCisgICAgVUlIZWxwZXIua2V5RG93bigiXGIiKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyLzA0L1t5eXl5XQorICAgIFVJSGVscGVyLmtleURv
d24oIjIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wNC9bMDAw
Ml0KKyAgICBVSUhlbHBlci5rZXlEb3duKCIwIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gLT4gMDIvMDQvWzAwMjBdCisgICAgVUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyLzA0L1swMjAyXQorICAgIFVJSGVs
cGVyLmtleURvd24oIjAiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAw
Mi8wNC9bMjAyMF0KKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImlucHV0LnZhbHVlIiwgIjIw
MjAtMDItMDQiKTsKKyAgICBzaG91bGRCZSgiY2hhbmdlRXZlbnRzRmlyZWQiLCAiNiIpOworICAg
IHNob3VsZEJlKCJpbnB1dEV2ZW50c0ZpcmVkIiwgIjYiKTsKKworICAgIGJlZ2luVGVzdCgiRGln
aXQga2V5cyB3aXRoIHRpbWVvdXQiKTsgICAgICAgICAgICAgICAgICAvLyBbbW1dL2RkL3l5eXkK
KyAgICBVSUhlbHBlci5rZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gLT4gWzAyXS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigicmlnaHRBcnJvdyIp
OyAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyL1tkZF0veXl5eQorICAgIFVJSGVscGVy
LmtleURvd24oIjQiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9b
MDRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gLT4gMDIvMDQvW3l5eXldCisgICAgVUlIZWxwZXIua2V5RG93bigiNCIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyLzA0L1swMDA0XQorICAg
IGF3YWl0IFVJSGVscGVyLmRlbGF5Rm9yKDE1MDApOyAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBXYWl0LgorICAgIFVJSGVscGVyLmtleURvd24oIjEiKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAtPiAwMi8wNC9bMDAwMV0KKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImlucHV0LnZhbHVlIiwgIjAwMDEtMDItMDQiKTsKKyAgICBzaG91bGRCZSgiY2hhbmdlRXZlbnRz
RmlyZWQiLCAiMiIpOworICAgIHNob3VsZEJlKCJpbnB1dEV2ZW50c0ZpcmVkIiwgIjIiKTsKKwor
ICAgIGJlZ2luVGVzdCgiRGlnaXQga2V5cyBjbGFtcCB2YWx1ZSIpOyAgICAgICAgICAgICAgICAg
ICAvLyBbbW1dL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCI5Iik7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gLT4gWzA5XS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5
RG93bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFsxMl0vZGQv
eXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAgICAgICAgICAgICAg
ICAgICAgICAvLyAtPiAxMi9bZGRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCI5Iik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMTIvWzA5XS95eXl5CisgICAgVUlI
ZWxwZXIua2V5RG93bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+
IDEyL1szMV0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAtPiAxMi8zMS9beXl5eV0KKyAgICBVSUhlbHBlci5rZXlEb3du
KCI5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMTIvMzEvWzAwMDld
CisgICAgVUlIZWxwZXIua2V5RG93bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIC0+IDEyLzMxL1swMDk5XQorICAgIFVJSGVscGVyLmtleURvd24oIjkiKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAxMi8zMS9bMDk5OV0KKyAgICBVSUhlbHBl
ci5rZXlEb3duKCI5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMTIv
MzEvWzk5OTldCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICI5OTk5
LTEyLTMxIik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50c0ZpcmVkIiwgIjQiKTsKKyAgICBz
aG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICI0Iik7CisKKyAgICBiZWdpblRlc3QoIkxlZnQv
UmlnaHQgYXJyb3cga2V5cyIpOyAgICAgICAgICAgICAgICAgICAgLy8gW21tXS9kZC95eXl5Cisg
ICAgVUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIC0+IFswMl0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsg
ICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9bZGRdL3l5eXkKKyAgICBVSUhlbHBlci5r
ZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvWzAy
XS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigicmlnaHRBcnJvdyIpOyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIC0+IDAyLzAyL1t5eXl5XQorICAgIFVJSGVscGVyLmtleURvd24oIjIiKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wMi9bMDAwMl0KKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImlucHV0LnZhbHVlIiwgIjAwMDItMDItMDIiKTsKKyAgICBV
SUhlbHBlci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
LT4gMDIvWzAyXS8wMDAyCisgICAgVUlIZWxwZXIua2V5RG93bigiMyIpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyL1swM10vMDAwMgorICAgIFVJSGVscGVyLmtleURv
d24oImxlZnRBcnJvdyIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBbMDJdLzAzLzAw
MDIKKyAgICBVSUhlbHBlci5rZXlEb3duKCIzIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gLT4gWzAzXS8wMy8wMDAyCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1
dC52YWx1ZSIsICIwMDAyLTAzLTAzIik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50c0ZpcmVk
IiwgIjMiKTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICIzIik7CisKKyAgICBi
ZWdpblRlc3QoIlRhYiBrZXkiKTsKKyAgICBVSUhlbHBlci5rZXlEb3duKCIyIik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gWzAyXS9kZC95eXl5CisgICAgVUlIZWxwZXIu
a2V5RG93bigiXHQiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyL1tk
ZF0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjIiKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAtPiAwMi9bMDJdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJcdCIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvMDIvW3l5eXldCisgICAg
VUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IC0+IDAyLzAyL1swMDAyXQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUi
LCAiMDAwMi0wMi0wMiIpOworICAgIFVJSGVscGVyLmtleURvd24oIlx0Iik7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGb2N1cyBvdXQuCisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIiwgImFmdGVyIik7CisgICAgVUlIZWxwZXIu
a2V5RG93bigiXHQiLCBbInNoaWZ0S2V5Il0pOyAgICAgICAgICAgICAgICAgIC8vIC0+IDAyLzAy
L1swMDAyXQorICAgIFVJSGVscGVyLmtleURvd24oIlx0IiwgWyJzaGlmdEtleSJdKTsgICAgICAg
ICAgICAgICAgICAvLyAtPiAwMi9bMDJdLzAwMDIKKyAgICBVSUhlbHBlci5rZXlEb3duKCIzIik7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvWzAzXS8wMDAyCisgICAg
VUlIZWxwZXIua2V5RG93bigiXHQiLCBbInNoaWZ0S2V5Il0pOyAgICAgICAgICAgICAgICAgIC8v
IC0+IFswMl0vMDMvMDAwMgorICAgIFVJSGVscGVyLmtleURvd24oIjMiKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyAtPiBbMDNdLzAzLzAwMDIKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImlucHV0LnZhbHVlIiwgIjAwMDItMDMtMDMiKTsKKyAgICBVSUhlbHBlci5rZXlE
b3duKCJcdCIsIFsic2hpZnRLZXkiXSk7ICAgICAgICAgICAgICAgICAgLy8gRm9jdXMgb3V0Lgor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCIsICJi
ZWZvcmUiKTsKKyAgICBzaG91bGRCZSgiY2hhbmdlRXZlbnRzRmlyZWQiLCAiMyIpOworICAgIHNo
b3VsZEJlKCJpbnB1dEV2ZW50c0ZpcmVkIiwgIjMiKTsKKworICAgIGJlZ2luVGVzdCgiQmFja3Nw
YWNlIGtleSIsICIyMDIwLTA4LTI2Iik7ICAgICAgICAgICAgICAvLyBbMDhdLzI2LzIwMjAKKyAg
ICBVSUhlbHBlci5rZXlEb3duKCJcYiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gLT4gW21tXS8yNi8yMDIwCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1
ZSIsICIiKTsKKyAgICBVSUhlbHBlci5rZXlEb3duKCI3Iik7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gLT4gWzA3XS8yNi8yMDIwCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJpbnB1dC52YWx1ZSIsICIyMDIwLTA3LTI2Iik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50
c0ZpcmVkIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICIyIik7CisK
KyAgICBiZWdpblRlc3QoIkRlbGV0ZSBrZXkiLCAiMjAyMC0wOC0yNiIpOyAgICAgICAgICAgICAg
ICAgLy8gWzA4XS8yNi8yMDIxCisgICAgVUlIZWxwZXIua2V5RG93bigiZGVsZXRlIik7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFttbV0vMjYvMjAyMQorICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiIik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50
c0ZpcmVkIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICIxIik7CisK
KyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRp
dGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtbW91c2UtZXZlbnRzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNv
bXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50cy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDcwY2EwN2U3NzVjMjE0YTc0ODQ1Y2JhNWZlYjA4YmUwM2VlNjc5NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRh
YmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50cy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdCBmb3IgbW91c2UgZXZlbnRzIGZvciA8aW5w
dXQgdHlwZT1kYXRlPgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMjAyMC0wOS0yNiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMjAtMDktMTIi
CitQQVNTIGlucHV0LnZhbHVlIGlzICIzMDMwLTA5LTEyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MzAzMC0wNS0xMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMwMzAtMDUtMTIiCitQQVNTIGNsaWNr
RXZlbnRzRmlyZWQgaXMgNAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRl
LWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9u
ZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtbW91c2UtZXZlbnRzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTVkMTk2ZDU0ZjJjYzBhMTRlYWRkNjVjNDUxYjM2NjY4OGQ0NDQxYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVu
dHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEs
ODcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgor
aW5wdXQgeworICAgIHdpZHRoOiAzMDBweDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUt
ZWRpdC10ZXh0IHsKKyAgICBmb250LXNpemU6IDMwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRh
dGV0aW1lLWVkaXQtbW9udGgtZmllbGQgeworICAgIGZvbnQtc2l6ZTogMzBweDsKK30KKworaW5w
dXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQgeworICAgIGZvbnQtc2l6ZTogMzBw
eDsKK30KKworaW5wdXQ6Oi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkIHsKKyAgICBm
b250LXNpemU6IDMwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKzxpbnB1dCBp
ZD0iaW5wdXQiIHR5cGU9ImRhdGUiIHZhbHVlPSIyMDIwLTA4LTI2Ij4KKworPHNjcmlwdD4KKwor
ZGVzY3JpcHRpb24oIlRlc3QgZm9yIG1vdXNlIGV2ZW50cyBmb3IgJmx0O2lucHV0IHR5cGU9ZGF0
ZSZndDsiKTsKKworY2xpY2tFdmVudHNGaXJlZCA9IDA7CitmdW5jdGlvbiBvbkNsaWNrRXZlbnQo
KSB7CisgICAgY2xpY2tFdmVudHNGaXJlZCsrOworfQorCitmdW5jdGlvbiBtb3VzZUNsaWNrT24o
eCwgeSkgeworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1cm47Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCArIGlucHV0Lm9mZnNldExlZnQsIHkgKyBpbnB1
dC5vZmZzZXRUb3ApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKK30KKworaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBvbkNs
aWNrRXZlbnQpOworY29uc3QgY2VudGVyID0gaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKKworLy8g
Q2xpY2sgb24gbW9udGggZmllbGQuCittb3VzZUNsaWNrT24oMjAsIGNlbnRlcik7CitVSUhlbHBl
ci5rZXlEb3duKCI5Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImlucHV0LnZhbHVlIiwgIjIw
MjAtMDktMjYiKTsKKworLy8gQ2xpY2sgb24gZGF5IGZpZWxkLgorbW91c2VDbGlja09uKDYwLCBj
ZW50ZXIpOworVUlIZWxwZXIua2V5RG93bigiMSIpOworVUlIZWxwZXIua2V5RG93bigiMiIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIyMDIwLTA5LTEyIik7CisKKy8v
IENsaWNrIG9uIHllYXIgZmllbGQuCittb3VzZUNsaWNrT24oMTIwLCBjZW50ZXIpOworVUlIZWxw
ZXIua2V5RG93bigiMyIpOworVUlIZWxwZXIua2V5RG93bigiMCIpOworVUlIZWxwZXIua2V5RG93
bigiMyIpOworVUlIZWxwZXIua2V5RG93bigiMCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJp
bnB1dC52YWx1ZSIsICIzMDMwLTA5LTEyIik7CisKKy8vIENsaWNrIG9uIGNvbnRyb2wsIGJ1dCBu
b3QgYSBzcGVjaWZpYyBmaWVsZCwgZGVmYXVsdHMgdG8gZmlyc3QgZmllbGQuCittb3VzZUNsaWNr
T24oMjUwLCBjZW50ZXIpOworVUlIZWxwZXIua2V5RG93bigiNSIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJpbnB1dC52YWx1ZSIsICIzMDMwLTA1LTEyIik7CisKKy8vIENsaWNrIG91dHNpZGUg
Y29udHJvbC4KK21vdXNlQ2xpY2tPbihpbnB1dC5vZmZzZXRXaWR0aCArIDUsIGlucHV0Lm9mZnNl
dEhlaWdodCArIDUpOworVUlIZWxwZXIua2V5RG93bigiNSIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJpbnB1dC52YWx1ZSIsICIzMDMwLTA1LTEyIik7CisKK3Nob3VsZEJlKCJjbGlja0V2ZW50
c0ZpcmVkIiwgIjQiKTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4YWEx
NGI2NjBlMDYxOTFhMGY0ZTMxNzI3M2ZlMzkxMjI4ZmNmOGFmLi4xYWNmYTFkNTY4N2U0YjAxNzNj
N2QzMGRjNDYwMjBkYTEwZDQ1NzU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMiw2ICsxMiw3IEBAIGVkaXRpbmcvZmluZCBbIFBhc3Mg
XQogZWRpdGluZy91bmRvLW1hbmFnZXIgWyBQYXNzIF0KIGVkaXRpbmcvcGFzdGVib2FyZC9kb20t
cGFzdGUgWyBQYXNzIF0KIGZhc3QvZXZlbnRzL2N1cnNvcnMgWyBQYXNzIF0KK2Zhc3QvZm9ybXMv
ZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMgWyBQYXNzIF0KIGZhc3QvZm9ybXMvc2VsZWN0
L21hYy13azIgWyBQYXNzIF0KIGZhc3Qvc2FuZGJveC9tYWMgWyBQYXNzIF0KIGZhc3Qvc2Nyb2xs
aW5nL21hYyBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407603</attachid>
            <date>2020-08-31 08:25:26 -0700</date>
            <delta_ts>2020-08-31 12:35:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215938-20200831112525.patch</filename>
            <type>text/plain</type>
            <size>83415</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhkZjUxNDhkZTg1OWI2
ZjAyNDhmN2M3NDc0NjE0ZmYxNjVlNjdmMS4uNjFjOWI5MWQ4Mjk3ZjczZWQxYWNiMDkyZjE5ODA4
NjFhMWM1YzQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MyBAQAorMjAyMC0wOC0yOCAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBIYW5k
bGUgZXZlbnRzIGZvciBkYXRlIGlucHV0cyB3aXRoIGVkaXRhYmxlIGNvbXBvbmVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTkzOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBhY3R1YWwgZWRpdGFiaWxpdHkgdG8gZGF0ZSBpbnB1dHMgd2l0aCBlZGl0YWJsZQorICAgICAg
ICBjb21wb25lbnRzLCBhcyB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIG5vdyByZXNwb25kIHRv
IGtleWJvYXJkCisgICAgICAgIGV2ZW50cy4gTnVtYmVyIGtleXMgY2FuIGJlIHVzZWQgdG8gZW50
ZXIgYSBkYXksIG1vbnRoLCBvciB5ZWFyLiBUaGUKKyAgICAgICAgbGVmdCBhbmQgcmlnaHQgYXJy
b3cga2V5cywgYXMgd2VsbCBhcyB0aGUgdGFiIGtleSwgY2FuIGJlIHVzZWQgdG8KKyAgICAgICAg
dHJhdmVyc2UgdGhlIHZhcmlvdXMgY29tcG9uZW50cy4gRmluYWxseSwgdGhlIGJhY2tzcGFjZSBh
bmQgZGVsZXRlIGtleXMKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gY2xlYXIgdGhlIHZhbHVlIG9m
IGEgcGFydGljdWxhciBjb21wb25lbnQuCisKKyAgICAgICAgVG8gbWF0Y2ggdGhlIGJlaGF2aW9y
IG9mIE5TRGF0ZVBpY2tlciwgYSB0eXBlYWhlYWQgYnVmZmVyIHdpdGggYQorICAgICAgICB0aW1l
b3V0IGlzIHVzZWQgd2hlbiBlZGl0aW5nLiBGb3IgZXhhbXBsZSwgZW50ZXJpbmcgIjIiIGFuZCAi
MyIgaW4KKyAgICAgICAgaW1tZWRpYXRlIHN1Y2Nlc3Npb24gd2lsbCByZXN1bHQgaW4gYSB5ZWFy
IG9mICIwMDIzIiwgYnV0IGEgb25lIHNlY29uZAorICAgICAgICBnYXAgYmV0d2VlbiB0aGUgdHdv
IGNoYXJhY3RlcnMgd2lsbCByZXN1bHQgaW4gYSB5ZWFyIG9mICIwMDAzIi4KKworICAgICAgICBG
aW5hbGx5LCB0aGlzIHBhdGNoIGVuc3VyZXMgdGhhdCAiZm9jdXMiLCAiYmx1ciIsICJpbnB1dCIs
IGFuZCAiY2hhbmdlIgorICAgICAgICBldmVudHMgYXJlIGRpc3BhdGNoZWQgYXBwcm9wcmlhdGVs
eS4KKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9u
ZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRzLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMv
ZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWtleWJvYXJkLWV2ZW50cy5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFi
bGUtY29tcG9uZW50cy1tb3VzZS1ldmVudHMuaHRtbAorCisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmVsZW1lbnREaWRC
bHVyKToKKworICAgICAgICBPbmx5IGNsb3NlIHRoZSBhdHRhY2hlZCBwaWNrZXIgaWYgZWRpdGFi
bGUgY29tcG9uZW50cyBkbyBub3QgZXhpc3QsIGFzCisgICAgICAgIHRoZSBwaWNrZXIgaXMgYWxy
ZWFkeSBjbG9zZWQgYnkgZGlkQmx1ckZyb21Db250cm9sLgorCisgICAgICAgIChXZWJDb3JlOjpC
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlRm9jdXNFdmVudCk6CisK
KyAgICAgICAgT3ZlcnJpZGUgdGhpcyBtZXRob2Qgc28gdGhhdCBhbnkgYXR0ZW1wdCB0byBmb2N1
cyB0aGUgZGF0ZSBpbnB1dAorICAgICAgICBlbGVtZW50IHdpbGwgZm9jdXMgdGhlIGFwcHJvcHJp
YXRlIGVkaXRhYmxlIGNvbXBvbmVudC4KKworICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJP
bmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMgY29uc3QpOgorCisg
ICAgICAgIE92ZXJyaWRlIHRoaXMgbWV0aG9kIGFuZCByZXR1cm4gZmFsc2UgaWYgZWRpdGFibGUg
Y29tcG9uZW50cyBhcmUKKyAgICAgICAgcHJlc2VudCBzbyB0aGF0IHRoZSBlbGVtZW50IGNhbiBi
ZSBhIEZvY3VzU2NvcGVPd25lci4gVGhpcyBpcyBuZWVkZWQgdG8KKyAgICAgICAgYmUgYWJsZSB0
byB0YWIgdGhyb3VnaCBpbmRpdmlkdWFsIGNvbXBvbmVudHMuCisKKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRCbHVyRnJvbUNvbnRyb2wp
OgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKToKKyAgICAgICAgKiBodG1sL0Jhc2VDaG9vc2VyT25s
eURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
Ojppc0tleWJvYXJkRm9jdXNhYmxlIGNvbnN0KTogRGF0ZSBpbnB1dHMgc2hvdWxkIGJlIGtleWJv
YXJkIGZvY3VzYWJsZSBvbiBhbGwgcGxhdGZvcm1zLgorICAgICAgICAqIGh0bWwvQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUg
Y29uc3QpOiBTZXJpYWxpemUgdGhlIHN0YXRlIG9mIHRoZSBlZGl0IGNvbnRyb2wgaW50byBhIHZh
bGlkIEhUTUwgZGF0ZSBzdHJpbmcuCisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmg6Cisg
ICAgICAgICogaHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmNwcDogQWRkZWQuCisKKyAgICAgICAg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSBpcyB1c2VkIHRvIHNlcmlhbGl6ZSBhbmQgZGVzZXJpYWxpemUg
dGhlIGNvbnRlbnRzIG9mCisgICAgICAgIERhdGVUaW1lRWRpdEVsZW1lbnQuIEluIHRoZSBmdXR1
cmUsIHRoaXMgY2xhc3Mgd2lsbCBhbHNvIGJlIHVzZWQgdG8KKyAgICAgICAgc2F2ZSBmb3JtIHN0
YXRlIG9uIGZvcndhcmQvYmFja3dhcmQgbmF2aWdhdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZSk6CisgICAgICAgICogaHRt
bC9EYXRlVGltZUZpZWxkc1N0YXRlLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6ZGF5T2ZNb250aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUZpZWxkc1N0YXRlOjptb250aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUZpZWxkc1N0YXRlOjp5ZWFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmll
bGRzU3RhdGU6Omhhc0RheU9mTW9udGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6aGFzTW9udGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6aGFzWWVhciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZUZpZWxkc1N0YXRlOjpzZXREYXlPZk1vbnRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RmllbGRzU3RhdGU6OnNldE1vbnRoKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRz
U3RhdGU6OnNldFllYXIpOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpmb3JtYXREYXRl
VGltZUZpZWxkc1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9UaW1lSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVU
aW1lRmllbGRzU3RhdGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5oOgor
ICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWVr
SW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBo
dG1sL1dlZWtJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxk
SW5kZXhPZiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpi
bHVyRnJvbUZpZWxkKToKKworICAgICAgICBJZiBhIGZpZWxkIGlzIGJsdXJyZWQsIGVuc3VyZSB0
aGUgb3duZXIgaXMgbm90aWZpZWQgaWYgbm9uZSBvZiB0aGUKKyAgICAgICAgb3RoZXIgZmllbGRz
IGFyZSBmb2N1c2VkLgorCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpm
aWVsZFZhbHVlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50
Ojpmb2N1c09uTmV4dEZvY3VzYWJsZUZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZvY3VzQnlPd25lcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEVsZW1lbnQ6OmZvY3VzT25QcmV2aW91c0ZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRWRpdEVsZW1lbnQ6OnZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OnZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlIGNvbnN0KToKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRpZEJsdXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZpc2libGVWYWx1ZSk6IEFk
ZCBFdmVudEJlaGF2aW9yIHBhcmFtZXRlciB0byBkaXNwYXRjaCAiaW5wdXQiIGFuZCAiY2hhbmdl
IiBldmVudHMgYWNjb3JkaW5nbHkuCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OkRhdGVUaW1l
RGF5RmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVt
ZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1l
RmllbGRzU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmll
bGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVU
aW1lRmllbGRzU3RhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50cy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJh
bmdlOjpjbGFtcFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6UmFuZ2U6OmlzSW5SYW5nZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmZvcm1h
dFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudDo6c2V0RW1wdHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmRpZEJsdXIpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZTo6UmFuZ2UpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpzZXRWYWx1
ZUFzSW50ZWdlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGlt
ZVN5bWJvbGljRmllbGRFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vRGF0ZUNvbXBvbmVu
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHM6OnBhcnNlWWVhcik6Cisg
ICAgICAgIChXZWJDb3JlOjp3aXRoaW5IVE1MRGF0ZUxpbWl0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlQ29tcG9uZW50czo6cGFyc2VXZWVrKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVDb21w
b25lbnRzOjpzZXRNb250aHNTaW5jZUVwb2NoKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVDb21w
b25lbnRzOjpzZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yV2Vlayk6CisgICAgICAgICogcGxh
dGZvcm0vRGF0ZUNvbXBvbmVudHMuaDogUGFydGlhbCByZXZlcnQgb2YgY2hhbmdlcyBtYWRlIGlu
IHIyNjUxMjYsIHRvIGVuc3VyZSB0aGUgbWluaW11bVllYXIgYW5kIG1heGltdW1ZZWFyIGFyZSBh
Y2Nlc3NpYmxlLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHM6Om1pbmltdW1ZZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVDb21wb25lbnRzOjptYXhpbXVtWWVhcik6CisKIDIw
MjAtMDgtMzEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgT3B0aW1pemUgdGhlIGltcGxlbWVudGF0aW9uIG9mIFRyYW5zZm9ybWF0aW9uTWF0cml4Ojpy
b3RhdGUoZG91YmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA1ZWIyNjM0Mjk1Y2NkNzRmMDgyNjdmNGY5
ZDg0MTk4YmRkYjc2MjgzLi4yNzA4NDZjMzVmYjlmOGNmOGQxZDJhNzY1OTVmYWFhMTcxZDNjY2Y5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dApAQCAtMTA3OSw2ICsxMDc5LDcgQEAgaHRtbC9ET01Ub2tlbkxpc3Qu
Y3BwCiBodG1sL0RPTVVSTC5jcHAKIGh0bWwvRGF0ZUlucHV0VHlwZS5jcHAKIGh0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHAKK2h0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAKIGh0bWwv
RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNwcAogaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKIGh0
bWwvRW50ZXJLZXlIaW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk0YzcxZmUzODgzODUzNTA0N2FjMjQxMWU2N2NmMmY1
OTMxNjFhZTQuLjlkYzVkNTczMDhjYWM3ZDg2MTMxN2EwNzNiMDkwMWJjMTYyMzUwNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTUwNzksNiArNTA3OSw3IEBACiAJCUU0RjlFRUYzMTU2REEwMDcwMEQyM0U3RSAvKiBTdHlsZVNo
ZWV0Q29udGVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU0RjlFRUYxMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNTE2Njk5MTIw
RkY5OTE4MDA5RDJDMjcgLyogTGlzdEJ1dHRvbkFycm93QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUxNjY5OEYyMEZGOTkxNjAwOUQyQzI3
IC8qIExpc3RCdXR0b25BcnJvd0AyeC5wbmcgKi87IH07CiAJCUU1MTc2NzAzMjBCODhDMTQwMEQ0
MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUxNzY3MDIyMEI4OEMxNDAwRDQxMTY3IC8q
IERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTUxRDZBMUYyNEUxRTI1NTAwODkxQ0ZBIC8qIERh
dGVUaW1lRmllbGRzU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU1MUQ2QTFEMjRFMUUyNTUwMDg5MUNGQSAvKiBEYXRlVGltZUZpZWxkc1N0YXRl
LmggKi87IH07CiAJCUU1MkNGNTREMjBBMjY4QUMwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rp
b25zQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNTJDRjU0QzIwQTI2OEFDMDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU1MkNG
NTRGMjBBMzVBMjgwMERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MkNGNTRFMjBBMzVBMjgw
MERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNTJFRkRGNDIxMTI4NzVBMDBBRDI4MkEg
LyogSW5wdXRNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNTJFRkRGMjIxMTI4NzVBMDBBRDI4MkEgLyogSW5wdXRNb2RlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1OTU1LDYgKzE1OTU2LDgg
QEAKIAkJRTUxNjY5OEYyMEZGOTkxNjAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0AyeC5wbmcg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5w
bmc7IHBhdGggPSAiTGlzdEJ1dHRvbkFycm93QDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU1MTc2NzAyMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25J
bmZvcm1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTFBODFERTE3Mjk4RDc3MDBCRkNB
NjEgLyogSlNQZXJmb3JtYW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1BlcmZvcm1hbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUx
RDZBMUQyNEUxRTI1NTAwODkxQ0ZBIC8qIERhdGVUaW1lRmllbGRzU3RhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFNTFENkExRTI0RTFFMjU1MDA4OTFDRkEgLyogRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEYXRlVGltZUZpZWxkc1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTUyNkFGM0UxNzI3RjhGMjAwRTQxNzgxIC8qIFBlcmZvcm1hbmNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcmZvcm1hbmNlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUyQ0Y1NEMyMEEyNjhBQzAwREFEQTI3IC8q
IERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUxpc3RTdWdn
ZXN0aW9uc0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTJDRjU0RTIw
QTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjI2MDgsNiArMjI2MTEsOCBAQAogCQkJCUU1MTc2NzAyMjBCODhDMTQwMEQ0MTE2NyAv
KiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oICovLAogCQkJCUY1NUIzRDgxMTI1MUYx
MkQwMDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q4MjEyNTFGMTJE
MDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5oICovLAorCQkJCUU1MUQ2QTFFMjRFMUUyNTUwMDg5
MUNGQSAvKiBEYXRlVGltZUZpZWxkc1N0YXRlLmNwcCAqLywKKwkJCQlFNTFENkExRDI0RTFFMjU1
MDA4OTFDRkEgLyogRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oICovLAogCQkJCUY1NUIzRDg1MTI1MUYx
MkQwMDNFRjI2OSAvKiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q4
NjEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oICovLAogCQkJCTgz
NUQ1NEMxMUY0REU1MzQwMEU2MDY3MSAvKiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwICov
LApAQCAtMzA4NDQsNiArMzA4NDksNyBAQAogCQkJCUU1RjA2QUY3MjRENEJCNTYwMEJCQzRGOCAv
KiBEYXRlVGltZUVkaXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNUYwNkFFNzI0RDQ4
NDdCMDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU1RjA2QUYzMjRENEFBRTQwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudHMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUU1MUQ2QTFGMjRFMUUyNTUwMDg5MUNGQSAvKiBEYXRlVGltZUZpZWxk
c1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyog
RGF0ZVRpbWVGb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREJBMTI1MUYxMkQwMDNF
RjI2OSAvKiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNUYw
NkFFQjI0RDQ5QkY3MDBCQkM0RjggLyogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJP
bmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggMmE4NDQyMDUxNzYxMWI5ZTVj
ZDhjNWMyNmY3NjFmNjJlNTUzNDU5Ny4uZWFkOGUxMDRjMWY5MjJhZWFhZmJjM2YwZmRkYThkM2Y4
YTcyOGZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmgiCiAj
aW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKKyNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC0xNDEsNyArMTQyLDggQEAgdm9pZCBCYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYp
CiAKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmVsZW1lbnREaWRC
bHVyKCkKIHsKLSAgICBjbG9zZURhdGVUaW1lQ2hvb3NlcigpOworICAgIGlmICghbV9kYXRlVGlt
ZUVkaXRFbGVtZW50KQorICAgICAgICBjbG9zZURhdGVUaW1lQ2hvb3NlcigpOwogfQogCiBib29s
IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjppc1ByZXNlbnRpbmdBdHRhY2hl
ZFZpZXcoKSBjb25zdApAQCAtMjQ4LDYgKzI1MCwxNyBAQCB2b2lkIEJhc2VDaG9vc2VyT25seURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQmIGV2ZW50
KQogICAgIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpoYW5kbGVLZXl1cEV2ZW50KCp0
aGlzLCBldmVudCk7CiB9CiAKK3ZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OmhhbmRsZUZvY3VzRXZlbnQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIEZvY3VzRGlyZWN0aW9u
IGRpcmVjdGlvbikKK3sKKyAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkgeworICAgICAg
ICBJbnB1dFR5cGU6OmhhbmRsZUZvY3VzRXZlbnQob2xkRm9jdXNlZE5vZGUsIGRpcmVjdGlvbik7
CisgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJlY3Rpb25CYWNrd2FyZCkgewor
ICAgICAgICBpZiAoYXV0byogcGFnZSA9IGVsZW1lbnQoKS0+ZG9jdW1lbnQoKS5wYWdlKCkpCisg
ICAgICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5hZHZhbmNlRm9jdXMoZGlyZWN0aW9u
LCAwKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5mb2N1c0J5
T3duZXIoKTsKK30KKwogYm9vbCBCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6
YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQogewogICAgIEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3VzZUV2ZW50cyk7CkBAIC0yNjEs
NiArMjc0LDEzIEBAIGJvb2wgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6Omlz
TW91c2VGb2N1c2FibGUoKSBjb25zdAogICAgIHJldHVybiBlbGVtZW50KCktPmlzVGV4dEZvcm1D
b250cm9sRm9jdXNhYmxlKCk7CiB9CiAKK2Jvb2wgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdAoreworICAgIGlmIChtX2RhdGVU
aW1lRWRpdEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSW5wdXRU
eXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCk7Cit9CisKIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSkKIHsKICAgICBpZiAobmFtZSA9PSB2YWx1ZUF0dHIpIHsKQEAgLTI3MiwxMCArMjkyLDE1
IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSk7CiB9CiAKLVN0cmluZyBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZTo6dmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0Cit2b2lkIEJhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRCbHVyRnJvbUNvbnRyb2woKQogewot
ICAgIEFTU0VSVChlbGVtZW50KCkpOwotICAgIHJldHVybiBlbGVtZW50KCktPnZhbHVlKCk7Cisg
ICAgY2xvc2VEYXRlVGltZUNob29zZXIoKTsKK30KKwordm9pZCBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZTo6ZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQoKQoreworICAgIFN0cmlu
ZyB2YWx1ZSA9IHNhbml0aXplVmFsdWUobV9kYXRlVGltZUVkaXRFbGVtZW50LT52YWx1ZSgpKTsK
KyAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZSAhPSBl
bGVtZW50KCktPnZhbHVlKCksIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCk7CiB9CiAKIEF0
b21TdHJpbmcgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmxvY2FsZUlkZW50
aWZpZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGIzMTkzMTkxYjQzNmNiYWFjMGUy
YTkzNDQ1MmRkY2ZjZGI1ZGQyYjcuLjU2N2Y4YmRhYmVlYTA1MjczMzNjYmJkM2RjNThhMzQzNjYy
MWUxYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTYzLDcgKzYzLDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7CiAKICAgICAvLyBEYXRlVGltZUVkaXRFbGVt
ZW50OjpFZGl0Q29udHJvbE93bmVyIGZ1bmN0aW9uczoKLSAgICBTdHJpbmcgdmFsdWVGb3JFZGl0
Q29udHJvbCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgZGlkQmx1ckZyb21Db250cm9sKCkgZmlu
YWw7CisgICAgdm9pZCBlZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpIGZpbmFsOwogICAgIEF0b21T
dHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwogCiAgICAgLy8gSW5wdXRUeXBl
IGZ1bmN0aW9uczoKQEAgLTc2LDkgKzc3LDExIEBAIHByaXZhdGU6CiAgICAgU2hvdWxkQ2FsbEJh
c2VFdmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlk
ZTsKICAgICB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJyaWRl
OwogICAgIHZvaWQgaGFuZGxlS2V5dXBFdmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBoYW5kbGVGb2N1c0V2ZW50KE5vZGUqIG9sZEZvY3VzZWROb2RlLCBGb2N1c0RpcmVj
dGlvbikgb3ZlcnJpZGU7CiAgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VF
dmVudHMpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgaXNQcmVzZW50aW5nQXR0YWNoZWRWaWV3KCkgY29uc3QgZmluYWw7Cisg
ICAgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBh
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIC8v
IERhdGVUaW1lQ2hvb3NlckNsaWVudCBmdW5jdGlvbnM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggMzBmNWRmY2IwYjAyNjZjNGRl
YWY5ZThjMTQ0ZmI1NjEwZWVhMGVjZC4uYzMyYWUzNjM1ZGY3Nzk0NDA2NWE2Nzc1MTg5MTYwNjM3
MWJkOGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcApAQCAtMTg0LDEzICsxODQsMTEgQEAgYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGU6OnZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAogICAgIHJldHVy
biBlbGVtZW50KCktPmlzUmVxdWlyZWQoKSAmJiB2YWx1ZS5pc0VtcHR5KCk7CiB9CiAKLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQogYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmlzS2V5
Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0CiB7CiAgICAgQVNTRVJUKGVsZW1l
bnQoKSk7CiAgICAgcmV0dXJuICFlbGVtZW50KCktPmlzUmVhZE9ubHkoKSAmJiBlbGVtZW50KCkt
PmlzVGV4dEZvcm1Db250cm9sRm9jdXNhYmxlKCk7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaAppbmRleCBmZGE3Mzg3MTVlODhiY2U1MTE4ZDI2ZTMzODU0NmExZGExZTE1
ZDIzLi4xZmNlNTA5NzhmYmU3MzVjN2Q4YTMxZmMxY2Y0MmE2MjE5NTlhMTUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTUwLDkgKzUw
LDcgQEAgcHJvdGVjdGVkOgogICAgIFN0cmluZyBzZXJpYWxpemVXaXRoQ29tcG9uZW50cyhjb25z
dCBEYXRlQ29tcG9uZW50cyYpIGNvbnN0OwogICAgIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIG92ZXJyaWRlOwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgYm9vbCBpc0tleWJv
YXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBvdmVycmlkZTsKLSNlbmRpZgogCiAg
ICAgdmlydHVhbCBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRz
KGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1
dFR5cGUuY3BwCmluZGV4IDhlMzkwMGZkN2MwMDQ4MzY2MTgxODIxZjAxNzdjY2JkMDRkNmY1NDEu
LmU2OWFlNjAxMDRjNjM0MjQ2YzM0MWYzZDI4NDYxNzkwYTI1NzkwMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkRhdGVJ
bnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiRGF0
ZVRpbWVGaWVsZHNTdGF0ZS5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtOTMsNiAr
OTQsMTQgQEAgYm9vbCBEYXRlSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRl
VGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXMKICAgICByZXR1cm4gcmVzdWx0cy5jb250
YWluc0FsbCh7IERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVU
aW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoLCBEYXRlVGltZUZvcm1hdFZhbGlk
YXRpb25SZXN1bHRzOjpIYXNEYXkgfSk7CiB9CiAKK1N0cmluZyBEYXRlSW5wdXRUeXBlOjpmb3Jt
YXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIHN0YXRlKSBj
b25zdAoreworICAgIGlmICghc3RhdGUuaGFzRGF5T2ZNb250aCgpIHx8ICFzdGF0ZS5oYXNNb250
aCgpIHx8ICFzdGF0ZS5oYXNZZWFyKCkpCisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwor
CisgICAgcmV0dXJuIG1ha2VTdHJpbmcocGFkKCcwJywgNCwgc3RhdGUueWVhcigpKSwgJy0nLCBw
YWQoJzAnLCAyLCBzdGF0ZS5tb250aCgpKSwgJy0nLCBwYWQoJzAnLCAyLCBzdGF0ZS5kYXlPZk1v
bnRoKCkpKTsKK30KKwogdm9pZCBEYXRlSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMo
RGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycykg
Y29uc3QKIHsKICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFy
YW1ldGVycy5sb2NhbGUuZGF0ZUZvcm1hdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUu
aAppbmRleCBlNTBkZTA0YWU4ZDI3ZWJkNTJmYjc2MDNiZDhjMjVkYWZmMmFiOGQ1Li5mNTI5YTY0
ZWJjYjE3NmQxNjRhYjY0Njg3NzdkNDI5YTUxNGJlYmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJ
bnB1dFR5cGUuaApAQCAtNDksNiArNDksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNEYXRlRmll
bGQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8
RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IGZpbmFsOworICAgIFN0cmlu
ZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRF
bGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QgZmluYWw7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lRmllbGRzU3RhdGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmZjNmVlMTBl
ZjUxMGZjODZiZDJiNjcyZmNhNmEyMjQ3YjA1N2VhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmNwcApAQCAtMCwwICsxLDQ1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZHNT
dGF0ZS5oIgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY29uc3RleHByIHVuc2lnbmVkIERhdGVUaW1lRmllbGRzU3RhdGU6
OmVtcHR5VmFsdWUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oLTEpOworCitEYXRlVGltZUZpZWxk
c1N0YXRlOjpEYXRlVGltZUZpZWxkc1N0YXRlKCkKKyAgICA6IG1feWVhcihlbXB0eVZhbHVlKQor
ICAgICwgbV9tb250aChlbXB0eVZhbHVlKQorICAgICwgbV9kYXlPZk1vbnRoKGVtcHR5VmFsdWUp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRF
X0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUZpZWxkc1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lRmllbGRz
U3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNWY5MjM1MThiYWFjNDUxOWJmM2U2ZWNhZmVhZjE0NDQ0Yjk3
M2U4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUZpZWxk
c1N0YXRlLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBEYXRlVGltZUZpZWxkc1N0YXRlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgZW1wdHlWYWx1ZTsKKworICAgIERhdGVUaW1lRmllbGRzU3RhdGUoKTsKKwor
ICAgIHVuc2lnbmVkIGRheU9mTW9udGgoKSBjb25zdCB7IHJldHVybiBtX2RheU9mTW9udGg7IH0K
KyAgICB1bnNpZ25lZCBtb250aCgpIGNvbnN0IHsgcmV0dXJuIG1fbW9udGg7IH0KKyAgICB1bnNp
Z25lZCB5ZWFyKCkgY29uc3QgeyByZXR1cm4gbV95ZWFyOyB9CisKKyAgICBib29sIGhhc0RheU9m
TW9udGgoKSBjb25zdCB7IHJldHVybiBtX2RheU9mTW9udGggIT0gZW1wdHlWYWx1ZTsgfQorICAg
IGJvb2wgaGFzTW9udGgoKSBjb25zdCB7IHJldHVybiBtX21vbnRoICE9IGVtcHR5VmFsdWU7IH0K
KyAgICBib29sIGhhc1llYXIoKSBjb25zdCB7IHJldHVybiBtX3llYXIgIT0gZW1wdHlWYWx1ZTsg
fQorCisgICAgdm9pZCBzZXREYXlPZk1vbnRoKHVuc2lnbmVkIGRheU9mTW9udGgpIHsgbV9kYXlP
Zk1vbnRoID0gZGF5T2ZNb250aDsgfQorICAgIHZvaWQgc2V0TW9udGgodW5zaWduZWQgbW9udGgp
IHsgbV9tb250aCA9IG1vbnRoOyB9CisgICAgdm9pZCBzZXRZZWFyKHVuc2lnbmVkIHllYXIpIHsg
bV95ZWFyID0geWVhcjsgfQorCitwcml2YXRlOgorICAgIHVuc2lnbmVkIG1feWVhcjsKKyAgICB1
bnNpZ25lZCBtX21vbnRoOworICAgIHVuc2lnbmVkIG1fZGF5T2ZNb250aDsKKworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmNwcAppbmRleCA0ZTdhZDZjMmZmY2Q3MDA0N2U0ZmU3MmRjYWQyYjFlYjlkMWYxMTgwLi5jY2Iy
YzMyNDQ2MzViNGU5NjIwM2E0ZWYyYmRmMmNhMzI2MWQ2ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTEwMSw2ICsxMDEsMTEgQEAg
Ym9vbCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRl
VGltZUZvcm1hdFZhbGlkYXRpb25SZXMKICAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7
IERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1
bHRzOjpIYXNEYXksIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIsIERh
dGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01pbnV0ZSB9KTsKIH0KIAorU3RyaW5n
IERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
Cit9CisKIHZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJz
KERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAppbmRleCA5MzYyMGU0
Zjc2ZWE0MDA3ZGNjZjY3NGZmMTVlMTZhNjgwNTA2MWIwLi5lNjM0NzQyNjNmZjgxMGU3YTNkMjVm
ZjJiYWUxM2EwOTI1NGNlZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9j
YWxJbnB1dFR5cGUuaApAQCAtNTEsNiArNTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNEYXRl
VGltZUxvY2FsRmllbGQoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgaXNWYWxpZEZvcm1hdChP
cHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IGZpbmFsOwor
ICAgIFN0cmluZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRz
U3RhdGUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRl
VGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QgZmluYWw7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCmluZGV4IGMxZDA4ZjIzZDNiODViYWUw
YjI4NDdhYmMwMDE3NjBhM2FkNWRiMTUuLjVlZjRjODlkMDA1MTRiMTE4MTEzNmM4ZGFmN2IwMDAz
MjJjZWQ4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCkBAIC0xMzks
NiArMTM5LDExIEBAIGJvb2wgTW9udGhJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0
PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlCiAgICAgcmV0dXJuIHJlc3VsdHMu
Y29udGFpbnNBbGwoeyBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyLCBE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCB9KTsKIH0KIAorU3RyaW5n
IE1vbnRoSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1l
RmllbGRzU3RhdGUmKSBjb25zdAoreworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQorCiB2
b2lkIE1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxl
bWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRo
SW5wdXRUeXBlLmgKaW5kZXggNDhmMDc4ZTkyYjlmZTI0N2IyMjdiZDc3NzI5NmQ5YWMyYjgwNGFi
OS4uZjQ4OWI3MDA0NmNhZjdiODcxNDhhN2JlYjM1ZWJkMTRjOGIxMmQwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNTQsNiArNTQsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBp
c1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikg
Y29uc3QgZmluYWw7CisgICAgU3RyaW5nIGZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0dXBMYXlvdXRQ
YXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdCBm
aW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDRkMGE3
NzUxYWQxOWQxNTAxMmVjOWNjMDg2Y2E0NzIyMzdkZDU1MDIuLjJmZTY1NTUwYzAyMzY0MjJiZjQ1
MjEyNGNjODY1NzQ1YzViZWRkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNw
cApAQCAtMTE1LDYgKzExNSwxMSBAQCBib29sIFRpbWVJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQo
T3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlcwogICAgIHJldHVy
biByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6
SGFzSG91ciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTWludXRlIH0pOwog
fQogCitTdHJpbmcgVGltZUlucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25z
dCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QKK3sKKyAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKK30KKwogdm9pZCBUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRp
bWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0CiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IDkyMDQzYWVmOTc4MTFhYWY4ZWQzYjA0ZTU5Y2RjOWFk
NGUyMzg1NzQuLmFjODI0ZmQ1Yjk3YmIzZDBiMTQ2ZDYzZTBiNTQ2NDU2MzIzZjVkMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC01MSw2ICs1MSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CiAKICAgICBi
b29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM+KSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShj
b25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXR1cExh
eW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNv
bnN0IGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKaW5kZXgg
YjM4NTRkODg0OTdlOTllZjI5ZTRhOGZmOWVjZjU5MzViN2RlMWFlYi4uYmRjOTJhMTQyNjNhODg1
OTY5ODc1ZGEzZjBjMzI5NmVhZmUyYTYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9XZWVrSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5
cGUuY3BwCkBAIC05Miw2ICs5MiwxMSBAQCBib29sIFdlZWtJbnB1dFR5cGU6OmlzVmFsaWRGb3Jt
YXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlcwogICAgIHJl
dHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0
czo6SGFzWWVhciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzV2VlayB9KTsK
IH0KIAorU3RyaW5nIFdlZWtJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29u
c3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7Cit9CisKIHZvaWQgV2Vla0lucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVU
aW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCAxY2UwODc2NDc0ZjM2YTQzZDYyOTVlZWY4MDRlODU2
MGYxOTZlMTJjLi4wMGEzMWE1OGY4NTBkZDg2OWFkZWE2NTY4ZGQ2MzQyYmRhMTJhZjYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApAQCAtNTAsNiArNTAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogCiAgICAg
Ym9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1
bHRzPikgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUo
Y29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0dXBM
YXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBj
b25zdCBmaW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXggN2UxZWQ1N2FjYjYyZWM2N2I2NjEyNzdkMTNmNjQ5
MTkxMTlhNDQxZS4uM2ZhYWI3NmQ0ZmZmMjg3OGEwZGQzM2NlZTU5YmZhZTg5NzdiNTY4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5j
bHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZHNT
dGF0ZS5oIgogI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTU0LDYg
KzE1NSwxNSBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZpZWxkKFJlZjxEYXRlVGlt
ZUZpZWxkRWxlbWVudD4gZmllbGQpCiAgICAgZmllbGRzV3JhcHBlckVsZW1lbnQoKS5hcHBlbmRD
aGlsZChmaWVsZCk7CiB9CiAKK3NpemVfdCBEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4
T2YoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmIGZpZWxkKSBjb25zdAoreworICAgIGZvciAo
c2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2Zp
ZWxkSW5kZXgpIHsKKyAgICAgICAgaWYgKG1fZmllbGRzW2ZpZWxkSW5kZXhdLnB0cigpID09ICZm
aWVsZCkKKyAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4OworICAgIH0KKyAgICByZXR1cm4g
aW52YWxpZEZpZWxkSW5kZXg7Cit9CisKIFJlZjxEYXRlVGltZUVkaXRFbGVtZW50PiBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBFZGl0Q29udHJvbE93bmVy
JiBlZGl0Q29udHJvbE93bmVyKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1l
RWRpdEVsZW1lbnQoZG9jdW1lbnQsIGVkaXRDb250cm9sT3duZXIpKTsKQEAgLTE4Nyw2ICsxOTcs
NzAgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgTGF5b3V0UGFyYW1l
dGVycyYgbGF5b3V0UGFyYW1ldGVycykKICAgICB9CiB9CiAKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6Ymx1ckZyb21GaWVsZChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWVudCkK
K3sKKyAgICBib29sIG5vdGlmeU93bmVyID0gdHJ1ZTsKKyAgICBmb3IgKGF1dG8mIGZpZWxkIDog
bV9maWVsZHMpIHsKKyAgICAgICAgaWYgKGZpZWxkLnB0cigpID09IG5ld0ZvY3VzZWRFbGVtZW50
LmdldCgpKSB7CisgICAgICAgICAgICBub3RpZnlPd25lciA9IGZhbHNlOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBIVE1MRWxlbWVudDo6ZGlzcGF0Y2hCbHVy
RXZlbnQoV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpOworCisgICAgaWYgKG1fZWRpdENvbnRy
b2xPd25lciAmJiBub3RpZnlPd25lcikKKyAgICAgICAgbV9lZGl0Q29udHJvbE93bmVyLT5kaWRC
bHVyRnJvbUNvbnRyb2woKTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZFZh
bHVlQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fZWRpdENvbnRyb2xPd25lcikKKyAgICAgICAgbV9l
ZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgpOworfQorCitib29sIERh
dGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25OZXh0Rm9jdXNhYmxlRmllbGQoc2l6ZV90IHN0YXJ0
SW5kZXgpCit7CisgICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IHN0YXJ0SW5kZXg7IGZpZWxk
SW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgeworICAgICAgICBpZiAobV9m
aWVsZHNbZmllbGRJbmRleF0tPmlzRm9jdXNhYmxlKCkpIHsKKyAgICAgICAgICAgIG1fZmllbGRz
W2ZpZWxkSW5kZXhdLT5mb2N1cygpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIERhdGVUaW1lRWRpdEVsZW1l
bnQ6OmZvY3VzQnlPd25lcigpCit7CisgICAgZm9jdXNPbk5leHRGb2N1c2FibGVGaWVsZCgwKTsK
K30KKworYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uTmV4dEZpZWxkKGNvbnN0IERh
dGVUaW1lRmllbGRFbGVtZW50JiBmaWVsZCkKK3sKKyAgICBjb25zdCBzaXplX3Qgc3RhcnRGaWVs
ZEluZGV4ID0gZmllbGRJbmRleE9mKGZpZWxkKTsKKyAgICBpZiAoc3RhcnRGaWVsZEluZGV4ID09
IGludmFsaWRGaWVsZEluZGV4KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGZv
Y3VzT25OZXh0Rm9jdXNhYmxlRmllbGQoc3RhcnRGaWVsZEluZGV4ICsgMSk7Cit9CisKK2Jvb2wg
RGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPblByZXZpb3VzRmllbGQoY29uc3QgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQmIGZpZWxkKQoreworICAgIGNvbnN0IHNpemVfdCBzdGFydEZpZWxkSW5kZXgg
PSBmaWVsZEluZGV4T2YoZmllbGQpOworICAgIGlmIChzdGFydEZpZWxkSW5kZXggPT0gaW52YWxp
ZEZpZWxkSW5kZXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHNpemVfdCBmaWVsZElu
ZGV4ID0gc3RhcnRGaWVsZEluZGV4OworICAgIHdoaWxlIChmaWVsZEluZGV4ID4gMCkgeworICAg
ICAgICAtLWZpZWxkSW5kZXg7CisgICAgICAgIGlmIChtX2ZpZWxkc1tmaWVsZEluZGV4XS0+aXNG
b2N1c2FibGUoKSkgeworICAgICAgICAgICAgbV9maWVsZHNbZmllbGRJbmRleF0tPmZvY3VzKCk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KKwogQXRvbVN0cmluZyBEYXRlVGltZUVkaXRFbGVtZW50Ojpsb2NhbGVJZGVu
dGlmaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9lZGl0Q29udHJvbE93bmVyID8gbV9lZGl0
Q29udHJvbE93bmVyLT5sb2NhbGVJZGVudGlmaWVyKCkgOiBudWxsQXRvbSgpOwpAQCAtMjEzLDcg
KzI4NywxNSBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUoY29uc3Qg
TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycwogCiBTdHJpbmcgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6dmFsdWUoKSBjb25zdAogewotICAgIHJldHVybiBtX2VkaXRDb250cm9sT3duZXIg
PyBtX2VkaXRDb250cm9sT3duZXItPnZhbHVlRm9yRWRpdENvbnRyb2woKSA6IGVtcHR5U3RyaW5n
KCk7CisgICAgcmV0dXJuIG1fZWRpdENvbnRyb2xPd25lciA/IG1fZWRpdENvbnRyb2xPd25lci0+
Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZSh2YWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSgpKSA6
IGVtcHR5U3RyaW5nKCk7Cit9CisKK0RhdGVUaW1lRmllbGRzU3RhdGUgRGF0ZVRpbWVFZGl0RWxl
bWVudDo6dmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKSBjb25zdAoreworICAgIERhdGVUaW1l
RmllbGRzU3RhdGUgZGF0ZVRpbWVGaWVsZHNTdGF0ZTsKKyAgICBmb3IgKGF1dG8mIGZpZWxkIDog
bV9maWVsZHMpCisgICAgICAgIGZpZWxkLT5wb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoZGF0
ZVRpbWVGaWVsZHNTdGF0ZSk7CisgICAgcmV0dXJuIGRhdGVUaW1lRmllbGRzU3RhdGU7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAppbmRleCBmNGI1YmIwMWY1NDMzOTZjN2I2NmZkYzE3NTJl
YTU3YWJiNmZmYjI5Li5lOGU3Mzk4YWEwZDRkNjIzYmI4Y2EyZjQzNjAwZTdmYzRiZTdhNGRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5o
CkBAIC00Myw3ICs0Myw5IEBAIHB1YmxpYzoKICAgICBjbGFzcyBFZGl0Q29udHJvbE93bmVyIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPEVkaXRDb250cm9sT3duZXI+IHsKICAgICBwdWJsaWM6CiAg
ICAgICAgIHZpcnR1YWwgfkVkaXRDb250cm9sT3duZXIoKTsKLSAgICAgICAgdmlydHVhbCBTdHJp
bmcgdmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGRpZEJsdXJGcm9tQ29udHJvbCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGVkaXRDb250
cm9sVmFsdWVDaGFuZ2VkKCkgPSAwOworICAgICAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRl
VGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmKSBjb25zdCA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgPSAwOwog
ICAgIH07CiAKQEAgLTYzLDEyICs2NSwxNSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+RGF0ZVRp
bWVFZGl0RWxlbWVudCgpOwogICAgIHZvaWQgYWRkRmllbGQoUmVmPERhdGVUaW1lRmllbGRFbGVt
ZW50Pik7CiAgICAgRWxlbWVudCYgZmllbGRzV3JhcHBlckVsZW1lbnQoKSBjb25zdDsKKyAgICB2
b2lkIGZvY3VzQnlPd25lcigpOwogICAgIHZvaWQgcmVzZXRGaWVsZHMoKTsKICAgICB2b2lkIHNl
dEVtcHR5VmFsdWUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYpOwogICAgIHZvaWQgc2V0VmFsdWVB
c0RhdGUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7CiAg
ICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3QgaW52YWxpZEZpZWxkSW5kZXggPSBzdGF0aWNfY2FzdDxzaXplX3Q+KC0xKTsKKwog
ICAgIC8vIERhdGV0aW1lIGNhbiBiZSByZXByZXNlbnRlZCBieSBhdCBtb3N0IDggZmllbGRzOgog
ICAgIC8vIDEuIHllYXIKICAgICAvLyAyLiBtb250aApAQCAtODIsOSArODcsMTcgQEAgcHJpdmF0
ZToKIAogICAgIERhdGVUaW1lRWRpdEVsZW1lbnQoRG9jdW1lbnQmLCBFZGl0Q29udHJvbE93bmVy
Jik7CiAKKyAgICBzaXplX3QgZmllbGRJbmRleE9mKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50
JikgY29uc3Q7CiAgICAgdm9pZCBsYXlvdXQoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYpOworICAg
IERhdGVUaW1lRmllbGRzU3RhdGUgdmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKSBjb25zdDsK
KworICAgIGJvb2wgZm9jdXNPbk5leHRGb2N1c2FibGVGaWVsZChzaXplX3Qgc3RhcnRJbmRleCk7
CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudDo6RmllbGRPd25lciBmdW5jdGlvbnM6Cisg
ICAgdm9pZCBibHVyRnJvbUZpZWxkKFJlZlB0cjxFbGVtZW50PiYmIG5ld0ZvY3VzZWRFbGVtZW50
KSBmaW5hbDsKKyAgICB2b2lkIGZpZWxkVmFsdWVDaGFuZ2VkKCkgZmluYWw7CisgICAgYm9vbCBm
b2N1c09uTmV4dEZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgZmluYWw7CisgICAg
Ym9vbCBmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpIGZp
bmFsOwogICAgIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwogCiAg
ICAgVmVjdG9yPFJlZjxEYXRlVGltZUZpZWxkRWxlbWVudD4sIG1heGltdW1OdW1iZXJPZkZpZWxk
cz4gbV9maWVsZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudC5jcHAKaW5kZXggMGRmNTJhMGZhZGQ2MjViNmI4MzYwOWM5MTZmOGM2NzI5
MWQ4NDY3My4uZjA4OTU4MDhkZTZhZTNmNjkwZjYxYjNmZTYzMTU5YmZiNTg2Yjc4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNw
cApAQCAtMzAsNyArMzAsOSBAQAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgog
I2luY2x1ZGUgIlRleHQuaCIKQEAgLTU1LDYgKzU3LDY0IEBAIHZvaWQgRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKQogICAgIHNldFBzZXVk
byhwc2V1ZG8pOwogfQogCit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50JiBldmVudCkKK3sKKyAgICBpZiAoaXM8S2V5Ym9hcmRFdmVudD4oZXZlbnQp
KSB7CisgICAgICAgIGF1dG8mIGtleWJvYXJkRXZlbnQgPSBkb3duY2FzdDxLZXlib2FyZEV2ZW50
PihldmVudCk7CisgICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCk7Cisg
ICAgICAgIGlmIChrZXlib2FyZEV2ZW50LmRlZmF1bHRIYW5kbGVkKCkpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihrZXlib2FyZEV2ZW50
KTsKKyAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQuZGVmYXVsdEhhbmRsZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBIVE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihldmVudCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRLZXli
b2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQoreworICAgIGlm
IChrZXlib2FyZEV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvIGtleSA9IGtleWJvYXJkRXZlbnQua2V5SWRlbnRpZmll
cigpOworCisgICAgaWYgKGtleSA9PSAiTGVmdCIpIHsKKyAgICAgICAgaWYgKG1fZmllbGRPd25l
ciAmJiBtX2ZpZWxkT3duZXItPmZvY3VzT25QcmV2aW91c0ZpZWxkKCp0aGlzKSkgeworICAgICAg
ICAgICAga2V5Ym9hcmRFdmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGtleSA9PSAiUmlnaHQiKSB7CisgICAg
ICAgIGlmIChtX2ZpZWxkT3duZXIgJiYgbV9maWVsZE93bmVyLT5mb2N1c09uTmV4dEZpZWxkKCp0
aGlzKSkgeworICAgICAgICAgICAga2V5Ym9hcmRFdmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gQ2xlYXIgdmFs
dWUgd2hlbiBwcmVzc2luZyBiYWNrc3BhY2Ugb3IgZGVsZXRlLgorICAgIGlmIChrZXkgPT0gIlUr
MDAwOCIgfHwga2V5ID09ICJVKzAwN0YiKSB7CisgICAgICAgIGtleWJvYXJkRXZlbnQuc2V0RGVm
YXVsdEhhbmRsZWQoKTsKKyAgICAgICAgc2V0RW1wdHlWYWx1ZShEaXNwYXRjaElucHV0QW5kQ2hh
bmdlRXZlbnQpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lkIERhdGVUaW1lRmll
bGRFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2Vk
RWxlbWVudCkKK3sKKyAgICBpZiAobV9maWVsZE93bmVyKQorICAgICAgICBtX2ZpZWxkT3duZXIt
PmJsdXJGcm9tRmllbGQoV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpOworICAgIGVsc2UKKyAg
ICAgICAgSFRNTEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFdURk1vdmUobmV3Rm9jdXNlZEVs
ZW1lbnQpKTsKKworICAgIGRpZEJsdXIoKTsKK30KKwordm9pZCBEYXRlVGltZUZpZWxkRWxlbWVu
dDo6ZGlkQmx1cigpCit7Cit9CisKIExvY2FsZSYgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2Fs
ZUZvck93bmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9jdW1lbnQoKS5nZXRDYWNoZWRMb2Nh
bGUobG9jYWxlSWRlbnRpZmllcigpKTsKQEAgLTY1LDcgKzEyNSw3IEBAIEF0b21TdHJpbmcgRGF0
ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBt
X2ZpZWxkT3duZXIgPyBtX2ZpZWxkT3duZXItPmxvY2FsZUlkZW50aWZpZXIoKSA6IG51bGxBdG9t
KCk7CiB9CiAKLXZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVwZGF0ZVZpc2libGVWYWx1ZSgp
Cit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNpYmxlVmFsdWUoRXZlbnRCZWhh
dmlvciBldmVudEJlaGF2aW9yKQogewogICAgIGlmICghZmlyc3RDaGlsZCgpKQogICAgICAgICBh
cHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgZW1wdHlTdHJpbmcoKSkpOwpAQCAt
NzYsNiArMTM2LDkgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZh
bHVlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdGV4dE5vZGUucmVwbGFjZVdob2xlVGV4dChu
ZXdWaXNpYmxlVmFsdWUpOworCisgICAgaWYgKGV2ZW50QmVoYXZpb3IgPT0gRGlzcGF0Y2hJbnB1
dEFuZENoYW5nZUV2ZW50ICYmIG1fZmllbGRPd25lcikKKyAgICAgICAgbV9maWVsZE93bmVyLT5m
aWVsZFZhbHVlQ2hhbmdlZCgpOwogfQogCiBib29sIERhdGVUaW1lRmllbGRFbGVtZW50OjpzdXBw
b3J0c0ZvY3VzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5oCmluZGV4IDRmYTRkMTU2NTEzNmZiMjk5ZTRhYWExNTRkOWQzNDhi
Mzc1ZTUyOWMuLjc2Zjk0YzQ1ODA1Yjk3MzYzZTZhZWQ4YmU1Yzc4ZjAyNDdjZGFkNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaApA
QCAtMzUsMjAgKzM1LDMxIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVDb21w
b25lbnRzOworY2xhc3MgRGF0ZVRpbWVGaWVsZHNTdGF0ZTsKIAogY2xhc3MgRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOwogcHVibGljOgorICAgIGVudW0gRXZlbnRCZWhh
dmlvciB7IERpc3BhdGNoTm9FdmVudCwgRGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50IH07CisK
ICAgICBjbGFzcyBGaWVsZE93bmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEZpZWxkT3duZXI+
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkZpZWxkT3duZXIoKTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGJsdXJGcm9tRmllbGQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVs
ZW1lbnQpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpZWxkVmFsdWVDaGFuZ2VkKCkgPSAw
OworICAgICAgICB2aXJ0dWFsIGJvb2wgZm9jdXNPbk5leHRGaWVsZChjb25zdCBEYXRlVGltZUZp
ZWxkRWxlbWVudCYpID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIGZvY3VzT25QcmV2aW91c0Zp
ZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgPSAwOwogICAgICAgICB2aXJ0dWFsIEF0
b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0ID0gMDsKICAgICB9OwogCisgICAgdm9p
ZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRj
aEJsdXJFdmVudChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWVudCkgb3ZlcnJpZGU7
CisKICAgICB2aXJ0dWFsIGJvb2wgaGFzVmFsdWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHNldEVtcHR5VmFsdWUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRp
bWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRFbXB0eVZhbHVlKEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGludCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQsIEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5v
RXZlbnQpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCA9IDA7CiAKQEAgLTU3LDEyICs2OCwx
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBz
ZXVkbyk7CiAgICAgTG9jYWxlJiBsb2NhbGVGb3JPd25lcigpIGNvbnN0OwogICAgIEF0b21TdHJp
bmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0OwotICAgIHZvaWQgdXBkYXRlVmlzaWJsZVZhbHVl
KCk7CisgICAgdm9pZCB1cGRhdGVWaXNpYmxlVmFsdWUoRXZlbnRCZWhhdmlvcik7CiAgICAgdmly
dHVhbCBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhh
bmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCYpID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCBkaWRCbHVyKCk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKKyAgICB2b2lkIGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2Fy
ZEV2ZW50Jik7CisKICAgICBXZWFrUHRyPEZpZWxkT3duZXI+IG1fZmllbGRPd25lcjsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVu
dHMuY3BwCmluZGV4IGM3Zjk4NDRhMTM0NWQ4YjQzMjBmMGM0ODkxYTNhMWIwZDM3NzE4N2YuLmE1
NWQ1MmYxYzhkZjZiNjgxNWRkMGMxY2E3NWZkNDY5ZDQyMDIwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApAQCAtMzAs
NiArMzAsNyBAQAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQogCiAjaW5j
bHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkc1N0YXRlLmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQpOwogCiBEYXRlVGltZURheUZpZWxk
RWxlbWVudDo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVs
ZE93bmVyJiBmaWVsZE93bmVyKQotICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRv
Y3VtZW50LCBmaWVsZE93bmVyLCAiLS0iX3MpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIFJhbmdlKDEsIDMxKSwgIi0tIl9zKQogewogICAg
IHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGF5UHNl
dWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaW5pdGlhbGl6ZShkYXlQc2V1ZG9JZCk7CkBAIC00OCw2
ICs0OSwxMSBAQCBSZWY8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IERhdGVUaW1lRGF5RmllbGRF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LAogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IERhdGVUaW1lRGF5RmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7CiB9CiAK
K3ZvaWQgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0
ZShEYXRlVGltZUZpZWxkc1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBzdGF0ZS5zZXREYXlPZk1vbnRo
KGhhc1ZhbHVlKCkgPyB2YWx1ZUFzSW50ZWdlcigpIDogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1w
dHlWYWx1ZSk7Cit9CisKIHZvaWQgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNE
YXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogewogICAgIHNldFZhbHVlQXNJbnRlZ2Vy
KGRhdGUubW9udGhEYXkoKSk7CkBAIC01Niw3ICs2Miw3IEBAIHZvaWQgRGF0ZVRpbWVEYXlGaWVs
ZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQpOwogCiBE
YXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKLSAgICA6IERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgIi0tIl9zKQorICAgIDogRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBSYW5nZSgxLCAx
MiksICItLSJfcykKIHsKICAgICBzdGF0aWMgTWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0
IEF0b21TdHJpbmc+IG1vbnRoUHNldWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1tb250aC1m
aWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpbml0aWFsaXpl
KG1vbnRoUHNldWRvSWQpOwpAQCAtNjcsNiArNzMsMTEgQEAgUmVmPERhdGVUaW1lTW9udGhGaWVs
ZEVsZW1lbnQ+IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW0KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50KGRv
Y3VtZW50LCBmaWVsZE93bmVyKSk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVu
dDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmIHN0YXRl
KQoreworICAgIHN0YXRlLnNldE1vbnRoKGhhc1ZhbHVlKCkgPyB2YWx1ZUFzSW50ZWdlcigpIDog
RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1wdHlWYWx1ZSk7Cit9CisKIHZvaWQgRGF0ZVRpbWVNb250
aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUp
CiB7CiAgICAgLy8gRGF0ZUNvbXBvbmVudHMgcmVwcmVzZW50cyBtb250aHMgZnJvbSAwIChKYW51
YXJ5KSB0byAxMSAoRGVjZW1iZXIpLgpAQCAtODcsNiArOTgsMTEgQEAgUmVmPERhdGVUaW1lU3lt
Ym9saWNNb250aEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50
OjpjcmVhdGUKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZVN5bWJvbGljTW9udGhG
aWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIGxhYmVscykpOwogfQogCit2b2lkIERh
dGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0
YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmIHN0YXRlKQoreworICAgIHN0YXRlLnNldE1vbnRoKGhh
c1ZhbHVlKCkgPyB2YWx1ZUFzSW50ZWdlcigpICsgMSA6IERhdGVUaW1lRmllbGRzU3RhdGU6OmVt
cHR5VmFsdWUpOworfQorCiB2b2lkIERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6
c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCiB7CiAgICAgc2V0VmFs
dWVBc0ludGVnZXIoZGF0ZS5tb250aCgpKTsKQEAgLTk1LDcgKzExMSw3IEBAIHZvaWQgRGF0ZVRp
bWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29t
cG9uZW50cyYgZGF0CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVZZWFyRmll
bGRFbGVtZW50KTsKIAogRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpEYXRlVGltZVllYXJGaWVs
ZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQotICAg
IDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCAiLS0t
LSJfcykKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRP
d25lciwgUmFuZ2UoRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1ZZWFyKCksIERhdGVDb21wb25lbnRz
OjptYXhpbXVtWWVhcigpKSwgIi0tLS0iX3MpCiB7CiAgICAgc3RhdGljIE1haW5UaHJlYWROZXZl
ckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB5ZWFyUHNldWRvSWQoIi13ZWJraXQtZGF0ZXRp
bWUtZWRpdC15ZWFyLWZpZWxkIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwog
ICAgIGluaXRpYWxpemUoeWVhclBzZXVkb0lkKTsKQEAgLTEwNiw2ICsxMjIsMTEgQEAgUmVmPERh
dGVUaW1lWWVhckZpZWxkRWxlbWVudD4gRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZVllYXJG
aWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKIH0KIAordm9pZCBEYXRlVGltZVll
YXJGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxk
c1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBzdGF0ZS5zZXRZZWFyKGhhc1ZhbHVlKCkgPyB2YWx1ZUFz
SW50ZWdlcigpIDogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1wdHlWYWx1ZSk7Cit9CisKIHZvaWQg
RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYgZGF0ZSkKIHsKICAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlLmZ1bGxZZWFyKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1l
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
aAppbmRleCA0YTAwNmI3MWMzNjNmNWQ1YWI4M2QzODU0MWFiNTkxOTVmNTI2YzhjLi5mMTEwMzc4
MjliZjdhZDFiZjlhMDNiOWQzNDEwOTg4NWJkMTlkYTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaApAQCAtNDQsNiArNDQsNyBA
QCBwcml2YXRlOgogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgogICAg
IHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKKyAgICB2b2lkIHBv
cHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJik7CiB9OwogCiBj
bGFzcyBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudCB7CkBAIC01Nyw2ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBE
YXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CiAgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShj
b25zdCBEYXRlQ29tcG9uZW50cyYpOworICAgIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0
YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKTsKIH07CiAKIGNsYXNzIERhdGVUaW1lU3ltYm9saWNN
b250aEZpZWxkRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50IHsKQEAgLTcwLDYgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIERhdGVUaW1lRmllbGRF
bGVtZW50IGZ1bmN0aW9uczoKICAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21w
b25lbnRzJik7CisgICAgdm9pZCBwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVG
aWVsZHNTdGF0ZSYpOwogfTsKIAogY2xhc3MgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50IGZpbmFs
IDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CkBAIC04Myw2ICs4Niw3IEBA
IHByaXZhdGU6CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CiAgICAg
dm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpOworICAgIHZvaWQgcG9w
dWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCmluZGV4IDk4ZjVhYjlhMDg5
NGFjNjg4MWYzMTg0NjU0ZDVmNTUzMmQ3OWYzMGUuLjMzMzBhNjUzYjc0YTJiOWY3NjA0ZGY4ZGY0
NGYzYzM5MzEzNTNlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcApAQCAtMjksMTUgKzI5LDMwIEBA
CiAKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKIAorI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1Mb2NhbGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK2NvbnN0ZXhwciBTZWNvbmRzIHR5cGVBaGVhZFRpbWVvdXQgeyAxX3Mg
fTsKKworaW50IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UmFuZ2U6OmNsYW1wVmFsdWUo
aW50IHZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBzdGQ6Om1pbihzdGQ6Om1heCh2YWx1ZSwg
bWluaW11bSksIG1heGltdW0pOworfQorCitib29sIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dDo6UmFuZ2U6OmlzSW5SYW5nZShpbnQgdmFsdWUpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZhbHVl
ID49IG1pbmltdW0gJiYgdmFsdWUgPD0gbWF4aW11bTsKK30KKwogV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk7CiAKLURhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1
bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgU3RyaW5nJiBwbGFjZWhvbGRlcikK
K0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgUmFuZ2Um
IHJhbmdlLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKQogICAgIDogRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpCisgICAgLCBtX3JhbmdlKHJhbmdlKQogICAgICwg
bV9wbGFjZWhvbGRlcihwbGFjZWhvbGRlcikKIHsKIH0KQEAgLTQ1LDYgKzYwLDExIEBAIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCwgRmllCiBTdHJpbmcgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojpm
b3JtYXRWYWx1ZShpbnQgdmFsdWUpIGNvbnN0CiB7CiAgICAgTG9jYWxlJiBsb2NhbGUgPSBsb2Nh
bGVGb3JPd25lcigpOworCisgICAgaWYgKG1fcmFuZ2UubWF4aW11bSA+IDk5OSkKKyAgICAgICAg
cmV0dXJuIGxvY2FsZS5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIobWFrZVN0cmluZyhwYWQoJzAn
LCA0LCB2YWx1ZSkpKTsKKyAgICBpZiAobV9yYW5nZS5tYXhpbXVtID4gOTkpCisgICAgICAgIHJl
dHVybiBsb2NhbGUuY29udmVydFRvTG9jYWxpemVkTnVtYmVyKG1ha2VTdHJpbmcocGFkKCcwJywg
MywgdmFsdWUpKSk7CiAgICAgcmV0dXJuIGxvY2FsZS5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIo
bWFrZVN0cmluZyhwYWQoJzAnLCAyLCB2YWx1ZSkpKTsKIH0KIApAQCAtNTgsMTggKzc4LDE5IEBA
IHZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojppbml0aWFsaXplKGNvbnN0IEF0b21T
dHJpbmcmIHBzZXVkbykKICAgICBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShwc2V1
ZG8pOwogfQogCi12b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1
ZSgpCit2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZShFdmVu
dEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgbV92YWx1ZSA9IDA7CiAgICAgbV9oYXNW
YWx1ZSA9IGZhbHNlOwotICAgIHVwZGF0ZVZpc2libGVWYWx1ZSgpOworICAgIG1fdHlwZUFoZWFk
QnVmZmVyLmNsZWFyKCk7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVlKGV2ZW50QmVoYXZpb3IpOwog
fQogCi12b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIo
aW50IHZhbHVlKQordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJ
bnRlZ2VyKGludCB2YWx1ZSwgRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewotICAgIG1f
dmFsdWUgPSB2YWx1ZTsKKyAgICBtX3ZhbHVlID0gbV9yYW5nZS5jbGFtcFZhbHVlKHZhbHVlKTsK
ICAgICBtX2hhc1ZhbHVlID0gdHJ1ZTsKLSAgICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB1
cGRhdGVWaXNpYmxlVmFsdWUoZXZlbnRCZWhhdmlvcik7CiB9CiAKIFN0cmluZyBEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKQEAgLTg3LDYgKzEwOCwzOSBAQCBTdHJp
bmcgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAogICAg
IHJldHVybiBtX2hhc1ZhbHVlID8gdmFsdWUoKSA6IG1fcGxhY2Vob2xkZXI7CiB9CiAKK3ZvaWQg
RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJk
RXZlbnQmIGtleWJvYXJkRXZlbnQpCit7CisgICAgaWYgKGtleWJvYXJkRXZlbnQudHlwZSgpICE9
IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRv
IGNoYXJDb2RlID0gc3RhdGljX2Nhc3Q8VUNoYXI+KGtleWJvYXJkRXZlbnQuY2hhckNvZGUoKSk7
CisgICAgU3RyaW5nIG51bWJlciA9IGxvY2FsZUZvck93bmVyKCkuY29udmVydEZyb21Mb2NhbGl6
ZWROdW1iZXIoU3RyaW5nKCZjaGFyQ29kZSwgMSkpOworICAgIGludCBkaWdpdCA9IG51bWJlclsw
XSAtICcwJzsKKyAgICBpZiAoZGlnaXQgPCAwIHx8IGRpZ2l0ID4gOSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgU2Vjb25kcyB0aW1lU2luY2VMYXN0RGlnaXRDaGFyID0ga2V5Ym9hcmRFdmVudC50
aW1lU3RhbXAoKSAtIG1fbGFzdERpZ2l0Q2hhclRpbWU7CisgICAgbV9sYXN0RGlnaXRDaGFyVGlt
ZSA9IGtleWJvYXJkRXZlbnQudGltZVN0YW1wKCk7CisKKyAgICBpZiAodGltZVNpbmNlTGFzdERp
Z2l0Q2hhciA+IHR5cGVBaGVhZFRpbWVvdXQpIHsKKyAgICAgICAgbV90eXBlQWhlYWRCdWZmZXIu
Y2xlYXIoKTsKKyAgICB9IGVsc2UgaWYgKGF1dG8gbGVuZ3RoID0gbV90eXBlQWhlYWRCdWZmZXIu
bGVuZ3RoKCkpIHsKKyAgICAgICAgdW5zaWduZWQgbWF4TGVuZ3RoID0gZm9ybWF0VmFsdWUobV9y
YW5nZS5tYXhpbXVtKS5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGxlbmd0aCA9PSBtYXhMZW5ndGgp
CisgICAgICAgICAgICBtX3R5cGVBaGVhZEJ1ZmZlci5jbGVhcigpOworICAgIH0KKworICAgIG1f
dHlwZUFoZWFkQnVmZmVyLmFwcGVuZChudW1iZXIpOworICAgIHNldFZhbHVlQXNJbnRlZ2VyKG1f
dHlwZUFoZWFkQnVmZmVyLnRvU3RyaW5nKCkudG9JbnQoKSwgRGlzcGF0Y2hJbnB1dEFuZENoYW5n
ZUV2ZW50KTsKKworICAgIGtleWJvYXJkRXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwor
dm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmRpZEJsdXIoKQoreworICAgIG1fdHlw
ZUFoZWFkQnVmZmVyLmNsZWFyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaApp
bmRleCBmMDJiZmIwZWRkMDI4YTZmOWM4NDMyNThiZDY5NWJlNDgxODM3MzY0Li40MDRkMzkxZDgx
M2RkN2U1NmVhMDhhMDk3NTVjZTkxZjQ3MjU4ODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaApAQCAtMjks
MzMgKzI5LDQ5IEBACiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCiAKICNp
bmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNU
aW1lLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBE
YXRlVGltZUZpZWxkRWxlbWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQpOwogcHVibGljOgorICAgIHN0cnVjdCBSYW5nZSB7CisgICAg
ICAgIFJhbmdlKGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSkKKyAgICAgICAgICAgIDogbWluaW11
bShtaW5pbXVtKSwgbWF4aW11bShtYXhpbXVtKSB7IH0KKyAgICAgICAgaW50IGNsYW1wVmFsdWUo
aW50KSBjb25zdDsKKyAgICAgICAgYm9vbCBpc0luUmFuZ2UoaW50KSBjb25zdDsKKworICAgICAg
ICBpbnQgbWluaW11bTsKKyAgICAgICAgaW50IG1heGltdW07CisgICAgfTsKIAogcHJvdGVjdGVk
OgotICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXIm
LCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKTsKKyAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgUmFuZ2UmLCBjb25zdCBTdHJpbmcm
IHBsYWNlaG9sZGVyKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoK
ICAgICBib29sIGhhc1ZhbHVlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplKGNv
bnN0IEF0b21TdHJpbmcmKTsKLSAgICB2b2lkIHNldEVtcHR5VmFsdWUoKSBmaW5hbDsKLSAgICB2
b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGludCkgZmluYWw7CisgICAgdm9pZCBzZXRFbXB0eVZhbHVl
KEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpIGZpbmFsOworICAgIHZvaWQgc2V0VmFs
dWVBc0ludGVnZXIoaW50LCBFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBmaW5hbDsK
ICAgICBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgdmlzaWJs
ZVZhbHVlKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQgZnVuY3Rpb25zOgogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0IGZpbmFsOworICAgIHZv
aWQgaGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50JikgZmluYWw7CisgICAgdm9pZCBk
aWRCbHVyKCkgZmluYWw7CiAKICAgICBTdHJpbmcgZm9ybWF0VmFsdWUoaW50KSBjb25zdDsKIAor
ICAgIGNvbnN0IFJhbmdlIG1fcmFuZ2U7CiAgICAgY29uc3QgU3RyaW5nIG1fcGxhY2Vob2xkZXI7
CiAgICAgaW50IG1fdmFsdWUgeyAwIH07CiAgICAgYm9vbCBtX2hhc1ZhbHVlIHsgZmFsc2UgfTsK
KyAgICBTdHJpbmdCdWlsZGVyIG1fdHlwZUFoZWFkQnVmZmVyOworICAgIE1vbm90b25pY1RpbWUg
bV9sYXN0RGlnaXRDaGFyVGltZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudC5jcHAKaW5kZXggZGY1NGJlODE4NGYyOTBhZDhlMWUyNDJlN2IwMTk3ZjAzMzY0
YzY2My4uYmY2MDI1NWNkZGMxMTlhN2M0YzdkZDU2YzMwMDNjMTUyNWRjMGQ1ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudC5jcHAKQEAgLTYzLDE2ICs2MywxNiBAQCB2b2lkIERhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKQogICAgIERh
dGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKHBzZXVkbyk7CiB9CiAKLXZvaWQgRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZSgpCit2b2lkIERhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUoRXZlbnRCZWhhdmlvciBldmVudEJlaGF2
aW9yKQogewogICAgIG1fc2VsZWN0ZWRJbmRleCA9IGludmFsaWRJbmRleDsKLSAgICB1cGRhdGVW
aXNpYmxlVmFsdWUoKTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUoZXZlbnRCZWhhdmlvcik7CiB9
CiAKLXZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIo
aW50IG5ld1NlbGVjdGVkSW5kZXgpCit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6
OnNldFZhbHVlQXNJbnRlZ2VyKGludCBuZXdTZWxlY3RlZEluZGV4LCBFdmVudEJlaGF2aW9yIGV2
ZW50QmVoYXZpb3IpCiB7CiAgICAgbV9zZWxlY3RlZEluZGV4ID0gc3RkOjptYXgoMCwgc3RkOjpt
aW4obmV3U2VsZWN0ZWRJbmRleCwgc3RhdGljX2Nhc3Q8aW50PihtX3N5bWJvbHMuc2l6ZSgpIC0g
MSkpKTsKLSAgICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUo
ZXZlbnRCZWhhdmlvcik7CiB9CiAKIFN0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
Ojp2YWx1ZSgpIGNvbnN0CkBAIC05NSw2ICs5NSwxMSBAQCBTdHJpbmcgRGF0ZVRpbWVTeW1ib2xp
Y0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gaGFzVmFsdWUo
KSA/IG1fc3ltYm9sc1ttX3NlbGVjdGVkSW5kZXhdIDogdmlzaWJsZUVtcHR5VmFsdWUoKTsKIH0K
IAordm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50
KEtleWJvYXJkRXZlbnQmKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgYWZ0ZXIgYWRkaW5n
IGxheW91dCBmb3IgPGlucHV0IHR5cGU9dGltZT4uCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5oCmluZGV4IDY3YTgwNzg0MDViNmRhNjVmY2QwYzA2NzUzMGRkZWZlMWYyN2QwZTIu
LjM4ZGY5MjFkMTBiYmZkMjI1YTU1ZGE3MjlmNzI2Nzc1OGQ3MzgwYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50LmgKQEAgLTM5LDggKzM5LDggQEAgcHJvdGVjdGVkOgogICAgIHNpemVfdCBzeW1ib2xzU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ltYm9scy5zaXplKCk7IH0KICAgICBib29sIGhhc1ZhbHVl
KCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBz
ZXVkbyk7Ci0gICAgdm9pZCBzZXRFbXB0eVZhbHVlKCkgZmluYWw7Ci0gICAgdm9pZCBzZXRWYWx1
ZUFzSW50ZWdlcihpbnQpIGZpbmFsOworICAgIHZvaWQgc2V0RW1wdHlWYWx1ZShFdmVudEJlaGF2
aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBmaW5hbDsKKyAgICB2b2lkIHNldFZhbHVlQXNJbnRlZ2Vy
KGludCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCkgZmluYWw7CiAgICAgaW50IHZh
bHVlQXNJbnRlZ2VyKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CkBAIC01MSw2ICs1MSw3IEBA
IHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgogICAgIFN0
cmluZyB2YWx1ZSgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25z
dCBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZp
bmFsOwogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4gbV9zeW1ib2xzOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAKaW5kZXggM2E1ZjVjYzUyODM1NGE3NDky
MTE1ZDI3YmUyZGQ2NGY5YjNlYWUzMC4uODZjNzZjNWE5ZGQxZDc3NmM1NGVlN2Y5YzFkODM2ODA2
YWU1OGEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVu
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcApA
QCAtNDEsMTUgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBIVE1MIHVzZXMg
SVNPLTg2MDEgZm9ybWF0IHdpdGggeWVhciA+PSAxLiBHcmVnb3JpYW4gY2FsZW5kYXIgc3RhcnRl
ZCBpbgotLy8gMTU4Mi4gSG93ZXZlciwgd2UgbmVlZCB0byBzdXBwb3J0IDAwMDEtMDEtMDEgaW4g
R3JlZ29yaWFuIGNhbGVuZGFyIHJ1bGUuCi1zdGF0aWMgY29uc3RleHByIGludCBtaW5pbXVtWWVh
ciA9IDE7Ci0KLS8vIERhdGUgaW4gRUNNQVNjcmlwdCBjYW4ndCByZXByZXNlbnQgZGF0ZXMgbGF0
ZXIgdGhhbiAyNzU3NjAtMDktMTNUMDA6MDBaLgotLy8gU28sIHdlIGhhdmUgdGhlIHNhbWUgdXBw
ZXIgbGltaXQgaW4gSFRNTDUgZGF0ZS90aW1lIHR5cGVzLgotc3RhdGljIGNvbnN0ZXhwciBpbnQg
bWF4aW11bVllYXIgPSAyNzU3NjA7Ci0KLS8vIEhUTUxkZWZpbmVzIG1pbmltdW0gd2VlayBvZiB5
ZWFyIGlzIG9uZS4KKy8vIEhUTUwgZGVmaW5lcyBtaW5pbXVtIHdlZWsgb2YgeWVhciBpcyBvbmUu
CiBzdGF0aWMgY29uc3RleHByIGludCBtaW5pbXVtV2Vla051bWJlciA9IDE7CiAKIC8vIEhUTUwg
ZGVmaW5lcyBtYXhpbXVtIHdlZWsgb2YgeWVhciBpcyA1My4KQEAgLTE1MSw3ICsxNDMsNyBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIERhdGVDb21wb25lbnRzOjpwYXJz
ZVllYXIoU3RyaW5nUGFyc2luZ0J1ZgogICAgIGlmIChkaWdpdHNMZW5ndGggPCA0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIHllYXIgPSBwYXJzZUludFdpdGhpbkxpbWl0cyhi
dWZmZXIsIGRpZ2l0c0xlbmd0aCwgbWluaW11bVllYXIsIG1heGltdW1ZZWFyKTsKKyAgICBhdXRv
IHllYXIgPSBwYXJzZUludFdpdGhpbkxpbWl0cyhidWZmZXIsIGRpZ2l0c0xlbmd0aCwgbWluaW11
bVllYXIoKSwgbWF4aW11bVllYXIoKSk7CiAgICAgaWYgKCF5ZWFyKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKQEAgLTE2MSwxOCArMTUzLDE4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3Rl
clR5cGU+IGJvb2wgRGF0ZUNvbXBvbmVudHM6OnBhcnNlWWVhcihTdHJpbmdQYXJzaW5nQnVmCiAK
IHN0YXRpYyBib29sIHdpdGhpbkhUTUxEYXRlTGltaXRzKGludCB5ZWFyLCBpbnQgbW9udGgpCiB7
Ci0gICAgaWYgKHllYXIgPCBtaW5pbXVtWWVhcikKKyAgICBpZiAoeWVhciA8IERhdGVDb21wb25l
bnRzOjptaW5pbXVtWWVhcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHllYXIg
PCBtYXhpbXVtWWVhcikKKyAgICBpZiAoeWVhciA8IERhdGVDb21wb25lbnRzOjptYXhpbXVtWWVh
cigpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gbW9udGggPD0gbWF4aW11bU1v
bnRoSW5NYXhpbXVtWWVhcjsKIH0KIAogc3RhdGljIGJvb2wgd2l0aGluSFRNTERhdGVMaW1pdHMo
aW50IHllYXIsIGludCBtb250aCwgaW50IG1vbnRoRGF5KQogewotICAgIGlmICh5ZWFyIDwgbWlu
aW11bVllYXIpCisgICAgaWYgKHllYXIgPCBEYXRlQ29tcG9uZW50czo6bWluaW11bVllYXIoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICh5ZWFyIDwgbWF4aW11bVllYXIpCisgICAg
aWYgKHllYXIgPCBEYXRlQ29tcG9uZW50czo6bWF4aW11bVllYXIoKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgaWYgKG1vbnRoIDwgbWF4aW11bU1vbnRoSW5NYXhpbXVtWWVhcikKICAgICAg
ICAgcmV0dXJuIHRydWU7CkBAIC0xODEsOSArMTczLDkgQEAgc3RhdGljIGJvb2wgd2l0aGluSFRN
TERhdGVMaW1pdHMoaW50IHllYXIsIGludCBtb250aCwgaW50IG1vbnRoRGF5KQogCiBzdGF0aWMg
Ym9vbCB3aXRoaW5IVE1MRGF0ZUxpbWl0cyhpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgbW9udGhE
YXksIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kLCBpbnQgbWlsbGlzZWNvbmQpCiB7
Ci0gICAgaWYgKHllYXIgPCBtaW5pbXVtWWVhcikKKyAgICBpZiAoeWVhciA8IERhdGVDb21wb25l
bnRzOjptaW5pbXVtWWVhcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHllYXIg
PCBtYXhpbXVtWWVhcikKKyAgICBpZiAoeWVhciA8IERhdGVDb21wb25lbnRzOjptYXhpbXVtWWVh
cigpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobW9udGggPCBtYXhpbXVtTW9udGhJ
bk1heGltdW1ZZWFyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQzNiw3ICs0MjgsNyBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIERhdGVDb21wb25lbnRzOjpwYXJz
ZVdlZWsoU3RyaW5nUGFyc2luZ0J1ZgogICAgIGlmICghd2VlaykKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKG1feWVhciA9PSBtYXhpbXVtWWVhciAmJiAqd2VlayA+IG1heGltdW1X
ZWVrSW5NYXhpbXVtWWVhcikKKyAgICBpZiAobV95ZWFyID09IG1heGltdW1ZZWFyKCkgJiYgKndl
ZWsgPiBtYXhpbXVtV2Vla0luTWF4aW11bVllYXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIG1fd2VlayA9ICp3ZWVrOwpAQCAtNjU2LDcgKzY0OCw3IEBAIGJvb2wgRGF0ZUNvbXBvbmVu
dHM6OnNldE1vbnRoc1NpbmNlRXBvY2goZG91YmxlIG1vbnRocykKICAgICBtb250aHMgPSByb3Vu
ZChtb250aHMpOwogICAgIGRvdWJsZSBkb3VibGVNb250aCA9IHBvc2l0aXZlRm1vZChtb250aHMs
IDEyKTsKICAgICBkb3VibGUgZG91YmxlWWVhciA9IDE5NzAgKyAobW9udGhzIC0gZG91YmxlTW9u
dGgpIC8gMTI7Ci0gICAgaWYgKGRvdWJsZVllYXIgPCBtaW5pbXVtWWVhciB8fCBtYXhpbXVtWWVh
ciA8IGRvdWJsZVllYXIpCisgICAgaWYgKGRvdWJsZVllYXIgPCBtaW5pbXVtWWVhcigpIHx8IG1h
eGltdW1ZZWFyKCkgPCBkb3VibGVZZWFyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaW50
IHllYXIgPSBzdGF0aWNfY2FzdDxpbnQ+KGRvdWJsZVllYXIpOwogICAgIGludCBtb250aCA9IHN0
YXRpY19jYXN0PGludD4oZG91YmxlTW9udGgpOwpAQCAtNjg2LDcgKzY3OCw3IEBAIGJvb2wgRGF0
ZUNvbXBvbmVudHM6OnNldE1pbGxpc2Vjb25kc1NpbmNlRXBvY2hGb3JXZWVrKGRvdWJsZSBtcykK
ICAgICBtcyA9IHJvdW5kKG1zKTsKIAogICAgIG1feWVhciA9IG1zVG9ZZWFyKG1zKTsKLSAgICBp
ZiAobV95ZWFyIDwgbWluaW11bVllYXIgfHwgbV95ZWFyID4gbWF4aW11bVllYXIpCisgICAgaWYg
KG1feWVhciA8IG1pbmltdW1ZZWFyKCkgfHwgbV95ZWFyID4gbWF4aW11bVllYXIoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaW50IHllYXJEYXkgPSBkYXlJblllYXIobXMsIG1feWVh
cik7CkBAIC02OTQsNyArNjg2LDcgQEAgYm9vbCBEYXRlQ29tcG9uZW50czo6c2V0TWlsbGlzZWNv
bmRzU2luY2VFcG9jaEZvcldlZWsoZG91YmxlIG1zKQogICAgIGlmICh5ZWFyRGF5IDwgb2Zmc2V0
KSB7CiAgICAgICAgIC8vIFRoZSBkYXkgYmVsb25ncyB0byB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBw
cmV2aW91cyB5ZWFyLgogICAgICAgICBtX3llYXItLTsKLSAgICAgICAgaWYgKG1feWVhciA8PSBt
aW5pbXVtWWVhcikKKyAgICAgICAgaWYgKG1feWVhciA8PSBtaW5pbXVtWWVhcigpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBtX3dlZWsgPSBtYXhXZWVrTnVtYmVySW5ZZWFy
KCk7CiAgICAgfSBlbHNlIHsKQEAgLTcwMyw3ICs2OTUsNyBAQCBib29sIERhdGVDb21wb25lbnRz
OjpzZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yV2Vlayhkb3VibGUgbXMpCiAgICAgICAgICAg
ICBtX3llYXIrKzsKICAgICAgICAgICAgIG1fd2VlayA9IDE7CiAgICAgICAgIH0KLSAgICAgICAg
aWYgKG1feWVhciA+IG1heGltdW1ZZWFyIHx8IChtX3llYXIgPT0gbWF4aW11bVllYXIgJiYgbV93
ZWVrID4gbWF4aW11bVdlZWtJbk1heGltdW1ZZWFyKSkKKyAgICAgICAgaWYgKG1feWVhciA+IG1h
eGltdW1ZZWFyKCkgfHwgKG1feWVhciA9PSBtYXhpbXVtWWVhcigpICYmIG1fd2VlayA+IG1heGlt
dW1XZWVrSW5NYXhpbXVtWWVhcikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
ICAgIG1fdHlwZSA9IERhdGVDb21wb25lbnRzVHlwZTo6V2VlazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9EYXRlQ29tcG9uZW50cy5oCmluZGV4IGEyNGZiOWYxZjExMDM3ODc0NjhkZWU1MzM0MTBi
Y2FjYjIyZDU0N2UuLjBhOTAyMzEwMzA1MjY3ZTlhMTQxYjMxYzA4YTdkYWE0MjQ0MzdjZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaApAQCAtMTM3LDYgKzEzNywx
NCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbmxpbmUgZG91YmxlIG1heGltdW1U
aW1lKCkgeyByZXR1cm4gODYzOTk5OTk7IH0gLy8gMjM6NTk6NTkuOTk5CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBpbmxpbmUgZG91YmxlIG1heGltdW1XZWVrKCkgeyByZXR1cm4gODYzOTk5OTU2ODAw
MDAwMC4wOyB9IC8vIDI3NTc2MC0wOS0wOCwgdGhlIE1vbmRheSBvZiB0aGUgd2VlayBpbmNsdWRp
bmcgMjc1NzYwLTA5LTEzLgogCisgICAgLy8gSFRNTCB1c2VzIElTTy04NjAxIGZvcm1hdCB3aXRo
IHllYXIgPj0gMS4gR3JlZ29yaWFuIGNhbGVuZGFyIHN0YXJ0ZWQgaW4KKyAgICAvLyAxNTgyLiBI
b3dldmVyLCB3ZSBuZWVkIHRvIHN1cHBvcnQgMDAwMS0wMS0wMSBpbiBHcmVnb3JpYW4gY2FsZW5k
YXIgcnVsZS4KKyAgICBzdGF0aWMgY29uc3RleHByIGlubGluZSBpbnQgbWluaW11bVllYXIoKSB7
IHJldHVybiAxOyB9CisKKyAgICAvLyBEYXRlIGluIEVDTUFTY3JpcHQgY2FuJ3QgcmVwcmVzZW50
IGRhdGVzIGxhdGVyIHRoYW4gMjc1NzYwLTA5LTEzVDAwOjAwWi4KKyAgICAvLyBTbywgd2UgaGF2
ZSB0aGUgc2FtZSB1cHBlciBsaW1pdCBpbiBIVE1MNSBkYXRlL3RpbWUgdHlwZXMuCisgICAgc3Rh
dGljIGNvbnN0ZXhwciBpbmxpbmUgaW50IG1heGltdW1ZZWFyKCkgeyByZXR1cm4gMjc1NzYwOyB9
CisKIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gYm9vbCBw
YXJzZVllYXIoU3RyaW5nUGFyc2luZ0J1ZmZlcjxDaGFyYWN0ZXJUeXBlPiYpOwogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgcGFyc2VUaW1lWm9uZShTdHJpbmdQYXJz
aW5nQnVmZmVyPENoYXJhY3RlclR5cGU+Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGQyNWZjZjc0OGUyYjNkMGVmZDVj
NDY4ZjllYzI3ZDQ5NGQzYWNkNi4uYTM4YzRlNTNiMDIzNDQ1YjBlYTM3Yzc1NDFiNjVjMDVlNjAx
MWIxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA4LTI4ICBBZGl0eWEgS2VlcnRoaSAg
PGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEhhbmRsZSBldmVudHMgZm9y
IGRhdGUgaW5wdXRzIHdpdGggZWRpdGFibGUgY29tcG9uZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1OTM4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gdmVyaWZ5IGNvcnJl
Y3RuZXNzIGZvciBrZXlib2FyZCBhbmQgbW91c2UgaW5wdXRzIGluIGRhdGUKKyAgICAgICAgaW5w
dXRzIHdpdGggZWRpdGFibGUgY29tcG9uZW50cy4gVGhlc2UgdGVzdHMgYWxzbyBlbnN1cmUgdGhh
dCB0aGUKKyAgICAgICAgYXBwcm9wcmlhdGUgZXZlbnRzIGFyZSBkaXNwYXRjaGVkOiAiY2xpY2si
LCAiYmx1ciIsICJmb2N1cyIsICJpbnB1dCIKKyAgICAgICAgYW5kICJjaGFuZ2UiLgorCisgICAg
ICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1l
ZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1mb2N1cy1hbmQtYmx1
ci1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUv
ZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1mb2N1cy1h
bmQtYmx1ci1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kYXRlL2Rh
dGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQt
ZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kYXRlL2Rh
dGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQt
ZXZlbnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRh
YmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50cy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxl
LWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50cy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjAtMDgtMzEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFttYWNPU10gRGF0ZSBpbnB1dHMgc2hvdWxkIGNvbnRhaW4gZWRpdGFibGUgY29tcG9uZW50cwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggMDBiNzdlNTg5MTk5ZjE2NjRmNjRhZmY5MmViOWJkODUxNjYx
N2NjYy4uZjUwN2U3NjJmOTY0NzcyNmM4YmI3OTM2ZDNhOTMxODU0NDhmMGIzZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0zMCw2ICszMCw3IEBAIGVkaXRpbmcvdW5kby1tYW5hZ2VyIFsgU2tpcCBd
CiB0aWxlZC1kcmF3aW5nIFsgU2tpcCBdCiBmYXN0L2Nzcy9pb3MgWyBTa2lwIF0KIGZhc3QvY3Nz
L3dhdGNob3MgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVu
dHMgWyBTa2lwIF0KIGZhc3QvZG9tL1dpbmRvdy93YXRjaG9zIFsgU2tpcCBdCiBmYXN0L2Zvcm1z
L3NlbGVjdC9tYWMtd2syIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL3RleHRhcmVhL2lvcyBbIFNraXAg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUt
Y29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxl
LWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVyLWV2ZW50
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRlNjgxZjdjODFlOTc3NjUzODc1Yzg0YTE3NWEy
NTRjMTIxNzM2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0
ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZvY3Vz
LWFuZC1ibHVyLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MCBAQAorVGVzdCBmb3Ig
Zm9jdXMgYW5kIGJsdXIgZXZlbnRzIGZvciA8aW5wdXQgdHlwZT1kYXRlPgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworRm9jdXMvYmx1ciB1c2luZyBtb3VzZQorCitQQVNTIGZvY3Vz
RXZlbnRzRmlyZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMAorUEFTUyBmb2N1c0V2
ZW50c0ZpcmVkIGlzIDEKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDAKK1BBU1MgZm9jdXNFdmVu
dHNGaXJlZCBpcyAxCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAwCitQQVNTIGZvY3VzRXZlbnRz
RmlyZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMAorUEFTUyBmb2N1c0V2ZW50c0Zp
cmVkIGlzIDEKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDEKKworRm9jdXMvYmx1ciB1c2luZyBr
ZXlib2FyZAorCitQQVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmly
ZWQgaXMgMAorUEFTUyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDEKK1BBU1MgYmx1ckV2ZW50c0ZpcmVk
IGlzIDAKK1BBU1MgZm9jdXNFdmVudHNGaXJlZCBpcyAxCitQQVNTIGJsdXJFdmVudHNGaXJlZCBp
cyAwCitQQVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMg
MQorUEFTUyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDIKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDEK
K1BBU1MgZm9jdXNFdmVudHNGaXJlZCBpcyAyCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAxCitQ
QVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMgorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMQorUEFT
UyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDIKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMv
ZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVyLWV2ZW50cy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVk
aXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTViMDRiNGEzMWMwZDA0MTJlZjMwZDc0NGQyZWJjOWU1OGE0MGQ0NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMv
ZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVyLWV2ZW50cy5odG1sCkBAIC0w
LDAgKzEsMTIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KK2lucHV0IHsKKyAgICB3aWR0aDogMzAwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRh
dGV0aW1lLWVkaXQtdGV4dCB7CisgICAgZm9udC1zaXplOiAzMHB4OworfQorCitpbnB1dDo6LXdl
YmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIHsKKyAgICBmb250LXNpemU6IDMwcHg7Cit9
CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkIHsKKyAgICBmb250LXNp
emU6IDMwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCB7
CisgICAgZm9udC1zaXplOiAzMHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8
aW5wdXQgaWQ9ImJlZm9yZSIgdHlwZT0idGV4dCI+Cis8aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJk
YXRlIiB2YWx1ZT0iMjAyMC0wOC0yNiI+Cis8aW5wdXQgaWQ9ImFmdGVyIiB0eXBlPSJ0ZXh0Ij4K
KworPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgZm9yIGZvY3VzIGFuZCBibHVyIGV2ZW50
cyBmb3IgJmx0O2lucHV0IHR5cGU9ZGF0ZSZndDsiKTsKKworYmx1ckV2ZW50c0ZpcmVkID0gMDsK
K2Z1bmN0aW9uIG9uQmx1ckV2ZW50KCkgeworICAgIGJsdXJFdmVudHNGaXJlZCsrOworfQorCitm
b2N1c0V2ZW50c0ZpcmVkID0gMDsKK2Z1bmN0aW9uIG9uRm9jdXNFdmVudCgpIHsKKyAgICBmb2N1
c0V2ZW50c0ZpcmVkKys7Cit9CisKK2Z1bmN0aW9uIGFzc2VydEZvY3VzQW5kQmx1ckNvdW50KG51
bUZvY3VzRXZlbnRzLCBudW1CbHVyRXZlbnRzKSB7CisgICAgc2hvdWxkQmUoImZvY3VzRXZlbnRz
RmlyZWQiLCBudW1Gb2N1c0V2ZW50cy50b1N0cmluZygpKTsKKyAgICBzaG91bGRCZSgiYmx1ckV2
ZW50c0ZpcmVkIiwgbnVtQmx1ckV2ZW50cy50b1N0cmluZygpKTsKK30KKworZnVuY3Rpb24gcmVz
ZXRGb2N1c0FuZEJsdXJDb3VudCgpIHsKKyAgICBibHVyRXZlbnRzRmlyZWQgPSAwOworICAgIGZv
Y3VzRXZlbnRzRmlyZWQgPSAwOworfQorCitmdW5jdGlvbiBtb3VzZUNsaWNrT24oeCwgeSkgewor
ICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1cm47CisgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oeCArIGlucHV0Lm9mZnNldExlZnQsIHkgKyBpbnB1dC5vZmZzZXRU
b3ApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKK30KKworaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIG9uQmx1ckV2ZW50KTsK
K2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgb25Gb2N1c0V2ZW50KTsKKworY29uc3Qg
Y2VudGVyID0gaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKKworZGVidWcoIkZvY3VzL2JsdXIgdXNp
bmcgbW91c2VcbiIpOworCisvLyBDbGljayBvbiBtb250aCBmaWVsZC4KK21vdXNlQ2xpY2tPbigy
MCwgY2VudGVyKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDApOworLy8gQ2xpY2sgb24g
ZGF5IGZpZWxkLgorbW91c2VDbGlja09uKDYwLCBjZW50ZXIpOworYXNzZXJ0Rm9jdXNBbmRCbHVy
Q291bnQoMSwgMCk7CisvLyBDbGljayBvbiB5ZWFyIGZpZWxkLgorbW91c2VDbGlja09uKDEyMCwg
Y2VudGVyKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDApOworLy8gQ2xpY2sgb24gY29u
dHJvbCwgYnV0IG5vdCBhIHNwZWNpZmljIGZpZWxkLgorbW91c2VDbGlja09uKDI1MCwgY2VudGVy
KTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDApOworLy8gQ2xpY2sgb3V0c2lkZSBjb250
cm9sLgorbW91c2VDbGlja09uKGlucHV0Lm9mZnNldFdpZHRoICsgNSwgaW5wdXQub2Zmc2V0SGVp
Z2h0ICsgNSk7Cithc3NlcnRGb2N1c0FuZEJsdXJDb3VudCgxLCAxKTsKK3Jlc2V0Rm9jdXNBbmRC
bHVyQ291bnQoKTsKKworZGVidWcoIlxuRm9jdXMvYmx1ciB1c2luZyBrZXlib2FyZFxuIik7CisK
K1VJSGVscGVyLmFjdGl2YXRlRWxlbWVudChiZWZvcmUpOworLy8gRm9jdXMgb24gbW9udGggZmll
bGQuCitVSUhlbHBlci5rZXlEb3duKCJcdCIpOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMSwg
MCk7CisvLyBGb2N1cyBvbiBkYXkgZmllbGQuCitVSUhlbHBlci5rZXlEb3duKCJcdCIpOworYXNz
ZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMSwgMCk7CisvLyBGb2N1cyBvbiB5ZWFyIGZpZWxkLgorVUlI
ZWxwZXIua2V5RG93bigiXHQiKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDApOworLy8g
Rm9jdXMgb3V0LgorVUlIZWxwZXIua2V5RG93bigiXHQiKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNv
dW50KDEsIDEpOworLy8gRm9jdXMgb24geWVhciBmaWVsZC4KK1VJSGVscGVyLmtleURvd24oIlx0
IiwgWyJzaGlmdEtleSJdKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDIsIDEpOworLy8gRm9j
dXMgb24gZGF5IGZpZWxkLgorVUlIZWxwZXIua2V5RG93bigiXHQiLCBbInNoaWZ0S2V5Il0pOwor
YXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMiwgMSk7CisvLyBGb2N1cyBvbiBtb250aCBmaWVsZC4K
K1VJSGVscGVyLmtleURvd24oIlx0IiwgWyJzaGlmdEtleSJdKTsKK2Fzc2VydEZvY3VzQW5kQmx1
ckNvdW50KDIsIDEpOworLy8gRm9jdXMgb3V0LgorVUlIZWxwZXIua2V5RG93bigiXHQiLCBbInNo
aWZ0S2V5Il0pOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMiwgMik7CisKKzwvc2NyaXB0Pgor
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50
cy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9k
YXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5
Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzU4NzZiNzM1ODQ2NDlmODM5
NWIwMWM3ZWUzYjJmZWE4OTk5ZTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBv
bmVudHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5IEBACitUZXN0
IGZvciBrZXlib2FyZCBvcGVyYXRpb25zIGZvciA8aW5wdXQgdHlwZT1kYXRlPgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworCitEaWdpdCBrZXlzCitQQVNTIGlucHV0LnZhbHVlIGlz
ICIyMDEyLTA5LTAyIgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBpcyA0CitQQVNTIGlucHV0RXZl
bnRzRmlyZWQgaXMgNAorCitEaWdpdCBrZXlzIHdpdGggbGVhZGluZyB6ZXJvCitQQVNTIGlucHV0
LnZhbHVlIGlzICIwMDM0LTA1LTA2IgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBpcyAzCitQQVNT
IGlucHV0RXZlbnRzRmlyZWQgaXMgMworCitEaWdpdCBrZXlzIGFuZCBiYWNrc3BhY2Uga2V5CitQ
QVNTIGlucHV0LnZhbHVlIGlzICIyMDIwLTAyLTA0IgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBp
cyA2CitQQVNTIGlucHV0RXZlbnRzRmlyZWQgaXMgNgorCitEaWdpdCBrZXlzIHdpdGggdGltZW91
dAorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMS0wMi0wNCIKK1BBU1MgY2hhbmdlRXZlbnRzRmly
ZWQgaXMgMgorUEFTUyBpbnB1dEV2ZW50c0ZpcmVkIGlzIDIKKworRGlnaXQga2V5cyBjbGFtcCB2
YWx1ZQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiOTk5OS0xMi0zMSIKK1BBU1MgY2hhbmdlRXZlbnRz
RmlyZWQgaXMgNAorUEFTUyBpbnB1dEV2ZW50c0ZpcmVkIGlzIDQKKworTGVmdC9SaWdodCBhcnJv
dyBrZXlzCitQQVNTIGlucHV0LnZhbHVlIGlzICIwMDAyLTAyLTAyIgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMDAwMi0wMy0wMyIKK1BBU1MgY2hhbmdlRXZlbnRzRmlyZWQgaXMgMworUEFTUyBpbnB1
dEV2ZW50c0ZpcmVkIGlzIDMKKworVGFiIGtleQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMi0w
Mi0wMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCBpcyAiYWZ0ZXIiCitQQVNTIGlu
cHV0LnZhbHVlIGlzICIwMDAyLTAzLTAzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50Lmlk
IGlzICJiZWZvcmUiCitQQVNTIGNoYW5nZUV2ZW50c0ZpcmVkIGlzIDMKK1BBU1MgaW5wdXRFdmVu
dHNGaXJlZCBpcyAzCisKK0JhY2tzcGFjZSBrZXkKK1BBU1MgaW5wdXQudmFsdWUgaXMgIiIKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjIwMjAtMDctMjYiCitQQVNTIGNoYW5nZUV2ZW50c0ZpcmVkIGlz
IDIKK1BBU1MgaW5wdXRFdmVudHNGaXJlZCBpcyAyCisKK0RlbGV0ZSBrZXkKK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIiIKK1BBU1MgY2hhbmdlRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBpbnB1dEV2ZW50
c0ZpcmVkIGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVk
aXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWtleWJvYXJkLWV2ZW50
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9u
ZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTJjYTY2ODY4Zjc0ZDYwNjk0ZThlZDA4Zjc1YmQ4M2MxMzkzOTA5ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBv
bmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWtleWJvYXJkLWV2ZW50cy5odG1sCkBAIC0w
LDAgKzEsMTc0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorCis8aW5wdXQgaWQ9ImJlZm9yZSIgdHlwZT0idGV4dCI+Cis8aW5wdXQg
aWQ9ImlucHV0IiB0eXBlPSJkYXRlIj4KKzxpbnB1dCBpZD0iYWZ0ZXIiIHR5cGU9InRleHQiPgor
Cis8c2NyaXB0PgorCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY2hhbmdlRXZlbnRzRmlyZWQg
PSAwOworZnVuY3Rpb24gb25DaGFuZ2VFdmVudCgpIHsKKyAgICBjaGFuZ2VFdmVudHNGaXJlZCsr
OworfQorCitpbnB1dEV2ZW50c0ZpcmVkID0gMDsKK2Z1bmN0aW9uIG9uSW5wdXRFdmVudCgpIHsK
KyAgICBpbnB1dEV2ZW50c0ZpcmVkKys7Cit9CisKK2Z1bmN0aW9uIGJlZ2luVGVzdCh0aXRsZSwg
dmFsdWUpIHsKKyAgICBkZWJ1ZygiXG4iICsgdGl0bGUpOworICAgIGlucHV0LnZhbHVlID0gdmFs
dWUgfHwgIiI7CisgICAgaW5wdXQuYmx1cigpOworICAgIGlucHV0LmZvY3VzKCk7CisKKyAgICBj
aGFuZ2VFdmVudHNGaXJlZCA9IDA7CisgICAgaW5wdXRFdmVudHNGaXJlZCA9IDA7Cit9CisKK2lu
cHV0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIG9uQ2hhbmdlRXZlbnQpOworaW5wdXQuYWRk
RXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBvbklucHV0RXZlbnQpOworCithZGRFdmVudExpc3RlbmVy
KCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBrZXlib2Fy
ZCBvcGVyYXRpb25zIGZvciAmbHQ7aW5wdXQgdHlwZT1kYXRlJmd0OyIpOworCisgICAgYmVnaW5U
ZXN0KCJEaWdpdCBrZXlzIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFttbV0v
ZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjkiKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAtPiBbMDldL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdo
dEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDkvW2RkXS95eXl5CisgICAg
VUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IC0+IDA5L1swMl0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAg
ICAgICAgICAgICAgICAgICAgICAvLyAtPiAwOS8wMi9beXl5eV0KKyAgICBVSUhlbHBlci5rZXlE
b3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDkvMDIvWzAw
MDJdCisgICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIC0+IDA5LzAyL1swMDIwXQorICAgIFVJSGVscGVyLmtleURvd24oIjEiKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwOS8wMi9bMDIwMV0KKyAgICBVSUhl
bHBlci5rZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4g
MDkvMDIvWzIwMTJdCisgICAgVUlIZWxwZXIua2V5RG93bigiQSIpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIElnbm9yZWQuCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJp
bnB1dC52YWx1ZSIsICIyMDEyLTA5LTAyIik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50c0Zp
cmVkIiwgIjQiKTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICI0Iik7CisKKyAg
ICBiZWdpblRlc3QoIkRpZ2l0IGtleXMgd2l0aCBsZWFkaW5nIHplcm8iKTsgICAgICAgICAgICAg
Ly8gW21tXS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIC0+IFswMF0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURv
d24oIjUiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBbMDVdL2RkL3l5
eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gLT4gMDUvW2RkXS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA1L1swMF0veXl5eQorICAgIFVJSGVs
cGVyLmtleURvd24oIjYiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAw
NS9bMDZdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gLT4gMDUvMDYvW3l5eXldCisgICAgVUlIZWxwZXIua2V5RG93bigi
MCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA1LzA2L1swMDAxXQor
ICAgIFVJSGVscGVyLmtleURvd24oIjAiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyAtPiAwNS8wNi9bMDAwMV0KKyAgICBVSUhlbHBlci5rZXlEb3duKCIzIik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDUvMDYvWzAwMDNdCisgICAgVUlIZWxwZXIu
a2V5RG93bigiNCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA1LzA2
L1swMDM0XQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMDAzNC0w
NS0wNiIpOworICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVudHNGaXJlZCIsICIzIik7CisgICAgc2hv
dWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAiMyIpOworCisgICAgYmVnaW5UZXN0KCJEaWdpdCBr
ZXlzIGFuZCBiYWNrc3BhY2Uga2V5Iik7ICAgICAgICAgICAgIC8vIFttbV0vZGQveXl5eQorICAg
IFVJSGVscGVyLmtleURvd24oIjEiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyAtPiBbMDFdL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJcYiIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gLT4gW21tXS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5
RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswMl0vZGQv
eXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAgICAgICAgICAgICAg
ICAgICAgICAvLyAtPiAwMi9bZGRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCIzIik7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvWzAzXS95eXl5CisgICAgVUlI
ZWxwZXIua2V5RG93bigiXGIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+
IDAyL1tkZF0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjQiKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAtPiAwMi9bMDRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3du
KCJyaWdodEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvMDQvW3l5eXld
CisgICAgVUlIZWxwZXIua2V5RG93bigiNCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIC0+IDAyLzA0L1swMDA0XQorICAgIFVJSGVscGVyLmtleURvd24oIlxiIik7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wNC9beXl5eV0KKyAgICBVSUhlbHBl
ci5rZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIv
MDQvWzAwMDJdCisgICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIC0+IDAyLzA0L1swMDIwXQorICAgIFVJSGVscGVyLmtleURvd24oIjIi
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wNC9bMDIwMl0KKyAg
ICBVSUhlbHBlci5rZXlEb3duKCIwIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gLT4gMDIvMDQvWzIwMjBdCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1
ZSIsICIyMDIwLTAyLTA0Iik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50c0ZpcmVkIiwgIjYi
KTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICI2Iik7CisKKyAgICBiZWdpblRl
c3QoIkRpZ2l0IGtleXMgd2l0aCB0aW1lb3V0Iik7ICAgICAgICAgICAgICAgICAgLy8gW21tXS9k
ZC95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIC0+IFswMl0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0
QXJyb3ciKTsgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9bZGRdL3l5eXkKKyAgICBV
SUhlbHBlci5rZXlEb3duKCI0Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g
LT4gMDIvWzA0XS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigicmlnaHRBcnJvdyIpOyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyLzA0L1t5eXl5XQorICAgIFVJSGVscGVyLmtleURv
d24oIjQiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wNC9bMDAw
NF0KKyAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcigxNTAwKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gV2FpdC4KKyAgICBVSUhlbHBlci5rZXlEb3duKCIxIik7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvMDQvWzAwMDFdCisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJpbnB1dC52YWx1ZSIsICIwMDAxLTAyLTA0Iik7CisgICAgc2hvdWxkQmUoImNoYW5n
ZUV2ZW50c0ZpcmVkIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICIy
Iik7CisKKyAgICBiZWdpblRlc3QoIkRpZ2l0IGtleXMgY2xhbXAgdmFsdWUiKTsgICAgICAgICAg
ICAgICAgICAgLy8gW21tXS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiOSIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswOV0vZGQveXl5eQorICAgIFVJSGVs
cGVyLmtleURvd24oIjkiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBb
MTJdL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gLT4gMTIvW2RkXS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigi
OSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDEyL1swOV0veXl5eQor
ICAgIFVJSGVscGVyLmtleURvd24oIjkiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyAtPiAxMi9bMzFdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMTIvMzEvW3l5eXldCisgICAgVUlIZWxwZXIu
a2V5RG93bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDEyLzMx
L1swMDA5XQorICAgIFVJSGVscGVyLmtleURvd24oIjkiKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAtPiAxMi8zMS9bMDA5OV0KKyAgICBVSUhlbHBlci5rZXlEb3duKCI5Iik7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMTIvMzEvWzA5OTldCisgICAg
VUlIZWxwZXIua2V5RG93bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IC0+IDEyLzMxL1s5OTk5XQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUi
LCAiOTk5OS0xMi0zMSIpOworICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVudHNGaXJlZCIsICI0Iik7
CisgICAgc2hvdWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAiNCIpOworCisgICAgYmVnaW5UZXN0
KCJMZWZ0L1JpZ2h0IGFycm93IGtleXMiKTsgICAgICAgICAgICAgICAgICAgIC8vIFttbV0vZGQv
eXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjIiKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvLyAtPiBbMDJdL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFy
cm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvW2RkXS95eXl5CisgICAgVUlI
ZWxwZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+
IDAyL1swMl0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wMi9beXl5eV0KKyAgICBVSUhlbHBlci5rZXlEb3du
KCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvMDIvWzAwMDJd
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIwMDAyLTAyLTAyIik7
CisgICAgVUlIZWxwZXIua2V5RG93bigibGVmdEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIC0+IDAyL1swMl0vMDAwMgorICAgIFVJSGVscGVyLmtleURvd24oIjMiKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9bMDNdLzAwMDIKKyAgICBVSUhlbHBl
ci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gWzAy
XS8wMy8wMDAyCisgICAgVUlIZWxwZXIua2V5RG93bigiMyIpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIC0+IFswM10vMDMvMDAwMgorICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiaW5wdXQudmFsdWUiLCAiMDAwMi0wMy0wMyIpOworICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVu
dHNGaXJlZCIsICIzIik7CisgICAgc2hvdWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAiMyIpOwor
CisgICAgYmVnaW5UZXN0KCJUYWIga2V5Iik7CisgICAgVUlIZWxwZXIua2V5RG93bigiMiIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswMl0vZGQveXl5eQorICAgIFVJ
SGVscGVyLmtleURvd24oIlx0Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAt
PiAwMi9bZGRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCIyIik7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvWzAyXS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93
bigiXHQiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyLzAyL1t5eXl5
XQorICAgIFVJSGVscGVyLmtleURvd24oIjIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyAtPiAwMi8wMi9bMDAwMl0KKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImlucHV0
LnZhbHVlIiwgIjAwMDItMDItMDIiKTsKKyAgICBVSUhlbHBlci5rZXlEb3duKCJcdCIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9jdXMgb3V0LgorICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCIsICJhZnRlciIpOworICAgIFVJ
SGVscGVyLmtleURvd24oIlx0IiwgWyJzaGlmdEtleSJdKTsgICAgICAgICAgICAgICAgICAvLyAt
PiAwMi8wMi9bMDAwMl0KKyAgICBVSUhlbHBlci5rZXlEb3duKCJcdCIsIFsic2hpZnRLZXkiXSk7
ICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvWzAyXS8wMDAyCisgICAgVUlIZWxwZXIua2V5RG93
bigiMyIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyL1swM10vMDAw
MgorICAgIFVJSGVscGVyLmtleURvd24oIlx0IiwgWyJzaGlmdEtleSJdKTsgICAgICAgICAgICAg
ICAgICAvLyAtPiBbMDJdLzAzLzAwMDIKKyAgICBVSUhlbHBlci5rZXlEb3duKCIzIik7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gWzAzXS8wMy8wMDAyCisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIwMDAyLTAzLTAzIik7CisgICAgVUlIZWxw
ZXIua2V5RG93bigiXHQiLCBbInNoaWZ0S2V5Il0pOyAgICAgICAgICAgICAgICAgIC8vIEZvY3Vz
IG91dC4KKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
aWQiLCAiYmVmb3JlIik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50c0ZpcmVkIiwgIjMiKTsK
KyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICIzIik7CisKKyAgICBiZWdpblRlc3Qo
IkJhY2tzcGFjZSBrZXkiLCAiMjAyMC0wOC0yNiIpOyAgICAgICAgICAgICAgLy8gWzA4XS8yNi8y
MDIwCisgICAgVUlIZWxwZXIua2V5RG93bigiXGIiKTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIC0+IFttbV0vMjYvMjAyMAorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW5w
dXQudmFsdWUiLCAiIik7CisgICAgVUlIZWxwZXIua2V5RG93bigiNyIpOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIC0+IFswN10vMjYvMjAyMAorICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiaW5wdXQudmFsdWUiLCAiMjAyMC0wNy0yNiIpOworICAgIHNob3VsZEJlKCJjaGFu
Z2VFdmVudHNGaXJlZCIsICIyIik7CisgICAgc2hvdWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAi
MiIpOworCisgICAgYmVnaW5UZXN0KCJEZWxldGUga2V5IiwgIjIwMjAtMDgtMjYiKTsgICAgICAg
ICAgICAgICAgIC8vIFswOF0vMjYvMjAyMQorICAgIFVJSGVscGVyLmtleURvd24oImRlbGV0ZSIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBbbW1dLzI2LzIwMjEKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImlucHV0LnZhbHVlIiwgIiIpOworICAgIHNob3VsZEJlKCJjaGFu
Z2VFdmVudHNGaXJlZCIsICIxIik7CisgICAgc2hvdWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAi
MSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9k
YXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2
ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0
YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1tb3VzZS1ldmVudHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MGNhMDdlNzc1YzIxNGE3NDg0NWNiYTVmZWIwOGJlMDNl
ZTY3OTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0
ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1tb3VzZS1ldmVu
dHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgZm9yIG1vdXNlIGV2ZW50cyBm
b3IgPGlucHV0IHR5cGU9ZGF0ZT4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjIwMjAtMDktMjYiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDIw
LTA5LTEyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMzAzMC0wOS0xMiIKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjMwMzAtMDUtMTIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIzMDMwLTA1LTEyIgorUEFT
UyBjbGlja0V2ZW50c0ZpcmVkIGlzIDQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Rh
dGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1tb3Vz
ZS1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxl
LWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50cy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU1ZDE5NmQ1NGYyY2MwYTE0ZWFkZDY1YzQ1MWIzNjY2ODhkNDQ0MWEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1j
b21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1tb3VzZS1ldmVudHMuaHRtbApAQCAt
MCwwICsxLDg3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KK2lucHV0IHsKKyAgICB3aWR0aDogMzAwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRh
dGV0aW1lLWVkaXQtdGV4dCB7CisgICAgZm9udC1zaXplOiAzMHB4OworfQorCitpbnB1dDo6LXdl
YmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIHsKKyAgICBmb250LXNpemU6IDMwcHg7Cit9
CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkIHsKKyAgICBmb250LXNp
emU6IDMwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCB7
CisgICAgZm9udC1zaXplOiAzMHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8
aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJkYXRlIiB2YWx1ZT0iMjAyMC0wOC0yNiI+CisKKzxzY3Jp
cHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciBtb3VzZSBldmVudHMgZm9yICZsdDtpbnB1dCB0
eXBlPWRhdGUmZ3Q7Iik7CisKK2NsaWNrRXZlbnRzRmlyZWQgPSAwOworZnVuY3Rpb24gb25DbGlj
a0V2ZW50KCkgeworICAgIGNsaWNrRXZlbnRzRmlyZWQrKzsKK30KKworZnVuY3Rpb24gbW91c2VD
bGlja09uKHgsIHkpIHsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0
dXJuOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyBpbnB1dC5vZmZzZXRMZWZ0LCB5
ICsgaW5wdXQub2Zmc2V0VG9wKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
Iiwgb25DbGlja0V2ZW50KTsKK2NvbnN0IGNlbnRlciA9IGlucHV0Lm9mZnNldEhlaWdodCAvIDI7
CisKKy8vIENsaWNrIG9uIG1vbnRoIGZpZWxkLgorbW91c2VDbGlja09uKDIwLCBjZW50ZXIpOwor
VUlIZWxwZXIua2V5RG93bigiOSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1
ZSIsICIyMDIwLTA5LTI2Iik7CisKKy8vIENsaWNrIG9uIGRheSBmaWVsZC4KK21vdXNlQ2xpY2tP
big2MCwgY2VudGVyKTsKK1VJSGVscGVyLmtleURvd24oIjEiKTsKK1VJSGVscGVyLmtleURvd24o
IjIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMjAyMC0wOS0xMiIp
OworCisvLyBDbGljayBvbiB5ZWFyIGZpZWxkLgorbW91c2VDbGlja09uKDEyMCwgY2VudGVyKTsK
K1VJSGVscGVyLmtleURvd24oIjMiKTsKK1VJSGVscGVyLmtleURvd24oIjAiKTsKK1VJSGVscGVy
LmtleURvd24oIjMiKTsKK1VJSGVscGVyLmtleURvd24oIjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygiaW5wdXQudmFsdWUiLCAiMzAzMC0wOS0xMiIpOworCisvLyBDbGljayBvbiBjb250cm9s
LCBidXQgbm90IGEgc3BlY2lmaWMgZmllbGQsIGRlZmF1bHRzIHRvIGZpcnN0IGZpZWxkLgorbW91
c2VDbGlja09uKDI1MCwgY2VudGVyKTsKK1VJSGVscGVyLmtleURvd24oIjUiKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMzAzMC0wNS0xMiIpOworCisvLyBDbGljayBv
dXRzaWRlIGNvbnRyb2wuCittb3VzZUNsaWNrT24oaW5wdXQub2Zmc2V0V2lkdGggKyA1LCBpbnB1
dC5vZmZzZXRIZWlnaHQgKyA1KTsKK1VJSGVscGVyLmtleURvd24oIjUiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMzAzMC0wNS0xMiIpOworCitzaG91bGRCZSgiY2xp
Y2tFdmVudHNGaXJlZCIsICI0Iik7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggOWFjYjNjZDVmYWUyNDVkZTg2Y2JjYWVhOWFmOGQ3ZGE5OGRjODVhMS4uZTAzZjI2YWUyY2Yw
ZjY0YTU3N2FjYzA0YTc4NjBjYWVkNzcwNGJmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTIsNiArMTIsNyBAQCBlZGl0aW5nL2ZpbmQg
WyBQYXNzIF0KIGVkaXRpbmcvdW5kby1tYW5hZ2VyIFsgUGFzcyBdCiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZG9tLXBhc3RlIFsgUGFzcyBdCiBmYXN0L2V2ZW50cy9jdXJzb3JzIFsgUGFzcyBdCitmYXN0
L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzIFsgUGFzcyBdCiBmYXN0L2Zvcm1z
L3NlbGVjdC9tYWMtd2syIFsgUGFzcyBdCiBmYXN0L3NhbmRib3gvbWFjIFsgUGFzcyBdCiBmYXN0
L3Njcm9sbGluZy9tYWMgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407607</attachid>
            <date>2020-08-31 09:49:19 -0700</date>
            <delta_ts>2020-08-31 10:05:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215938-20200831124918.patch</filename>
            <type>text/plain</type>
            <size>82863</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhkZjUxNDhkZTg1OWI2
ZjAyNDhmN2M3NDc0NjE0ZmYxNjVlNjdmMS4uYTI1ZGY2MzY1MWUwYzM4NzgyMWNlMGIxYjMzYzMw
ZDgwYjZmZTNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzOCBAQAorMjAyMC0wOC0yOCAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBIYW5k
bGUgZXZlbnRzIGZvciBkYXRlIGlucHV0cyB3aXRoIGVkaXRhYmxlIGNvbXBvbmVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTkzOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBhY3R1YWwgZWRpdGFiaWxpdHkgdG8gZGF0ZSBpbnB1dHMgd2l0aCBlZGl0YWJsZQorICAgICAg
ICBjb21wb25lbnRzLCBhcyB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIG5vdyByZXNwb25kIHRv
IGtleWJvYXJkCisgICAgICAgIGV2ZW50cy4gTnVtYmVyIGtleXMgY2FuIGJlIHVzZWQgdG8gZW50
ZXIgYSBkYXksIG1vbnRoLCBvciB5ZWFyLiBUaGUKKyAgICAgICAgbGVmdCBhbmQgcmlnaHQgYXJy
b3cga2V5cywgYXMgd2VsbCBhcyB0aGUgdGFiIGtleSwgY2FuIGJlIHVzZWQgdG8KKyAgICAgICAg
dHJhdmVyc2UgdGhlIHZhcmlvdXMgY29tcG9uZW50cy4gRmluYWxseSwgdGhlIGJhY2tzcGFjZSBh
bmQgZGVsZXRlIGtleXMKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gY2xlYXIgdGhlIHZhbHVlIG9m
IGEgcGFydGljdWxhciBjb21wb25lbnQuCisKKyAgICAgICAgVG8gbWF0Y2ggdGhlIGJlaGF2aW9y
IG9mIE5TRGF0ZVBpY2tlciwgYSB0eXBlYWhlYWQgYnVmZmVyIHdpdGggYQorICAgICAgICB0aW1l
b3V0IGlzIHVzZWQgd2hlbiBlZGl0aW5nLiBGb3IgZXhhbXBsZSwgZW50ZXJpbmcgIjIiIGFuZCAi
MyIgaW4KKyAgICAgICAgaW1tZWRpYXRlIHN1Y2Nlc3Npb24gd2lsbCByZXN1bHQgaW4gYSB5ZWFy
IG9mICIwMDIzIiwgYnV0IGEgb25lIHNlY29uZAorICAgICAgICBnYXAgYmV0d2VlbiB0aGUgdHdv
IGNoYXJhY3RlcnMgd2lsbCByZXN1bHQgaW4gYSB5ZWFyIG9mICIwMDAzIi4KKworICAgICAgICBG
aW5hbGx5LCB0aGlzIHBhdGNoIGVuc3VyZXMgdGhhdCAiZm9jdXMiLCAiYmx1ciIsICJpbnB1dCIs
IGFuZCAiY2hhbmdlIgorICAgICAgICBldmVudHMgYXJlIGRpc3BhdGNoZWQgYXBwcm9wcmlhdGVs
eS4KKworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9u
ZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRzLmh0bWwK
KyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMv
ZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWtleWJvYXJkLWV2ZW50cy5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFi
bGUtY29tcG9uZW50cy1tb3VzZS1ldmVudHMuaHRtbAorCisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGh0bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZUZvY3Vz
RXZlbnQpOgorCisgICAgICAgIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHNvIHRoYXQgYW55IGF0dGVt
cHQgdG8gZm9jdXMgdGhlIGRhdGUgaW5wdXQKKyAgICAgICAgZWxlbWVudCB3aWxsIGZvY3VzIHRo
ZSBhcHByb3ByaWF0ZSBlZGl0YWJsZSBjb21wb25lbnQuCisKKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljIGNv
bnN0KToKKworICAgICAgICBPdmVycmlkZSB0aGlzIG1ldGhvZCBhbmQgcmV0dXJuIGZhbHNlIGlm
IGVkaXRhYmxlIGNvbXBvbmVudHMgYXJlCisgICAgICAgIHByZXNlbnQgc28gdGhhdCB0aGUgZWxl
bWVudCBjYW4gYmUgYSBGb2N1c1Njb3BlT3duZXIuIFRoaXMgaXMgbmVlZGVkIHRvCisgICAgICAg
IGJlIGFibGUgdG8gdGFiIHRocm91Z2ggaW5kaXZpZHVhbCBjb21wb25lbnRzLgorCisgICAgICAg
IChXZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkQmx1ckZy
b21Db250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1l
SW5wdXRUeXBlOjplZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCk6CisgICAgICAgICogaHRtbC9CYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6aXNLZXlib2FyZEZvY3VzYWJsZSBjb25zdCk6IERhdGUgaW5wdXRzIHNob3Vs
ZCBiZSBrZXlib2FyZCBmb2N1c2FibGUgb24gYWxsIHBsYXRmb3Jtcy4KKyAgICAgICAgKiBodG1s
L0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZp
ZWxkc1N0YXRlIGNvbnN0KTogU2VyaWFsaXplIHRoZSBzdGF0ZSBvZiB0aGUgZWRpdCBjb250cm9s
IGludG8gYSB2YWxpZCBIVE1MIGRhdGUgc3RyaW5nLgorICAgICAgICAqIGh0bWwvRGF0ZUlucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHA6IEFkZGVkLgor
CisgICAgICAgIERhdGVUaW1lRmllbGRzU3RhdGUgaXMgdXNlZCB0byBzZXJpYWxpemUgYW5kIGRl
c2VyaWFsaXplIHRoZSBjb250ZW50cyBvZgorICAgICAgICBEYXRlVGltZUVkaXRFbGVtZW50LiBJ
biB0aGUgZnV0dXJlLCB0aGlzIGNsYXNzIHdpbGwgYWxzbyBiZSB1c2VkIHRvCisgICAgICAgIHNh
dmUgZm9ybSBzdGF0ZSBvbiBmb3J3YXJkL2JhY2t3YXJkIG5hdmlnYXRpb24uCisKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6OkRhdGVUaW1lRmllbGRzU3RhdGUpOgorICAg
ICAgICAqIGh0bWwvRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6OmRheU9mTW9udGggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6bW9udGggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6eWVhciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUZpZWxkc1N0YXRlOjpoYXNEYXlPZk1vbnRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6Omhhc01vbnRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRmllbGRzU3RhdGU6Omhhc1llYXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVGaWVsZHNTdGF0ZTo6c2V0RGF5T2ZNb250aCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUZpZWxkc1N0YXRlOjpzZXRNb250aCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUZpZWxkc1N0YXRlOjpzZXRZZWFyKToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6
Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9EYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5oOgorICAgICAgICAqIGh0
bWwvVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpm
b3JtYXREYXRlVGltZUZpZWxkc1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2Vla0lucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZSBjb25zdCk6Cisg
ICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0
ZVRpbWVFZGl0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVt
ZW50OjpmaWVsZEluZGV4T2YgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0
RWxlbWVudDo6Ymx1ckZyb21GaWVsZCk6CisKKyAgICAgICAgSWYgYSBmaWVsZCBpcyBibHVycmVk
LCBlbnN1cmUgdGhlIG93bmVyIGlzIG5vdGlmaWVkIGlmIG5vbmUgb2YgdGhlCisgICAgICAgIG90
aGVyIGZpZWxkcyBhcmUgZm9jdXNlZC4KKworICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0
RWxlbWVudDo6ZmllbGRWYWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVF
ZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRGb2N1c2FibGVGaWVsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0J5T3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uUHJldmlvdXNGaWVsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojp2YWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSBjb25z
dCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0S2V5Ym9hcmRFdmVudEhhbmRs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRpc3BhdGNoQmx1
ckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpkaWRCbHVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNpYmxl
VmFsdWUpOiBBZGQgRXZlbnRCZWhhdmlvciBwYXJhbWV0ZXIgdG8gZGlzcGF0Y2ggImlucHV0IiBh
bmQgImNoYW5nZSIgZXZlbnRzIGFjY29yZGluZ2x5LgorICAgICAgICAqIGh0bWwvc2hhZG93L0Rh
dGVUaW1lRmllbGRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVs
ZEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50
OjpEYXRlVGltZURheUZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZURh
eUZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6cG9wdWxh
dGVEYXRlVGltZUZpZWxkc1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9s
aWNNb250aEZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6RGF0ZVRpbWVZZWFyRmllbGRF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6cG9w
dWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudHMuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50OjpSYW5nZTo6Y2xhbXBWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJhbmdlOjppc0luUmFuZ2UgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50Ojpmb3JtYXRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcik6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpkaWRCbHVyKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6UmFuZ2U6OlJhbmdl
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnNldEVt
cHR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dDo6c2V0VmFsdWVBc0ludGVnZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xp
Y0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0Rh
dGVDb21wb25lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVDb21wb25lbnRzOjpwYXJz
ZVllYXIpOgorICAgICAgICAoV2ViQ29yZTo6d2l0aGluSFRNTERhdGVMaW1pdHMpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHM6OnBhcnNlV2Vlayk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlQ29tcG9uZW50czo6c2V0TW9udGhzU2luY2VFcG9jaCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlQ29tcG9uZW50czo6c2V0TWlsbGlzZWNvbmRzU2luY2VFcG9jaEZvcldlZWspOgorICAg
ICAgICAqIHBsYXRmb3JtL0RhdGVDb21wb25lbnRzLmg6IFBhcnRpYWwgcmV2ZXJ0IG9mIGNoYW5n
ZXMgbWFkZSBpbiByMjY1MTI2LCB0byBlbnN1cmUgdGhlIG1pbmltdW1ZZWFyIGFuZCBtYXhpbXVt
WWVhciBhcmUgYWNjZXNzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVDb21wb25lbnRzOjpt
aW5pbXVtWWVhcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlQ29tcG9uZW50czo6bWF4aW11bVll
YXIpOgorCiAyMDIwLTA4LTMxICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIE9wdGltaXplIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBUcmFuc2Zvcm1hdGlv
bk1hdHJpeDo6cm90YXRlKGRvdWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNWViMjYzNDI5NWNjZDc0
ZjA4MjY3ZjRmOWQ4NDE5OGJkZGI3NjI4My4uMjcwODQ2YzM1ZmI5ZjhjZjhkMWQyYTc2NTk1ZmFh
YTE3MWQzY2NmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEwNzksNiArMTA3OSw3IEBAIGh0bWwvRE9N
VG9rZW5MaXN0LmNwcAogaHRtbC9ET01VUkwuY3BwCiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwCiBo
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCitodG1sL0RhdGVUaW1lRmllbGRzU3RhdGUu
Y3BwCiBodG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHAKIGh0bWwvRW1haWxJbnB1dFR5
cGUuY3BwCiBodG1sL0VudGVyS2V5SGludC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NGM3MWZlMzg4Mzg1MzUwNDdhYzI0
MTFlNjdjZjJmNTkzMTYxYWU0Li45ZGM1ZDU3MzA4Y2FjN2Q4NjEzMTdhMDczYjA5MDFiYzE2MjM1
MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC01MDc5LDYgKzUwNzksNyBAQAogCQlFNEY5RUVGMzE1NkRBMDA3MDBEMjNFN0Ug
LyogU3R5bGVTaGVldENvbnRlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNEY5RUVGMTE1NkQ4NEM0MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRl
bnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTUxNjY5OTEyMEZGOTkxODAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0AyeC5wbmcgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MTY2OThGMjBGRjk5
MTYwMDlEMkMyNyAvKiBMaXN0QnV0dG9uQXJyb3dAMngucG5nICovOyB9OwogCQlFNTE3NjcwMzIw
Qjg4QzE0MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MTc2NzAyMjBCODhDMTQw
MEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1MUQ2QTFGMjRFMUUyNTUwMDg5
MUNGQSAvKiBEYXRlVGltZUZpZWxkc1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNTFENkExRDI0RTFFMjU1MDA4OTFDRkEgLyogRGF0ZVRpbWVG
aWVsZHNTdGF0ZS5oICovOyB9OwogCQlFNTJDRjU0RDIwQTI2OEFDMDBEQURBMjcgLyogRGF0YUxp
c3RTdWdnZXN0aW9uc0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTUyQ0Y1NEMyMEEyNjhBQzAwREFEQTI3IC8qIERhdGFMaXN0U3VnZ2VzdGlv
bnNDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFNTJDRjU0RjIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTJDRjU0
RTIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTUyRUZERjQyMTEyODc1
QTAwQUQyODJBIC8qIElucHV0TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTUyRUZERjIyMTEyODc1QTAwQUQyODJBIC8qIElucHV0TW9kZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTk1NSw2
ICsxNTk1Niw4IEBACiAJCUU1MTY2OThGMjBGRjk5MTYwMDlEMkMyNyAvKiBMaXN0QnV0dG9uQXJy
b3dAMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gaW1hZ2UucG5nOyBwYXRoID0gIkxpc3RCdXR0b25BcnJvd0AyeC5wbmciOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNTE3NjcwMjIwQjg4QzE0MDBENDExNjcgLyogRGF0YUxpc3RT
dWdnZXN0aW9uSW5mb3JtYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUxpc3RTdWdnZXN0aW9u
SW5mb3JtYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUxQTgxREUxNzI5
OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNQZXJmb3JtYW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUU1MUQ2QTFEMjRFMUUyNTUwMDg5MUNGQSAvKiBEYXRlVGltZUZpZWxkc1N0YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lRmllbGRzU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTUxRDZBMUUyNEUxRTI1NTAwODkxQ0ZBIC8qIERhdGVUaW1lRmllbGRzU3Rh
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MjZBRjNFMTcyN0Y4RjIwMEU0MTc4MSAvKiBQZXJm
b3JtYW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZXJmb3Jt
YW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MkNGNTRDMjBBMjY4QUMw
MERBREEyNyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25zQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERh
dGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTUyQ0Y1NEUyMEEzNUEyODAwREFEQTI3IC8qIERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEYXRhTGlzdFN1Z2dlc3Rpb25QaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIyNjA4LDYgKzIyNjExLDggQEAKIAkJCQlFNTE3NjcwMjIwQjg4QzE0
MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaCAqLywKIAkJCQlGNTVC
M0Q4MTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNE
ODIxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVJbnB1dFR5cGUuaCAqLywKKwkJCQlFNTFENkExRTI0
RTFFMjU1MDA4OTFDRkEgLyogRGF0ZVRpbWVGaWVsZHNTdGF0ZS5jcHAgKi8sCisJCQkJRTUxRDZB
MUQyNEUxRTI1NTAwODkxQ0ZBIC8qIERhdGVUaW1lRmllbGRzU3RhdGUuaCAqLywKIAkJCQlGNTVC
M0Q4NTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgKi8sCiAJ
CQkJRjU1QjNEODYxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCAq
LywKIAkJCQk4MzVENTRDMTFGNERFNTM0MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVh
dG9yLmNwcCAqLywKQEAgLTMwODQ0LDYgKzMwODQ5LDcgQEAKIAkJCQlFNUYwNkFGNzI0RDRCQjU2
MDBCQkM0RjggLyogRGF0ZVRpbWVFZGl0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTVG
MDZBRTcyNEQ0ODQ3QjAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNUYwNkFGMzI0RDRBQUU0MDBCQkM0RjggLyogRGF0ZVRpbWVGaWVsZEVsZW1l
bnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNTFENkExRjI0RTFFMjU1MDA4OTFDRkEgLyogRGF0
ZVRpbWVGaWVsZHNTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDUzRUI2MzcxNTlDNTcwNDAw
MDAxQkI3IC8qIERhdGVUaW1lRm9ybWF0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCQTEy
NTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTVGMDZBRUIyNEQ0OUJGNzAwQkJDNEY4IC8qIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDJhODQ0MjA1
MTc2MTFiOWU1Y2Q4YzVjMjZmNzYxZjYyZTU1MzQ1OTcuLjQ2ZWFkNDM1MmVhYTMwYTYyNjY0ZTQ4
MTk2NGFkM2QxYWFlMTA0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNo
b29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVDaG9vc2VyUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCisjaW5jbHVkZSAiRm9jdXNDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMjQ4LDYgKzI0OSwxNyBAQCB2b2lk
IEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVLZXl1cEV2ZW50KEtl
eWJvYXJkRXZlbnQmIGV2ZW50KQogICAgIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpo
YW5kbGVLZXl1cEV2ZW50KCp0aGlzLCBldmVudCk7CiB9CiAKK3ZvaWQgQmFzZUNob29zZXJPbmx5
RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZUZvY3VzRXZlbnQoTm9kZSogb2xkRm9jdXNlZE5v
ZGUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0
RWxlbWVudCkgeworICAgICAgICBJbnB1dFR5cGU6OmhhbmRsZUZvY3VzRXZlbnQob2xkRm9jdXNl
ZE5vZGUsIGRpcmVjdGlvbik7CisgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJl
Y3Rpb25CYWNrd2FyZCkgeworICAgICAgICBpZiAoYXV0byogcGFnZSA9IGVsZW1lbnQoKS0+ZG9j
dW1lbnQoKS5wYWdlKCkpCisgICAgICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5hZHZh
bmNlRm9jdXMoZGlyZWN0aW9uLCAwKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9kYXRlVGltZUVk
aXRFbGVtZW50LT5mb2N1c0J5T3duZXIoKTsKK30KKwogYm9vbCBCYXNlQ2hvb3Nlck9ubHlEYXRl
QW5kVGltZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKQog
ewogICAgIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKHNlbmRNb3Vz
ZUV2ZW50cyk7CkBAIC0yNjEsNiArMjczLDEzIEBAIGJvb2wgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAogICAgIHJldHVybiBlbGVt
ZW50KCktPmlzVGV4dEZvcm1Db250cm9sRm9jdXNhYmxlKCk7CiB9CiAKK2Jvb2wgQmFzZUNob29z
ZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6Omhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdAor
eworICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCk7Cit9CisKIHZvaWQg
QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKIHsKICAgICBpZiAobmFtZSA9PSB2YWx1ZUF0dHIpIHsK
QEAgLTI3MiwxMCArMjkxLDE1IEBAIHZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICBCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSk7CiB9CiAKLVN0cmluZyBC
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6dmFsdWVGb3JFZGl0Q29udHJvbCgp
IGNvbnN0Cit2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkaWRCbHVy
RnJvbUNvbnRyb2woKQogewotICAgIEFTU0VSVChlbGVtZW50KCkpOwotICAgIHJldHVybiBlbGVt
ZW50KCktPnZhbHVlKCk7CisgICAgY2xvc2VEYXRlVGltZUNob29zZXIoKTsKK30KKwordm9pZCBC
YXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZWRpdENvbnRyb2xWYWx1ZUNoYW5n
ZWQoKQoreworICAgIFN0cmluZyB2YWx1ZSA9IHNhbml0aXplVmFsdWUobV9kYXRlVGltZUVkaXRF
bGVtZW50LT52YWx1ZSgpKTsKKyAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVl
KHZhbHVlLCB2YWx1ZSAhPSBlbGVtZW50KCktPnZhbHVlKCksIERpc3BhdGNoSW5wdXRBbmRDaGFu
Z2VFdmVudCk7CiB9CiAKIEF0b21TdHJpbmcgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1
dFR5cGU6OmxvY2FsZUlkZW50aWZpZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGIz
MTkzMTkxYjQzNmNiYWFjMGUyYTkzNDQ1MmRkY2ZjZGI1ZGQyYjcuLjU2N2Y4YmRhYmVlYTA1Mjcz
MzNjYmJkM2RjNThhMzQzNjYyMWUxYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTYzLDcgKzYz
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7CiAKICAgICAv
LyBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIGZ1bmN0aW9uczoKLSAgICBT
dHJpbmcgdmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgZGlkQmx1
ckZyb21Db250cm9sKCkgZmluYWw7CisgICAgdm9pZCBlZGl0Q29udHJvbFZhbHVlQ2hhbmdlZCgp
IGZpbmFsOwogICAgIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwog
CiAgICAgLy8gSW5wdXRUeXBlIGZ1bmN0aW9uczoKQEAgLTc2LDkgKzc3LDExIEBAIHByaXZhdGU6
CiAgICAgU2hvdWxkQ2FsbEJhc2VFdmVudEhhbmRsZXIgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJv
YXJkRXZlbnQmKSBvdmVycmlkZTsKICAgICB2b2lkIGhhbmRsZUtleXByZXNzRXZlbnQoS2V5Ym9h
cmRFdmVudCYpIG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlS2V5dXBFdmVudChLZXlib2FyZEV2
ZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBoYW5kbGVGb2N1c0V2ZW50KE5vZGUqIG9sZEZvY3Vz
ZWROb2RlLCBGb2N1c0RpcmVjdGlvbikgb3ZlcnJpZGU7CiAgICAgYm9vbCBhY2Nlc3NLZXlBY3Rp
b24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNNb3VzZUZvY3Vz
YWJsZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNQcmVzZW50aW5nQXR0YWNoZWRWaWV3
KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKIAogICAgIC8vIERhdGVUaW1lQ2hvb3NlckNsaWVudCBmdW5jdGlvbnM6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXgg
MzBmNWRmY2IwYjAyNjZjNGRlYWY5ZThjMTQ0ZmI1NjEwZWVhMGVjZC4uYzMyYWUzNjM1ZGY3Nzk0
NDA2NWE2Nzc1MTg5MTYwNjM3MWJkOGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtMTg0LDEzICsxODQsMTEgQEAgYm9vbCBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmIHZhbHVl
KSBjb25zdAogICAgIHJldHVybiBlbGVtZW50KCktPmlzUmVxdWlyZWQoKSAmJiB2YWx1ZS5pc0Vt
cHR5KCk7CiB9CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogYm9vbCBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgcmV0dXJuICFlbGVtZW50KCktPmlzUmVhZE9u
bHkoKSAmJiBlbGVtZW50KCktPmlzVGV4dEZvcm1Db250cm9sRm9jdXNhYmxlKCk7CiB9Ci0jZW5k
aWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCBmZGE3Mzg3MTVlODhiY2U1MTE4
ZDI2ZTMzODU0NmExZGExZTE1ZDIzLi4xZmNlNTA5NzhmYmU3MzVjN2Q4YTMxZmMxY2Y0MmE2MjE5
NTlhMTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmgKQEAgLTUwLDkgKzUwLDcgQEAgcHJvdGVjdGVkOgogICAgIFN0cmluZyBzZXJpYWxpemVX
aXRoQ29tcG9uZW50cyhjb25zdCBEYXRlQ29tcG9uZW50cyYpIGNvbnN0OwogICAgIFN0cmluZyB2
aXNpYmxlVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBvdmVy
cmlkZTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCBPcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFy
c2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZ1ZpZXcmKSBjb25zdCA9IDA7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCmluZGV4IDhlMzkwMGZkN2MwMDQ4MzY2MTgxODIx
ZjAxNzdjY2JkMDRkNmY1NDEuLmU2OWFlNjAxMDRjNjM0MjQ2YzM0MWYzZDI4NDYxNzkwYTI1Nzkw
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcApAQCAtMzMsNiArMzMsNyBA
QAogI2luY2x1ZGUgIkRhdGVJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRz
LmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIgogI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVO
YW1lcy5oIgpAQCAtOTMsNiArOTQsMTQgQEAgYm9vbCBEYXRlSW5wdXRUeXBlOjppc1ZhbGlkRm9y
bWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPiByZXMKICAgICBy
ZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoLCBE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNEYXkgfSk7CiB9CiAKK1N0cmluZyBE
YXRlSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmll
bGRzU3RhdGUmIHN0YXRlKSBjb25zdAoreworICAgIGlmICghc3RhdGUuaGFzRGF5T2ZNb250aCgp
IHx8ICFzdGF0ZS5oYXNNb250aCgpIHx8ICFzdGF0ZS5oYXNZZWFyKCkpCisgICAgICAgIHJldHVy
biBlbXB0eVN0cmluZygpOworCisgICAgcmV0dXJuIG1ha2VTdHJpbmcocGFkKCcwJywgNCwgc3Rh
dGUueWVhcigpKSwgJy0nLCBwYWQoJzAnLCAyLCBzdGF0ZS5tb250aCgpKSwgJy0nLCBwYWQoJzAn
LCAyLCBzdGF0ZS5kYXlPZk1vbnRoKCkpKTsKK30KKwogdm9pZCBEYXRlSW5wdXRUeXBlOjpzZXR1
cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYg
bGF5b3V0UGFyYW1ldGVycykgY29uc3QKIHsKICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1l
Rm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5sb2NhbGUuZGF0ZUZvcm1hdCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVJbnB1dFR5cGUuaAppbmRleCBlNTBkZTA0YWU4ZDI3ZWJkNTJmYjc2MDNiZDhjMjVk
YWZmMmFiOGQ1Li5mNTI5YTY0ZWJjYjE3NmQxNjRhYjY0Njg3NzdkNDI5YTUxNGJlYmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaApAQCAtNDksNiArNDksNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgaXNEYXRlRmllbGQoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNWYWxp
ZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0
IGZpbmFsOworICAgIFN0cmluZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVU
aW1lRmllbGRzU3RhdGUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldHVwTGF5b3V0UGFyYW1l
dGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QgZmluYWw7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lRmllbGRzU3Rh
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNmZjNmVlMTBlZjUxMGZjODZiZDJiNjcyZmNhNmEyMjQ3YjA1N2VhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmNwcApA
QCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIgorCisjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3RleHByIHVuc2lnbmVkIERh
dGVUaW1lRmllbGRzU3RhdGU6OmVtcHR5VmFsdWUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oLTEp
OworCitEYXRlVGltZUZpZWxkc1N0YXRlOjpEYXRlVGltZUZpZWxkc1N0YXRlKCkKKyAgICA6IG1f
eWVhcihlbXB0eVZhbHVlKQorICAgICwgbV9tb250aChlbXB0eVZhbHVlKQorICAgICwgbV9kYXlP
Zk1vbnRoKGVtcHR5VmFsdWUpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lRmllbGRzU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWY5MjM1MThiYWFjNDUxOWJm
M2U2ZWNhZmVhZjE0NDQ0Yjk3M2U4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEYXRlVGltZUZpZWxkc1N0YXRlIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgZW1wdHlWYWx1ZTsKKworICAgIERhdGVUaW1l
RmllbGRzU3RhdGUoKTsKKworICAgIHVuc2lnbmVkIGRheU9mTW9udGgoKSBjb25zdCB7IHJldHVy
biBtX2RheU9mTW9udGg7IH0KKyAgICB1bnNpZ25lZCBtb250aCgpIGNvbnN0IHsgcmV0dXJuIG1f
bW9udGg7IH0KKyAgICB1bnNpZ25lZCB5ZWFyKCkgY29uc3QgeyByZXR1cm4gbV95ZWFyOyB9CisK
KyAgICBib29sIGhhc0RheU9mTW9udGgoKSBjb25zdCB7IHJldHVybiBtX2RheU9mTW9udGggIT0g
ZW1wdHlWYWx1ZTsgfQorICAgIGJvb2wgaGFzTW9udGgoKSBjb25zdCB7IHJldHVybiBtX21vbnRo
ICE9IGVtcHR5VmFsdWU7IH0KKyAgICBib29sIGhhc1llYXIoKSBjb25zdCB7IHJldHVybiBtX3ll
YXIgIT0gZW1wdHlWYWx1ZTsgfQorCisgICAgdm9pZCBzZXREYXlPZk1vbnRoKHVuc2lnbmVkIGRh
eU9mTW9udGgpIHsgbV9kYXlPZk1vbnRoID0gZGF5T2ZNb250aDsgfQorICAgIHZvaWQgc2V0TW9u
dGgodW5zaWduZWQgbW9udGgpIHsgbV9tb250aCA9IG1vbnRoOyB9CisgICAgdm9pZCBzZXRZZWFy
KHVuc2lnbmVkIHllYXIpIHsgbV95ZWFyID0geWVhcjsgfQorCitwcml2YXRlOgorICAgIHVuc2ln
bmVkIG1feWVhcjsKKyAgICB1bnNpZ25lZCBtX21vbnRoOworICAgIHVuc2lnbmVkIG1fZGF5T2ZN
b250aDsKKworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRl
VGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCA0ZTdhZDZjMmZmY2Q3MDA0N2U0ZmU3MmRjYWQy
YjFlYjlkMWYxMTgwLi5jY2IyYzMyNDQ2MzViNGU5NjIwM2E0ZWYyYmRmMmNhMzI2MWQ2ODIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAg
LTEwMSw2ICsxMDEsMTEgQEAgYm9vbCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjppc1ZhbGlkRm9y
bWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXMKICAgICByZXR1cm4gcmVz
dWx0cy5jb250YWluc0FsbCh7IERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1ll
YXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoLCBEYXRlVGltZUZv
cm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNEYXksIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJl
c3VsdHM6Okhhc0hvdXIsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01pbnV0
ZSB9KTsKIH0KIAorU3RyaW5nIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1l
RmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7Cit9CisKIHZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0
dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMm
KSBjb25zdAogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuaAppbmRleCA5MzYyMGU0Zjc2ZWE0MDA3ZGNjZjY3NGZmMTVlMTZhNjgwNTA2MWIwLi5lNjM0
NzQyNjNmZjgxMGU3YTNkMjVmZjJiYWUxM2EwOTI1NGNlZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaApAQCAtNTEsNiArNTEsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgaXNEYXRlVGltZUxvY2FsRmllbGQoKSBjb25zdCBmaW5hbDsKIAogICAgIGJv
b2wgaXNWYWxpZEZvcm1hdChPcHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0
cz4pIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNv
bnN0IERhdGVUaW1lRmllbGRzU3RhdGUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldHVwTGF5
b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29u
c3QgZmluYWw7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCmluZGV4
IGMxZDA4ZjIzZDNiODViYWUwYjI4NDdhYmMwMDE3NjBhM2FkNWRiMTUuLjVlZjRjODlkMDA1MTRi
MTE4MTEzNmM4ZGFmN2IwMDAzMjJjZWQ4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1
dFR5cGUuY3BwCkBAIC0xMzksNiArMTM5LDExIEBAIGJvb2wgTW9udGhJbnB1dFR5cGU6OmlzVmFs
aWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlCiAg
ICAgcmV0dXJuIHJlc3VsdHMuY29udGFpbnNBbGwoeyBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25S
ZXN1bHRzOjpIYXNZZWFyLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250
aCB9KTsKIH0KIAorU3RyaW5nIE1vbnRoSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0
YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmKSBjb25zdAoreworICAgIHJldHVybiBlbXB0
eVN0cmluZygpOworfQorCiB2b2lkIE1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRl
cnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0CiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKaW5kZXggNDhmMDc4ZTkyYjlmZTI0N2IyMjdi
ZDc3NzI5NmQ5YWMyYjgwNGFiOS4uZjQ4OWI3MDA0NmNhZjdiODcxNDhhN2JlYjM1ZWJkMTRjOGIx
MmQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNTQsNiArNTQsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJy
aWRlOwogCiAgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZh
bGlkYXRpb25SZXN1bHRzPikgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGZvcm1hdERhdGVUaW1l
RmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IGZpbmFsOwogICAg
IHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBh
cmFtZXRlcnMmKSBjb25zdCBmaW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuY3BwCmluZGV4IDRkMGE3NzUxYWQxOWQxNTAxMmVjOWNjMDg2Y2E0NzIyMzdkZDU1MDIuLjJm
ZTY1NTUwYzAyMzY0MjJiZjQ1MjEyNGNjODY1NzQ1YzViZWRkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtMTE1LDYgKzExNSwxMSBAQCBib29sIFRpbWVJbnB1dFR5
cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM+IHJlcwogICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRW
YWxpZGF0aW9uUmVzdWx0czo6SGFzSG91ciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0
czo6SGFzTWludXRlIH0pOwogfQogCitTdHJpbmcgVGltZUlucHV0VHlwZTo6Zm9ybWF0RGF0ZVRp
bWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QKK3sKKyAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKK30KKwogdm9pZCBUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91
dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IDkyMDQzYWVmOTc4MTFh
YWY4ZWQzYjA0ZTU5Y2RjOWFkNGUyMzg1NzQuLmFjODI0ZmQ1Yjk3YmIzZDBiMTQ2ZDYzZTBiNTQ2
NDU2MzIzZjVkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC01MSw2ICs1
MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikg
b3ZlcnJpZGU7CiAKICAgICBib29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9y
bWF0VmFsaWRhdGlvblJlc3VsdHM+KSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgZm9ybWF0RGF0
ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgZmluYWw7
CiAgICAgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5
b3V0UGFyYW1ldGVycyYpIGNvbnN0IGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lu
cHV0VHlwZS5jcHAKaW5kZXggYjM4NTRkODg0OTdlOTllZjI5ZTRhOGZmOWVjZjU5MzViN2RlMWFl
Yi4uYmRjOTJhMTQyNjNhODg1OTY5ODc1ZGEzZjBjMzI5NmVhZmUyYTYyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCkBAIC05Miw2ICs5MiwxMSBAQCBib29sIFdlZWtJbnB1
dFR5cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJl
c3VsdHM+IHJlcwogICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3Jt
YXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVz
dWx0czo6SGFzV2VlayB9KTsKIH0KIAorU3RyaW5nIFdlZWtJbnB1dFR5cGU6OmZvcm1hdERhdGVU
aW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CisKIHZvaWQgV2Vla0lucHV0VHlwZTo6c2V0dXBMYXlv
dXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25z
dAogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCAxY2UwODc2NDc0ZjM2
YTQzZDYyOTVlZWY4MDRlODU2MGYxOTZlMTJjLi4wMGEzMWE1OGY4NTBkZDg2OWFkZWE2NTY4ZGQ2
MzQyYmRhMTJhZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApAQCAtNTAsNiAr
NTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYp
IG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZv
cm1hdFZhbGlkYXRpb25SZXN1bHRzPikgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGZvcm1hdERh
dGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6Okxh
eW91dFBhcmFtZXRlcnMmKSBjb25zdCBmaW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXggN2UxZWQ1N2FjYjYy
ZWM2N2I2NjEyNzdkMTNmNjQ5MTkxMTlhNDQxZS4uM2ZhYWI3NmQ0ZmZmMjg3OGEwZGQzM2NlZTU5
YmZhZTg5NzdiNTY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVFZGl0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkRhdGVD
b21wb25lbnRzLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgiCisjaW5jbHVk
ZSAiRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIgogI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCiAj
aW5jbHVkZSAiRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgpAQCAtMTU0LDYgKzE1NSwxNSBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmFk
ZEZpZWxkKFJlZjxEYXRlVGltZUZpZWxkRWxlbWVudD4gZmllbGQpCiAgICAgZmllbGRzV3JhcHBl
ckVsZW1lbnQoKS5hcHBlbmRDaGlsZChmaWVsZCk7CiB9CiAKK3NpemVfdCBEYXRlVGltZUVkaXRF
bGVtZW50OjpmaWVsZEluZGV4T2YoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmIGZpZWxkKSBj
b25zdAoreworICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9m
aWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpIHsKKyAgICAgICAgaWYgKG1fZmllbGRzW2ZpZWxk
SW5kZXhdLnB0cigpID09ICZmaWVsZCkKKyAgICAgICAgICAgIHJldHVybiBmaWVsZEluZGV4Owor
ICAgIH0KKyAgICByZXR1cm4gaW52YWxpZEZpZWxkSW5kZXg7Cit9CisKIFJlZjxEYXRlVGltZUVk
aXRFbGVtZW50PiBEYXRlVGltZUVkaXRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
LCBFZGl0Q29udHJvbE93bmVyJiBlZGl0Q29udHJvbE93bmVyKQogewogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IERhdGVUaW1lRWRpdEVsZW1lbnQoZG9jdW1lbnQsIGVkaXRDb250cm9sT3duZXIp
KTsKQEAgLTE4Nyw2ICsxOTcsNzAgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQo
Y29uc3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycykKICAgICB9CiB9CiAKK3Zv
aWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckZyb21GaWVsZChSZWZQdHI8RWxlbWVudD4mJiBu
ZXdGb2N1c2VkRWxlbWVudCkKK3sKKyAgICBib29sIG5vdGlmeU93bmVyID0gdHJ1ZTsKKyAgICBm
b3IgKGF1dG8mIGZpZWxkIDogbV9maWVsZHMpIHsKKyAgICAgICAgaWYgKGZpZWxkLnB0cigpID09
IG5ld0ZvY3VzZWRFbGVtZW50LmdldCgpKSB7CisgICAgICAgICAgICBub3RpZnlPd25lciA9IGZh
bHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBIVE1MRWxl
bWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpOworCisg
ICAgaWYgKG1fZWRpdENvbnRyb2xPd25lciAmJiBub3RpZnlPd25lcikKKyAgICAgICAgbV9lZGl0
Q29udHJvbE93bmVyLT5kaWRCbHVyRnJvbUNvbnRyb2woKTsKK30KKwordm9pZCBEYXRlVGltZUVk
aXRFbGVtZW50OjpmaWVsZFZhbHVlQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fZWRpdENvbnRyb2xP
d25lcikKKyAgICAgICAgbV9lZGl0Q29udHJvbE93bmVyLT5lZGl0Q29udHJvbFZhbHVlQ2hhbmdl
ZCgpOworfQorCitib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzT25OZXh0Rm9jdXNhYmxl
RmllbGQoc2l6ZV90IHN0YXJ0SW5kZXgpCit7CisgICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9
IHN0YXJ0SW5kZXg7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkg
eworICAgICAgICBpZiAobV9maWVsZHNbZmllbGRJbmRleF0tPmlzRm9jdXNhYmxlKCkpIHsKKyAg
ICAgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5mb2N1cygpOworICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZvY3VzQnlPd25lcigpCit7CisgICAgZm9jdXNPbk5leHRG
b2N1c2FibGVGaWVsZCgwKTsKK30KKworYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09u
TmV4dEZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBmaWVsZCkKK3sKKyAgICBjb25z
dCBzaXplX3Qgc3RhcnRGaWVsZEluZGV4ID0gZmllbGRJbmRleE9mKGZpZWxkKTsKKyAgICBpZiAo
c3RhcnRGaWVsZEluZGV4ID09IGludmFsaWRGaWVsZEluZGV4KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIGZvY3VzT25OZXh0Rm9jdXNhYmxlRmllbGQoc3RhcnRGaWVsZEluZGV4
ICsgMSk7Cit9CisKK2Jvb2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPblByZXZpb3VzRmll
bGQoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmIGZpZWxkKQoreworICAgIGNvbnN0IHNpemVf
dCBzdGFydEZpZWxkSW5kZXggPSBmaWVsZEluZGV4T2YoZmllbGQpOworICAgIGlmIChzdGFydEZp
ZWxkSW5kZXggPT0gaW52YWxpZEZpZWxkSW5kZXgpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIHNpemVfdCBmaWVsZEluZGV4ID0gc3RhcnRGaWVsZEluZGV4OworICAgIHdoaWxlIChmaWVs
ZEluZGV4ID4gMCkgeworICAgICAgICAtLWZpZWxkSW5kZXg7CisgICAgICAgIGlmIChtX2ZpZWxk
c1tmaWVsZEluZGV4XS0+aXNGb2N1c2FibGUoKSkgeworICAgICAgICAgICAgbV9maWVsZHNbZmll
bGRJbmRleF0tPmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogQXRvbVN0cmluZyBEYXRlVGltZUVkaXRF
bGVtZW50Ojpsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9lZGl0Q29u
dHJvbE93bmVyID8gbV9lZGl0Q29udHJvbE93bmVyLT5sb2NhbGVJZGVudGlmaWVyKCkgOiBudWxs
QXRvbSgpOwpAQCAtMjEzLDcgKzI4NywxNSBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNl
dEVtcHR5VmFsdWUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycwogCiBT
dHJpbmcgRGF0ZVRpbWVFZGl0RWxlbWVudDo6dmFsdWUoKSBjb25zdAogewotICAgIHJldHVybiBt
X2VkaXRDb250cm9sT3duZXIgPyBtX2VkaXRDb250cm9sT3duZXItPnZhbHVlRm9yRWRpdENvbnRy
b2woKSA6IGVtcHR5U3RyaW5nKCk7CisgICAgcmV0dXJuIG1fZWRpdENvbnRyb2xPd25lciA/IG1f
ZWRpdENvbnRyb2xPd25lci0+Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZSh2YWx1ZUFzRGF0ZVRp
bWVGaWVsZHNTdGF0ZSgpKSA6IGVtcHR5U3RyaW5nKCk7Cit9CisKK0RhdGVUaW1lRmllbGRzU3Rh
dGUgRGF0ZVRpbWVFZGl0RWxlbWVudDo6dmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKSBjb25z
dAoreworICAgIERhdGVUaW1lRmllbGRzU3RhdGUgZGF0ZVRpbWVGaWVsZHNTdGF0ZTsKKyAgICBm
b3IgKGF1dG8mIGZpZWxkIDogbV9maWVsZHMpCisgICAgICAgIGZpZWxkLT5wb3B1bGF0ZURhdGVU
aW1lRmllbGRzU3RhdGUoZGF0ZVRpbWVGaWVsZHNTdGF0ZSk7CisgICAgcmV0dXJuIGRhdGVUaW1l
RmllbGRzU3RhdGU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAppbmRleCBmNGI1YmIwMWY1
NDMzOTZjN2I2NmZkYzE3NTJlYTU3YWJiNmZmYjI5Li5lOGU3Mzk4YWEwZDRkNjIzYmI4Y2EyZjQz
NjAwZTdmYzRiZTdhNGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVFZGl0RWxlbWVudC5oCkBAIC00Myw3ICs0Myw5IEBAIHB1YmxpYzoKICAgICBjbGFzcyBF
ZGl0Q29udHJvbE93bmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEVkaXRDb250cm9sT3duZXI+
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkVkaXRDb250cm9sT3duZXIoKTsKLSAg
ICAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0ID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZEJsdXJGcm9tQ29udHJvbCgpID0gMDsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCkgPSAwOworICAgICAgICB2aXJ0dWFs
IFN0cmluZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3Rh
dGUmKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgQXRvbVN0cmluZyBsb2NhbGVJZGVudGlm
aWVyKCkgY29uc3QgPSAwOwogICAgIH07CiAKQEAgLTYzLDEyICs2NSwxNSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+RGF0ZVRpbWVFZGl0RWxlbWVudCgpOwogICAgIHZvaWQgYWRkRmllbGQoUmVm
PERhdGVUaW1lRmllbGRFbGVtZW50Pik7CiAgICAgRWxlbWVudCYgZmllbGRzV3JhcHBlckVsZW1l
bnQoKSBjb25zdDsKKyAgICB2b2lkIGZvY3VzQnlPd25lcigpOwogICAgIHZvaWQgcmVzZXRGaWVs
ZHMoKTsKICAgICB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYpOwog
ICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERh
dGVDb21wb25lbnRzJik7CiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CiAKIHByaXZhdGU6Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgaW52YWxpZEZpZWxkSW5kZXggPSBzdGF0aWNfY2Fz
dDxzaXplX3Q+KC0xKTsKKwogICAgIC8vIERhdGV0aW1lIGNhbiBiZSByZXByZXNlbnRlZCBieSBh
dCBtb3N0IDggZmllbGRzOgogICAgIC8vIDEuIHllYXIKICAgICAvLyAyLiBtb250aApAQCAtODIs
OSArODcsMTcgQEAgcHJpdmF0ZToKIAogICAgIERhdGVUaW1lRWRpdEVsZW1lbnQoRG9jdW1lbnQm
LCBFZGl0Q29udHJvbE93bmVyJik7CiAKKyAgICBzaXplX3QgZmllbGRJbmRleE9mKGNvbnN0IERh
dGVUaW1lRmllbGRFbGVtZW50JikgY29uc3Q7CiAgICAgdm9pZCBsYXlvdXQoY29uc3QgTGF5b3V0
UGFyYW1ldGVycyYpOworICAgIERhdGVUaW1lRmllbGRzU3RhdGUgdmFsdWVBc0RhdGVUaW1lRmll
bGRzU3RhdGUoKSBjb25zdDsKKworICAgIGJvb2wgZm9jdXNPbk5leHRGb2N1c2FibGVGaWVsZChz
aXplX3Qgc3RhcnRJbmRleCk7CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudDo6RmllbGRP
d25lciBmdW5jdGlvbnM6CisgICAgdm9pZCBibHVyRnJvbUZpZWxkKFJlZlB0cjxFbGVtZW50PiYm
IG5ld0ZvY3VzZWRFbGVtZW50KSBmaW5hbDsKKyAgICB2b2lkIGZpZWxkVmFsdWVDaGFuZ2VkKCkg
ZmluYWw7CisgICAgYm9vbCBmb2N1c09uTmV4dEZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVt
ZW50JikgZmluYWw7CisgICAgYm9vbCBmb2N1c09uUHJldmlvdXNGaWVsZChjb25zdCBEYXRlVGlt
ZUZpZWxkRWxlbWVudCYpIGZpbmFsOwogICAgIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigp
IGNvbnN0IGZpbmFsOwogCiAgICAgVmVjdG9yPFJlZjxEYXRlVGltZUZpZWxkRWxlbWVudD4sIG1h
eGltdW1OdW1iZXJPZkZpZWxkcz4gbV9maWVsZHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAKaW5kZXggMGRmNTJhMGZhZGQ2MjVi
NmI4MzYwOWM5MTZmOGM2NzI5MWQ4NDY3My4uZjA4OTU4MDhkZTZhZTNmNjkwZjYxYjNmZTYzMTU5
YmZiNTg2Yjc4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50LmNwcApAQCAtMzAsNyArMzAsOSBAQAogI2lmIEVOQUJMRShEQVRFX0FO
RF9USU1FX0lOUFVUX1RZUEVTKQogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiS2V5
Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUxvY2FsZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTU1LDYgKzU3LDY0IEBAIHZv
aWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNl
dWRvKQogICAgIHNldFBzZXVkbyhwc2V1ZG8pOwogfQogCit2b2lkIERhdGVUaW1lRmllbGRFbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKK3sKKyAgICBpZiAoaXM8S2V5
Ym9hcmRFdmVudD4oZXZlbnQpKSB7CisgICAgICAgIGF1dG8mIGtleWJvYXJkRXZlbnQgPSBkb3du
Y2FzdDxLZXlib2FyZEV2ZW50PihldmVudCk7CisgICAgICAgIGhhbmRsZUtleWJvYXJkRXZlbnQo
a2V5Ym9hcmRFdmVudCk7CisgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LmRlZmF1bHRIYW5kbGVk
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGRlZmF1bHRLZXlib2FyZEV2ZW50SGFu
ZGxlcihrZXlib2FyZEV2ZW50KTsKKyAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQuZGVmYXVsdEhh
bmRsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBIVE1MRGl2RWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OmRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50JiBrZXlib2Fy
ZEV2ZW50KQoreworICAgIGlmIChrZXlib2FyZEV2ZW50LnR5cGUoKSAhPSBldmVudE5hbWVzKCku
a2V5ZG93bkV2ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGtleSA9IGtleWJvYXJk
RXZlbnQua2V5SWRlbnRpZmllcigpOworCisgICAgaWYgKGtleSA9PSAiTGVmdCIpIHsKKyAgICAg
ICAgaWYgKG1fZmllbGRPd25lciAmJiBtX2ZpZWxkT3duZXItPmZvY3VzT25QcmV2aW91c0ZpZWxk
KCp0aGlzKSkgeworICAgICAgICAgICAga2V5Ym9hcmRFdmVudC5zZXREZWZhdWx0SGFuZGxlZCgp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGtleSA9
PSAiUmlnaHQiKSB7CisgICAgICAgIGlmIChtX2ZpZWxkT3duZXIgJiYgbV9maWVsZE93bmVyLT5m
b2N1c09uTmV4dEZpZWxkKCp0aGlzKSkgeworICAgICAgICAgICAga2V5Ym9hcmRFdmVudC5zZXRE
ZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
CisgICAgLy8gQ2xlYXIgdmFsdWUgd2hlbiBwcmVzc2luZyBiYWNrc3BhY2Ugb3IgZGVsZXRlLgor
ICAgIGlmIChrZXkgPT0gIlUrMDAwOCIgfHwga2V5ID09ICJVKzAwN0YiKSB7CisgICAgICAgIGtl
eWJvYXJkRXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgc2V0RW1wdHlWYWx1ZShE
aXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnQpOworICAgICAgICByZXR1cm47CisgICAgfQorfQor
Cit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChSZWZQdHI8RWxl
bWVudD4mJiBuZXdGb2N1c2VkRWxlbWVudCkKK3sKKyAgICBpZiAobV9maWVsZE93bmVyKQorICAg
ICAgICBtX2ZpZWxkT3duZXItPmJsdXJGcm9tRmllbGQoV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVu
dCkpOworICAgIGVsc2UKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFdU
Rk1vdmUobmV3Rm9jdXNlZEVsZW1lbnQpKTsKKworICAgIGRpZEJsdXIoKTsKK30KKwordm9pZCBE
YXRlVGltZUZpZWxkRWxlbWVudDo6ZGlkQmx1cigpCit7Cit9CisKIExvY2FsZSYgRGF0ZVRpbWVG
aWVsZEVsZW1lbnQ6OmxvY2FsZUZvck93bmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gZG9jdW1l
bnQoKS5nZXRDYWNoZWRMb2NhbGUobG9jYWxlSWRlbnRpZmllcigpKTsKQEAgLTY1LDcgKzEyNSw3
IEBAIEF0b21TdHJpbmcgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmxvY2FsZUlkZW50aWZpZXIoKSBj
b25zdAogICAgIHJldHVybiBtX2ZpZWxkT3duZXIgPyBtX2ZpZWxkT3duZXItPmxvY2FsZUlkZW50
aWZpZXIoKSA6IG51bGxBdG9tKCk7CiB9CiAKLXZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OnVw
ZGF0ZVZpc2libGVWYWx1ZSgpCit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNp
YmxlVmFsdWUoRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIGlmICghZmlyc3RD
aGlsZCgpKQogICAgICAgICBhcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgZW1w
dHlTdHJpbmcoKSkpOwpAQCAtNzYsNiArMTM2LDkgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVu
dDo6dXBkYXRlVmlzaWJsZVZhbHVlKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdGV4dE5vZGUu
cmVwbGFjZVdob2xlVGV4dChuZXdWaXNpYmxlVmFsdWUpOworCisgICAgaWYgKGV2ZW50QmVoYXZp
b3IgPT0gRGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50ICYmIG1fZmllbGRPd25lcikKKyAgICAg
ICAgbV9maWVsZE93bmVyLT5maWVsZFZhbHVlQ2hhbmdlZCgpOwogfQogCiBib29sIERhdGVUaW1l
RmllbGRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCmluZGV4IDRmYTRkMTU2NTEzNmZi
Mjk5ZTRhYWExNTRkOWQzNDhiMzc1ZTUyOWMuLjc2Zjk0YzQ1ODA1Yjk3MzYzZTZhZWQ4YmU1Yzc4
ZjAyNDdjZGFkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnQuaApAQCAtMzUsMjAgKzM1LDMxIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIERhdGVDb21wb25lbnRzOworY2xhc3MgRGF0ZVRpbWVGaWVsZHNTdGF0ZTsKIAog
Y2xhc3MgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOwogcHVibGljOgor
ICAgIGVudW0gRXZlbnRCZWhhdmlvciB7IERpc3BhdGNoTm9FdmVudCwgRGlzcGF0Y2hJbnB1dEFu
ZENoYW5nZUV2ZW50IH07CisKICAgICBjbGFzcyBGaWVsZE93bmVyIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPEZpZWxkT3duZXI+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkZpZWxk
T3duZXIoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGJsdXJGcm9tRmllbGQoUmVmUHRyPEVsZW1l
bnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpZWxk
VmFsdWVDaGFuZ2VkKCkgPSAwOworICAgICAgICB2aXJ0dWFsIGJvb2wgZm9jdXNPbk5leHRGaWVs
ZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpID0gMDsKKyAgICAgICAgdmlydHVhbCBib29s
IGZvY3VzT25QcmV2aW91c0ZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgPSAwOwog
ICAgICAgICB2aXJ0dWFsIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0ID0gMDsK
ICAgICB9OwogCisgICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Jikgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaXNwYXRjaEJsdXJFdmVudChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2Vk
RWxlbWVudCkgb3ZlcnJpZGU7CisKICAgICB2aXJ0dWFsIGJvb2wgaGFzVmFsdWUoKSBjb25zdCA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVtcHR5VmFsdWUoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVlKEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRj
aE5vRXZlbnQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0
ZUNvbXBvbmVudHMmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGlu
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQsIEV2ZW50QmVo
YXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCA9IDA7
CiAKQEAgLTU3LDEyICs2OCwxNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBpbml0aWFsaXplKGNv
bnN0IEF0b21TdHJpbmcmIHBzZXVkbyk7CiAgICAgTG9jYWxlJiBsb2NhbGVGb3JPd25lcigpIGNv
bnN0OwogICAgIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRpZmllcigpIGNvbnN0OwotICAgIHZvaWQg
dXBkYXRlVmlzaWJsZVZhbHVlKCk7CisgICAgdm9pZCB1cGRhdGVWaXNpYmxlVmFsdWUoRXZlbnRC
ZWhhdmlvcik7CiAgICAgdmlydHVhbCBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCYpID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBkaWRCbHVyKCk7CiAKIHByaXZhdGU6CiAgICAgYm9vbCBzdXBw
b3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIGRlZmF1bHRLZXlib2FyZEV2
ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Jik7CisKICAgICBXZWFrUHRyPEZpZWxkT3duZXI+IG1f
ZmllbGRPd25lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudHMuY3BwCmluZGV4IGM3Zjk4NDRhMTM0NWQ4YjQzMjBmMGM0ODkx
YTNhMWIwZDM3NzE4N2YuLmE1NWQ1MmYxYzhkZjZiNjgxNWRkMGMxY2E3NWZkNDY5ZDQyMDIwNGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVt
ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVs
ZW1lbnRzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lmIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJEYXRl
VGltZUZpZWxkc1N0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQpOwog
CiBEYXRlVGltZURheUZpZWxkRWxlbWVudDo6RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQoRG9jdW1l
bnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQotICAgIDogRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCAiLS0iX3MpCisgICAgOiBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIFJhbmdlKDEsIDMx
KSwgIi0tIl9zKQogewogICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbVN0cmluZz4gZGF5UHNldWRvSWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQi
LCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7CiAgICAgaW5pdGlhbGl6ZShkYXlQ
c2V1ZG9JZCk7CkBAIC00OCw2ICs0OSwxMSBAQCBSZWY8RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+
IERhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LAogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lRGF5RmllbGRFbGVtZW50KGRvY3VtZW50LCBm
aWVsZE93bmVyKSk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OnBvcHVsYXRl
RGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBz
dGF0ZS5zZXREYXlPZk1vbnRoKGhhc1ZhbHVlKCkgPyB2YWx1ZUFzSW50ZWdlcigpIDogRGF0ZVRp
bWVGaWVsZHNTdGF0ZTo6ZW1wdHlWYWx1ZSk7Cit9CisKIHZvaWQgRGF0ZVRpbWVEYXlGaWVsZEVs
ZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogewogICAg
IHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubW9udGhEYXkoKSk7CkBAIC01Niw3ICs2Miw3IEBAIHZv
aWQgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlKQogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lTW9udGhG
aWVsZEVsZW1lbnQpOwogCiBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRo
RmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikK
LSAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwg
Ii0tIl9zKQorICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVs
ZE93bmVyLCBSYW5nZSgxLCAxMiksICItLSJfcykKIHsKICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vbnRoUHNldWRvSWQoIi13ZWJraXQtZGF0
ZXRpbWUtZWRpdC1tb250aC1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICBpbml0aWFsaXplKG1vbnRoUHNldWRvSWQpOwpAQCAtNjcsNiArNzMsMTEgQEAgUmVm
PERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ+IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW0KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZU1v
bnRoRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7CiB9CiAKK3ZvaWQgRGF0ZVRp
bWVNb250aEZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1l
RmllbGRzU3RhdGUmIHN0YXRlKQoreworICAgIHN0YXRlLnNldE1vbnRoKGhhc1ZhbHVlKCkgPyB2
YWx1ZUFzSW50ZWdlcigpIDogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1wdHlWYWx1ZSk7Cit9CisK
IHZvaWQgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGUpCiB7CiAgICAgLy8gRGF0ZUNvbXBvbmVudHMgcmVwcmVzZW50cyBt
b250aHMgZnJvbSAwIChKYW51YXJ5KSB0byAxMSAoRGVjZW1iZXIpLgpAQCAtODcsNiArOTgsMTEg
QEAgUmVmPERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVTeW1ib2xp
Y01vbnRoRmllbGRFbGVtZW50OjpjcmVhdGUKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRl
VGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIGxhYmVs
cykpOwogfQogCit2b2lkIERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6cG9wdWxh
dGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmIHN0YXRlKQoreworICAg
IHN0YXRlLnNldE1vbnRoKGhhc1ZhbHVlKCkgPyB2YWx1ZUFzSW50ZWdlcigpICsgMSA6IERhdGVU
aW1lRmllbGRzU3RhdGU6OmVtcHR5VmFsdWUpOworfQorCiB2b2lkIERhdGVUaW1lU3ltYm9saWNN
b250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRh
dGUpCiB7CiAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5tb250aCgpKTsKQEAgLTk1LDcgKzEx
MSw3IEBAIHZvaWQgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFz
RGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KTsKIAogRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50
OjpEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVy
JiBmaWVsZE93bmVyKQotICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50
LCBmaWVsZE93bmVyLCAiLS0tLSJfcykKKyAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dChkb2N1bWVudCwgZmllbGRPd25lciwgUmFuZ2UoRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1ZZWFy
KCksIERhdGVDb21wb25lbnRzOjptYXhpbXVtWWVhcigpKSwgIi0tLS0iX3MpCiB7CiAgICAgc3Rh
dGljIE1haW5UaHJlYWROZXZlckRlc3Ryb3llZDxjb25zdCBBdG9tU3RyaW5nPiB5ZWFyUHNldWRv
SWQoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC15ZWFyLWZpZWxkIiwgQXRvbVN0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwogICAgIGluaXRpYWxpemUoeWVhclBzZXVkb0lkKTsKQEAgLTEwNiw2
ICsxMjIsMTEgQEAgUmVmPERhdGVUaW1lWWVhckZpZWxkRWxlbWVudD4gRGF0ZVRpbWVZZWFyRmll
bGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpKTsKIH0K
IAordm9pZCBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNT
dGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBzdGF0ZS5zZXRZZWFyKGhh
c1ZhbHVlKCkgPyB2YWx1ZUFzSW50ZWdlcigpIDogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6ZW1wdHlW
YWx1ZSk7Cit9CisKIHZvaWQgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0
ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKIHsKICAgICBzZXRWYWx1ZUFzSW50ZWdlcihk
YXRlLmZ1bGxZZWFyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudHMuaAppbmRleCA0YTAwNmI3MWMzNjNmNWQ1YWI4M2QzODU0MWFiNTkx
OTVmNTI2YzhjLi5mMTEwMzc4MjliZjdhZDFiZjlhMDNiOWQzNDEwOTg4NWJkMTlkYTMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
aApAQCAtNDQsNiArNDQsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1l
bnQgZnVuY3Rpb25zOgogICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVu
dHMmKTsKKyAgICB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxk
c1N0YXRlJik7CiB9OwogCiBjbGFzcyBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50IGZpbmFsIDog
cHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CkBAIC01Nyw2ICs1OCw3IEBAIHBy
aXZhdGU6CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnM6CiAgICAgdm9p
ZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpOworICAgIHZvaWQgcG9wdWxh
dGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKTsKIH07CiAKIGNsYXNz
IERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBEYXRlVGlt
ZVN5bWJvbGljRmllbGRFbGVtZW50IHsKQEAgLTcwLDYgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAg
IC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKICAgICB2b2lkIHNldFZhbHVlQXNE
YXRlKGNvbnN0IERhdGVDb21wb25lbnRzJik7CisgICAgdm9pZCBwb3B1bGF0ZURhdGVUaW1lRmll
bGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpOwogfTsKIAogY2xhc3MgRGF0ZVRpbWVZZWFy
RmllbGRFbGVtZW50IGZpbmFsIDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7
CkBAIC04Myw2ICs4Niw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVu
dCBmdW5jdGlvbnM6CiAgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50
cyYpOworICAgIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRz
U3RhdGUmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3Bw
CmluZGV4IDk4ZjVhYjlhMDg5NGFjNjg4MWYzMTg0NjU0ZDVmNTUzMmQ3OWYzMGUuLjMzMzBhNjUz
Yjc0YTJiOWY3NjA0ZGY4ZGY0NGYzYzM5MzEzNTNlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcApA
QCAtMjksMTUgKzI5LDMwIEBACiAKICNpZiBFTkFCTEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBF
UykKIAorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50Lmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1Mb2NhbGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NvbnN0ZXhwciBTZWNvbmRzIHR5cGVB
aGVhZFRpbWVvdXQgeyAxX3MgfTsKKworaW50IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
UmFuZ2U6OmNsYW1wVmFsdWUoaW50IHZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBzdGQ6Om1p
bihzdGQ6Om1heCh2YWx1ZSwgbWluaW11bSksIG1heGltdW0pOworfQorCitib29sIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudDo6UmFuZ2U6OmlzSW5SYW5nZShpbnQgdmFsdWUpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHZhbHVlID49IG1pbmltdW0gJiYgdmFsdWUgPD0gbWF4aW11bTsKK30KKwog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk7
CiAKLURhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVt
ZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwgY29uc3QgU3Ry
aW5nJiBwbGFjZWhvbGRlcikKK0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRP
d25lciwgY29uc3QgUmFuZ2UmIHJhbmdlLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKQogICAg
IDogRGF0ZVRpbWVGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIpCisgICAgLCBtX3Jh
bmdlKHJhbmdlKQogICAgICwgbV9wbGFjZWhvbGRlcihwbGFjZWhvbGRlcikKIHsKIH0KQEAgLTQ1
LDYgKzYwLDExIEBAIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllCiBTdHJpbmcgRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50Ojpmb3JtYXRWYWx1ZShpbnQgdmFsdWUpIGNvbnN0CiB7CiAgICAgTG9j
YWxlJiBsb2NhbGUgPSBsb2NhbGVGb3JPd25lcigpOworCisgICAgaWYgKG1fcmFuZ2UubWF4aW11
bSA+IDk5OSkKKyAgICAgICAgcmV0dXJuIGxvY2FsZS5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIo
bWFrZVN0cmluZyhwYWQoJzAnLCA0LCB2YWx1ZSkpKTsKKyAgICBpZiAobV9yYW5nZS5tYXhpbXVt
ID4gOTkpCisgICAgICAgIHJldHVybiBsb2NhbGUuY29udmVydFRvTG9jYWxpemVkTnVtYmVyKG1h
a2VTdHJpbmcocGFkKCcwJywgMywgdmFsdWUpKSk7CiAgICAgcmV0dXJuIGxvY2FsZS5jb252ZXJ0
VG9Mb2NhbGl6ZWROdW1iZXIobWFrZVN0cmluZyhwYWQoJzAnLCAyLCB2YWx1ZSkpKTsKIH0KIApA
QCAtNTgsMTggKzc4LDE5IEBAIHZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojppbml0
aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBzZXVkbykKICAgICBEYXRlVGltZUZpZWxkRWxlbWVu
dDo6aW5pdGlhbGl6ZShwc2V1ZG8pOwogfQogCi12b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudDo6c2V0RW1wdHlWYWx1ZSgpCit2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
c2V0RW1wdHlWYWx1ZShFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgbV92YWx1
ZSA9IDA7CiAgICAgbV9oYXNWYWx1ZSA9IGZhbHNlOwotICAgIHVwZGF0ZVZpc2libGVWYWx1ZSgp
OworICAgIG1fdHlwZUFoZWFkQnVmZmVyLmNsZWFyKCk7CisgICAgdXBkYXRlVmlzaWJsZVZhbHVl
KGV2ZW50QmVoYXZpb3IpOwogfQogCi12b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6
c2V0VmFsdWVBc0ludGVnZXIoaW50IHZhbHVlKQordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGludCB2YWx1ZSwgRXZlbnRCZWhhdmlvciBldmVudEJl
aGF2aW9yKQogewotICAgIG1fdmFsdWUgPSB2YWx1ZTsKKyAgICBtX3ZhbHVlID0gbV9yYW5nZS5j
bGFtcFZhbHVlKHZhbHVlKTsKICAgICBtX2hhc1ZhbHVlID0gdHJ1ZTsKLSAgICB1cGRhdGVWaXNp
YmxlVmFsdWUoKTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUoZXZlbnRCZWhhdmlvcik7CiB9CiAK
IFN0cmluZyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKQEAgLTg3
LDYgKzEwOCwzOSBAQCBTdHJpbmcgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2aXNpYmxl
VmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX2hhc1ZhbHVlID8gdmFsdWUoKSA6IG1fcGxhY2Vo
b2xkZXI7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpoYW5kbGVLZXli
b2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQpCit7CisgICAgaWYgKGtleWJv
YXJkRXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBhdXRvIGNoYXJDb2RlID0gc3RhdGljX2Nhc3Q8VUNoYXI+KGtleWJvYXJk
RXZlbnQuY2hhckNvZGUoKSk7CisgICAgU3RyaW5nIG51bWJlciA9IGxvY2FsZUZvck93bmVyKCku
Y29udmVydEZyb21Mb2NhbGl6ZWROdW1iZXIoU3RyaW5nKCZjaGFyQ29kZSwgMSkpOworICAgIGlu
dCBkaWdpdCA9IG51bWJlclswXSAtICcwJzsKKyAgICBpZiAoZGlnaXQgPCAwIHx8IGRpZ2l0ID4g
OSkKKyAgICAgICAgcmV0dXJuOworCisgICAgU2Vjb25kcyB0aW1lU2luY2VMYXN0RGlnaXRDaGFy
ID0ga2V5Ym9hcmRFdmVudC50aW1lU3RhbXAoKSAtIG1fbGFzdERpZ2l0Q2hhclRpbWU7CisgICAg
bV9sYXN0RGlnaXRDaGFyVGltZSA9IGtleWJvYXJkRXZlbnQudGltZVN0YW1wKCk7CisKKyAgICBp
ZiAodGltZVNpbmNlTGFzdERpZ2l0Q2hhciA+IHR5cGVBaGVhZFRpbWVvdXQpIHsKKyAgICAgICAg
bV90eXBlQWhlYWRCdWZmZXIuY2xlYXIoKTsKKyAgICB9IGVsc2UgaWYgKGF1dG8gbGVuZ3RoID0g
bV90eXBlQWhlYWRCdWZmZXIubGVuZ3RoKCkpIHsKKyAgICAgICAgdW5zaWduZWQgbWF4TGVuZ3Ro
ID0gZm9ybWF0VmFsdWUobV9yYW5nZS5tYXhpbXVtKS5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGxl
bmd0aCA9PSBtYXhMZW5ndGgpCisgICAgICAgICAgICBtX3R5cGVBaGVhZEJ1ZmZlci5jbGVhcigp
OworICAgIH0KKworICAgIG1fdHlwZUFoZWFkQnVmZmVyLmFwcGVuZChudW1iZXIpOworICAgIHNl
dFZhbHVlQXNJbnRlZ2VyKG1fdHlwZUFoZWFkQnVmZmVyLnRvU3RyaW5nKCkudG9JbnQoKSwgRGlz
cGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50KTsKKworICAgIGtleWJvYXJkRXZlbnQuc2V0RGVmYXVs
dEhhbmRsZWQoKTsKK30KKwordm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmRpZEJs
dXIoKQoreworICAgIG1fdHlwZUFoZWFkQnVmZmVyLmNsZWFyKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQuaAppbmRleCBmMDJiZmIwZWRkMDI4YTZmOWM4NDMyNThiZDY5NWJlNDgx
ODM3MzY0Li40MDRkMzkxZDgxM2RkN2U1NmVhMDhhMDk3NTVjZTkxZjQ3MjU4ODRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQuaApAQCAtMjksMzMgKzI5LDQ5IEBACiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVf
SU5QVVRfVFlQRVMpCiAKICNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorI2luY2x1
ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOwogcHVibGljOgorICAgIHN0
cnVjdCBSYW5nZSB7CisgICAgICAgIFJhbmdlKGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSkKKyAg
ICAgICAgICAgIDogbWluaW11bShtaW5pbXVtKSwgbWF4aW11bShtYXhpbXVtKSB7IH0KKyAgICAg
ICAgaW50IGNsYW1wVmFsdWUoaW50KSBjb25zdDsKKyAgICAgICAgYm9vbCBpc0luUmFuZ2UoaW50
KSBjb25zdDsKKworICAgICAgICBpbnQgbWluaW11bTsKKyAgICAgICAgaW50IG1heGltdW07Cisg
ICAgfTsKIAogcHJvdGVjdGVkOgotICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChEb2N1
bWVudCYsIEZpZWxkT3duZXImLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKTsKKyAgICBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgUmFu
Z2UmLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRF
bGVtZW50IGZ1bmN0aW9uczoKICAgICBib29sIGhhc1ZhbHVlKCkgY29uc3QgZmluYWw7CiAgICAg
dm9pZCBpbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmKTsKLSAgICB2b2lkIHNldEVtcHR5VmFs
dWUoKSBmaW5hbDsKLSAgICB2b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGludCkgZmluYWw7CisgICAg
dm9pZCBzZXRFbXB0eVZhbHVlKEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpIGZpbmFs
OworICAgIHZvaWQgc2V0VmFsdWVBc0ludGVnZXIoaW50LCBFdmVudEJlaGF2aW9yID0gRGlzcGF0
Y2hOb0V2ZW50KSBmaW5hbDsKICAgICBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCBmaW5hbDsK
ICAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAg
Ly8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgogICAgIFN0cmluZyB2YWx1ZSgpIGNv
bnN0IGZpbmFsOworICAgIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50Jikg
ZmluYWw7CisgICAgdm9pZCBkaWRCbHVyKCkgZmluYWw7CiAKICAgICBTdHJpbmcgZm9ybWF0VmFs
dWUoaW50KSBjb25zdDsKIAorICAgIGNvbnN0IFJhbmdlIG1fcmFuZ2U7CiAgICAgY29uc3QgU3Ry
aW5nIG1fcGxhY2Vob2xkZXI7CiAgICAgaW50IG1fdmFsdWUgeyAwIH07CiAgICAgYm9vbCBtX2hh
c1ZhbHVlIHsgZmFsc2UgfTsKKyAgICBTdHJpbmdCdWlsZGVyIG1fdHlwZUFoZWFkQnVmZmVyOwor
ICAgIE1vbm90b25pY1RpbWUgbV9sYXN0RGlnaXRDaGFyVGltZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKaW5kZXggZGY1NGJlODE4NGYyOTBhZDhl
MWUyNDJlN2IwMTk3ZjAzMzY0YzY2My4uYmY2MDI1NWNkZGMxMTlhN2M0YzdkZDU2YzMwMDNjMTUy
NWRjMGQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTYzLDE2ICs2MywxNiBAQCB2b2lk
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmlu
ZyYgcHNldWRvKQogICAgIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKHBzZXVkbyk7
CiB9CiAKLXZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZSgp
Cit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUoRXZlbnRC
ZWhhdmlvciBldmVudEJlaGF2aW9yKQogewogICAgIG1fc2VsZWN0ZWRJbmRleCA9IGludmFsaWRJ
bmRleDsKLSAgICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUo
ZXZlbnRCZWhhdmlvcik7CiB9CiAKLXZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6
c2V0VmFsdWVBc0ludGVnZXIoaW50IG5ld1NlbGVjdGVkSW5kZXgpCit2b2lkIERhdGVUaW1lU3lt
Ym9saWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGludCBuZXdTZWxlY3RlZEluZGV4
LCBFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAgICAgbV9zZWxlY3RlZEluZGV4ID0g
c3RkOjptYXgoMCwgc3RkOjptaW4obmV3U2VsZWN0ZWRJbmRleCwgc3RhdGljX2Nhc3Q8aW50Piht
X3N5bWJvbHMuc2l6ZSgpIC0gMSkpKTsKLSAgICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB1
cGRhdGVWaXNpYmxlVmFsdWUoZXZlbnRCZWhhdmlvcik7CiB9CiAKIFN0cmluZyBEYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50Ojp2YWx1ZSgpIGNvbnN0CkBAIC05NSw2ICs5NSwxMSBAQCBTdHJp
bmcgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QKICAg
ICByZXR1cm4gaGFzVmFsdWUoKSA/IG1fc3ltYm9sc1ttX3NlbGVjdGVkSW5kZXhdIDogdmlzaWJs
ZUVtcHR5VmFsdWUoKTsKIH0KIAordm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojpo
YW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQmKQoreworICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgYWZ0ZXIgYWRkaW5nIGxheW91dCBmb3IgPGlucHV0IHR5cGU9dGltZT4uCit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lO
UFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oCmluZGV4IDY3YTgwNzg0MDViNmRhNjVmY2QwYzA2
NzUzMGRkZWZlMWYyN2QwZTIuLjM4ZGY5MjFkMTBiYmZkMjI1YTU1ZGE3MjlmNzI2Nzc1OGQ3Mzgw
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZVN5bWJvbGljRmllbGRFbGVtZW50LmgKQEAgLTM5LDggKzM5LDggQEAgcHJvdGVjdGVkOgogICAg
IHNpemVfdCBzeW1ib2xzU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ltYm9scy5zaXplKCk7IH0K
ICAgICBib29sIGhhc1ZhbHVlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplKGNv
bnN0IEF0b21TdHJpbmcmIHBzZXVkbyk7Ci0gICAgdm9pZCBzZXRFbXB0eVZhbHVlKCkgZmluYWw7
Ci0gICAgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQpIGZpbmFsOworICAgIHZvaWQgc2V0RW1w
dHlWYWx1ZShFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBmaW5hbDsKKyAgICB2b2lk
IHNldFZhbHVlQXNJbnRlZ2VyKGludCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCkg
ZmluYWw7CiAgICAgaW50IHZhbHVlQXNJbnRlZ2VyKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6
CkBAIC01MSw2ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQg
ZnVuY3Rpb25zOgogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyB2
aXNpYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQo
S2V5Ym9hcmRFdmVudCYpIGZpbmFsOwogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4gbV9zeW1i
b2xzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAKaW5kZXgg
M2E1ZjVjYzUyODM1NGE3NDkyMTE1ZDI3YmUyZGQ2NGY5YjNlYWUzMC4uODZjNzZjNWE5ZGQxZDc3
NmM1NGVlN2Y5YzFkODM2ODA2YWU1OGEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRGF0ZUNvbXBvbmVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Rh
dGVDb21wb25lbnRzLmNwcApAQCAtNDEsMTUgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0vLyBIVE1MIHVzZXMgSVNPLTg2MDEgZm9ybWF0IHdpdGggeWVhciA+PSAxLiBHcmVnb3Jp
YW4gY2FsZW5kYXIgc3RhcnRlZCBpbgotLy8gMTU4Mi4gSG93ZXZlciwgd2UgbmVlZCB0byBzdXBw
b3J0IDAwMDEtMDEtMDEgaW4gR3JlZ29yaWFuIGNhbGVuZGFyIHJ1bGUuCi1zdGF0aWMgY29uc3Rl
eHByIGludCBtaW5pbXVtWWVhciA9IDE7Ci0KLS8vIERhdGUgaW4gRUNNQVNjcmlwdCBjYW4ndCBy
ZXByZXNlbnQgZGF0ZXMgbGF0ZXIgdGhhbiAyNzU3NjAtMDktMTNUMDA6MDBaLgotLy8gU28sIHdl
IGhhdmUgdGhlIHNhbWUgdXBwZXIgbGltaXQgaW4gSFRNTDUgZGF0ZS90aW1lIHR5cGVzLgotc3Rh
dGljIGNvbnN0ZXhwciBpbnQgbWF4aW11bVllYXIgPSAyNzU3NjA7Ci0KLS8vIEhUTUxkZWZpbmVz
IG1pbmltdW0gd2VlayBvZiB5ZWFyIGlzIG9uZS4KKy8vIEhUTUwgZGVmaW5lcyBtaW5pbXVtIHdl
ZWsgb2YgeWVhciBpcyBvbmUuCiBzdGF0aWMgY29uc3RleHByIGludCBtaW5pbXVtV2Vla051bWJl
ciA9IDE7CiAKIC8vIEhUTUwgZGVmaW5lcyBtYXhpbXVtIHdlZWsgb2YgeWVhciBpcyA1My4KQEAg
LTE1MSw3ICsxNDMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIERh
dGVDb21wb25lbnRzOjpwYXJzZVllYXIoU3RyaW5nUGFyc2luZ0J1ZgogICAgIGlmIChkaWdpdHNM
ZW5ndGggPCA0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIHllYXIgPSBwYXJz
ZUludFdpdGhpbkxpbWl0cyhidWZmZXIsIGRpZ2l0c0xlbmd0aCwgbWluaW11bVllYXIsIG1heGlt
dW1ZZWFyKTsKKyAgICBhdXRvIHllYXIgPSBwYXJzZUludFdpdGhpbkxpbWl0cyhidWZmZXIsIGRp
Z2l0c0xlbmd0aCwgbWluaW11bVllYXIoKSwgbWF4aW11bVllYXIoKSk7CiAgICAgaWYgKCF5ZWFy
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE2MSwxOCArMTUzLDE4IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgRGF0ZUNvbXBvbmVudHM6OnBhcnNlWWVhcihT
dHJpbmdQYXJzaW5nQnVmCiAKIHN0YXRpYyBib29sIHdpdGhpbkhUTUxEYXRlTGltaXRzKGludCB5
ZWFyLCBpbnQgbW9udGgpCiB7Ci0gICAgaWYgKHllYXIgPCBtaW5pbXVtWWVhcikKKyAgICBpZiAo
eWVhciA8IERhdGVDb21wb25lbnRzOjptaW5pbXVtWWVhcigpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKHllYXIgPCBtYXhpbXVtWWVhcikKKyAgICBpZiAoeWVhciA8IERhdGVDb21w
b25lbnRzOjptYXhpbXVtWWVhcigpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4g
bW9udGggPD0gbWF4aW11bU1vbnRoSW5NYXhpbXVtWWVhcjsKIH0KIAogc3RhdGljIGJvb2wgd2l0
aGluSFRNTERhdGVMaW1pdHMoaW50IHllYXIsIGludCBtb250aCwgaW50IG1vbnRoRGF5KQogewot
ICAgIGlmICh5ZWFyIDwgbWluaW11bVllYXIpCisgICAgaWYgKHllYXIgPCBEYXRlQ29tcG9uZW50
czo6bWluaW11bVllYXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICh5ZWFyIDwg
bWF4aW11bVllYXIpCisgICAgaWYgKHllYXIgPCBEYXRlQ29tcG9uZW50czo6bWF4aW11bVllYXIo
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKG1vbnRoIDwgbWF4aW11bU1vbnRoSW5N
YXhpbXVtWWVhcikKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xODEsOSArMTczLDkgQEAgc3Rh
dGljIGJvb2wgd2l0aGluSFRNTERhdGVMaW1pdHMoaW50IHllYXIsIGludCBtb250aCwgaW50IG1v
bnRoRGF5KQogCiBzdGF0aWMgYm9vbCB3aXRoaW5IVE1MRGF0ZUxpbWl0cyhpbnQgeWVhciwgaW50
IG1vbnRoLCBpbnQgbW9udGhEYXksIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kLCBp
bnQgbWlsbGlzZWNvbmQpCiB7Ci0gICAgaWYgKHllYXIgPCBtaW5pbXVtWWVhcikKKyAgICBpZiAo
eWVhciA8IERhdGVDb21wb25lbnRzOjptaW5pbXVtWWVhcigpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKHllYXIgPCBtYXhpbXVtWWVhcikKKyAgICBpZiAoeWVhciA8IERhdGVDb21w
b25lbnRzOjptYXhpbXVtWWVhcigpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobW9u
dGggPCBtYXhpbXVtTW9udGhJbk1heGltdW1ZZWFyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTQzNiw3ICs0MjgsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIERh
dGVDb21wb25lbnRzOjpwYXJzZVdlZWsoU3RyaW5nUGFyc2luZ0J1ZgogICAgIGlmICghd2VlaykK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1feWVhciA9PSBtYXhpbXVtWWVhciAm
JiAqd2VlayA+IG1heGltdW1XZWVrSW5NYXhpbXVtWWVhcikKKyAgICBpZiAobV95ZWFyID09IG1h
eGltdW1ZZWFyKCkgJiYgKndlZWsgPiBtYXhpbXVtV2Vla0luTWF4aW11bVllYXIpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIG1fd2VlayA9ICp3ZWVrOwpAQCAtNjU2LDcgKzY0OCw3IEBA
IGJvb2wgRGF0ZUNvbXBvbmVudHM6OnNldE1vbnRoc1NpbmNlRXBvY2goZG91YmxlIG1vbnRocykK
ICAgICBtb250aHMgPSByb3VuZChtb250aHMpOwogICAgIGRvdWJsZSBkb3VibGVNb250aCA9IHBv
c2l0aXZlRm1vZChtb250aHMsIDEyKTsKICAgICBkb3VibGUgZG91YmxlWWVhciA9IDE5NzAgKyAo
bW9udGhzIC0gZG91YmxlTW9udGgpIC8gMTI7Ci0gICAgaWYgKGRvdWJsZVllYXIgPCBtaW5pbXVt
WWVhciB8fCBtYXhpbXVtWWVhciA8IGRvdWJsZVllYXIpCisgICAgaWYgKGRvdWJsZVllYXIgPCBt
aW5pbXVtWWVhcigpIHx8IG1heGltdW1ZZWFyKCkgPCBkb3VibGVZZWFyKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaW50IHllYXIgPSBzdGF0aWNfY2FzdDxpbnQ+KGRvdWJsZVllYXIpOwog
ICAgIGludCBtb250aCA9IHN0YXRpY19jYXN0PGludD4oZG91YmxlTW9udGgpOwpAQCAtNjg2LDcg
KzY3OCw3IEBAIGJvb2wgRGF0ZUNvbXBvbmVudHM6OnNldE1pbGxpc2Vjb25kc1NpbmNlRXBvY2hG
b3JXZWVrKGRvdWJsZSBtcykKICAgICBtcyA9IHJvdW5kKG1zKTsKIAogICAgIG1feWVhciA9IG1z
VG9ZZWFyKG1zKTsKLSAgICBpZiAobV95ZWFyIDwgbWluaW11bVllYXIgfHwgbV95ZWFyID4gbWF4
aW11bVllYXIpCisgICAgaWYgKG1feWVhciA8IG1pbmltdW1ZZWFyKCkgfHwgbV95ZWFyID4gbWF4
aW11bVllYXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaW50IHllYXJEYXkgPSBk
YXlJblllYXIobXMsIG1feWVhcik7CkBAIC02OTQsNyArNjg2LDcgQEAgYm9vbCBEYXRlQ29tcG9u
ZW50czo6c2V0TWlsbGlzZWNvbmRzU2luY2VFcG9jaEZvcldlZWsoZG91YmxlIG1zKQogICAgIGlm
ICh5ZWFyRGF5IDwgb2Zmc2V0KSB7CiAgICAgICAgIC8vIFRoZSBkYXkgYmVsb25ncyB0byB0aGUg
bGFzdCB3ZWVrIG9mIHRoZSBwcmV2aW91cyB5ZWFyLgogICAgICAgICBtX3llYXItLTsKLSAgICAg
ICAgaWYgKG1feWVhciA8PSBtaW5pbXVtWWVhcikKKyAgICAgICAgaWYgKG1feWVhciA8PSBtaW5p
bXVtWWVhcigpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBtX3dlZWsgPSBt
YXhXZWVrTnVtYmVySW5ZZWFyKCk7CiAgICAgfSBlbHNlIHsKQEAgLTcwMyw3ICs2OTUsNyBAQCBi
b29sIERhdGVDb21wb25lbnRzOjpzZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yV2Vlayhkb3Vi
bGUgbXMpCiAgICAgICAgICAgICBtX3llYXIrKzsKICAgICAgICAgICAgIG1fd2VlayA9IDE7CiAg
ICAgICAgIH0KLSAgICAgICAgaWYgKG1feWVhciA+IG1heGltdW1ZZWFyIHx8IChtX3llYXIgPT0g
bWF4aW11bVllYXIgJiYgbV93ZWVrID4gbWF4aW11bVdlZWtJbk1heGltdW1ZZWFyKSkKKyAgICAg
ICAgaWYgKG1feWVhciA+IG1heGltdW1ZZWFyKCkgfHwgKG1feWVhciA9PSBtYXhpbXVtWWVhcigp
ICYmIG1fd2VlayA+IG1heGltdW1XZWVrSW5NYXhpbXVtWWVhcikpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogICAgIG1fdHlwZSA9IERhdGVDb21wb25lbnRzVHlwZTo6V2VlazsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5oCmluZGV4IGEyNGZiOWYxZjEx
MDM3ODc0NjhkZWU1MzM0MTBiY2FjYjIyZDU0N2UuLjBhOTAyMzEwMzA1MjY3ZTlhMTQxYjMxYzA4
YTdkYWE0MjQ0MzdjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVD
b21wb25lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMu
aApAQCAtMTM3LDYgKzEzNywxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbmxp
bmUgZG91YmxlIG1heGltdW1UaW1lKCkgeyByZXR1cm4gODYzOTk5OTk7IH0gLy8gMjM6NTk6NTku
OTk5CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbmxpbmUgZG91YmxlIG1heGltdW1XZWVrKCkgeyBy
ZXR1cm4gODYzOTk5OTU2ODAwMDAwMC4wOyB9IC8vIDI3NTc2MC0wOS0wOCwgdGhlIE1vbmRheSBv
ZiB0aGUgd2VlayBpbmNsdWRpbmcgMjc1NzYwLTA5LTEzLgogCisgICAgLy8gSFRNTCB1c2VzIElT
Ty04NjAxIGZvcm1hdCB3aXRoIHllYXIgPj0gMS4gR3JlZ29yaWFuIGNhbGVuZGFyIHN0YXJ0ZWQg
aW4KKyAgICAvLyAxNTgyLiBIb3dldmVyLCB3ZSBuZWVkIHRvIHN1cHBvcnQgMDAwMS0wMS0wMSBp
biBHcmVnb3JpYW4gY2FsZW5kYXIgcnVsZS4KKyAgICBzdGF0aWMgY29uc3RleHByIGlubGluZSBp
bnQgbWluaW11bVllYXIoKSB7IHJldHVybiAxOyB9CisKKyAgICAvLyBEYXRlIGluIEVDTUFTY3Jp
cHQgY2FuJ3QgcmVwcmVzZW50IGRhdGVzIGxhdGVyIHRoYW4gMjc1NzYwLTA5LTEzVDAwOjAwWi4K
KyAgICAvLyBTbywgd2UgaGF2ZSB0aGUgc2FtZSB1cHBlciBsaW1pdCBpbiBIVE1MNSBkYXRlL3Rp
bWUgdHlwZXMuCisgICAgc3RhdGljIGNvbnN0ZXhwciBpbmxpbmUgaW50IG1heGltdW1ZZWFyKCkg
eyByZXR1cm4gMjc1NzYwOyB9CisKIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4gYm9vbCBwYXJzZVllYXIoU3RyaW5nUGFyc2luZ0J1ZmZlcjxDaGFyYWN0ZXJU
eXBlPiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgcGFyc2VU
aW1lWm9uZShTdHJpbmdQYXJzaW5nQnVmZmVyPENoYXJhY3RlclR5cGU+Jik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGQy
NWZjZjc0OGUyYjNkMGVmZDVjNDY4ZjllYzI3ZDQ5NGQzYWNkNi4uYTM4YzRlNTNiMDIzNDQ1YjBl
YTM3Yzc1NDFiNjVjMDVlNjAxMWIxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA4LTI4
ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1Nd
IEhhbmRsZSBldmVudHMgZm9yIGRhdGUgaW5wdXRzIHdpdGggZWRpdGFibGUgY29tcG9uZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1OTM4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVz
dHMgdG8gdmVyaWZ5IGNvcnJlY3RuZXNzIGZvciBrZXlib2FyZCBhbmQgbW91c2UgaW5wdXRzIGlu
IGRhdGUKKyAgICAgICAgaW5wdXRzIHdpdGggZWRpdGFibGUgY29tcG9uZW50cy4gVGhlc2UgdGVz
dHMgYWxzbyBlbnN1cmUgdGhhdCB0aGUKKyAgICAgICAgYXBwcm9wcmlhdGUgZXZlbnRzIGFyZSBk
aXNwYXRjaGVkOiAiY2xpY2siLCAiYmx1ciIsICJmb2N1cyIsICJpbnB1dCIKKyAgICAgICAgYW5k
ICJjaGFuZ2UiLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9u
ZW50cy1mb2N1cy1hbmQtYmx1ci1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUt
Y29tcG9uZW50cy1mb2N1cy1hbmQtYmx1ci1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNv
bXBvbmVudHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNv
bXBvbmVudHMta2V5Ym9hcmQtZXZlbnRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRz
LW1vdXNlLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
ZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1v
dXNlLWV2ZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMjAtMDgtMzEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFttYWNPU10gRGF0ZSBpbnB1dHMgc2hvdWxkIGNvbnRhaW4gZWRp
dGFibGUgY29tcG9uZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDBiNzdlNTg5MTk5ZjE2NjRm
NjRhZmY5MmViOWJkODUxNjYxN2NjYy4uZjUwN2U3NjJmOTY0NzcyNmM4YmI3OTM2ZDNhOTMxODU0
NDhmMGIzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMCw2ICszMCw3IEBAIGVkaXRpbmcvdW5k
by1tYW5hZ2VyIFsgU2tpcCBdCiB0aWxlZC1kcmF3aW5nIFsgU2tpcCBdCiBmYXN0L2Nzcy9pb3Mg
WyBTa2lwIF0KIGZhc3QvY3NzL3dhdGNob3MgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvZGF0ZS9kYXRl
LWVkaXRhYmxlLWNvbXBvbmVudHMgWyBTa2lwIF0KIGZhc3QvZG9tL1dpbmRvdy93YXRjaG9zIFsg
U2tpcCBdCiBmYXN0L2Zvcm1zL3NlbGVjdC9tYWMtd2syIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL3Rl
eHRhcmVhL2lvcyBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9k
YXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtZm9j
dXMtYW5kLWJsdXItZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
ZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZv
Y3VzLWFuZC1ibHVyLWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRlNjgxZjdjODFl
OTc3NjUzODc1Yzg0YTE3NWEyNTRjMTIxNzM2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJs
ZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVyLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0MCBAQAorVGVzdCBmb3IgZm9jdXMgYW5kIGJsdXIgZXZlbnRzIGZvciA8aW5wdXQgdHlwZT1k
YXRlPgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRm9jdXMvYmx1ciB1c2luZyBt
b3VzZQorCitQQVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQg
aXMgMAorUEFTUyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDEKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlz
IDAKK1BBU1MgZm9jdXNFdmVudHNGaXJlZCBpcyAxCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAw
CitQQVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMAor
UEFTUyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDEKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDEKKwor
Rm9jdXMvYmx1ciB1c2luZyBrZXlib2FyZAorCitQQVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMQor
UEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMAorUEFTUyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDEKK1BB
U1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDAKK1BBU1MgZm9jdXNFdmVudHNGaXJlZCBpcyAxCitQQVNT
IGJsdXJFdmVudHNGaXJlZCBpcyAwCitQQVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBi
bHVyRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDIKK1BBU1MgYmx1
ckV2ZW50c0ZpcmVkIGlzIDEKK1BBU1MgZm9jdXNFdmVudHNGaXJlZCBpcyAyCitQQVNTIGJsdXJF
dmVudHNGaXJlZCBpcyAxCitQQVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMgorUEFTUyBibHVyRXZl
bnRzRmlyZWQgaXMgMQorUEFTUyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDIKK1BBU1MgYmx1ckV2ZW50
c0ZpcmVkIGlzIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVk
aXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVy
LWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUt
Y29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTViMDRiNGEzMWMwZDA0MTJlZjMwZDc0NGQyZWJjOWU1OGE0MGQ0
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVk
aXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVy
LWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMTIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2lucHV0IHsKKyAgICB3aWR0aDogMzAwcHg7Cit9CisK
K2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4dCB7CisgICAgZm9udC1zaXplOiAzMHB4
OworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIHsKKyAgICBm
b250LXNpemU6IDMwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZp
ZWxkIHsKKyAgICBmb250LXNpemU6IDMwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1l
LWVkaXQteWVhci1maWVsZCB7CisgICAgZm9udC1zaXplOiAzMHB4OworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorCis8aW5wdXQgaWQ9ImJlZm9yZSIgdHlwZT0idGV4dCI+Cis8aW5wdXQg
aWQ9ImlucHV0IiB0eXBlPSJkYXRlIiB2YWx1ZT0iMjAyMC0wOC0yNiI+Cis8aW5wdXQgaWQ9ImFm
dGVyIiB0eXBlPSJ0ZXh0Ij4KKworPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgZm9yIGZv
Y3VzIGFuZCBibHVyIGV2ZW50cyBmb3IgJmx0O2lucHV0IHR5cGU9ZGF0ZSZndDsiKTsKKworYmx1
ckV2ZW50c0ZpcmVkID0gMDsKK2Z1bmN0aW9uIG9uQmx1ckV2ZW50KCkgeworICAgIGJsdXJFdmVu
dHNGaXJlZCsrOworfQorCitmb2N1c0V2ZW50c0ZpcmVkID0gMDsKK2Z1bmN0aW9uIG9uRm9jdXNF
dmVudCgpIHsKKyAgICBmb2N1c0V2ZW50c0ZpcmVkKys7Cit9CisKK2Z1bmN0aW9uIGFzc2VydEZv
Y3VzQW5kQmx1ckNvdW50KG51bUZvY3VzRXZlbnRzLCBudW1CbHVyRXZlbnRzKSB7CisgICAgc2hv
dWxkQmUoImZvY3VzRXZlbnRzRmlyZWQiLCBudW1Gb2N1c0V2ZW50cy50b1N0cmluZygpKTsKKyAg
ICBzaG91bGRCZSgiYmx1ckV2ZW50c0ZpcmVkIiwgbnVtQmx1ckV2ZW50cy50b1N0cmluZygpKTsK
K30KKworZnVuY3Rpb24gcmVzZXRGb2N1c0FuZEJsdXJDb3VudCgpIHsKKyAgICBibHVyRXZlbnRz
RmlyZWQgPSAwOworICAgIGZvY3VzRXZlbnRzRmlyZWQgPSAwOworfQorCitmdW5jdGlvbiBtb3Vz
ZUNsaWNrT24oeCwgeSkgeworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICBy
ZXR1cm47CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCArIGlucHV0Lm9mZnNldExlZnQs
IHkgKyBpbnB1dC5vZmZzZXRUb3ApOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1
ciIsIG9uQmx1ckV2ZW50KTsKK2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgb25Gb2N1
c0V2ZW50KTsKKworY29uc3QgY2VudGVyID0gaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKKworZGVi
dWcoIkZvY3VzL2JsdXIgdXNpbmcgbW91c2VcbiIpOworCisvLyBDbGljayBvbiBtb250aCBmaWVs
ZC4KK21vdXNlQ2xpY2tPbigyMCwgY2VudGVyKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEs
IDApOworLy8gQ2xpY2sgb24gZGF5IGZpZWxkLgorbW91c2VDbGlja09uKDYwLCBjZW50ZXIpOwor
YXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMSwgMCk7CisvLyBDbGljayBvbiB5ZWFyIGZpZWxkLgor
bW91c2VDbGlja09uKDEyMCwgY2VudGVyKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDAp
OworLy8gQ2xpY2sgb24gY29udHJvbCwgYnV0IG5vdCBhIHNwZWNpZmljIGZpZWxkLgorbW91c2VD
bGlja09uKDI1MCwgY2VudGVyKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDApOworLy8g
Q2xpY2sgb3V0c2lkZSBjb250cm9sLgorbW91c2VDbGlja09uKGlucHV0Lm9mZnNldFdpZHRoICsg
NSwgaW5wdXQub2Zmc2V0SGVpZ2h0ICsgNSk7Cithc3NlcnRGb2N1c0FuZEJsdXJDb3VudCgxLCAx
KTsKK3Jlc2V0Rm9jdXNBbmRCbHVyQ291bnQoKTsKKworZGVidWcoIlxuRm9jdXMvYmx1ciB1c2lu
ZyBrZXlib2FyZFxuIik7CisKK1VJSGVscGVyLmFjdGl2YXRlRWxlbWVudChiZWZvcmUpOworLy8g
Rm9jdXMgb24gbW9udGggZmllbGQuCitVSUhlbHBlci5rZXlEb3duKCJcdCIpOworYXNzZXJ0Rm9j
dXNBbmRCbHVyQ291bnQoMSwgMCk7CisvLyBGb2N1cyBvbiBkYXkgZmllbGQuCitVSUhlbHBlci5r
ZXlEb3duKCJcdCIpOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMSwgMCk7CisvLyBGb2N1cyBv
biB5ZWFyIGZpZWxkLgorVUlIZWxwZXIua2V5RG93bigiXHQiKTsKK2Fzc2VydEZvY3VzQW5kQmx1
ckNvdW50KDEsIDApOworLy8gRm9jdXMgb3V0LgorVUlIZWxwZXIua2V5RG93bigiXHQiKTsKK2Fz
c2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDEpOworLy8gRm9jdXMgb24geWVhciBmaWVsZC4KK1VJ
SGVscGVyLmtleURvd24oIlx0IiwgWyJzaGlmdEtleSJdKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNv
dW50KDIsIDEpOworLy8gRm9jdXMgb24gZGF5IGZpZWxkLgorVUlIZWxwZXIua2V5RG93bigiXHQi
LCBbInNoaWZ0S2V5Il0pOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMiwgMSk7CisvLyBGb2N1
cyBvbiBtb250aCBmaWVsZC4KK1VJSGVscGVyLmtleURvd24oIlx0IiwgWyJzaGlmdEtleSJdKTsK
K2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDIsIDEpOworLy8gRm9jdXMgb3V0LgorVUlIZWxwZXIu
a2V5RG93bigiXHQiLCBbInNoaWZ0S2V5Il0pOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMiwg
Mik7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUt
ZWRpdGFibGUtY29tcG9uZW50cy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRh
YmxlLWNvbXBvbmVudHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YzU4NzZiNzM1ODQ2NDlmODM5NWIwMWM3ZWUzYjJmZWE4OTk5ZTQ2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9k
YXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDU5IEBACitUZXN0IGZvciBrZXlib2FyZCBvcGVyYXRpb25zIGZvciA8aW5wdXQgdHlw
ZT1kYXRlPgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitEaWdpdCBrZXlzCitQ
QVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTA5LTAyIgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBp
cyA0CitQQVNTIGlucHV0RXZlbnRzRmlyZWQgaXMgNAorCitEaWdpdCBrZXlzIHdpdGggbGVhZGlu
ZyB6ZXJvCitQQVNTIGlucHV0LnZhbHVlIGlzICIwMDM0LTA1LTA2IgorUEFTUyBjaGFuZ2VFdmVu
dHNGaXJlZCBpcyAzCitQQVNTIGlucHV0RXZlbnRzRmlyZWQgaXMgMworCitEaWdpdCBrZXlzIGFu
ZCBiYWNrc3BhY2Uga2V5CitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDIwLTAyLTA0IgorUEFTUyBj
aGFuZ2VFdmVudHNGaXJlZCBpcyA2CitQQVNTIGlucHV0RXZlbnRzRmlyZWQgaXMgNgorCitEaWdp
dCBrZXlzIHdpdGggdGltZW91dAorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMS0wMi0wNCIKK1BB
U1MgY2hhbmdlRXZlbnRzRmlyZWQgaXMgMgorUEFTUyBpbnB1dEV2ZW50c0ZpcmVkIGlzIDIKKwor
RGlnaXQga2V5cyBjbGFtcCB2YWx1ZQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiOTk5OS0xMi0zMSIK
K1BBU1MgY2hhbmdlRXZlbnRzRmlyZWQgaXMgNAorUEFTUyBpbnB1dEV2ZW50c0ZpcmVkIGlzIDQK
KworTGVmdC9SaWdodCBhcnJvdyBrZXlzCitQQVNTIGlucHV0LnZhbHVlIGlzICIwMDAyLTAyLTAy
IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMi0wMy0wMyIKK1BBU1MgY2hhbmdlRXZlbnRzRmly
ZWQgaXMgMworUEFTUyBpbnB1dEV2ZW50c0ZpcmVkIGlzIDMKKworVGFiIGtleQorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMDAwMi0wMi0wMiIKK1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCBp
cyAiYWZ0ZXIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIwMDAyLTAzLTAzIgorUEFTUyBkb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmlkIGlzICJiZWZvcmUiCitQQVNTIGNoYW5nZUV2ZW50c0ZpcmVkIGlz
IDMKK1BBU1MgaW5wdXRFdmVudHNGaXJlZCBpcyAzCisKK0JhY2tzcGFjZSBrZXkKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMjAtMDctMjYiCitQQVNTIGNo
YW5nZUV2ZW50c0ZpcmVkIGlzIDIKK1BBU1MgaW5wdXRFdmVudHNGaXJlZCBpcyAyCisKK0RlbGV0
ZSBrZXkKK1BBU1MgaW5wdXQudmFsdWUgaXMgIiIKK1BBU1MgY2hhbmdlRXZlbnRzRmlyZWQgaXMg
MQorUEFTUyBpbnB1dEV2ZW50c0ZpcmVkIGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25l
bnRzLWtleWJvYXJkLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2Rh
dGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQt
ZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTJjYTY2ODY4Zjc0ZDYwNjk0ZThlZDA4Zjc1YmQ4M2Mx
MzkzOTA5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9k
YXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWtleWJvYXJk
LWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMTc0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8aW5wdXQgaWQ9ImJlZm9yZSIgdHlw
ZT0idGV4dCI+Cis8aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJkYXRlIj4KKzxpbnB1dCBpZD0iYWZ0
ZXIiIHR5cGU9InRleHQiPgorCis8c2NyaXB0PgorCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
Y2hhbmdlRXZlbnRzRmlyZWQgPSAwOworZnVuY3Rpb24gb25DaGFuZ2VFdmVudCgpIHsKKyAgICBj
aGFuZ2VFdmVudHNGaXJlZCsrOworfQorCitpbnB1dEV2ZW50c0ZpcmVkID0gMDsKK2Z1bmN0aW9u
IG9uSW5wdXRFdmVudCgpIHsKKyAgICBpbnB1dEV2ZW50c0ZpcmVkKys7Cit9CisKK2Z1bmN0aW9u
IGJlZ2luVGVzdCh0aXRsZSwgdmFsdWUpIHsKKyAgICBkZWJ1ZygiXG4iICsgdGl0bGUpOworICAg
IGlucHV0LnZhbHVlID0gdmFsdWUgfHwgIiI7CisgICAgaW5wdXQuYmx1cigpOworICAgIGlucHV0
LmZvY3VzKCk7CisKKyAgICBjaGFuZ2VFdmVudHNGaXJlZCA9IDA7CisgICAgaW5wdXRFdmVudHNG
aXJlZCA9IDA7Cit9CisKK2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIG9uQ2hhbmdl
RXZlbnQpOworaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLCBvbklucHV0RXZlbnQpOwor
CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgIGRlc2NyaXB0aW9u
KCJUZXN0IGZvciBrZXlib2FyZCBvcGVyYXRpb25zIGZvciAmbHQ7aW5wdXQgdHlwZT1kYXRlJmd0
OyIpOworCisgICAgYmVnaW5UZXN0KCJEaWdpdCBrZXlzIik7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIFttbV0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjkiKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBbMDldL2RkL3l5eXkKKyAgICBVSUhl
bHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4g
MDkvW2RkXS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIC0+IDA5L1swMl0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24o
InJpZ2h0QXJyb3ciKTsgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwOS8wMi9beXl5eV0K
KyAgICBVSUhlbHBlci5rZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gLT4gMDkvMDIvWzAwMDJdCisgICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA5LzAyL1swMDIwXQorICAgIFVJSGVscGVy
LmtleURvd24oIjEiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwOS8w
Mi9bMDIwMV0KKyAgICBVSUhlbHBlci5rZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gLT4gMDkvMDIvWzIwMTJdCisgICAgVUlIZWxwZXIua2V5RG93bigiQSIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZWQuCisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIyMDEyLTA5LTAyIik7CisgICAgc2hvdWxk
QmUoImNoYW5nZUV2ZW50c0ZpcmVkIiwgIjQiKTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNG
aXJlZCIsICI0Iik7CisKKyAgICBiZWdpblRlc3QoIkRpZ2l0IGtleXMgd2l0aCBsZWFkaW5nIHpl
cm8iKTsgICAgICAgICAgICAgLy8gW21tXS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigi
MCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswMF0vZGQveXl5eQor
ICAgIFVJSGVscGVyLmtleURvd24oIjUiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyAtPiBbMDVdL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDUvW2RkXS95eXl5CisgICAgVUlIZWxwZXIu
a2V5RG93bigiMCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA1L1sw
MF0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjYiKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAtPiAwNS9bMDZdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdo
dEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDUvMDYvW3l5eXldCisgICAg
VUlIZWxwZXIua2V5RG93bigiMCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IC0+IDA1LzA2L1swMDAxXQorICAgIFVJSGVscGVyLmtleURvd24oIjAiKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyAtPiAwNS8wNi9bMDAwMV0KKyAgICBVSUhlbHBlci5rZXlE
b3duKCIzIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDUvMDYvWzAw
MDNdCisgICAgVUlIZWxwZXIua2V5RG93bigiNCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIC0+IDA1LzA2L1swMDM0XQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW5w
dXQudmFsdWUiLCAiMDAzNC0wNS0wNiIpOworICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVudHNGaXJl
ZCIsICIzIik7CisgICAgc2hvdWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAiMyIpOworCisgICAg
YmVnaW5UZXN0KCJEaWdpdCBrZXlzIGFuZCBiYWNrc3BhY2Uga2V5Iik7ICAgICAgICAgICAgIC8v
IFttbV0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjEiKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAtPiBbMDFdL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3du
KCJcYiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gW21tXS9kZC95eXl5
CisgICAgVUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIC0+IFswMl0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ci
KTsgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9bZGRdL3l5eXkKKyAgICBVSUhlbHBl
ci5rZXlEb3duKCIzIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIv
WzAzXS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiXGIiKTsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIC0+IDAyL1tkZF0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjQi
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9bMDRdL3l5eXkKKyAg
ICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gLT4gMDIvMDQvW3l5eXldCisgICAgVUlIZWxwZXIua2V5RG93bigiNCIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyLzA0L1swMDA0XQorICAgIFVJSGVscGVyLmtl
eURvd24oIlxiIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wNC9b
eXl5eV0KKyAgICBVSUhlbHBlci5rZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gLT4gMDIvMDQvWzAwMDJdCisgICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyLzA0L1swMDIwXQorICAgIFVJ
SGVscGVyLmtleURvd24oIjIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAt
PiAwMi8wNC9bMDIwMl0KKyAgICBVSUhlbHBlci5rZXlEb3duKCIwIik7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvMDQvWzIwMjBdCisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJpbnB1dC52YWx1ZSIsICIyMDIwLTAyLTA0Iik7CisgICAgc2hvdWxkQmUoImNoYW5n
ZUV2ZW50c0ZpcmVkIiwgIjYiKTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICI2
Iik7CisKKyAgICBiZWdpblRlc3QoIkRpZ2l0IGtleXMgd2l0aCB0aW1lb3V0Iik7ICAgICAgICAg
ICAgICAgICAgLy8gW21tXS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswMl0vZGQveXl5eQorICAgIFVJSGVs
cGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAw
Mi9bZGRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCI0Iik7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gLT4gMDIvWzA0XS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigi
cmlnaHRBcnJvdyIpOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyLzA0L1t5eXl5XQor
ICAgIFVJSGVscGVyLmtleURvd24oIjQiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyAtPiAwMi8wNC9bMDAwNF0KKyAgICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcigxNTAwKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2FpdC4KKyAgICBVSUhlbHBlci5rZXlEb3duKCIx
Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvMDQvWzAwMDFdCisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIwMDAxLTAyLTA0Iik7Cisg
ICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50c0ZpcmVkIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiaW5w
dXRFdmVudHNGaXJlZCIsICIyIik7CisKKyAgICBiZWdpblRlc3QoIkRpZ2l0IGtleXMgY2xhbXAg
dmFsdWUiKTsgICAgICAgICAgICAgICAgICAgLy8gW21tXS9kZC95eXl5CisgICAgVUlIZWxwZXIu
a2V5RG93bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswOV0v
ZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjkiKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAtPiBbMTJdL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdo
dEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMTIvW2RkXS95eXl5CisgICAg
VUlIZWxwZXIua2V5RG93bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IC0+IDEyL1swOV0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjkiKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyAtPiAxMi9bMzFdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlE
b3duKCJyaWdodEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMTIvMzEvW3l5
eXldCisgICAgVUlIZWxwZXIua2V5RG93bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIC0+IDEyLzMxL1swMDA5XQorICAgIFVJSGVscGVyLmtleURvd24oIjkiKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAxMi8zMS9bMDA5OV0KKyAgICBVSUhl
bHBlci5rZXlEb3duKCI5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4g
MTIvMzEvWzA5OTldCisgICAgVUlIZWxwZXIua2V5RG93bigiOSIpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIC0+IDEyLzMxL1s5OTk5XQorICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiaW5wdXQudmFsdWUiLCAiOTk5OS0xMi0zMSIpOworICAgIHNob3VsZEJlKCJjaGFuZ2VF
dmVudHNGaXJlZCIsICI0Iik7CisgICAgc2hvdWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAiNCIp
OworCisgICAgYmVnaW5UZXN0KCJMZWZ0L1JpZ2h0IGFycm93IGtleXMiKTsgICAgICAgICAgICAg
ICAgICAgIC8vIFttbV0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjIiKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBbMDJdL2RkL3l5eXkKKyAgICBVSUhlbHBl
ci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIv
W2RkXS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIC0+IDAyL1swMl0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJp
Z2h0QXJyb3ciKTsgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wMi9beXl5eV0KKyAg
ICBVSUhlbHBlci5rZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gLT4gMDIvMDIvWzAwMDJdCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1
ZSIsICIwMDAyLTAyLTAyIik7CisgICAgVUlIZWxwZXIua2V5RG93bigibGVmdEFycm93Iik7ICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyL1swMl0vMDAwMgorICAgIFVJSGVscGVyLmtl
eURvd24oIjMiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9bMDNd
LzAwMDIKKyAgICBVSUhlbHBlci5rZXlEb3duKCJsZWZ0QXJyb3ciKTsgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gLT4gWzAyXS8wMy8wMDAyCisgICAgVUlIZWxwZXIua2V5RG93bigiMyIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswM10vMDMvMDAwMgorICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMDAwMi0wMy0wMyIpOworICAgIHNo
b3VsZEJlKCJjaGFuZ2VFdmVudHNGaXJlZCIsICIzIik7CisgICAgc2hvdWxkQmUoImlucHV0RXZl
bnRzRmlyZWQiLCAiMyIpOworCisgICAgYmVnaW5UZXN0KCJUYWIga2V5Iik7CisgICAgVUlIZWxw
ZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFsw
Ml0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIlx0Iik7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyAtPiAwMi9bZGRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCIy
Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvWzAyXS95eXl5Cisg
ICAgVUlIZWxwZXIua2V5RG93bigiXHQiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIC0+IDAyLzAyL1t5eXl5XQorICAgIFVJSGVscGVyLmtleURvd24oIjIiKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wMi9bMDAwMl0KKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImlucHV0LnZhbHVlIiwgIjAwMDItMDItMDIiKTsKKyAgICBVSUhlbHBlci5r
ZXlEb3duKCJcdCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9jdXMgb3V0
LgorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCIs
ICJhZnRlciIpOworICAgIFVJSGVscGVyLmtleURvd24oIlx0IiwgWyJzaGlmdEtleSJdKTsgICAg
ICAgICAgICAgICAgICAvLyAtPiAwMi8wMi9bMDAwMl0KKyAgICBVSUhlbHBlci5rZXlEb3duKCJc
dCIsIFsic2hpZnRLZXkiXSk7ICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvWzAyXS8wMDAyCisg
ICAgVUlIZWxwZXIua2V5RG93bigiMyIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIC0+IDAyL1swM10vMDAwMgorICAgIFVJSGVscGVyLmtleURvd24oIlx0IiwgWyJzaGlmdEtl
eSJdKTsgICAgICAgICAgICAgICAgICAvLyAtPiBbMDJdLzAzLzAwMDIKKyAgICBVSUhlbHBlci5r
ZXlEb3duKCIzIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gWzAzXS8w
My8wMDAyCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIwMDAyLTAz
LTAzIik7CisgICAgVUlIZWxwZXIua2V5RG93bigiXHQiLCBbInNoaWZ0S2V5Il0pOyAgICAgICAg
ICAgICAgICAgIC8vIEZvY3VzIG91dC4KKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuaWQiLCAiYmVmb3JlIik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2
ZW50c0ZpcmVkIiwgIjMiKTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICIzIik7
CisKKyAgICBiZWdpblRlc3QoIkJhY2tzcGFjZSBrZXkiLCAiMjAyMC0wOC0yNiIpOyAgICAgICAg
ICAgICAgLy8gWzA4XS8yNi8yMDIwCisgICAgVUlIZWxwZXIua2V5RG93bigiXGIiKTsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFttbV0vMjYvMjAyMAorICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiIik7CisgICAgVUlIZWxwZXIua2V5RG93bigi
NyIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswN10vMjYvMjAyMAor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMjAyMC0wNy0yNiIpOwor
ICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVudHNGaXJlZCIsICIyIik7CisgICAgc2hvdWxkQmUoImlu
cHV0RXZlbnRzRmlyZWQiLCAiMiIpOworCisgICAgYmVnaW5UZXN0KCJEZWxldGUga2V5IiwgIjIw
MjAtMDgtMjYiKTsgICAgICAgICAgICAgICAgIC8vIFswOF0vMjYvMjAyMQorICAgIFVJSGVscGVy
LmtleURvd24oImRlbGV0ZSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBbbW1d
LzI2LzIwMjEKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImlucHV0LnZhbHVlIiwgIiIpOwor
ICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVudHNGaXJlZCIsICIxIik7CisgICAgc2hvdWxkQmUoImlu
cHV0RXZlbnRzRmlyZWQiLCAiMSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1j
b21wb25lbnRzLW1vdXNlLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50
cy1tb3VzZS1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MGNhMDdlNzc1YzIxNGE3
NDg0NWNiYTVmZWIwOGJlMDNlZTY3OTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29t
cG9uZW50cy1tb3VzZS1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3Qg
Zm9yIG1vdXNlIGV2ZW50cyBmb3IgPGlucHV0IHR5cGU9ZGF0ZT4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMjAtMDktMjYiCitQQVNTIGlu
cHV0LnZhbHVlIGlzICIyMDIwLTA5LTEyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMzAzMC0wOS0x
MiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjMwMzAtMDUtMTIiCitQQVNTIGlucHV0LnZhbHVlIGlz
ICIzMDMwLTA1LTEyIgorUEFTUyBjbGlja0V2ZW50c0ZpcmVkIGlzIDQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFi
bGUtY29tcG9uZW50cy1tb3VzZS1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
ZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1v
dXNlLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ZDE5NmQ1NGYyY2MwYTE0ZWFkZDY1YzQ1MWIz
NjY2ODhkNDQ0MWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Rh
dGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1tb3Vz
ZS1ldmVudHMuaHRtbApAQCAtMCwwICsxLDg3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK2lucHV0IHsKKyAgICB3aWR0aDogMzAwcHg7Cit9CisK
K2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtdGV4dCB7CisgICAgZm9udC1zaXplOiAzMHB4
OworfQorCitpbnB1dDo6LXdlYmtpdC1kYXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIHsKKyAgICBm
b250LXNpemU6IDMwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZp
ZWxkIHsKKyAgICBmb250LXNpemU6IDMwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1l
LWVkaXQteWVhci1maWVsZCB7CisgICAgZm9udC1zaXplOiAzMHB4OworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorCis8aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJkYXRlIiB2YWx1ZT0iMjAy
MC0wOC0yNiI+CisKKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciBtb3VzZSBldmVu
dHMgZm9yICZsdDtpbnB1dCB0eXBlPWRhdGUmZ3Q7Iik7CisKK2NsaWNrRXZlbnRzRmlyZWQgPSAw
OworZnVuY3Rpb24gb25DbGlja0V2ZW50KCkgeworICAgIGNsaWNrRXZlbnRzRmlyZWQrKzsKK30K
KworZnVuY3Rpb24gbW91c2VDbGlja09uKHgsIHkpIHsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNl
bmRlcikKKyAgICAgICAgcmV0dXJuOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyBp
bnB1dC5vZmZzZXRMZWZ0LCB5ICsgaW5wdXQub2Zmc2V0VG9wKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2lucHV0LmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgb25DbGlja0V2ZW50KTsKK2NvbnN0IGNlbnRlciA9IGlucHV0
Lm9mZnNldEhlaWdodCAvIDI7CisKKy8vIENsaWNrIG9uIG1vbnRoIGZpZWxkLgorbW91c2VDbGlj
a09uKDIwLCBjZW50ZXIpOworVUlIZWxwZXIua2V5RG93bigiOSIpOworc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJpbnB1dC52YWx1ZSIsICIyMDIwLTA5LTI2Iik7CisKKy8vIENsaWNrIG9uIGRheSBm
aWVsZC4KK21vdXNlQ2xpY2tPbig2MCwgY2VudGVyKTsKK1VJSGVscGVyLmtleURvd24oIjEiKTsK
K1VJSGVscGVyLmtleURvd24oIjIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFs
dWUiLCAiMjAyMC0wOS0xMiIpOworCisvLyBDbGljayBvbiB5ZWFyIGZpZWxkLgorbW91c2VDbGlj
a09uKDEyMCwgY2VudGVyKTsKK1VJSGVscGVyLmtleURvd24oIjMiKTsKK1VJSGVscGVyLmtleURv
d24oIjAiKTsKK1VJSGVscGVyLmtleURvd24oIjMiKTsKK1VJSGVscGVyLmtleURvd24oIjAiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMzAzMC0wOS0xMiIpOworCisv
LyBDbGljayBvbiBjb250cm9sLCBidXQgbm90IGEgc3BlY2lmaWMgZmllbGQsIGRlZmF1bHRzIHRv
IGZpcnN0IGZpZWxkLgorbW91c2VDbGlja09uKDI1MCwgY2VudGVyKTsKK1VJSGVscGVyLmtleURv
d24oIjUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMzAzMC0wNS0x
MiIpOworCisvLyBDbGljayBvdXRzaWRlIGNvbnRyb2wuCittb3VzZUNsaWNrT24oaW5wdXQub2Zm
c2V0V2lkdGggKyA1LCBpbnB1dC5vZmZzZXRIZWlnaHQgKyA1KTsKK1VJSGVscGVyLmtleURvd24o
IjUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMzAzMC0wNS0xMiIp
OworCitzaG91bGRCZSgiY2xpY2tFdmVudHNGaXJlZCIsICI0Iik7CisKKzwvc2NyaXB0PgorCis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggOWFjYjNjZDVmYWUyNDVkZTg2Y2JjYWVhOWFmOGQ3ZGE5OGRj
ODVhMS4uZTAzZjI2YWUyY2YwZjY0YTU3N2FjYzA0YTc4NjBjYWVkNzcwNGJmMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTIsNiArMTIs
NyBAQCBlZGl0aW5nL2ZpbmQgWyBQYXNzIF0KIGVkaXRpbmcvdW5kby1tYW5hZ2VyIFsgUGFzcyBd
CiBlZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlIFsgUGFzcyBdCiBmYXN0L2V2ZW50cy9jdXJz
b3JzIFsgUGFzcyBdCitmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzIFsg
UGFzcyBdCiBmYXN0L2Zvcm1zL3NlbGVjdC9tYWMtd2syIFsgUGFzcyBdCiBmYXN0L3NhbmRib3gv
bWFjIFsgUGFzcyBdCiBmYXN0L3Njcm9sbGluZy9tYWMgWyBQYXNzIF0K
</data>
<flag name="review"
          id="422971"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407616</attachid>
            <date>2020-08-31 12:34:30 -0700</date>
            <delta_ts>2020-09-01 08:44:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-215938-20200831153429.patch</filename>
            <type>text/plain</type>
            <size>78792</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2MzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhkZjUxNDhkZTg1OWI2
ZjAyNDhmN2M3NDc0NjE0ZmYxNjVlNjdmMS4uNDA3OTZiNjMyNDg4MGEzOTg0MzI2MDAyMDFmMjg5
NDM0NGVlMGMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAyMC0wOC0yOCAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBIYW5k
bGUgZXZlbnRzIGZvciBkYXRlIGlucHV0cyB3aXRoIGVkaXRhYmxlIGNvbXBvbmVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTkzOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBh
Y3R1YWwgZWRpdGFiaWxpdHkgdG8gZGF0ZSBpbnB1dHMgd2l0aCBlZGl0YWJsZQorICAgICAgICBj
b21wb25lbnRzLCBhcyB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIG5vdyByZXNwb25kIHRvIGtl
eWJvYXJkCisgICAgICAgIGV2ZW50cy4gTnVtYmVyIGtleXMgY2FuIGJlIHVzZWQgdG8gZW50ZXIg
YSBkYXksIG1vbnRoLCBvciB5ZWFyLiBUaGUKKyAgICAgICAgbGVmdCBhbmQgcmlnaHQgYXJyb3cg
a2V5cywgYXMgd2VsbCBhcyB0aGUgdGFiIGtleSwgY2FuIGJlIHVzZWQgdG8KKyAgICAgICAgdHJh
dmVyc2UgdGhlIHZhcmlvdXMgY29tcG9uZW50cy4gRmluYWxseSwgdGhlIGJhY2tzcGFjZSBhbmQg
ZGVsZXRlIGtleXMKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gY2xlYXIgdGhlIHZhbHVlIG9mIGEg
cGFydGljdWxhciBjb21wb25lbnQuCisKKyAgICAgICAgVG8gbWF0Y2ggdGhlIGJlaGF2aW9yIG9m
IE5TRGF0ZVBpY2tlciwgYSB0eXBlYWhlYWQgYnVmZmVyIHdpdGggYQorICAgICAgICB0aW1lb3V0
IGlzIHVzZWQgd2hlbiBlZGl0aW5nLiBGb3IgZXhhbXBsZSwgZW50ZXJpbmcgIjIiIGFuZCAiMyIg
aW4KKyAgICAgICAgaW1tZWRpYXRlIHN1Y2Nlc3Npb24gd2lsbCByZXN1bHQgaW4gYSB5ZWFyIG9m
ICIwMDIzIiwgYnV0IGEgb25lIHNlY29uZAorICAgICAgICBnYXAgYmV0d2VlbiB0aGUgdHdvIGNo
YXJhY3RlcnMgd2lsbCByZXN1bHQgaW4gYSB5ZWFyIG9mICIwMDAzIi4KKworICAgICAgICBGaW5h
bGx5LCB0aGlzIHBhdGNoIGVuc3VyZXMgdGhhdCAiZm9jdXMiLCAiYmx1ciIsICJpbnB1dCIsIGFu
ZCAiY2hhbmdlIgorICAgICAgICBldmVudHMgYXJlIGRpc3BhdGNoZWQgYXBwcm9wcmlhdGVseS4K
KworICAgICAgICBUZXN0czogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50
cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRzLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0
ZS1lZGl0YWJsZS1jb21wb25lbnRzLWtleWJvYXJkLWV2ZW50cy5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUt
Y29tcG9uZW50cy1tb3VzZS1ldmVudHMuaHRtbAorCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0
bWwvQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZUZvY3VzRXZl
bnQpOgorCisgICAgICAgIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHNvIHRoYXQgYW55IGF0dGVtcHQg
dG8gZm9jdXMgdGhlIGRhdGUgaW5wdXQKKyAgICAgICAgZWxlbWVudCB3aWxsIGZvY3VzIHRoZSBh
cHByb3ByaWF0ZSBlZGl0YWJsZSBjb21wb25lbnQuCisKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljIGNvbnN0
KToKKworICAgICAgICBPdmVycmlkZSB0aGlzIG1ldGhvZCBhbmQgcmV0dXJuIGZhbHNlIGlmIGVk
aXRhYmxlIGNvbXBvbmVudHMgYXJlCisgICAgICAgIHByZXNlbnQgc28gdGhhdCB0aGUgZWxlbWVu
dCBjYW4gYmUgYSBGb2N1c1Njb3BlT3duZXIuIFRoaXMgaXMgbmVlZGVkIHRvCisgICAgICAgIGJl
IGFibGUgdG8gdGFiIHRocm91Z2ggaW5kaXZpZHVhbCBjb21wb25lbnRzLgorCisgICAgICAgIChX
ZWJDb3JlOjpCYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkQmx1ckZyb21D
b250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpkaWRDaGFuZ2VWYWx1ZUZyb21Db250cm9sKToKKyAgICAgICAgKiBodG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9CYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlOjppc0tleWJvYXJkRm9jdXNhYmxlIGNvbnN0KTogRGF0ZSBpbnB1dHMgc2hvdWxk
IGJlIGtleWJvYXJkIGZvY3VzYWJsZSBvbiBhbGwgcGxhdGZvcm1zLgorICAgICAgICAqIGh0bWwv
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmll
bGRzU3RhdGUgY29uc3QpOiBTZXJpYWxpemUgdGhlIHN0YXRlIG9mIHRoZSBlZGl0IGNvbnRyb2wg
aW50byBhIHZhbGlkIEhUTUwgZGF0ZSBzdHJpbmcuCisgICAgICAgICogaHRtbC9EYXRlSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlVGltZUZpZWxkc1N0YXRlLmg6IEFkZGVkLgorCisg
ICAgICAgIERhdGVUaW1lRmllbGRzU3RhdGUgaXMgdXNlZCB0byBzZXJpYWxpemUgYW5kIGRlc2Vy
aWFsaXplIHRoZSBjb250ZW50cyBvZgorICAgICAgICBEYXRlVGltZUVkaXRFbGVtZW50LiBJbiB0
aGUgZnV0dXJlLCB0aGlzIGNsYXNzIHdpbGwgYWxzbyBiZSB1c2VkIHRvCisgICAgICAgIHNhdmUg
Zm9ybSBzdGF0ZSBvbiBmb3J3YXJkL2JhY2t3YXJkIG5hdmlnYXRpb24uCisKKyAgICAgICAgKiBo
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVMb2NhbElucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZSBjb25zdCk6CisgICAg
ICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Nb250
aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6Zm9ybWF0
RGF0ZVRpbWVGaWVsZHNTdGF0ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlw
ZS5oOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUaW1lSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlIGNvbnN0KToKKyAgICAg
ICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vla0lucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVs
ZHNTdGF0ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4T2YgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Ymx1ckZyb21GaWVsZCk6CisKKyAgICAgICAgSWYg
YSBmaWVsZCBpcyBibHVycmVkLCBlbnN1cmUgdGhlIG93bmVyIGlzIG5vdGlmaWVkIGlmIG5vbmUg
b2YgdGhlCisgICAgICAgIG90aGVyIGZpZWxkcyBhcmUgZm9jdXNlZC4KKworICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6ZmllbGRWYWx1ZUNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRGb2N1c2FibGVGaWVsZCk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c0J5T3duZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZCk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1c09uUHJldmlvdXNG
aWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojp2YWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZVRp
bWVGaWVsZHNTdGF0ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0RXZlbnRI
YW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVtZW50OjpkZWZhdWx0
S2V5Ym9hcmRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVGaWVsZEVs
ZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmll
bGRFbGVtZW50OjpkaWRCbHVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRmllbGRFbGVt
ZW50Ojp1cGRhdGVWaXNpYmxlVmFsdWUpOiBBZGQgRXZlbnRCZWhhdmlvciBwYXJhbWV0ZXIgdG8g
ZGlzcGF0Y2ggImlucHV0IiBhbmQgImNoYW5nZSIgZXZlbnRzIGFjY29yZGluZ2x5LgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9z
aGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRGF5RmllbGRFbGVtZW50OjpEYXRlVGltZURheUZpZWxkRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZURheUZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OkRhdGVU
aW1lTW9udGhGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNb250aEZp
ZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZp
ZWxkc1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6
RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lWWVh
ckZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaDoKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpSYW5nZTo6Y2xhbXBWYWx1ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJhbmdlOjppc0luUmFu
Z2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRp
bWVOdW1lcmljRmllbGRFbGVtZW50Ojpmb3JtYXRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdl
cik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmhhbmRs
ZUtleWJvYXJkRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50OjpkaWRCbHVyKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudDo6UmFuZ2U6OlJhbmdlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVDb21wb25lbnRzOjpwYXJzZVllYXIpOgorICAgICAgICAoV2ViQ29yZTo6d2l0aGluSFRNTERh
dGVMaW1pdHMpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUNvbXBvbmVudHM6OnBhcnNlV2Vlayk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlQ29tcG9uZW50czo6c2V0TW9udGhzU2luY2VFcG9jaCk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlQ29tcG9uZW50czo6c2V0TWlsbGlzZWNvbmRzU2luY2VF
cG9jaEZvcldlZWspOgorICAgICAgICAqIHBsYXRmb3JtL0RhdGVDb21wb25lbnRzLmg6IFBhcnRp
YWwgcmV2ZXJ0IG9mIGNoYW5nZXMgbWFkZSBpbiByMjY1MTI2LCB0byBlbnN1cmUgdGhlIG1pbmlt
dW1ZZWFyIGFuZCBtYXhpbXVtWWVhciBhcmUgYWNjZXNzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVDb21wb25lbnRzOjptaW5pbXVtWWVhcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlQ29t
cG9uZW50czo6bWF4aW11bVllYXIpOgorCiAyMDIwLTA4LTMxICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGltaXplIHRoZSBpbXBsZW1lbnRhdGlv
biBvZiBUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cm90YXRlKGRvdWJsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NGM3MWZlMzg4
Mzg1MzUwNDdhYzI0MTFlNjdjZjJmNTkzMTYxYWU0Li5mOTc1N2VmZTQ4ZTA5MjY1MWEyNGEwODAw
MmVkZDk0NmJhYjU5YTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDc5LDYgKzUwNzksNyBAQAogCQlFNEY5RUVGMzE1NkRB
MDA3MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEY5RUVGMTE1NkQ4NEM0MDBEMjNFN0UgLyogU3R5
bGVTaGVldENvbnRlbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTUxNjY5OTEyMEZGOTkxODAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0Ay
eC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
MTY2OThGMjBGRjk5MTYwMDlEMkMyNyAvKiBMaXN0QnV0dG9uQXJyb3dAMngucG5nICovOyB9Owog
CQlFNTE3NjcwMzIwQjg4QzE0MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MTc2
NzAyMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1MUQ2QTFG
MjRFMUUyNTUwMDg5MUNGQSAvKiBEYXRlVGltZUZpZWxkc1N0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTFENkExRDI0RTFFMjU1MDA4OTFDRkEg
LyogRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oICovOyB9OwogCQlFNTJDRjU0RDIwQTI2OEFDMDBEQURB
MjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyQ0Y1NEMyMEEyNjhBQzAwREFEQTI3IC8qIERhdGFM
aXN0U3VnZ2VzdGlvbnNDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlFNTJDRjU0RjIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdn
ZXN0aW9uUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNTJDRjU0RTIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2Vy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTUy
RUZERjQyMTEyODc1QTAwQUQyODJBIC8qIElucHV0TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUyRUZERjIyMTEyODc1QTAwQUQyODJBIC8qIElu
cHV0TW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0xNTk1NSw2ICsxNTk1Niw3IEBACiAJCUU1MTY2OThGMjBGRjk5MTYwMDlEMkMyNyAvKiBM
aXN0QnV0dG9uQXJyb3dAMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIkxpc3RCdXR0b25BcnJvd0AyeC5wbmci
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTE3NjcwMjIwQjg4QzE0MDBENDExNjcg
LyogRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUxp
c3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTUxQTgxREUxNzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQZXJmb3JtYW5jZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU1MUQ2QTFEMjRFMUUyNTUwMDg5MUNGQSAvKiBEYXRlVGltZUZp
ZWxkc1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVUaW1lRmllbGRzU3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUyNkFGM0UxNzI3RjhGMjAwRTQxNzgxIC8qIFBlcmZv
cm1hbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcmZvcm1h
bmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUyQ0Y1NEMyMEEyNjhBQzAw
REFEQTI3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbnNDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0
YUxpc3RTdWdnZXN0aW9uc0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NTJDRjU0RTIwQTM1QTI4MDBEQURBMjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uUGlja2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERhdGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjI2MDgsNiArMjI2MTAsNyBAQAogCQkJCUU1MTc2NzAyMjBCODhDMTQw
MEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oICovLAogCQkJCUY1NUIz
RDgxMTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q4
MjEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5oICovLAorCQkJCUU1MUQ2QTFEMjRF
MUUyNTUwMDg5MUNGQSAvKiBEYXRlVGltZUZpZWxkc1N0YXRlLmggKi8sCiAJCQkJRjU1QjNEODUx
MjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1
NUIzRDg2MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggKi8sCiAJ
CQkJODM1RDU0QzExRjRERTUzNDAwRTYwNjcxIC8qIERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5j
cHAgKi8sCkBAIC0zMDg0NCw2ICszMDg0Nyw3IEBACiAJCQkJRTVGMDZBRjcyNEQ0QkI1NjAwQkJD
NEY4IC8qIERhdGVUaW1lRWRpdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1RjA2QUU3
MjRENDg0N0IwMEJCQzRGOCAvKiBEYXRlVGltZUZpZWxkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTVGMDZBRjMyNEQ0QUFFNDAwQkJDNEY4IC8qIERhdGVUaW1lRmllbGRFbGVtZW50cy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRTUxRDZBMUYyNEUxRTI1NTAwODkxQ0ZBIC8qIERhdGVUaW1l
RmllbGRzU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1M0VCNjM3MTU5QzU3MDQwMDAwMUJC
NyAvKiBEYXRlVGltZUZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQkExMjUxRjEy
RDAwM0VGMjY5IC8qIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU1RjA2QUVCMjRENDlCRjcwMEJCQzRGOCAvKiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCAyYTg0NDIwNTE3NjEx
YjllNWNkOGM1YzI2Zjc2MWY2MmU1NTM0NTk3Li4xOTUzN2I5ODY2NGVlMGQ0NTE2MmJjOGI3MjFl
M2VhNjgyZDAyOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJEYXRlVGltZUZvcm1hdC5oIgorI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTI0OCw2ICsyNDksMjggQEAgdm9pZCBCYXNl
Q2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlS2V5dXBFdmVudChLZXlib2Fy
ZEV2ZW50JiBldmVudCkKICAgICBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6aGFuZGxl
S2V5dXBFdmVudCgqdGhpcywgZXZlbnQpOwogfQogCit2b2lkIEJhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlOjpoYW5kbGVGb2N1c0V2ZW50KE5vZGUqIG9sZEZvY3VzZWROb2RlLCBG
b2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1l
bnQpIHsKKyAgICAgICAgSW5wdXRUeXBlOjpoYW5kbGVGb2N1c0V2ZW50KG9sZEZvY3VzZWROb2Rl
LCBkaXJlY3Rpb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gSWYgdGhlIGVs
ZW1lbnQgY29udGFpbnMgZWRpdGFibGUgY29tcG9uZW50cywgdGhlIGVsZW1lbnQgaXRzZWxmIHNo
b3VsZCBub3QKKyAgICAvLyBiZSBmb2N1c2VkLiBJbnN0ZWFkLCBvbmUgb2YgaXQncyBjaGlsZHJl
biBzaG91bGQgcmVjZWl2ZSBmb2N1cy4KKworICAgIGlmIChkaXJlY3Rpb24gPT0gRm9jdXNEaXJl
Y3Rpb25CYWNrd2FyZCkgeworICAgICAgICAvLyBJZiB0aGUgZWxlbWVudCByZWNlaXZlZCBmb2N1
cyB3aGVuIGdvaW5nIGJhY2t3YXJkcywgYWR2YW5jZSB0aGUgZm9jdXMgb25lIG1vcmUgdGltZQor
ICAgICAgICAvLyBzbyB0aGF0IHRoaXMgZWxlbWVudCBubyBsb25nZXIgaGFzIGZvY3VzLiBJbiB0
aGlzIGNhc2UsIG9uZSBvZiB0aGUgY2hpbGRyZW4gc2hvdWxkCisgICAgICAgIC8vIG5vdCBiZSBm
b2N1c2VkIGFzIHRoZSBlbGVtZW50IGlzIGxvc2luZyBmb2N1cyBlbnRpcmVseS4KKyAgICAgICAg
aWYgKGF1dG8qIHBhZ2UgPSBlbGVtZW50KCktPmRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICAg
ICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuYWR2YW5jZUZvY3VzKGRpcmVjdGlvbiwgMCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgLy8gSWYgdGhlIGVsZW1lbnQgcmVjZWl2ZWQgZm9jdXMgaW4g
YW55IG90aGVyIGRpcmVjdGlvbiwgdHJhbnNmZXIgZm9jdXMgdG8gdGhlIGZpcnN0IGZvY3VzYWJs
ZSBjaGlsZC4KKyAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5mb2N1c0J5T3duZXIoKTsK
KyAgICB9Cit9CisKIGJvb2wgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKICAgICBCYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbihzZW5kTW91c2VFdmVudHMpOwpAQCAtMjYxLDYg
KzI4NCwxMyBAQCBib29sIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjppc01v
dXNlRm9jdXNhYmxlKCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudCgpLT5pc1RleHRGb3JtQ29u
dHJvbEZvY3VzYWJsZSgpOwogfQogCitib29sIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QKK3sKKyAgICBpZiAobV9kYXRlVGlt
ZUVkaXRFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIElucHV0VHlw
ZTo6aGFzQ3VzdG9tRm9jdXNMb2dpYygpOworfQorCiB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlOjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gdmFsdWVBdHRyKSB7CkBAIC0yNzIsMTAgKzMwMiwxNSBA
QCB2b2lkIEJhc2VDaG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlOjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUpOwogfQogCi1TdHJpbmcgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OnZhbHVlRm9yRWRpdENvbnRyb2woKSBjb25zdAordm9pZCBCYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlkQmx1ckZyb21Db250cm9sKCkKIHsKLSAg
ICBBU1NFUlQoZWxlbWVudCgpKTsKLSAgICByZXR1cm4gZWxlbWVudCgpLT52YWx1ZSgpOworICAg
IGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7Cit9CisKK3ZvaWQgQmFzZUNob29zZXJPbmx5RGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmRpZENoYW5nZVZhbHVlRnJvbUNvbnRyb2woKQoreworICAgIFN0cmlu
ZyB2YWx1ZSA9IHNhbml0aXplVmFsdWUobV9kYXRlVGltZUVkaXRFbGVtZW50LT52YWx1ZSgpKTsK
KyAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZSAhPSBl
bGVtZW50KCktPnZhbHVlKCksIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCk7CiB9CiAKIEF0
b21TdHJpbmcgQmFzZUNob29zZXJPbmx5RGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmxvY2FsZUlkZW50
aWZpZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nl
ck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hv
b3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGIzMTkzMTkxYjQzNmNiYWFjMGUy
YTkzNDQ1MmRkY2ZjZGI1ZGQyYjcuLjlmZDQ0YmY4M2IwMThhY2ZlOGU5NzgzNWE4OTRjNDZlMTE4
ZTViMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNob29zZXJPbmx5RGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2Vy
T25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTYzLDcgKzYzLDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGNsb3NlRGF0ZVRpbWVDaG9vc2VyKCk7CiAKICAgICAvLyBEYXRlVGltZUVkaXRFbGVt
ZW50OjpFZGl0Q29udHJvbE93bmVyIGZ1bmN0aW9uczoKLSAgICBTdHJpbmcgdmFsdWVGb3JFZGl0
Q29udHJvbCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgZGlkQmx1ckZyb21Db250cm9sKCkgZmlu
YWw7CisgICAgdm9pZCBkaWRDaGFuZ2VWYWx1ZUZyb21Db250cm9sKCkgZmluYWw7CiAgICAgQXRv
bVN0cmluZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAKICAgICAvLyBJbnB1dFR5
cGUgZnVuY3Rpb25zOgpAQCAtNzYsOSArNzcsMTEgQEAgcHJpdmF0ZToKICAgICBTaG91bGRDYWxs
QmFzZUV2ZW50SGFuZGxlciBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYpIG92ZXJy
aWRlOwogICAgIHZvaWQgaGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50Jikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBoYW5kbGVLZXl1cEV2ZW50KEtleWJvYXJkRXZlbnQmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIEZvY3VzRGly
ZWN0aW9uKSBmaW5hbDsKICAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2
ZW50cykgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgYm9vbCBpc1ByZXNlbnRpbmdBdHRhY2hlZFZpZXcoKSBjb25zdCBmaW5hbDsKKyAg
ICBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgLy8gRGF0
ZVRpbWVDaG9vc2VyQ2xpZW50IGZ1bmN0aW9uczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCAzMGY1ZGZjYjBiMDI2NmM0ZGVhZjll
OGMxNDRmYjU2MTBlZWEwZWNkLi5jMzJhZTM2MzVkZjc3OTQ0MDY1YTY3NzUxODkxNjA2MzcxYmQ4
YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwCkBAIC0xODQsMTMgKzE4NCwxMSBAQCBib29sIEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZTo6dmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0CiAgICAgcmV0dXJuIGVs
ZW1lbnQoKS0+aXNSZXF1aXJlZCgpICYmIHZhbHVlLmlzRW1wdHkoKTsKIH0KIAotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiBib29sIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNLZXlib2Fy
ZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QKIHsKICAgICBBU1NFUlQoZWxlbWVudCgp
KTsKICAgICByZXR1cm4gIWVsZW1lbnQoKS0+aXNSZWFkT25seSgpICYmIGVsZW1lbnQoKS0+aXNU
ZXh0Rm9ybUNvbnRyb2xGb2N1c2FibGUoKTsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oCmluZGV4IGZkYTczODcxNWU4OGJjZTUxMThkMjZlMzM4NTQ2YTFkYTFlMTVkMjMu
LjFmY2U1MDk3OGZiZTczNWM3ZDhhMzFmYzFjZjQyYTYyMTk1OWExNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaApAQCAtNTAsOSArNTAsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgU3RyaW5nIHNlcmlhbGl6ZVdpdGhDb21wb25lbnRzKGNvbnN0IERh
dGVDb21wb25lbnRzJikgY29uc3Q7CiAgICAgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikg
b3ZlcnJpZGU7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBib29sIGlzS2V5Ym9hcmRG
b2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0IG92ZXJyaWRlOwotI2VuZGlmCiAKICAgICB2
aXJ0dWFsIE9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29u
c3QgU3RyaW5nVmlldyYpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlw
ZS5jcHAKaW5kZXggOGUzOTAwZmQ3YzAwNDgzNjYxODE4MjFmMDE3N2NjYmQwNGQ2ZjU0MS4uNjUw
MDQ4MGYwNjkxM2I0OWE3M2I0Y2NlODU3ZjFkNTExZTZkOGQ4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVJbnB1dFR5cGUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRGF0ZUlucHV0
VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGlt
ZUZpZWxkc1N0YXRlLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBAIC05Myw2ICs5NCwx
NCBAQCBib29sIERhdGVJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1l
Rm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlcwogICAgIHJldHVybiByZXN1bHRzLmNvbnRhaW5z
QWxsKHsgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzWWVhciwgRGF0ZVRpbWVG
b3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTW9udGgsIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlv
blJlc3VsdHM6Okhhc0RheSB9KTsKIH0KIAorU3RyaW5nIERhdGVJbnB1dFR5cGU6OmZvcm1hdERh
dGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgc3RhdGUpIGNvbnN0
Cit7CisgICAgaWYgKCFzdGF0ZS5kYXlPZk1vbnRoIHx8ICFzdGF0ZS5tb250aCB8fCAhc3RhdGUu
eWVhcikKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisKKyAgICByZXR1cm4gbWFrZVN0
cmluZyhwYWQoJzAnLCA0LCAqc3RhdGUueWVhciksICctJywgcGFkKCcwJywgMiwgKnN0YXRlLm1v
bnRoKSwgJy0nLCBwYWQoJzAnLCAyLCAqc3RhdGUuZGF5T2ZNb250aCkpOworfQorCiB2b2lkIERh
dGVJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpM
YXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzKSBjb25zdAogewogICAgIGxheW91dFBh
cmFtZXRlcnMuZGF0ZVRpbWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsZS5kYXRlRm9y
bWF0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4IGU1MGRlMDRhZThkMjdl
YmQ1MmZiNzYwM2JkOGMyNWRhZmYyYWI4ZDUuLmY1MjlhNjRlYmNiMTc2ZDE2NGFiNjQ2ODc3N2Q0
MjlhNTE0YmViZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBAIC00OSw2ICs0
OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0RhdGVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgYm9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRp
b25SZXN1bHRzPikgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGZvcm1hdERhdGVUaW1lRmllbGRz
U3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQg
c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRl
cnMmKSBjb25zdCBmaW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUZpZWxk
c1N0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRmODU0OGFkZmYzOWQyNzA1NTliMWNlMzE5MDYyMjk0YWRh
YzI0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVGaWVs
ZHNTdGF0ZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCisKKyNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRGF0ZVRpbWVGaWVsZHNT
dGF0ZSB7CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IHllYXI7CisgICAgT3B0aW9uYWw8dW5zaWdu
ZWQ+IG1vbnRoOworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBkYXlPZk1vbnRoOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5Q
VVRfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmNwcAppbmRleCA0ZTdhZDZjMmZmY2Q3MDA0N2U0ZmU3MmRjYWQyYjFlYjlkMWYxMTgwLi5jY2Iy
YzMyNDQ2MzViNGU5NjIwM2E0ZWYyYmRmMmNhMzI2MWQ2ODIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTEwMSw2ICsxMDEsMTEgQEAg
Ym9vbCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjppc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRl
VGltZUZvcm1hdFZhbGlkYXRpb25SZXMKICAgICByZXR1cm4gcmVzdWx0cy5jb250YWluc0FsbCh7
IERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc1llYXIsIERhdGVUaW1lRm9ybWF0
VmFsaWRhdGlvblJlc3VsdHM6Okhhc01vbnRoLCBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1
bHRzOjpIYXNEYXksIERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc0hvdXIsIERh
dGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM6Okhhc01pbnV0ZSB9KTsKIH0KIAorU3RyaW5n
IERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
Cit9CisKIHZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJz
KERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAppbmRleCA5MzYyMGU0
Zjc2ZWE0MDA3ZGNjZjY3NGZmMTVlMTZhNjgwNTA2MWIwLi5lNjM0NzQyNjNmZjgxMGU3YTNkMjVm
ZjJiYWUxM2EwOTI1NGNlZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9j
YWxJbnB1dFR5cGUuaApAQCAtNTEsNiArNTEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNEYXRl
VGltZUxvY2FsRmllbGQoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgaXNWYWxpZEZvcm1hdChP
cHRpb25TZXQ8RGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0cz4pIGNvbnN0IGZpbmFsOwor
ICAgIFN0cmluZyBmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRz
U3RhdGUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRl
VGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJikgY29uc3QgZmluYWw7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCmluZGV4IGMxZDA4ZjIzZDNiODViYWUw
YjI4NDdhYmMwMDE3NjBhM2FkNWRiMTUuLjVlZjRjODlkMDA1MTRiMTE4MTEzNmM4ZGFmN2IwMDAz
MjJjZWQ4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCkBAIC0xMzks
NiArMTM5LDExIEBAIGJvb2wgTW9udGhJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0
PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlCiAgICAgcmV0dXJuIHJlc3VsdHMu
Y29udGFpbnNBbGwoeyBEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNZZWFyLCBE
YXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzOjpIYXNNb250aCB9KTsKIH0KIAorU3RyaW5n
IE1vbnRoSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1l
RmllbGRzU3RhdGUmKSBjb25zdAoreworICAgIHJldHVybiBlbXB0eVN0cmluZygpOworfQorCiB2
b2lkIE1vbnRoSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxl
bWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRo
SW5wdXRUeXBlLmgKaW5kZXggNDhmMDc4ZTkyYjlmZTI0N2IyMjdiZDc3NzI5NmQ5YWMyYjgwNGFi
OS4uZjQ4OWI3MDA0NmNhZjdiODcxNDhhN2JlYjM1ZWJkMTRjOGIxMmQwMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNTQsNiArNTQsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBp
c1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1bHRzPikg
Y29uc3QgZmluYWw7CisgICAgU3RyaW5nIGZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0dXBMYXlvdXRQ
YXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdCBm
aW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDRkMGE3
NzUxYWQxOWQxNTAxMmVjOWNjMDg2Y2E0NzIyMzdkZDU1MDIuLjJmZTY1NTUwYzAyMzY0MjJiZjQ1
MjEyNGNjODY1NzQ1YzViZWRkYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNw
cApAQCAtMTE1LDYgKzExNSwxMSBAQCBib29sIFRpbWVJbnB1dFR5cGU6OmlzVmFsaWRGb3JtYXQo
T3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlcwogICAgIHJldHVy
biByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6
SGFzSG91ciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzTWludXRlIH0pOwog
fQogCitTdHJpbmcgVGltZUlucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25z
dCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QKK3sKKyAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKK30KKwogdm9pZCBUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRp
bWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNvbnN0CiB7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IDkyMDQzYWVmOTc4MTFhYWY4ZWQzYjA0ZTU5Y2RjOWFk
NGUyMzg1NzQuLmFjODI0ZmQ1Yjk3YmIzZDBiMTQ2ZDYzZTBiNTQ2NDU2MzIzZjVkMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC01MSw2ICs1MSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7CiAKICAgICBi
b29sIGlzVmFsaWRGb3JtYXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3Vs
dHM+KSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShj
b25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXR1cExh
eW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYpIGNv
bnN0IGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKaW5kZXgg
YjM4NTRkODg0OTdlOTllZjI5ZTRhOGZmOWVjZjU5MzViN2RlMWFlYi4uYmRjOTJhMTQyNjNhODg1
OTY5ODc1ZGEzZjBjMzI5NmVhZmUyYTYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9XZWVrSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5
cGUuY3BwCkBAIC05Miw2ICs5MiwxMSBAQCBib29sIFdlZWtJbnB1dFR5cGU6OmlzVmFsaWRGb3Jt
YXQoT3B0aW9uU2V0PERhdGVUaW1lRm9ybWF0VmFsaWRhdGlvblJlc3VsdHM+IHJlcwogICAgIHJl
dHVybiByZXN1bHRzLmNvbnRhaW5zQWxsKHsgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0
czo6SGFzWWVhciwgRGF0ZVRpbWVGb3JtYXRWYWxpZGF0aW9uUmVzdWx0czo6SGFzV2VlayB9KTsK
IH0KIAorU3RyaW5nIFdlZWtJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29u
c3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7Cit9CisKIHZvaWQgV2Vla0lucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVU
aW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBjb25zdAogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1dlZWtJbnB1dFR5cGUuaAppbmRleCAxY2UwODc2NDc0ZjM2YTQzZDYyOTVlZWY4MDRlODU2
MGYxOTZlMTJjLi4wMGEzMWE1OGY4NTBkZDg2OWFkZWE2NTY4ZGQ2MzQyYmRhMTJhZjYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApAQCAtNTAsNiArNTAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgaGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpIG92ZXJyaWRlOwogCiAgICAg
Ym9vbCBpc1ZhbGlkRm9ybWF0KE9wdGlvblNldDxEYXRlVGltZUZvcm1hdFZhbGlkYXRpb25SZXN1
bHRzPikgY29uc3QgZmluYWw7CisgICAgU3RyaW5nIGZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUo
Y29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0dXBM
YXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmKSBj
b25zdCBmaW5hbDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0
ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXggN2UxZWQ1N2FjYjYyZWM2N2I2NjEyNzdkMTNmNjQ5
MTkxMTlhNDQxZS4uY2I1MTQ0NmE5NjVmM2Y2YTQyZmJmY2I5NTA4ODY3NWJjYTg0NjAxMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5j
bHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgiCisjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZHNT
dGF0ZS5oIgogI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMTU0LDYg
KzE1NSwxMyBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmFkZEZpZWxkKFJlZjxEYXRlVGlt
ZUZpZWxkRWxlbWVudD4gZmllbGQpCiAgICAgZmllbGRzV3JhcHBlckVsZW1lbnQoKS5hcHBlbmRD
aGlsZChmaWVsZCk7CiB9CiAKK3NpemVfdCBEYXRlVGltZUVkaXRFbGVtZW50OjpmaWVsZEluZGV4
T2YoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmIGZpZWxkVG9GaW5kKSBjb25zdAoreworICAg
IHJldHVybiBtX2ZpZWxkcy5maW5kTWF0Y2hpbmcoWyZdIChhdXRvJiBmaWVsZCkgeworICAgICAg
ICByZXR1cm4gZmllbGQucHRyKCkgPT0gJmZpZWxkVG9GaW5kOworICAgIH0pOworfQorCiBSZWY8
RGF0ZVRpbWVFZGl0RWxlbWVudD4gRGF0ZVRpbWVFZGl0RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgRWRpdENvbnRyb2xPd25lciYgZWRpdENvbnRyb2xPd25lcikKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZUVkaXRFbGVtZW50KGRvY3VtZW50LCBlZGl0Q29u
dHJvbE93bmVyKSk7CkBAIC0xODcsNiArMTk1LDY3IEBAIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6bGF5b3V0KGNvbnN0IExheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMpCiAgICAg
fQogfQogCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmJsdXJGcm9tRmllbGQoUmVmUHRyPEVs
ZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpCit7CisgICAgYm9vbCBub3RpZnlPd25lciA9IG5v
dEZvdW5kID09IG1fZmllbGRzLmZpbmRNYXRjaGluZyhbJl0gKGF1dG8mIGZpZWxkKSB7CisgICAg
ICAgIHJldHVybiBmaWVsZC5wdHIoKSA9PSBuZXdGb2N1c2VkRWxlbWVudC5nZXQoKTsKKyAgICB9
KTsKKworICAgIEhUTUxFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChXVEZNb3ZlKG5ld0ZvY3Vz
ZWRFbGVtZW50KSk7CisKKyAgICBpZiAobV9lZGl0Q29udHJvbE93bmVyICYmIG5vdGlmeU93bmVy
KQorICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmRpZEJsdXJGcm9tQ29udHJvbCgpOworfQor
Cit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZpZWxkVmFsdWVDaGFuZ2VkKCkKK3sKKyAgICBp
ZiAobV9lZGl0Q29udHJvbE93bmVyKQorICAgICAgICBtX2VkaXRDb250cm9sT3duZXItPmRpZENo
YW5nZVZhbHVlRnJvbUNvbnRyb2woKTsKK30KKworYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50Ojpm
b2N1c09uTmV4dEZvY3VzYWJsZUZpZWxkKHNpemVfdCBzdGFydEluZGV4KQoreworICAgIGZvciAo
c2l6ZV90IGkgPSBzdGFydEluZGV4OyBpIDwgbV9maWVsZHMuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgaWYgKG1fZmllbGRzW2ldLT5pc0ZvY3VzYWJsZSgpKSB7CisgICAgICAgICAgICBtX2ZpZWxk
c1tpXS0+Zm9jdXMoKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpmb2N1
c0J5T3duZXIoKQoreworICAgIGZvY3VzT25OZXh0Rm9jdXNhYmxlRmllbGQoMCk7Cit9CisKK2Jv
b2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6Zm9jdXNPbk5leHRGaWVsZChjb25zdCBEYXRlVGltZUZp
ZWxkRWxlbWVudCYgZmllbGQpCit7CisgICAgYXV0byBzdGFydEZpZWxkSW5kZXggPSBmaWVsZElu
ZGV4T2YoZmllbGQpOworICAgIGlmIChzdGFydEZpZWxkSW5kZXggPT0gbm90Rm91bmQpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBmb2N1c09uTmV4dEZvY3VzYWJsZUZpZWxk
KHN0YXJ0RmllbGRJbmRleCArIDEpOworfQorCitib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmZv
Y3VzT25QcmV2aW91c0ZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JiBmaWVsZCkKK3sK
KyAgICBhdXRvIHN0YXJ0RmllbGRJbmRleCA9IGZpZWxkSW5kZXhPZihmaWVsZCk7CisgICAgaWYg
KHN0YXJ0RmllbGRJbmRleCA9PSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgYXV0byBmaWVsZEluZGV4ID0gc3RhcnRGaWVsZEluZGV4OworICAgIHdoaWxlIChmaWVsZElu
ZGV4ID4gMCkgeworICAgICAgICAtLWZpZWxkSW5kZXg7CisgICAgICAgIGlmIChtX2ZpZWxkc1tm
aWVsZEluZGV4XS0+aXNGb2N1c2FibGUoKSkgeworICAgICAgICAgICAgbV9maWVsZHNbZmllbGRJ
bmRleF0tPmZvY3VzKCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogQXRvbVN0cmluZyBEYXRlVGltZUVkaXRFbGVt
ZW50Ojpsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9lZGl0Q29udHJv
bE93bmVyID8gbV9lZGl0Q29udHJvbE93bmVyLT5sb2NhbGVJZGVudGlmaWVyKCkgOiBudWxsQXRv
bSgpOwpAQCAtMjEzLDcgKzI4MiwxNSBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldEVt
cHR5VmFsdWUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycwogCiBTdHJp
bmcgRGF0ZVRpbWVFZGl0RWxlbWVudDo6dmFsdWUoKSBjb25zdAogewotICAgIHJldHVybiBtX2Vk
aXRDb250cm9sT3duZXIgPyBtX2VkaXRDb250cm9sT3duZXItPnZhbHVlRm9yRWRpdENvbnRyb2wo
KSA6IGVtcHR5U3RyaW5nKCk7CisgICAgcmV0dXJuIG1fZWRpdENvbnRyb2xPd25lciA/IG1fZWRp
dENvbnRyb2xPd25lci0+Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZSh2YWx1ZUFzRGF0ZVRpbWVG
aWVsZHNTdGF0ZSgpKSA6IGVtcHR5U3RyaW5nKCk7Cit9CisKK0RhdGVUaW1lRmllbGRzU3RhdGUg
RGF0ZVRpbWVFZGl0RWxlbWVudDo6dmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoKSBjb25zdAor
eworICAgIERhdGVUaW1lRmllbGRzU3RhdGUgZGF0ZVRpbWVGaWVsZHNTdGF0ZTsKKyAgICBmb3Ig
KGF1dG8mIGZpZWxkIDogbV9maWVsZHMpCisgICAgICAgIGZpZWxkLT5wb3B1bGF0ZURhdGVUaW1l
RmllbGRzU3RhdGUoZGF0ZVRpbWVGaWVsZHNTdGF0ZSk7CisgICAgcmV0dXJuIGRhdGVUaW1lRmll
bGRzU3RhdGU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAppbmRleCBmNGI1YmIwMWY1NDMz
OTZjN2I2NmZkYzE3NTJlYTU3YWJiNmZmYjI5Li40MjAzODZjNTJmODIxMGZhODVlNDI3OTE3ZWNj
NTJiY2Q1ZDIwNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5oCkBAIC00Myw3ICs0Myw5IEBAIHB1YmxpYzoKICAgICBjbGFzcyBFZGl0
Q29udHJvbE93bmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEVkaXRDb250cm9sT3duZXI+IHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfkVkaXRDb250cm9sT3duZXIoKTsKLSAgICAg
ICAgdmlydHVhbCBTdHJpbmcgdmFsdWVGb3JFZGl0Q29udHJvbCgpIGNvbnN0ID0gMDsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZEJsdXJGcm9tQ29udHJvbCgpID0gMDsKKyAgICAgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZVZhbHVlRnJvbUNvbnRyb2woKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
U3RyaW5nIGZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0
ZSYpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBBdG9tU3RyaW5nIGxvY2FsZUlkZW50aWZp
ZXIoKSBjb25zdCA9IDA7CiAgICAgfTsKIApAQCAtNjMsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+RGF0ZVRpbWVFZGl0RWxlbWVudCgpOwogICAgIHZvaWQgYWRkRmllbGQoUmVmPERh
dGVUaW1lRmllbGRFbGVtZW50Pik7CiAgICAgRWxlbWVudCYgZmllbGRzV3JhcHBlckVsZW1lbnQo
KSBjb25zdDsKKyAgICB2b2lkIGZvY3VzQnlPd25lcigpOwogICAgIHZvaWQgcmVzZXRGaWVsZHMo
KTsKICAgICB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYpOwogICAg
IHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVD
b21wb25lbnRzJik7CkBAIC04Miw5ICs4NSwxNyBAQCBwcml2YXRlOgogCiAgICAgRGF0ZVRpbWVF
ZGl0RWxlbWVudChEb2N1bWVudCYsIEVkaXRDb250cm9sT3duZXImKTsKIAorICAgIHNpemVfdCBm
aWVsZEluZGV4T2YoY29uc3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSBjb25zdDsKICAgICB2b2lk
IGxheW91dChjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJik7CisgICAgRGF0ZVRpbWVGaWVsZHNTdGF0
ZSB2YWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSgpIGNvbnN0OworCisgICAgYm9vbCBmb2N1c09u
TmV4dEZvY3VzYWJsZUZpZWxkKHNpemVfdCBzdGFydEluZGV4KTsKIAogICAgIC8vIERhdGVUaW1l
RmllbGRFbGVtZW50OjpGaWVsZE93bmVyIGZ1bmN0aW9uczoKKyAgICB2b2lkIGJsdXJGcm9tRmll
bGQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpIGZpbmFsOworICAgIHZvaWQg
ZmllbGRWYWx1ZUNoYW5nZWQoKSBmaW5hbDsKKyAgICBib29sIGZvY3VzT25OZXh0RmllbGQoY29u
c3QgRGF0ZVRpbWVGaWVsZEVsZW1lbnQmKSBmaW5hbDsKKyAgICBib29sIGZvY3VzT25QcmV2aW91
c0ZpZWxkKGNvbnN0IERhdGVUaW1lRmllbGRFbGVtZW50JikgZmluYWw7CiAgICAgQXRvbVN0cmlu
ZyBsb2NhbGVJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAKICAgICBWZWN0b3I8UmVmPERhdGVU
aW1lRmllbGRFbGVtZW50PiwgbWF4aW11bU51bWJlck9mRmllbGRzPiBtX2ZpZWxkczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmNwcApp
bmRleCAwZGY1MmEwZmFkZDYyNWI2YjgzNjA5YzkxNmY4YzY3MjkxZDg0NjczLi5mMWRiMWNlYjFi
ZjgyYTBmYTgyZjY0ODIyYjY5Mzg4NzhkMjFhYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuY3BwCkBAIC0zMCw3ICszMCw5IEBA
CiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCiAKICNpbmNsdWRlICJEYXRl
Q29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3Ry
aW5ncy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgpA
QCAtNTUsNiArNTcsNjAgQEAgdm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6aW5pdGlhbGl6ZShj
b25zdCBBdG9tU3RyaW5nJiBwc2V1ZG8pCiAgICAgc2V0UHNldWRvKHBzZXVkbyk7CiB9CiAKK3Zv
aWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50
KQoreworICAgIGlmIChpczxLZXlib2FyZEV2ZW50PihldmVudCkpIHsKKyAgICAgICAgYXV0byYg
a2V5Ym9hcmRFdmVudCA9IGRvd25jYXN0PEtleWJvYXJkRXZlbnQ+KGV2ZW50KTsKKyAgICAgICAg
aGFuZGxlS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50KTsKKyAgICAgICAgaWYgKGtleWJvYXJk
RXZlbnQuZGVmYXVsdEhhbmRsZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZGVm
YXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKGtleWJvYXJkRXZlbnQpOworICAgICAgICBpZiAoa2V5
Ym9hcmRFdmVudC5kZWZhdWx0SGFuZGxlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIEhUTUxEaXZFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKK30KKwor
dm9pZCBEYXRlVGltZUZpZWxkRWxlbWVudDo6ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtl
eWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQpCit7CisgICAgaWYgKGtleWJvYXJkRXZlbnQudHlw
ZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8ga2V5ID0ga2V5Ym9hcmRFdmVudC5rZXlJZGVudGlmaWVyKCk7CisKKyAgICBpZiAoa2V5
ID09ICJMZWZ0IiAmJiBtX2ZpZWxkT3duZXIgJiYgbV9maWVsZE93bmVyLT5mb2N1c09uUHJldmlv
dXNGaWVsZCgqdGhpcykpIHsKKyAgICAgICAga2V5Ym9hcmRFdmVudC5zZXREZWZhdWx0SGFuZGxl
ZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGtleSA9PSAiUmlnaHQiICYm
IG1fZmllbGRPd25lciAmJiBtX2ZpZWxkT3duZXItPmZvY3VzT25OZXh0RmllbGQoKnRoaXMpKSB7
CisgICAgICAgIGtleWJvYXJkRXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIC8vIENsZWFyIHZhbHVlIHdoZW4gcHJlc3NpbmcgYmFja3NwYWNl
IG9yIGRlbGV0ZS4KKyAgICBpZiAoa2V5ID09ICJVKzAwMDgiIHx8IGtleSA9PSAiVSswMDdGIikg
eworICAgICAgICBrZXlib2FyZEV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHNl
dEVtcHR5VmFsdWUoRGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50cyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9Cit9CisKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2
ZW50KFJlZlB0cjxFbGVtZW50PiYmIG5ld0ZvY3VzZWRFbGVtZW50KQoreworICAgIGlmIChtX2Zp
ZWxkT3duZXIpCisgICAgICAgIG1fZmllbGRPd25lci0+Ymx1ckZyb21GaWVsZChXVEZNb3ZlKG5l
d0ZvY3VzZWRFbGVtZW50KSk7CisgICAgZWxzZQorICAgICAgICBIVE1MRWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQoV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpOworCisgICAgZGlkQmx1cigp
OworfQorCit2b2lkIERhdGVUaW1lRmllbGRFbGVtZW50OjpkaWRCbHVyKCkKK3sKK30KKwogTG9j
YWxlJiBEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxlRm9yT3duZXIoKSBjb25zdAogewogICAg
IHJldHVybiBkb2N1bWVudCgpLmdldENhY2hlZExvY2FsZShsb2NhbGVJZGVudGlmaWVyKCkpOwpA
QCAtNjUsNyArMTIxLDcgQEAgQXRvbVN0cmluZyBEYXRlVGltZUZpZWxkRWxlbWVudDo6bG9jYWxl
SWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZmllbGRPd25lciA/IG1fZmllbGRPd25l
ci0+bG9jYWxlSWRlbnRpZmllcigpIDogbnVsbEF0b20oKTsKIH0KIAotdm9pZCBEYXRlVGltZUZp
ZWxkRWxlbWVudDo6dXBkYXRlVmlzaWJsZVZhbHVlKCkKK3ZvaWQgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQ6OnVwZGF0ZVZpc2libGVWYWx1ZShFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7CiAg
ICAgaWYgKCFmaXJzdENoaWxkKCkpCiAgICAgICAgIGFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShk
b2N1bWVudCgpLCBlbXB0eVN0cmluZygpKSk7CkBAIC03Niw2ICsxMzIsOSBAQCB2b2lkIERhdGVU
aW1lRmllbGRFbGVtZW50Ojp1cGRhdGVWaXNpYmxlVmFsdWUoKQogICAgICAgICByZXR1cm47CiAK
ICAgICB0ZXh0Tm9kZS5yZXBsYWNlV2hvbGVUZXh0KG5ld1Zpc2libGVWYWx1ZSk7CisKKyAgICBp
ZiAoZXZlbnRCZWhhdmlvciA9PSBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnRzICYmIG1fZmll
bGRPd25lcikKKyAgICAgICAgbV9maWVsZE93bmVyLT5maWVsZFZhbHVlQ2hhbmdlZCgpOwogfQog
CiBib29sIERhdGVUaW1lRmllbGRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCmluZGV4
IDRmYTRkMTU2NTEzNmZiMjk5ZTRhYWExNTRkOWQzNDhiMzc1ZTUyOWMuLmZmM2I2NjNhYzM2ZWQ1
NjZjOTdkZWQ0NjIxZjg5M2MzOGQ2MTlhMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaApAQCAtMzUsMjAgKzM1LDMxIEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGVDb21wb25lbnRzOworc3RydWN0IERhdGVUaW1l
RmllbGRzU3RhdGU7CiAKIGNsYXNzIERhdGVUaW1lRmllbGRFbGVtZW50IDogcHVibGljIEhUTUxE
aXZFbGVtZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKERhdGVUaW1lRmllbGRFbGVt
ZW50KTsKIHB1YmxpYzoKKyAgICBlbnVtIEV2ZW50QmVoYXZpb3IgOiBib29sIHsgRGlzcGF0Y2hO
b0V2ZW50LCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZlbnRzIH07CisKICAgICBjbGFzcyBGaWVs
ZE93bmVyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPEZpZWxkT3duZXI+IHsKICAgICBwdWJsaWM6
CiAgICAgICAgIHZpcnR1YWwgfkZpZWxkT3duZXIoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGJs
dXJGcm9tRmllbGQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGZpZWxkVmFsdWVDaGFuZ2VkKCkgPSAwOworICAgICAgICB2aXJ0
dWFsIGJvb2wgZm9jdXNPbk5leHRGaWVsZChjb25zdCBEYXRlVGltZUZpZWxkRWxlbWVudCYpID0g
MDsKKyAgICAgICAgdmlydHVhbCBib29sIGZvY3VzT25QcmV2aW91c0ZpZWxkKGNvbnN0IERhdGVU
aW1lRmllbGRFbGVtZW50JikgPSAwOwogICAgICAgICB2aXJ0dWFsIEF0b21TdHJpbmcgbG9jYWxl
SWRlbnRpZmllcigpIGNvbnN0ID0gMDsKICAgICB9OwogCisgICAgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaEJsdXJFdmVudChSZWZQ
dHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWVudCkgb3ZlcnJpZGU7CisKICAgICB2aXJ0dWFs
IGJvb2wgaGFzVmFsdWUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEVtcHR5VmFs
dWUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShE
YXRlVGltZUZpZWxkc1N0YXRlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRFbXB0eVZhbHVl
KEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGludCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZUFzSW50ZWdlcihpbnQsIEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpID0gMDsKICAg
ICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyB2
aXNpYmxlVmFsdWUoKSBjb25zdCA9IDA7CiAKQEAgLTU3LDEyICs2OCwxNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBzZXVkbyk7CiAgICAgTG9j
YWxlJiBsb2NhbGVGb3JPd25lcigpIGNvbnN0OwogICAgIEF0b21TdHJpbmcgbG9jYWxlSWRlbnRp
ZmllcigpIGNvbnN0OwotICAgIHZvaWQgdXBkYXRlVmlzaWJsZVZhbHVlKCk7CisgICAgdm9pZCB1
cGRhdGVWaXNpYmxlVmFsdWUoRXZlbnRCZWhhdmlvcik7CiAgICAgdmlydHVhbCBpbnQgdmFsdWVB
c0ludGVnZXIoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZl
bnQoS2V5Ym9hcmRFdmVudCYpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRCbHVyKCk7CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKKyAg
ICB2b2lkIGRlZmF1bHRLZXlib2FyZEV2ZW50SGFuZGxlcihLZXlib2FyZEV2ZW50Jik7CisKICAg
ICBXZWFrUHRyPEZpZWxkT3duZXI+IG1fZmllbGRPd25lcjsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwCmluZGV4IGM3
Zjk4NDRhMTM0NWQ4YjQzMjBmMGM0ODkxYTNhMWIwZDM3NzE4N2YuLmY1Y2M5ZWUxYjk4MDdlYWJj
MTA2YTI3Y2U0MDk2NzE3NDM1MmRkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lm
IEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQogCiAjaW5jbHVkZSAiRGF0ZUNvbXBv
bmVudHMuaCIKKyNpbmNsdWRlICJEYXRlVGltZUZpZWxkc1N0YXRlLmgiCiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzcsNyArMzgs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRGF0
ZVRpbWVEYXlGaWVsZEVsZW1lbnQpOwogCiBEYXRlVGltZURheUZpZWxkRWxlbWVudDo6RGF0ZVRp
bWVEYXlGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93
bmVyKQotICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93
bmVyLCAiLS0iX3MpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQs
IGZpZWxkT3duZXIsIFJhbmdlKDEsIDMxKSwgIi0tIl9zKQogewogICAgIHN0YXRpYyBNYWluVGhy
ZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZGF5UHNldWRvSWQoIi13ZWJraXQt
ZGF0ZXRpbWUtZWRpdC1kYXktZmllbGQiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCk7CiAgICAgaW5pdGlhbGl6ZShkYXlQc2V1ZG9JZCk7CkBAIC00OCw2ICs0OSwxMiBAQCBSZWY8
RGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ+IERhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQmIGRvY3VtZW50LAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERhdGVUaW1lRGF5
RmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVE
YXlGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxk
c1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoaGFzVmFsdWUoKSkKKyAgICAgICAgc3RhdGUuZGF5
T2ZNb250aCA9IHZhbHVlQXNJbnRlZ2VyKCk7Cit9CisKIHZvaWQgRGF0ZVRpbWVEYXlGaWVsZEVs
ZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogewogICAg
IHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubW9udGhEYXkoKSk7CkBAIC01Niw3ICs2Myw3IEBAIHZv
aWQgRGF0ZVRpbWVEYXlGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlKQogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKERhdGVUaW1lTW9udGhG
aWVsZEVsZW1lbnQpOwogCiBEYXRlVGltZU1vbnRoRmllbGRFbGVtZW50OjpEYXRlVGltZU1vbnRo
RmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikK
LSAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwg
Ii0tIl9zKQorICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVs
ZE93bmVyLCBSYW5nZSgxLCAxMiksICItLSJfcykKIHsKICAgICBzdGF0aWMgTWFpblRocmVhZE5l
dmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG1vbnRoUHNldWRvSWQoIi13ZWJraXQtZGF0
ZXRpbWUtZWRpdC1tb250aC1maWVsZCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KTsKICAgICBpbml0aWFsaXplKG1vbnRoUHNldWRvSWQpOwpAQCAtNjcsNiArNzQsMTIgQEAgUmVm
PERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ+IERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCYgZG9jdW0KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEYXRlVGltZU1v
bnRoRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7CiB9CiAKK3ZvaWQgRGF0ZVRp
bWVNb250aEZpZWxkRWxlbWVudDo6cG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1l
RmllbGRzU3RhdGUmIHN0YXRlKQoreworICAgIGlmIChoYXNWYWx1ZSgpKQorICAgICAgICBzdGF0
ZS5tb250aCA9IHZhbHVlQXNJbnRlZ2VyKCk7Cit9CisKIHZvaWQgRGF0ZVRpbWVNb250aEZpZWxk
RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCiB7CiAg
ICAgLy8gRGF0ZUNvbXBvbmVudHMgcmVwcmVzZW50cyBtb250aHMgZnJvbSAwIChKYW51YXJ5KSB0
byAxMSAoRGVjZW1iZXIpLgpAQCAtODcsNiArMTAwLDEyIEBAIFJlZjxEYXRlVGltZVN5bWJvbGlj
TW9udGhGaWVsZEVsZW1lbnQ+IERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6Y3Jl
YXRlCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRF
bGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBsYWJlbHMpKTsKIH0KIAordm9pZCBEYXRlVGlt
ZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OnBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShE
YXRlVGltZUZpZWxkc1N0YXRlJiBzdGF0ZSkKK3sKKyAgICBpZiAoaGFzVmFsdWUoKSkKKyAgICAg
ICAgc3RhdGUubW9udGggPSB2YWx1ZUFzSW50ZWdlcigpICsgMTsKK30KKwogdm9pZCBEYXRlVGlt
ZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlKQogewogICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubW9udGgoKSk7CkBA
IC05NSw3ICsxMTQsNyBAQCB2b2lkIERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6
c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdAogV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKERhdGVUaW1lWWVhckZpZWxkRWxlbWVudCk7CiAKIERhdGVUaW1lWWVhckZp
ZWxkRWxlbWVudDo6RGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwg
RmllbGRPd25lciYgZmllbGRPd25lcikKLSAgICA6IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVu
dChkb2N1bWVudCwgZmllbGRPd25lciwgIi0tLS0iX3MpCisgICAgOiBEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIFJhbmdlKERhdGVDb21wb25lbnRzOjpt
aW5pbXVtWWVhcigpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bVllYXIoKSksICItLS0tIl9zKQog
ewogICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4g
eWVhclBzZXVkb0lkKCItd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCIsIEF0b21TdHJp
bmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKTsKICAgICBpbml0aWFsaXplKHllYXJQc2V1ZG9JZCk7
CkBAIC0xMDYsNiArMTI1LDEyIEBAIFJlZjxEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ+IERhdGVU
aW1lWWVhckZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVuCiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93
bmVyKSk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50Ojpwb3B1bGF0ZURhdGVU
aW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgc3RhdGUpCit7CisgICAgaWYgKGhh
c1ZhbHVlKCkpCisgICAgICAgIHN0YXRlLnllYXIgPSB2YWx1ZUFzSW50ZWdlcigpOworfQorCiB2
b2lkIERhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNv
bXBvbmVudHMmIGRhdGUpCiB7CiAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5mdWxsWWVhcigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRF
bGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1l
bnRzLmgKaW5kZXggNGEwMDZiNzFjMzYzZjVkNWFiODNkMzg1NDFhYjU5MTk1ZjUyNmM4Yy4uZjEx
MDM3ODI5YmY3YWQxYmY5YTAzYjlkMzQxMDk4ODViZDE5ZGEzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKQEAgLTQ0LDYgKzQ0
LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoK
ICAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJik7CisgICAgdm9p
ZCBwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpOwogfTsK
IAogY2xhc3MgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCBmaW5hbCA6IHB1YmxpYyBEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQgewpAQCAtNTcsNiArNTgsNyBAQCBwcml2YXRlOgogCiAgICAg
Ly8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgogICAgIHZvaWQgc2V0VmFsdWVBc0Rh
dGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKKyAgICB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVs
ZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJik7CiB9OwogCiBjbGFzcyBEYXRlVGltZVN5bWJv
bGljTW9udGhGaWVsZEVsZW1lbnQgZmluYWwgOiBwdWJsaWMgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudCB7CkBAIC03MCw2ICs3Miw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBEYXRlVGltZUZp
ZWxkRWxlbWVudCBmdW5jdGlvbnM6CiAgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRl
Q29tcG9uZW50cyYpOworICAgIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVU
aW1lRmllbGRzU3RhdGUmKTsKIH07CiAKIGNsYXNzIERhdGVUaW1lWWVhckZpZWxkRWxlbWVudCBm
aW5hbCA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQgewpAQCAtODMsNiArODYs
NyBAQCBwcml2YXRlOgogCiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgog
ICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsKKyAgICB2b2lk
IHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRlJik7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmNwcAppbmRleCA5OGY1YWI5
YTA4OTRhYzY4ODFmMzE4NDY1NGQ1ZjU1MzJkNzlmMzBlLi40OTAwZjZmMjNkNWJlMThiMWZlNTc2
ODlhZTZmNGJhZDM5YWM2NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTI5LDE1ICsyOSwz
MCBAQAogCiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCiAKKyNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtTG9jYWxlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjb25zdGV4cHIgU2Vjb25kcyB0eXBlQWhlYWRUaW1lb3V0IHsg
MV9zIH07CisKK2ludCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OlJhbmdlOjpjbGFtcFZh
bHVlKGludCB2YWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RkOjpjbGFtcCh2YWx1ZSwgbWlu
aW11bSwgbWF4aW11bSk7Cit9CisKK2Jvb2wgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpS
YW5nZTo6aXNJblJhbmdlKGludCB2YWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gdmFsdWUgPj0g
bWluaW11bSAmJiB2YWx1ZSA8PSBtYXhpbXVtOworfQorCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KTsKIAotRGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKQorRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBjb25zdCBSYW5nZSYgcmFu
Z2UsIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIpCiAgICAgOiBEYXRlVGltZUZpZWxkRWxlbWVu
dChkb2N1bWVudCwgZmllbGRPd25lcikKKyAgICAsIG1fcmFuZ2UocmFuZ2UpCiAgICAgLCBtX3Bs
YWNlaG9sZGVyKHBsYWNlaG9sZGVyKQogewogfQpAQCAtNDUsNiArNjAsMTEgQEAgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQm
IGRvY3VtZW50LCBGaWUKIFN0cmluZyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmZvcm1h
dFZhbHVlKGludCB2YWx1ZSkgY29uc3QKIHsKICAgICBMb2NhbGUmIGxvY2FsZSA9IGxvY2FsZUZv
ck93bmVyKCk7CisKKyAgICBpZiAobV9yYW5nZS5tYXhpbXVtID4gOTk5KQorICAgICAgICByZXR1
cm4gbG9jYWxlLmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihtYWtlU3RyaW5nKHBhZCgnMCcsIDQs
IHZhbHVlKSkpOworICAgIGlmIChtX3JhbmdlLm1heGltdW0gPiA5OSkKKyAgICAgICAgcmV0dXJu
IGxvY2FsZS5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIobWFrZVN0cmluZyhwYWQoJzAnLCAzLCB2
YWx1ZSkpKTsKICAgICByZXR1cm4gbG9jYWxlLmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihtYWtl
U3RyaW5nKHBhZCgnMCcsIDIsIHZhbHVlKSkpOwogfQogCkBAIC01OCwxOCArNzgsMTkgQEAgdm9p
ZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmlu
ZyYgcHNldWRvKQogICAgIERhdGVUaW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKHBzZXVkbyk7
CiB9CiAKLXZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKCkK
K3ZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKEV2ZW50QmVo
YXZpb3IgZXZlbnRCZWhhdmlvcikKIHsKICAgICBtX3ZhbHVlID0gMDsKICAgICBtX2hhc1ZhbHVl
ID0gZmFsc2U7Ci0gICAgdXBkYXRlVmlzaWJsZVZhbHVlKCk7CisgICAgbV90eXBlQWhlYWRCdWZm
ZXIuY2xlYXIoKTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUoZXZlbnRCZWhhdmlvcik7CiB9CiAK
LXZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQg
dmFsdWUpCit2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVn
ZXIoaW50IHZhbHVlLCBFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCiB7Ci0gICAgbV92YWx1
ZSA9IHZhbHVlOworICAgIG1fdmFsdWUgPSBtX3JhbmdlLmNsYW1wVmFsdWUodmFsdWUpOwogICAg
IG1faGFzVmFsdWUgPSB0cnVlOwotICAgIHVwZGF0ZVZpc2libGVWYWx1ZSgpOworICAgIHVwZGF0
ZVZpc2libGVWYWx1ZShldmVudEJlaGF2aW9yKTsKIH0KIAogU3RyaW5nIERhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudDo6dmFsdWUoKSBjb25zdApAQCAtODcsNiArMTA4LDM5IEBAIFN0cmluZyBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0
dXJuIG1faGFzVmFsdWUgPyB2YWx1ZSgpIDogbV9wbGFjZWhvbGRlcjsKIH0KIAordm9pZCBEYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCYga2V5Ym9hcmRFdmVudCkKK3sKKyAgICBpZiAoa2V5Ym9hcmRFdmVudC50eXBlKCkgIT0gZXZl
bnROYW1lcygpLmtleXByZXNzRXZlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gY2hh
ckNvZGUgPSBzdGF0aWNfY2FzdDxVQ2hhcj4oa2V5Ym9hcmRFdmVudC5jaGFyQ29kZSgpKTsKKyAg
ICBTdHJpbmcgbnVtYmVyID0gbG9jYWxlRm9yT3duZXIoKS5jb252ZXJ0RnJvbUxvY2FsaXplZE51
bWJlcihTdHJpbmcoJmNoYXJDb2RlLCAxKSk7CisgICAgaW50IGRpZ2l0ID0gbnVtYmVyWzBdIC0g
JzAnOworICAgIGlmIChkaWdpdCA8IDAgfHwgZGlnaXQgPiA5KQorICAgICAgICByZXR1cm47CisK
KyAgICBTZWNvbmRzIHRpbWVTaW5jZUxhc3REaWdpdENoYXIgPSBrZXlib2FyZEV2ZW50LnRpbWVT
dGFtcCgpIC0gbV9sYXN0RGlnaXRDaGFyVGltZTsKKyAgICBtX2xhc3REaWdpdENoYXJUaW1lID0g
a2V5Ym9hcmRFdmVudC50aW1lU3RhbXAoKTsKKworICAgIGlmICh0aW1lU2luY2VMYXN0RGlnaXRD
aGFyID4gdHlwZUFoZWFkVGltZW91dCkgeworICAgICAgICBtX3R5cGVBaGVhZEJ1ZmZlci5jbGVh
cigpOworICAgIH0gZWxzZSBpZiAoYXV0byBsZW5ndGggPSBtX3R5cGVBaGVhZEJ1ZmZlci5sZW5n
dGgoKSkgeworICAgICAgICB1bnNpZ25lZCBtYXhMZW5ndGggPSBmb3JtYXRWYWx1ZShtX3Jhbmdl
Lm1heGltdW0pLmxlbmd0aCgpOworICAgICAgICBpZiAobGVuZ3RoID09IG1heExlbmd0aCkKKyAg
ICAgICAgICAgIG1fdHlwZUFoZWFkQnVmZmVyLmNsZWFyKCk7CisgICAgfQorCisgICAgbV90eXBl
QWhlYWRCdWZmZXIuYXBwZW5kKG51bWJlcik7CisgICAgc2V0VmFsdWVBc0ludGVnZXIobV90eXBl
QWhlYWRCdWZmZXIudG9TdHJpbmcoKS50b0ludCgpLCBEaXNwYXRjaElucHV0QW5kQ2hhbmdlRXZl
bnRzKTsKKworICAgIGtleWJvYXJkRXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwordm9p
ZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OmRpZEJsdXIoKQoreworICAgIG1fdHlwZUFo
ZWFkQnVmZmVyLmNsZWFyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaAppbmRl
eCBmMDJiZmIwZWRkMDI4YTZmOWM4NDMyNThiZDY5NWJlNDgxODM3MzY0Li40MDRkMzkxZDgxM2Rk
N2U1NmVhMDhhMDk3NTVjZTkxZjQ3MjU4ODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaApAQCAtMjksMzMg
KzI5LDQ5IEBACiAjaWYgRU5BQkxFKERBVEVfQU5EX1RJTUVfSU5QVVRfVFlQRVMpCiAKICNpbmNs
dWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1l
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRl
VGltZUZpZWxkRWxlbWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQpOwogcHVibGljOgorICAgIHN0cnVjdCBSYW5nZSB7CisgICAgICAg
IFJhbmdlKGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSkKKyAgICAgICAgICAgIDogbWluaW11bSht
aW5pbXVtKSwgbWF4aW11bShtYXhpbXVtKSB7IH0KKyAgICAgICAgaW50IGNsYW1wVmFsdWUoaW50
KSBjb25zdDsKKyAgICAgICAgYm9vbCBpc0luUmFuZ2UoaW50KSBjb25zdDsKKworICAgICAgICBp
bnQgbWluaW11bTsKKyAgICAgICAgaW50IG1heGltdW07CisgICAgfTsKIAogcHJvdGVjdGVkOgot
ICAgIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChEb2N1bWVudCYsIEZpZWxkT3duZXImLCBj
b25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKTsKKyAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQoRG9jdW1lbnQmLCBGaWVsZE93bmVyJiwgY29uc3QgUmFuZ2UmLCBjb25zdCBTdHJpbmcmIHBs
YWNlaG9sZGVyKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9uczoKICAg
ICBib29sIGhhc1ZhbHVlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0
IEF0b21TdHJpbmcmKTsKLSAgICB2b2lkIHNldEVtcHR5VmFsdWUoKSBmaW5hbDsKLSAgICB2b2lk
IHNldFZhbHVlQXNJbnRlZ2VyKGludCkgZmluYWw7CisgICAgdm9pZCBzZXRFbXB0eVZhbHVlKEV2
ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpIGZpbmFsOworICAgIHZvaWQgc2V0VmFsdWVB
c0ludGVnZXIoaW50LCBFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSBmaW5hbDsKICAg
ICBpbnQgdmFsdWVBc0ludGVnZXIoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgdmlzaWJsZVZh
bHVlKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1l
bnQgZnVuY3Rpb25zOgogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50JikgZmluYWw7CisgICAgdm9pZCBkaWRC
bHVyKCkgZmluYWw7CiAKICAgICBTdHJpbmcgZm9ybWF0VmFsdWUoaW50KSBjb25zdDsKIAorICAg
IGNvbnN0IFJhbmdlIG1fcmFuZ2U7CiAgICAgY29uc3QgU3RyaW5nIG1fcGxhY2Vob2xkZXI7CiAg
ICAgaW50IG1fdmFsdWUgeyAwIH07CiAgICAgYm9vbCBtX2hhc1ZhbHVlIHsgZmFsc2UgfTsKKyAg
ICBTdHJpbmdCdWlsZGVyIG1fdHlwZUFoZWFkQnVmZmVyOworICAgIE1vbm90b25pY1RpbWUgbV9s
YXN0RGlnaXRDaGFyVGltZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5jcHAKaW5kZXggZGY1NGJlODE4NGYyOTBhZDhlMWUyNDJlN2IwMTk3ZjAzMzY0YzY2
My4uYmY2MDI1NWNkZGMxMTlhN2M0YzdkZDU2YzMwMDNjMTUyNWRjMGQ1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5jcHAKQEAgLTYzLDE2ICs2MywxNiBAQCB2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQ6OmluaXRpYWxpemUoY29uc3QgQXRvbVN0cmluZyYgcHNldWRvKQogICAgIERhdGVU
aW1lRmllbGRFbGVtZW50Ojppbml0aWFsaXplKHBzZXVkbyk7CiB9CiAKLXZvaWQgRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0RW1wdHlWYWx1ZSgpCit2b2lkIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUoRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9y
KQogewogICAgIG1fc2VsZWN0ZWRJbmRleCA9IGludmFsaWRJbmRleDsKLSAgICB1cGRhdGVWaXNp
YmxlVmFsdWUoKTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUoZXZlbnRCZWhhdmlvcik7CiB9CiAK
LXZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0ludGVnZXIoaW50
IG5ld1NlbGVjdGVkSW5kZXgpCit2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnNl
dFZhbHVlQXNJbnRlZ2VyKGludCBuZXdTZWxlY3RlZEluZGV4LCBFdmVudEJlaGF2aW9yIGV2ZW50
QmVoYXZpb3IpCiB7CiAgICAgbV9zZWxlY3RlZEluZGV4ID0gc3RkOjptYXgoMCwgc3RkOjptaW4o
bmV3U2VsZWN0ZWRJbmRleCwgc3RhdGljX2Nhc3Q8aW50PihtX3N5bWJvbHMuc2l6ZSgpIC0gMSkp
KTsKLSAgICB1cGRhdGVWaXNpYmxlVmFsdWUoKTsKKyAgICB1cGRhdGVWaXNpYmxlVmFsdWUoZXZl
bnRCZWhhdmlvcik7CiB9CiAKIFN0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2
YWx1ZSgpIGNvbnN0CkBAIC05NSw2ICs5NSwxMSBAQCBTdHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gaGFzVmFsdWUoKSA/
IG1fc3ltYm9sc1ttX3NlbGVjdGVkSW5kZXhdIDogdmlzaWJsZUVtcHR5VmFsdWUoKTsKIH0KIAor
dm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtl
eWJvYXJkRXZlbnQmKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgYWZ0ZXIgYWRkaW5nIGxh
eW91dCBmb3IgPGlucHV0IHR5cGU9dGltZT4uCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShEQVRFX0FORF9USU1FX0lOUFVUX1RZUEVTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudC5oCmluZGV4IDY3YTgwNzg0MDViNmRhNjVmY2QwYzA2NzUzMGRkZWZlMWYyN2QwZTIuLjM4
ZGY5MjFkMTBiYmZkMjI1YTU1ZGE3MjlmNzI2Nzc1OGQ3MzgwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
LmgKQEAgLTM5LDggKzM5LDggQEAgcHJvdGVjdGVkOgogICAgIHNpemVfdCBzeW1ib2xzU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3ltYm9scy5zaXplKCk7IH0KICAgICBib29sIGhhc1ZhbHVlKCkg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEF0b21TdHJpbmcmIHBzZXVk
byk7Ci0gICAgdm9pZCBzZXRFbXB0eVZhbHVlKCkgZmluYWw7Ci0gICAgdm9pZCBzZXRWYWx1ZUFz
SW50ZWdlcihpbnQpIGZpbmFsOworICAgIHZvaWQgc2V0RW1wdHlWYWx1ZShFdmVudEJlaGF2aW9y
ID0gRGlzcGF0Y2hOb0V2ZW50KSBmaW5hbDsKKyAgICB2b2lkIHNldFZhbHVlQXNJbnRlZ2VyKGlu
dCwgRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCkgZmluYWw7CiAgICAgaW50IHZhbHVl
QXNJbnRlZ2VyKCkgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CkBAIC01MSw2ICs1MSw3IEBAIHBy
aXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zOgogICAgIFN0cmlu
ZyB2YWx1ZSgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBm
aW5hbDsKKyAgICB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCYpIGZpbmFs
OwogCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4gbV9zeW1ib2xzOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAKaW5kZXggM2E1ZjVjYzUyODM1NGE3NDkyMTE1
ZDI3YmUyZGQ2NGY5YjNlYWUzMC4uODZjNzZjNWE5ZGQxZDc3NmM1NGVlN2Y5YzFkODM2ODA2YWU1
OGEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmNwcApAQCAt
NDEsMTUgKzQxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBIVE1MIHVzZXMgSVNP
LTg2MDEgZm9ybWF0IHdpdGggeWVhciA+PSAxLiBHcmVnb3JpYW4gY2FsZW5kYXIgc3RhcnRlZCBp
bgotLy8gMTU4Mi4gSG93ZXZlciwgd2UgbmVlZCB0byBzdXBwb3J0IDAwMDEtMDEtMDEgaW4gR3Jl
Z29yaWFuIGNhbGVuZGFyIHJ1bGUuCi1zdGF0aWMgY29uc3RleHByIGludCBtaW5pbXVtWWVhciA9
IDE7Ci0KLS8vIERhdGUgaW4gRUNNQVNjcmlwdCBjYW4ndCByZXByZXNlbnQgZGF0ZXMgbGF0ZXIg
dGhhbiAyNzU3NjAtMDktMTNUMDA6MDBaLgotLy8gU28sIHdlIGhhdmUgdGhlIHNhbWUgdXBwZXIg
bGltaXQgaW4gSFRNTDUgZGF0ZS90aW1lIHR5cGVzLgotc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4
aW11bVllYXIgPSAyNzU3NjA7Ci0KLS8vIEhUTUxkZWZpbmVzIG1pbmltdW0gd2VlayBvZiB5ZWFy
IGlzIG9uZS4KKy8vIEhUTUwgZGVmaW5lcyBtaW5pbXVtIHdlZWsgb2YgeWVhciBpcyBvbmUuCiBz
dGF0aWMgY29uc3RleHByIGludCBtaW5pbXVtV2Vla051bWJlciA9IDE7CiAKIC8vIEhUTUwgZGVm
aW5lcyBtYXhpbXVtIHdlZWsgb2YgeWVhciBpcyA1My4KQEAgLTE1MSw3ICsxNDMsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIERhdGVDb21wb25lbnRzOjpwYXJzZVll
YXIoU3RyaW5nUGFyc2luZ0J1ZgogICAgIGlmIChkaWdpdHNMZW5ndGggPCA0KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBhdXRvIHllYXIgPSBwYXJzZUludFdpdGhpbkxpbWl0cyhidWZm
ZXIsIGRpZ2l0c0xlbmd0aCwgbWluaW11bVllYXIsIG1heGltdW1ZZWFyKTsKKyAgICBhdXRvIHll
YXIgPSBwYXJzZUludFdpdGhpbkxpbWl0cyhidWZmZXIsIGRpZ2l0c0xlbmd0aCwgbWluaW11bVll
YXIoKSwgbWF4aW11bVllYXIoKSk7CiAgICAgaWYgKCF5ZWFyKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTE2MSwxOCArMTUzLDE4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIENoYXJhY3RlclR5
cGU+IGJvb2wgRGF0ZUNvbXBvbmVudHM6OnBhcnNlWWVhcihTdHJpbmdQYXJzaW5nQnVmCiAKIHN0
YXRpYyBib29sIHdpdGhpbkhUTUxEYXRlTGltaXRzKGludCB5ZWFyLCBpbnQgbW9udGgpCiB7Ci0g
ICAgaWYgKHllYXIgPCBtaW5pbXVtWWVhcikKKyAgICBpZiAoeWVhciA8IERhdGVDb21wb25lbnRz
OjptaW5pbXVtWWVhcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHllYXIgPCBt
YXhpbXVtWWVhcikKKyAgICBpZiAoeWVhciA8IERhdGVDb21wb25lbnRzOjptYXhpbXVtWWVhcigp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gbW9udGggPD0gbWF4aW11bU1vbnRo
SW5NYXhpbXVtWWVhcjsKIH0KIAogc3RhdGljIGJvb2wgd2l0aGluSFRNTERhdGVMaW1pdHMoaW50
IHllYXIsIGludCBtb250aCwgaW50IG1vbnRoRGF5KQogewotICAgIGlmICh5ZWFyIDwgbWluaW11
bVllYXIpCisgICAgaWYgKHllYXIgPCBEYXRlQ29tcG9uZW50czo6bWluaW11bVllYXIoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICh5ZWFyIDwgbWF4aW11bVllYXIpCisgICAgaWYg
KHllYXIgPCBEYXRlQ29tcG9uZW50czo6bWF4aW11bVllYXIoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgaWYgKG1vbnRoIDwgbWF4aW11bU1vbnRoSW5NYXhpbXVtWWVhcikKICAgICAgICAg
cmV0dXJuIHRydWU7CkBAIC0xODEsOSArMTczLDkgQEAgc3RhdGljIGJvb2wgd2l0aGluSFRNTERh
dGVMaW1pdHMoaW50IHllYXIsIGludCBtb250aCwgaW50IG1vbnRoRGF5KQogCiBzdGF0aWMgYm9v
bCB3aXRoaW5IVE1MRGF0ZUxpbWl0cyhpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgbW9udGhEYXks
IGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kLCBpbnQgbWlsbGlzZWNvbmQpCiB7Ci0g
ICAgaWYgKHllYXIgPCBtaW5pbXVtWWVhcikKKyAgICBpZiAoeWVhciA8IERhdGVDb21wb25lbnRz
OjptaW5pbXVtWWVhcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHllYXIgPCBt
YXhpbXVtWWVhcikKKyAgICBpZiAoeWVhciA8IERhdGVDb21wb25lbnRzOjptYXhpbXVtWWVhcigp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAobW9udGggPCBtYXhpbXVtTW9udGhJbk1h
eGltdW1ZZWFyKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQzNiw3ICs0MjgsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBib29sIERhdGVDb21wb25lbnRzOjpwYXJzZVdl
ZWsoU3RyaW5nUGFyc2luZ0J1ZgogICAgIGlmICghd2VlaykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKG1feWVhciA9PSBtYXhpbXVtWWVhciAmJiAqd2VlayA+IG1heGltdW1XZWVr
SW5NYXhpbXVtWWVhcikKKyAgICBpZiAobV95ZWFyID09IG1heGltdW1ZZWFyKCkgJiYgKndlZWsg
PiBtYXhpbXVtV2Vla0luTWF4aW11bVllYXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IG1fd2VlayA9ICp3ZWVrOwpAQCAtNjU2LDcgKzY0OCw3IEBAIGJvb2wgRGF0ZUNvbXBvbmVudHM6
OnNldE1vbnRoc1NpbmNlRXBvY2goZG91YmxlIG1vbnRocykKICAgICBtb250aHMgPSByb3VuZCht
b250aHMpOwogICAgIGRvdWJsZSBkb3VibGVNb250aCA9IHBvc2l0aXZlRm1vZChtb250aHMsIDEy
KTsKICAgICBkb3VibGUgZG91YmxlWWVhciA9IDE5NzAgKyAobW9udGhzIC0gZG91YmxlTW9udGgp
IC8gMTI7Ci0gICAgaWYgKGRvdWJsZVllYXIgPCBtaW5pbXVtWWVhciB8fCBtYXhpbXVtWWVhciA8
IGRvdWJsZVllYXIpCisgICAgaWYgKGRvdWJsZVllYXIgPCBtaW5pbXVtWWVhcigpIHx8IG1heGlt
dW1ZZWFyKCkgPCBkb3VibGVZZWFyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaW50IHll
YXIgPSBzdGF0aWNfY2FzdDxpbnQ+KGRvdWJsZVllYXIpOwogICAgIGludCBtb250aCA9IHN0YXRp
Y19jYXN0PGludD4oZG91YmxlTW9udGgpOwpAQCAtNjg2LDcgKzY3OCw3IEBAIGJvb2wgRGF0ZUNv
bXBvbmVudHM6OnNldE1pbGxpc2Vjb25kc1NpbmNlRXBvY2hGb3JXZWVrKGRvdWJsZSBtcykKICAg
ICBtcyA9IHJvdW5kKG1zKTsKIAogICAgIG1feWVhciA9IG1zVG9ZZWFyKG1zKTsKLSAgICBpZiAo
bV95ZWFyIDwgbWluaW11bVllYXIgfHwgbV95ZWFyID4gbWF4aW11bVllYXIpCisgICAgaWYgKG1f
eWVhciA8IG1pbmltdW1ZZWFyKCkgfHwgbV95ZWFyID4gbWF4aW11bVllYXIoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgaW50IHllYXJEYXkgPSBkYXlJblllYXIobXMsIG1feWVhcik7
CkBAIC02OTQsNyArNjg2LDcgQEAgYm9vbCBEYXRlQ29tcG9uZW50czo6c2V0TWlsbGlzZWNvbmRz
U2luY2VFcG9jaEZvcldlZWsoZG91YmxlIG1zKQogICAgIGlmICh5ZWFyRGF5IDwgb2Zmc2V0KSB7
CiAgICAgICAgIC8vIFRoZSBkYXkgYmVsb25ncyB0byB0aGUgbGFzdCB3ZWVrIG9mIHRoZSBwcmV2
aW91cyB5ZWFyLgogICAgICAgICBtX3llYXItLTsKLSAgICAgICAgaWYgKG1feWVhciA8PSBtaW5p
bXVtWWVhcikKKyAgICAgICAgaWYgKG1feWVhciA8PSBtaW5pbXVtWWVhcigpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBtX3dlZWsgPSBtYXhXZWVrTnVtYmVySW5ZZWFyKCk7
CiAgICAgfSBlbHNlIHsKQEAgLTcwMyw3ICs2OTUsNyBAQCBib29sIERhdGVDb21wb25lbnRzOjpz
ZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yV2Vlayhkb3VibGUgbXMpCiAgICAgICAgICAgICBt
X3llYXIrKzsKICAgICAgICAgICAgIG1fd2VlayA9IDE7CiAgICAgICAgIH0KLSAgICAgICAgaWYg
KG1feWVhciA+IG1heGltdW1ZZWFyIHx8IChtX3llYXIgPT0gbWF4aW11bVllYXIgJiYgbV93ZWVr
ID4gbWF4aW11bVdlZWtJbk1heGltdW1ZZWFyKSkKKyAgICAgICAgaWYgKG1feWVhciA+IG1heGlt
dW1ZZWFyKCkgfHwgKG1feWVhciA9PSBtYXhpbXVtWWVhcigpICYmIG1fd2VlayA+IG1heGltdW1X
ZWVrSW5NYXhpbXVtWWVhcikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAg
IG1fdHlwZSA9IERhdGVDb21wb25lbnRzVHlwZTo6V2VlazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EYXRlQ29tcG9uZW50cy5oCmluZGV4IGEyNGZiOWYxZjExMDM3ODc0NjhkZWU1MzM0MTBiY2Fj
YjIyZDU0N2UuLjBhOTAyMzEwMzA1MjY3ZTlhMTQxYjMxYzA4YTdkYWE0MjQ0MzdjZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVDb21wb25lbnRzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaApAQCAtMTM3LDYgKzEzNywxNCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0ZXhwciBpbmxpbmUgZG91YmxlIG1heGltdW1UaW1l
KCkgeyByZXR1cm4gODYzOTk5OTk7IH0gLy8gMjM6NTk6NTkuOTk5CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBpbmxpbmUgZG91YmxlIG1heGltdW1XZWVrKCkgeyByZXR1cm4gODYzOTk5OTU2ODAwMDAw
MC4wOyB9IC8vIDI3NTc2MC0wOS0wOCwgdGhlIE1vbmRheSBvZiB0aGUgd2VlayBpbmNsdWRpbmcg
Mjc1NzYwLTA5LTEzLgogCisgICAgLy8gSFRNTCB1c2VzIElTTy04NjAxIGZvcm1hdCB3aXRoIHll
YXIgPj0gMS4gR3JlZ29yaWFuIGNhbGVuZGFyIHN0YXJ0ZWQgaW4KKyAgICAvLyAxNTgyLiBIb3dl
dmVyLCB3ZSBuZWVkIHRvIHN1cHBvcnQgMDAwMS0wMS0wMSBpbiBHcmVnb3JpYW4gY2FsZW5kYXIg
cnVsZS4KKyAgICBzdGF0aWMgY29uc3RleHByIGlubGluZSBpbnQgbWluaW11bVllYXIoKSB7IHJl
dHVybiAxOyB9CisKKyAgICAvLyBEYXRlIGluIEVDTUFTY3JpcHQgY2FuJ3QgcmVwcmVzZW50IGRh
dGVzIGxhdGVyIHRoYW4gMjc1NzYwLTA5LTEzVDAwOjAwWi4KKyAgICAvLyBTbywgd2UgaGF2ZSB0
aGUgc2FtZSB1cHBlciBsaW1pdCBpbiBIVE1MNSBkYXRlL3RpbWUgdHlwZXMuCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBpbmxpbmUgaW50IG1heGltdW1ZZWFyKCkgeyByZXR1cm4gMjc1NzYwOyB9CisK
IHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gYm9vbCBwYXJz
ZVllYXIoU3RyaW5nUGFyc2luZ0J1ZmZlcjxDaGFyYWN0ZXJUeXBlPiYpOwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IGJvb2wgcGFyc2VUaW1lWm9uZShTdHJpbmdQYXJzaW5n
QnVmZmVyPENoYXJhY3RlclR5cGU+Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGQyNWZjZjc0OGUyYjNkMGVmZDVjNDY4
ZjllYzI3ZDQ5NGQzYWNkNi4uYzFkOWI4YTk5ZTQzNjZlNDJlM2I0MjcxMjViZmI4YzM5OTc5NDQ2
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTA4LTI4ICBBZGl0eWEgS2VlcnRoaSAgPGFr
ZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEhhbmRsZSBldmVudHMgZm9yIGRh
dGUgaW5wdXRzIHdpdGggZWRpdGFibGUgY29tcG9uZW50cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1OTM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gdmVyaWZ5IGNvcnJlY3RuZXNz
IGZvciBrZXlib2FyZCBhbmQgbW91c2UgaW5wdXRzIGluIGRhdGUKKyAgICAgICAgaW5wdXRzIHdp
dGggZWRpdGFibGUgY29tcG9uZW50cy4gVGhlc2UgdGVzdHMgYWxzbyBlbnN1cmUgdGhhdCB0aGUK
KyAgICAgICAgYXBwcm9wcmlhdGUgZXZlbnRzIGFyZSBkaXNwYXRjaGVkOiAiY2xpY2siLCAiYmx1
ciIsICJmb2N1cyIsICJpbnB1dCIKKyAgICAgICAgYW5kICJjaGFuZ2UiLgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJs
ZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1mb2N1cy1hbmQtYmx1ci1ldmVu
dHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGUvZGF0ZS1l
ZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1mb2N1cy1hbmQtYmx1
ci1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRp
dGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQtZXZlbnRz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRp
dGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQtZXZlbnRz
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNv
bXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50cy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBv
bmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50cy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDgt
MzEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNP
U10gRGF0ZSBpbnB1dHMgc2hvdWxkIGNvbnRhaW4gZWRpdGFibGUgY29tcG9uZW50cwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggMDBiNzdlNTg5MTk5ZjE2NjRmNjRhZmY5MmViOWJkODUxNjYxN2NjYy4u
ZjUwN2U3NjJmOTY0NzcyNmM4YmI3OTM2ZDNhOTMxODU0NDhmMGIzZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zMCw2ICszMCw3IEBAIGVkaXRpbmcvdW5kby1tYW5hZ2VyIFsgU2tpcCBdCiB0aWxl
ZC1kcmF3aW5nIFsgU2tpcCBdCiBmYXN0L2Nzcy9pb3MgWyBTa2lwIF0KIGZhc3QvY3NzL3dhdGNo
b3MgWyBTa2lwIF0KK2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMgWyBT
a2lwIF0KIGZhc3QvZG9tL1dpbmRvdy93YXRjaG9zIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL3NlbGVj
dC9tYWMtd2syIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL3RleHRhcmVhL2lvcyBbIFNraXAgXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9u
ZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBv
bmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVyLWV2ZW50cy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRlNjgxZjdjODFlOTc3NjUzODc1Yzg0YTE3NWEyNTRjMTIx
NzM2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRl
LWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1i
bHVyLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MCBAQAorVGVzdCBmb3IgZm9jdXMg
YW5kIGJsdXIgZXZlbnRzIGZvciA8aW5wdXQgdHlwZT1kYXRlPgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworRm9jdXMvYmx1ciB1c2luZyBtb3VzZQorCitQQVNTIGZvY3VzRXZlbnRz
RmlyZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMAorUEFTUyBmb2N1c0V2ZW50c0Zp
cmVkIGlzIDEKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDAKK1BBU1MgZm9jdXNFdmVudHNGaXJl
ZCBpcyAxCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAwCitQQVNTIGZvY3VzRXZlbnRzRmlyZWQg
aXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMAorUEFTUyBmb2N1c0V2ZW50c0ZpcmVkIGlz
IDEKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDEKKworRm9jdXMvYmx1ciB1c2luZyBrZXlib2Fy
ZAorCitQQVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMg
MAorUEFTUyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDEKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDAK
K1BBU1MgZm9jdXNFdmVudHNGaXJlZCBpcyAxCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAwCitQ
QVNTIGZvY3VzRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMQorUEFT
UyBmb2N1c0V2ZW50c0ZpcmVkIGlzIDIKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDEKK1BBU1Mg
Zm9jdXNFdmVudHNGaXJlZCBpcyAyCitQQVNTIGJsdXJFdmVudHNGaXJlZCBpcyAxCitQQVNTIGZv
Y3VzRXZlbnRzRmlyZWQgaXMgMgorUEFTUyBibHVyRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBmb2N1
c0V2ZW50c0ZpcmVkIGlzIDIKK1BBU1MgYmx1ckV2ZW50c0ZpcmVkIGlzIDIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1l
ZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVyLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxl
LWNvbXBvbmVudHMtZm9jdXMtYW5kLWJsdXItZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTViMDRi
NGEzMWMwZDA0MTJlZjMwZDc0NGQyZWJjOWU1OGE0MGQ0NgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1l
ZGl0YWJsZS1jb21wb25lbnRzLWZvY3VzLWFuZC1ibHVyLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEs
MTIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
K2lucHV0IHsKKyAgICB3aWR0aDogMzAwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1l
LWVkaXQtdGV4dCB7CisgICAgZm9udC1zaXplOiAzMHB4OworfQorCitpbnB1dDo6LXdlYmtpdC1k
YXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIHsKKyAgICBmb250LXNpemU6IDMwcHg7Cit9CisKK2lu
cHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkIHsKKyAgICBmb250LXNpemU6IDMw
cHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCB7CisgICAg
Zm9udC1zaXplOiAzMHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8aW5wdXQg
aWQ9ImJlZm9yZSIgdHlwZT0idGV4dCI+Cis8aW5wdXQgaWQ9ImlucHV0IiB0eXBlPSJkYXRlIiB2
YWx1ZT0iMjAyMC0wOC0yNiI+Cis8aW5wdXQgaWQ9ImFmdGVyIiB0eXBlPSJ0ZXh0Ij4KKworPHNj
cmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgZm9yIGZvY3VzIGFuZCBibHVyIGV2ZW50cyBmb3Ig
Jmx0O2lucHV0IHR5cGU9ZGF0ZSZndDsiKTsKKworYmx1ckV2ZW50c0ZpcmVkID0gMDsKK2Z1bmN0
aW9uIG9uQmx1ckV2ZW50KCkgeworICAgIGJsdXJFdmVudHNGaXJlZCsrOworfQorCitmb2N1c0V2
ZW50c0ZpcmVkID0gMDsKK2Z1bmN0aW9uIG9uRm9jdXNFdmVudCgpIHsKKyAgICBmb2N1c0V2ZW50
c0ZpcmVkKys7Cit9CisKK2Z1bmN0aW9uIGFzc2VydEZvY3VzQW5kQmx1ckNvdW50KG51bUZvY3Vz
RXZlbnRzLCBudW1CbHVyRXZlbnRzKSB7CisgICAgc2hvdWxkQmUoImZvY3VzRXZlbnRzRmlyZWQi
LCBudW1Gb2N1c0V2ZW50cy50b1N0cmluZygpKTsKKyAgICBzaG91bGRCZSgiYmx1ckV2ZW50c0Zp
cmVkIiwgbnVtQmx1ckV2ZW50cy50b1N0cmluZygpKTsKK30KKworZnVuY3Rpb24gcmVzZXRGb2N1
c0FuZEJsdXJDb3VudCgpIHsKKyAgICBibHVyRXZlbnRzRmlyZWQgPSAwOworICAgIGZvY3VzRXZl
bnRzRmlyZWQgPSAwOworfQorCitmdW5jdGlvbiBtb3VzZUNsaWNrT24oeCwgeSkgeworICAgIGlm
ICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1cm47CisgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oeCArIGlucHV0Lm9mZnNldExlZnQsIHkgKyBpbnB1dC5vZmZzZXRUb3ApOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
K30KKworaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIG9uQmx1ckV2ZW50KTsKK2lucHV0
LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgb25Gb2N1c0V2ZW50KTsKKworY29uc3QgY2VudGVy
ID0gaW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKKworZGVidWcoIkZvY3VzL2JsdXIgdXNpbmcgbW91
c2VcbiIpOworCisvLyBDbGljayBvbiBtb250aCBmaWVsZC4KK21vdXNlQ2xpY2tPbigyMCwgY2Vu
dGVyKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDApOworLy8gQ2xpY2sgb24gZGF5IGZp
ZWxkLgorbW91c2VDbGlja09uKDYwLCBjZW50ZXIpOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQo
MSwgMCk7CisvLyBDbGljayBvbiB5ZWFyIGZpZWxkLgorbW91c2VDbGlja09uKDEyMCwgY2VudGVy
KTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDApOworLy8gQ2xpY2sgb24gY29udHJvbCwg
YnV0IG5vdCBhIHNwZWNpZmljIGZpZWxkLgorbW91c2VDbGlja09uKDI1MCwgY2VudGVyKTsKK2Fz
c2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDApOworLy8gQ2xpY2sgb3V0c2lkZSBjb250cm9sLgor
bW91c2VDbGlja09uKGlucHV0Lm9mZnNldFdpZHRoICsgNSwgaW5wdXQub2Zmc2V0SGVpZ2h0ICsg
NSk7Cithc3NlcnRGb2N1c0FuZEJsdXJDb3VudCgxLCAxKTsKK3Jlc2V0Rm9jdXNBbmRCbHVyQ291
bnQoKTsKKworZGVidWcoIlxuRm9jdXMvYmx1ciB1c2luZyBrZXlib2FyZFxuIik7CisKK1VJSGVs
cGVyLmFjdGl2YXRlRWxlbWVudChiZWZvcmUpOworLy8gRm9jdXMgb24gbW9udGggZmllbGQuCitV
SUhlbHBlci5rZXlEb3duKCJcdCIpOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMSwgMCk7Cisv
LyBGb2N1cyBvbiBkYXkgZmllbGQuCitVSUhlbHBlci5rZXlEb3duKCJcdCIpOworYXNzZXJ0Rm9j
dXNBbmRCbHVyQ291bnQoMSwgMCk7CisvLyBGb2N1cyBvbiB5ZWFyIGZpZWxkLgorVUlIZWxwZXIu
a2V5RG93bigiXHQiKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEsIDApOworLy8gRm9jdXMg
b3V0LgorVUlIZWxwZXIua2V5RG93bigiXHQiKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDEs
IDEpOworLy8gRm9jdXMgb24geWVhciBmaWVsZC4KK1VJSGVscGVyLmtleURvd24oIlx0IiwgWyJz
aGlmdEtleSJdKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50KDIsIDEpOworLy8gRm9jdXMgb24g
ZGF5IGZpZWxkLgorVUlIZWxwZXIua2V5RG93bigiXHQiLCBbInNoaWZ0S2V5Il0pOworYXNzZXJ0
Rm9jdXNBbmRCbHVyQ291bnQoMiwgMSk7CisvLyBGb2N1cyBvbiBtb250aCBmaWVsZC4KK1VJSGVs
cGVyLmtleURvd24oIlx0IiwgWyJzaGlmdEtleSJdKTsKK2Fzc2VydEZvY3VzQW5kQmx1ckNvdW50
KDIsIDEpOworLy8gRm9jdXMgb3V0LgorVUlIZWxwZXIua2V5RG93bigiXHQiLCBbInNoaWZ0S2V5
Il0pOworYXNzZXJ0Rm9jdXNBbmRCbHVyQ291bnQoMiwgMik7CisKKzwvc2NyaXB0PgorCis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Rh
dGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1rZXli
b2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2Rh
dGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQt
ZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzU4NzZiNzM1ODQ2NDlmODM5NWIwMWM3
ZWUzYjJmZWE4OTk5ZTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMt
a2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU5IEBACitUZXN0IGZvciBr
ZXlib2FyZCBvcGVyYXRpb25zIGZvciA8aW5wdXQgdHlwZT1kYXRlPgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworCitEaWdpdCBrZXlzCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEy
LTA5LTAyIgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBpcyA0CitQQVNTIGlucHV0RXZlbnRzRmly
ZWQgaXMgNAorCitEaWdpdCBrZXlzIHdpdGggbGVhZGluZyB6ZXJvCitQQVNTIGlucHV0LnZhbHVl
IGlzICIwMDM0LTA1LTA2IgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBpcyAzCitQQVNTIGlucHV0
RXZlbnRzRmlyZWQgaXMgMworCitEaWdpdCBrZXlzIGFuZCBiYWNrc3BhY2Uga2V5CitQQVNTIGlu
cHV0LnZhbHVlIGlzICIyMDIwLTAyLTA0IgorUEFTUyBjaGFuZ2VFdmVudHNGaXJlZCBpcyA2CitQ
QVNTIGlucHV0RXZlbnRzRmlyZWQgaXMgNgorCitEaWdpdCBrZXlzIHdpdGggdGltZW91dAorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMDAwMS0wMi0wNCIKK1BBU1MgY2hhbmdlRXZlbnRzRmlyZWQgaXMg
MgorUEFTUyBpbnB1dEV2ZW50c0ZpcmVkIGlzIDIKKworRGlnaXQga2V5cyBjbGFtcCB2YWx1ZQor
UEFTUyBpbnB1dC52YWx1ZSBpcyAiOTk5OS0xMi0zMSIKK1BBU1MgY2hhbmdlRXZlbnRzRmlyZWQg
aXMgNAorUEFTUyBpbnB1dEV2ZW50c0ZpcmVkIGlzIDQKKworTGVmdC9SaWdodCBhcnJvdyBrZXlz
CitQQVNTIGlucHV0LnZhbHVlIGlzICIwMDAyLTAyLTAyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MDAwMi0wMy0wMyIKK1BBU1MgY2hhbmdlRXZlbnRzRmlyZWQgaXMgMworUEFTUyBpbnB1dEV2ZW50
c0ZpcmVkIGlzIDMKKworVGFiIGtleQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMi0wMi0wMiIK
K1BBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCBpcyAiYWZ0ZXIiCitQQVNTIGlucHV0LnZh
bHVlIGlzICIwMDAyLTAzLTAzIgorUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIGlzICJi
ZWZvcmUiCitQQVNTIGNoYW5nZUV2ZW50c0ZpcmVkIGlzIDMKK1BBU1MgaW5wdXRFdmVudHNGaXJl
ZCBpcyAzCisKK0JhY2tzcGFjZSBrZXkKK1BBU1MgaW5wdXQudmFsdWUgaXMgIiIKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjIwMjAtMDctMjYiCitQQVNTIGNoYW5nZUV2ZW50c0ZpcmVkIGlzIDIKK1BB
U1MgaW5wdXRFdmVudHNGaXJlZCBpcyAyCisKK0RlbGV0ZSBrZXkKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIiIKK1BBU1MgY2hhbmdlRXZlbnRzRmlyZWQgaXMgMQorUEFTUyBpbnB1dEV2ZW50c0ZpcmVk
IGlzIDEKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
ICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxl
LWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWtleWJvYXJkLWV2ZW50cy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy9k
YXRlLWVkaXRhYmxlLWNvbXBvbmVudHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTJjYTY2ODY4Zjc0ZDYwNjk0ZThlZDA4Zjc1YmQ4M2MxMzkzOTA5ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBvbmVudHMv
ZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLWtleWJvYXJkLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEs
MTc0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorCis8aW5wdXQgaWQ9ImJlZm9yZSIgdHlwZT0idGV4dCI+Cis8aW5wdXQgaWQ9Imlu
cHV0IiB0eXBlPSJkYXRlIj4KKzxpbnB1dCBpZD0iYWZ0ZXIiIHR5cGU9InRleHQiPgorCis8c2Ny
aXB0PgorCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY2hhbmdlRXZlbnRzRmlyZWQgPSAwOwor
ZnVuY3Rpb24gb25DaGFuZ2VFdmVudCgpIHsKKyAgICBjaGFuZ2VFdmVudHNGaXJlZCsrOworfQor
CitpbnB1dEV2ZW50c0ZpcmVkID0gMDsKK2Z1bmN0aW9uIG9uSW5wdXRFdmVudCgpIHsKKyAgICBp
bnB1dEV2ZW50c0ZpcmVkKys7Cit9CisKK2Z1bmN0aW9uIGJlZ2luVGVzdCh0aXRsZSwgdmFsdWUp
IHsKKyAgICBkZWJ1ZygiXG4iICsgdGl0bGUpOworICAgIGlucHV0LnZhbHVlID0gdmFsdWUgfHwg
IiI7CisgICAgaW5wdXQuYmx1cigpOworICAgIGlucHV0LmZvY3VzKCk7CisKKyAgICBjaGFuZ2VF
dmVudHNGaXJlZCA9IDA7CisgICAgaW5wdXRFdmVudHNGaXJlZCA9IDA7Cit9CisKK2lucHV0LmFk
ZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIG9uQ2hhbmdlRXZlbnQpOworaW5wdXQuYWRkRXZlbnRM
aXN0ZW5lcigiaW5wdXQiLCBvbklucHV0RXZlbnQpOworCithZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgYXN5bmMgKCkgPT4geworICAgIGRlc2NyaXB0aW9uKCJUZXN0IGZvciBrZXlib2FyZCBvcGVy
YXRpb25zIGZvciAmbHQ7aW5wdXQgdHlwZT1kYXRlJmd0OyIpOworCisgICAgYmVnaW5UZXN0KCJE
aWdpdCBrZXlzIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFttbV0vZGQveXl5
eQorICAgIFVJSGVscGVyLmtleURvd24oIjkiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyAtPiBbMDldL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93
Iik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDkvW2RkXS95eXl5CisgICAgVUlIZWxw
ZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA5
L1swMl0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAgICAgICAg
ICAgICAgICAgICAgICAvLyAtPiAwOS8wMi9beXl5eV0KKyAgICBVSUhlbHBlci5rZXlEb3duKCIy
Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDkvMDIvWzAwMDJdCisg
ICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIC0+IDA5LzAyL1swMDIwXQorICAgIFVJSGVscGVyLmtleURvd24oIjEiKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwOS8wMi9bMDIwMV0KKyAgICBVSUhlbHBlci5r
ZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDkvMDIv
WzIwMTJdCisgICAgVUlIZWxwZXIua2V5RG93bigiQSIpOyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIElnbm9yZWQuCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52
YWx1ZSIsICIyMDEyLTA5LTAyIik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50c0ZpcmVkIiwg
IjQiKTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICI0Iik7CisKKyAgICBiZWdp
blRlc3QoIkRpZ2l0IGtleXMgd2l0aCBsZWFkaW5nIHplcm8iKTsgICAgICAgICAgICAgLy8gW21t
XS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIC0+IFswMF0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjUi
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBbMDVdL2RkL3l5eXkKKyAg
ICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gLT4gMDUvW2RkXS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA1L1swMF0veXl5eQorICAgIFVJSGVscGVyLmtl
eURvd24oIjYiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwNS9bMDZd
L3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gLT4gMDUvMDYvW3l5eXldCisgICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA1LzA2L1swMDAxXQorICAgIFVJ
SGVscGVyLmtleURvd24oIjAiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAt
PiAwNS8wNi9bMDAwMV0KKyAgICBVSUhlbHBlci5rZXlEb3duKCIzIik7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gLT4gMDUvMDYvWzAwMDNdCisgICAgVUlIZWxwZXIua2V5RG93
bigiNCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDA1LzA2L1swMDM0
XQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMDAzNC0wNS0wNiIp
OworICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVudHNGaXJlZCIsICIzIik7CisgICAgc2hvdWxkQmUo
ImlucHV0RXZlbnRzRmlyZWQiLCAiMyIpOworCisgICAgYmVnaW5UZXN0KCJEaWdpdCBrZXlzIGFu
ZCBiYWNrc3BhY2Uga2V5Iik7ICAgICAgICAgICAgIC8vIFttbV0vZGQveXl5eQorICAgIFVJSGVs
cGVyLmtleURvd24oIjEiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBb
MDFdL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJcYiIpOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gLT4gW21tXS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigi
MiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswMl0vZGQveXl5eQor
ICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAgICAgICAgICAgICAgICAgICAg
ICAvLyAtPiAwMi9bZGRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCIzIik7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvWzAzXS95eXl5CisgICAgVUlIZWxwZXIu
a2V5RG93bigiXGIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyL1tk
ZF0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oIjQiKTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAtPiAwMi9bMDRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdo
dEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvMDQvW3l5eXldCisgICAg
VUlIZWxwZXIua2V5RG93bigiNCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IC0+IDAyLzA0L1swMDA0XQorICAgIFVJSGVscGVyLmtleURvd24oIlxiIik7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wNC9beXl5eV0KKyAgICBVSUhlbHBlci5rZXlE
b3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvMDQvWzAw
MDJdCisgICAgVUlIZWxwZXIua2V5RG93bigiMCIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIC0+IDAyLzA0L1swMDIwXQorICAgIFVJSGVscGVyLmtleURvd24oIjIiKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wNC9bMDIwMl0KKyAgICBVSUhl
bHBlci5rZXlEb3duKCIwIik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4g
MDIvMDQvWzIwMjBdCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIy
MDIwLTAyLTA0Iik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50c0ZpcmVkIiwgIjYiKTsKKyAg
ICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICI2Iik7CisKKyAgICBiZWdpblRlc3QoIkRp
Z2l0IGtleXMgd2l0aCB0aW1lb3V0Iik7ICAgICAgICAgICAgICAgICAgLy8gW21tXS9kZC95eXl5
CisgICAgVUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIC0+IFswMl0vZGQveXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ci
KTsgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9bZGRdL3l5eXkKKyAgICBVSUhlbHBl
ci5rZXlEb3duKCI0Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIv
WzA0XS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigicmlnaHRBcnJvdyIpOyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIC0+IDAyLzA0L1t5eXl5XQorICAgIFVJSGVscGVyLmtleURvd24oIjQi
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8wNC9bMDAwNF0KKyAg
ICBhd2FpdCBVSUhlbHBlci5kZWxheUZvcigxNTAwKTsgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gV2FpdC4KKyAgICBVSUhlbHBlci5rZXlEb3duKCIxIik7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gLT4gMDIvMDQvWzAwMDFdCisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJpbnB1dC52YWx1ZSIsICIwMDAxLTAyLTA0Iik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50
c0ZpcmVkIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICIyIik7CisK
KyAgICBiZWdpblRlc3QoIkRpZ2l0IGtleXMgY2xhbXAgdmFsdWUiKTsgICAgICAgICAgICAgICAg
ICAgLy8gW21tXS9kZC95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiOSIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswOV0vZGQveXl5eQorICAgIFVJSGVscGVyLmtl
eURvd24oIjkiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBbMTJdL2Rk
L3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gLT4gMTIvW2RkXS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiOSIpOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDEyL1swOV0veXl5eQorICAgIFVJ
SGVscGVyLmtleURvd24oIjkiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAt
PiAxMi9bMzFdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7ICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gLT4gMTIvMzEvW3l5eXldCisgICAgVUlIZWxwZXIua2V5RG93
bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDEyLzMxL1swMDA5
XQorICAgIFVJSGVscGVyLmtleURvd24oIjkiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyAtPiAxMi8zMS9bMDA5OV0KKyAgICBVSUhlbHBlci5rZXlEb3duKCI5Iik7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMTIvMzEvWzA5OTldCisgICAgVUlIZWxw
ZXIua2V5RG93bigiOSIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDEy
LzMxL1s5OTk5XQorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiOTk5
OS0xMi0zMSIpOworICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVudHNGaXJlZCIsICI0Iik7CisgICAg
c2hvdWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAiNCIpOworCisgICAgYmVnaW5UZXN0KCJMZWZ0
L1JpZ2h0IGFycm93IGtleXMiKTsgICAgICAgICAgICAgICAgICAgIC8vIFttbV0vZGQveXl5eQor
ICAgIFVJSGVscGVyLmtleURvd24oIjIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyAtPiBbMDJdL2RkL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCJyaWdodEFycm93Iik7
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvW2RkXS95eXl5CisgICAgVUlIZWxwZXIu
a2V5RG93bigiMiIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyL1sw
Ml0veXl5eQorICAgIFVJSGVscGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsgICAgICAgICAgICAg
ICAgICAgICAgICAvLyAtPiAwMi8wMi9beXl5eV0KKyAgICBVSUhlbHBlci5rZXlEb3duKCIyIik7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gMDIvMDIvWzAwMDJdCisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIwMDAyLTAyLTAyIik7CisgICAg
VUlIZWxwZXIua2V5RG93bigibGVmdEFycm93Iik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IC0+IDAyL1swMl0vMDAwMgorICAgIFVJSGVscGVyLmtleURvd24oIjMiKTsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9bMDNdLzAwMDIKKyAgICBVSUhlbHBlci5rZXlE
b3duKCJsZWZ0QXJyb3ciKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLT4gWzAyXS8wMy8w
MDAyCisgICAgVUlIZWxwZXIua2V5RG93bigiMyIpOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIC0+IFswM10vMDMvMDAwMgorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW5w
dXQudmFsdWUiLCAiMDAwMi0wMy0wMyIpOworICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVudHNGaXJl
ZCIsICIzIik7CisgICAgc2hvdWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAiMyIpOworCisgICAg
YmVnaW5UZXN0KCJUYWIga2V5Iik7CisgICAgVUlIZWxwZXIua2V5RG93bigiMiIpOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IFswMl0vZGQveXl5eQorICAgIFVJSGVscGVy
LmtleURvd24oIlx0Iik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiAwMi9b
ZGRdL3l5eXkKKyAgICBVSUhlbHBlci5rZXlEb3duKCIyIik7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLy8gLT4gMDIvWzAyXS95eXl5CisgICAgVUlIZWxwZXIua2V5RG93bigiXHQi
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyLzAyL1t5eXl5XQorICAg
IFVJSGVscGVyLmtleURvd24oIjIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyAtPiAwMi8wMi9bMDAwMl0KKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImlucHV0LnZhbHVl
IiwgIjAwMDItMDItMDIiKTsKKyAgICBVSUhlbHBlci5rZXlEb3duKCJcdCIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gRm9jdXMgb3V0LgorICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5pZCIsICJhZnRlciIpOworICAgIFVJSGVscGVy
LmtleURvd24oIlx0IiwgWyJzaGlmdEtleSJdKTsgICAgICAgICAgICAgICAgICAvLyAtPiAwMi8w
Mi9bMDAwMl0KKyAgICBVSUhlbHBlci5rZXlEb3duKCJcdCIsIFsic2hpZnRLZXkiXSk7ICAgICAg
ICAgICAgICAgICAgLy8gLT4gMDIvWzAyXS8wMDAyCisgICAgVUlIZWxwZXIua2V5RG93bigiMyIp
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC0+IDAyL1swM10vMDAwMgorICAg
IFVJSGVscGVyLmtleURvd24oIlx0IiwgWyJzaGlmdEtleSJdKTsgICAgICAgICAgICAgICAgICAv
LyAtPiBbMDJdLzAzLzAwMDIKKyAgICBVSUhlbHBlci5rZXlEb3duKCIzIik7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gLT4gWzAzXS8wMy8wMDAyCisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIwMDAyLTAzLTAzIik7CisgICAgVUlIZWxwZXIua2V5
RG93bigiXHQiLCBbInNoaWZ0S2V5Il0pOyAgICAgICAgICAgICAgICAgIC8vIEZvY3VzIG91dC4K
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQiLCAi
YmVmb3JlIik7CisgICAgc2hvdWxkQmUoImNoYW5nZUV2ZW50c0ZpcmVkIiwgIjMiKTsKKyAgICBz
aG91bGRCZSgiaW5wdXRFdmVudHNGaXJlZCIsICIzIik7CisKKyAgICBiZWdpblRlc3QoIkJhY2tz
cGFjZSBrZXkiLCAiMjAyMC0wOC0yNiIpOyAgICAgICAgICAgICAgLy8gWzA4XS8yNi8yMDIwCisg
ICAgVUlIZWxwZXIua2V5RG93bigiXGIiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC8vIC0+IFttbV0vMjYvMjAyMAorICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFs
dWUiLCAiIik7CisgICAgVUlIZWxwZXIua2V5RG93bigiNyIpOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIC0+IFswN10vMjYvMjAyMAorICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiaW5wdXQudmFsdWUiLCAiMjAyMC0wNy0yNiIpOworICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVu
dHNGaXJlZCIsICIyIik7CisgICAgc2hvdWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAiMiIpOwor
CisgICAgYmVnaW5UZXN0KCJEZWxldGUga2V5IiwgIjIwMjAtMDgtMjYiKTsgICAgICAgICAgICAg
ICAgIC8vIFswOF0vMjYvMjAyMQorICAgIFVJSGVscGVyLmtleURvd24oImRlbGV0ZSIpOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvLyAtPiBbbW1dLzI2LzIwMjEKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImlucHV0LnZhbHVlIiwgIiIpOworICAgIHNob3VsZEJlKCJjaGFuZ2VFdmVu
dHNGaXJlZCIsICIxIik7CisgICAgc2hvdWxkQmUoImlucHV0RXZlbnRzRmlyZWQiLCAiMSIpOwor
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVk
aXRhYmxlLWNvbXBvbmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50cy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1j
b21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1tb3VzZS1ldmVudHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ3MGNhMDdlNzc1YzIxNGE3NDg0NWNiYTVmZWIwOGJlMDNlZTY3OTUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0
YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1tb3VzZS1ldmVudHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3QgZm9yIG1vdXNlIGV2ZW50cyBmb3IgPGlu
cHV0IHR5cGU9ZGF0ZT4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjIwMjAtMDktMjYiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDIwLTA5LTEy
IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMzAzMC0wOS0xMiIKK1BBU1MgaW5wdXQudmFsdWUgaXMg
IjMwMzAtMDUtMTIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIzMDMwLTA1LTEyIgorUEFTUyBjbGlj
a0V2ZW50c0ZpcmVkIGlzIDQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0
ZS1lZGl0YWJsZS1jb21wb25lbnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1tb3VzZS1ldmVu
dHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9kYXRlLWVkaXRhYmxlLWNvbXBv
bmVudHMvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzLW1vdXNlLWV2ZW50cy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU1ZDE5NmQ1NGYyY2MwYTE0ZWFkZDY1YzQ1MWIzNjY2ODhkNDQ0MWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25l
bnRzL2RhdGUtZWRpdGFibGUtY29tcG9uZW50cy1tb3VzZS1ldmVudHMuaHRtbApAQCAtMCwwICsx
LDg3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
K2lucHV0IHsKKyAgICB3aWR0aDogMzAwcHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1l
LWVkaXQtdGV4dCB7CisgICAgZm9udC1zaXplOiAzMHB4OworfQorCitpbnB1dDo6LXdlYmtpdC1k
YXRldGltZS1lZGl0LW1vbnRoLWZpZWxkIHsKKyAgICBmb250LXNpemU6IDMwcHg7Cit9CisKK2lu
cHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQtZGF5LWZpZWxkIHsKKyAgICBmb250LXNpemU6IDMw
cHg7Cit9CisKK2lucHV0Ojotd2Via2l0LWRhdGV0aW1lLWVkaXQteWVhci1maWVsZCB7CisgICAg
Zm9udC1zaXplOiAzMHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8aW5wdXQg
aWQ9ImlucHV0IiB0eXBlPSJkYXRlIiB2YWx1ZT0iMjAyMC0wOC0yNiI+CisKKzxzY3JpcHQ+CisK
K2Rlc2NyaXB0aW9uKCJUZXN0IGZvciBtb3VzZSBldmVudHMgZm9yICZsdDtpbnB1dCB0eXBlPWRh
dGUmZ3Q7Iik7CisKK2NsaWNrRXZlbnRzRmlyZWQgPSAwOworZnVuY3Rpb24gb25DbGlja0V2ZW50
KCkgeworICAgIGNsaWNrRXZlbnRzRmlyZWQrKzsKK30KKworZnVuY3Rpb24gbW91c2VDbGlja09u
KHgsIHkpIHsKKyAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyBpbnB1dC5vZmZzZXRMZWZ0LCB5ICsgaW5w
dXQub2Zmc2V0VG9wKTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7Cit9CisKK2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgb25D
bGlja0V2ZW50KTsKK2NvbnN0IGNlbnRlciA9IGlucHV0Lm9mZnNldEhlaWdodCAvIDI7CisKKy8v
IENsaWNrIG9uIG1vbnRoIGZpZWxkLgorbW91c2VDbGlja09uKDIwLCBjZW50ZXIpOworVUlIZWxw
ZXIua2V5RG93bigiOSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnB1dC52YWx1ZSIsICIy
MDIwLTA5LTI2Iik7CisKKy8vIENsaWNrIG9uIGRheSBmaWVsZC4KK21vdXNlQ2xpY2tPbig2MCwg
Y2VudGVyKTsKK1VJSGVscGVyLmtleURvd24oIjEiKTsKK1VJSGVscGVyLmtleURvd24oIjIiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW5wdXQudmFsdWUiLCAiMjAyMC0wOS0xMiIpOworCisv
LyBDbGljayBvbiB5ZWFyIGZpZWxkLgorbW91c2VDbGlja09uKDEyMCwgY2VudGVyKTsKK1VJSGVs
cGVyLmtleURvd24oIjMiKTsKK1VJSGVscGVyLmtleURvd24oIjAiKTsKK1VJSGVscGVyLmtleURv
d24oIjMiKTsKK1VJSGVscGVyLmtleURvd24oIjAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
aW5wdXQudmFsdWUiLCAiMzAzMC0wOS0xMiIpOworCisvLyBDbGljayBvbiBjb250cm9sLCBidXQg
bm90IGEgc3BlY2lmaWMgZmllbGQsIGRlZmF1bHRzIHRvIGZpcnN0IGZpZWxkLgorbW91c2VDbGlj
a09uKDI1MCwgY2VudGVyKTsKK1VJSGVscGVyLmtleURvd24oIjUiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygiaW5wdXQudmFsdWUiLCAiMzAzMC0wNS0xMiIpOworCisvLyBDbGljayBvdXRzaWRl
IGNvbnRyb2wuCittb3VzZUNsaWNrT24oaW5wdXQub2Zmc2V0V2lkdGggKyA1LCBpbnB1dC5vZmZz
ZXRIZWlnaHQgKyA1KTsKK1VJSGVscGVyLmtleURvd24oIjUiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygiaW5wdXQudmFsdWUiLCAiMzAzMC0wNS0xMiIpOworCitzaG91bGRCZSgiY2xpY2tFdmVu
dHNGaXJlZCIsICI0Iik7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWFj
YjNjZDVmYWUyNDVkZTg2Y2JjYWVhOWFmOGQ3ZGE5OGRjODVhMS4uZTAzZjI2YWUyY2YwZjY0YTU3
N2FjYzA0YTc4NjBjYWVkNzcwNGJmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTIsNiArMTIsNyBAQCBlZGl0aW5nL2ZpbmQgWyBQYXNz
IF0KIGVkaXRpbmcvdW5kby1tYW5hZ2VyIFsgUGFzcyBdCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZG9t
LXBhc3RlIFsgUGFzcyBdCiBmYXN0L2V2ZW50cy9jdXJzb3JzIFsgUGFzcyBdCitmYXN0L2Zvcm1z
L2RhdGUvZGF0ZS1lZGl0YWJsZS1jb21wb25lbnRzIFsgUGFzcyBdCiBmYXN0L2Zvcm1zL3NlbGVj
dC9tYWMtd2syIFsgUGFzcyBdCiBmYXN0L3NhbmRib3gvbWFjIFsgUGFzcyBdCiBmYXN0L3Njcm9s
bGluZy9tYWMgWyBQYXNzIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>