<?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>101889</bug_id>
          
          <creation_ts>2012-11-11 21:50:59 -0800</creation_ts>
          <short_desc>Enable calendar picker for input types datetime/datetime-local</short_desc>
          <delta_ts>2012-11-13 22:30:40 -0800</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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>101913</dependson>
    
    <dependson>101916</dependson>
          <blocked>29359</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kunihiko Sakamoto">ksakamoto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>mifenton</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>764029</commentid>
    <comment_count>0</comment_count>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-11-11 21:50:59 -0800</bug_when>
    <thetext>Implement calendar picker support for input type=datetime/datetime-local.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764092</commentid>
    <comment_count>1</comment_count>
      <attachid>173568</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-11-11 23:23:30 -0800</bug_when>
    <thetext>Created attachment 173568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764119</commentid>
    <comment_count>2</comment_count>
      <attachid>173568</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-12 00:24:54 -0800</bug_when>
    <thetext>Comment on attachment 173568
Patch

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

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:487
&gt; +void DateTimeEditElement::setValueFromCalendarPicker(const DateComponents&amp; date)

nit: It&apos;s not a good name because it doesn&apos;t represent what the function does.  My proposal is setOnlyYearMonthDay.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:498
&gt; +    setValueAsDateTimeFieldsState(dateTimeFieldsState);

Can you avoid to change the setValueAsDateTimeFieldsState signature?
I think passing a DateComponents for the old value as dateForReadOnlyField argument works well though I&apos;m not 100% sure.

&gt; Source/WebCore/html/shadow/PickerIndicatorElement.h:53
&gt; +    class PickerIndicatorOwner {
&gt; +    public:
&gt; +        virtual ~PickerIndicatorOwner() { }
&gt; +        virtual void pickerIndicatorChooseValue(const String&amp;) = 0;
&gt; +    };

Introducing PickerIndicatorOwner interface is nice.  However it&apos;s not great that it has only one function.
If you&apos;d like to introduce PickerIndicatorOwner, you should remove HTMLInputElement (hostInput()) dependency from PickerIndicatorElement, and PickerIndicatorOwner should replace the role of HTMLInputElement in PickerIndicatorElement.  Such change should be done *before* this bug.

&gt; Source/WebCore/rendering/RenderThemeChromiumCommon.cpp:56
&gt;      return type == InputTypeNames::date()
&gt;          || type == InputTypeNames::month()
&gt; -        || type == InputTypeNames::week();
&gt; +        || type == InputTypeNames::week()
&gt; +        || type == InputTypeNames::datetime()
&gt; +        || type == InputTypeNames::datetimelocal();

nit: please sort in alphabetical order</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764136</commentid>
    <comment_count>3</comment_count>
      <attachid>173568</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-12 00:53:40 -0800</bug_when>
    <thetext>Comment on attachment 173568
Patch

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

&gt;&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:498
&gt;&gt; +    setValueAsDateTimeFieldsState(dateTimeFieldsState);
&gt; 
&gt; Can you avoid to change the setValueAsDateTimeFieldsState signature?
&gt; I think passing a DateComponents for the old value as dateForReadOnlyField argument works well though I&apos;m not 100% sure.

Hmm, It won&apos;t work if there is a read-only field and fields has empty values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764138</commentid>
    <comment_count>4</comment_count>
      <attachid>173568</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-12 01:02:15 -0800</bug_when>
    <thetext>Comment on attachment 173568
Patch

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

&gt;&gt;&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:498
&gt;&gt;&gt; +    setValueAsDateTimeFieldsState(dateTimeFieldsState);
&gt;&gt; 
&gt;&gt; Can you avoid to change the setValueAsDateTimeFieldsState signature?
&gt;&gt; I think passing a DateComponents for the old value as dateForReadOnlyField argument works well though I&apos;m not 100% sure.
&gt; 
&gt; Hmm, It won&apos;t work if there is a read-only field and fields has empty values.

The logic same as BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue should work.
i.e. Use the previous value for dateForReadOnlyField if it&apos;s not empty, otherwise use StepRange::minimum().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764169</commentid>
    <comment_count>5</comment_count>
      <attachid>173568</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-11-12 02:23:36 -0800</bug_when>
    <thetext>Comment on attachment 173568
Patch

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

&gt;&gt; Source/WebCore/html/shadow/PickerIndicatorElement.h:53
&gt;&gt; +    };
&gt; 
&gt; Introducing PickerIndicatorOwner interface is nice.  However it&apos;s not great that it has only one function.
&gt; If you&apos;d like to introduce PickerIndicatorOwner, you should remove HTMLInputElement (hostInput()) dependency from PickerIndicatorElement, and PickerIndicatorOwner should replace the role of HTMLInputElement in PickerIndicatorElement.  Such change should be done *before* this bug.

OK, I will do that first. I&apos;ve filed another bug for this:
https://bugs.webkit.org/show_bug.cgi?id=101913</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766372</commentid>
    <comment_count>6</comment_count>
      <attachid>174064</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-11-13 21:00:57 -0800</bug_when>
    <thetext>Created attachment 174064
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766378</commentid>
    <comment_count>7</comment_count>
      <attachid>173568</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-11-13 21:03:44 -0800</bug_when>
    <thetext>Comment on attachment 173568
Patch

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

&gt;&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:487
&gt;&gt; +void DateTimeEditElement::setValueFromCalendarPicker(const DateComponents&amp; date)
&gt; 
&gt; nit: It&apos;s not a good name because it doesn&apos;t represent what the function does.  My proposal is setOnlyYearMonthDay.

Renamed it to setOnlyYearMonthDay.

&gt;&gt;&gt;&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:498
&gt;&gt;&gt;&gt; +    setValueAsDateTimeFieldsState(dateTimeFieldsState);
&gt;&gt;&gt; 
&gt;&gt;&gt; Can you avoid to change the setValueAsDateTimeFieldsState signature?
&gt;&gt;&gt; I think passing a DateComponents for the old value as dateForReadOnlyField argument works well though I&apos;m not 100% sure.
&gt;&gt; 
&gt;&gt; Hmm, It won&apos;t work if there is a read-only field and fields has empty values.
&gt; 
&gt; The logic same as BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue should work.
&gt; i.e. Use the previous value for dateForReadOnlyField if it&apos;s not empty, otherwise use StepRange::minimum().

Done.
Thanks to your refactoring, now setValueAsDateTimeFieldsState does not require dateForReadOnlyField.

&gt;&gt; Source/WebCore/rendering/RenderThemeChromiumCommon.cpp:56
&gt;&gt; +        || type == InputTypeNames::datetimelocal();
&gt; 
&gt; nit: please sort in alphabetical order

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766384</commentid>
    <comment_count>8</comment_count>
      <attachid>174064</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-13 21:06:24 -0800</bug_when>
    <thetext>Comment on attachment 174064
Patch 2

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

&gt; LayoutTests/ChangeLog:12
&gt; +        * platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local-expected.txt: Added.
&gt; +        * platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html: Added.

nit: Please rename calendar-picker-datetime-local.html to calendar-picker-datetimelocal.html.  We omit &apos;-&apos; of datetime-local for test names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766396</commentid>
    <comment_count>9</comment_count>
      <attachid>174071</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-11-13 21:35:50 -0800</bug_when>
    <thetext>Created attachment 174071
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766398</commentid>
    <comment_count>10</comment_count>
      <attachid>174064</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-11-13 21:36:29 -0800</bug_when>
    <thetext>Comment on attachment 174064
Patch 2

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

&gt;&gt; LayoutTests/ChangeLog:12
&gt;&gt; +        * platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html: Added.
&gt; 
&gt; nit: Please rename calendar-picker-datetime-local.html to calendar-picker-datetimelocal.html.  We omit &apos;-&apos; of datetime-local for test names.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766399</commentid>
    <comment_count>11</comment_count>
      <attachid>174071</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-13 21:37:43 -0800</bug_when>
    <thetext>Comment on attachment 174071
Patch 3

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766446</commentid>
    <comment_count>12</comment_count>
      <attachid>174071</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 22:30:36 -0800</bug_when>
    <thetext>Comment on attachment 174071
Patch 3

Clearing flags on attachment: 174071

Committed r134546: &lt;http://trac.webkit.org/changeset/134546&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766447</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 22:30:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173568</attachid>
            <date>2012-11-11 23:23:30 -0800</date>
            <delta_ts>2012-11-13 21:03:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101889-20121112162132.patch</filename>
            <type>text/plain</type>
            <size>43947</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI1NTRmYTAwNGI2OGUx
YzdjY2RkMmM5MGFlZTMzYTRhYTEwYzVhYS4uMjA4NmQ3YTM3YzM3NWY4MmUwZjBjODVhNDRjZGI2
ZDU4ZWU1MWMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTExLTEyICBLdW5p
aGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRW5hYmxl
IGNhbGVuZGFyIHBpY2tlciBmb3IgaW5wdXQgdHlwZXMgZGF0ZXRpbWUvZGF0ZXRpbWUtbG9jYWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg4OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRk
cyBjYWxlbmRhciBwaWNrZXIgdG8gPGlucHV0IHR5cGU9ZGF0ZXRpbWU+IGFuZCA8aW5wdXQgdHlw
ZT1kYXRldGltZS1sb2NhbD4uCisgICAgICAgIFdoZW4gYSB1c2VyIGNob29zZSBhIGRhdGUgZnJv
bSBjYWxlbmRhciBwaWNrZXIsIHllYXIvbW9udGgvZGF5IGZpZWxkcyBvZiB0aGUgaW5wdXQKKyAg
ICAgICAgZWxlbWVudCBhcmUgdXBkYXRlZCBhbmQgaG91ci9taW51dGUvc2Vjb25kIGZpZWxkcyBh
cmUgdW5jaGFuZ2VkLgorCisgICAgICAgIFRlc3RzOiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zv
cm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZXRpbWUtbG9jYWwuaHRtbAor
ICAgICAgICAgICAgICAgcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNr
ZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLmh0bWwKKworICAgICAgICAqIFJlc291cmNlcy9w
YWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOiBEYXkucGFyc2UgYWNjZXB0cyBkYXRldGltZSBz
dHJpbmcgKGp1c3QgZHJvcHMgdGltZSBwYXJ0KS4KKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpwaWNrZXJJbmRpY2F0b3JDaG9vc2VW
YWx1ZSk6IEFkZGVkLgorICAgICAgICBJdCBoYW5kbGVzIHZhbHVlcyBmcm9tIGNhbGVuZGFyIHBp
Y2tlciBhbmQgc3VnZ2VzdGlvbiBwaWNrZXIuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZU11
bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6QmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6Cisg
ICAgICAgICogaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oOgor
ICAgICAgICAoQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUpOiBJbXBsZW1l
bnRzIFBpY2tlckluZGljYXRvck93bmVyLgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVU
aW1lRmllbGRzU3RhdGUpOiBEYXRlVGltZUZpZWxkc1N0YXRlOjptb250aCgpIHJldHVybnMgMS0x
MiwKKyAgICAgICAgbm90IDAtMTEuCisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmZvcm1h
dERhdGVUaW1lRmllbGRzU3RhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1l
bnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKTogQ2hhbmdlZCBkYXRlRm9yUmVhZE9u
bHlGaWVsZCB0byBhbgorICAgICAgICBvcHRpb25hbCBwb2ludGVyLiBJZiBpdCBpcyBudWxsLCB2
YWx1ZXMgYXJlIHNldCBvbmx5IGZvciB0aG9zZSBkYXRlVGltZUZpZWxkc1N0YXRlIGhhcyB2YWxp
ZCB2YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldFZhbHVl
RnJvbUNhbGVuZGFyUGlja2VyKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6CisgICAgICAgIChEYXRlVGltZUVk
aXRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5o
OgorICAgICAgICAoRGF0ZVRpbWVGaWVsZEVsZW1lbnQpOiBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVs
ZHNTdGF0ZSgpIHJldHVybnMgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIKKyAgICAgICAgdmFs
dWUgaXMgc2V0IG9yIG5vdC4gU2V0dGluZyBlbXB0eSB2YWx1ZSBmb3IgcmVhZG9ubHkgZmllbGRz
IGlzIGl0cyBjYWxsZXIncyByZXNwb25zaWJpbGl0eS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudHMuY3BwOiBVcGRhdGVkIHNldFZhbHVlQXNEYXRlVGltZUZpZWxk
c1N0YXRlKCkgYWNjb3JkaW5nbHkuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUFNUE1GaWVs
ZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGVUaW1lRGF5RmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVl
QXNEYXRlVGltZUZpZWxkc1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTWlsbGlz
ZWNvbmRGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lTWludXRlRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRp
bWVGaWVsZHNTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU1vbnRoRmllbGRFbGVt
ZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZVNlY29uZEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50Ojpz
ZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGlt
ZVdlZWtGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lWWVhckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1l
RmllbGRzU3RhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50
cy5oOgorICAgICAgICAoRGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50KToKKyAgICAgICAgKERhdGVU
aW1lRGF5RmllbGRFbGVtZW50KToKKyAgICAgICAgKERhdGVUaW1lSG91ckZpZWxkRWxlbWVudCk6
CisgICAgICAgIChEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KToKKyAgICAgICAgKERh
dGVUaW1lTWludXRlRmllbGRFbGVtZW50KToKKyAgICAgICAgKERhdGVUaW1lTW9udGhGaWVsZEVs
ZW1lbnQpOgorICAgICAgICAoRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQpOgorICAgICAgICAo
RGF0ZVRpbWVTeW1ib2xpY01vbnRoRmllbGRFbGVtZW50KToKKyAgICAgICAgKERhdGVUaW1lV2Vl
a0ZpZWxkRWxlbWVudCk6CisgICAgICAgIChEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L1BpY2tlckluZGljYXRvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGlja2VySW5kaWNhdG9yRWxlbWVudDo6UGlja2VySW5kaWNhdG9yRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpQaWNrZXJJbmRpY2F0b3JFbGVtZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGlja2VySW5kaWNhdG9yRWxlbWVudDo6ZGlkQ2hvb3NlVmFsdWUpOiBD
YWxsIFBpY2tlckluZGljYXRvck93bmVyOjpwaWNrZXJJbmRpY2F0b3JDaG9vc2VWYWx1ZSgpCisg
ICAgICAgIGluc3RlYWQgb2YgZWxlbWVudC0+c2V0VmFsdWUoKS4KKyAgICAgICAgKiBodG1sL3No
YWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50Lmg6CisgICAgICAgIChQaWNrZXJJbmRpY2F0b3JF
bGVtZW50KTogQWRkZWQgYSBQaWNrZXJJbmRpY2F0b3JPd25lciBtZW1iZXIuCisgICAgICAgIChQ
aWNrZXJJbmRpY2F0b3JPd25lcik6IEFuIGludGVyZmFjZSBjbGFzcyBmb3IgY29tbXVuaWNhdGlu
ZyBwaWNrZXIgaW5kaWNhdG9yIGFuZCBpdHMgb3duZXIuCisgICAgICAgIChXZWJDb3JlOjpQaWNr
ZXJJbmRpY2F0b3JFbGVtZW50OjpQaWNrZXJJbmRpY2F0b3JPd25lcjo6flBpY2tlckluZGljYXRv
ck93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlBpY2tlckluZGljYXRvckVsZW1lbnQ6OnJlbW92
ZVBpY2tlckluZGljYXRvck93bmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bUNvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVt
Q29tbW9uOjpzdXBwb3J0c0NhbGVuZGFyUGlja2VyKTogUmV0dXJuIHRydWUgZm9yIGRhdGV0aW1l
IGFuZCBkYXRldGltZWxvY2FsIHRvby4KKwogMjAxMi0xMS0wOSAgVGllbi1SZW4gQ2hlbiAgPHRy
Y2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ29ycmVjdCBoaXQtdGVzdCBwb2ludCBzY2Fs
aW5nIGZvciBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9jYWxlbmRhclBpY2tlci5qcyBiL1NvdXJjZS9XZWJD
b3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzCmluZGV4IGFmNTEyZDhl
NDg4YWQzYzAzNmY1Njk2Y2RjYjYyYzAzN2I5NTg0NTQuLjdjYzA3Y2NmYjA1YzJiMWQ4ZTI1YzBm
YzVlODA2ZWU4OWNmM2M0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9w
YWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNl
cy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzCkBAIC0yMjAsNyArMjIwLDcgQEAgZnVuY3Rp
b24gRGF5KHZhbHVlT3JEYXlPclllYXIsIG1vbnRoLCBkYXRlKSB7CiAgICAgdGhpcy5kYXRlID0g
ZGF0ZU9iamVjdC5nZXRVVENEYXRlKCk7CiB9OwogCi1EYXkuSVNPU3RyaW5nUmVnRXhwID0gL14o
XGQrKS0oXGQrKS0oXGQrKSQvOworRGF5LklTT1N0cmluZ1JlZ0V4cCA9IC9eKFxkKyktKFxkKykt
KFxkKykvOwogCiAvKioKICAqIEBwYXJhbSB7IXN0cmluZ30gc3RyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuY3BwCmluZGV4IGU3MGQwMGE4MWFmNWIxOTljMGEyODBmODY5ZWFiOGZlNDQ2Yzc0ODcu
LjQ5OTU3Y2M5NTE4ZGQ5NTEwOWY2YjJhNWY4MjYxYzVhNDJjNjVhZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwCkBAIC0xMjMsNiArMTIzLDIxIEBAIHZvaWQgQmFzZU11bHRpcGxlRmll
bGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNwaW5CdXR0b25TdGVwVXAoKQogICAgICAgICBtX2Rh
dGVUaW1lRWRpdEVsZW1lbnQtPnN0ZXBVcCgpOwogfQogCit2b2lkIEJhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpwaWNrZXJJbmRpY2F0b3JDaG9vc2VWYWx1ZShjb25zdCBT
dHJpbmcmIHZhbHVlKQoreworICAgIGlmIChlbGVtZW50KCktPmlzVmFsaWRWYWx1ZSh2YWx1ZSkp
IHsKKyAgICAgICAgZWxlbWVudCgpLT5zZXRWYWx1ZSh2YWx1ZSwgRGlzcGF0Y2hDaGFuZ2VFdmVu
dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxl
bWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgdW5z
aWduZWQgZW5kOworICAgIGlmIChkYXRlLnBhcnNlRGF0ZSh2YWx1ZS5jaGFyYWN0ZXJzKCksIHZh
bHVlLmxlbmd0aCgpLCAwLCBlbmQpICYmIGVuZCA9PSB2YWx1ZS5sZW5ndGgoKSkKKyAgICAgICAg
bV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRWYWx1ZUZyb21DYWxlbmRhclBpY2tlcihkYXRlKTsK
K30KKwogQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiAg
ICAgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVudCkKICAgICAsIG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudCgwKQpAQCAtMTM5LDYgKzE1NCw4IEBAIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlOjp+QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUo
CiAgICAgICAgIG1fc3BpbkJ1dHRvbkVsZW1lbnQtPnJlbW92ZVNwaW5CdXR0b25Pd25lcigpOwog
ICAgIGlmIChtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxl
bWVudC0+cmVtb3ZlRWRpdENvbnRyb2xPd25lcigpOworICAgIGlmIChtX3BpY2tlckluZGljYXRv
ckVsZW1lbnQpCisgICAgICAgIG1fcGlja2VySW5kaWNhdG9yRWxlbWVudC0+cmVtb3ZlUGlja2Vy
SW5kaWNhdG9yT3duZXIoKTsKIH0KIAogdm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6Ymx1cigpCkBAIC0xODMsNyArMjAwLDcgQEAgdm9pZCBCYXNlTXVsdGlwbGVG
aWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgICAg
IG1fcGlja2VySW5kaWNhdG9ySXNBbHdheXNWaXNpYmxlID0gdHJ1ZTsKICAgICB9CiAgICAgaWYg
KHNob3VsZEFkZFBpY2tlckluZGljYXRvcikgewotICAgICAgICBSZWZQdHI8UGlja2VySW5kaWNh
dG9yRWxlbWVudD4gcGlja2VyRWxlbWVudCA9IFBpY2tlckluZGljYXRvckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7CisgICAgICAgIFJlZlB0cjxQaWNrZXJJbmRpY2F0b3JFbGVtZW50PiBwaWNr
ZXJFbGVtZW50ID0gUGlja2VySW5kaWNhdG9yRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCAqdGhp
cyk7CiAgICAgICAgIG1fcGlja2VySW5kaWNhdG9yRWxlbWVudCA9IHBpY2tlckVsZW1lbnQuZ2V0
KCk7CiAgICAgICAgIGNvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9waWNrZXJJbmRpY2F0b3JFbGVt
ZW50KTsKICAgICAgICAgbV9waWNrZXJJbmRpY2F0b3JJc1Zpc2libGUgPSB0cnVlOwpAQCAtMjAx
LDYgKzIxOCwxMCBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
OjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+
cmVtb3ZlRWRpdENvbnRyb2xPd25lcigpOwogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQg
PSAwOwogICAgIH0KKyAgICBpZiAobV9waWNrZXJJbmRpY2F0b3JFbGVtZW50KSB7CisgICAgICAg
IG1fcGlja2VySW5kaWNhdG9yRWxlbWVudC0+cmVtb3ZlUGlja2VySW5kaWNhdG9yT3duZXIoKTsK
KyAgICAgICAgbV9waWNrZXJJbmRpY2F0b3JFbGVtZW50ID0gMDsKKyAgICB9CiAgICAgQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpOwogfQogCkBAIC0yODEs
NyArMzAyLDcgQEAgdm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUMKICAgICBEYXRlQ29tcG9uZW50cyBk
YXRlOwogICAgIHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhjcmVhdGVTdGVwUmFuZ2Uo
QW55SXNEZWZhdWx0U3RlcCkubWluaW11bSgpLnRvRG91YmxlKCksICZkYXRlKTsKICAgICBEYXRl
VGltZUZpZWxkc1N0YXRlIGRhdGVUaW1lRmllbGRzU3RhdGUgPSBEYXRlVGltZUZpZWxkc1N0YXRl
OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShzdGF0ZSk7Ci0gICAgbV9kYXRlVGltZUVkaXRFbGVt
ZW50LT5zZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShkYXRlVGltZUZpZWxkc1N0YXRlLCBk
YXRlKTsKKyAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNEYXRlVGltZUZpZWxk
c1N0YXRlKGRhdGVUaW1lRmllbGRzU3RhdGUsICZkYXRlKTsKICAgICBlbGVtZW50KCktPnNldFZh
bHVlSW50ZXJuYWwoc2FuaXRpemVWYWx1ZShtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlKCkp
LCBEaXNwYXRjaE5vRXZlbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggOWM3
NWJiMmM1MmVlYTYwNzQ4MmNmMTQ3ZDYzN2VkMzZlMzVhNjViZS4uNTNjNWY1ZDk5NmViZDgxZDg1
ZDMzODE2NmUzYzM1Y2JjNDJiNmE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaApAQCAtMzUs
MTMgKzM1LDEyIEBACiAKICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQogI2lu
Y2x1ZGUgIkRhdGVUaW1lRWRpdEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQaWNrZXJJbmRpY2F0b3JF
bGVtZW50LmgiCiAjaW5jbHVkZSAiU3BpbkJ1dHRvbkVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBQaWNrZXJJbmRpY2F0b3JFbGVtZW50OwotCi1jbGFzcyBCYXNlTXVs
dGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUsIHByb3RlY3RlZCBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVy
IHsKK2NsYXNzIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGlj
IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSwgcHJvdGVjdGVkIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OkVkaXRDb250cm9sT3duZXIsIHByb3RlY3RlZCBQaWNrZXJJbmRpY2F0b3JFbGVtZW50OjpQaWNr
ZXJJbmRpY2F0b3JPd25lciB7CiBwcm90ZWN0ZWQ6CiAgICAgQmFzZU11bHRpcGxlRmllbGRzRGF0
ZUFuZFRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCopOwogICAgIHZpcnR1YWwgfkJhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlKCk7CkBAIC02Niw2ICs2NSw5IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNwaW5CdXR0b25TdGVwRG93bigpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBzcGluQnV0dG9uU3RlcFVwKCkgT1ZFUlJJREU7CiAKKyAgICAvLyBQ
aWNrZXJJbmRpY2F0b3JFbGVtZW50OjpQaWNrZXJJbmRpY2F0b3JPd25lciBmdW5jdGlvbnMKKyAg
ICB2aXJ0dWFsIHZvaWQgcGlja2VySW5kaWNhdG9yQ2hvb3NlVmFsdWUoY29uc3QgU3RyaW5nJikg
T1ZFUlJJREU7CisKICAgICAvLyBJbnB1dFR5cGUgZnVuY3Rpb25zCiAgICAgdmlydHVhbCB2b2lk
IGJsdXIoKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFIEZJTkFM
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAppbmRleCAwZWNhYjZl
NmZhNDlhYzBiZGVkNGQ0ZTViZmFmZTRiMzhlZWIxZjljLi4zY2Q3MDFjOGE0MDMzY2ZkZjA1NjRi
MzdkZjkwN2Q4ODc0YzgyZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRU
eXBlLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIFN0cmluZyBEYXRlVGltZUlucHV0VHlwZTo6Zm9y
bWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkCiAgICAg
aWYgKGRhdGVUaW1lRmllbGRzU3RhdGUuaGFzTWlsbGlzZWNvbmQoKSAmJiBkYXRlVGltZUZpZWxk
c1N0YXRlLm1pbGxpc2Vjb25kKCkpIHsKICAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIl
MDR1LSUwMnUtJTAydVQlMDJ1OiUwMnU6JTAydS4lMDN1WiIsCiAgICAgICAgICAgICBkYXRlVGlt
ZUZpZWxkc1N0YXRlLnllYXIoKSwKLSAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubW9u
dGgoKSArIDEsCisgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLm1vbnRoKCksCiAgICAg
ICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLmRheU9mTW9udGgoKSwKICAgICAgICAgICAgIGRh
dGVUaW1lRmllbGRzU3RhdGUuaG91cjIzKCksCiAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0
YXRlLm1pbnV0ZSgpLApAQCAtMTI4LDcgKzEyOCw3IEBAIFN0cmluZyBEYXRlVGltZUlucHV0VHlw
ZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBk
CiAgICAgaWYgKGRhdGVUaW1lRmllbGRzU3RhdGUuaGFzU2Vjb25kKCkgJiYgZGF0ZVRpbWVGaWVs
ZHNTdGF0ZS5zZWNvbmQoKSkgewogICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiUwNHUt
JTAydS0lMDJ1VCUwMnU6JTAydTolMDJ1WiIsCiAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0
YXRlLnllYXIoKSwKLSAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubW9udGgoKSArIDEs
CisgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLm1vbnRoKCksCiAgICAgICAgICAgICBk
YXRlVGltZUZpZWxkc1N0YXRlLmRheU9mTW9udGgoKSwKICAgICAgICAgICAgIGRhdGVUaW1lRmll
bGRzU3RhdGUuaG91cjIzKCksCiAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLm1pbnV0
ZSgpLApAQCAtMTM3LDcgKzEzNyw3IEBAIFN0cmluZyBEYXRlVGltZUlucHV0VHlwZTo6Zm9ybWF0
RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkCiAKICAgICBy
ZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiUwNHUtJTAydS0lMDJ1VCUwMnU6JTAydVoiLAogICAgICAg
ICBkYXRlVGltZUZpZWxkc1N0YXRlLnllYXIoKSwKLSAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0
ZS5tb250aCgpICsgMSwKKyAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpLAogICAg
ICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLmRheU9mTW9udGgoKSwKICAgICAgICAgZGF0ZVRpbWVG
aWVsZHNTdGF0ZS5ob3VyMjMoKSwKICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taW51dGUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcApp
bmRleCA5MzczY2JlYzI4ZDk0MTlmNGNkZmNiN2M4Njk3NzUzZjQ4OWFlODllLi45ZGU3NzczYjRl
OTEwYmM3ODA4NDYzNzlkYWYxMzk2MDExNDM3MTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCBTdHJpbmcg
RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBE
YXRlVGltZUZpZWxkc1N0YQogICAgIGlmIChkYXRlVGltZUZpZWxkc1N0YXRlLmhhc01pbGxpc2Vj
b25kKCkgJiYgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taWxsaXNlY29uZCgpKSB7CiAgICAgICAgIHJl
dHVybiBTdHJpbmc6OmZvcm1hdCgiJTA0dS0lMDJ1LSUwMnVUJTAydTolMDJ1OiUwMnUuJTAzdSIs
CiAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLnllYXIoKSwKLSAgICAgICAgICAgIGRh
dGVUaW1lRmllbGRzU3RhdGUubW9udGgoKSArIDEsCisgICAgICAgICAgICBkYXRlVGltZUZpZWxk
c1N0YXRlLm1vbnRoKCksCiAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLmRheU9mTW9u
dGgoKSwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuaG91cjIzKCksCiAgICAgICAg
ICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLm1pbnV0ZSgpLApAQCAtMTM0LDcgKzEzNCw3IEBAIFN0
cmluZyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNv
bnN0IERhdGVUaW1lRmllbGRzU3RhCiAgICAgaWYgKGRhdGVUaW1lRmllbGRzU3RhdGUuaGFzU2Vj
b25kKCkgJiYgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5zZWNvbmQoKSkgewogICAgICAgICByZXR1cm4g
U3RyaW5nOjpmb3JtYXQoIiUwNHUtJTAydS0lMDJ1VCUwMnU6JTAydTolMDJ1IiwKICAgICAgICAg
ICAgIGRhdGVUaW1lRmllbGRzU3RhdGUueWVhcigpLAotICAgICAgICAgICAgZGF0ZVRpbWVGaWVs
ZHNTdGF0ZS5tb250aCgpICsgMSwKKyAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubW9u
dGgoKSwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuZGF5T2ZNb250aCgpLAogICAg
ICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5ob3VyMjMoKSwKICAgICAgICAgICAgIGRhdGVU
aW1lRmllbGRzU3RhdGUubWludXRlKCksCkBAIC0xNDMsNyArMTQzLDcgQEAgU3RyaW5nIERhdGVU
aW1lTG9jYWxJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRp
bWVGaWVsZHNTdGEKIAogICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJTA0dS0lMDJ1LSUwMnVU
JTAydTolMDJ1IiwKICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS55ZWFyKCksCi0gICAgICAg
IGRhdGVUaW1lRmllbGRzU3RhdGUubW9udGgoKSArIDEsCisgICAgICAgIGRhdGVUaW1lRmllbGRz
U3RhdGUubW9udGgoKSwKICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5kYXlPZk1vbnRoKCks
CiAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuaG91cjIzKCksCiAgICAgICAgIGRhdGVUaW1l
RmllbGRzU3RhdGUubWludXRlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAppbmRleCBkYzZiMjU3NjEwYzBhODM0OTA1ZmM2YTg0
OWRmZWU3N2Y0MThkNjJjLi4xY2Y0NWYyODFiNmQzNTljODMyZTA1NTg0NGRlOTc5MjE5YjQwMGE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmNwcApAQCAtNDYyLDEwICs0NjIsMTQgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpz
ZXRWYWx1ZUFzRGF0ZShjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXIKICAg
ICAgICAgbV9maWVsZHNbZmllbGRJbmRleF0tPnNldFZhbHVlQXNEYXRlKGRhdGUpOwogfQogCi12
b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNv
bnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIGRhdGVUaW1lRmllbGRzU3RhdGUsIGNvbnN0IERhdGVD
b21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0
ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMqIGRhdGVGb3JSZWFk
T25seUZpZWxkKQogewotICAgIGZvciAoc2l6ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4
IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgpCi0gICAgICAgIG1fZmllbGRzW2ZpZWxk
SW5kZXhdLT5zZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShkYXRlVGltZUZpZWxkc1N0YXRl
LCBkYXRlRm9yUmVhZE9ubHlGaWVsZCk7CisgICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7
IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkgeworICAgICAgICBp
ZiAoIW1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShk
YXRlVGltZUZpZWxkc1N0YXRlKSkgeworICAgICAgICAgICAgaWYgKGRhdGVGb3JSZWFkT25seUZp
ZWxkKQorICAgICAgICAgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRFbXB0eVZhbHVl
KCpkYXRlRm9yUmVhZE9ubHlGaWVsZCk7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIHZvaWQgRGF0
ZVRpbWVFZGl0RWxlbWVudDo6c2V0RW1wdHlWYWx1ZShjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJiBs
YXlvdXRQYXJhbWV0ZXJzLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5Rmll
bGQpCkBAIC00ODAsNiArNDg0LDIxIEBAIGJvb2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6aGFzRm9j
dXNlZEZpZWxkKCkKICAgICByZXR1cm4gZm9jdXNlZEZpZWxkSW5kZXgoKSAhPSBpbnZhbGlkRmll
bGRJbmRleDsKIH0KIAordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUZyb21DYWxl
bmRhclBpY2tlcihjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKK3sKKyAgICBBU1NFUlQoZGF0
ZS50eXBlKCkgPT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpOworCisgICAgaWYgKCFtX2VkaXRDb250
cm9sT3duZXIpCisgICAgICAgIHJldHVybjsKKworICAgIERhdGVUaW1lRmllbGRzU3RhdGUgZGF0
ZVRpbWVGaWVsZHNTdGF0ZSA9IHZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKCk7CisgICAgZGF0
ZVRpbWVGaWVsZHNTdGF0ZS5zZXRZZWFyKGRhdGUuZnVsbFllYXIoKSk7CisgICAgZGF0ZVRpbWVG
aWVsZHNTdGF0ZS5zZXRNb250aChkYXRlLm1vbnRoKCkgKyAxKTsKKyAgICBkYXRlVGltZUZpZWxk
c1N0YXRlLnNldERheU9mTW9udGgoZGF0ZS5tb250aERheSgpKTsKKyAgICBzZXRWYWx1ZUFzRGF0
ZVRpbWVGaWVsZHNTdGF0ZShkYXRlVGltZUZpZWxkc1N0YXRlKTsKKyAgICBtX2VkaXRDb250cm9s
T3duZXItPmVkaXRDb250cm9sVmFsdWVDaGFuZ2VkKCk7Cit9CisKIHZvaWQgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6c3RlcERvd24oKQogewogICAgIGlmIChEYXRlVGltZUZpZWxkRWxlbWVudCogY29u
c3QgZmllbGQgPSBmb2N1c2VkRmllbGQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAppbmRleCAzNWM1YmM3ZThlZjJkYzgzYTFlNGZlNzJm
OTFjOGZjNGUxMTZiYjUzLi41MjNhY2JhOGJlZGZmMDJlNzI2YTRiYzdjNDJjNzUzYWVkOWYyODI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVu
dC5oCkBAIC05Nyw3ICs5Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0RmllbGRzKCk7CiAg
ICAgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmLCBjb25zdCBEYXRl
Q29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpOwogICAgIHZvaWQgc2V0VmFsdWVBc0Rh
dGUoY29uc3QgTGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7Ci0gICAg
dm9pZCBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0
YXRlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKTsKKyAgICB2
b2lkIHNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3Rh
dGUmLCBjb25zdCBEYXRlQ29tcG9uZW50cyogZGF0ZUZvclJlYWRPbmx5RmllbGQgPSAwKTsKKyAg
ICB2b2lkIHNldFZhbHVlRnJvbUNhbGVuZGFyUGlja2VyKGNvbnN0IERhdGVDb21wb25lbnRzJik7
CiAgICAgdm9pZCBzdGVwRG93bigpOwogICAgIHZvaWQgc3RlcFVwKCk7CiAgICAgU3RyaW5nIHZh
bHVlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRl
VGltZUZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVG
aWVsZEVsZW1lbnQuaAppbmRleCA2NDk3MzQ1NzNhYTFlMzQ5ZGRhYjkwZDVlMDY1MTA5NDA2MTIz
ODBhLi4xNTJlMDE5Y2MyMjFkMWEzMGI4MjcyMDRmZDc5YjY1YTE2MmI2MGRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50LmgKQEAgLTY3
LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVhZE9ubHkoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RW1wdHlWYWx1ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5
RmllbGQsIEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmll
bGRzU3RhdGUmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0lu
dGVnZXIoaW50LCBFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHN0ZXBEb3duKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzdGVwVXAoKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxl
bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1l
bnRzLmNwcAppbmRleCA4NGRjNTJkYTNiNzFhODY4NTE3ZGU2ZjZmNTYzNDUxZmUzYWJkOGI1Li45
MjY5MzNjYmRjODM0NDZiMWMyODljMjBmMWVmZTNkZTFlMTIxMzJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAKQEAgLTYx
LDEyICs2MSwxMyBAQCB2b2lkIERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0Rh
dGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCiAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0
ZS5ob3VyKCkgPj0gMTIgPyAxIDogMCk7CiB9CiAKLXZvaWQgRGF0ZVRpbWVBTVBNRmllbGRFbGVt
ZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0
YXRlJiBkYXRlVGltZUZpZWxkc1N0YXRlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJl
YWRPbmx5RmllbGQpCitib29sIERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0Rh
dGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVs
ZHNTdGF0ZSkKIHsKLSAgICBpZiAoZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNBTVBNKCkpCisgICAg
aWYgKGRhdGVUaW1lRmllbGRzU3RhdGUuaGFzQU1QTSgpKSB7CiAgICAgICAgIHNldFZhbHVlQXNJ
bnRlZ2VyKGRhdGVUaW1lRmllbGRzU3RhdGUuYW1wbSgpKTsKLSAgICBlbHNlCi0gICAgICAgIHNl
dEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCkBAIC05NCwyMCArOTUsMTggQEAgdm9pZCBEYXRlVGltZURheUZpZWxkRWxlbWVudDo6
c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCiAgICAgc2V0VmFsdWVB
c0ludGVnZXIoZGF0ZS5tb250aERheSgpKTsKIH0KIAotdm9pZCBEYXRlVGltZURheUZpZWxkRWxl
bWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNT
dGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JS
ZWFkT25seUZpZWxkKQorYm9vbCBEYXRlVGltZURheUZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0Rh
dGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVs
ZHNTdGF0ZSkKIHsKLSAgICBpZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzRGF5T2ZNb250aCgp
KSB7Ci0gICAgICAgIHNldEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQorICAgIGlmICghZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNEYXlPZk1v
bnRoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNvbnN0IHVuc2lnbmVkIHZhbHVl
ID0gZGF0ZVRpbWVGaWVsZHNTdGF0ZS5kYXlPZk1vbnRoKCk7CiAgICAgaWYgKHJhbmdlKCkuaXNJ
blJhbmdlKHN0YXRpY19jYXN0PGludD4odmFsdWUpKSkgewogICAgICAgICBzZXRWYWx1ZUFzSW50
ZWdlcih2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgc2V0RW1wdHlWYWx1ZShkYXRlRm9yUmVhZE9ubHlGaWVsZCk7CisgICAgcmV0dXJu
IGZhbHNlOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNjYsNDEg
KzE2NSwzOSBAQCB2b2lkIERhdGVUaW1lSG91ckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCiAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGF0ZS5o
b3VyKCkpOwogfQogCi12b2lkIERhdGVUaW1lSG91ckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0Rh
dGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVs
ZHNTdGF0ZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKQorYm9v
bCBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRl
KGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIGRhdGVUaW1lRmllbGRzU3RhdGUpCiB7Ci0gICAg
aWYgKCFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc0hvdXIoKSkgewotICAgICAgICBzZXRFbXB0eVZh
bHVlKGRhdGVGb3JSZWFkT25seUZpZWxkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBp
ZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzSG91cigpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBjb25zdCBpbnQgaG91cjEyID0gZGF0ZVRpbWVGaWVsZHNTdGF0ZS5ob3VyKCk7CiAK
ICAgICBpZiAoaG91cjEyIDwgMSB8fCBob3VyMTIgPiAxMikgewotICAgICAgICBzZXRFbXB0eVZh
bHVlKGRhdGVGb3JSZWFkT25seUZpZWxkKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCiAgICAgc3dpdGNoIChtYXhpbXVtKCkpIHsKICAgICBjYXNlIDEx
OgogICAgICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2Vy
KGhvdXIxMiAlIDEyKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICBjYXNlIDEyOgogICAgICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVl
QXNJbnRlZ2VyKGhvdXIxMik7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgY2FzZSAyMzoKICAgICAgICAgaWYgKGRhdGVUaW1lRmllbGRzU3RhdGUuYW1wbSgpID09
IERhdGVUaW1lRmllbGRzU3RhdGU6OkFNUE1WYWx1ZVBNKQogICAgICAgICAgICAgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcigoaG91cjEyICsgMTIpICUgMjQp
OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6
OnNldFZhbHVlQXNJbnRlZ2VyKGhvdXIxMiAlIDEyKTsKLSAgICAgICAgcmV0dXJuOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIDI0OgogICAgICAgICBpZiAoZGF0ZVRpbWVGaWVsZHNT
dGF0ZS5hbXBtKCkgPT0gRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6QU1QTVZhbHVlUE0pCiAgICAgICAg
ICAgICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGhvdXIx
MiA9PSAxMiA/IDEyIDogaG91cjEyICsgMTIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNJbnRlZ2VyKGhvdXIxMik7Ci0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9
CiAKQEAgLTI0MCwyMCArMjM3LDE3IEBAIHZvaWQgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxl
bWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCiAgICAgc2V0
VmFsdWVBc0ludGVnZXIoZGF0ZS5taWxsaXNlY29uZCgpKTsKIH0KIAotdm9pZCBEYXRlVGltZU1p
bGxpc2Vjb25kRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25z
dCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVGltZUZpZWxkc1N0YXRlLCBjb25zdCBEYXRlQ29t
cG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpCitib29sIERhdGVUaW1lTWlsbGlzZWNvbmRG
aWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1l
RmllbGRzU3RhdGUmIGRhdGVUaW1lRmllbGRzU3RhdGUpCiB7Ci0gICAgaWYgKCFkYXRlVGltZUZp
ZWxkc1N0YXRlLmhhc01pbGxpc2Vjb25kKCkpIHsKLSAgICAgICAgc2V0RW1wdHlWYWx1ZShkYXRl
Rm9yUmVhZE9ubHlGaWVsZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFkYXRl
VGltZUZpZWxkc1N0YXRlLmhhc01pbGxpc2Vjb25kKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taWxsaXNl
Y29uZCgpOwotICAgIGlmICh2YWx1ZSA+IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtYXhpbXVtKCkp
KSB7Ci0gICAgICAgIHNldEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQorICAgIGlmICh2YWx1ZSA+IHN0YXRpY19jYXN0PHVuc2lnbmVkPiht
YXhpbXVtKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzZXRWYWx1ZUFzSW50ZWdl
cih2YWx1ZSk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KQEAgLTI4MSwyMCArMjc1LDE3IEBAIHZvaWQgRGF0ZVRpbWVNaW51dGVGaWVsZEVs
ZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQogICAgIHNl
dFZhbHVlQXNJbnRlZ2VyKGRhdGUubWludXRlKCkpOwogfQogCi12b2lkIERhdGVUaW1lTWludXRl
RmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGlt
ZUZpZWxkc1N0YXRlJiBkYXRlVGltZUZpZWxkc1N0YXRlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYg
ZGF0ZUZvclJlYWRPbmx5RmllbGQpCitib29sIERhdGVUaW1lTWludXRlRmllbGRFbGVtZW50Ojpz
ZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBk
YXRlVGltZUZpZWxkc1N0YXRlKQogewotICAgIGlmICghZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNN
aW51dGUoKSkgewotICAgICAgICBzZXRFbXB0eVZhbHVlKGRhdGVGb3JSZWFkT25seUZpZWxkKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFz
TWludXRlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNvbnN0IHVuc2lnbmVkIHZh
bHVlID0gZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taW51dGUoKTsKLSAgICBpZiAodmFsdWUgPiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4obWF4aW11bSgpKSkgewotICAgICAgICBzZXRFbXB0eVZhbHVlKGRh
dGVGb3JSZWFkT25seUZpZWxkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAodmFs
dWUgPiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obWF4aW11bSgpKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgc2V0VmFsdWVBc0ludGVnZXIodmFsdWUpOworICAgIHJldHVybiB0cnVlOwog
fQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjIsMjAgKzMxMywxOCBA
QCB2b2lkIERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlKQogICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUubW9udGgoKSAr
IDEpOwogfQogCi12b2lkIERhdGVUaW1lTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRl
VGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIGRhdGVUaW1lRmllbGRz
U3RhdGUsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkKK2Jvb2wg
RGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUo
Y29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkKIHsKLSAgICBp
ZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzTW9udGgoKSkgewotICAgICAgICBzZXRFbXB0eVZh
bHVlKGRhdGVGb3JSZWFkT25seUZpZWxkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBp
ZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzTW9udGgoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgY29uc3QgdW5zaWduZWQgdmFsdWUgPSBkYXRlVGltZUZpZWxkc1N0YXRlLm1vbnRo
KCk7CiAgICAgaWYgKHJhbmdlKCkuaXNJblJhbmdlKHN0YXRpY19jYXN0PGludD4odmFsdWUpKSkg
ewogICAgICAgICBzZXRWYWx1ZUFzSW50ZWdlcih2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgc2V0RW1wdHlWYWx1ZShkYXRlRm9yUmVh
ZE9ubHlGaWVsZCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCkBAIC0zNjMsMjAgKzM1MiwxNyBAQCB2b2lkIERhdGVUaW1lU2Vjb25kRmll
bGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKICAg
ICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRlLnNlY29uZCgpKTsKIH0KIAotdm9pZCBEYXRlVGltZVNl
Y29uZEZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0
ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSwgY29uc3QgRGF0ZUNvbXBvbmVu
dHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKQorYm9vbCBEYXRlVGltZVNlY29uZEZpZWxkRWxlbWVu
dDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0
ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkKIHsKLSAgICBpZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUu
aGFzU2Vjb25kKCkpIHsKLSAgICAgICAgc2V0RW1wdHlWYWx1ZShkYXRlRm9yUmVhZE9ubHlGaWVs
ZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFkYXRlVGltZUZpZWxkc1N0YXRl
Lmhhc1NlY29uZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCB1bnNpZ25l
ZCB2YWx1ZSA9IGRhdGVUaW1lRmllbGRzU3RhdGUuc2Vjb25kKCk7Ci0gICAgaWYgKHZhbHVlID4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heGltdW0oKSkpIHsKLSAgICAgICAgc2V0RW1wdHlWYWx1
ZShkYXRlRm9yUmVhZE9ubHlGaWVsZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYg
KHZhbHVlID4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1heGltdW0oKSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIHNldFZhbHVlQXNJbnRlZ2VyKHZhbHVlKTsKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDA3LDIwICszOTMs
MTcgQEAgdm9pZCBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNE
YXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXQKICAgICBzZXRWYWx1ZUFzSW50ZWdlcihkYXRl
Lm1vbnRoKCkpOwogfQogCi12b2lkIERhdGVUaW1lU3ltYm9saWNNb250aEZpZWxkRWxlbWVudDo6
c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYg
ZGF0ZVRpbWVGaWVsZHNTdGF0ZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25s
eUZpZWxkKQorYm9vbCBEYXRlVGltZVN5bWJvbGljTW9udGhGaWVsZEVsZW1lbnQ6OnNldFZhbHVl
QXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIGRhdGVUaW1l
RmllbGRzU3RhdGUpCiB7Ci0gICAgaWYgKCFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc01vbnRoKCkp
IHsKLSAgICAgICAgc2V0RW1wdHlWYWx1ZShkYXRlRm9yUmVhZE9ubHlGaWVsZCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9CisgICAgaWYgKCFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc01vbnRoKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gZGF0
ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpIC0gMTsKLSAgICBpZiAodmFsdWUgPj0gc3ltYm9sc1Np
emUoKSkgewotICAgICAgICBzZXRFbXB0eVZhbHVlKGRhdGVGb3JSZWFkT25seUZpZWxkKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAodmFsdWUgPj0gc3ltYm9sc1NpemUoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc2V0VmFsdWVBc0ludGVnZXIodmFsdWUpOworICAg
IHJldHVybiB0cnVlOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00
NDgsMjAgKzQzMSwxOCBAQCB2b2lkIERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudDo6c2V0VmFsdWVB
c0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpCiAgICAgc2V0VmFsdWVBc0ludGVnZXIo
ZGF0ZS53ZWVrKCkpOwogfQogCi12b2lkIERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudDo6c2V0VmFs
dWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRp
bWVGaWVsZHNTdGF0ZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxk
KQorYm9vbCBEYXRlVGltZVdlZWtGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlVGltZUZpZWxk
c1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIGRhdGVUaW1lRmllbGRzU3RhdGUpCiB7
Ci0gICAgaWYgKCFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc1dlZWtPZlllYXIoKSkgewotICAgICAg
ICBzZXRFbXB0eVZhbHVlKGRhdGVGb3JSZWFkT25seUZpZWxkKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KKyAgICBpZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzV2Vla09mWWVhcigpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCB1bnNpZ25lZCB2YWx1ZSA9IGRhdGVUaW1l
RmllbGRzU3RhdGUud2Vla09mWWVhcigpOwogICAgIGlmIChyYW5nZSgpLmlzSW5SYW5nZShzdGF0
aWNfY2FzdDxpbnQ+KHZhbHVlKSkpIHsKICAgICAgICAgc2V0VmFsdWVBc0ludGVnZXIodmFsdWUp
OwotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHNl
dEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQpOworICAgIHJldHVybiBmYWxzZTsKIH0K
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNTIxLDIwICs1MDIsMTggQEAg
dm9pZCBEYXRlVGltZVllYXJGaWVsZEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IERhdGVD
b21wb25lbnRzJiBkYXRlKQogICAgIHNldFZhbHVlQXNJbnRlZ2VyKGRhdGUuZnVsbFllYXIoKSk7
CiB9CiAKLXZvaWQgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVG
aWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVGltZUZpZWxkc1N0YXRl
LCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpCitib29sIERhdGVU
aW1lWWVhckZpZWxkRWxlbWVudDo6c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkKIHsKLSAgICBpZiAoIWRh
dGVUaW1lRmllbGRzU3RhdGUuaGFzWWVhcigpKSB7Ci0gICAgICAgIHNldEVtcHR5VmFsdWUoZGF0
ZUZvclJlYWRPbmx5RmllbGQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmICghZGF0
ZVRpbWVGaWVsZHNTdGF0ZS5oYXNZZWFyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGNvbnN0IHVuc2lnbmVkIHZhbHVlID0gZGF0ZVRpbWVGaWVsZHNTdGF0ZS55ZWFyKCk7CiAgICAg
aWYgKHJhbmdlKCkuaXNJblJhbmdlKHN0YXRpY19jYXN0PGludD4odmFsdWUpKSkgewogICAgICAg
ICBzZXRWYWx1ZUFzSW50ZWdlcih2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCi0gICAgc2V0RW1wdHlWYWx1ZShkYXRlRm9yUmVhZE9ubHlGaWVs
ZCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oCmlu
ZGV4IGM1YjEyNDExMzI3ZGE0ZDcwZGI4YjIzZjljZWQzZGE1M2FmMjM2NTUuLmYwMWZkNmY2OTZl
NDAwMzk5YzZlNmYwNjllNTI0MzExOGE4YThiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oCkBAIC00NCw3ICs0NCw3IEBAIHBy
aXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgogICAgIHZpcnR1
YWwgdm9pZCBwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYp
IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBE
YXRlQ29tcG9uZW50cyYpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiwgY29uc3Qg
RGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKSBPVkVSUklERSBGSU5BTDsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRp
bWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwogfTsKIAogY2xhc3MgRGF0ZVRpbWVEYXlG
aWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKQEAgLTU5
LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlv
bnMuCiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGlt
ZUZpZWxkc1N0YXRlJikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVl
QXNEYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRz
U3RhdGUmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpIE9WRVJS
SURFIEZJTkFMOworICAgIHZpcnR1YWwgYm9vbCBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0
ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikgT1ZFUlJJREUgRklOQUw7CiB9OwogCiAvLyBE
YXRlVGltZUhvdXJGaWVsZEVsZW1lbnQgaXMgdXNlZCBmb3IgaG91ciBmaWVsZCBvZiBkYXRlIHRp
bWUgZm9ybWF0CkBAIC04MCw3ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVGaWVs
ZEVsZW1lbnQgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZURhdGVUaW1lRmll
bGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpIE9WRVJSSURFIEZJ
TkFMOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25z
dCBEYXRlVGltZUZpZWxkc1N0YXRlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFk
T25seUZpZWxkKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0VmFsdWVBc0Rh
dGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJ
TkFMOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzSW50ZWdlcihpbnQsIEV2ZW50QmVoYXZp
b3IgPSBEaXNwYXRjaE5vRXZlbnQpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgaW50IHZh
bHVlQXNJbnRlZ2VyKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAKQEAgLTk5LDcgKzk5LDcgQEAg
cHJpdmF0ZToKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAgdmly
dHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0YXRl
JikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0
IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIHNldFZh
bHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmLCBjb25z
dCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpIE9WRVJSSURFIEZJTkFMOwor
ICAgIHZpcnR1YWwgYm9vbCBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRl
VGltZUZpZWxkc1N0YXRlJikgT1ZFUlJJREUgRklOQUw7CiB9OwogCiBjbGFzcyBEYXRlVGltZU1p
bnV0ZUZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQgewpA
QCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQg
ZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUo
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpIE9WRVJSSURFIEZJTkFMOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGlt
ZUZpZWxkc1N0YXRlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxk
KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0VmFsdWVBc0RhdGVUaW1lRmll
bGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwogfTsK
IAogY2xhc3MgRGF0ZVRpbWVNb250aEZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQgewpAQCAtMTI5LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgLy8gRGF0
ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZURh
dGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpIE9W
RVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNT
dGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRh
dGVGb3JSZWFkT25seUZpZWxkKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJvb2wgc2V0
VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9W
RVJSSURFIEZJTkFMOwogfTsKIAogY2xhc3MgRGF0ZVRpbWVTZWNvbmRGaWVsZEVsZW1lbnQgOiBw
dWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50IHsKQEAgLTE0NCw3ICsxNDQsNyBAQCBw
cml2YXRlOgogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0
dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUm
KSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFs
dWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYsIGNvbnN0
IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCBib29sIHNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVU
aW1lRmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5BTDsKIH07CiAKIGNsYXNzIERhdGVUaW1lU3lt
Ym9saWNNb250aEZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50IHsKQEAgLTE1OSw3ICsxNTksNyBAQCBwcml2YXRlOgogICAgIC8vIERhdGVUaW1lRmllbGRF
bGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVEYXRlVGltZUZpZWxk
c1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERSBGSU5B
TDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9u
bHlGaWVsZCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCBib29sIHNldFZhbHVlQXNEYXRl
VGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5B
TDsKIH07CiAKIGNsYXNzIERhdGVUaW1lV2Vla0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGlt
ZU51bWVyaWNGaWVsZEVsZW1lbnQgewpAQCAtMTc0LDcgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gRGF0ZVRpbWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBwb3B1
bGF0ZURhdGVUaW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJ
TkFMOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50
cyYpIE9WRVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFzRGF0ZVRpbWVG
aWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiwgY29uc3QgRGF0ZUNvbXBvbmVu
dHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIGJv
b2wgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0
ZSYpIE9WRVJSSURFIEZJTkFMOwogfTsKIAogY2xhc3MgRGF0ZVRpbWVZZWFyRmllbGRFbGVtZW50
IDogcHVibGljIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCB7CkBAIC0yMDUsNyArMjA1LDcg
QEAgcHJpdmF0ZToKICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudCBmdW5jdGlvbnMuCiAgICAg
dmlydHVhbCB2b2lkIHBvcHVsYXRlRGF0ZVRpbWVGaWVsZHNTdGF0ZShEYXRlVGltZUZpZWxkc1N0
YXRlJikgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQXNEYXRlKGNv
bnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmLCBj
b25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpIE9WRVJSSURFIEZJTkFM
OworICAgIHZpcnR1YWwgYm9vbCBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBE
YXRlVGltZUZpZWxkc1N0YXRlJikgT1ZFUlJJREUgRklOQUw7CiAKICAgICAvLyBEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgaW50IGNsYW1wVmFsdWVG
b3JIYXJkTGltaXRzKGludCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1BpY2tlckluZGljYXRvckVsZW1lbnQuY3BwCmluZGV4IGI2
NjgzYTUzNThkMzliMTUzNmY5ZjUyNTRkM2M2NGQ4ZTA3NDFhODkuLjA3N2M2ZmY5OTdiOGNlM2Fi
ZTFjMDVmODg1MjUyOTJlZTgxNDVhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1BpY2tlckluZGljYXRvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1BpY2tlckluZGljYXRvckVsZW1lbnQuY3BwCkBAIC00NSwxNSArNDUsMTYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxp
bmUgUGlja2VySW5kaWNhdG9yRWxlbWVudDo6UGlja2VySW5kaWNhdG9yRWxlbWVudChEb2N1bWVu
dCogZG9jdW1lbnQpCitpbmxpbmUgUGlja2VySW5kaWNhdG9yRWxlbWVudDo6UGlja2VySW5kaWNh
dG9yRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIFBpY2tlckluZGljYXRvck93bmVyJiBwaWNr
ZXJJbmRpY2F0b3JPd25lcikKICAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQp
CisgICAgLCBtX3BpY2tlckluZGljYXRvck93bmVyKCZwaWNrZXJJbmRpY2F0b3JPd25lcikKIHsK
ICAgICBzZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRp
Y2F0b3IiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiB9CiAKLVBhc3NS
ZWZQdHI8UGlja2VySW5kaWNhdG9yRWxlbWVudD4gUGlja2VySW5kaWNhdG9yRWxlbWVudDo6Y3Jl
YXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8UGlja2VySW5kaWNhdG9yRWxlbWVu
dD4gUGlja2VySW5kaWNhdG9yRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgUGlj
a2VySW5kaWNhdG9yT3duZXImIHBpY2tlckluZGljYXRvck93bmVyKQogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUGlja2VySW5kaWNhdG9yRWxlbWVudChkb2N1bWVudCkpOworICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUGlja2VySW5kaWNhdG9yRWxlbWVudChkb2N1bWVudCwgcGlja2VySW5k
aWNhdG9yT3duZXIpKTsKIH0KIAogUGlja2VySW5kaWNhdG9yRWxlbWVudDo6flBpY2tlckluZGlj
YXRvckVsZW1lbnQoKQpAQCAtMTA0LDcgKzEwNSw5IEBAIGJvb2wgUGlja2VySW5kaWNhdG9yRWxl
bWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQogCiB2b2lkIFBpY2tlckluZGlj
YXRvckVsZW1lbnQ6OmRpZENob29zZVZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAg
aG9zdElucHV0KCktPnNldFZhbHVlKHZhbHVlLCBEaXNwYXRjaENoYW5nZUV2ZW50KTsKKyAgICBp
ZiAoIW1fcGlja2VySW5kaWNhdG9yT3duZXIpCisgICAgICAgIHJldHVybjsKKyAgICBtX3BpY2tl
ckluZGljYXRvck93bmVyLT5waWNrZXJJbmRpY2F0b3JDaG9vc2VWYWx1ZSh2YWx1ZSk7CiB9CiAK
IHZvaWQgUGlja2VySW5kaWNhdG9yRWxlbWVudDo6ZGlkRW5kQ2hvb3NlcigpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9QaWNrZXJJbmRpY2F0b3JFbGVtZW50LmgKaW5kZXgg
Y2I3NTU2NzE3NDliZjljMjAwMzg3ZjAxYjIzZDQ5ODY3YTRiM2YzNy4uNGNjM2E5ZTE3NDNlOTQ5
YTg2YmJlMzQ2YmI5NDNjZTM4MjAwNTcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvUGlja2VySW5kaWNhdG9yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1BpY2tlckluZGljYXRvckVsZW1lbnQuaApAQCAtNDQsMjQgKzQ0LDM0IEBAIGNs
YXNzIFBhZ2VQb3B1cDsKIAogY2xhc3MgUGlja2VySW5kaWNhdG9yRWxlbWVudCA6IHB1YmxpYyBI
VE1MRGl2RWxlbWVudCwgcHVibGljIERhdGVUaW1lQ2hvb3NlckNsaWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8UGlja2VySW5kaWNhdG9yRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Kik7CisgICAgLy8gUGlja2VySW5kaWNhdG9yT3duZXIgaW1wbGVtZW50ZXIgbXVzdCBjYWxs
IHJlbW92ZVBpY2tlckluZGljYXRvck93bmVyIHdoZW4KKyAgICAvLyBpdCBkb2Vzbid0IGhhbmRs
ZSBldmVudCwgZS5nLiBhdCBkZXN0cnVjdGlvbi4KKyAgICBjbGFzcyBQaWNrZXJJbmRpY2F0b3JP
d25lciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5QaWNrZXJJbmRpY2F0b3JPd25l
cigpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgcGlja2VySW5kaWNhdG9yQ2hvb3NlVmFsdWUo
Y29uc3QgU3RyaW5nJikgPSAwOworICAgIH07CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQaWNr
ZXJJbmRpY2F0b3JFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBQaWNrZXJJbmRpY2F0b3JPd25l
ciYpOwogICAgIHZpcnR1YWwgflBpY2tlckluZGljYXRvckVsZW1lbnQoKTsKICAgICB2b2lkIG9w
ZW5Qb3B1cCgpOwogICAgIHZvaWQgY2xvc2VQb3B1cCgpOwogICAgIHZpcnR1YWwgYm9vbCB3aWxs
UmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFOworICAgIHZvaWQgcmVtb3ZlUGlj
a2VySW5kaWNhdG9yT3duZXIoKSB7IG1fcGlja2VySW5kaWNhdG9yT3duZXIgPSAwOyB9CiAKICAg
ICAvLyBEYXRlVGltZUNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2
b2lkIGRpZENob29zZVZhbHVlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRFbmRDaG9vc2VyKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAgUGlja2VySW5k
aWNhdG9yRWxlbWVudChEb2N1bWVudCopOworICAgIFBpY2tlckluZGljYXRvckVsZW1lbnQoRG9j
dW1lbnQqLCBQaWNrZXJJbmRpY2F0b3JPd25lciYpOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0
KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCkgT1ZFUlJJREU7CiAKICAgICBIVE1MSW5wdXRFbGVtZW50
KiBob3N0SW5wdXQoKTsKIAorICAgIFBpY2tlckluZGljYXRvck93bmVyKiBtX3BpY2tlckluZGlj
YXRvck93bmVyOwogICAgIFJlZlB0cjxEYXRlVGltZUNob29zZXI+IG1fY2hvb3NlcjsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
Q29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
Q29tbW9uLmNwcAppbmRleCA3YjQyMGM4MzVlNDk1ZTNmYzNjOWNhNmNjNzc2ZGNmMGRhNjg0Njdi
Li4yYjM2ODM3ZTczYWZhOWQ5OWNhNDRkYWVkMWVjZDBmNGM0Yzc1MDE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUNvbW1vbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Db21tb24uY3Bw
CkBAIC00OSwxMCArNDksMTEgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtQ29tbW9uOjpzdXBw
b3J0c0RhdGFMaXN0VUkoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogI2lmIEVOQUJMRShJTlBV
VF9NVUxUSVBMRV9GSUVMRFNfVUkpCiBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Db21tb246OnN1
cHBvcnRzQ2FsZW5kYXJQaWNrZXIoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogewotICAgIC8v
IEZJWE1FOiBXZSdkIGxpa2UgdG8gc3VwcG9ydCBkYXRldGltZSwgYW5kIGRhdGV0aW1lLWxvY2Fs
IHRvby4KICAgICByZXR1cm4gdHlwZSA9PSBJbnB1dFR5cGVOYW1lczo6ZGF0ZSgpCiAgICAgICAg
IHx8IHR5cGUgPT0gSW5wdXRUeXBlTmFtZXM6Om1vbnRoKCkKLSAgICAgICAgfHwgdHlwZSA9PSBJ
bnB1dFR5cGVOYW1lczo6d2VlaygpOworICAgICAgICB8fCB0eXBlID09IElucHV0VHlwZU5hbWVz
Ojp3ZWVrKCkKKyAgICAgICAgfHwgdHlwZSA9PSBJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUoKQor
ICAgICAgICB8fCB0eXBlID09IElucHV0VHlwZU5hbWVzOjpkYXRldGltZWxvY2FsKCk7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDVmYmJjMzgwNTU2NDE0NmU0ODczZTA1NTg3YzVmYzI5MGMxOTg5ZGQu
LjRjYjczZDFhMTFkYTQyZGIzOWM2NjkzYmMyOTM3MWZmZjVkYzI4NWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0xMS0xMiAgS3VuaWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEVuYWJsZSBjYWxlbmRhciBwaWNrZXIgZm9yIGlucHV0IHR5cGVz
IGRhdGV0aW1lL2RhdGV0aW1lLWxvY2FsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDE4ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyBmb3IgY2FsZW5kYXIgcGlja2VyIGZvciBpbnB0
IHR5cGU9ZGF0ZXRpbWUvZGF0ZXRpbWUtbG9jYWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZXRpbWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zv
cm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZXRpbWUtbG9jYWwtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2Nh
bGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZXRpbWUtbG9jYWwuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIv
Y2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTA5ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJl
dmlld2VkIGdhcmRlbmluZy4gT25lIG1vcmUgYmFzZWxpbmUgZm9sbG93aW5nIDEzNDExMi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5k
YXItcGlja2VyL2NhbGVuZGFyLXBpY2tlci1kYXRldGltZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRh
ci1waWNrZXItZGF0ZXRpbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMWRmNmJjOTY0MDI2
OGQ5ZWY3N2Q0NGZmMjZhMzk2Mzc5MDEwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1w
aWNrZXItZGF0ZXRpbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIGlmIGNh
bGVuZGFyIHBpY2tlciB3b3JrcyBmb3IgZGF0ZXRpbWUgYXMgZXhwZWN0ZWQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitDaGVjayB0aGF0IHBhZ2UgcG9wdXAgZG9lc24ndCBleGlz
dCBhdCBmaXJzdC4KK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vY2stcGFnZS1wb3B1
cCIpIGlzIG51bGwKK1BBU1Mgc2VsZWN0ZWREYXRlKCkgaXMgIjIwMTEtMTItMzEiCitQQVNTIHNl
bGVjdGVkRGF0ZSgpIGlzICIyMDEyLTAxLTAxIgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgibW9jay1wYWdlLXBvcHVwIikgaXMgbnVsbAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZGF0ZXRpbWUiKS52YWx1ZSBpcyAiMjAxMi0wMS0wMVQxMjo1Mzo0NVoiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2Fs
ZW5kYXItcGlja2VyLWRhdGV0aW1lLWxvY2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBpY2tl
ci1kYXRldGltZS1sb2NhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjI2ZWZmNmExMGJhZjdh
MTk0MGZlMTViMTBjMmExYjE2MjI5MzlmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBp
Y2tlci1kYXRldGltZS1sb2NhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMg
aWYgY2FsZW5kYXIgcGlja2VyIHdvcmtzIGZvciBkYXRldGltZS1sb2NhbCBhcyBleHBlY3RlZC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NoZWNrIHRoYXQgcGFnZSBwb3B1cCBk
b2Vzbid0IGV4aXN0IGF0IGZpcnN0LgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9j
ay1wYWdlLXBvcHVwIikgaXMgbnVsbAorUEFTUyBzZWxlY3RlZERhdGUoKSBpcyAiMjAxMS0xMi0z
MSIKK1BBU1Mgc2VsZWN0ZWREYXRlKCkgaXMgIjIwMTItMDEtMDEiCitQQVNTIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJtb2NrLXBhZ2UtcG9wdXAiKSBpcyBudWxsCitQQVNTIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkYXRldGltZWxvY2FsIikudmFsdWUgaXMgIjIwMTItMDEtMDFUMTI6NTM6
NDUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxl
bmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLWxvY2FsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRh
ci1waWNrZXItZGF0ZXRpbWUtbG9jYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWY5ZWJjYTNhMGMwNTQ5
MWM0YjE3NDQwZDc2ZGQzODBiMTc3MDRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlj
a2VyLWRhdGV0aW1lLWxvY2FsLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li8uLi9mYXN0L2Zvcm1zL3Jlc291cmNlcy9waWNrZXItY29tbW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FsZW5kYXItcGlja2VyLWNvbW1vbi5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8aW5wdXQgdHlwZT1kYXRldGltZS1sb2NhbCBpZD1kYXRldGltZWxvY2Fs
IHZhbHVlPSIyMDExLTEyLTMxVDEyOjUzOjQ1Ij4gCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRl
c3RzIGlmIGNhbGVuZGFyIHBpY2tlciB3b3JrcyBmb3IgZGF0ZXRpbWUtbG9jYWwgYXMgZXhwZWN0
ZWQuIik7CisKK2RlYnVnKCdDaGVjayB0aGF0IHBhZ2UgcG9wdXAgZG9lc25cJ3QgZXhpc3QgYXQg
Zmlyc3QuJyk7CitzaG91bGRCZU51bGwoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2NrLXBh
Z2UtcG9wdXAiKScpOworCitvcGVuUGlja2VyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRl
dGltZWxvY2FsJyksIHRlc3QpOworCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnc2VsZWN0ZWREYXRlKCknLCAnMjAxMS0xMi0zMScpOworCisgICAgZXZlbnRT
ZW5kZXIua2V5RG93bigncmlnaHRBcnJvdycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
c2VsZWN0ZWREYXRlKCknLCAnMjAxMi0wMS0wMScpOworCisgICAgZXZlbnRTZW5kZXIua2V5RG93
bignXG4nKTsKKyAgICBzaG91bGRCZU51bGwoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2Nr
LXBhZ2UtcG9wdXAiKScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImRhdGV0aW1lbG9jYWwiKS52YWx1ZScsICcyMDEyLTAxLTAxVDEyOjUzOjQ1
Jyk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBpY2tlci1kYXRldGlt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRh
ci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjNlNThm
MDUyYjk2MTRiOWNmNDU3MzY4MDM0ZjgxY2I0NGI2OGNjYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2Nh
bGVuZGFyLXBpY2tlci1kYXRldGltZS5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vLi4vZmFzdC9mb3Jtcy9yZXNvdXJjZXMvcGlja2VyLWNvbW1vbi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhbGVuZGFyLXBpY2tlci1jb21tb24uanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IHR5cGU9ZGF0ZXRpbWUgaWQ9ZGF0ZXRpbWUgdmFsdWU9
IjIwMTEtMTItMzFUMTI6NTM6NDVaIj4gCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIGlm
IGNhbGVuZGFyIHBpY2tlciB3b3JrcyBmb3IgZGF0ZXRpbWUgYXMgZXhwZWN0ZWQuIik7CisKK2Rl
YnVnKCdDaGVjayB0aGF0IHBhZ2UgcG9wdXAgZG9lc25cJ3QgZXhpc3QgYXQgZmlyc3QuJyk7Citz
aG91bGRCZU51bGwoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2NrLXBhZ2UtcG9wdXAiKScp
OworCitvcGVuUGlja2VyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRldGltZScpLCB0ZXN0
KTsKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3NlbGVj
dGVkRGF0ZSgpJywgJzIwMTEtMTItMzEnKTsKKworICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ3Jp
Z2h0QXJyb3cnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3NlbGVjdGVkRGF0ZSgpJywg
JzIwMTItMDEtMDEnKTsKKworICAgIGV2ZW50U2VuZGVyLmtleURvd24oJ1xuJyk7CisgICAgc2hv
dWxkQmVOdWxsKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9jay1wYWdlLXBvcHVwIiknKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkYXRl
dGltZSIpLnZhbHVlJywgJzIwMTItMDEtMDFUMTI6NTM6NDVaJyk7CisKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174064</attachid>
            <date>2012-11-13 21:00:57 -0800</date>
            <delta_ts>2012-11-13 21:36:29 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-101889-20121114135856.patch</filename>
            <type>text/plain</type>
            <size>16231</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFjZmUzNjQ0MjYwNzY1
NzA1MGUxYzgwNGZlNTU3NTQwYzc0YzIyMC4uZTI1MTU3ZjZiNDhjYjM2YjVlNTlhYmZiNzg0NTgz
MDVhZDk3YWRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTExLTEzICBLdW5p
aGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRW5hYmxl
IGNhbGVuZGFyIHBpY2tlciBmb3IgaW5wdXQgdHlwZXMgZGF0ZXRpbWUvZGF0ZXRpbWUtbG9jYWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg4OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRk
cyBjYWxlbmRhciBwaWNrZXIgdG8gPGlucHV0IHR5cGU9ZGF0ZXRpbWU+IGFuZCA8aW5wdXQgdHlw
ZT1kYXRldGltZS1sb2NhbD4uCisgICAgICAgIFdoZW4gYSB1c2VyIGNob29zZSBhIGRhdGUgZnJv
bSBjYWxlbmRhciBwaWNrZXIsIHllYXIvbW9udGgvZGF5IGZpZWxkcyBvZiB0aGUgaW5wdXQKKyAg
ICAgICAgZWxlbWVudCBhcmUgdXBkYXRlZCBhbmQgaG91ci9taW51dGUvc2Vjb25kIGZpZWxkcyBh
cmUgdW5jaGFuZ2VkLgorCisgICAgICAgIFRlc3RzOiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zv
cm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZXRpbWUtbG9jYWwuaHRtbAor
ICAgICAgICAgICAgICAgcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNr
ZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLmh0bWwKKworICAgICAgICAqIFJlc291cmNlcy9w
YWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOiBEYXkucGFyc2UgYWNjZXB0cyBkYXRldGltZSBz
dHJpbmcgKGp1c3QgZHJvcHMgdGltZSBwYXJ0KS4KKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpwaWNrZXJJbmRpY2F0b3JDaG9vc2VW
YWx1ZSk6CisgICAgICAgIElmIHRoZSBnaXZlbiB2YWx1ZSBpcyBub3QgdmFsaWQgZm9yIHRoZSBl
bGVtZW50LCB0cnkgdG8gcGFyc2UgaXQgYXMgYSBkYXRlIHN0cmluZy4KKyAgICAgICAgKiBodG1s
L0RhdGVUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSW5wdXRU
eXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKTogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6bW9u
dGgoKSByZXR1cm5zIDEtMTIsIG5vdCAwLTExLgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBl
Ojpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9zaGFk
b3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpzZXRPbmx5WWVhck1vbnRoRGF5KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6CisgICAgICAg
IChEYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bUNvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVt
Q29tbW9uOjpzdXBwb3J0c0NhbGVuZGFyUGlja2VyKTogUmV0dXJuIHRydWUgZm9yIGRhdGV0aW1l
IGFuZCBkYXRldGltZWxvY2FsIHRvby4KKwogMjAxMi0xMS0xMiAgVGltb3RoeSBIYXRjaGVyICA8
dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWw6OnNldEF0dGFjaGVkV2luZG93IGFzIHB1YmxpYy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzIGIvU291cmNl
L1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKaW5kZXggYWY1
MTJkOGU0ODhhZDNjMDM2ZjU2OTZjZGNiNjJjMDM3Yjk1ODQ1NC4uN2NjMDdjY2ZiMDVjMmIxZDhl
MjVjMGZjNWU4MDZlZTg5Y2YzYzRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVzb3Vy
Y2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKQEAgLTIyMCw3ICsyMjAsNyBAQCBm
dW5jdGlvbiBEYXkodmFsdWVPckRheU9yWWVhciwgbW9udGgsIGRhdGUpIHsKICAgICB0aGlzLmRh
dGUgPSBkYXRlT2JqZWN0LmdldFVUQ0RhdGUoKTsKIH07CiAKLURheS5JU09TdHJpbmdSZWdFeHAg
PSAvXihcZCspLShcZCspLShcZCspJC87CitEYXkuSVNPU3RyaW5nUmVnRXhwID0gL14oXGQrKS0o
XGQrKS0oXGQrKS87CiAKIC8qKgogICogQHBhcmFtIHshc3RyaW5nfSBzdHIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAKaW5kZXggY2Y3NmEzN2UyNzM3NDY5ZTM0ODdjY2U1OTJiY2FlZGFmMGE1
MjdmMi4uMjFlNjk2YmExMDljYTcyMjg3NGFkNGMxNDdiY2Q4ODQ5OGEyMWI5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTEzMCw3ICsxMzAsMTcgQEAgYm9vbCBCYXNlTXVsdGlw
bGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNQaWNrZXJJbmRpY2F0b3JPd25lckRpc2Fi
bGVkT3JSZWEKIAogdm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6
cGlja2VySW5kaWNhdG9yQ2hvb3NlVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBl
bGVtZW50KCktPnNldFZhbHVlKHZhbHVlLCBEaXNwYXRjaENoYW5nZUV2ZW50KTsKKyAgICBpZiAo
ZWxlbWVudCgpLT5pc1ZhbGlkVmFsdWUodmFsdWUpKSB7CisgICAgICAgIGVsZW1lbnQoKS0+c2V0
VmFsdWUodmFsdWUsIERpc3BhdGNoQ2hhbmdlRXZlbnQpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAg
ICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAgIHVuc2lnbmVkIGVuZDsKKyAgICBpZiAoZGF0ZS5w
YXJzZURhdGUodmFsdWUuY2hhcmFjdGVycygpLCB2YWx1ZS5sZW5ndGgoKSwgMCwgZW5kKSAmJiBl
bmQgPT0gdmFsdWUubGVuZ3RoKCkpCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0
T25seVllYXJNb250aERheShkYXRlKTsKIH0KIAogYm9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZTo6c2V0dXBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzKERhdGVUaW1l
Q2hvb3NlclBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuY3BwCmluZGV4IDBlY2FiNmU2ZmE0OWFjMGJkZWQ0ZDRlNWJmYWZlNGIzOGVl
YjFmOWMuLjNjZDcwMWM4YTQwMzNjZmRmMDU2NGIzN2RmOTA3ZDg4NzRjODJmNTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAg
U3RyaW5nIERhdGVUaW1lSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0
IERhdGVUaW1lRmllbGRzU3RhdGUmIGQKICAgICBpZiAoZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNN
aWxsaXNlY29uZCgpICYmIGRhdGVUaW1lRmllbGRzU3RhdGUubWlsbGlzZWNvbmQoKSkgewogICAg
ICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiUwNHUtJTAydS0lMDJ1VCUwMnU6JTAydTolMDJ1
LiUwM3VaIiwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUueWVhcigpLAotICAgICAg
ICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpICsgMSwKKyAgICAgICAgICAgIGRhdGVU
aW1lRmllbGRzU3RhdGUubW9udGgoKSwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUu
ZGF5T2ZNb250aCgpLAogICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5ob3VyMjMoKSwK
ICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubWludXRlKCksCkBAIC0xMjgsNyArMTI4
LDcgQEAgU3RyaW5nIERhdGVUaW1lSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRl
KGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIGQKICAgICBpZiAoZGF0ZVRpbWVGaWVsZHNTdGF0
ZS5oYXNTZWNvbmQoKSAmJiBkYXRlVGltZUZpZWxkc1N0YXRlLnNlY29uZCgpKSB7CiAgICAgICAg
IHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJTA0dS0lMDJ1LSUwMnVUJTAydTolMDJ1OiUwMnVaIiwK
ICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUueWVhcigpLAotICAgICAgICAgICAgZGF0
ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpICsgMSwKKyAgICAgICAgICAgIGRhdGVUaW1lRmllbGRz
U3RhdGUubW9udGgoKSwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuZGF5T2ZNb250
aCgpLAogICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5ob3VyMjMoKSwKICAgICAgICAg
ICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubWludXRlKCksCkBAIC0xMzcsNyArMTM3LDcgQEAgU3Ry
aW5nIERhdGVUaW1lSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERh
dGVUaW1lRmllbGRzU3RhdGUmIGQKIAogICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJTA0dS0l
MDJ1LSUwMnVUJTAydTolMDJ1WiIsCiAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUueWVhcigp
LAotICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLm1vbnRoKCkgKyAxLAorICAgICAgICBkYXRl
VGltZUZpZWxkc1N0YXRlLm1vbnRoKCksCiAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuZGF5
T2ZNb250aCgpLAogICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLmhvdXIyMygpLAogICAgICAg
ICBkYXRlVGltZUZpZWxkc1N0YXRlLm1pbnV0ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IDkzNzNjYmVjMjhkOTQxOWY0Y2RmY2I3
Yzg2OTc3NTNmNDg5YWU4OWUuLjlkZTc3NzNiNGU5MTBiYzc4MDg0NjM3OWRhZjEzOTYwMTE0Mzcx
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNw
cApAQCAtMTIzLDcgKzEyMyw3IEBAIFN0cmluZyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpmb3Jt
YXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhCiAgICAgaWYgKGRh
dGVUaW1lRmllbGRzU3RhdGUuaGFzTWlsbGlzZWNvbmQoKSAmJiBkYXRlVGltZUZpZWxkc1N0YXRl
Lm1pbGxpc2Vjb25kKCkpIHsKICAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlMDR1LSUw
MnUtJTAydVQlMDJ1OiUwMnU6JTAydS4lMDN1IiwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRz
U3RhdGUueWVhcigpLAotICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpICsg
MSwKKyAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubW9udGgoKSwKICAgICAgICAgICAg
IGRhdGVUaW1lRmllbGRzU3RhdGUuZGF5T2ZNb250aCgpLAogICAgICAgICAgICAgZGF0ZVRpbWVG
aWVsZHNTdGF0ZS5ob3VyMjMoKSwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubWlu
dXRlKCksCkBAIC0xMzQsNyArMTM0LDcgQEAgU3RyaW5nIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6
OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGEKICAgICBp
ZiAoZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNTZWNvbmQoKSAmJiBkYXRlVGltZUZpZWxkc1N0YXRl
LnNlY29uZCgpKSB7CiAgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJTA0dS0lMDJ1LSUw
MnVUJTAydTolMDJ1OiUwMnUiLAogICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS55ZWFy
KCksCi0gICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLm1vbnRoKCkgKyAxLAorICAgICAg
ICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpLAogICAgICAgICAgICAgZGF0ZVRpbWVG
aWVsZHNTdGF0ZS5kYXlPZk1vbnRoKCksCiAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRl
LmhvdXIyMygpLAogICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taW51dGUoKSwKQEAg
LTE0Myw3ICsxNDMsNyBAQCBTdHJpbmcgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Zm9ybWF0RGF0
ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YQogCiAgICAgcmV0dXJuIFN0
cmluZzo6Zm9ybWF0KCIlMDR1LSUwMnUtJTAydVQlMDJ1OiUwMnUiLAogICAgICAgICBkYXRlVGlt
ZUZpZWxkc1N0YXRlLnllYXIoKSwKLSAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgp
ICsgMSwKKyAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpLAogICAgICAgICBkYXRl
VGltZUZpZWxkc1N0YXRlLmRheU9mTW9udGgoKSwKICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0
ZS5ob3VyMjMoKSwKICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taW51dGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCmlu
ZGV4IGRiYWE0ZDNkYzVlNWFhYmEwZjZkOGFmMzBkNWRjODQxY2I4ODYwMjUuLmU3MmQ3YTllYjM4
OTdjZDcyNDMwODI0Yzk0NWNhMDQ4MGU4MDI5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCkBAIC00ODYsNiArNDg2LDIxIEBA
IGJvb2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6aGFzRm9jdXNlZEZpZWxkKCkKICAgICByZXR1cm4g
Zm9jdXNlZEZpZWxkSW5kZXgoKSAhPSBpbnZhbGlkRmllbGRJbmRleDsKIH0KIAordm9pZCBEYXRl
VGltZUVkaXRFbGVtZW50OjpzZXRPbmx5WWVhck1vbnRoRGF5KGNvbnN0IERhdGVDb21wb25lbnRz
JiBkYXRlKQoreworICAgIEFTU0VSVChkYXRlLnR5cGUoKSA9PSBEYXRlQ29tcG9uZW50czo6RGF0
ZSk7CisKKyAgICBpZiAoIW1fZWRpdENvbnRyb2xPd25lcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgRGF0ZVRpbWVGaWVsZHNTdGF0ZSBkYXRlVGltZUZpZWxkc1N0YXRlID0gdmFsdWVBc0RhdGVU
aW1lRmllbGRzU3RhdGUoKTsKKyAgICBkYXRlVGltZUZpZWxkc1N0YXRlLnNldFllYXIoZGF0ZS5m
dWxsWWVhcigpKTsKKyAgICBkYXRlVGltZUZpZWxkc1N0YXRlLnNldE1vbnRoKGRhdGUubW9udGgo
KSArIDEpOworICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0RGF5T2ZNb250aChkYXRlLm1vbnRo
RGF5KCkpOworICAgIHNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGRhdGVUaW1lRmllbGRz
U3RhdGUpOworICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQo
KTsKK30KKwogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzdGVwRG93bigpCiB7CiAgICAgaWYg
KERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBmaWVsZCA9IGZvY3VzZWRGaWVsZCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCmluZGV4
IDMyYjFiMjMzZmYxMDIwM2U3OGE0YzExZjA4MWQ2YTdlOWUzNTI1ZWYuLjk0Y2IwYWM4MDE2Y2Zk
NjljM2RhMzQ4MzU2NWViYTYxOWMxZmEyZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0RW1wdHlWYWx1ZShjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJiwgY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKTsKICAgICB2b2lkIHNldFZhbHVlQXNE
YXRlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYpOwogICAg
IHZvaWQgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNT
dGF0ZSYpOworICAgIHZvaWQgc2V0T25seVllYXJNb250aERheShjb25zdCBEYXRlQ29tcG9uZW50
cyYpOwogICAgIHZvaWQgc3RlcERvd24oKTsKICAgICB2b2lkIHN0ZXBVcCgpOwogICAgIFN0cmlu
ZyB2YWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Db21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Db21tb24uY3BwCmluZGV4IDdiNDIwYzgzNWU0OTVlM2ZjM2M5Y2E2
Y2M3NzZkY2YwZGE2ODQ2N2IuLmY2MTkwOTExNzNkNGEzNWVlYzM4MTE5ZWNjNTA5ODJjNmJkNzkw
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bUNvbW1vbi5jcHAKQEAgLTQ5LDggKzQ5LDkgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9t
aXVtQ29tbW9uOjpzdXBwb3J0c0RhdGFMaXN0VUkoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQog
I2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCiBib29sIFJlbmRlclRoZW1lQ2hy
b21pdW1Db21tb246OnN1cHBvcnRzQ2FsZW5kYXJQaWNrZXIoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlKQogewotICAgIC8vIEZJWE1FOiBXZSdkIGxpa2UgdG8gc3VwcG9ydCBkYXRldGltZSwgYW5k
IGRhdGV0aW1lLWxvY2FsIHRvby4KICAgICByZXR1cm4gdHlwZSA9PSBJbnB1dFR5cGVOYW1lczo6
ZGF0ZSgpCisgICAgICAgIHx8IHR5cGUgPT0gSW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1lKCkKKyAg
ICAgICAgfHwgdHlwZSA9PSBJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWVsb2NhbCgpCiAgICAgICAg
IHx8IHR5cGUgPT0gSW5wdXRUeXBlTmFtZXM6Om1vbnRoKCkKICAgICAgICAgfHwgdHlwZSA9PSBJ
bnB1dFR5cGVOYW1lczo6d2VlaygpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQwZDViN2Y2NzhkNGE0NjNmYzRhN2Nl
NWUyYTg2M2ViN2ExZTlhYzMuLmJlYjk1NDU2ZTJlNDU5ODc1NDk1ZDlhMDA5YzljMGExZmM0ODEx
N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMS0xMyAgS3VuaWhpa28gU2FrYW1vdG8g
IDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEVuYWJsZSBjYWxlbmRhciBwaWNr
ZXIgZm9yIGlucHV0IHR5cGVzIGRhdGV0aW1lL2RhdGV0aW1lLWxvY2FsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE4ODkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyBmb3IgY2FsZW5k
YXIgcGlja2VyIGZvciBpbnB0IHR5cGU9ZGF0ZXRpbWUvZGF0ZXRpbWUtbG9jYWwuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRh
ci1waWNrZXItZGF0ZXRpbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0
ZXRpbWUtbG9jYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZXRpbWUt
bG9jYWwuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jt
cy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLmh0bWw6IEFkZGVkLgor
CiAyMDEyLTExLTEyICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmVwbGFjZSBET01FeGNlcHRpb24gVFlQRV9NSVNNQVRDSF9FUlIgd2l0aCBUeXBlRXJyb3IK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2Fs
ZW5kYXItcGlja2VyL2NhbGVuZGFyLXBpY2tlci1kYXRldGltZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxl
bmRhci1waWNrZXItZGF0ZXRpbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMWRmNmJjOTY0
MDI2OGQ5ZWY3N2Q0NGZmMjZhMzk2Mzc5MDEwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRh
ci1waWNrZXItZGF0ZXRpbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIGlm
IGNhbGVuZGFyIHBpY2tlciB3b3JrcyBmb3IgZGF0ZXRpbWUgYXMgZXhwZWN0ZWQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDaGVjayB0aGF0IHBhZ2UgcG9wdXAgZG9lc24ndCBl
eGlzdCBhdCBmaXJzdC4KK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vY2stcGFnZS1w
b3B1cCIpIGlzIG51bGwKK1BBU1Mgc2VsZWN0ZWREYXRlKCkgaXMgIjIwMTEtMTItMzEiCitQQVNT
IHNlbGVjdGVkRGF0ZSgpIGlzICIyMDEyLTAxLTAxIgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibW9jay1wYWdlLXBvcHVwIikgaXMgbnVsbAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZGF0ZXRpbWUiKS52YWx1ZSBpcyAiMjAxMi0wMS0wMVQxMjo1Mzo0NVoiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIv
Y2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLWxvY2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBp
Y2tlci1kYXRldGltZS1sb2NhbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjI2ZWZmNmExMGJh
ZjdhMTk0MGZlMTViMTBjMmExYjE2MjI5MzlmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFy
LXBpY2tlci1kYXRldGltZS1sb2NhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVz
dHMgaWYgY2FsZW5kYXIgcGlja2VyIHdvcmtzIGZvciBkYXRldGltZS1sb2NhbCBhcyBleHBlY3Rl
ZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NoZWNrIHRoYXQgcGFnZSBwb3B1
cCBkb2Vzbid0IGV4aXN0IGF0IGZpcnN0LgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bW9jay1wYWdlLXBvcHVwIikgaXMgbnVsbAorUEFTUyBzZWxlY3RlZERhdGUoKSBpcyAiMjAxMS0x
Mi0zMSIKK1BBU1Mgc2VsZWN0ZWREYXRlKCkgaXMgIjIwMTItMDEtMDEiCitQQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJtb2NrLXBhZ2UtcG9wdXAiKSBpcyBudWxsCitQQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJkYXRldGltZWxvY2FsIikudmFsdWUgaXMgIjIwMTItMDEtMDFUMTI6
NTM6NDUiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9j
YWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLWxvY2FsLmh0bWwgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxl
bmRhci1waWNrZXItZGF0ZXRpbWUtbG9jYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTYzOGIzYjA2ZTYz
MDE4M2JkY2I4NmI5YWZkOGZlYmYyODQyMDY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXIt
cGlja2VyLWRhdGV0aW1lLWxvY2FsLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi8uLi9mYXN0L2Zvcm1zL3Jlc291cmNlcy9waWNrZXItY29tbW9uLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FsZW5kYXItcGlja2VyLWNvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8aW5wdXQgdHlwZT1kYXRldGltZS1sb2NhbCBpZD1kYXRldGltZWxv
Y2FsIHZhbHVlPSIyMDExLTEyLTMxVDEyOjUzOjQ1Ij4gCis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3RzIGlmIGNhbGVuZGFyIHBpY2tlciB3b3JrcyBmb3IgZGF0ZXRpbWUtbG9jYWwgYXMgZXhw
ZWN0ZWQuIik7CisKK2RlYnVnKCdDaGVjayB0aGF0IHBhZ2UgcG9wdXAgZG9lc25cJ3QgZXhpc3Qg
YXQgZmlyc3QuJyk7CitzaG91bGRCZU51bGwoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2Nr
LXBhZ2UtcG9wdXAiKScpOworCitvcGVuUGlja2VyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdk
YXRldGltZWxvY2FsJyksIHRlc3QpOworCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnc2VsZWN0ZWREYXRlKCknLCAnMjAxMS0xMi0zMScpOworCisgICAgZXZl
bnRTZW5kZXIua2V5RG93bigncmlnaHRBcnJvdycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygnc2VsZWN0ZWREYXRlKCknLCAnMjAxMi0wMS0wMScpOworCisgICAgZXZlbnRTZW5kZXIua2V5
RG93bignXG4nKTsKKyAgICB3YWl0VW50aWxDbG9zaW5nKHRlc3RBZnRlckNsb3NpbmcpOworfQor
CitmdW5jdGlvbiB0ZXN0QWZ0ZXJDbG9zaW5nKCkgeworICAgIHNob3VsZEJlTnVsbCgnZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm1vY2stcGFnZS1wb3B1cCIpJyk7CisgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0ZXRpbWVsb2NhbCIpLnZhbHVl
JywgJzIwMTItMDEtMDFUMTI6NTM6NDUnKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIv
Y2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZXRpbWUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMGQwNzdmZmUwMTU1YmNhYzFiOWVjZDU5NzkzNjg2ZTQxZWZmNGMx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9m
b3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLmh0bWwKQEAgLTAs
MCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2Zvcm1zL3Jlc291cmNlcy9waWNr
ZXItY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FsZW5kYXIt
cGlja2VyLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8aW5wdXQgdHlwZT1kYXRl
dGltZSBpZD1kYXRldGltZSB2YWx1ZT0iMjAxMS0xMi0zMVQxMjo1Mzo0NVoiPiAKKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgaWYgY2FsZW5kYXIgcGlja2VyIHdvcmtzIGZvciBkYXRldGlt
ZSBhcyBleHBlY3RlZC4iKTsKKworZGVidWcoJ0NoZWNrIHRoYXQgcGFnZSBwb3B1cCBkb2Vzblwn
dCBleGlzdCBhdCBmaXJzdC4nKTsKK3Nob3VsZEJlTnVsbCgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm1vY2stcGFnZS1wb3B1cCIpJyk7CisKK29wZW5QaWNrZXIoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2RhdGV0aW1lJyksIHRlc3QpOworCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygnc2VsZWN0ZWREYXRlKCknLCAnMjAxMS0xMi0zMScpOworCisgICAg
ZXZlbnRTZW5kZXIua2V5RG93bigncmlnaHRBcnJvdycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnc2VsZWN0ZWREYXRlKCknLCAnMjAxMi0wMS0wMScpOworCisgICAgZXZlbnRTZW5kZXIu
a2V5RG93bignXG4nKTsKKyAgICB3YWl0VW50aWxDbG9zaW5nKHRlc3RBZnRlckNsb3NpbmcpOwor
fQorCitmdW5jdGlvbiB0ZXN0QWZ0ZXJDbG9zaW5nKCkgeworICAgIHNob3VsZEJlTnVsbCgnZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vY2stcGFnZS1wb3B1cCIpJyk7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0ZXRpbWUiKS52YWx1ZScs
ICcyMDEyLTAxLTAxVDEyOjUzOjQ1WicpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174071</attachid>
            <date>2012-11-13 21:35:50 -0800</date>
            <delta_ts>2012-11-13 22:30:36 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-101889-20121114143349.patch</filename>
            <type>text/plain</type>
            <size>16223</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFjZmUzNjQ0MjYwNzY1
NzA1MGUxYzgwNGZlNTU3NTQwYzc0YzIyMC4uZTI1MTU3ZjZiNDhjYjM2YjVlNTlhYmZiNzg0NTgz
MDVhZDk3YWRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTExLTEzICBLdW5p
aGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRW5hYmxl
IGNhbGVuZGFyIHBpY2tlciBmb3IgaW5wdXQgdHlwZXMgZGF0ZXRpbWUvZGF0ZXRpbWUtbG9jYWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg4OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRk
cyBjYWxlbmRhciBwaWNrZXIgdG8gPGlucHV0IHR5cGU9ZGF0ZXRpbWU+IGFuZCA8aW5wdXQgdHlw
ZT1kYXRldGltZS1sb2NhbD4uCisgICAgICAgIFdoZW4gYSB1c2VyIGNob29zZSBhIGRhdGUgZnJv
bSBjYWxlbmRhciBwaWNrZXIsIHllYXIvbW9udGgvZGF5IGZpZWxkcyBvZiB0aGUgaW5wdXQKKyAg
ICAgICAgZWxlbWVudCBhcmUgdXBkYXRlZCBhbmQgaG91ci9taW51dGUvc2Vjb25kIGZpZWxkcyBh
cmUgdW5jaGFuZ2VkLgorCisgICAgICAgIFRlc3RzOiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zv
cm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZXRpbWUtbG9jYWwuaHRtbAor
ICAgICAgICAgICAgICAgcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNr
ZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLmh0bWwKKworICAgICAgICAqIFJlc291cmNlcy9w
YWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOiBEYXkucGFyc2UgYWNjZXB0cyBkYXRldGltZSBz
dHJpbmcgKGp1c3QgZHJvcHMgdGltZSBwYXJ0KS4KKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VN
dWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlOjpwaWNrZXJJbmRpY2F0b3JDaG9vc2VW
YWx1ZSk6CisgICAgICAgIElmIHRoZSBnaXZlbiB2YWx1ZSBpcyBub3QgdmFsaWQgZm9yIHRoZSBl
bGVtZW50LCB0cnkgdG8gcGFyc2UgaXQgYXMgYSBkYXRlIHN0cmluZy4KKyAgICAgICAgKiBodG1s
L0RhdGVUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lSW5wdXRU
eXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKTogRGF0ZVRpbWVGaWVsZHNTdGF0ZTo6bW9u
dGgoKSByZXR1cm5zIDEtMTIsIG5vdCAwLTExLgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBl
Ojpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9zaGFk
b3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpzZXRPbmx5WWVhck1vbnRoRGF5KTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50Lmg6CisgICAgICAg
IChEYXRlVGltZUVkaXRFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bUNvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVt
Q29tbW9uOjpzdXBwb3J0c0NhbGVuZGFyUGlja2VyKTogUmV0dXJuIHRydWUgZm9yIGRhdGV0aW1l
IGFuZCBkYXRldGltZWxvY2FsIHRvby4KKwogMjAxMi0xMS0xMiAgVGltb3RoeSBIYXRjaGVyICA8
dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWw6OnNldEF0dGFjaGVkV2luZG93IGFzIHB1YmxpYy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzIGIvU291cmNl
L1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKaW5kZXggYWY1
MTJkOGU0ODhhZDNjMDM2ZjU2OTZjZGNiNjJjMDM3Yjk1ODQ1NC4uN2NjMDdjY2ZiMDVjMmIxZDhl
MjVjMGZjNWU4MDZlZTg5Y2YzYzRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVzb3Vy
Y2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKQEAgLTIyMCw3ICsyMjAsNyBAQCBm
dW5jdGlvbiBEYXkodmFsdWVPckRheU9yWWVhciwgbW9udGgsIGRhdGUpIHsKICAgICB0aGlzLmRh
dGUgPSBkYXRlT2JqZWN0LmdldFVUQ0RhdGUoKTsKIH07CiAKLURheS5JU09TdHJpbmdSZWdFeHAg
PSAvXihcZCspLShcZCspLShcZCspJC87CitEYXkuSVNPU3RyaW5nUmVnRXhwID0gL14oXGQrKS0o
XGQrKS0oXGQrKS87CiAKIC8qKgogICogQHBhcmFtIHshc3RyaW5nfSBzdHIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAKaW5kZXggY2Y3NmEzN2UyNzM3NDY5ZTM0ODdjY2U1OTJiY2FlZGFmMGE1
MjdmMi4uMjFlNjk2YmExMDljYTcyMjg3NGFkNGMxNDdiY2Q4ODQ5OGEyMWI5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTEzMCw3ICsxMzAsMTcgQEAgYm9vbCBCYXNlTXVsdGlw
bGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6aXNQaWNrZXJJbmRpY2F0b3JPd25lckRpc2Fi
bGVkT3JSZWEKIAogdm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6
cGlja2VySW5kaWNhdG9yQ2hvb3NlVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBl
bGVtZW50KCktPnNldFZhbHVlKHZhbHVlLCBEaXNwYXRjaENoYW5nZUV2ZW50KTsKKyAgICBpZiAo
ZWxlbWVudCgpLT5pc1ZhbGlkVmFsdWUodmFsdWUpKSB7CisgICAgICAgIGVsZW1lbnQoKS0+c2V0
VmFsdWUodmFsdWUsIERpc3BhdGNoQ2hhbmdlRXZlbnQpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCisgICAgICAgIHJldHVybjsKKyAg
ICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAgIHVuc2lnbmVkIGVuZDsKKyAgICBpZiAoZGF0ZS5w
YXJzZURhdGUodmFsdWUuY2hhcmFjdGVycygpLCB2YWx1ZS5sZW5ndGgoKSwgMCwgZW5kKSAmJiBl
bmQgPT0gdmFsdWUubGVuZ3RoKCkpCisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0
T25seVllYXJNb250aERheShkYXRlKTsKIH0KIAogYm9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZTo6c2V0dXBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzKERhdGVUaW1l
Q2hvb3NlclBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuY3BwCmluZGV4IDBlY2FiNmU2ZmE0OWFjMGJkZWQ0ZDRlNWJmYWZlNGIzOGVl
YjFmOWMuLjNjZDcwMWM4YTQwMzNjZmRmMDU2NGIzN2RmOTA3ZDg4NzRjODJmNTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAg
U3RyaW5nIERhdGVUaW1lSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0
IERhdGVUaW1lRmllbGRzU3RhdGUmIGQKICAgICBpZiAoZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNN
aWxsaXNlY29uZCgpICYmIGRhdGVUaW1lRmllbGRzU3RhdGUubWlsbGlzZWNvbmQoKSkgewogICAg
ICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiUwNHUtJTAydS0lMDJ1VCUwMnU6JTAydTolMDJ1
LiUwM3VaIiwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUueWVhcigpLAotICAgICAg
ICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpICsgMSwKKyAgICAgICAgICAgIGRhdGVU
aW1lRmllbGRzU3RhdGUubW9udGgoKSwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUu
ZGF5T2ZNb250aCgpLAogICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5ob3VyMjMoKSwK
ICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubWludXRlKCksCkBAIC0xMjgsNyArMTI4
LDcgQEAgU3RyaW5nIERhdGVUaW1lSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRl
KGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIGQKICAgICBpZiAoZGF0ZVRpbWVGaWVsZHNTdGF0
ZS5oYXNTZWNvbmQoKSAmJiBkYXRlVGltZUZpZWxkc1N0YXRlLnNlY29uZCgpKSB7CiAgICAgICAg
IHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJTA0dS0lMDJ1LSUwMnVUJTAydTolMDJ1OiUwMnVaIiwK
ICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUueWVhcigpLAotICAgICAgICAgICAgZGF0
ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpICsgMSwKKyAgICAgICAgICAgIGRhdGVUaW1lRmllbGRz
U3RhdGUubW9udGgoKSwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuZGF5T2ZNb250
aCgpLAogICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5ob3VyMjMoKSwKICAgICAgICAg
ICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubWludXRlKCksCkBAIC0xMzcsNyArMTM3LDcgQEAgU3Ry
aW5nIERhdGVUaW1lSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERh
dGVUaW1lRmllbGRzU3RhdGUmIGQKIAogICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJTA0dS0l
MDJ1LSUwMnVUJTAydTolMDJ1WiIsCiAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUueWVhcigp
LAotICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLm1vbnRoKCkgKyAxLAorICAgICAgICBkYXRl
VGltZUZpZWxkc1N0YXRlLm1vbnRoKCksCiAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuZGF5
T2ZNb250aCgpLAogICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLmhvdXIyMygpLAogICAgICAg
ICBkYXRlVGltZUZpZWxkc1N0YXRlLm1pbnV0ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IDkzNzNjYmVjMjhkOTQxOWY0Y2RmY2I3
Yzg2OTc3NTNmNDg5YWU4OWUuLjlkZTc3NzNiNGU5MTBiYzc4MDg0NjM3OWRhZjEzOTYwMTE0Mzcx
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNw
cApAQCAtMTIzLDcgKzEyMyw3IEBAIFN0cmluZyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpmb3Jt
YXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhCiAgICAgaWYgKGRh
dGVUaW1lRmllbGRzU3RhdGUuaGFzTWlsbGlzZWNvbmQoKSAmJiBkYXRlVGltZUZpZWxkc1N0YXRl
Lm1pbGxpc2Vjb25kKCkpIHsKICAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlMDR1LSUw
MnUtJTAydVQlMDJ1OiUwMnU6JTAydS4lMDN1IiwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRz
U3RhdGUueWVhcigpLAotICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpICsg
MSwKKyAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubW9udGgoKSwKICAgICAgICAgICAg
IGRhdGVUaW1lRmllbGRzU3RhdGUuZGF5T2ZNb250aCgpLAogICAgICAgICAgICAgZGF0ZVRpbWVG
aWVsZHNTdGF0ZS5ob3VyMjMoKSwKICAgICAgICAgICAgIGRhdGVUaW1lRmllbGRzU3RhdGUubWlu
dXRlKCksCkBAIC0xMzQsNyArMTM0LDcgQEAgU3RyaW5nIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6
OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGEKICAgICBp
ZiAoZGF0ZVRpbWVGaWVsZHNTdGF0ZS5oYXNTZWNvbmQoKSAmJiBkYXRlVGltZUZpZWxkc1N0YXRl
LnNlY29uZCgpKSB7CiAgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJTA0dS0lMDJ1LSUw
MnVUJTAydTolMDJ1OiUwMnUiLAogICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS55ZWFy
KCksCi0gICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRlLm1vbnRoKCkgKyAxLAorICAgICAg
ICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpLAogICAgICAgICAgICAgZGF0ZVRpbWVG
aWVsZHNTdGF0ZS5kYXlPZk1vbnRoKCksCiAgICAgICAgICAgICBkYXRlVGltZUZpZWxkc1N0YXRl
LmhvdXIyMygpLAogICAgICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taW51dGUoKSwKQEAg
LTE0Myw3ICsxNDMsNyBAQCBTdHJpbmcgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Zm9ybWF0RGF0
ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YQogCiAgICAgcmV0dXJuIFN0
cmluZzo6Zm9ybWF0KCIlMDR1LSUwMnUtJTAydVQlMDJ1OiUwMnUiLAogICAgICAgICBkYXRlVGlt
ZUZpZWxkc1N0YXRlLnllYXIoKSwKLSAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgp
ICsgMSwKKyAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5tb250aCgpLAogICAgICAgICBkYXRl
VGltZUZpZWxkc1N0YXRlLmRheU9mTW9udGgoKSwKICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0
ZS5ob3VyMjMoKSwKICAgICAgICAgZGF0ZVRpbWVGaWVsZHNTdGF0ZS5taW51dGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCmlu
ZGV4IGRiYWE0ZDNkYzVlNWFhYmEwZjZkOGFmMzBkNWRjODQxY2I4ODYwMjUuLmU3MmQ3YTllYjM4
OTdjZDcyNDMwODI0Yzk0NWNhMDQ4MGU4MDI5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCkBAIC00ODYsNiArNDg2LDIxIEBA
IGJvb2wgRGF0ZVRpbWVFZGl0RWxlbWVudDo6aGFzRm9jdXNlZEZpZWxkKCkKICAgICByZXR1cm4g
Zm9jdXNlZEZpZWxkSW5kZXgoKSAhPSBpbnZhbGlkRmllbGRJbmRleDsKIH0KIAordm9pZCBEYXRl
VGltZUVkaXRFbGVtZW50OjpzZXRPbmx5WWVhck1vbnRoRGF5KGNvbnN0IERhdGVDb21wb25lbnRz
JiBkYXRlKQoreworICAgIEFTU0VSVChkYXRlLnR5cGUoKSA9PSBEYXRlQ29tcG9uZW50czo6RGF0
ZSk7CisKKyAgICBpZiAoIW1fZWRpdENvbnRyb2xPd25lcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgRGF0ZVRpbWVGaWVsZHNTdGF0ZSBkYXRlVGltZUZpZWxkc1N0YXRlID0gdmFsdWVBc0RhdGVU
aW1lRmllbGRzU3RhdGUoKTsKKyAgICBkYXRlVGltZUZpZWxkc1N0YXRlLnNldFllYXIoZGF0ZS5m
dWxsWWVhcigpKTsKKyAgICBkYXRlVGltZUZpZWxkc1N0YXRlLnNldE1vbnRoKGRhdGUubW9udGgo
KSArIDEpOworICAgIGRhdGVUaW1lRmllbGRzU3RhdGUuc2V0RGF5T2ZNb250aChkYXRlLm1vbnRo
RGF5KCkpOworICAgIHNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGRhdGVUaW1lRmllbGRz
U3RhdGUpOworICAgIG1fZWRpdENvbnRyb2xPd25lci0+ZWRpdENvbnRyb2xWYWx1ZUNoYW5nZWQo
KTsKK30KKwogdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzdGVwRG93bigpCiB7CiAgICAgaWYg
KERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBmaWVsZCA9IGZvY3VzZWRGaWVsZCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCmluZGV4
IDMyYjFiMjMzZmYxMDIwM2U3OGE0YzExZjA4MWQ2YTdlOWUzNTI1ZWYuLjk0Y2IwYWM4MDE2Y2Zk
NjljM2RhMzQ4MzU2NWViYTYxOWMxZmEyZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0RW1wdHlWYWx1ZShjb25zdCBMYXlvdXRQYXJhbWV0ZXJzJiwgY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkKTsKICAgICB2b2lkIHNldFZhbHVlQXNE
YXRlKGNvbnN0IExheW91dFBhcmFtZXRlcnMmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYpOwogICAg
IHZvaWQgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNT
dGF0ZSYpOworICAgIHZvaWQgc2V0T25seVllYXJNb250aERheShjb25zdCBEYXRlQ29tcG9uZW50
cyYpOwogICAgIHZvaWQgc3RlcERvd24oKTsKICAgICB2b2lkIHN0ZXBVcCgpOwogICAgIFN0cmlu
ZyB2YWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Db21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Db21tb24uY3BwCmluZGV4IDdiNDIwYzgzNWU0OTVlM2ZjM2M5Y2E2
Y2M3NzZkY2YwZGE2ODQ2N2IuLmY2MTkwOTExNzNkNGEzNWVlYzM4MTE5ZWNjNTA5ODJjNmJkNzkw
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bUNvbW1vbi5jcHAKQEAgLTQ5LDggKzQ5LDkgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9t
aXVtQ29tbW9uOjpzdXBwb3J0c0RhdGFMaXN0VUkoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQog
I2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCiBib29sIFJlbmRlclRoZW1lQ2hy
b21pdW1Db21tb246OnN1cHBvcnRzQ2FsZW5kYXJQaWNrZXIoY29uc3QgQXRvbWljU3RyaW5nJiB0
eXBlKQogewotICAgIC8vIEZJWE1FOiBXZSdkIGxpa2UgdG8gc3VwcG9ydCBkYXRldGltZSwgYW5k
IGRhdGV0aW1lLWxvY2FsIHRvby4KICAgICByZXR1cm4gdHlwZSA9PSBJbnB1dFR5cGVOYW1lczo6
ZGF0ZSgpCisgICAgICAgIHx8IHR5cGUgPT0gSW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1lKCkKKyAg
ICAgICAgfHwgdHlwZSA9PSBJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWVsb2NhbCgpCiAgICAgICAg
IHx8IHR5cGUgPT0gSW5wdXRUeXBlTmFtZXM6Om1vbnRoKCkKICAgICAgICAgfHwgdHlwZSA9PSBJ
bnB1dFR5cGVOYW1lczo6d2VlaygpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQwZDViN2Y2NzhkNGE0NjNmYzRhN2Nl
NWUyYTg2M2ViN2ExZTlhYzMuLjNiMTJhNjBmZTg2NWM5MzFmOGVlYzkwZGJhMzdhOGNjMTJjNzU2
YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMS0xMyAgS3VuaWhpa28gU2FrYW1vdG8g
IDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEVuYWJsZSBjYWxlbmRhciBwaWNr
ZXIgZm9yIGlucHV0IHR5cGVzIGRhdGV0aW1lL2RhdGV0aW1lLWxvY2FsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE4ODkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyBmb3IgY2FsZW5k
YXIgcGlja2VyIGZvciBpbnB0IHR5cGU9ZGF0ZXRpbWUvZGF0ZXRpbWUtbG9jYWwuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRh
ci1waWNrZXItZGF0ZXRpbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0
ZXRpbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jt
cy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lbG9jYWwtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVu
ZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZXRpbWVsb2NhbC5odG1sOiBBZGRlZC4KKwog
MjAxMi0xMS0xMiAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJlcGxhY2UgRE9NRXhjZXB0aW9uIFRZUEVfTUlTTUFUQ0hfRVJSIHdpdGggVHlwZUVycm9yCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVu
ZGFyLXBpY2tlci9jYWxlbmRhci1waWNrZXItZGF0ZXRpbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5k
YXItcGlja2VyLWRhdGV0aW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjFkZjZiYzk2NDAy
NjhkOWVmNzdkNDRmZjI2YTM5NjM3OTAxMDAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXIt
cGlja2VyLWRhdGV0aW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyBpZiBj
YWxlbmRhciBwaWNrZXIgd29ya3MgZm9yIGRhdGV0aW1lIGFzIGV4cGVjdGVkLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworQ2hlY2sgdGhhdCBwYWdlIHBvcHVwIGRvZXNuJ3QgZXhp
c3QgYXQgZmlyc3QuCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2NrLXBhZ2UtcG9w
dXAiKSBpcyBudWxsCitQQVNTIHNlbGVjdGVkRGF0ZSgpIGlzICIyMDExLTEyLTMxIgorUEFTUyBz
ZWxlY3RlZERhdGUoKSBpcyAiMjAxMi0wMS0wMSIKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm1vY2stcGFnZS1wb3B1cCIpIGlzIG51bGwKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRhdGV0aW1lIikudmFsdWUgaXMgIjIwMTItMDEtMDFUMTI6NTM6NDVaIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2Nh
bGVuZGFyLXBpY2tlci1kYXRldGltZS5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjBkMDc3ZmZlMDE1NWJjYWMxYjllY2Q1OTc5MzY4NmU0MWVmZjRjMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9y
bXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBpY2tlci1kYXRldGltZS5odG1sCkBAIC0wLDAg
KzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9mb3Jtcy9yZXNvdXJjZXMvcGlja2Vy
LWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhbGVuZGFyLXBp
Y2tlci1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGlucHV0IHR5cGU9ZGF0ZXRp
bWUgaWQ9ZGF0ZXRpbWUgdmFsdWU9IjIwMTEtMTItMzFUMTI6NTM6NDVaIj4gCis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRlc3RzIGlmIGNhbGVuZGFyIHBpY2tlciB3b3JrcyBmb3IgZGF0ZXRpbWUg
YXMgZXhwZWN0ZWQuIik7CisKK2RlYnVnKCdDaGVjayB0aGF0IHBhZ2UgcG9wdXAgZG9lc25cJ3Qg
ZXhpc3QgYXQgZmlyc3QuJyk7CitzaG91bGRCZU51bGwoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJtb2NrLXBhZ2UtcG9wdXAiKScpOworCitvcGVuUGlja2VyKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdkYXRldGltZScpLCB0ZXN0KTsKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3NlbGVjdGVkRGF0ZSgpJywgJzIwMTEtMTItMzEnKTsKKworICAgIGV2
ZW50U2VuZGVyLmtleURvd24oJ3JpZ2h0QXJyb3cnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3NlbGVjdGVkRGF0ZSgpJywgJzIwMTItMDEtMDEnKTsKKworICAgIGV2ZW50U2VuZGVyLmtl
eURvd24oJ1xuJyk7CisgICAgd2FpdFVudGlsQ2xvc2luZyh0ZXN0QWZ0ZXJDbG9zaW5nKTsKK30K
KworZnVuY3Rpb24gdGVzdEFmdGVyQ2xvc2luZygpIHsKKyAgICBzaG91bGRCZU51bGwoJ2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJtb2NrLXBhZ2UtcG9wdXAiKScpOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRhdGV0aW1lIikudmFsdWUnLCAn
MjAxMi0wMS0wMVQxMjo1Mzo0NVonKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2Fs
ZW5kYXItcGlja2VyLWRhdGV0aW1lbG9jYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRhci1waWNrZXIvY2FsZW5kYXItcGlja2Vy
LWRhdGV0aW1lbG9jYWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyNmVmZjZhMTBiYWY3YTE5
NDBmZTE1YjEwYzJhMWIxNjIyOTM5ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2NhbGVuZGFyLXBpY2tlci9jYWxlbmRhci1waWNr
ZXItZGF0ZXRpbWVsb2NhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgaWYg
Y2FsZW5kYXIgcGlja2VyIHdvcmtzIGZvciBkYXRldGltZS1sb2NhbCBhcyBleHBlY3RlZC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NoZWNrIHRoYXQgcGFnZSBwb3B1cCBkb2Vz
bid0IGV4aXN0IGF0IGZpcnN0LgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9jay1w
YWdlLXBvcHVwIikgaXMgbnVsbAorUEFTUyBzZWxlY3RlZERhdGUoKSBpcyAiMjAxMS0xMi0zMSIK
K1BBU1Mgc2VsZWN0ZWREYXRlKCkgaXMgIjIwMTItMDEtMDEiCitQQVNTIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJtb2NrLXBhZ2UtcG9wdXAiKSBpcyBudWxsCitQQVNTIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkYXRldGltZWxvY2FsIikudmFsdWUgaXMgIjIwMTItMDEtMDFUMTI6NTM6NDUi
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9jYWxlbmRh
ci1waWNrZXIvY2FsZW5kYXItcGlja2VyLWRhdGV0aW1lbG9jYWwuaHRtbCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBp
Y2tlci1kYXRldGltZWxvY2FsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE2MzhiM2IwNmU2MzAxODNiZGNi
ODZiOWFmZDhmZWJmMjg0MjA2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvY2FsZW5kYXItcGlja2VyL2NhbGVuZGFyLXBpY2tlci1k
YXRldGltZWxvY2FsLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9m
YXN0L2Zvcm1zL3Jlc291cmNlcy9waWNrZXItY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvY2FsZW5kYXItcGlja2VyLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8aW5wdXQgdHlwZT1kYXRldGltZS1sb2NhbCBpZD1kYXRldGltZWxvY2FsIHZhbHVl
PSIyMDExLTEyLTMxVDEyOjUzOjQ1Ij4gCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIGlm
IGNhbGVuZGFyIHBpY2tlciB3b3JrcyBmb3IgZGF0ZXRpbWUtbG9jYWwgYXMgZXhwZWN0ZWQuIik7
CisKK2RlYnVnKCdDaGVjayB0aGF0IHBhZ2UgcG9wdXAgZG9lc25cJ3QgZXhpc3QgYXQgZmlyc3Qu
Jyk7CitzaG91bGRCZU51bGwoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2NrLXBhZ2UtcG9w
dXAiKScpOworCitvcGVuUGlja2VyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkYXRldGltZWxv
Y2FsJyksIHRlc3QpOworCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygnc2VsZWN0ZWREYXRlKCknLCAnMjAxMS0xMi0zMScpOworCisgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigncmlnaHRBcnJvdycpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnc2VsZWN0
ZWREYXRlKCknLCAnMjAxMi0wMS0wMScpOworCisgICAgZXZlbnRTZW5kZXIua2V5RG93bignXG4n
KTsKKyAgICB3YWl0VW50aWxDbG9zaW5nKHRlc3RBZnRlckNsb3NpbmcpOworfQorCitmdW5jdGlv
biB0ZXN0QWZ0ZXJDbG9zaW5nKCkgeworICAgIHNob3VsZEJlTnVsbCgnZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm1vY2stcGFnZS1wb3B1cCIpJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0ZXRpbWVsb2NhbCIpLnZhbHVlJywgJzIwMTIt
MDEtMDFUMTI6NTM6NDUnKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>