<?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>84601</bug_id>
          
          <creation_ts>2012-04-23 08:46:06 -0700</creation_ts>
          <short_desc>[chromium] Add pause and resume support for accelerated css animations.</short_desc>
          <delta_ts>2012-04-27 17:07:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>vollick</reporter>
          <assigned_to>vollick</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>607712</commentid>
    <comment_count>0</comment_count>
    <who name="">vollick</who>
    <bug_when>2012-04-23 08:46:06 -0700</bug_when>
    <thetext>Need to implement suspendAnimations and resumeAnimations and make sure that the run state changes make it to the impl thread. This will be important for testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607723</commentid>
    <comment_count>1</comment_count>
      <attachid>138357</attachid>
    <who name="">vollick</who>
    <bug_when>2012-04-23 08:56:39 -0700</bug_when>
    <thetext>Created attachment 138357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607773</commentid>
    <comment_count>2</comment_count>
      <attachid>138357</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-23 10:01:14 -0700</bug_when>
    <thetext>Comment on attachment 138357
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.cpp:626
&gt;  void LayerChromium::suspendAnimations(double time)

Can you name the &apos;time&apos; variable more descriptively, or otherwise make it more clear what the variable&apos;s base is? Or maybe the conversion below is more obvious to others</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607778</commentid>
    <comment_count>3</comment_count>
      <attachid>138371</attachid>
    <who name="">vollick</who>
    <bug_when>2012-04-23 10:07:17 -0700</bug_when>
    <thetext>Created attachment 138371
Patch

(In reply to comment #2)
&gt; (From update of attachment 138357 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138357&amp;action=review
&gt;
&gt; &gt; Source/WebCore/platform/graphics/chromium/LayerChromium.cpp:626
&gt; &gt;  void LayerChromium::suspendAnimations(double time)
&gt;
&gt; Can you name the &apos;time&apos; variable more descriptively, or otherwise make it more clear what the variable&apos;s base is? Or maybe the conversion below is more obvious to others

Good point! I&apos;ve renamed the parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609492</commentid>
    <comment_count>4</comment_count>
      <attachid>138371</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-24 23:45:02 -0700</bug_when>
    <thetext>Comment on attachment 138371
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.cpp:626
&gt; +void LayerChromium::suspendAnimations(double wallClockTime)

why does this take a wall clock time? who&apos;s passing this in to us?

if this is API we control, it should be using monotonicallyIncreasingTime. if this is being fed in by WebCore, i&apos;d prefer to handle the time rebasing before it gets in to LayerChromium so we don&apos;t have to muck with it there

&gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.cpp:137
&gt; +    // Currently, we only push changes due to pausing and resuming animations on the main thread.

could you explain why it&apos;s OK to delete the code that used to live here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609814</commentid>
    <comment_count>5</comment_count>
      <attachid>138820</attachid>
    <who name="">vollick</who>
    <bug_when>2012-04-25 08:54:44 -0700</bug_when>
    <thetext>Created attachment 138820
Patch

(In reply to comment #4)
&gt; (From update of attachment 138371 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=138371&amp;action=review
&gt;
&gt; &gt; Source/WebCore/platform/graphics/chromium/LayerChromium.cpp:626
&gt; &gt; +void LayerChromium::suspendAnimations(double wallClockTime)
&gt;
&gt; why does this take a wall clock time? who&apos;s passing this in to us?
&gt;
&gt; if this is API we control, it should be using monotonicallyIncreasingTime. if this is being fed in by WebCore, i&apos;d prefer to handle the time rebasing before it gets in to LayerChromium so we don&apos;t have to muck with it there
&gt;
The time comes from WebCore. I&apos;ve moved the rebasing out to GraphicsLayerChromium.

&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.cpp:137
&gt; &gt; +    // Currently, we only push changes due to pausing and resuming animations on the main thread.
&gt;
&gt; could you explain why it&apos;s OK to delete the code that used to live here?
The old code is never called. I&apos;ve included its removal in several cl&apos;s but none of them have landed yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611807</commentid>
    <comment_count>6</comment_count>
      <attachid>139253</attachid>
    <who name="">vollick</who>
    <bug_when>2012-04-27 13:08:40 -0700</bug_when>
    <thetext>Created attachment 139253
Patch

Incorporates fixes for bugs I&apos;ve found getting threaded animation in DRT.

Noteworthy changes
 - CCActiveAnimations need to keep track of their time offset. This is used when resuming animations.
 - Suspend and Resume must cause the animation to pause at the given time and prevent any run state changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611816</commentid>
    <comment_count>7</comment_count>
      <attachid>139253</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-27 13:12:57 -0700</bug_when>
    <thetext>Comment on attachment 139253
Patch

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

Great, R=me.  Thanks for moving the time rebase - I&apos;d like to keep as much of the compositor interface monotonic time as possible and keep WebCore-specific fiddly bits in GLC

&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.cpp:48
&gt; +#include &lt;wtf/CurrentTime.h&gt;
&gt; +

can kill this now

&gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.h:145
&gt; +    // there is absolutely no need for clients of this controller to kmonotonicTime

typo - looks like a bad search-&gt;replace of &quot;now&quot;-&gt;&quot;monotonicTime&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611830</commentid>
    <comment_count>8</comment_count>
      <attachid>139257</attachid>
    <who name="">vollick</who>
    <bug_when>2012-04-27 13:22:13 -0700</bug_when>
    <thetext>Created attachment 139257
Patch

(In reply to comment #7)
&gt; (From update of attachment 139253 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=139253&amp;action=review
&gt;
&gt; Great, R=me.  Thanks for moving the time rebase - I&apos;d like to keep as much of the compositor interface monotonic time as possible and keep WebCore-specific fiddly bits in GLC
&gt;
&gt; &gt; Source/WebCore/platform/graphics/chromium/LayerChromium.cpp:48
&gt; &gt; +#include &lt;wtf/CurrentTime.h&gt;
&gt; &gt; +
&gt;
&gt; can kill this now
Done.
&gt;
&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCActiveAnimation.h:145
&gt; &gt; +    // there is absolutely no need for clients of this controller to kmonotonicTime
&gt;
&gt; typo - looks like a bad search-&gt;replace of &quot;now&quot;-&gt;&quot;monotonicTime&quot;
D&apos;oh. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612031</commentid>
    <comment_count>9</comment_count>
      <attachid>139257</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-27 17:07:05 -0700</bug_when>
    <thetext>Comment on attachment 139257
Patch

Clearing flags on attachment: 139257

Committed r115519: &lt;http://trac.webkit.org/changeset/115519&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612032</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-27 17:07:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138357</attachid>
            <date>2012-04-23 08:56:39 -0700</date>
            <delta_ts>2012-04-23 10:07:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84601-20120423115638.patch</filename>
            <type>text/plain</type>
            <size>15422</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFmZGNmZGM3ODJmMTA5
ZjQzZDYwNGUwOWFkNjQ0YzJjYmZmMGRiYS4uN2Y0M2Q2ODFjZjMyNjQxZWQxNTJjZjVlMjM3MGUz
NTk0MDFlOWE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA0LTIzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHBhdXNlIGFuZCByZXN1bWUgc3VwcG9ydCBmb3IgYWNjZWxlcmF0ZWQgY3NzIGFuaW1hdGlvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDYwMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RlZCBp
biBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3Quc3luY1BhdXNlQW5kUmVzdW1lCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnN1c3BlbmRBbmltYXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnJlc3VtZUFuaW1hdGlvbnMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjpwdXNoUHJvcGVydGllc1RvKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5o
OgorICAgICAgICAoQ0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpzdXNwZW5kQW5pbWF0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVzdW1lQW5p
bWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6
cHVzaEFuaW1hdGlvblVwZGF0ZXNUbyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlcjo6Z2V0QWN0aXZlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5p
bWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlcjo6cHVzaFByb3BlcnRpZXNUb0ltcGxUaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyKToKKwogMjAxMi0wNC0yMyAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBNb3ZlIFJlZmVycmVyUG9saWN5IG91dCBvZiBTZWN1cml0eVBvbGljeSBj
bGFzcyBpbnRvIGl0cyBvd24gaGVhZGVyIGluIHBsYXRmb3JtLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCA1YjcyZjc0MDE4YWVlNzUwZTczY2NmMmVjYjM2YzRlMTkxOGQ4YTkyLi4yNWU2
ZmQ0ZDAyMDcxNWYxOWJjMWI1MTFiZmUxNjg5MGRhMWIwZmE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0LTIzICBJYW4gVm9sbGljayAgPHZvbGxp
Y2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHBhdXNlIGFuZCByZXN1
bWUgc3VwcG9ydCBmb3IgYWNjZWxlcmF0ZWQgY3NzIGFuaW1hdGlvbnMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDYwMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpURVNUKToKKyAgICAg
ICAgKFdlYktpdFRlc3RzKToKKwogMjAxMi0wNC0yMyAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBNb3ZlIFJlZmVycmVyUG9saWN5IG91dCBvZiBTZWN1cml0
eVBvbGljeSBjbGFzcyBpbnRvIGl0cyBvd24gaGVhZGVyIGluIHBsYXRmb3JtLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNo
cm9taXVtLmNwcAppbmRleCBmNzQ5MTc2NTAxMmQzMWY1MzAxZTNjYTFiNGNiNzliM2M0NmNlNzI4
Li5kNjRlOTU2MmZmYjUyMjAwZWNlOTI2M2VmZTZhYzNmYzhjMzg0MzJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNo
cm9taXVtLmNwcApAQCAtNDQsNiArNDQsOCBAQAogI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9z
dC5oIgogI2luY2x1ZGUgInNraWEvZXh0L3BsYXRmb3JtX2NhbnZhcy5oIgogCisjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKQEAgLTYyMywxMyArNjI1LDE3IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVtb3Zl
QW5pbWF0aW9uKGludCBhbmltYXRpb25JZCkKIAogdm9pZCBMYXllckNocm9taXVtOjpzdXNwZW5k
QW5pbWF0aW9ucyhkb3VibGUgdGltZSkKIHsKKyAgICAvLyB8dGltZXwgaXMgaW4gdGhlIHdyb25n
IHRpbWUgYmFzZS4gTmVlZCB0byBjb252ZXJ0IGhlcmUuCisgICAgLy8gRklYTUU6IGZpbmQgYSBt
b3JlIHJlbGlhYmxlIHdheSB0byBkbyB0aGlzLgorICAgIHRpbWUgKz0gbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCkgLSBjdXJyZW50VGltZSgpOwogICAgIG1fbGF5ZXJBbmltYXRpb25Db250
cm9sbGVyLT5zdXNwZW5kQW5pbWF0aW9ucyh0aW1lKTsKICAgICBzZXROZWVkc0NvbW1pdCgpOwog
fQogCiB2b2lkIExheWVyQ2hyb21pdW06OnJlc3VtZUFuaW1hdGlvbnMoKQogewotICAgIG1fbGF5
ZXJBbmltYXRpb25Db250cm9sbGVyLT5yZXN1bWVBbmltYXRpb25zKCk7CisgICAgZG91YmxlIHRp
bWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICBtX2xheWVyQW5pbWF0aW9u
Q29udHJvbGxlci0+cmVzdW1lQW5pbWF0aW9ucyh0aW1lKTsKICAgICBzZXROZWVkc0NvbW1pdCgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAKaW5kZXggMjYwZDdkNDdl
M2IzMWI2MmY1OWIxZGE4MDYwYWNkNWI3ODczNzJhYy4uZTljZDYwZmRiNGU5NjE4NTI2OTVmNWUx
MTRkNGYzMmU3MTUzMGZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcApA
QCAtMTMyLDI1ICsxMzIsMTQgQEAgUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gQ0NBY3Rp
dmVBbmltYXRpb246OmNsb25lRm9ySW1wbFRocmVhZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRvUmV0
dXJuLnJlbGVhc2UoKTsKIH0KIAotdm9pZCBDQ0FjdGl2ZUFuaW1hdGlvbjo6c3luY2hyb25pemVQ
cm9wZXJ0aWVzKENDQWN0aXZlQW5pbWF0aW9uKiBvdGhlcikKK3ZvaWQgQ0NBY3RpdmVBbmltYXRp
b246OnB1c2hQcm9wZXJ0aWVzVG8oQ0NBY3RpdmVBbmltYXRpb24qIG90aGVyKSBjb25zdAogewot
ICAgIC8vIEl0IGlzIHBvc3NpYmxlIGZvciB0aGUgaW1wbCB0aHJlYWQgdG8gaW5pdGlhdGUgYSBy
dW4gc3RhdGUgY2hhbmdlLgotICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIHRoZSBhbmltYXRpb24g
d2FzIHdhaXRpbmcgZm9yIGEgZnV0dXJlIGV2ZW50IHRvIHRha2UKLSAgICAvLyBwbGFjZSwgYW5k
IHRoZSBldmVudCBoYXMgaGFwcGVuZWQuIEluIHRoYXQgY2FzZSwgd2Ugd2FudCAndGhpcycgdG8K
LSAgICAvLyBhc3N1bWUgdGhlIGltcGwgdGhyZWFkJ3MgcnVuIHN0YXRlIGFuZCBzdGFydCB0aW1l
LgotICAgIGlmIChpc1dhaXRpbmcoKSAmJiBvdGhlci0+aXNSdW5uaW5nT3JIYXNSdW4oKSkgewot
ICAgICAgICBtX3J1blN0YXRlID0gb3RoZXItPm1fcnVuU3RhdGU7Ci0gICAgICAgIG1fc3RhcnRU
aW1lID0gb3RoZXItPm1fc3RhcnRUaW1lOwotICAgIH0gZWxzZSB7CisgICAgLy8gQ3VycmVudGx5
LCB3ZSBvbmx5IHB1c2ggY2hhbmdlcyBkdWUgdG8gcGF1c2luZyBhbmQgcmVzdW1pbmcgYW5pbWF0
aW9ucyBvbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgaWYgKG1fcnVuU3RhdGUgPT0gQ0NBY3RpdmVB
bmltYXRpb246OlBhdXNlZCB8fCBvdGhlci0+bV9ydW5TdGF0ZSA9PSBDQ0FjdGl2ZUFuaW1hdGlv
bjo6UGF1c2VkKSB7CiAgICAgICAgIG90aGVyLT5tX3J1blN0YXRlID0gbV9ydW5TdGF0ZTsKLSAg
ICAgICAgb3RoZXItPm1fc3RhcnRUaW1lID0gbV9zdGFydFRpbWU7CisgICAgICAgIG90aGVyLT5t
X3BhdXNlVGltZSA9IG1fcGF1c2VUaW1lOworICAgICAgICBvdGhlci0+bV90b3RhbFBhdXNlZFRp
bWUgPSBtX3RvdGFsUGF1c2VkVGltZTsKICAgICB9Ci0KLSAgICAvLyBDaGFuZ2UgaW4gc3RhdGUg
cmVsYXRlZCB0byBpdGVyYXRpb25zIGFuZCBwYXVzZSBpcyBhbHdheXMgaW5pdGlhdGVkIGZyb20K
LSAgICAvLyB0aGUgbWFpbiB0aHJlYWQsIHNvIGl0IGlzIHNhZmUgdG8gcHVzaCBwcm9wZXJ0aWVz
IGluIHRoYXQgZGlyZWN0aW9uLgotICAgIG90aGVyLT5tX2l0ZXJhdGlvbnMgPSBtX2l0ZXJhdGlv
bnM7Ci0gICAgb3RoZXItPm1fcGF1c2VUaW1lID0gbV9wYXVzZVRpbWU7Ci0gICAgb3RoZXItPm1f
dG90YWxQYXVzZWRUaW1lID0gbV90b3RhbFBhdXNlZFRpbWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCmluZGV4IDVkYjgzYWY5NTYy
MWY2NTBmM2RmYzNlZWMzMTRkNDhkZGM5NGU0ZjUuLjA0YWNhM2E0MWU4YjA3OWQyZDk5MDIzMWI4
MzMwMTFiZDM4ZjIwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uaApAQCAtMTAz
LDcgKzEwMyw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+
IGNsb25lRm9ySW1wbFRocmVhZCgpIGNvbnN0OwogCi0gICAgdm9pZCBzeW5jaHJvbml6ZVByb3Bl
cnRpZXMoQ0NBY3RpdmVBbmltYXRpb24qKTsKKyAgICB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8oQ0NB
Y3RpdmVBbmltYXRpb24qKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBDQ0FjdGl2ZUFuaW1hdGlv
bihQYXNzT3duUHRyPENDQW5pbWF0aW9uQ3VydmU+LCBpbnQgYW5pbWF0aW9uSWQsIGludCBncm91
cElkLCBUYXJnZXRQcm9wZXJ0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlci5jcHAKaW5kZXggN2Y1YTkyOGU4Y2UxOTkwYTM5YzYzZmRhNWM0YmJkYTE3
ZGU5M2E5MC4uMjE1MDA2OGU1ZTBjZTE2YjRjODRlNjg0OGQ1OWFlYmMwYmI2ZTFlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
ckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTY0
LDEzICsxNjQsMjEgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5p
bWF0aW9uKGludCBhbmltYXRpb25JZCkKIH0KIAogLy8gQWNjb3JkaW5nIHRvIHJlbmRlciBsYXll
ciBiYWNraW5nLCB0aGVzZSBhcmUgZm9yIHRlc3Rpbmcgb25seS4KLXZvaWQgQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0aW1lKQordm9pZCBDQ0xh
eWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWVPZmZz
ZXQpCiB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+cnVuU3RhdGUo
KSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZykKKyAgICAgICAgICAgIG1fYWN0aXZlQW5p
bWF0aW9uc1tpXS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OlBhdXNlZCwgdGltZU9m
ZnNldCk7CisgICAgfQogfQogCiAvLyBMb29raW5nIGF0IEdyYXBoaWNzTGF5ZXJDQSwgdGhpcyBh
cHBlYXJzIHRvIGJlIHRoZSBhbmFsb2cgdG8gc3VzcGVuZEFuaW1hdGlvbnMsIHdoaWNoIGlzIGZv
ciB0ZXN0aW5nLgotdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVzdW1lQW5pbWF0
aW9ucygpCit2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25z
KGRvdWJsZSB0aW1lT2Zmc2V0KQogeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9hY3Rp
dmVBbmltYXRpb25zLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlv
bnNbaV0tPnJ1blN0YXRlKCkgPT0gQ0NBY3RpdmVBbmltYXRpb246OlBhdXNlZCkKKyAgICAgICAg
ICAgIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246
OlJ1bm5pbmcsIHRpbWVPZmZzZXQpOworICAgIH0KIH0KIAogLy8gRW5zdXJlcyB0aGF0IHRoZSBs
aXN0IG9mIGFjdGl2ZSBhbmltYXRpb25zIG9uIHRoZSBtYWluIHRocmVhZCBhbmQgdGhlIGltcGwg
dGhyZWFkCkBAIC0xNzksNiArMTg3LDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxl
cjo6cHVzaEFuaW1hdGlvblVwZGF0ZXNUbyhDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGwKIHsKICAg
ICBwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZChjb250cm9sbGVySW1wbCk7CiAgICAgcmVt
b3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVhZChjb250cm9sbGVySW1wbCk7CisgICAg
cHVzaFByb3BlcnRpZXNUb0ltcGxUaHJlYWQoY29udHJvbGxlckltcGwpOwogfQogCiB2b2lkIEND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjphbmltYXRlKGRvdWJsZSBtb25vdG9uaWNUaW1lLCBD
Q0FuaW1hdGlvbkV2ZW50c1ZlY3RvciogZXZlbnRzKQpAQCAtMTk3LDcgKzIwNiw3IEBAIHZvaWQg
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OmFkZChQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0
aW9uPiBhbmltYXRpb24pCiAgICAgbV9hY3RpdmVBbmltYXRpb25zLmFwcGVuZChhbmltYXRpb24p
OwogfQogCi1DQ0FjdGl2ZUFuaW1hdGlvbiogQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Omdl
dEFjdGl2ZUFuaW1hdGlvbihpbnQgZ3JvdXBJZCwgQ0NBY3RpdmVBbmltYXRpb246OlRhcmdldFBy
b3BlcnR5IHRhcmdldFByb3BlcnR5KQorQ0NBY3RpdmVBbmltYXRpb24qIENDTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyOjpnZXRBY3RpdmVBbmltYXRpb24oaW50IGdyb3VwSWQsIENDQWN0aXZlQW5p
bWF0aW9uOjpUYXJnZXRQcm9wZXJ0eSB0YXJnZXRQcm9wZXJ0eSkgY29uc3QKIHsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraSkKICAgICAg
ICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+Z3JvdXAoKSA9PSBncm91cElkICYmIG1fYWN0
aXZlQW5pbWF0aW9uc1tpXS0+dGFyZ2V0UHJvcGVydHkoKSA9PSB0YXJnZXRQcm9wZXJ0eSkKQEAg
LTIzNSw3ICsyNDQsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpub3RpZnlB
bmltYXRpb25TdGFydGVkKGNvbnN0IENDQW5pbWF0aW9uU3RhcnRlZAogICAgIH0KIH0KIAotdm9p
ZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVzaE5ld0FuaW1hdGlvbnNUb0ltcGxUaHJl
YWQoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXJJbXBsKQordm9pZCBDQ0xh
eWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVzaE5ld0FuaW1hdGlvbnNUb0ltcGxUaHJlYWQoQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXJJbXBsKSBjb25zdAogewogICAgIC8v
IEFueSBuZXcgYW5pbWF0aW9ucyBvd25lZCBieSB0aGUgbWFpbiB0aHJlYWQncyBjb250cm9sbGVy
IGFyZSBjbG9uZWQgYW5kIGFkZGUgdG8gdGhlIGltcGwgdGhyZWFkJ3MgY29udHJvbGxlci4KICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraSkg
ewpAQCAtMjU4LDcgKzI2Nyw3IEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1
c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25DCiAgICAgfQogfQog
Ci12b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVBbmltYXRpb25zQ29tcGxl
dGVkT25NYWluVGhyZWFkKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyKiBjb250cm9sbGVySW1w
bCkKK3ZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUFuaW1hdGlvbnNDb21w
bGV0ZWRPbk1haW5UaHJlYWQoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXJJ
bXBsKSBjb25zdAogewogICAgIC8vIERlbGV0ZSBhbGwgaW1wbCB0aHJlYWQgYW5pbWF0aW9ucyBm
b3Igd2hpY2ggdGhlcmUgaXMgbm8gY29ycmVzcG9uZGluZyBtYWluIHRocmVhZCBhbmltYXRpb24u
CiAgICAgLy8gRWFjaCBpdGVyYXRpb24sIGNvbnRyb2xsZXItPm1fYWN0aXZlQW5pbWF0aW9ucy5z
aXplKCkgaXMgZGVjcmVtZW50ZWQgb3IgaSBpcyBpbmNyZW1lbnRlZApAQCAtMjcyLDYgKzI4MSwx
NSBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVBbmltYXRpb25zQ29t
cGxldGVkT25NYWluVGhyZWFkKENDTGF5ZXJBbgogICAgIH0KIH0KIAordm9pZCBDQ0xheWVyQW5p
bWF0aW9uQ29udHJvbGxlcjo6cHVzaFByb3BlcnRpZXNUb0ltcGxUaHJlYWQoQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXJJbXBsKSBjb25zdAoreworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKSB7CisgICAgICAgIEND
QWN0aXZlQW5pbWF0aW9uKiBjdXJyZW50SW1wbCA9IGNvbnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVB
bmltYXRpb24obV9hY3RpdmVBbmltYXRpb25zW2ldLT5ncm91cCgpLCBtX2FjdGl2ZUFuaW1hdGlv
bnNbaV0tPnRhcmdldFByb3BlcnR5KCkpOworICAgICAgICBpZiAoY3VycmVudEltcGwpCisgICAg
ICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnB1c2hQcm9wZXJ0aWVzVG8oY3VycmVudElt
cGwpOworICAgIH0KK30KKwogdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6c3RhcnRB
bmltYXRpb25zV2FpdGluZ0Zvck5leHRUaWNrKGRvdWJsZSBtb25vdG9uaWNUaW1lLCBDQ0FuaW1h
dGlvbkV2ZW50c1ZlY3RvciogZXZlbnRzKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaAppbmRleCBiOTY1MmQwODkxNzFjOGFiMmM3MWE2NWYx
YTAzNmM0OWQ2Yzg0N2M0Li41NjQwNDM2MDU3ZjY4OGI0ZjBlNTNiYTZkNDg5ZDQ5MzAzNzBiY2Fh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmgKQEAg
LTY1LDcgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwYXVzZUFuaW1hdGlvbihp
bnQgYW5pbWF0aW9uSWQsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlQW5pbWF0aW9uKGludCBhbmltYXRpb25JZCk7CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRB
bmltYXRpb25zKGRvdWJsZSB0aW1lKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lQW5pbWF0aW9u
cygpOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVBbmltYXRpb25zKGRvdWJsZSB0aW1lKTsKIAog
ICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgbGlzdCBvZiBhY3RpdmUgYW5pbWF0aW9ucyBvbiB0aGUg
bWFpbiB0aHJlYWQgYW5kIHRoZSBpbXBsIHRocmVhZAogICAgIC8vIGFyZSBrZXB0IGluIHN5bmMu
IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGltcGwgdGhyZWFk
IGNvbnRyb2xsZXIuCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybnMg
dGhlIGFjdGl2ZSBhbmltYXRpb24gaW4gdGhlIGdpdmVuIGdyb3VwLCBhbmltYXRpbmcgdGhlIGdp
dmVuIHByb3BlcnR5IGlmIHN1Y2ggYW4KICAgICAvLyBhbmltYXRpb24gZXhpc3RzLgotICAgIEND
QWN0aXZlQW5pbWF0aW9uKiBnZXRBY3RpdmVBbmltYXRpb24oaW50IGdyb3VwSWQsIENDQWN0aXZl
QW5pbWF0aW9uOjpUYXJnZXRQcm9wZXJ0eSk7CisgICAgQ0NBY3RpdmVBbmltYXRpb24qIGdldEFj
dGl2ZUFuaW1hdGlvbihpbnQgZ3JvdXBJZCwgQ0NBY3RpdmVBbmltYXRpb246OlRhcmdldFByb3Bl
cnR5KSBjb25zdDsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgYW55IGFuaW1h
dGlvbnMgdGhhdCBoYXZlIG5laXRoZXIgZmluaXNoZWQgbm9yIGFib3J0ZWQuCiAgICAgYm9vbCBo
YXNBY3RpdmVBbmltYXRpb24oKSBjb25zdDsKQEAgLTk2LDggKzk2LDkgQEAgcHJvdGVjdGVkOgog
cHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hTZXQ8aW50PiBUYXJnZXRQcm9wZXJ0aWVzOwogCi0g
ICAgdm9pZCBwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29u
dHJvbGxlciopOwotICAgIHZvaWQgcmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVh
ZChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciopOworICAgIHZvaWQgcHVzaE5ld0FuaW1hdGlv
bnNUb0ltcGxUaHJlYWQoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIqKSBjb25zdDsKKyAgICB2
b2lkIHJlbW92ZUFuaW1hdGlvbnNDb21wbGV0ZWRPbk1haW5UaHJlYWQoQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXIqKSBjb25zdDsKKyAgICB2b2lkIHB1c2hQcm9wZXJ0aWVzVG9JbXBsVGhyZWFk
KENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyKikgY29uc3Q7CiAKICAgICB2b2lkIHN0YXJ0QW5p
bWF0aW9uc1dhaXRpbmdGb3JOZXh0VGljayhkb3VibGUgbW9ub3RvbmljVGltZSwgQ0NBbmltYXRp
b25FdmVudHNWZWN0b3IqKTsKICAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JTdGFy
dFRpbWUoZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9yKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJB
bmltYXRpb25Db250cm9sbGVyVGVzdC5jcHAKaW5kZXggMTEzYjYzOWUzNmQ4MDkxYTE1OWUyMDA0
NjNlMTdiZDU3NTFkZjQ2MS4uODJhOTc1NzU4ODA3ZDJiYTBhN2YyYTE5ZjY3NzlkZjliZjc5Y2Ew
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJUZXN0LmNwcApAQCAtMTQxLDYgKzE0MSw0NiBAQCBU
RVNUKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdCwgc3luY05ld0FuaW1hdGlvbikKICAg
ICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxp
dHksIGNvbnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRp
b246Ok9wYWNpdHkpLT5ydW5TdGF0ZSgpKTsKIH0KIAorVEVTVChDQ0xheWVyQW5pbWF0aW9uQ29u
dHJvbGxlclRlc3QsIHN5bmNQYXVzZUFuZFJlc3VtZSkKK3sKKyAgICBGYWtlTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyQ2xpZW50IGR1bW15SW1wbDsKKyAgICBPd25QdHI8Q0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXI+IGNvbnRyb2xsZXJJbXBsKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpj
cmVhdGUoJmR1bW15SW1wbCkpOworICAgIEZha2VMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJDbGll
bnQgZHVtbXk7CisgICAgT3duUHRyPENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyPiBjb250cm9s
bGVyKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpjcmVhdGUoJmR1bW15KSk7CisKKyAgICBF
WFBFQ1RfRkFMU0UoY29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2
ZUFuaW1hdGlvbjo6T3BhY2l0eSkpOworCisgICAgYWRkT3BhY2l0eVRyYW5zaXRpb25Ub0NvbnRy
b2xsZXIoKmNvbnRyb2xsZXIsIDEsIDAsIDEsIGZhbHNlKTsKKworICAgIGNvbnRyb2xsZXItPnB1
c2hBbmltYXRpb25VcGRhdGVzVG8oY29udHJvbGxlckltcGwuZ2V0KCkpOworCisgICAgRVhQRUNU
X1RSVUUoY29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1h
dGlvbjo6T3BhY2l0eSkpOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGlu
Z0ZvclRhcmdldEF2YWlsYWJpbGl0eSwgY29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlv
bigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eSktPnJ1blN0YXRlKCkpOworCisgICAgLy8g
U3RhcnQgdGhlIGFuaW1hdGlvbnMgb24gZWFjaCBjb250cm9sbGVyLgorICAgIENDQW5pbWF0aW9u
RXZlbnRzVmVjdG9yIGV2ZW50czsKKyAgICBjb250cm9sbGVySW1wbC0+YW5pbWF0ZSgwLCAmZXZl
bnRzKTsKKyAgICBjb250cm9sbGVyLT5hbmltYXRlKDAsIDApOworICAgIEVYUEVDVF9FUShDQ0Fj
dGl2ZUFuaW1hdGlvbjo6UnVubmluZywgY29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlv
bigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eSktPnJ1blN0YXRlKCkpOworICAgIEVYUEVD
VF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZywgY29udHJvbGxlci0+Z2V0QWN0aXZlQW5p
bWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KS0+cnVuU3RhdGUoKSk7CisKKyAg
ICAvLyBQYXVzZSB0aGUgbWFpbi10aHJlYWQgYW5pbWF0aW9uLgorICAgIGNvbnRyb2xsZXItPnN1
c3BlbmRBbmltYXRpb25zKDEpOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1
c2VkLCBjb250cm9sbGVyLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246
Ok9wYWNpdHkpLT5ydW5TdGF0ZSgpKTsKKworICAgIC8vIFRoZSBwYXVzZSBydW4gc3RhdGUgY2hh
bmdlIHNob3VsZCBtYWtlIGl0IHRvIHRoZSBpbXBsIHRocmVhZCBjb250cm9sbGVyLgorICAgIGNv
bnRyb2xsZXItPnB1c2hBbmltYXRpb25VcGRhdGVzVG8oY29udHJvbGxlckltcGwuZ2V0KCkpOwor
ICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCBjb250cm9sbGVySW1wbC0+
Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KS0+cnVuU3Rh
dGUoKSk7CisKKyAgICAvLyBSZXN1bWUgdGhlIG1haW4tdGhyZWFkIGFuaW1hdGlvbi4KKyAgICBj
b250cm9sbGVyLT5yZXN1bWVBbmltYXRpb25zKDIpOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFu
aW1hdGlvbjo6UnVubmluZywgY29udHJvbGxlci0+Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0
aXZlQW5pbWF0aW9uOjpPcGFjaXR5KS0+cnVuU3RhdGUoKSk7CisKKyAgICAvLyBUaGUgcGF1c2Ug
cnVuIHN0YXRlIGNoYW5nZSBzaG91bGQgbWFrZSBpdCB0byB0aGUgaW1wbCB0aHJlYWQgY29udHJv
bGxlci4KKyAgICBjb250cm9sbGVyLT5wdXNoQW5pbWF0aW9uVXBkYXRlc1RvKGNvbnRyb2xsZXJJ
bXBsLmdldCgpKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIGNv
bnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9w
YWNpdHkpLT5ydW5TdGF0ZSgpKTsKK30KKwogVEVTVChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxl
clRlc3QsIGRvTm90U3luY0ZpbmlzaGVkQW5pbWF0aW9uKQogewogICAgIEZha2VMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXJDbGllbnQgZHVtbXlJbXBsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138371</attachid>
            <date>2012-04-23 10:07:17 -0700</date>
            <delta_ts>2012-04-25 08:54:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84601-20120423130715.patch</filename>
            <type>text/plain</type>
            <size>15854</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFmZGNmZGM3ODJmMTA5
ZjQzZDYwNGUwOWFkNjQ0YzJjYmZmMGRiYS4uN2Y0M2Q2ODFjZjMyNjQxZWQxNTJjZjVlMjM3MGUz
NTk0MDFlOWE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA0LTIzICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHBhdXNlIGFuZCByZXN1bWUgc3VwcG9ydCBmb3IgYWNjZWxlcmF0ZWQgY3NzIGFuaW1hdGlvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDYwMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RlZCBp
biBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3Quc3luY1BhdXNlQW5kUmVzdW1lCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnN1c3BlbmRBbmltYXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnJlc3VtZUFuaW1hdGlvbnMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjpwdXNoUHJvcGVydGllc1RvKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5o
OgorICAgICAgICAoQ0NBY3RpdmVBbmltYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpzdXNwZW5kQW5pbWF0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVzdW1lQW5p
bWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6
cHVzaEFuaW1hdGlvblVwZGF0ZXNUbyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlcjo6Z2V0QWN0aXZlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5p
bWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlcjo6cHVzaFByb3BlcnRpZXNUb0ltcGxUaHJlYWQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyKToKKwogMjAxMi0wNC0yMyAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBNb3ZlIFJlZmVycmVyUG9saWN5IG91dCBvZiBTZWN1cml0eVBvbGljeSBj
bGFzcyBpbnRvIGl0cyBvd24gaGVhZGVyIGluIHBsYXRmb3JtLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCA1YjcyZjc0MDE4YWVlNzUwZTczY2NmMmVjYjM2YzRlMTkxOGQ4YTkyLi4yNWU2
ZmQ0ZDAyMDcxNWYxOWJjMWI1MTFiZmUxNjg5MGRhMWIwZmE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA0LTIzICBJYW4gVm9sbGljayAgPHZvbGxp
Y2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHBhdXNlIGFuZCByZXN1
bWUgc3VwcG9ydCBmb3IgYWNjZWxlcmF0ZWQgY3NzIGFuaW1hdGlvbnMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDYwMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXJUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpURVNUKToKKyAgICAg
ICAgKFdlYktpdFRlc3RzKToKKwogMjAxMi0wNC0yMyAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBNb3ZlIFJlZmVycmVyUG9saWN5IG91dCBvZiBTZWN1cml0
eVBvbGljeSBjbGFzcyBpbnRvIGl0cyBvd24gaGVhZGVyIGluIHBsYXRmb3JtLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNo
cm9taXVtLmNwcAppbmRleCBmNzQ5MTc2NTAxMmQzMWY1MzAxZTNjYTFiNGNiNzliM2M0NmNlNzI4
Li43ZTdkNjllMmI3YWY2ZjY4M2RjNzA3OWNmMjliOTdlNzJiYTYwMzI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNo
cm9taXVtLmNwcApAQCAtNDQsNiArNDQsOCBAQAogI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9z
dC5oIgogI2luY2x1ZGUgInNraWEvZXh0L3BsYXRmb3JtX2NhbnZhcy5oIgogCisjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKQEAgLTYyMSwxNSArNjIzLDE5IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVtb3Zl
QW5pbWF0aW9uKGludCBhbmltYXRpb25JZCkKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCi12
b2lkIExheWVyQ2hyb21pdW06OnN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0aW1lKQordm9pZCBM
YXllckNocm9taXVtOjpzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgd2FsbENsb2NrVGltZSkKIHsK
LSAgICBtX2xheWVyQW5pbWF0aW9uQ29udHJvbGxlci0+c3VzcGVuZEFuaW1hdGlvbnModGltZSk7
CisgICAgLy8gfHRpbWV8IGlzIGluIHRoZSB3cm9uZyB0aW1lIGJhc2UuIE5lZWQgdG8gY29udmVy
dCBoZXJlLgorICAgIC8vIEZJWE1FOiBmaW5kIGEgbW9yZSByZWxpYWJsZSB3YXkgdG8gZG8gdGhp
cy4KKyAgICBkb3VibGUgbW9ub3RvbmljVGltZSA9IHdhbGxDbG9ja1RpbWUgKyBtb25vdG9uaWNh
bGx5SW5jcmVhc2luZ1RpbWUoKSAtIGN1cnJlbnRUaW1lKCk7CisgICAgbV9sYXllckFuaW1hdGlv
bkNvbnRyb2xsZXItPnN1c3BlbmRBbmltYXRpb25zKG1vbm90b25pY1RpbWUpOwogICAgIHNldE5l
ZWRzQ29tbWl0KCk7CiB9CiAKIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVzdW1lQW5pbWF0aW9ucygp
CiB7Ci0gICAgbV9sYXllckFuaW1hdGlvbkNvbnRyb2xsZXItPnJlc3VtZUFuaW1hdGlvbnMoKTsK
KyAgICBkb3VibGUgbW9ub3RvbmljVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OworICAgIG1fbGF5ZXJBbmltYXRpb25Db250cm9sbGVyLT5yZXN1bWVBbmltYXRpb25zKG1vbm90
b25pY1RpbWUpOwogICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0
aXZlQW5pbWF0aW9uLmNwcAppbmRleCAyNjBkN2Q0N2UzYjMxYjYyZjU5YjFkYTgwNjBhY2Q1Yjc4
NzM3MmFjLi5lOWNkNjBmZGI0ZTk2MTg1MjY5NWY1ZTExNGQ0ZjMyZTcxNTMwZmI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2
ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCkBAIC0xMzIsMjUgKzEzMiwxNCBAQCBQYXNz
T3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmVGb3JJbXBs
VGhyZWFkKCkgY29uc3QKICAgICByZXR1cm4gdG9SZXR1cm4ucmVsZWFzZSgpOwogfQogCi12b2lk
IENDQWN0aXZlQW5pbWF0aW9uOjpzeW5jaHJvbml6ZVByb3BlcnRpZXMoQ0NBY3RpdmVBbmltYXRp
b24qIG90aGVyKQordm9pZCBDQ0FjdGl2ZUFuaW1hdGlvbjo6cHVzaFByb3BlcnRpZXNUbyhDQ0Fj
dGl2ZUFuaW1hdGlvbiogb3RoZXIpIGNvbnN0CiB7Ci0gICAgLy8gSXQgaXMgcG9zc2libGUgZm9y
IHRoZSBpbXBsIHRocmVhZCB0byBpbml0aWF0ZSBhIHJ1biBzdGF0ZSBjaGFuZ2UuCi0gICAgLy8g
VGhpcyBoYXBwZW5zIHdoZW4gdGhlIGFuaW1hdGlvbiB3YXMgd2FpdGluZyBmb3IgYSBmdXR1cmUg
ZXZlbnQgdG8gdGFrZQotICAgIC8vIHBsYWNlLCBhbmQgdGhlIGV2ZW50IGhhcyBoYXBwZW5lZC4g
SW4gdGhhdCBjYXNlLCB3ZSB3YW50ICd0aGlzJyB0bwotICAgIC8vIGFzc3VtZSB0aGUgaW1wbCB0
aHJlYWQncyBydW4gc3RhdGUgYW5kIHN0YXJ0IHRpbWUuCi0gICAgaWYgKGlzV2FpdGluZygpICYm
IG90aGVyLT5pc1J1bm5pbmdPckhhc1J1bigpKSB7Ci0gICAgICAgIG1fcnVuU3RhdGUgPSBvdGhl
ci0+bV9ydW5TdGF0ZTsKLSAgICAgICAgbV9zdGFydFRpbWUgPSBvdGhlci0+bV9zdGFydFRpbWU7
Ci0gICAgfSBlbHNlIHsKKyAgICAvLyBDdXJyZW50bHksIHdlIG9ubHkgcHVzaCBjaGFuZ2VzIGR1
ZSB0byBwYXVzaW5nIGFuZCByZXN1bWluZyBhbmltYXRpb25zIG9uIHRoZSBtYWluIHRocmVhZC4K
KyAgICBpZiAobV9ydW5TdGF0ZSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkIHx8IG90aGVy
LT5tX3J1blN0YXRlID09IENDQWN0aXZlQW5pbWF0aW9uOjpQYXVzZWQpIHsKICAgICAgICAgb3Ro
ZXItPm1fcnVuU3RhdGUgPSBtX3J1blN0YXRlOwotICAgICAgICBvdGhlci0+bV9zdGFydFRpbWUg
PSBtX3N0YXJ0VGltZTsKKyAgICAgICAgb3RoZXItPm1fcGF1c2VUaW1lID0gbV9wYXVzZVRpbWU7
CisgICAgICAgIG90aGVyLT5tX3RvdGFsUGF1c2VkVGltZSA9IG1fdG90YWxQYXVzZWRUaW1lOwog
ICAgIH0KLQotICAgIC8vIENoYW5nZSBpbiBzdGF0ZSByZWxhdGVkIHRvIGl0ZXJhdGlvbnMgYW5k
IHBhdXNlIGlzIGFsd2F5cyBpbml0aWF0ZWQgZnJvbQotICAgIC8vIHRoZSBtYWluIHRocmVhZCwg
c28gaXQgaXMgc2FmZSB0byBwdXNoIHByb3BlcnRpZXMgaW4gdGhhdCBkaXJlY3Rpb24uCi0gICAg
b3RoZXItPm1faXRlcmF0aW9ucyA9IG1faXRlcmF0aW9uczsKLSAgICBvdGhlci0+bV9wYXVzZVRp
bWUgPSBtX3BhdXNlVGltZTsKLSAgICBvdGhlci0+bV90b3RhbFBhdXNlZFRpbWUgPSBtX3RvdGFs
UGF1c2VkVGltZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0
aXZlQW5pbWF0aW9uLmgKaW5kZXggNWRiODNhZjk1NjIxZjY1MGYzZGZjM2VlYzMxNGQ0OGRkYzk0
ZTRmNS4uMDRhY2EzYTQxZThiMDc5ZDJkOTkwMjMxYjgzMzAxMWJkMzhmMjAxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVB
bmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGljOgogCiAg
ICAgUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gY2xvbmVGb3JJbXBsVGhyZWFkKCkgY29u
c3Q7CiAKLSAgICB2b2lkIHN5bmNocm9uaXplUHJvcGVydGllcyhDQ0FjdGl2ZUFuaW1hdGlvbiop
OworICAgIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0FjdGl2ZUFuaW1hdGlvbiopIGNvbnN0Owog
CiBwcml2YXRlOgogICAgIENDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NBbmltYXRpb25D
dXJ2ZT4sIGludCBhbmltYXRpb25JZCwgaW50IGdyb3VwSWQsIFRhcmdldFByb3BlcnR5KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA3
ZjVhOTI4ZThjZTE5OTBhMzljNjNmZGE1YzRiYmRhMTdkZTkzYTkwLi5hZjdmYjM0OTAzYjdmMzA1
YWQyNjM0ZWQyNmQ4ZTlmZDcxMmM2Nzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
ckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xNjQsMTMgKzE2NCwyMSBAQCB2b2lkIENDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVBbmltYXRpb24oaW50IGFuaW1hdGlvbklkKQog
fQogCiAvLyBBY2NvcmRpbmcgdG8gcmVuZGVyIGxheWVyIGJhY2tpbmcsIHRoZXNlIGFyZSBmb3Ig
dGVzdGluZyBvbmx5Lgotdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6c3VzcGVuZEFu
aW1hdGlvbnMoZG91YmxlIHRpbWUpCit2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpz
dXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSkKIHsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraSkgeworICAgICAgICBp
ZiAobV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgpID09IENDQWN0aXZlQW5pbWF0aW9u
OjpSdW5uaW5nKQorICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5zZXRSdW5TdGF0
ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCBtb25vdG9uaWNUaW1lKTsKKyAgICB9CiB9CiAK
IC8vIExvb2tpbmcgYXQgR3JhcGhpY3NMYXllckNBLCB0aGlzIGFwcGVhcnMgdG8gYmUgdGhlIGFu
YWxvZyB0byBzdXNwZW5kQW5pbWF0aW9ucywgd2hpY2ggaXMgZm9yIHRlc3RpbmcuCi12b2lkIEND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkKK3ZvaWQgQ0NMYXll
ckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1Rp
bWUpCiB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+cnVuU3RhdGUo
KSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkKQorICAgICAgICAgICAgbV9hY3RpdmVBbmlt
YXRpb25zW2ldLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZywgbW9ub3Rv
bmljVGltZSk7CisgICAgfQogfQogCiAvLyBFbnN1cmVzIHRoYXQgdGhlIGxpc3Qgb2YgYWN0aXZl
IGFuaW1hdGlvbnMgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB0aGUgaW1wbCB0aHJlYWQKQEAgLTE3
OSw2ICsxODcsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoQW5pbWF0
aW9uVXBkYXRlc1RvKENDTGF5ZXJBbmltYXRpb25Db250cm9sbAogewogICAgIHB1c2hOZXdBbmlt
YXRpb25zVG9JbXBsVGhyZWFkKGNvbnRyb2xsZXJJbXBsKTsKICAgICByZW1vdmVBbmltYXRpb25z
Q29tcGxldGVkT25NYWluVGhyZWFkKGNvbnRyb2xsZXJJbXBsKTsKKyAgICBwdXNoUHJvcGVydGll
c1RvSW1wbFRocmVhZChjb250cm9sbGVySW1wbCk7CiB9CiAKIHZvaWQgQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXI6OmFuaW1hdGUoZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZl
bnRzVmVjdG9yKiBldmVudHMpCkBAIC0xOTcsNyArMjA2LDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlcjo6YWRkKFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGFuaW1hdGlv
bikKICAgICBtX2FjdGl2ZUFuaW1hdGlvbnMuYXBwZW5kKGFuaW1hdGlvbik7CiB9CiAKLUNDQWN0
aXZlQW5pbWF0aW9uKiBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6Z2V0QWN0aXZlQW5pbWF0
aW9uKGludCBncm91cElkLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6VGFyZ2V0UHJvcGVydHkgdGFyZ2V0
UHJvcGVydHkpCitDQ0FjdGl2ZUFuaW1hdGlvbiogQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6
OmdldEFjdGl2ZUFuaW1hdGlvbihpbnQgZ3JvdXBJZCwgQ0NBY3RpdmVBbmltYXRpb246OlRhcmdl
dFByb3BlcnR5IHRhcmdldFByb3BlcnR5KSBjb25zdAogewogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKQogICAgICAgICBpZiAobV9hY3Rp
dmVBbmltYXRpb25zW2ldLT5ncm91cCgpID09IGdyb3VwSWQgJiYgbV9hY3RpdmVBbmltYXRpb25z
W2ldLT50YXJnZXRQcm9wZXJ0eSgpID09IHRhcmdldFByb3BlcnR5KQpAQCAtMjM1LDcgKzI0NCw3
IEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Om5vdGlmeUFuaW1hdGlvblN0YXJ0
ZWQoY29uc3QgQ0NBbmltYXRpb25TdGFydGVkCiAgICAgfQogfQogCi12b2lkIENDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZChDQ0xheWVyQW5p
bWF0aW9uQ29udHJvbGxlciogY29udHJvbGxlckltcGwpCit2b2lkIENDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9u
Q29udHJvbGxlciogY29udHJvbGxlckltcGwpIGNvbnN0CiB7CiAgICAgLy8gQW55IG5ldyBhbmlt
YXRpb25zIG93bmVkIGJ5IHRoZSBtYWluIHRocmVhZCdzIGNvbnRyb2xsZXIgYXJlIGNsb25lZCBh
bmQgYWRkZSB0byB0aGUgaW1wbCB0aHJlYWQncyBjb250cm9sbGVyLgogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKSB7CkBAIC0yNTgsNyAr
MjY3LDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVzaE5ld0FuaW1hdGlv
bnNUb0ltcGxUaHJlYWQoQ0NMYXllckFuaW1hdGlvbkMKICAgICB9CiB9CiAKLXZvaWQgQ0NMYXll
ckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUFuaW1hdGlvbnNDb21wbGV0ZWRPbk1haW5UaHJl
YWQoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXJJbXBsKQordm9pZCBDQ0xh
eWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9uTWFpblRo
cmVhZChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciogY29udHJvbGxlckltcGwpIGNvbnN0CiB7
CiAgICAgLy8gRGVsZXRlIGFsbCBpbXBsIHRocmVhZCBhbmltYXRpb25zIGZvciB3aGljaCB0aGVy
ZSBpcyBubyBjb3JyZXNwb25kaW5nIG1haW4gdGhyZWFkIGFuaW1hdGlvbi4KICAgICAvLyBFYWNo
IGl0ZXJhdGlvbiwgY29udHJvbGxlci0+bV9hY3RpdmVBbmltYXRpb25zLnNpemUoKSBpcyBkZWNy
ZW1lbnRlZCBvciBpIGlzIGluY3JlbWVudGVkCkBAIC0yNzIsNiArMjgxLDE1IEBAIHZvaWQgQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUFuaW1hdGlvbnNDb21wbGV0ZWRPbk1haW5U
aHJlYWQoQ0NMYXllckFuCiAgICAgfQogfQogCit2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyOjpwdXNoUHJvcGVydGllc1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxl
ciogY29udHJvbGxlckltcGwpIGNvbnN0Cit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgQ0NBY3RpdmVBbmltYXRp
b24qIGN1cnJlbnRJbXBsID0gY29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlvbihtX2Fj
dGl2ZUFuaW1hdGlvbnNbaV0tPmdyb3VwKCksIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+dGFyZ2V0
UHJvcGVydHkoKSk7CisgICAgICAgIGlmIChjdXJyZW50SW1wbCkKKyAgICAgICAgICAgIG1fYWN0
aXZlQW5pbWF0aW9uc1tpXS0+cHVzaFByb3BlcnRpZXNUbyhjdXJyZW50SW1wbCk7CisgICAgfQor
fQorCiB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpzdGFydEFuaW1hdGlvbnNXYWl0
aW5nRm9yTmV4dFRpY2soZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRzVmVj
dG9yKiBldmVudHMpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1h
dGlvbnMuc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9u
Q29udHJvbGxlci5oCmluZGV4IGI5NjUyZDA4OTE3MWM4YWIyYzcxYTY1ZjFhMDM2YzQ5ZDZjODQ3
YzQuLjljYTY0ZDBkYjY1OTcyZmIwNGFjODkwNGFlZjZjYmY5MzRmNjgxY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaApAQCAtNjQsOCArNjQsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFkZEFuaW1hdGlvbihjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYsIGNvbnN0IEludFNpemUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlvbiosIGludCBh
bmltYXRpb25JZCwgaW50IGdyb3VwSWQsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKICAgICB2aXJ0dWFs
IHZvaWQgcGF1c2VBbmltYXRpb24oaW50IGFuaW1hdGlvbklkLCBkb3VibGUgdGltZU9mZnNldCk7
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihpbnQgYW5pbWF0aW9uSWQpOwotICAg
IHZpcnR1YWwgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgdGltZSk7Ci0gICAgdmlydHVh
bCB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFuaW1h
dGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVBbmlt
YXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1lKTsKIAogICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUg
bGlzdCBvZiBhY3RpdmUgYW5pbWF0aW9ucyBvbiB0aGUgbWFpbiB0aHJlYWQgYW5kIHRoZSBpbXBs
IHRocmVhZAogICAgIC8vIGFyZSBrZXB0IGluIHN5bmMuIFRoaXMgZnVuY3Rpb24gZG9lcyBub3Qg
dGFrZSBvd25lcnNoaXAgb2YgdGhlIGltcGwgdGhyZWFkIGNvbnRyb2xsZXIuCkBAIC03Nyw3ICs3
Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybnMgdGhlIGFjdGl2ZSBhbmltYXRpb24gaW4g
dGhlIGdpdmVuIGdyb3VwLCBhbmltYXRpbmcgdGhlIGdpdmVuIHByb3BlcnR5IGlmIHN1Y2ggYW4K
ICAgICAvLyBhbmltYXRpb24gZXhpc3RzLgotICAgIENDQWN0aXZlQW5pbWF0aW9uKiBnZXRBY3Rp
dmVBbmltYXRpb24oaW50IGdyb3VwSWQsIENDQWN0aXZlQW5pbWF0aW9uOjpUYXJnZXRQcm9wZXJ0
eSk7CisgICAgQ0NBY3RpdmVBbmltYXRpb24qIGdldEFjdGl2ZUFuaW1hdGlvbihpbnQgZ3JvdXBJ
ZCwgQ0NBY3RpdmVBbmltYXRpb246OlRhcmdldFByb3BlcnR5KSBjb25zdDsKIAogICAgIC8vIFJl
dHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgYW55IGFuaW1hdGlvbnMgdGhhdCBoYXZlIG5laXRoZXIg
ZmluaXNoZWQgbm9yIGFib3J0ZWQuCiAgICAgYm9vbCBoYXNBY3RpdmVBbmltYXRpb24oKSBjb25z
dDsKQEAgLTk2LDggKzk2LDkgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB0eXBlZGVmIEhh
c2hTZXQ8aW50PiBUYXJnZXRQcm9wZXJ0aWVzOwogCi0gICAgdm9pZCBwdXNoTmV3QW5pbWF0aW9u
c1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciopOwotICAgIHZvaWQgcmVt
b3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29udHJv
bGxlciopOworICAgIHZvaWQgcHVzaE5ld0FuaW1hdGlvbnNUb0ltcGxUaHJlYWQoQ0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsZXIqKSBjb25zdDsKKyAgICB2b2lkIHJlbW92ZUFuaW1hdGlvbnNDb21w
bGV0ZWRPbk1haW5UaHJlYWQoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIqKSBjb25zdDsKKyAg
ICB2b2lkIHB1c2hQcm9wZXJ0aWVzVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyKikgY29uc3Q7CiAKICAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JOZXh0VGlj
ayhkb3VibGUgbW9ub3RvbmljVGltZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3IqKTsKICAgICB2
b2lkIHN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JTdGFydFRpbWUoZG91YmxlIG1vbm90b25pY1Rp
bWUsIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9yKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdC5j
cHAKaW5kZXggMTEzYjYzOWUzNmQ4MDkxYTE1OWUyMDA0NjNlMTdiZDU3NTFkZjQ2MS4uODJhOTc1
NzU4ODA3ZDJiYTBhN2YyYTE5ZjY3NzlkZjliZjc5Y2EwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xs
ZXJUZXN0LmNwcApAQCAtMTQxLDYgKzE0MSw0NiBAQCBURVNUKENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyVGVzdCwgc3luY05ld0FuaW1hdGlvbikKICAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmlt
YXRpb246OldhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHksIGNvbnRyb2xsZXJJbXBsLT5nZXRB
Y3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9wYWNpdHkpLT5ydW5TdGF0ZSgp
KTsKIH0KIAorVEVTVChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QsIHN5bmNQYXVzZUFu
ZFJlc3VtZSkKK3sKKyAgICBGYWtlTGF5ZXJBbmltYXRpb25Db250cm9sbGVyQ2xpZW50IGR1bW15
SW1wbDsKKyAgICBPd25QdHI8Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI+IGNvbnRyb2xsZXJJ
bXBsKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpjcmVhdGUoJmR1bW15SW1wbCkpOworICAg
IEZha2VMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJDbGllbnQgZHVtbXk7CisgICAgT3duUHRyPEND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyPiBjb250cm9sbGVyKENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyOjpjcmVhdGUoJmR1bW15KSk7CisKKyAgICBFWFBFQ1RfRkFMU0UoY29udHJvbGxlcklt
cGwtPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eSkpOwor
CisgICAgYWRkT3BhY2l0eVRyYW5zaXRpb25Ub0NvbnRyb2xsZXIoKmNvbnRyb2xsZXIsIDEsIDAs
IDEsIGZhbHNlKTsKKworICAgIGNvbnRyb2xsZXItPnB1c2hBbmltYXRpb25VcGRhdGVzVG8oY29u
dHJvbGxlckltcGwuZ2V0KCkpOworCisgICAgRVhQRUNUX1RSVUUoY29udHJvbGxlckltcGwtPmdl
dEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eSkpOworICAgIEVY
UEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0eSwg
Y29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6
T3BhY2l0eSktPnJ1blN0YXRlKCkpOworCisgICAgLy8gU3RhcnQgdGhlIGFuaW1hdGlvbnMgb24g
ZWFjaCBjb250cm9sbGVyLgorICAgIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9yIGV2ZW50czsKKyAg
ICBjb250cm9sbGVySW1wbC0+YW5pbWF0ZSgwLCAmZXZlbnRzKTsKKyAgICBjb250cm9sbGVyLT5h
bmltYXRlKDAsIDApOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZywg
Y29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6
T3BhY2l0eSktPnJ1blN0YXRlKCkpOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6
UnVubmluZywgY29udHJvbGxlci0+Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0
aW9uOjpPcGFjaXR5KS0+cnVuU3RhdGUoKSk7CisKKyAgICAvLyBQYXVzZSB0aGUgbWFpbi10aHJl
YWQgYW5pbWF0aW9uLgorICAgIGNvbnRyb2xsZXItPnN1c3BlbmRBbmltYXRpb25zKDEpOworICAg
IEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCBjb250cm9sbGVyLT5nZXRBY3Rp
dmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9wYWNpdHkpLT5ydW5TdGF0ZSgpKTsK
KworICAgIC8vIFRoZSBwYXVzZSBydW4gc3RhdGUgY2hhbmdlIHNob3VsZCBtYWtlIGl0IHRvIHRo
ZSBpbXBsIHRocmVhZCBjb250cm9sbGVyLgorICAgIGNvbnRyb2xsZXItPnB1c2hBbmltYXRpb25V
cGRhdGVzVG8oY29udHJvbGxlckltcGwuZ2V0KCkpOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFu
aW1hdGlvbjo6UGF1c2VkLCBjb250cm9sbGVySW1wbC0+Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIEND
QWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KS0+cnVuU3RhdGUoKSk7CisKKyAgICAvLyBSZXN1bWUg
dGhlIG1haW4tdGhyZWFkIGFuaW1hdGlvbi4KKyAgICBjb250cm9sbGVyLT5yZXN1bWVBbmltYXRp
b25zKDIpOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZywgY29udHJv
bGxlci0+Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KS0+
cnVuU3RhdGUoKSk7CisKKyAgICAvLyBUaGUgcGF1c2UgcnVuIHN0YXRlIGNoYW5nZSBzaG91bGQg
bWFrZSBpdCB0byB0aGUgaW1wbCB0aHJlYWQgY29udHJvbGxlci4KKyAgICBjb250cm9sbGVyLT5w
dXNoQW5pbWF0aW9uVXBkYXRlc1RvKGNvbnRyb2xsZXJJbXBsLmdldCgpKTsKKyAgICBFWFBFQ1Rf
RVEoQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIGNvbnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVB
bmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9wYWNpdHkpLT5ydW5TdGF0ZSgpKTsKK30K
KwogVEVTVChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QsIGRvTm90U3luY0ZpbmlzaGVk
QW5pbWF0aW9uKQogewogICAgIEZha2VMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJDbGllbnQgZHVt
bXlJbXBsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138820</attachid>
            <date>2012-04-25 08:54:44 -0700</date>
            <delta_ts>2012-04-27 13:08:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84601-20120425115442.patch</filename>
            <type>text/plain</type>
            <size>19448</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU5MjgxY2VmNmVjYWMy
ZTNmNWRjMjg4M2NmMWFlMmY2ZDI4MDMyYy4uNzRhNmMxMGM3ZDY4MGEwM2E1N2I2ZDQ1Nzc5MTZj
ZjViMTJlM2U5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQxIEBACiAyMDEyLTA0LTI1ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHBhdXNlIGFuZCByZXN1bWUgc3VwcG9ydCBmb3IgYWNjZWxlcmF0ZWQgY3NzIGFuaW1hdGlvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDYwMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RlZCBp
biBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3Quc3luY1BhdXNlQW5kUmVzdW1lCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjp3aWxsQmVEZXN0
cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpzdXNwZW5k
QW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnJl
c3VtZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dy
YXBoaWNzTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoR3JhcGhpY3NMYXllckNocm9taXVtKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnN1c3BlbmRBbmltYXRpb25zKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnJlc3VtZUFuaW1hdGlvbnMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAg
KExheWVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDQWN0aXZlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0
aW9uOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoQ0NBY3RpdmVBbmltYXRpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyOjpzdXNwZW5kQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5p
bWF0aW9uQ29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVzaEFuaW1hdGlvblVwZGF0ZXNUbyk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6Z2V0QWN0aXZlQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNo
TmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5p
bWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVzaFByb3Bl
cnRpZXNUb0ltcGxUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyKToKKworMjAxMi0wNC0yNSAgSWFuIFZv
bGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbY2hyb21pdW1dIEFuaW1h
dGlvbnMgd2FpdGluZyBmb3IgYSBzeW5jaHJvbml6ZWQgc3RhcnQgdGltZSBzaG91bGQgbmV2ZXIg
YmUgbWFya2VkIGZpbmlzaGVkLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODQ1MTkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNTMxMDhi
NjMzM2Y0ZTE5MGE1ZDM3ZDI0ZTk0MmQ5ZjU5MjdjMjQxLi5hODc2ZGMzYjRiYjdmN2M3NGJhNTcw
MmVmM2NlY2I3ZDM5YjU4ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDE2IEBACiAyMDEyLTA0LTI1ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgog
CisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHBhdXNlIGFuZCByZXN1bWUgc3VwcG9ydCBmb3IgYWNj
ZWxlcmF0ZWQgY3NzIGFuaW1hdGlvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NDYwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogdGVzdHMvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJUZXN0LmNw
cDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpURVNUKToKKyAgICAgICAgKFdlYktpdFRlc3RzKToK
KworMjAxMi0wNC0yNSAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KKwogICAg
ICAgICBbY2hyb21pdW1dIEFuaW1hdGlvbnMgd2FpdGluZyBmb3IgYSBzeW5jaHJvbml6ZWQgc3Rh
cnQgdGltZSBzaG91bGQgbmV2ZXIgYmUgbWFya2VkIGZpbmlzaGVkLgogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ1MTkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9t
aXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggODZlYmYyMzM3ZDQ5MTc5MzliODg0Mzg4ZjkxNDU2
MTViMTRlYTE2NS4uM2UzYTcxOGNkMmVhNTc1YjBhMjhlODc2MTlkZjY0ZTE1MjA3NzVmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhp
Y3NMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OndpbGxCZURlc3Ryb3llZCgpCiAgICAgICAgIC8v
IEJlIHN1cmUgdG8gcmVzZXQgdGhlIGRlbGVnYXRlLCBqdXN0IGluIGNhc2UuCiAgICAgICAgIG1f
dHJhbnNmb3JtTGF5ZXItPnNldExheWVyQW5pbWF0aW9uRGVsZWdhdGUoMCk7CiAgICAgfQotICAg
IAorCiAgICAgR3JhcGhpY3NMYXllcjo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKQEAgLTQyMCwx
NCArNDIwLDE3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZW1vdmVBbmltYXRpb24o
Y29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKQogICAgIHByaW1hcnlMYXllcigpLT5yZW1vdmVB
bmltYXRpb24obWFwQW5pbWF0aW9uTmFtZVRvSWQoYW5pbWF0aW9uTmFtZSkpOwogfQogCi12b2lk
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpCit2
b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHdhbGxD
bG9ja1RpbWUpCiB7Ci0gICAgcHJpbWFyeUxheWVyKCktPnN1c3BlbmRBbmltYXRpb25zKHRpbWUp
OworICAgIC8vIHx0aW1lfCBpcyBpbiB0aGUgd3JvbmcgdGltZSBiYXNlLiBOZWVkIHRvIGNvbnZl
cnQgaGVyZS4KKyAgICAvLyBGSVhNRTogZmluZCBhIG1vcmUgcmVsaWFibGUgd2F5IHRvIGRvIHRo
aXMuCisgICAgZG91YmxlIG1vbm90b25pY1RpbWUgPSB3YWxsQ2xvY2tUaW1lICsgbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCkgLSBjdXJyZW50VGltZSgpOworICAgIHByaW1hcnlMYXllcigp
LT5zdXNwZW5kQW5pbWF0aW9ucyhtb25vdG9uaWNUaW1lKTsKIH0KIAogdm9pZCBHcmFwaGljc0xh
eWVyQ2hyb21pdW06OnJlc3VtZUFuaW1hdGlvbnMoKQogewotICAgIHByaW1hcnlMYXllcigpLT5y
ZXN1bWVBbmltYXRpb25zKCk7CisgICAgcHJpbWFyeUxheWVyKCktPnJlc3VtZUFuaW1hdGlvbnMo
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6c2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5ZXIqIGxheWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NM
YXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRleCAyMTgxODM0NjIwNWU2ODM0N2ExMzI0MzZi
OGVkYWNkMWNmN2UxYjIzLi4wOTlmOWMwYjE2MmFjYzRjNWY4NmFkM2M2NjBiZDQ0NGNkYWFkMWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
cmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTAyLDcgKzEwMiw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFs
dWVMaXN0JiwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3Qg
U3RyaW5nJiwgZG91YmxlIHRpbWVPZmZzZXQpOwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZUFuaW1h
dGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFt
ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0aW1lKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja1RpbWUpOwog
ICAgIHZpcnR1YWwgdm9pZCByZXN1bWVBbmltYXRpb25zKCk7CiAKICAgICB2aXJ0dWFsIFBsYXRm
b3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5k
ZXggZjc0OTE3NjUwMTJkMzFmNTMwMWUzY2ExYjRjYjc5YjNjNDZjZTcyOC4uMjcyMjA0ZDljNjMx
YWVhMTQ3ZjNjNDViMmZiNzM4YTEzZmYxNjFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAg
LTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRl
ICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52YXMuaCIKIAorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC02
MjEsMTUgKzYyMywxNSBAQCB2b2lkIExheWVyQ2hyb21pdW06OnJlbW92ZUFuaW1hdGlvbihpbnQg
YW5pbWF0aW9uSWQpCiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAotdm9pZCBMYXllckNocm9t
aXVtOjpzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgdGltZSkKK3ZvaWQgTGF5ZXJDaHJvbWl1bTo6
c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpCiB7Ci0gICAgbV9sYXllckFu
aW1hdGlvbkNvbnRyb2xsZXItPnN1c3BlbmRBbmltYXRpb25zKHRpbWUpOworICAgIG1fbGF5ZXJB
bmltYXRpb25Db250cm9sbGVyLT5zdXNwZW5kQW5pbWF0aW9ucyhtb25vdG9uaWNUaW1lKTsKICAg
ICBzZXROZWVkc0NvbW1pdCgpOwogfQogCi12b2lkIExheWVyQ2hyb21pdW06OnJlc3VtZUFuaW1h
dGlvbnMoKQordm9pZCBMYXllckNocm9taXVtOjpyZXN1bWVBbmltYXRpb25zKGRvdWJsZSBtb25v
dG9uaWNUaW1lKQogewotICAgIG1fbGF5ZXJBbmltYXRpb25Db250cm9sbGVyLT5yZXN1bWVBbmlt
YXRpb25zKCk7CisgICAgbV9sYXllckFuaW1hdGlvbkNvbnRyb2xsZXItPnJlc3VtZUFuaW1hdGlv
bnMobW9ub3RvbmljVGltZSk7CiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5oCmluZGV4IDRkOTMwMDcwYWVkNWIzMmU1ZGQ4OGFjZDQyZmJlOTQ2NTk4NDNhN2MuLjVh
ZDc0M2E4MTc1YzZlMzY5Y2U4MjkzMDViYWM5MTJhNGZkYmNkMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmgKQEAgLTI0Miw4ICsyNDIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXVzZUFuaW1hdGlvbihp
bnQgYW5pbWF0aW9uSWQsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKICAgICB2b2lkIHJlbW92ZUFuaW1h
dGlvbihpbnQgYW5pbWF0aW9uSWQpOwogCi0gICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhkb3Vi
bGUgdGltZSk7Ci0gICAgdm9pZCByZXN1bWVBbmltYXRpb25zKCk7CisgICAgdm9pZCBzdXNwZW5k
QW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSk7CisgICAgdm9pZCByZXN1bWVBbmltYXRp
b25zKGRvdWJsZSBtb25vdG9uaWNUaW1lKTsKIAogICAgIENDTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyKiBsYXllckFuaW1hdGlvbkNvbnRyb2xsZXIoKSB7IHJldHVybiBtX2xheWVyQW5pbWF0aW9u
Q29udHJvbGxlci5nZXQoKTsgfQogICAgIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25Db250cm9sbGVy
KFBhc3NPd25QdHI8Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI+KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
QWN0aXZlQW5pbWF0aW9uLmNwcAppbmRleCAyNjBkN2Q0N2UzYjMxYjYyZjU5YjFkYTgwNjBhY2Q1
Yjc4NzM3MmFjLi5lOWNkNjBmZGI0ZTk2MTg1MjY5NWY1ZTExNGQ0ZjMyZTcxNTMwZmI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Fj
dGl2ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCkBAIC0xMzIsMjUgKzEzMiwxNCBAQCBQ
YXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xvbmVGb3JJ
bXBsVGhyZWFkKCkgY29uc3QKICAgICByZXR1cm4gdG9SZXR1cm4ucmVsZWFzZSgpOwogfQogCi12
b2lkIENDQWN0aXZlQW5pbWF0aW9uOjpzeW5jaHJvbml6ZVByb3BlcnRpZXMoQ0NBY3RpdmVBbmlt
YXRpb24qIG90aGVyKQordm9pZCBDQ0FjdGl2ZUFuaW1hdGlvbjo6cHVzaFByb3BlcnRpZXNUbyhD
Q0FjdGl2ZUFuaW1hdGlvbiogb3RoZXIpIGNvbnN0CiB7Ci0gICAgLy8gSXQgaXMgcG9zc2libGUg
Zm9yIHRoZSBpbXBsIHRocmVhZCB0byBpbml0aWF0ZSBhIHJ1biBzdGF0ZSBjaGFuZ2UuCi0gICAg
Ly8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIGFuaW1hdGlvbiB3YXMgd2FpdGluZyBmb3IgYSBmdXR1
cmUgZXZlbnQgdG8gdGFrZQotICAgIC8vIHBsYWNlLCBhbmQgdGhlIGV2ZW50IGhhcyBoYXBwZW5l
ZC4gSW4gdGhhdCBjYXNlLCB3ZSB3YW50ICd0aGlzJyB0bwotICAgIC8vIGFzc3VtZSB0aGUgaW1w
bCB0aHJlYWQncyBydW4gc3RhdGUgYW5kIHN0YXJ0IHRpbWUuCi0gICAgaWYgKGlzV2FpdGluZygp
ICYmIG90aGVyLT5pc1J1bm5pbmdPckhhc1J1bigpKSB7Ci0gICAgICAgIG1fcnVuU3RhdGUgPSBv
dGhlci0+bV9ydW5TdGF0ZTsKLSAgICAgICAgbV9zdGFydFRpbWUgPSBvdGhlci0+bV9zdGFydFRp
bWU7Ci0gICAgfSBlbHNlIHsKKyAgICAvLyBDdXJyZW50bHksIHdlIG9ubHkgcHVzaCBjaGFuZ2Vz
IGR1ZSB0byBwYXVzaW5nIGFuZCByZXN1bWluZyBhbmltYXRpb25zIG9uIHRoZSBtYWluIHRocmVh
ZC4KKyAgICBpZiAobV9ydW5TdGF0ZSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkIHx8IG90
aGVyLT5tX3J1blN0YXRlID09IENDQWN0aXZlQW5pbWF0aW9uOjpQYXVzZWQpIHsKICAgICAgICAg
b3RoZXItPm1fcnVuU3RhdGUgPSBtX3J1blN0YXRlOwotICAgICAgICBvdGhlci0+bV9zdGFydFRp
bWUgPSBtX3N0YXJ0VGltZTsKKyAgICAgICAgb3RoZXItPm1fcGF1c2VUaW1lID0gbV9wYXVzZVRp
bWU7CisgICAgICAgIG90aGVyLT5tX3RvdGFsUGF1c2VkVGltZSA9IG1fdG90YWxQYXVzZWRUaW1l
OwogICAgIH0KLQotICAgIC8vIENoYW5nZSBpbiBzdGF0ZSByZWxhdGVkIHRvIGl0ZXJhdGlvbnMg
YW5kIHBhdXNlIGlzIGFsd2F5cyBpbml0aWF0ZWQgZnJvbQotICAgIC8vIHRoZSBtYWluIHRocmVh
ZCwgc28gaXQgaXMgc2FmZSB0byBwdXNoIHByb3BlcnRpZXMgaW4gdGhhdCBkaXJlY3Rpb24uCi0g
ICAgb3RoZXItPm1faXRlcmF0aW9ucyA9IG1faXRlcmF0aW9uczsKLSAgICBvdGhlci0+bV9wYXVz
ZVRpbWUgPSBtX3BhdXNlVGltZTsKLSAgICBvdGhlci0+bV90b3RhbFBhdXNlZFRpbWUgPSBtX3Rv
dGFsUGF1c2VkVGltZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmlt
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
QWN0aXZlQW5pbWF0aW9uLmgKaW5kZXggNWRiODNhZjk1NjIxZjY1MGYzZGZjM2VlYzMxNGQ0OGRk
Yzk0ZTRmNS4uMDRhY2EzYTQxZThiMDc5ZDJkOTkwMjMxYjgzMzAxMWJkMzhmMjAxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3Rp
dmVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGljOgog
CiAgICAgUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gY2xvbmVGb3JJbXBsVGhyZWFkKCkg
Y29uc3Q7CiAKLSAgICB2b2lkIHN5bmNocm9uaXplUHJvcGVydGllcyhDQ0FjdGl2ZUFuaW1hdGlv
biopOworICAgIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0FjdGl2ZUFuaW1hdGlvbiopIGNvbnN0
OwogCiBwcml2YXRlOgogICAgIENDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NBbmltYXRp
b25DdXJ2ZT4sIGludCBhbmltYXRpb25JZCwgaW50IGdyb3VwSWQsIFRhcmdldFByb3BlcnR5KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcAppbmRl
eCBmZjUwYzkxMThlOGJhMDVjZDc3ZjAzYmVhNzAzOTgxYWQwNjFlMDllLi45ODgzNWUxNDkzMDhh
M2UzZDg5YTdlN2ZlMDY1YzY5Y2JkZWQ1MDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xNjQsMTMgKzE2NCwyMSBAQCB2b2lkIEND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVBbmltYXRpb24oaW50IGFuaW1hdGlvbklk
KQogfQogCiAvLyBBY2NvcmRpbmcgdG8gcmVuZGVyIGxheWVyIGJhY2tpbmcsIHRoZXNlIGFyZSBm
b3IgdGVzdGluZyBvbmx5Lgotdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6c3VzcGVu
ZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpCit2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVy
OjpzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSkKIHsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraSkgeworICAgICAg
ICBpZiAobV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgpID09IENDQWN0aXZlQW5pbWF0
aW9uOjpSdW5uaW5nKQorICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5zZXRSdW5T
dGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCBtb25vdG9uaWNUaW1lKTsKKyAgICB9CiB9
CiAKIC8vIExvb2tpbmcgYXQgR3JhcGhpY3NMYXllckNBLCB0aGlzIGFwcGVhcnMgdG8gYmUgdGhl
IGFuYWxvZyB0byBzdXNwZW5kQW5pbWF0aW9ucywgd2hpY2ggaXMgZm9yIHRlc3RpbmcuCi12b2lk
IENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkKK3ZvaWQgQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25p
Y1RpbWUpCiB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+cnVuU3Rh
dGUoKSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkKQorICAgICAgICAgICAgbV9hY3RpdmVB
bmltYXRpb25zW2ldLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZywgbW9u
b3RvbmljVGltZSk7CisgICAgfQogfQogCiAvLyBFbnN1cmVzIHRoYXQgdGhlIGxpc3Qgb2YgYWN0
aXZlIGFuaW1hdGlvbnMgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB0aGUgaW1wbCB0aHJlYWQKQEAg
LTE3OSw2ICsxODcsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoQW5p
bWF0aW9uVXBkYXRlc1RvKENDTGF5ZXJBbmltYXRpb25Db250cm9sbAogewogICAgIHB1c2hOZXdB
bmltYXRpb25zVG9JbXBsVGhyZWFkKGNvbnRyb2xsZXJJbXBsKTsKICAgICByZW1vdmVBbmltYXRp
b25zQ29tcGxldGVkT25NYWluVGhyZWFkKGNvbnRyb2xsZXJJbXBsKTsKKyAgICBwdXNoUHJvcGVy
dGllc1RvSW1wbFRocmVhZChjb250cm9sbGVySW1wbCk7CiB9CiAKIHZvaWQgQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXI6OmFuaW1hdGUoZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9u
RXZlbnRzVmVjdG9yKiBldmVudHMpCkBAIC0xOTcsNyArMjA2LDcgQEAgdm9pZCBDQ0xheWVyQW5p
bWF0aW9uQ29udHJvbGxlcjo6YWRkKFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGFuaW1h
dGlvbikKICAgICBtX2FjdGl2ZUFuaW1hdGlvbnMuYXBwZW5kKGFuaW1hdGlvbik7CiB9CiAKLUND
QWN0aXZlQW5pbWF0aW9uKiBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6Z2V0QWN0aXZlQW5p
bWF0aW9uKGludCBncm91cElkLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6VGFyZ2V0UHJvcGVydHkgdGFy
Z2V0UHJvcGVydHkpCitDQ0FjdGl2ZUFuaW1hdGlvbiogQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xs
ZXI6OmdldEFjdGl2ZUFuaW1hdGlvbihpbnQgZ3JvdXBJZCwgQ0NBY3RpdmVBbmltYXRpb246OlRh
cmdldFByb3BlcnR5IHRhcmdldFByb3BlcnR5KSBjb25zdAogewogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKQogICAgICAgICBpZiAobV9h
Y3RpdmVBbmltYXRpb25zW2ldLT5ncm91cCgpID09IGdyb3VwSWQgJiYgbV9hY3RpdmVBbmltYXRp
b25zW2ldLT50YXJnZXRQcm9wZXJ0eSgpID09IHRhcmdldFByb3BlcnR5KQpAQCAtMjM1LDcgKzI0
NCw3IEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Om5vdGlmeUFuaW1hdGlvblN0
YXJ0ZWQoY29uc3QgQ0NBbmltYXRpb25TdGFydGVkCiAgICAgfQogfQogCi12b2lkIENDTGF5ZXJB
bmltYXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZChDQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlciogY29udHJvbGxlckltcGwpCit2b2lkIENDTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlciogY29udHJvbGxlckltcGwpIGNvbnN0CiB7CiAgICAgLy8gQW55IG5ldyBh
bmltYXRpb25zIG93bmVkIGJ5IHRoZSBtYWluIHRocmVhZCdzIGNvbnRyb2xsZXIgYXJlIGNsb25l
ZCBhbmQgYWRkZSB0byB0aGUgaW1wbCB0aHJlYWQncyBjb250cm9sbGVyLgogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKSB7CkBAIC0yNTgs
NyArMjY3LDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cHVzaE5ld0FuaW1h
dGlvbnNUb0ltcGxUaHJlYWQoQ0NMYXllckFuaW1hdGlvbkMKICAgICB9CiB9CiAKLXZvaWQgQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUFuaW1hdGlvbnNDb21wbGV0ZWRPbk1haW5U
aHJlYWQoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXJJbXBsKQordm9pZCBD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9uTWFp
blRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciogY29udHJvbGxlckltcGwpIGNvbnN0
CiB7CiAgICAgLy8gRGVsZXRlIGFsbCBpbXBsIHRocmVhZCBhbmltYXRpb25zIGZvciB3aGljaCB0
aGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIG1haW4gdGhyZWFkIGFuaW1hdGlvbi4KICAgICAvLyBF
YWNoIGl0ZXJhdGlvbiwgY29udHJvbGxlci0+bV9hY3RpdmVBbmltYXRpb25zLnNpemUoKSBpcyBk
ZWNyZW1lbnRlZCBvciBpIGlzIGluY3JlbWVudGVkCkBAIC0yNzIsNiArMjgxLDE1IEBAIHZvaWQg
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlbW92ZUFuaW1hdGlvbnNDb21wbGV0ZWRPbk1h
aW5UaHJlYWQoQ0NMYXllckFuCiAgICAgfQogfQogCit2b2lkIENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyOjpwdXNoUHJvcGVydGllc1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29udHJv
bGxlciogY29udHJvbGxlckltcGwpIGNvbnN0Cit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgQ0NBY3RpdmVBbmlt
YXRpb24qIGN1cnJlbnRJbXBsID0gY29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlvbiht
X2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmdyb3VwKCksIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+dGFy
Z2V0UHJvcGVydHkoKSk7CisgICAgICAgIGlmIChjdXJyZW50SW1wbCkKKyAgICAgICAgICAgIG1f
YWN0aXZlQW5pbWF0aW9uc1tpXS0+cHVzaFByb3BlcnRpZXNUbyhjdXJyZW50SW1wbCk7CisgICAg
fQorfQorCiB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpzdGFydEFuaW1hdGlvbnNX
YWl0aW5nRm9yTmV4dFRpY2soZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRz
VmVjdG9yKiBldmVudHMpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFu
aW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlci5oCmluZGV4IGI5NjUyZDA4OTE3MWM4YWIyYzcxYTY1ZjFhMDM2YzQ5ZDZj
ODQ3YzQuLjljYTY0ZDBkYjY1OTcyZmIwNGFjODkwNGFlZjZjYmY5MzRmNjgxY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJB
bmltYXRpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaApAQCAtNjQsOCArNjQs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFkZEFuaW1hdGlvbihjb25zdCBLZXlmcmFt
ZVZhbHVlTGlzdCYsIGNvbnN0IEludFNpemUmIGJveFNpemUsIGNvbnN0IEFuaW1hdGlvbiosIGlu
dCBhbmltYXRpb25JZCwgaW50IGdyb3VwSWQsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKICAgICB2aXJ0
dWFsIHZvaWQgcGF1c2VBbmltYXRpb24oaW50IGFuaW1hdGlvbklkLCBkb3VibGUgdGltZU9mZnNl
dCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihpbnQgYW5pbWF0aW9uSWQpOwot
ICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgdGltZSk7Ci0gICAgdmly
dHVhbCB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFu
aW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpOworICAgIHZpcnR1YWwgdm9pZCByZXN1bWVB
bmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1lKTsKIAogICAgIC8vIEVuc3VyZXMgdGhhdCB0
aGUgbGlzdCBvZiBhY3RpdmUgYW5pbWF0aW9ucyBvbiB0aGUgbWFpbiB0aHJlYWQgYW5kIHRoZSBp
bXBsIHRocmVhZAogICAgIC8vIGFyZSBrZXB0IGluIHN5bmMuIFRoaXMgZnVuY3Rpb24gZG9lcyBu
b3QgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGltcGwgdGhyZWFkIGNvbnRyb2xsZXIuCkBAIC03Nyw3
ICs3Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFJldHVybnMgdGhlIGFjdGl2ZSBhbmltYXRpb24g
aW4gdGhlIGdpdmVuIGdyb3VwLCBhbmltYXRpbmcgdGhlIGdpdmVuIHByb3BlcnR5IGlmIHN1Y2gg
YW4KICAgICAvLyBhbmltYXRpb24gZXhpc3RzLgotICAgIENDQWN0aXZlQW5pbWF0aW9uKiBnZXRB
Y3RpdmVBbmltYXRpb24oaW50IGdyb3VwSWQsIENDQWN0aXZlQW5pbWF0aW9uOjpUYXJnZXRQcm9w
ZXJ0eSk7CisgICAgQ0NBY3RpdmVBbmltYXRpb24qIGdldEFjdGl2ZUFuaW1hdGlvbihpbnQgZ3Jv
dXBJZCwgQ0NBY3RpdmVBbmltYXRpb246OlRhcmdldFByb3BlcnR5KSBjb25zdDsKIAogICAgIC8v
IFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBhcmUgYW55IGFuaW1hdGlvbnMgdGhhdCBoYXZlIG5laXRo
ZXIgZmluaXNoZWQgbm9yIGFib3J0ZWQuCiAgICAgYm9vbCBoYXNBY3RpdmVBbmltYXRpb24oKSBj
b25zdDsKQEAgLTk2LDggKzk2LDkgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB0eXBlZGVm
IEhhc2hTZXQ8aW50PiBUYXJnZXRQcm9wZXJ0aWVzOwogCi0gICAgdm9pZCBwdXNoTmV3QW5pbWF0
aW9uc1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciopOwotICAgIHZvaWQg
cmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29u
dHJvbGxlciopOworICAgIHZvaWQgcHVzaE5ld0FuaW1hdGlvbnNUb0ltcGxUaHJlYWQoQ0NMYXll
ckFuaW1hdGlvbkNvbnRyb2xsZXIqKSBjb25zdDsKKyAgICB2b2lkIHJlbW92ZUFuaW1hdGlvbnND
b21wbGV0ZWRPbk1haW5UaHJlYWQoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIqKSBjb25zdDsK
KyAgICB2b2lkIHB1c2hQcm9wZXJ0aWVzVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyKikgY29uc3Q7CiAKICAgICB2b2lkIHN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JOZXh0
VGljayhkb3VibGUgbW9ub3RvbmljVGltZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3IqKTsKICAg
ICB2b2lkIHN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdGb3JTdGFydFRpbWUoZG91YmxlIG1vbm90b25p
Y1RpbWUsIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9yKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVz
dC5jcHAKaW5kZXggMmZiMzM4MTA2MGViZWU1MjdjNjIwM2JhMWVmMGNhMWEyNjk0YTdhYi4uNzEz
YjIwYmQ2YjdkODg3ZTdkMzJjNTZjMWQxY2Y3YTljMTdjMmJiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllckFuaW1hdGlvbkNvbnRy
b2xsZXJUZXN0LmNwcApAQCAtMTY4LDYgKzE2OCw0NiBAQCBURVNUKENDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyVGVzdCwgc3luY05ld0FuaW1hdGlvbikKICAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVB
bmltYXRpb246OldhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHksIGNvbnRyb2xsZXJJbXBsLT5n
ZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9wYWNpdHkpLT5ydW5TdGF0
ZSgpKTsKIH0KIAorVEVTVChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QsIHN5bmNQYXVz
ZUFuZFJlc3VtZSkKK3sKKyAgICBGYWtlTGF5ZXJBbmltYXRpb25Db250cm9sbGVyQ2xpZW50IGR1
bW15SW1wbDsKKyAgICBPd25QdHI8Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI+IGNvbnRyb2xs
ZXJJbXBsKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpjcmVhdGUoJmR1bW15SW1wbCkpOwor
ICAgIEZha2VMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJDbGllbnQgZHVtbXk7CisgICAgT3duUHRy
PENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyPiBjb250cm9sbGVyKENDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyOjpjcmVhdGUoJmR1bW15KSk7CisKKyAgICBFWFBFQ1RfRkFMU0UoY29udHJvbGxl
ckltcGwtPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eSkp
OworCisgICAgYWRkT3BhY2l0eVRyYW5zaXRpb25Ub0NvbnRyb2xsZXIoKmNvbnRyb2xsZXIsIDEs
IDAsIDEsIGZhbHNlKTsKKworICAgIGNvbnRyb2xsZXItPnB1c2hBbmltYXRpb25VcGRhdGVzVG8o
Y29udHJvbGxlckltcGwuZ2V0KCkpOworCisgICAgRVhQRUNUX1RSVUUoY29udHJvbGxlckltcGwt
PmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eSkpOworICAg
IEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6V2FpdGluZ0ZvclRhcmdldEF2YWlsYWJpbGl0
eSwgY29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1hdGlv
bjo6T3BhY2l0eSktPnJ1blN0YXRlKCkpOworCisgICAgLy8gU3RhcnQgdGhlIGFuaW1hdGlvbnMg
b24gZWFjaCBjb250cm9sbGVyLgorICAgIENDQW5pbWF0aW9uRXZlbnRzVmVjdG9yIGV2ZW50czsK
KyAgICBjb250cm9sbGVySW1wbC0+YW5pbWF0ZSgwLCAmZXZlbnRzKTsKKyAgICBjb250cm9sbGVy
LT5hbmltYXRlKDAsIDApOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmlu
ZywgY29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1hdGlv
bjo6T3BhY2l0eSktPnJ1blN0YXRlKCkpOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlv
bjo6UnVubmluZywgY29udHJvbGxlci0+Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0aXZlQW5p
bWF0aW9uOjpPcGFjaXR5KS0+cnVuU3RhdGUoKSk7CisKKyAgICAvLyBQYXVzZSB0aGUgbWFpbi10
aHJlYWQgYW5pbWF0aW9uLgorICAgIGNvbnRyb2xsZXItPnN1c3BlbmRBbmltYXRpb25zKDEpOwor
ICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCBjb250cm9sbGVyLT5nZXRB
Y3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9wYWNpdHkpLT5ydW5TdGF0ZSgp
KTsKKworICAgIC8vIFRoZSBwYXVzZSBydW4gc3RhdGUgY2hhbmdlIHNob3VsZCBtYWtlIGl0IHRv
IHRoZSBpbXBsIHRocmVhZCBjb250cm9sbGVyLgorICAgIGNvbnRyb2xsZXItPnB1c2hBbmltYXRp
b25VcGRhdGVzVG8oY29udHJvbGxlckltcGwuZ2V0KCkpOworICAgIEVYUEVDVF9FUShDQ0FjdGl2
ZUFuaW1hdGlvbjo6UGF1c2VkLCBjb250cm9sbGVySW1wbC0+Z2V0QWN0aXZlQW5pbWF0aW9uKDAs
IENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KS0+cnVuU3RhdGUoKSk7CisKKyAgICAvLyBSZXN1
bWUgdGhlIG1haW4tdGhyZWFkIGFuaW1hdGlvbi4KKyAgICBjb250cm9sbGVyLT5yZXN1bWVBbmlt
YXRpb25zKDIpOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZywgY29u
dHJvbGxlci0+Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5
KS0+cnVuU3RhdGUoKSk7CisKKyAgICAvLyBUaGUgcGF1c2UgcnVuIHN0YXRlIGNoYW5nZSBzaG91
bGQgbWFrZSBpdCB0byB0aGUgaW1wbCB0aHJlYWQgY29udHJvbGxlci4KKyAgICBjb250cm9sbGVy
LT5wdXNoQW5pbWF0aW9uVXBkYXRlc1RvKGNvbnRyb2xsZXJJbXBsLmdldCgpKTsKKyAgICBFWFBF
Q1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIGNvbnRyb2xsZXJJbXBsLT5nZXRBY3Rp
dmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9wYWNpdHkpLT5ydW5TdGF0ZSgpKTsK
K30KKwogVEVTVChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QsIGRvTm90U3luY0Zpbmlz
aGVkQW5pbWF0aW9uKQogewogICAgIEZha2VMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJDbGllbnQg
ZHVtbXlJbXBsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139253</attachid>
            <date>2012-04-27 13:08:40 -0700</date>
            <delta_ts>2012-04-27 13:22:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84601-20120427160839.patch</filename>
            <type>text/plain</type>
            <size>32678</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2ODdhZmYyMzliNmFi
MTUwNjQ2NTFhY2U4MzUwMjcxMjM1ZWM5ZS4uNzI2MTUzNzEzNmY1NjNiZmZlMTJhNzliYTFkZGJj
ZWU0YWE5YjgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTA0LTI3ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHBhdXNlIGFuZCByZXN1bWUgc3VwcG9ydCBmb3IgYWNjZWxlcmF0ZWQgY3NzIGFuaW1hdGlvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDYwMQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RlZCBp
bjoKKyAgICAgICAgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJUZXN0LnN5bmNQYXVzZVJlc3Vt
ZQorICAgICAgICBDQ0FjdGl2ZUFuaW1hdGlvblRlc3QuVHJpbVRpbWVUaW1lT2Zmc2V0CisgICAg
ICAgIENDQWN0aXZlQW5pbWF0aW9uVGVzdC5UcmltVGltZVN1c3BlbmRSZXN1bWUKKyAgICAgICAg
Q0NBY3RpdmVBbmltYXRpb25UZXN0LklzRmluaXNoZWROZWVkc1N5bmNocm9uaXplZFN0YXJ0VGlt
ZQorICAgICAgICBDQ0FjdGl2ZUFuaW1hdGlvblRlc3QuUnVuU3RhdGVDaGFuZ2VzSWdub3JlZFdo
aWxlU3VzcGVuZGVkCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFw
aGljc0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNo
cm9taXVtOjpzdXNwZW5kQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2hyb21pdW06OnJlc3VtZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoR3JhcGhpY3NM
YXllckNocm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnN1c3BlbmRB
bmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnJlc3VtZUFuaW1h
dGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uaDoKKyAgICAgICAgKExheWVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNDQWN0aXZlQW5pbWF0aW9uOjpDQ0FjdGl2ZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0FjdGl2ZUFuaW1hdGlvbjo6c2V0UnVuU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NB
Y3RpdmVBbmltYXRpb246OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmlt
YXRpb246OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6aXNG
aW5pc2hlZEF0KToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjp0cmltVGlt
ZVRvQ3VycmVudEl0ZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlv
bjo6Y2xvbmVGb3JJbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0
aW9uOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoQ0NBY3RpdmVBbmltYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246OnNldFN0YXJ0VGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6dGltZU9mZnNldCk6CisgICAgICAg
IChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6c2V0VGltZU9mZnNldCk6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6aXNGaW5pc2hlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OmFkZEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cGF1c2VB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6
OnN1c3BlbmRBbmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJB
bmltYXRpb25Db250cm9sbGVyOjpwdXNoQW5pbWF0aW9uVXBkYXRlc1RvKToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpnZXRBY3RpdmVBbmltYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1c2hOZXdBbmlt
YXRpb25zVG9JbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyOjpyZW1vdmVBbmltYXRpb25zQ29tcGxldGVkT25NYWluVGhyZWFkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoUHJvcGVydGllc1Rv
SW1wbFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyOjp0aWNrQW5pbWF0aW9ucyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyKToKKwogMjAxMi0wNC0yNyAgRGltaXRy
aSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxMTU0MTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDE1MDUy
ZGJiZDNlYTNkYWIxMDdjMzI5NTQ2Mjc3Y2YzYWViYTBhZDYuLmZmZTY3YWY5NmViMjNiYzFjMTE4
NmQzZTc1MjU4NDdkMTAzYzhmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTItMDQtMjcgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgcGF1c2UgYW5kIHJlc3VtZSBzdXBwb3J0IGZvciBh
Y2NlbGVyYXRlZCBjc3MgYW5pbWF0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg0NjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9DQ0FjdGl2ZUFuaW1hdGlvblRlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0
cy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0VGVz
dHM6OlRFU1QpOgorICAgICAgICAoV2ViS2l0VGVzdHMpOgorCiAyMDEyLTA0LTI3ICBHYXZpbiBQ
ZXRlcnMgIDxnYXZpbnBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBuZXcgRU5BQkxFX0xJ
TktfUFJFUkVOREVSIGRlZmluZSB0byBjb250cm9sIHRoZSBQcmVyZW5kZXJpbmcgQVBJCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCA3ZGRlNDJlMTg3Yzk0N2NhYzg1
YWQ4MTMxYmIzNGNmZTU5OTgwYTMwLi4zYjdhNzcxNjc3NjdmY2NkNGNiMGUxZTA2MjAyZGI3ODhk
N2M5MTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTQyMCwx
NCArNDIwLDE3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZW1vdmVBbmltYXRpb24o
Y29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKQogICAgIHByaW1hcnlMYXllcigpLT5yZW1vdmVB
bmltYXRpb24obWFwQW5pbWF0aW9uTmFtZVRvSWQoYW5pbWF0aW9uTmFtZSkpOwogfQogCi12b2lk
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpCit2
b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHdhbGxD
bG9ja1RpbWUpCiB7Ci0gICAgcHJpbWFyeUxheWVyKCktPnN1c3BlbmRBbmltYXRpb25zKHRpbWUp
OworICAgIC8vIHx0aW1lfCBpcyBpbiB0aGUgd3JvbmcgdGltZSBiYXNlLiBOZWVkIHRvIGNvbnZl
cnQgaGVyZS4KKyAgICAvLyBGSVhNRTogZmluZCBhIG1vcmUgcmVsaWFibGUgd2F5IHRvIGRvIHRo
aXMuCisgICAgZG91YmxlIG1vbm90b25pY1RpbWUgPSB3YWxsQ2xvY2tUaW1lICsgbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCkgLSBjdXJyZW50VGltZSgpOworICAgIHByaW1hcnlMYXllcigp
LT5zdXNwZW5kQW5pbWF0aW9ucyhtb25vdG9uaWNUaW1lKTsKIH0KIAogdm9pZCBHcmFwaGljc0xh
eWVyQ2hyb21pdW06OnJlc3VtZUFuaW1hdGlvbnMoKQogewotICAgIHByaW1hcnlMYXllcigpLT5y
ZXN1bWVBbmltYXRpb25zKCk7CisgICAgcHJpbWFyeUxheWVyKCktPnJlc3VtZUFuaW1hdGlvbnMo
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bTo6c2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5ZXIqIGxheWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NM
YXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRleCA4ODMzNTVmZjk1ODViYmJiY2Y3NDM0NTQy
ODAxZDk1YzU5NmY0YjZhLi5lM2E4MjA5MGRjNjU1ZTJiZWFmMzhkNTcxMzNjNGJkMGZmZDRiNWY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
cmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTAyLDcgKzEwMiw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9uKGNvbnN0IEtleWZyYW1lVmFs
dWVMaXN0JiwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5pbWF0aW9uKiwgY29uc3Qg
U3RyaW5nJiwgZG91YmxlIHRpbWVPZmZzZXQpOwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZUFuaW1h
dGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFt
ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0aW1lKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja1RpbWUpOwog
ICAgIHZpcnR1YWwgdm9pZCByZXN1bWVBbmltYXRpb25zKCk7CiAKICAgICB2aXJ0dWFsIFBsYXRm
b3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5k
ZXggMTgwNDA0ZjgyMWZjNWIyNjNjY2FjMmE4M2VjNGE5MDA2NTk3ZGY4YS4uZGE3ZDcyYWY0MjNi
ODAwMjA4YzU2NzdlN2UxNDE1YjgwMTUxYTNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAg
LTQ0LDYgKzQ0LDggQEAKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRl
ICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52YXMuaCIKIAorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC02
MjEsMTUgKzYyMywxNSBAQCB2b2lkIExheWVyQ2hyb21pdW06OnJlbW92ZUFuaW1hdGlvbihpbnQg
YW5pbWF0aW9uSWQpCiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAotdm9pZCBMYXllckNocm9t
aXVtOjpzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgdGltZSkKK3ZvaWQgTGF5ZXJDaHJvbWl1bTo6
c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpCiB7Ci0gICAgbV9sYXllckFu
aW1hdGlvbkNvbnRyb2xsZXItPnN1c3BlbmRBbmltYXRpb25zKHRpbWUpOworICAgIG1fbGF5ZXJB
bmltYXRpb25Db250cm9sbGVyLT5zdXNwZW5kQW5pbWF0aW9ucyhtb25vdG9uaWNUaW1lKTsKICAg
ICBzZXROZWVkc0NvbW1pdCgpOwogfQogCi12b2lkIExheWVyQ2hyb21pdW06OnJlc3VtZUFuaW1h
dGlvbnMoKQordm9pZCBMYXllckNocm9taXVtOjpyZXN1bWVBbmltYXRpb25zKGRvdWJsZSBtb25v
dG9uaWNUaW1lKQogewotICAgIG1fbGF5ZXJBbmltYXRpb25Db250cm9sbGVyLT5yZXN1bWVBbmlt
YXRpb25zKCk7CisgICAgbV9sYXllckFuaW1hdGlvbkNvbnRyb2xsZXItPnJlc3VtZUFuaW1hdGlv
bnMobW9ub3RvbmljVGltZSk7CiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5oCmluZGV4IGI1OGYwMDg1OGQ1MGQ2ZDViNTEzNzc5ZmFmMTE1OTgzMWI2Y2JiN2EuLmQ1
OTQ4NDAwNzg4OTQ3NmFlY2ZiYzJiMjM0NjMwM2QxZDY3NTRiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmgKQEAgLTI0MCw4ICsyNDAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXVzZUFuaW1hdGlvbihp
bnQgYW5pbWF0aW9uSWQsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKICAgICB2b2lkIHJlbW92ZUFuaW1h
dGlvbihpbnQgYW5pbWF0aW9uSWQpOwogCi0gICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhkb3Vi
bGUgdGltZSk7Ci0gICAgdm9pZCByZXN1bWVBbmltYXRpb25zKCk7CisgICAgdm9pZCBzdXNwZW5k
QW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSk7CisgICAgdm9pZCByZXN1bWVBbmltYXRp
b25zKGRvdWJsZSBtb25vdG9uaWNUaW1lKTsKIAogICAgIENDTGF5ZXJBbmltYXRpb25Db250cm9s
bGVyKiBsYXllckFuaW1hdGlvbkNvbnRyb2xsZXIoKSB7IHJldHVybiBtX2xheWVyQW5pbWF0aW9u
Q29udHJvbGxlci5nZXQoKTsgfQogICAgIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25Db250cm9sbGVy
KFBhc3NPd25QdHI8Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI+KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
QWN0aXZlQW5pbWF0aW9uLmNwcAppbmRleCAyNjBkN2Q0N2UzYjMxYjYyZjU5YjFkYTgwNjBhY2Q1
Yjc4NzM3MmFjLi5jY2ZmZGJjNzJkYWRlYWQ2MTcyOGI2NDZhMjg0Y2ExZTJjYjQ0YzA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0Fj
dGl2ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCkBAIC00NSw3ICs0NSw5IEBAIENDQWN0
aXZlQW5pbWF0aW9uOjpDQ0FjdGl2ZUFuaW1hdGlvbihQYXNzT3duUHRyPENDQW5pbWF0aW9uQ3Vy
dmU+IGN1cnZlLCBpbnQgYW5pCiAgICAgLCBtX3J1blN0YXRlKFdhaXRpbmdGb3JUYXJnZXRBdmFp
bGFiaWxpdHkpCiAgICAgLCBtX2l0ZXJhdGlvbnMoMSkKICAgICAsIG1fc3RhcnRUaW1lKDApCisg
ICAgLCBtX3RpbWVPZmZzZXQoMCkKICAgICAsIG1fbmVlZHNTeW5jaHJvbml6ZWRTdGFydFRpbWUo
ZmFsc2UpCisgICAgLCBtX3N1c3BlbmRlZChmYWxzZSkKICAgICAsIG1fcGF1c2VUaW1lKDApCiAg
ICAgLCBtX3RvdGFsUGF1c2VkVGltZSgwKQogewpAQCAtNTUsNDYgKzU3LDQ5IEBAIENDQWN0aXZl
QW5pbWF0aW9uOjp+Q0NBY3RpdmVBbmltYXRpb24oKQogewogfQogCi12b2lkIENDQWN0aXZlQW5p
bWF0aW9uOjpzZXRSdW5TdGF0ZShSdW5TdGF0ZSBydW5TdGF0ZSwgZG91YmxlIG5vdykKK3ZvaWQg
Q0NBY3RpdmVBbmltYXRpb246OnNldFJ1blN0YXRlKFJ1blN0YXRlIHJ1blN0YXRlLCBkb3VibGUg
bW9ub3RvbmljVGltZSkKIHsKKyAgICBpZiAobV9zdXNwZW5kZWQpCisgICAgICAgIHJldHVybjsK
KwogICAgIGlmIChydW5TdGF0ZSA9PSBSdW5uaW5nICYmIG1fcnVuU3RhdGUgPT0gUGF1c2VkKQot
ICAgICAgICBtX3RvdGFsUGF1c2VkVGltZSArPSBub3cgLSBtX3BhdXNlVGltZTsKKyAgICAgICAg
bV90b3RhbFBhdXNlZFRpbWUgKz0gbW9ub3RvbmljVGltZSAtIG1fcGF1c2VUaW1lOwogICAgIGVs
c2UgaWYgKHJ1blN0YXRlID09IFBhdXNlZCkKLSAgICAgICAgbV9wYXVzZVRpbWUgPSBub3c7Cisg
ICAgICAgIG1fcGF1c2VUaW1lID0gbW9ub3RvbmljVGltZTsKICAgICBtX3J1blN0YXRlID0gcnVu
U3RhdGU7CiB9CiAKLWJvb2wgQ0NBY3RpdmVBbmltYXRpb246OmlzRmluaXNoZWRBdChkb3VibGUg
dGltZSkgY29uc3QKK3ZvaWQgQ0NBY3RpdmVBbmltYXRpb246OnN1c3BlbmQoZG91YmxlIG1vbm90
b25pY1RpbWUpCiB7Ci0gICAgaWYgKG1fcnVuU3RhdGUgPT0gRmluaXNoZWQgfHwgbV9ydW5TdGF0
ZSA9PSBBYm9ydGVkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiBtX3J1blN0
YXRlID09IFJ1bm5pbmcKLSAgICAgICAgJiYgbV9pdGVyYXRpb25zID49IDAKLSAgICAgICAgJiYg
bV9pdGVyYXRpb25zICogbV9jdXJ2ZS0+ZHVyYXRpb24oKSA8PSB0aW1lIC0gc3RhcnRUaW1lKCkg
LSBtX3RvdGFsUGF1c2VkVGltZTsKKyAgICBzZXRSdW5TdGF0ZShQYXVzZWQsIG1vbm90b25pY1Rp
bWUpOworICAgIG1fc3VzcGVuZGVkID0gdHJ1ZTsKIH0KIAotYm9vbCBDQ0FjdGl2ZUFuaW1hdGlv
bjo6aXNXYWl0aW5nKCkgY29uc3QKK3ZvaWQgQ0NBY3RpdmVBbmltYXRpb246OnJlc3VtZShkb3Vi
bGUgbW9ub3RvbmljVGltZSkKIHsKLSAgICByZXR1cm4gbV9ydW5TdGF0ZSA9PSBXYWl0aW5nRm9y
TmV4dFRpY2sKLSAgICAgICAgfHwgbV9ydW5TdGF0ZSA9PSBXYWl0aW5nRm9yVGFyZ2V0QXZhaWxh
YmlsaXR5Ci0gICAgICAgIHx8IG1fcnVuU3RhdGUgPT0gV2FpdGluZ0ZvclN0YXJ0VGltZTsKKyAg
ICBtX3N1c3BlbmRlZCA9IGZhbHNlOworICAgIHNldFJ1blN0YXRlKFJ1bm5pbmcsIG1vbm90b25p
Y1RpbWUpOwogfQogCi1ib29sIENDQWN0aXZlQW5pbWF0aW9uOjppc1J1bm5pbmdPckhhc1J1bigp
IGNvbnN0Citib29sIENDQWN0aXZlQW5pbWF0aW9uOjppc0ZpbmlzaGVkQXQoZG91YmxlIG1vbm90
b25pY1RpbWUpIGNvbnN0CiB7CisgICAgaWYgKG1fcnVuU3RhdGUgPT0gRmluaXNoZWQgfHwgbV9y
dW5TdGF0ZSA9PSBBYm9ydGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChtX25l
ZWRzU3luY2hyb25pemVkU3RhcnRUaW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBy
ZXR1cm4gbV9ydW5TdGF0ZSA9PSBSdW5uaW5nCi0gICAgICAgIHx8IG1fcnVuU3RhdGUgPT0gRmlu
aXNoZWQKLSAgICAgICAgfHwgbV9ydW5TdGF0ZSA9PSBBYm9ydGVkCi0gICAgICAgIHx8IG1fcnVu
U3RhdGUgPT0gUGF1c2VkOworICAgICAgICAmJiBtX2l0ZXJhdGlvbnMgPj0gMAorICAgICAgICAm
JiBtX2l0ZXJhdGlvbnMgKiBtX2N1cnZlLT5kdXJhdGlvbigpIDw9IG1vbm90b25pY1RpbWUgLSBz
dGFydFRpbWUoKSAtIG1fdG90YWxQYXVzZWRUaW1lOwogfQogCi1kb3VibGUgQ0NBY3RpdmVBbmlt
YXRpb246OnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKGRvdWJsZSBub3cpIGNvbnN0Citkb3Vi
bGUgQ0NBY3RpdmVBbmltYXRpb246OnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKGRvdWJsZSBt
b25vdG9uaWNUaW1lKSBjb25zdAogewotICAgIGRvdWJsZSB0cmltbWVkID0gbm93OworICAgIGRv
dWJsZSB0cmltbWVkID0gbW9ub3RvbmljVGltZSArIG1fdGltZU9mZnNldDsKIAogICAgIC8vIElm
IHdlJ3JlIHBhdXNlZCwgdGltZSBpcyAnc3R1Y2snIGF0IHRoZSBwYXVzZSB0aW1lLgotICAgIGlm
IChtX3J1blN0YXRlID09IFBhdXNlZCAmJiB0cmltbWVkID4gbV9wYXVzZVRpbWUpCisgICAgaWYg
KG1fcnVuU3RhdGUgPT0gUGF1c2VkKQogICAgICAgICB0cmltbWVkID0gbV9wYXVzZVRpbWU7CiAK
ICAgICAvLyBSZXR1cm5lZCB0aW1lIHNob3VsZCBhbHdheXMgYmUgcmVsYXRpdmUgdG8gdGhlIHN0
YXJ0IHRpbWUgYW5kIHNob3VsZCBzdWJ0cmFjdApAQCAtMTI5LDI4ICsxMzQsMTggQEAgUGFzc093
blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gQ0NBY3RpdmVBbmltYXRpb246OmNsb25lRm9ySW1wbFRo
cmVhZCgpIGNvbnN0CiAgICAgdG9SZXR1cm4tPm1fc3RhcnRUaW1lID0gbV9zdGFydFRpbWU7CiAg
ICAgdG9SZXR1cm4tPm1fcGF1c2VUaW1lID0gbV9wYXVzZVRpbWU7CiAgICAgdG9SZXR1cm4tPm1f
dG90YWxQYXVzZWRUaW1lID0gbV90b3RhbFBhdXNlZFRpbWU7CisgICAgdG9SZXR1cm4tPm1fdGlt
ZU9mZnNldCA9IG1fdGltZU9mZnNldDsKICAgICByZXR1cm4gdG9SZXR1cm4ucmVsZWFzZSgpOwog
fQogCi12b2lkIENDQWN0aXZlQW5pbWF0aW9uOjpzeW5jaHJvbml6ZVByb3BlcnRpZXMoQ0NBY3Rp
dmVBbmltYXRpb24qIG90aGVyKQordm9pZCBDQ0FjdGl2ZUFuaW1hdGlvbjo6cHVzaFByb3BlcnRp
ZXNUbyhDQ0FjdGl2ZUFuaW1hdGlvbiogb3RoZXIpIGNvbnN0CiB7Ci0gICAgLy8gSXQgaXMgcG9z
c2libGUgZm9yIHRoZSBpbXBsIHRocmVhZCB0byBpbml0aWF0ZSBhIHJ1biBzdGF0ZSBjaGFuZ2Uu
Ci0gICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIGFuaW1hdGlvbiB3YXMgd2FpdGluZyBmb3Ig
YSBmdXR1cmUgZXZlbnQgdG8gdGFrZQotICAgIC8vIHBsYWNlLCBhbmQgdGhlIGV2ZW50IGhhcyBo
YXBwZW5lZC4gSW4gdGhhdCBjYXNlLCB3ZSB3YW50ICd0aGlzJyB0bwotICAgIC8vIGFzc3VtZSB0
aGUgaW1wbCB0aHJlYWQncyBydW4gc3RhdGUgYW5kIHN0YXJ0IHRpbWUuCi0gICAgaWYgKGlzV2Fp
dGluZygpICYmIG90aGVyLT5pc1J1bm5pbmdPckhhc1J1bigpKSB7Ci0gICAgICAgIG1fcnVuU3Rh
dGUgPSBvdGhlci0+bV9ydW5TdGF0ZTsKLSAgICAgICAgbV9zdGFydFRpbWUgPSBvdGhlci0+bV9z
dGFydFRpbWU7Ci0gICAgfSBlbHNlIHsKKyAgICAvLyBDdXJyZW50bHksIHdlIG9ubHkgcHVzaCBj
aGFuZ2VzIGR1ZSB0byBwYXVzaW5nIGFuZCByZXN1bWluZyBhbmltYXRpb25zIG9uIHRoZSBtYWlu
IHRocmVhZC4KKyAgICBpZiAobV9ydW5TdGF0ZSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2Vk
IHx8IG90aGVyLT5tX3J1blN0YXRlID09IENDQWN0aXZlQW5pbWF0aW9uOjpQYXVzZWQpIHsKICAg
ICAgICAgb3RoZXItPm1fcnVuU3RhdGUgPSBtX3J1blN0YXRlOwotICAgICAgICBvdGhlci0+bV9z
dGFydFRpbWUgPSBtX3N0YXJ0VGltZTsKKyAgICAgICAgb3RoZXItPm1fcGF1c2VUaW1lID0gbV9w
YXVzZVRpbWU7CisgICAgICAgIG90aGVyLT5tX3RvdGFsUGF1c2VkVGltZSA9IG1fdG90YWxQYXVz
ZWRUaW1lOwogICAgIH0KLQotICAgIC8vIENoYW5nZSBpbiBzdGF0ZSByZWxhdGVkIHRvIGl0ZXJh
dGlvbnMgYW5kIHBhdXNlIGlzIGFsd2F5cyBpbml0aWF0ZWQgZnJvbQotICAgIC8vIHRoZSBtYWlu
IHRocmVhZCwgc28gaXQgaXMgc2FmZSB0byBwdXNoIHByb3BlcnRpZXMgaW4gdGhhdCBkaXJlY3Rp
b24uCi0gICAgb3RoZXItPm1faXRlcmF0aW9ucyA9IG1faXRlcmF0aW9uczsKLSAgICBvdGhlci0+
bV9wYXVzZVRpbWUgPSBtX3BhdXNlVGltZTsKLSAgICBvdGhlci0+bV90b3RhbFBhdXNlZFRpbWUg
PSBtX3RvdGFsUGF1c2VkVGltZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NBY3Rp
dmVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDQWN0aXZlQW5pbWF0aW9uLmgKaW5kZXggYTIyM2I2NmUzMjQzOTVkMTZiYjU5ZDkwMTRl
YWIzYmQwNDQ5NmU0Yy4uOGQ4M2I2MjJjNzNkNTFjYjRmYzEzMDg0OGU4NTVhMDhlNGVkODhmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NBY3RpdmVBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCkBAIC03Miw3ICs3Miw3IEBAIHB1Ymxp
YzoKICAgICBUYXJnZXRQcm9wZXJ0eSB0YXJnZXRQcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGFyZ2V0UHJvcGVydHk7IH0KIAogICAgIFJ1blN0YXRlIHJ1blN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9ydW5TdGF0ZTsgfQotICAgIHZvaWQgc2V0UnVuU3RhdGUoUnVuU3RhdGUsIGRvdWJsZSBu
b3cpOworICAgIHZvaWQgc2V0UnVuU3RhdGUoUnVuU3RhdGUsIGRvdWJsZSBtb25vdG9uaWNUaW1l
KTsKIAogICAgIC8vIFRoaXMgaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGF0IHRoZSBhbmltYXRp
b24gd2lsbCBwbGF5LiBJZiB0aGlzCiAgICAgLy8gdmFsdWUgaXMgemVybyB0aGUgYW5pbWF0aW9u
IHdpbGwgbm90IHBsYXkuIElmIGl0IGlzIG5lZ2F0aXZlLCB0aGVuCkBAIC04MSwxNCArODEsMTcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0SXRlcmF0aW9ucyhpbnQgbikgeyBtX2l0ZXJhdGlvbnMg
PSBuOyB9CiAKICAgICBkb3VibGUgc3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRp
bWU7IH0KLSAgICB2b2lkIHNldFN0YXJ0VGltZShkb3VibGUgc3RhcnRUaW1lKSB7IG1fc3RhcnRU
aW1lID0gc3RhcnRUaW1lOyB9CisgICAgdm9pZCBzZXRTdGFydFRpbWUoZG91YmxlIG1vbm90b25p
Y1RpbWUpIHsgbV9zdGFydFRpbWUgPSBtb25vdG9uaWNUaW1lOyB9CiAgICAgYm9vbCBoYXNTZXRT
dGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0VGltZTsgfQogCi0gICAgYm9vbCBpc0Zp
bmlzaGVkQXQoZG91YmxlIHRpbWUpIGNvbnN0OwotICAgIGJvb2wgaXNGaW5pc2hlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fcnVuU3RhdGUgPT0gRmluaXNoZWQgfHwgbV9ydW5TdGF0ZSA9PSBBYm9ydGVk
OyB9CisgICAgZG91YmxlIHRpbWVPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3RpbWVPZmZzZXQ7
IH0KKyAgICB2b2lkIHNldFRpbWVPZmZzZXQoZG91YmxlIG1vbm90b25pY1RpbWUpIHsgbV90aW1l
T2Zmc2V0ID0gbW9ub3RvbmljVGltZTsgfQorCisgICAgdm9pZCBzdXNwZW5kKGRvdWJsZSBtb25v
dG9uaWNUaW1lKTsKKyAgICB2b2lkIHJlc3VtZShkb3VibGUgbW9ub3RvbmljVGltZSk7CiAKLSAg
ICBib29sIGlzV2FpdGluZygpIGNvbnN0OwotICAgIGJvb2wgaXNSdW5uaW5nT3JIYXNSdW4oKSBj
b25zdDsKKyAgICBib29sIGlzRmluaXNoZWRBdChkb3VibGUgbW9ub3RvbmljVGltZSkgY29uc3Q7
CisgICAgYm9vbCBpc0ZpbmlzaGVkKCkgY29uc3QgeyByZXR1cm4gbV9ydW5TdGF0ZSA9PSBGaW5p
c2hlZCB8fCBtX3J1blN0YXRlID09IEFib3J0ZWQ7IH0KIAogICAgIENDQW5pbWF0aW9uQ3VydmUq
IGN1cnZlKCkgeyByZXR1cm4gbV9jdXJ2ZS5nZXQoKTsgfQogICAgIGNvbnN0IENDQW5pbWF0aW9u
Q3VydmUqIGN1cnZlKCkgY29uc3QgeyByZXR1cm4gbV9jdXJ2ZS5nZXQoKTsgfQpAQCAtMTAwLDEx
ICsxMDMsMTEgQEAgcHVibGljOgogCiAgICAgLy8gVGFrZXMgdGhlIGdpdmVuIGFic29sdXRlIHRp
bWUsIGFuZCB1c2luZyB0aGUgc3RhcnQgdGltZSBhbmQgdGhlIG51bWJlcgogICAgIC8vIG9mIGl0
ZXJhdGlvbnMsIHJldHVybnMgdGhlIHJlbGF0aXZlIHRpbWUgaW4gdGhlIGN1cnJlbnQgaXRlcmF0
aW9uLgotICAgIGRvdWJsZSB0cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbihkb3VibGUgbm93KSBj
b25zdDsKKyAgICBkb3VibGUgdHJpbVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oZG91YmxlIG1vbm90
b25pY1RpbWUpIGNvbnN0OwogCiAgICAgUGFzc093blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4gY2xv
bmVGb3JJbXBsVGhyZWFkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHN5bmNocm9uaXplUHJvcGVydGll
cyhDQ0FjdGl2ZUFuaW1hdGlvbiopOworICAgIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0FjdGl2
ZUFuaW1hdGlvbiopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIENDQWN0aXZlQW5pbWF0aW9uKFBh
c3NPd25QdHI8Q0NBbmltYXRpb25DdXJ2ZT4sIGludCBhbmltYXRpb25JZCwgaW50IGdyb3VwSWQs
IFRhcmdldFByb3BlcnR5KTsKQEAgLTEyNiwxMSArMTI5LDIwIEBAIHByaXZhdGU6CiAgICAgaW50
IG1faXRlcmF0aW9uczsKICAgICBkb3VibGUgbV9zdGFydFRpbWU7CiAKKyAgICAvLyBUaGUgdGlt
ZSBvZmZzZXQgZWZmZWN0aXZlbHkgcHVzaGVzIHRoZSBzdGFydCBvZiB0aGUgYW5pbWF0aW9uIGJh
Y2sgaW4gdGltZS4gVGhpcyBpcworICAgIC8vIHVzZWQgZm9yIHJlc3VtaW5nIHBhdXNlZCBhbmlt
YXRpb25zIC0tIGFuIGFuaW1hdGlvbiBpcyBhZGRlZCB3aXRoIGEgbm9uLXplcm8gdGltZQorICAg
IC8vIG9mZnNldCwgY2F1c2luZyB0aGUgYW5pbWF0aW9uIHRvIHNraXAgYWhlYWQgdG8gdGhlIGRl
c2lyZWQgcG9pbnQgaW4gdGltZS4KKyAgICBkb3VibGUgbV90aW1lT2Zmc2V0OworCiAgICAgYm9v
bCBtX25lZWRzU3luY2hyb25pemVkU3RhcnRUaW1lOwogCisgICAgLy8gV2hlbiBhbiBhbmltYXRp
b24gaXMgc3VzcGVuZGVkLCBpdCBiZWhhdmVzIGFzIGlmIGl0IGlzIHBhdXNlZCBhbmQgaXQgYWxz
byBpZ25vcmVzCisgICAgLy8gYWxsIHJ1biBzdGF0ZSBjaGFuZ2VzIHVudGlsIGl0IGlzIHJlc3Vt
ZWQuIFRoaXMgaXMgdXNlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKyAgICBib29sIG1fc3VzcGVu
ZGVkOworCiAgICAgLy8gVGhlc2UgYXJlIHVzZWQgaW4gdHJpbVRpbWVUb0N1cnJlbnRJdGVyYXRp
b24gdG8gYWNjb3VudCBmb3IgdGltZQogICAgIC8vIHNwZW50IHdoaWxlIHBhdXNlZC4gVGhpcyBp
cyBub3QgaW5jbHVkZWQgaW4gQW5pbWF0aW9uU3RhdGUgc2luY2UgaXQKLSAgICAvLyB0aGVyZSBp
cyBhYnNvbHV0ZWx5IG5vIG5lZWQgZm9yIGNsaWVudHMgb2YgdGhpcyBjb250cm9sbGVyIHRvIGtu
b3cKKyAgICAvLyB0aGVyZSBpcyBhYnNvbHV0ZWx5IG5vIG5lZWQgZm9yIGNsaWVudHMgb2YgdGhp
cyBjb250cm9sbGVyIHRvIGttb25vdG9uaWNUaW1lCiAgICAgLy8gYWJvdXQgdGhlc2UgdmFsdWVz
LgogICAgIGRvdWJsZSBtX3BhdXNlVGltZTsKICAgICBkb3VibGUgbV90b3RhbFBhdXNlZFRpbWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5k
ZXggNDNmZGEwOTc4OTlhMGQyMmI3NGViZmFkMTdmODc5YWYzN2M5MDY2ZS4uMTk5MTkyZDUyYTQ0
OGFkYzliZTQyYTMyZGRiMDgwMjdmZjZjZDczZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTA3LDYgKzEwNyw5IEBAIFBhc3NPd25Q
dHI8Q0NBY3RpdmVBbmltYXRpb24+IGNyZWF0ZUFjdGl2ZUFuaW1hdGlvbihjb25zdCBLZXlmcmFt
ZVZhbHVlTGlzdCYgdmFsCiAgICAgLy8gdGhlIGNvcnJlc3BvbmRpbmcgaW1wbCB0aHJlYWQgYW5p
bWF0aW9uLgogICAgIGFuaW0tPnNldE5lZWRzU3luY2hyb25pemVkU3RhcnRUaW1lKHRydWUpOwog
CisgICAgLy8gSWYgdGltZU9mZnNldCA+IDAsIHRoZW4gdGhlIGFuaW1hdGlvbiBoYXMgc3RhcnRl
ZCBpbiB0aGUgcGFzdC4KKyAgICBhbmltLT5zZXRUaW1lT2Zmc2V0KHRpbWVPZmZzZXQpOworCiAg
ICAgcmV0dXJuIGFuaW0ucmVsZWFzZSgpOwogfQogCkBAIC0xMzgsNiArMTQxLDEzIEBAIGJvb2wg
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OmFkZEFuaW1hdGlvbihjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYgdmFsdWVMaXN0CiAgICAgICAgIHRvQWRkID0gY3JlYXRlQWN0aXZlQW5pbWF0aW9u
PEZsb2F0QW5pbWF0aW9uVmFsdWUsIENDRmxvYXRLZXlmcmFtZSwgQ0NLZXlmcmFtZWRGbG9hdEFu
aW1hdGlvbkN1cnZlPih2YWx1ZUxpc3QsIGFuaW1hdGlvbiwgYW5pbWF0aW9uSWQsIGdyb3VwSWQs
IHRpbWVPZmZzZXQsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KTsKIAogICAgIGlmICh0b0Fk
ZC5nZXQoKSkgeworICAgICAgICAvLyBSZW1vdmUgYW55IGV4aXN0aW5nIGFuaW1hdGlvbnMgd2l0
aCB0aGUgc2FtZSBhbmltYXRpb24gaWQgYW5kIHRhcmdldCBwcm9wZXJ0eS4KKyAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOykgeworICAgICAg
ICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+aWQoKSA9PSBhbmltYXRpb25JZCAmJiBt
X2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnRhcmdldFByb3BlcnR5KCkgPT0gdG9BZGQtPnRhcmdldFBy
b3BlcnR5KCkpCisgICAgICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25zLnJlbW92ZShpKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpKys7CisgICAgICAgIH0KICAgICAg
ICAgbV9hY3RpdmVBbmltYXRpb25zLmFwcGVuZCh0b0FkZC5yZWxlYXNlKCkpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0xNDksNyArMTU5LDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlcjo6cGF1c2VBbmltYXRpb24oaW50IGFuaW1hdGlvbklkLCBkb3VibGUgdGlt
ZU9mZnMKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5z
aXplKCk7ICsraSkgewogICAgICAgICBpZiAobV9hY3RpdmVBbmltYXRpb25zW2ldLT5pZCgpID09
IGFuaW1hdGlvbklkKQotICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5zZXRSdW5T
dGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCB0aW1lT2Zmc2V0KTsKKyAgICAgICAgICAg
IG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OlBh
dXNlZCwgdGltZU9mZnNldCArIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+c3RhcnRUaW1lKCkpOwog
ICAgIH0KIH0KIApAQCAtMTY0LDEzICsxNzQsMjEgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29u
dHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uKGludCBhbmltYXRpb25JZCkKIH0KIAogLy8gQWNjb3Jk
aW5nIHRvIHJlbmRlciBsYXllciBiYWNraW5nLCB0aGVzZSBhcmUgZm9yIHRlc3Rpbmcgb25seS4K
LXZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKGRvdWJs
ZSB0aW1lKQordm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6c3VzcGVuZEFuaW1hdGlv
bnMoZG91YmxlIG1vbm90b25pY1RpbWUpCiB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fYWN0aXZlQW5p
bWF0aW9uc1tpXS0+cnVuU3RhdGUoKSAhPSBDQ0FjdGl2ZUFuaW1hdGlvbjo6RmluaXNoZWQgJiYg
bV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgpICE9IENDQWN0aXZlQW5pbWF0aW9uOjpB
Ym9ydGVkKQorICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5zZXRSdW5TdGF0ZShD
Q0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCBtb25vdG9uaWNUaW1lKTsKKyAgICB9CiB9CiAKIC8v
IExvb2tpbmcgYXQgR3JhcGhpY3NMYXllckNBLCB0aGlzIGFwcGVhcnMgdG8gYmUgdGhlIGFuYWxv
ZyB0byBzdXNwZW5kQW5pbWF0aW9ucywgd2hpY2ggaXMgZm9yIHRlc3RpbmcuCi12b2lkIENDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkKK3ZvaWQgQ0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUp
CiB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+cnVuU3RhdGUoKSA9
PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkKQorICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRp
b25zW2ldLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZywgbW9ub3Rvbmlj
VGltZSk7CisgICAgfQogfQogCiAvLyBFbnN1cmVzIHRoYXQgdGhlIGxpc3Qgb2YgYWN0aXZlIGFu
aW1hdGlvbnMgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB0aGUgaW1wbCB0aHJlYWQKQEAgLTE3OSw2
ICsxOTcsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoQW5pbWF0aW9u
VXBkYXRlc1RvKENDTGF5ZXJBbmltYXRpb25Db250cm9sbAogewogICAgIHB1c2hOZXdBbmltYXRp
b25zVG9JbXBsVGhyZWFkKGNvbnRyb2xsZXJJbXBsKTsKICAgICByZW1vdmVBbmltYXRpb25zQ29t
cGxldGVkT25NYWluVGhyZWFkKGNvbnRyb2xsZXJJbXBsKTsKKyAgICBwdXNoUHJvcGVydGllc1Rv
SW1wbFRocmVhZChjb250cm9sbGVySW1wbCk7CiB9CiAKIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNv
bnRyb2xsZXI6OmFuaW1hdGUoZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5pbWF0aW9uRXZlbnRz
VmVjdG9yKiBldmVudHMpCkBAIC0xOTcsNyArMjE2LDcgQEAgdm9pZCBDQ0xheWVyQW5pbWF0aW9u
Q29udHJvbGxlcjo6YWRkKFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGFuaW1hdGlvbikK
ICAgICBtX2FjdGl2ZUFuaW1hdGlvbnMuYXBwZW5kKGFuaW1hdGlvbik7CiB9CiAKLUNDQWN0aXZl
QW5pbWF0aW9uKiBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6Z2V0QWN0aXZlQW5pbWF0aW9u
KGludCBncm91cElkLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6VGFyZ2V0UHJvcGVydHkgdGFyZ2V0UHJv
cGVydHkpCitDQ0FjdGl2ZUFuaW1hdGlvbiogQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Omdl
dEFjdGl2ZUFuaW1hdGlvbihpbnQgZ3JvdXBJZCwgQ0NBY3RpdmVBbmltYXRpb246OlRhcmdldFBy
b3BlcnR5IHRhcmdldFByb3BlcnR5KSBjb25zdAogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKQogICAgICAgICBpZiAobV9hY3RpdmVB
bmltYXRpb25zW2ldLT5ncm91cCgpID09IGdyb3VwSWQgJiYgbV9hY3RpdmVBbmltYXRpb25zW2ld
LT50YXJnZXRQcm9wZXJ0eSgpID09IHRhcmdldFByb3BlcnR5KQpAQCAtMjM1LDcgKzI1NCw3IEBA
IHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQo
Y29uc3QgQ0NBbmltYXRpb25FdmVudCYKICAgICB9CiB9CiAKLXZvaWQgQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXI6OnB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyKiBjb250cm9sbGVySW1wbCkKK3ZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRy
b2xsZXI6OnB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyKiBjb250cm9sbGVySW1wbCkgY29uc3QKIHsKICAgICAvLyBBbnkgbmV3IGFuaW1hdGlv
bnMgb3duZWQgYnkgdGhlIG1haW4gdGhyZWFkJ3MgY29udHJvbGxlciBhcmUgY2xvbmVkIGFuZCBh
ZGRlIHRvIHRoZSBpbXBsIHRocmVhZCdzIGNvbnRyb2xsZXIuCiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKQEAgLTI1OCw3ICsyNzcs
NyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoTmV3QW5pbWF0aW9uc1Rv
SW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9uQwogICAgIH0KIH0KIAotdm9pZCBDQ0xheWVyQW5p
bWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVhZChD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciogY29udHJvbGxlckltcGwpCit2b2lkIENDTGF5ZXJB
bmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVBbmltYXRpb25zQ29tcGxldGVkT25NYWluVGhyZWFk
KENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyKiBjb250cm9sbGVySW1wbCkgY29uc3QKIHsKICAg
ICAvLyBEZWxldGUgYWxsIGltcGwgdGhyZWFkIGFuaW1hdGlvbnMgZm9yIHdoaWNoIHRoZXJlIGlz
IG5vIGNvcnJlc3BvbmRpbmcgbWFpbiB0aHJlYWQgYW5pbWF0aW9uLgogICAgIC8vIEVhY2ggaXRl
cmF0aW9uLCBjb250cm9sbGVyLT5tX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpIGlzIGRlY3JlbWVu
dGVkIG9yIGkgaXMgaW5jcmVtZW50ZWQKQEAgLTI3Miw2ICsyOTEsMTUgQEAgdm9pZCBDQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVh
ZChDQ0xheWVyQW4KICAgICB9CiB9CiAKK3ZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6
OnB1c2hQcm9wZXJ0aWVzVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyKiBj
b250cm9sbGVySW1wbCkgY29uc3QKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYWN0
aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraSkgeworICAgICAgICBDQ0FjdGl2ZUFuaW1hdGlvbiog
Y3VycmVudEltcGwgPSBjb250cm9sbGVySW1wbC0+Z2V0QWN0aXZlQW5pbWF0aW9uKG1fYWN0aXZl
QW5pbWF0aW9uc1tpXS0+Z3JvdXAoKSwgbV9hY3RpdmVBbmltYXRpb25zW2ldLT50YXJnZXRQcm9w
ZXJ0eSgpKTsKKyAgICAgICAgaWYgKGN1cnJlbnRJbXBsKQorICAgICAgICAgICAgbV9hY3RpdmVB
bmltYXRpb25zW2ldLT5wdXNoUHJvcGVydGllc1RvKGN1cnJlbnRJbXBsKTsKKyAgICB9Cit9CisK
IHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnN0YXJ0QW5pbWF0aW9uc1dhaXRpbmdG
b3JOZXh0VGljayhkb3VibGUgbW9ub3RvbmljVGltZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3Iq
IGV2ZW50cykKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9u
cy5zaXplKCk7ICsraSkgewpAQCAtNDA0LDcgKzQzMiw3IEBAIHZvaWQgQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXI6OnB1cmdlRmluaXNoZWRBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1l
LCBDCiB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjp0aWNrQW5pbWF0aW9ucyhkb3Vi
bGUgbW9ub3RvbmljVGltZSkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZl
QW5pbWF0aW9ucy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobV9hY3RpdmVBbmltYXRpb25z
W2ldLT5ydW5TdGF0ZSgpID09IENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nKSB7CisgICAgICAg
IGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnJ1blN0YXRlKCkgPT0gQ0NBY3RpdmVBbmltYXRp
b246OlJ1bm5pbmcgfHwgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgpID09IENDQWN0
aXZlQW5pbWF0aW9uOjpQYXVzZWQpIHsKICAgICAgICAgICAgIGRvdWJsZSB0cmltbWVkID0gbV9h
Y3RpdmVBbmltYXRpb25zW2ldLT50cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbihtb25vdG9uaWNU
aW1lKTsKIAogICAgICAgICAgICAgLy8gQW5pbWF0aW9uIGFzc3VtZXMgaXRzIGluaXRpYWwgdmFs
dWUgdW50aWwgaXQgZ2V0cyB0aGUgc3luY2hyb25pemVkIHN0YXJ0IHRpbWUKQEAgLTQxNyw3ICs0
NDUsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjp0aWNrQW5pbWF0aW9ucyhk
b3VibGUgbW9ub3RvbmljVGltZSkKICAgICAgICAgICAgIGNhc2UgQ0NBY3RpdmVBbmltYXRpb246
OlRyYW5zZm9ybTogewogICAgICAgICAgICAgICAgIGNvbnN0IENDVHJhbnNmb3JtQW5pbWF0aW9u
Q3VydmUqIHRyYW5zZm9ybUFuaW1hdGlvbkN1cnZlID0gbV9hY3RpdmVBbmltYXRpb25zW2ldLT5j
dXJ2ZSgpLT50b1RyYW5zZm9ybUFuaW1hdGlvbkN1cnZlKCk7CiAgICAgICAgICAgICAgICAgY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0cml4ID0gdHJhbnNmb3JtQW5pbWF0aW9uQ3VydmUt
PmdldFZhbHVlKHRyaW1tZWQsIG1fY2xpZW50LT5ib3VuZHMoKSk7Ci0gICAgICAgICAgICAgICAg
aWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+aXNGaW5pc2hlZEF0KG1vbm90b25pY1RpbWUpICYm
ICFtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPm5lZWRzU3luY2hyb25pemVkU3RhcnRUaW1lKCkpCisg
ICAgICAgICAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+aXNGaW5pc2hlZEF0KG1v
bm90b25pY1RpbWUpKQogICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0t
PnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpGaW5pc2hlZCwgbW9ub3RvbmljVGltZSk7
CiAKICAgICAgICAgICAgICAgICBtX2NsaWVudC0+c2V0VHJhbnNmb3JtRnJvbUFuaW1hdGlvbiht
YXRyaXgpOwpAQCAtNDI3LDcgKzQ1NSw3IEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xs
ZXI6OnRpY2tBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1lKQogICAgICAgICAgICAgY2Fz
ZSBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eTogewogICAgICAgICAgICAgICAgIGNvbnN0IEND
RmxvYXRBbmltYXRpb25DdXJ2ZSogZmxvYXRBbmltYXRpb25DdXJ2ZSA9IG1fYWN0aXZlQW5pbWF0
aW9uc1tpXS0+Y3VydmUoKS0+dG9GbG9hdEFuaW1hdGlvbkN1cnZlKCk7CiAgICAgICAgICAgICAg
ICAgY29uc3QgZmxvYXQgb3BhY2l0eSA9IGZsb2F0QW5pbWF0aW9uQ3VydmUtPmdldFZhbHVlKHRy
aW1tZWQpOwotICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmlzRmlu
aXNoZWRBdChtb25vdG9uaWNUaW1lKSAmJiAhbV9hY3RpdmVBbmltYXRpb25zW2ldLT5uZWVkc1N5
bmNocm9uaXplZFN0YXJ0VGltZSgpKQorICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1h
dGlvbnNbaV0tPmlzRmluaXNoZWRBdChtb25vdG9uaWNUaW1lKSkKICAgICAgICAgICAgICAgICAg
ICAgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6
RmluaXNoZWQsIG1vbm90b25pY1RpbWUpOwogCiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPnNl
dE9wYWNpdHlGcm9tQW5pbWF0aW9uKG9wYWNpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyLmgKaW5kZXggODM1MDc0MTg5YTYyZDZlMmE0YzgxMzE1MzZl
MGRhMWE2NDEwOGYyMS4uZTIyZjgwNTRkNjIzMjA3YzRkNzBjMzEyMWZiMWIwMzk1YTJlNjMwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5oCkBAIC02
NCw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9uKGNvbnN0
IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5pbWF0
aW9uKiwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3JvdXBJZCwgZG91YmxlIHRpbWVPZmZzZXQpOwog
ICAgIHZpcnR1YWwgdm9pZCBwYXVzZUFuaW1hdGlvbihpbnQgYW5pbWF0aW9uSWQsIGRvdWJsZSB0
aW1lT2Zmc2V0KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9uKGludCBhbmltYXRp
b25JZCk7Ci0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0aW1lKTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpOworICAgIHZpcnR1YWwgdm9pZCBz
dXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSk7CisgICAgdmlydHVhbCB2b2lk
IHJlc3VtZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpOwogCiAgICAgLy8gRW5zdXJl
cyB0aGF0IHRoZSBsaXN0IG9mIGFjdGl2ZSBhbmltYXRpb25zIG9uIHRoZSBtYWluIHRocmVhZCBh
bmQgdGhlIGltcGwgdGhyZWFkCiAgICAgLy8gYXJlIGtlcHQgaW4gc3luYy4gVGhpcyBmdW5jdGlv
biBkb2VzIG5vdCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgaW1wbCB0aHJlYWQgY29udHJvbGxlci4K
QEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogCiAgICAgLy8gUmV0dXJucyB0aGUgYWN0aXZlIGFu
aW1hdGlvbiBpbiB0aGUgZ2l2ZW4gZ3JvdXAsIGFuaW1hdGluZyB0aGUgZ2l2ZW4gcHJvcGVydHkg
aWYgc3VjaCBhbgogICAgIC8vIGFuaW1hdGlvbiBleGlzdHMuCi0gICAgQ0NBY3RpdmVBbmltYXRp
b24qIGdldEFjdGl2ZUFuaW1hdGlvbihpbnQgZ3JvdXBJZCwgQ0NBY3RpdmVBbmltYXRpb246OlRh
cmdldFByb3BlcnR5KTsKKyAgICBDQ0FjdGl2ZUFuaW1hdGlvbiogZ2V0QWN0aXZlQW5pbWF0aW9u
KGludCBncm91cElkLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6VGFyZ2V0UHJvcGVydHkpIGNvbnN0Owog
CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBhbnkgYW5pbWF0aW9ucyB0aGF0IGhh
dmUgbmVpdGhlciBmaW5pc2hlZCBub3IgYWJvcnRlZC4KICAgICBib29sIGhhc0FjdGl2ZUFuaW1h
dGlvbigpIGNvbnN0OwpAQCAtOTYsOCArOTYsOSBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IHR5cGVkZWYgSGFzaFNldDxpbnQ+IFRhcmdldFByb3BlcnRpZXM7CiAKLSAgICB2b2lkIHB1c2hO
ZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyKik7Ci0g
ICAgdm9pZCByZW1vdmVBbmltYXRpb25zQ29tcGxldGVkT25NYWluVGhyZWFkKENDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyKik7CisgICAgdm9pZCBwdXNoTmV3QW5pbWF0aW9uc1RvSW1wbFRocmVh
ZChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciopIGNvbnN0OworICAgIHZvaWQgcmVtb3ZlQW5p
bWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciop
IGNvbnN0OworICAgIHZvaWQgcHVzaFByb3BlcnRpZXNUb0ltcGxUaHJlYWQoQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXIqKSBjb25zdDsKIAogICAgIHZvaWQgc3RhcnRBbmltYXRpb25zV2FpdGlu
Z0Zvck5leHRUaWNrKGRvdWJsZSBtb25vdG9uaWNUaW1lLCBDQ0FuaW1hdGlvbkV2ZW50c1ZlY3Rv
ciopOwogICAgIHZvaWQgc3RhcnRBbmltYXRpb25zV2FpdGluZ0ZvclN0YXJ0VGltZShkb3VibGUg
bW9ub3RvbmljVGltZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3IqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NBY3RpdmVBbmltYXRpb25UZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NBY3RpdmVBbmltYXRpb25UZXN0LmNwcAppbmRl
eCBlMTRlZjliYzA5NzFhMTFlMjE0YjMxNGQ3NTgyOTE1ZWNjNTZkMzUyLi5hMWFiNzcwYjdhMzEy
MDc2YTMxMTg1MmQyZDg5ODFkNTYyYWRmNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDQWN0aXZlQW5pbWF0aW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ0FjdGl2ZUFuaW1hdGlvblRlc3QuY3BwCkBAIC04MCw2ICs4MCwx
NyBAQCBURVNUKENDQWN0aXZlQW5pbWF0aW9uVGVzdCwgVHJpbVRpbWVTdGFydFRpbWUpCiAgICAg
RVhQRUNUX0VRKDEsIGFuaW0tPnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDYpKTsKIH0KIAor
VEVTVChDQ0FjdGl2ZUFuaW1hdGlvblRlc3QsIFRyaW1UaW1lVGltZU9mZnNldCkKK3sKKyAgICBP
d25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGFuaW0oY3JlYXRlQWN0aXZlQW5pbWF0aW9uKDEpKTsK
KyAgICBhbmltLT5zZXRUaW1lT2Zmc2V0KDQpOworICAgIGFuaW0tPnNldFN0YXJ0VGltZSg0KTsK
KyAgICBFWFBFQ1RfRVEoMCwgYW5pbS0+dHJpbVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oMCkpOwor
ICAgIEVYUEVDVF9FUSgwLjUsIGFuaW0tPnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDAuNSkp
OworICAgIEVYUEVDVF9FUSgxLCBhbmltLT50cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbigxKSk7
CisgICAgRVhQRUNUX0VRKDEsIGFuaW0tPnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDEpKTsK
K30KKwogVEVTVChDQ0FjdGl2ZUFuaW1hdGlvblRlc3QsIFRyaW1UaW1lUGF1c2VSZXN1bWUpCiB7
CiAgICAgT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBhbmltKGNyZWF0ZUFjdGl2ZUFuaW1hdGlv
bigxKSk7CkBAIC05Myw2ICsxMDQsMTkgQEAgVEVTVChDQ0FjdGl2ZUFuaW1hdGlvblRlc3QsIFRy
aW1UaW1lUGF1c2VSZXN1bWUpCiAgICAgRVhQRUNUX0VRKDEsIGFuaW0tPnRyaW1UaW1lVG9DdXJy
ZW50SXRlcmF0aW9uKDEwMjQuNSkpOwogfQogCitURVNUKENDQWN0aXZlQW5pbWF0aW9uVGVzdCwg
VHJpbVRpbWVTdXNwZW5kUmVzdW1lKQoreworICAgIE93blB0cjxDQ0FjdGl2ZUFuaW1hdGlvbj4g
YW5pbShjcmVhdGVBY3RpdmVBbmltYXRpb24oMSkpOworICAgIGFuaW0tPnNldFJ1blN0YXRlKEND
QWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCAwKTsKKyAgICBFWFBFQ1RfRVEoMCwgYW5pbS0+dHJp
bVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oMCkpOworICAgIEVYUEVDVF9FUSgwLjUsIGFuaW0tPnRy
aW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDAuNSkpOworICAgIGFuaW0tPnN1c3BlbmQoMC41KTsK
KyAgICBFWFBFQ1RfRVEoMC41LCBhbmltLT50cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbigxMDI0
KSk7CisgICAgYW5pbS0+cmVzdW1lKDEwMjQpOworICAgIEVYUEVDVF9FUSgwLjUsIGFuaW0tPnRy
aW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDEwMjQpKTsKKyAgICBFWFBFQ1RfRVEoMSwgYW5pbS0+
dHJpbVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oMTAyNC41KSk7Cit9CisKIFRFU1QoQ0NBY3RpdmVB
bmltYXRpb25UZXN0LCBJc0ZpbmlzaGVkQXRaZXJvSXRlcmF0aW9ucykKIHsKICAgICBPd25QdHI8
Q0NBY3RpdmVBbmltYXRpb24+IGFuaW0oY3JlYXRlQWN0aXZlQW5pbWF0aW9uKDApKTsKQEAgLTE2
MCw0ICsxODQsMzUgQEAgVEVTVChDQ0FjdGl2ZUFuaW1hdGlvblRlc3QsIElzRmluaXNoZWQpCiAg
ICAgRVhQRUNUX1RSVUUoYW5pbS0+aXNGaW5pc2hlZCgpKTsKIH0KIAorVEVTVChDQ0FjdGl2ZUFu
aW1hdGlvblRlc3QsIElzRmluaXNoZWROZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZSkKK3sKKyAg
ICBPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGFuaW0oY3JlYXRlQWN0aXZlQW5pbWF0aW9uKDEp
KTsKKyAgICBhbmltLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZywgMik7
CisgICAgRVhQRUNUX0ZBTFNFKGFuaW0tPmlzRmluaXNoZWQoKSk7CisgICAgYW5pbS0+c2V0UnVu
U3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OlBhdXNlZCwgMik7CisgICAgRVhQRUNUX0ZBTFNFKGFu
aW0tPmlzRmluaXNoZWQoKSk7CisgICAgYW5pbS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRp
b246OldhaXRpbmdGb3JOZXh0VGljaywgMik7CisgICAgRVhQRUNUX0ZBTFNFKGFuaW0tPmlzRmlu
aXNoZWQoKSk7CisgICAgYW5pbS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OldhaXRp
bmdGb3JUYXJnZXRBdmFpbGFiaWxpdHksIDIpOworICAgIEVYUEVDVF9GQUxTRShhbmltLT5pc0Zp
bmlzaGVkKCkpOworICAgIGFuaW0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpXYWl0
aW5nRm9yU3RhcnRUaW1lLCAyKTsKKyAgICBFWFBFQ1RfRkFMU0UoYW5pbS0+aXNGaW5pc2hlZCgp
KTsKKyAgICBhbmltLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6RmluaXNoZWQsIDAp
OworICAgIEVYUEVDVF9UUlVFKGFuaW0tPmlzRmluaXNoZWQoKSk7CisgICAgYW5pbS0+c2V0UnVu
U3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OkFib3J0ZWQsIDApOworICAgIEVYUEVDVF9UUlVFKGFu
aW0tPmlzRmluaXNoZWQoKSk7Cit9CisKK1RFU1QoQ0NBY3RpdmVBbmltYXRpb25UZXN0LCBSdW5T
dGF0ZUNoYW5nZXNJZ25vcmVkV2hpbGVTdXNwZW5kZWQpCit7CisgICAgT3duUHRyPENDQWN0aXZl
QW5pbWF0aW9uPiBhbmltKGNyZWF0ZUFjdGl2ZUFuaW1hdGlvbigxKSk7CisgICAgYW5pbS0+c3Vz
cGVuZCgwKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OlBhdXNlZCwgYW5pbS0+
cnVuU3RhdGUoKSk7CisgICAgYW5pbS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OlJ1
bm5pbmcsIDApOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCBhbmlt
LT5ydW5TdGF0ZSgpKTsKKyAgICBhbmltLT5yZXN1bWUoMCk7CisgICAgYW5pbS0+c2V0UnVuU3Rh
dGUoQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIDApOworICAgIEVYUEVDVF9FUShDQ0FjdGl2
ZUFuaW1hdGlvbjo6UnVubmluZywgYW5pbS0+cnVuU3RhdGUoKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJBbmlt
YXRpb25Db250cm9sbGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdC5jcHAKaW5kZXggN2NiMzk1M2RjZWUxNmQyYWY2
NTdhYWE1YjJmMzA4MTg4NzZkN2QzMC4uZmE5NWEyYWM1YTlmYzcxY2M2N2U0YzcxNWI3YjI4MzMw
MjBmNDE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJUZXN0LmNwcApAQCAtMTk5LDYgKzE5OSw0
NyBAQCBURVNUKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdCwgZG9Ob3RDbG9iYmVyU3Rh
cnRUaW1lcykKICAgICBFWFBFQ1RfRVEoY29udHJvbGxlci0+Z2V0QWN0aXZlQW5pbWF0aW9uKDAs
IENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KS0+c3RhcnRUaW1lKCksIGNvbnRyb2xsZXJJbXBs
LT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9wYWNpdHkpLT5zdGFy
dFRpbWUoKSk7CiB9CiAKK1RFU1QoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJUZXN0LCBzeW5j
UGF1c2VBbmRSZXN1bWUpCit7CisgICAgRmFrZUxheWVyQW5pbWF0aW9uQ29udHJvbGxlckNsaWVu
dCBkdW1teUltcGw7CisgICAgT3duUHRyPENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyPiBjb250
cm9sbGVySW1wbChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKCZkdW1teUltcGwp
KTsKKyAgICBGYWtlTGF5ZXJBbmltYXRpb25Db250cm9sbGVyQ2xpZW50IGR1bW15OworICAgIE93
blB0cjxDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcj4gY29udHJvbGxlcihDQ0xheWVyQW5pbWF0
aW9uQ29udHJvbGxlcjo6Y3JlYXRlKCZkdW1teSkpOworCisgICAgRVhQRUNUX0ZBTFNFKGNvbnRy
b2xsZXJJbXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9wYWNp
dHkpKTsKKworICAgIGFkZE9wYWNpdHlUcmFuc2l0aW9uVG9Db250cm9sbGVyKCpjb250cm9sbGVy
LCAxLCAwLCAxLCBmYWxzZSk7CisKKyAgICBjb250cm9sbGVyLT5wdXNoQW5pbWF0aW9uVXBkYXRl
c1RvKGNvbnRyb2xsZXJJbXBsLmdldCgpKTsKKworICAgIEVYUEVDVF9UUlVFKGNvbnRyb2xsZXJJ
bXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9wYWNpdHkpKTsK
KyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JUYXJnZXRBdmFpbGFi
aWxpdHksIGNvbnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmlt
YXRpb246Ok9wYWNpdHkpLT5ydW5TdGF0ZSgpKTsKKworICAgIC8vIFN0YXJ0IHRoZSBhbmltYXRp
b25zIG9uIGVhY2ggY29udHJvbGxlci4KKyAgICBDQ0FuaW1hdGlvbkV2ZW50c1ZlY3RvciBldmVu
dHM7CisgICAgY29udHJvbGxlckltcGwtPmFuaW1hdGUoMCwgJmV2ZW50cyk7CisgICAgY29udHJv
bGxlci0+YW5pbWF0ZSgwLCAwKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OlJ1
bm5pbmcsIGNvbnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmlt
YXRpb246Ok9wYWNpdHkpLT5ydW5TdGF0ZSgpKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmlt
YXRpb246OlJ1bm5pbmcsIGNvbnRyb2xsZXItPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2
ZUFuaW1hdGlvbjo6T3BhY2l0eSktPnJ1blN0YXRlKCkpOworCisgICAgLy8gUGF1c2UgdGhlIG1h
aW4tdGhyZWFkIGFuaW1hdGlvbi4KKyAgICBjb250cm9sbGVyLT5zdXNwZW5kQW5pbWF0aW9ucygx
KTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OlBhdXNlZCwgY29udHJvbGxlci0+
Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KS0+cnVuU3Rh
dGUoKSk7CisKKyAgICAvLyBUaGUgcGF1c2UgcnVuIHN0YXRlIGNoYW5nZSBzaG91bGQgbWFrZSBp
dCB0byB0aGUgaW1wbCB0aHJlYWQgY29udHJvbGxlci4KKyAgICBjb250cm9sbGVyLT5wdXNoQW5p
bWF0aW9uVXBkYXRlc1RvKGNvbnRyb2xsZXJJbXBsLmdldCgpKTsKKyAgICBFWFBFQ1RfRVEoQ0NB
Y3RpdmVBbmltYXRpb246OlBhdXNlZCwgY29udHJvbGxlckltcGwtPmdldEFjdGl2ZUFuaW1hdGlv
bigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eSktPnJ1blN0YXRlKCkpOworCisgICAgLy8g
UmVzdW1lIHRoZSBtYWluLXRocmVhZCBhbmltYXRpb24uCisgICAgY29udHJvbGxlci0+cmVzdW1l
QW5pbWF0aW9ucygyKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcs
IGNvbnRyb2xsZXItPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3Bh
Y2l0eSktPnJ1blN0YXRlKCkpOworCisgICAgLy8gVGhlIHBhdXNlIHJ1biBzdGF0ZSBjaGFuZ2Ug
c2hvdWxkIG1ha2UgaXQgdG8gdGhlIGltcGwgdGhyZWFkIGNvbnRyb2xsZXIuCisgICAgY29udHJv
bGxlci0+cHVzaEFuaW1hdGlvblVwZGF0ZXNUbyhjb250cm9sbGVySW1wbC5nZXQoKSk7CisgICAg
RVhQRUNUX0VRKENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCBjb250cm9sbGVySW1wbC0+Z2V0
QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KS0+cnVuU3RhdGUo
KSk7Cit9CisKKwogVEVTVChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QsIGRvTm90U3lu
Y0ZpbmlzaGVkQW5pbWF0aW9uKQogewogICAgIEZha2VMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJD
bGllbnQgZHVtbXlJbXBsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139257</attachid>
            <date>2012-04-27 13:22:13 -0700</date>
            <delta_ts>2012-04-27 17:07:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84601-20120427162211.patch</filename>
            <type>text/plain</type>
            <size>32348</size>
            <attacher>vollick</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE2ODdhZmYyMzliNmFi
MTUwNjQ2NTFhY2U4MzUwMjcxMjM1ZWM5ZS4uZGZhOGZjYWY4M2Y3NTEzYjRiYTlmMTJkMmMzMGMy
YWRjMzQxNGQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTA0LTI3ICBJYW4g
Vm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHBhdXNlIGFuZCByZXN1bWUgc3VwcG9ydCBmb3IgYWNjZWxlcmF0ZWQgY3NzIGFuaW1hdGlvbnMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDYwMQor
CisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAgIFRlc3RlZCBp
bjoKKyAgICAgICAgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJUZXN0LnN5bmNQYXVzZVJlc3Vt
ZQorICAgICAgICBDQ0FjdGl2ZUFuaW1hdGlvblRlc3QuVHJpbVRpbWVUaW1lT2Zmc2V0CisgICAg
ICAgIENDQWN0aXZlQW5pbWF0aW9uVGVzdC5UcmltVGltZVN1c3BlbmRSZXN1bWUKKyAgICAgICAg
Q0NBY3RpdmVBbmltYXRpb25UZXN0LklzRmluaXNoZWROZWVkc1N5bmNocm9uaXplZFN0YXJ0VGlt
ZQorICAgICAgICBDQ0FjdGl2ZUFuaW1hdGlvblRlc3QuUnVuU3RhdGVDaGFuZ2VzSWdub3JlZFdo
aWxlU3VzcGVuZGVkCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFw
aGljc0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNo
cm9taXVtOjpzdXNwZW5kQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2hyb21pdW06OnJlc3VtZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoR3JhcGhpY3NM
YXllckNocm9taXVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnN1c3BlbmRB
bmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnJlc3VtZUFuaW1h
dGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uaDoKKyAgICAgICAgKExheWVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNDQWN0aXZlQW5pbWF0aW9uOjpDQ0FjdGl2ZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0FjdGl2ZUFuaW1hdGlvbjo6c2V0UnVuU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NB
Y3RpdmVBbmltYXRpb246OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmlt
YXRpb246OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6aXNG
aW5pc2hlZEF0KToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0aW9uOjp0cmltVGlt
ZVRvQ3VycmVudEl0ZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlv
bjo6Y2xvbmVGb3JJbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDQWN0aXZlQW5pbWF0
aW9uOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oOgorICAgICAgICAoQ0NBY3RpdmVBbmltYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6Q0NBY3RpdmVBbmltYXRpb246OnNldFN0YXJ0VGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6dGltZU9mZnNldCk6CisgICAgICAg
IChXZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6c2V0VGltZU9mZnNldCk6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0FjdGl2ZUFuaW1hdGlvbjo6aXNGaW5pc2hlZCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OmFkZEFuaW1hdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cGF1c2VB
bmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6
OnN1c3BlbmRBbmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJB
bmltYXRpb25Db250cm9sbGVyOjpwdXNoQW5pbWF0aW9uVXBkYXRlc1RvKToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpnZXRBY3RpdmVBbmltYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1c2hOZXdBbmlt
YXRpb25zVG9JbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyOjpyZW1vdmVBbmltYXRpb25zQ29tcGxldGVkT25NYWluVGhyZWFkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoUHJvcGVydGllc1Rv
SW1wbFRocmVhZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5
ZXJBbmltYXRpb25Db250cm9sbGVyOjp0aWNrQW5pbWF0aW9ucyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyKToKKwogMjAxMi0wNC0yNyAgRGltaXRy
aSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIxMTU0MTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDE1MDUy
ZGJiZDNlYTNkYWIxMDdjMzI5NTQ2Mjc3Y2YzYWViYTBhZDYuLjE3MjE3ZWI1OGM4YzkzYmNlYjhj
MzM4YjYxMmNkYmQyMjg5OTk0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTItMDQtMjcgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgcGF1c2UgYW5kIHJlc3VtZSBzdXBwb3J0IGZvciBh
Y2NlbGVyYXRlZCBjc3MgYW5pbWF0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg0NjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9i
aW5zb24uCisKKyAgICAgICAgKiB0ZXN0cy9DQ0FjdGl2ZUFuaW1hdGlvblRlc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0
cy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0VGVz
dHM6OlRFU1QpOgorICAgICAgICAoV2ViS2l0VGVzdHMpOgorCiAyMDEyLTA0LTI3ICBHYXZpbiBQ
ZXRlcnMgIDxnYXZpbnBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBuZXcgRU5BQkxFX0xJ
TktfUFJFUkVOREVSIGRlZmluZSB0byBjb250cm9sIHRoZSBQcmVyZW5kZXJpbmcgQVBJCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCA3ZGRlNDJlMTg3Yzk0N2NhYzg1
YWQ4MTMxYmIzNGNmZTU5OTgwYTMwLi4zYzZkOTI0YmIyNDA3NTE3MGNjOTAxODVjYWZiNzJhNTcx
YjljYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTQyMCwx
NCArNDIwLDE3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpyZW1vdmVBbmltYXRpb24o
Y29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKQogICAgIHByaW1hcnlMYXllcigpLT5yZW1vdmVB
bmltYXRpb24obWFwQW5pbWF0aW9uTmFtZVRvSWQoYW5pbWF0aW9uTmFtZSkpOwogfQogCi12b2lk
IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpCit2
b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHdhbGxD
bG9ja1RpbWUpCiB7Ci0gICAgcHJpbWFyeUxheWVyKCktPnN1c3BlbmRBbmltYXRpb25zKHRpbWUp
OworICAgIC8vIHx3YWxsQ2xvY2tUaW1lfCBpcyBpbiB0aGUgd3JvbmcgdGltZSBiYXNlLiBOZWVk
IHRvIGNvbnZlcnQgaGVyZS4KKyAgICAvLyBGSVhNRTogZmluZCBhIG1vcmUgcmVsaWFibGUgd2F5
IHRvIGRvIHRoaXMuCisgICAgZG91YmxlIG1vbm90b25pY1RpbWUgPSB3YWxsQ2xvY2tUaW1lICsg
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBjdXJyZW50VGltZSgpOworICAgIHByaW1h
cnlMYXllcigpLT5zdXNwZW5kQW5pbWF0aW9ucyhtb25vdG9uaWNUaW1lKTsKIH0KIAogdm9pZCBH
cmFwaGljc0xheWVyQ2hyb21pdW06OnJlc3VtZUFuaW1hdGlvbnMoKQogewotICAgIHByaW1hcnlM
YXllcigpLT5yZXN1bWVBbmltYXRpb25zKCk7CisgICAgcHJpbWFyeUxheWVyKCktPnJlc3VtZUFu
aW1hdGlvbnMobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOwogfQogCiB2b2lkIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5ZXIqIGxheWVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
R3JhcGhpY3NMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRleCA4ODMzNTVmZjk1ODViYmJi
Y2Y3NDM0NTQyODAxZDk1YzU5NmY0YjZhLi5lM2E4MjA5MGRjNjU1ZTJiZWFmMzhkNTcxMzNjNGJk
MGZmZDRiNWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTAyLDcg
KzEwMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkQW5pbWF0aW9uKGNvbnN0IEtl
eWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwgY29uc3QgQW5pbWF0aW9u
KiwgY29uc3QgU3RyaW5nJiwgZG91YmxlIHRpbWVPZmZzZXQpOwogICAgIHZpcnR1YWwgdm9pZCBw
YXVzZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lT2Zm
c2V0KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5p
bWF0aW9uTmFtZSk7Ci0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0
aW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9j
a1RpbWUpOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWVBbmltYXRpb25zKCk7CiAKICAgICB2aXJ0
dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5jcHAKaW5kZXggMTgwNDA0ZjgyMWZjNWIyNjNjY2FjMmE4M2VjNGE5MDA2NTk3ZGY4YS4uNDhj
NTc1NDk3NjBjMTYzMTRiZTc4ZDBjOThlODNiZTZhOThjZjlmNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5jcHAKQEAgLTYyMSwxNSArNjIxLDE1IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cmVtb3ZlQW5p
bWF0aW9uKGludCBhbmltYXRpb25JZCkKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCi12b2lk
IExheWVyQ2hyb21pdW06OnN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSB0aW1lKQordm9pZCBMYXll
ckNocm9taXVtOjpzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSkKIHsKLSAg
ICBtX2xheWVyQW5pbWF0aW9uQ29udHJvbGxlci0+c3VzcGVuZEFuaW1hdGlvbnModGltZSk7Cisg
ICAgbV9sYXllckFuaW1hdGlvbkNvbnRyb2xsZXItPnN1c3BlbmRBbmltYXRpb25zKG1vbm90b25p
Y1RpbWUpOwogICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKLXZvaWQgTGF5ZXJDaHJvbWl1bTo6
cmVzdW1lQW5pbWF0aW9ucygpCit2b2lkIExheWVyQ2hyb21pdW06OnJlc3VtZUFuaW1hdGlvbnMo
ZG91YmxlIG1vbm90b25pY1RpbWUpCiB7Ci0gICAgbV9sYXllckFuaW1hdGlvbkNvbnRyb2xsZXIt
PnJlc3VtZUFuaW1hdGlvbnMoKTsKKyAgICBtX2xheWVyQW5pbWF0aW9uQ29udHJvbGxlci0+cmVz
dW1lQW5pbWF0aW9ucyhtb25vdG9uaWNUaW1lKTsKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllckNocm9taXVtLmgKaW5kZXggYjU4ZjAwODU4ZDUwZDZkNWI1MTM3NzlmYWYxMTU5ODMx
YjZjYmI3YS4uZDU5NDg0MDA3ODg5NDc2YWVjZmJjMmIyMzQ2MzAzZDFkNjc1NGIyNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uaApAQCAtMjQwLDggKzI0MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhdXNl
QW5pbWF0aW9uKGludCBhbmltYXRpb25JZCwgZG91YmxlIHRpbWVPZmZzZXQpOwogICAgIHZvaWQg
cmVtb3ZlQW5pbWF0aW9uKGludCBhbmltYXRpb25JZCk7CiAKLSAgICB2b2lkIHN1c3BlbmRBbmlt
YXRpb25zKGRvdWJsZSB0aW1lKTsKLSAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKTsKKyAgICB2
b2lkIHN1c3BlbmRBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1lKTsKKyAgICB2b2lkIHJl
c3VtZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpOwogCiAgICAgQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXIqIGxheWVyQW5pbWF0aW9uQ29udHJvbGxlcigpIHsgcmV0dXJuIG1fbGF5
ZXJBbmltYXRpb25Db250cm9sbGVyLmdldCgpOyB9CiAgICAgdm9pZCBzZXRMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXIoUGFzc093blB0cjxDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcj4pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NB
Y3RpdmVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uY3BwCmluZGV4IDI2MGQ3ZDQ3ZTNiMzFiNjJmNTli
MWRhODA2MGFjZDViNzg3MzcyYWMuLmNjZmZkYmM3MmRhZGVhZDYxNzI4YjY0NmEyODRjYTFlMmNi
NDRjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5jcHAKQEAgLTQ1LDcgKzQ1
LDkgQEAgQ0NBY3RpdmVBbmltYXRpb246OkNDQWN0aXZlQW5pbWF0aW9uKFBhc3NPd25QdHI8Q0NB
bmltYXRpb25DdXJ2ZT4gY3VydmUsIGludCBhbmkKICAgICAsIG1fcnVuU3RhdGUoV2FpdGluZ0Zv
clRhcmdldEF2YWlsYWJpbGl0eSkKICAgICAsIG1faXRlcmF0aW9ucygxKQogICAgICwgbV9zdGFy
dFRpbWUoMCkKKyAgICAsIG1fdGltZU9mZnNldCgwKQogICAgICwgbV9uZWVkc1N5bmNocm9uaXpl
ZFN0YXJ0VGltZShmYWxzZSkKKyAgICAsIG1fc3VzcGVuZGVkKGZhbHNlKQogICAgICwgbV9wYXVz
ZVRpbWUoMCkKICAgICAsIG1fdG90YWxQYXVzZWRUaW1lKDApCiB7CkBAIC01NSw0NiArNTcsNDkg
QEAgQ0NBY3RpdmVBbmltYXRpb246On5DQ0FjdGl2ZUFuaW1hdGlvbigpCiB7CiB9CiAKLXZvaWQg
Q0NBY3RpdmVBbmltYXRpb246OnNldFJ1blN0YXRlKFJ1blN0YXRlIHJ1blN0YXRlLCBkb3VibGUg
bm93KQordm9pZCBDQ0FjdGl2ZUFuaW1hdGlvbjo6c2V0UnVuU3RhdGUoUnVuU3RhdGUgcnVuU3Rh
dGUsIGRvdWJsZSBtb25vdG9uaWNUaW1lKQogeworICAgIGlmIChtX3N1c3BlbmRlZCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgaWYgKHJ1blN0YXRlID09IFJ1bm5pbmcgJiYgbV9ydW5TdGF0ZSA9
PSBQYXVzZWQpCi0gICAgICAgIG1fdG90YWxQYXVzZWRUaW1lICs9IG5vdyAtIG1fcGF1c2VUaW1l
OworICAgICAgICBtX3RvdGFsUGF1c2VkVGltZSArPSBtb25vdG9uaWNUaW1lIC0gbV9wYXVzZVRp
bWU7CiAgICAgZWxzZSBpZiAocnVuU3RhdGUgPT0gUGF1c2VkKQotICAgICAgICBtX3BhdXNlVGlt
ZSA9IG5vdzsKKyAgICAgICAgbV9wYXVzZVRpbWUgPSBtb25vdG9uaWNUaW1lOwogICAgIG1fcnVu
U3RhdGUgPSBydW5TdGF0ZTsKIH0KIAotYm9vbCBDQ0FjdGl2ZUFuaW1hdGlvbjo6aXNGaW5pc2hl
ZEF0KGRvdWJsZSB0aW1lKSBjb25zdAordm9pZCBDQ0FjdGl2ZUFuaW1hdGlvbjo6c3VzcGVuZChk
b3VibGUgbW9ub3RvbmljVGltZSkKIHsKLSAgICBpZiAobV9ydW5TdGF0ZSA9PSBGaW5pc2hlZCB8
fCBtX3J1blN0YXRlID09IEFib3J0ZWQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0
dXJuIG1fcnVuU3RhdGUgPT0gUnVubmluZwotICAgICAgICAmJiBtX2l0ZXJhdGlvbnMgPj0gMAot
ICAgICAgICAmJiBtX2l0ZXJhdGlvbnMgKiBtX2N1cnZlLT5kdXJhdGlvbigpIDw9IHRpbWUgLSBz
dGFydFRpbWUoKSAtIG1fdG90YWxQYXVzZWRUaW1lOworICAgIHNldFJ1blN0YXRlKFBhdXNlZCwg
bW9ub3RvbmljVGltZSk7CisgICAgbV9zdXNwZW5kZWQgPSB0cnVlOwogfQogCi1ib29sIENDQWN0
aXZlQW5pbWF0aW9uOjppc1dhaXRpbmcoKSBjb25zdAordm9pZCBDQ0FjdGl2ZUFuaW1hdGlvbjo6
cmVzdW1lKGRvdWJsZSBtb25vdG9uaWNUaW1lKQogewotICAgIHJldHVybiBtX3J1blN0YXRlID09
IFdhaXRpbmdGb3JOZXh0VGljawotICAgICAgICB8fCBtX3J1blN0YXRlID09IFdhaXRpbmdGb3JU
YXJnZXRBdmFpbGFiaWxpdHkKLSAgICAgICAgfHwgbV9ydW5TdGF0ZSA9PSBXYWl0aW5nRm9yU3Rh
cnRUaW1lOworICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7CisgICAgc2V0UnVuU3RhdGUoUnVubmlu
ZywgbW9ub3RvbmljVGltZSk7CiB9CiAKLWJvb2wgQ0NBY3RpdmVBbmltYXRpb246OmlzUnVubmlu
Z09ySGFzUnVuKCkgY29uc3QKK2Jvb2wgQ0NBY3RpdmVBbmltYXRpb246OmlzRmluaXNoZWRBdChk
b3VibGUgbW9ub3RvbmljVGltZSkgY29uc3QKIHsKKyAgICBpZiAobV9ydW5TdGF0ZSA9PSBGaW5p
c2hlZCB8fCBtX3J1blN0YXRlID09IEFib3J0ZWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgaWYgKG1fbmVlZHNTeW5jaHJvbml6ZWRTdGFydFRpbWUpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKwogICAgIHJldHVybiBtX3J1blN0YXRlID09IFJ1bm5pbmcKLSAgICAgICAgfHwgbV9ydW5T
dGF0ZSA9PSBGaW5pc2hlZAotICAgICAgICB8fCBtX3J1blN0YXRlID09IEFib3J0ZWQKLSAgICAg
ICAgfHwgbV9ydW5TdGF0ZSA9PSBQYXVzZWQ7CisgICAgICAgICYmIG1faXRlcmF0aW9ucyA+PSAw
CisgICAgICAgICYmIG1faXRlcmF0aW9ucyAqIG1fY3VydmUtPmR1cmF0aW9uKCkgPD0gbW9ub3Rv
bmljVGltZSAtIHN0YXJ0VGltZSgpIC0gbV90b3RhbFBhdXNlZFRpbWU7CiB9CiAKLWRvdWJsZSBD
Q0FjdGl2ZUFuaW1hdGlvbjo6dHJpbVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oZG91YmxlIG5vdykg
Y29uc3QKK2RvdWJsZSBDQ0FjdGl2ZUFuaW1hdGlvbjo6dHJpbVRpbWVUb0N1cnJlbnRJdGVyYXRp
b24oZG91YmxlIG1vbm90b25pY1RpbWUpIGNvbnN0CiB7Ci0gICAgZG91YmxlIHRyaW1tZWQgPSBu
b3c7CisgICAgZG91YmxlIHRyaW1tZWQgPSBtb25vdG9uaWNUaW1lICsgbV90aW1lT2Zmc2V0Owog
CiAgICAgLy8gSWYgd2UncmUgcGF1c2VkLCB0aW1lIGlzICdzdHVjaycgYXQgdGhlIHBhdXNlIHRp
bWUuCi0gICAgaWYgKG1fcnVuU3RhdGUgPT0gUGF1c2VkICYmIHRyaW1tZWQgPiBtX3BhdXNlVGlt
ZSkKKyAgICBpZiAobV9ydW5TdGF0ZSA9PSBQYXVzZWQpCiAgICAgICAgIHRyaW1tZWQgPSBtX3Bh
dXNlVGltZTsKIAogICAgIC8vIFJldHVybmVkIHRpbWUgc2hvdWxkIGFsd2F5cyBiZSByZWxhdGl2
ZSB0byB0aGUgc3RhcnQgdGltZSBhbmQgc2hvdWxkIHN1YnRyYWN0CkBAIC0xMjksMjggKzEzNCwx
OCBAQCBQYXNzT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBDQ0FjdGl2ZUFuaW1hdGlvbjo6Y2xv
bmVGb3JJbXBsVGhyZWFkKCkgY29uc3QKICAgICB0b1JldHVybi0+bV9zdGFydFRpbWUgPSBtX3N0
YXJ0VGltZTsKICAgICB0b1JldHVybi0+bV9wYXVzZVRpbWUgPSBtX3BhdXNlVGltZTsKICAgICB0
b1JldHVybi0+bV90b3RhbFBhdXNlZFRpbWUgPSBtX3RvdGFsUGF1c2VkVGltZTsKKyAgICB0b1Jl
dHVybi0+bV90aW1lT2Zmc2V0ID0gbV90aW1lT2Zmc2V0OwogICAgIHJldHVybiB0b1JldHVybi5y
ZWxlYXNlKCk7CiB9CiAKLXZvaWQgQ0NBY3RpdmVBbmltYXRpb246OnN5bmNocm9uaXplUHJvcGVy
dGllcyhDQ0FjdGl2ZUFuaW1hdGlvbiogb3RoZXIpCit2b2lkIENDQWN0aXZlQW5pbWF0aW9uOjpw
dXNoUHJvcGVydGllc1RvKENDQWN0aXZlQW5pbWF0aW9uKiBvdGhlcikgY29uc3QKIHsKLSAgICAv
LyBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIGltcGwgdGhyZWFkIHRvIGluaXRpYXRlIGEgcnVuIHN0
YXRlIGNoYW5nZS4KLSAgICAvLyBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgYW5pbWF0aW9uIHdhcyB3
YWl0aW5nIGZvciBhIGZ1dHVyZSBldmVudCB0byB0YWtlCi0gICAgLy8gcGxhY2UsIGFuZCB0aGUg
ZXZlbnQgaGFzIGhhcHBlbmVkLiBJbiB0aGF0IGNhc2UsIHdlIHdhbnQgJ3RoaXMnIHRvCi0gICAg
Ly8gYXNzdW1lIHRoZSBpbXBsIHRocmVhZCdzIHJ1biBzdGF0ZSBhbmQgc3RhcnQgdGltZS4KLSAg
ICBpZiAoaXNXYWl0aW5nKCkgJiYgb3RoZXItPmlzUnVubmluZ09ySGFzUnVuKCkpIHsKLSAgICAg
ICAgbV9ydW5TdGF0ZSA9IG90aGVyLT5tX3J1blN0YXRlOwotICAgICAgICBtX3N0YXJ0VGltZSA9
IG90aGVyLT5tX3N0YXJ0VGltZTsKLSAgICB9IGVsc2UgeworICAgIC8vIEN1cnJlbnRseSwgd2Ug
b25seSBwdXNoIGNoYW5nZXMgZHVlIHRvIHBhdXNpbmcgYW5kIHJlc3VtaW5nIGFuaW1hdGlvbnMg
b24gdGhlIG1haW4gdGhyZWFkLgorICAgIGlmIChtX3J1blN0YXRlID09IENDQWN0aXZlQW5pbWF0
aW9uOjpQYXVzZWQgfHwgb3RoZXItPm1fcnVuU3RhdGUgPT0gQ0NBY3RpdmVBbmltYXRpb246OlBh
dXNlZCkgewogICAgICAgICBvdGhlci0+bV9ydW5TdGF0ZSA9IG1fcnVuU3RhdGU7Ci0gICAgICAg
IG90aGVyLT5tX3N0YXJ0VGltZSA9IG1fc3RhcnRUaW1lOworICAgICAgICBvdGhlci0+bV9wYXVz
ZVRpbWUgPSBtX3BhdXNlVGltZTsKKyAgICAgICAgb3RoZXItPm1fdG90YWxQYXVzZWRUaW1lID0g
bV90b3RhbFBhdXNlZFRpbWU7CiAgICAgfQotCi0gICAgLy8gQ2hhbmdlIGluIHN0YXRlIHJlbGF0
ZWQgdG8gaXRlcmF0aW9ucyBhbmQgcGF1c2UgaXMgYWx3YXlzIGluaXRpYXRlZCBmcm9tCi0gICAg
Ly8gdGhlIG1haW4gdGhyZWFkLCBzbyBpdCBpcyBzYWZlIHRvIHB1c2ggcHJvcGVydGllcyBpbiB0
aGF0IGRpcmVjdGlvbi4KLSAgICBvdGhlci0+bV9pdGVyYXRpb25zID0gbV9pdGVyYXRpb25zOwot
ICAgIG90aGVyLT5tX3BhdXNlVGltZSA9IG1fcGF1c2VUaW1lOwotICAgIG90aGVyLT5tX3RvdGFs
UGF1c2VkVGltZSA9IG1fdG90YWxQYXVzZWRUaW1lOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NBY3RpdmVBbmltYXRpb24uaAppbmRleCBhMjIzYjY2ZTMyNDM5NWQx
NmJiNTlkOTAxNGVhYjNiZDA0NDk2ZTRjLi41MzFlYjQ2NGZjMzljYzMwMWIzYzdkOGJlMDBmYmI4
OTkyOTc0YTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0FjdGl2ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDQWN0aXZlQW5pbWF0aW9uLmgKQEAgLTcyLDcgKzcy
LDcgQEAgcHVibGljOgogICAgIFRhcmdldFByb3BlcnR5IHRhcmdldFByb3BlcnR5KCkgY29uc3Qg
eyByZXR1cm4gbV90YXJnZXRQcm9wZXJ0eTsgfQogCiAgICAgUnVuU3RhdGUgcnVuU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX3J1blN0YXRlOyB9Ci0gICAgdm9pZCBzZXRSdW5TdGF0ZShSdW5TdGF0
ZSwgZG91YmxlIG5vdyk7CisgICAgdm9pZCBzZXRSdW5TdGF0ZShSdW5TdGF0ZSwgZG91YmxlIG1v
bm90b25pY1RpbWUpOwogCiAgICAgLy8gVGhpcyBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQg
dGhlIGFuaW1hdGlvbiB3aWxsIHBsYXkuIElmIHRoaXMKICAgICAvLyB2YWx1ZSBpcyB6ZXJvIHRo
ZSBhbmltYXRpb24gd2lsbCBub3QgcGxheS4gSWYgaXQgaXMgbmVnYXRpdmUsIHRoZW4KQEAgLTgx
LDE0ICs4MSwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJdGVyYXRpb25zKGludCBuKSB7IG1f
aXRlcmF0aW9ucyA9IG47IH0KIAogICAgIGRvdWJsZSBzdGFydFRpbWUoKSBjb25zdCB7IHJldHVy
biBtX3N0YXJ0VGltZTsgfQotICAgIHZvaWQgc2V0U3RhcnRUaW1lKGRvdWJsZSBzdGFydFRpbWUp
IHsgbV9zdGFydFRpbWUgPSBzdGFydFRpbWU7IH0KKyAgICB2b2lkIHNldFN0YXJ0VGltZShkb3Vi
bGUgbW9ub3RvbmljVGltZSkgeyBtX3N0YXJ0VGltZSA9IG1vbm90b25pY1RpbWU7IH0KICAgICBi
b29sIGhhc1NldFN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9CiAKLSAg
ICBib29sIGlzRmluaXNoZWRBdChkb3VibGUgdGltZSkgY29uc3Q7Ci0gICAgYm9vbCBpc0Zpbmlz
aGVkKCkgY29uc3QgeyByZXR1cm4gbV9ydW5TdGF0ZSA9PSBGaW5pc2hlZCB8fCBtX3J1blN0YXRl
ID09IEFib3J0ZWQ7IH0KKyAgICBkb3VibGUgdGltZU9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
dGltZU9mZnNldDsgfQorICAgIHZvaWQgc2V0VGltZU9mZnNldChkb3VibGUgbW9ub3RvbmljVGlt
ZSkgeyBtX3RpbWVPZmZzZXQgPSBtb25vdG9uaWNUaW1lOyB9CisKKyAgICB2b2lkIHN1c3BlbmQo
ZG91YmxlIG1vbm90b25pY1RpbWUpOworICAgIHZvaWQgcmVzdW1lKGRvdWJsZSBtb25vdG9uaWNU
aW1lKTsKIAotICAgIGJvb2wgaXNXYWl0aW5nKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1J1bm5pbmdP
ckhhc1J1bigpIGNvbnN0OworICAgIGJvb2wgaXNGaW5pc2hlZEF0KGRvdWJsZSBtb25vdG9uaWNU
aW1lKSBjb25zdDsKKyAgICBib29sIGlzRmluaXNoZWQoKSBjb25zdCB7IHJldHVybiBtX3J1blN0
YXRlID09IEZpbmlzaGVkIHx8IG1fcnVuU3RhdGUgPT0gQWJvcnRlZDsgfQogCiAgICAgQ0NBbmlt
YXRpb25DdXJ2ZSogY3VydmUoKSB7IHJldHVybiBtX2N1cnZlLmdldCgpOyB9CiAgICAgY29uc3Qg
Q0NBbmltYXRpb25DdXJ2ZSogY3VydmUoKSBjb25zdCB7IHJldHVybiBtX2N1cnZlLmdldCgpOyB9
CkBAIC0xMDAsMTEgKzEwMywxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBUYWtlcyB0aGUgZ2l2ZW4g
YWJzb2x1dGUgdGltZSwgYW5kIHVzaW5nIHRoZSBzdGFydCB0aW1lIGFuZCB0aGUgbnVtYmVyCiAg
ICAgLy8gb2YgaXRlcmF0aW9ucywgcmV0dXJucyB0aGUgcmVsYXRpdmUgdGltZSBpbiB0aGUgY3Vy
cmVudCBpdGVyYXRpb24uCi0gICAgZG91YmxlIHRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKGRv
dWJsZSBub3cpIGNvbnN0OworICAgIGRvdWJsZSB0cmltVGltZVRvQ3VycmVudEl0ZXJhdGlvbihk
b3VibGUgbW9ub3RvbmljVGltZSkgY29uc3Q7CiAKICAgICBQYXNzT3duUHRyPENDQWN0aXZlQW5p
bWF0aW9uPiBjbG9uZUZvckltcGxUaHJlYWQoKSBjb25zdDsKIAotICAgIHZvaWQgc3luY2hyb25p
emVQcm9wZXJ0aWVzKENDQWN0aXZlQW5pbWF0aW9uKik7CisgICAgdm9pZCBwdXNoUHJvcGVydGll
c1RvKENDQWN0aXZlQW5pbWF0aW9uKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgQ0NBY3RpdmVB
bmltYXRpb24oUGFzc093blB0cjxDQ0FuaW1hdGlvbkN1cnZlPiwgaW50IGFuaW1hdGlvbklkLCBp
bnQgZ3JvdXBJZCwgVGFyZ2V0UHJvcGVydHkpOwpAQCAtMTI2LDggKzEyOSwxNyBAQCBwcml2YXRl
OgogICAgIGludCBtX2l0ZXJhdGlvbnM7CiAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwogCisgICAg
Ly8gVGhlIHRpbWUgb2Zmc2V0IGVmZmVjdGl2ZWx5IHB1c2hlcyB0aGUgc3RhcnQgb2YgdGhlIGFu
aW1hdGlvbiBiYWNrIGluIHRpbWUuIFRoaXMgaXMKKyAgICAvLyB1c2VkIGZvciByZXN1bWluZyBw
YXVzZWQgYW5pbWF0aW9ucyAtLSBhbiBhbmltYXRpb24gaXMgYWRkZWQgd2l0aCBhIG5vbi16ZXJv
IHRpbWUKKyAgICAvLyBvZmZzZXQsIGNhdXNpbmcgdGhlIGFuaW1hdGlvbiB0byBza2lwIGFoZWFk
IHRvIHRoZSBkZXNpcmVkIHBvaW50IGluIHRpbWUuCisgICAgZG91YmxlIG1fdGltZU9mZnNldDsK
KwogICAgIGJvb2wgbV9uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZTsKIAorICAgIC8vIFdoZW4g
YW4gYW5pbWF0aW9uIGlzIHN1c3BlbmRlZCwgaXQgYmVoYXZlcyBhcyBpZiBpdCBpcyBwYXVzZWQg
YW5kIGl0IGFsc28gaWdub3JlcworICAgIC8vIGFsbCBydW4gc3RhdGUgY2hhbmdlcyB1bnRpbCBp
dCBpcyByZXN1bWVkLiBUaGlzIGlzIHVzZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMuCisgICAgYm9v
bCBtX3N1c3BlbmRlZDsKKwogICAgIC8vIFRoZXNlIGFyZSB1c2VkIGluIHRyaW1UaW1lVG9DdXJy
ZW50SXRlcmF0aW9uIHRvIGFjY291bnQgZm9yIHRpbWUKICAgICAvLyBzcGVudCB3aGlsZSBwYXVz
ZWQuIFRoaXMgaXMgbm90IGluY2x1ZGVkIGluIEFuaW1hdGlvblN0YXRlIHNpbmNlIGl0CiAgICAg
Ly8gdGhlcmUgaXMgYWJzb2x1dGVseSBubyBuZWVkIGZvciBjbGllbnRzIG9mIHRoaXMgY29udHJv
bGxlciB0byBrbm93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAKaW5kZXggNDNmZGEwOTc4OTlhMGQyMmI3NGViZmFkMTdmODc5YWYzN2M5MDY2ZS4u
MTk5MTkyZDUyYTQ0OGFkYzliZTQyYTMyZGRiMDgwMjdmZjZjZDczZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtMTA3LDYgKzEwNyw5
IEBAIFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGNyZWF0ZUFjdGl2ZUFuaW1hdGlvbihj
b25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsCiAgICAgLy8gdGhlIGNvcnJlc3BvbmRpbmcgaW1w
bCB0aHJlYWQgYW5pbWF0aW9uLgogICAgIGFuaW0tPnNldE5lZWRzU3luY2hyb25pemVkU3RhcnRU
aW1lKHRydWUpOwogCisgICAgLy8gSWYgdGltZU9mZnNldCA+IDAsIHRoZW4gdGhlIGFuaW1hdGlv
biBoYXMgc3RhcnRlZCBpbiB0aGUgcGFzdC4KKyAgICBhbmltLT5zZXRUaW1lT2Zmc2V0KHRpbWVP
ZmZzZXQpOworCiAgICAgcmV0dXJuIGFuaW0ucmVsZWFzZSgpOwogfQogCkBAIC0xMzgsNiArMTQx
LDEzIEBAIGJvb2wgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OmFkZEFuaW1hdGlvbihjb25z
dCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXN0CiAgICAgICAgIHRvQWRkID0gY3JlYXRlQWN0
aXZlQW5pbWF0aW9uPEZsb2F0QW5pbWF0aW9uVmFsdWUsIENDRmxvYXRLZXlmcmFtZSwgQ0NLZXlm
cmFtZWRGbG9hdEFuaW1hdGlvbkN1cnZlPih2YWx1ZUxpc3QsIGFuaW1hdGlvbiwgYW5pbWF0aW9u
SWQsIGdyb3VwSWQsIHRpbWVPZmZzZXQsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KTsKIAog
ICAgIGlmICh0b0FkZC5nZXQoKSkgeworICAgICAgICAvLyBSZW1vdmUgYW55IGV4aXN0aW5nIGFu
aW1hdGlvbnMgd2l0aCB0aGUgc2FtZSBhbmltYXRpb24gaWQgYW5kIHRhcmdldCBwcm9wZXJ0eS4K
KyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgp
OykgeworICAgICAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+aWQoKSA9PSBhbmlt
YXRpb25JZCAmJiBtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnRhcmdldFByb3BlcnR5KCkgPT0gdG9B
ZGQtPnRhcmdldFByb3BlcnR5KCkpCisgICAgICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25z
LnJlbW92ZShpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpKys7CisgICAg
ICAgIH0KICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25zLmFwcGVuZCh0b0FkZC5yZWxlYXNlKCkp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0xNDksNyArMTU5LDcgQEAgdm9pZCBD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cGF1c2VBbmltYXRpb24oaW50IGFuaW1hdGlvbklk
LCBkb3VibGUgdGltZU9mZnMKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYWN0aXZl
QW5pbWF0aW9ucy5zaXplKCk7ICsraSkgewogICAgICAgICBpZiAobV9hY3RpdmVBbmltYXRpb25z
W2ldLT5pZCgpID09IGFuaW1hdGlvbklkKQotICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25z
W2ldLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCB0aW1lT2Zmc2V0KTsK
KyAgICAgICAgICAgIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVB
bmltYXRpb246OlBhdXNlZCwgdGltZU9mZnNldCArIG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+c3Rh
cnRUaW1lKCkpOwogICAgIH0KIH0KIApAQCAtMTY0LDEzICsxNzQsMjEgQEAgdm9pZCBDQ0xheWVy
QW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uKGludCBhbmltYXRpb25JZCkKIH0K
IAogLy8gQWNjb3JkaW5nIHRvIHJlbmRlciBsYXllciBiYWNraW5nLCB0aGVzZSBhcmUgZm9yIHRl
c3Rpbmcgb25seS4KLXZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnN1c3BlbmRBbmlt
YXRpb25zKGRvdWJsZSB0aW1lKQordm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6c3Vz
cGVuZEFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpCiB7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYg
KG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+cnVuU3RhdGUoKSAhPSBDQ0FjdGl2ZUFuaW1hdGlvbjo6
RmluaXNoZWQgJiYgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgpICE9IENDQWN0aXZl
QW5pbWF0aW9uOjpBYm9ydGVkKQorICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5z
ZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkLCBtb25vdG9uaWNUaW1lKTsKKyAg
ICB9CiB9CiAKIC8vIExvb2tpbmcgYXQgR3JhcGhpY3NMYXllckNBLCB0aGlzIGFwcGVhcnMgdG8g
YmUgdGhlIGFuYWxvZyB0byBzdXNwZW5kQW5pbWF0aW9ucywgd2hpY2ggaXMgZm9yIHRlc3Rpbmcu
Ci12b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkKK3Zv
aWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoZG91YmxlIG1v
bm90b25pY1RpbWUpCiB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1h
dGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+
cnVuU3RhdGUoKSA9PSBDQ0FjdGl2ZUFuaW1hdGlvbjo6UGF1c2VkKQorICAgICAgICAgICAgbV9h
Y3RpdmVBbmltYXRpb25zW2ldLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmlu
ZywgbW9ub3RvbmljVGltZSk7CisgICAgfQogfQogCiAvLyBFbnN1cmVzIHRoYXQgdGhlIGxpc3Qg
b2YgYWN0aXZlIGFuaW1hdGlvbnMgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB0aGUgaW1wbCB0aHJl
YWQKQEAgLTE3OSw2ICsxOTcsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpw
dXNoQW5pbWF0aW9uVXBkYXRlc1RvKENDTGF5ZXJBbmltYXRpb25Db250cm9sbAogewogICAgIHB1
c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKGNvbnRyb2xsZXJJbXBsKTsKICAgICByZW1vdmVB
bmltYXRpb25zQ29tcGxldGVkT25NYWluVGhyZWFkKGNvbnRyb2xsZXJJbXBsKTsKKyAgICBwdXNo
UHJvcGVydGllc1RvSW1wbFRocmVhZChjb250cm9sbGVySW1wbCk7CiB9CiAKIHZvaWQgQ0NMYXll
ckFuaW1hdGlvbkNvbnRyb2xsZXI6OmFuaW1hdGUoZG91YmxlIG1vbm90b25pY1RpbWUsIENDQW5p
bWF0aW9uRXZlbnRzVmVjdG9yKiBldmVudHMpCkBAIC0xOTcsNyArMjE2LDcgQEAgdm9pZCBDQ0xh
eWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6YWRkKFBhc3NPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+
IGFuaW1hdGlvbikKICAgICBtX2FjdGl2ZUFuaW1hdGlvbnMuYXBwZW5kKGFuaW1hdGlvbik7CiB9
CiAKLUNDQWN0aXZlQW5pbWF0aW9uKiBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6Z2V0QWN0
aXZlQW5pbWF0aW9uKGludCBncm91cElkLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6VGFyZ2V0UHJvcGVy
dHkgdGFyZ2V0UHJvcGVydHkpCitDQ0FjdGl2ZUFuaW1hdGlvbiogQ0NMYXllckFuaW1hdGlvbkNv
bnRyb2xsZXI6OmdldEFjdGl2ZUFuaW1hdGlvbihpbnQgZ3JvdXBJZCwgQ0NBY3RpdmVBbmltYXRp
b246OlRhcmdldFByb3BlcnR5IHRhcmdldFByb3BlcnR5KSBjb25zdAogewogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9hY3RpdmVBbmltYXRpb25zLnNpemUoKTsgKytpKQogICAgICAgICBp
ZiAobV9hY3RpdmVBbmltYXRpb25zW2ldLT5ncm91cCgpID09IGdyb3VwSWQgJiYgbV9hY3RpdmVB
bmltYXRpb25zW2ldLT50YXJnZXRQcm9wZXJ0eSgpID09IHRhcmdldFByb3BlcnR5KQpAQCAtMjM1
LDcgKzI1NCw3IEBAIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6Om5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgQ0NBbmltYXRpb25FdmVudCYKICAgICB9CiB9CiAKLXZvaWQgQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKEND
TGF5ZXJBbmltYXRpb25Db250cm9sbGVyKiBjb250cm9sbGVySW1wbCkKK3ZvaWQgQ0NMYXllckFu
aW1hdGlvbkNvbnRyb2xsZXI6OnB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKENDTGF5ZXJB
bmltYXRpb25Db250cm9sbGVyKiBjb250cm9sbGVySW1wbCkgY29uc3QKIHsKICAgICAvLyBBbnkg
bmV3IGFuaW1hdGlvbnMgb3duZWQgYnkgdGhlIG1haW4gdGhyZWFkJ3MgY29udHJvbGxlciBhcmUg
Y2xvbmVkIGFuZCBhZGRlIHRvIHRoZSBpbXBsIHRocmVhZCdzIGNvbnRyb2xsZXIuCiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgpOyArK2kpIHsKQEAg
LTI1OCw3ICsyNzcsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpwdXNoTmV3
QW5pbWF0aW9uc1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9uQwogICAgIH0KIH0KIAotdm9p
ZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9u
TWFpblRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciogY29udHJvbGxlckltcGwpCit2
b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjpyZW1vdmVBbmltYXRpb25zQ29tcGxldGVk
T25NYWluVGhyZWFkKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyKiBjb250cm9sbGVySW1wbCkg
Y29uc3QKIHsKICAgICAvLyBEZWxldGUgYWxsIGltcGwgdGhyZWFkIGFuaW1hdGlvbnMgZm9yIHdo
aWNoIHRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgbWFpbiB0aHJlYWQgYW5pbWF0aW9uLgogICAg
IC8vIEVhY2ggaXRlcmF0aW9uLCBjb250cm9sbGVyLT5tX2FjdGl2ZUFuaW1hdGlvbnMuc2l6ZSgp
IGlzIGRlY3JlbWVudGVkIG9yIGkgaXMgaW5jcmVtZW50ZWQKQEAgLTI3Miw2ICsyOTEsMTUgQEAg
dm9pZCBDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6cmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRl
ZE9uTWFpblRocmVhZChDQ0xheWVyQW4KICAgICB9CiB9CiAKK3ZvaWQgQ0NMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXI6OnB1c2hQcm9wZXJ0aWVzVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25D
b250cm9sbGVyKiBjb250cm9sbGVySW1wbCkgY29uc3QKK3sKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraSkgeworICAgICAgICBDQ0FjdGl2
ZUFuaW1hdGlvbiogY3VycmVudEltcGwgPSBjb250cm9sbGVySW1wbC0+Z2V0QWN0aXZlQW5pbWF0
aW9uKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+Z3JvdXAoKSwgbV9hY3RpdmVBbmltYXRpb25zW2ld
LT50YXJnZXRQcm9wZXJ0eSgpKTsKKyAgICAgICAgaWYgKGN1cnJlbnRJbXBsKQorICAgICAgICAg
ICAgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5wdXNoUHJvcGVydGllc1RvKGN1cnJlbnRJbXBsKTsK
KyAgICB9Cit9CisKIHZvaWQgQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnN0YXJ0QW5pbWF0
aW9uc1dhaXRpbmdGb3JOZXh0VGljayhkb3VibGUgbW9ub3RvbmljVGltZSwgQ0NBbmltYXRpb25F
dmVudHNWZWN0b3IqIGV2ZW50cykKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fYWN0
aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraSkgewpAQCAtNDA0LDcgKzQzMiw3IEBAIHZvaWQgQ0NM
YXllckFuaW1hdGlvbkNvbnRyb2xsZXI6OnB1cmdlRmluaXNoZWRBbmltYXRpb25zKGRvdWJsZSBt
b25vdG9uaWNUaW1lLCBDCiB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjp0aWNrQW5p
bWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fYWN0aXZlQW5pbWF0aW9ucy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobV9hY3Rp
dmVBbmltYXRpb25zW2ldLT5ydW5TdGF0ZSgpID09IENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5n
KSB7CisgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPnJ1blN0YXRlKCkgPT0gQ0NB
Y3RpdmVBbmltYXRpb246OlJ1bm5pbmcgfHwgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5ydW5TdGF0
ZSgpID09IENDQWN0aXZlQW5pbWF0aW9uOjpQYXVzZWQpIHsKICAgICAgICAgICAgIGRvdWJsZSB0
cmltbWVkID0gbV9hY3RpdmVBbmltYXRpb25zW2ldLT50cmltVGltZVRvQ3VycmVudEl0ZXJhdGlv
bihtb25vdG9uaWNUaW1lKTsKIAogICAgICAgICAgICAgLy8gQW5pbWF0aW9uIGFzc3VtZXMgaXRz
IGluaXRpYWwgdmFsdWUgdW50aWwgaXQgZ2V0cyB0aGUgc3luY2hyb25pemVkIHN0YXJ0IHRpbWUK
QEAgLTQxNyw3ICs0NDUsNyBAQCB2b2lkIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyOjp0aWNr
QW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSkKICAgICAgICAgICAgIGNhc2UgQ0NBY3Rp
dmVBbmltYXRpb246OlRyYW5zZm9ybTogewogICAgICAgICAgICAgICAgIGNvbnN0IENDVHJhbnNm
b3JtQW5pbWF0aW9uQ3VydmUqIHRyYW5zZm9ybUFuaW1hdGlvbkN1cnZlID0gbV9hY3RpdmVBbmlt
YXRpb25zW2ldLT5jdXJ2ZSgpLT50b1RyYW5zZm9ybUFuaW1hdGlvbkN1cnZlKCk7CiAgICAgICAg
ICAgICAgICAgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0cml4ID0gdHJhbnNmb3JtQW5p
bWF0aW9uQ3VydmUtPmdldFZhbHVlKHRyaW1tZWQsIG1fY2xpZW50LT5ib3VuZHMoKSk7Ci0gICAg
ICAgICAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+aXNGaW5pc2hlZEF0KG1vbm90
b25pY1RpbWUpICYmICFtX2FjdGl2ZUFuaW1hdGlvbnNbaV0tPm5lZWRzU3luY2hyb25pemVkU3Rh
cnRUaW1lKCkpCisgICAgICAgICAgICAgICAgaWYgKG1fYWN0aXZlQW5pbWF0aW9uc1tpXS0+aXNG
aW5pc2hlZEF0KG1vbm90b25pY1RpbWUpKQogICAgICAgICAgICAgICAgICAgICBtX2FjdGl2ZUFu
aW1hdGlvbnNbaV0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpGaW5pc2hlZCwgbW9u
b3RvbmljVGltZSk7CiAKICAgICAgICAgICAgICAgICBtX2NsaWVudC0+c2V0VHJhbnNmb3JtRnJv
bUFuaW1hdGlvbihtYXRyaXgpOwpAQCAtNDI3LDcgKzQ1NSw3IEBAIHZvaWQgQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXI6OnRpY2tBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1lKQogICAg
ICAgICAgICAgY2FzZSBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eTogewogICAgICAgICAgICAg
ICAgIGNvbnN0IENDRmxvYXRBbmltYXRpb25DdXJ2ZSogZmxvYXRBbmltYXRpb25DdXJ2ZSA9IG1f
YWN0aXZlQW5pbWF0aW9uc1tpXS0+Y3VydmUoKS0+dG9GbG9hdEFuaW1hdGlvbkN1cnZlKCk7CiAg
ICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgb3BhY2l0eSA9IGZsb2F0QW5pbWF0aW9uQ3VydmUt
PmdldFZhbHVlKHRyaW1tZWQpOwotICAgICAgICAgICAgICAgIGlmIChtX2FjdGl2ZUFuaW1hdGlv
bnNbaV0tPmlzRmluaXNoZWRBdChtb25vdG9uaWNUaW1lKSAmJiAhbV9hY3RpdmVBbmltYXRpb25z
W2ldLT5uZWVkc1N5bmNocm9uaXplZFN0YXJ0VGltZSgpKQorICAgICAgICAgICAgICAgIGlmICht
X2FjdGl2ZUFuaW1hdGlvbnNbaV0tPmlzRmluaXNoZWRBdChtb25vdG9uaWNUaW1lKSkKICAgICAg
ICAgICAgICAgICAgICAgbV9hY3RpdmVBbmltYXRpb25zW2ldLT5zZXRSdW5TdGF0ZShDQ0FjdGl2
ZUFuaW1hdGlvbjo6RmluaXNoZWQsIG1vbm90b25pY1RpbWUpOwogCiAgICAgICAgICAgICAgICAg
bV9jbGllbnQtPnNldE9wYWNpdHlGcm9tQW5pbWF0aW9uKG9wYWNpdHkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckFuaW1h
dGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyLmgKaW5kZXggODM1MDc0MTg5YTYyZDZl
MmE0YzgxMzE1MzZlMGRhMWE2NDEwOGYyMS4uZTIyZjgwNTRkNjIzMjA3YzRkNzBjMzEyMWZiMWIw
Mzk1YTJlNjMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyQW5pbWF0aW9uQ29udHJv
bGxlci5oCkBAIC02NCw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWRkQW5p
bWF0aW9uKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiwgY29uc3QgSW50U2l6ZSYgYm94U2l6ZSwg
Y29uc3QgQW5pbWF0aW9uKiwgaW50IGFuaW1hdGlvbklkLCBpbnQgZ3JvdXBJZCwgZG91YmxlIHRp
bWVPZmZzZXQpOwogICAgIHZpcnR1YWwgdm9pZCBwYXVzZUFuaW1hdGlvbihpbnQgYW5pbWF0aW9u
SWQsIGRvdWJsZSB0aW1lT2Zmc2V0KTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9u
KGludCBhbmltYXRpb25JZCk7Ci0gICAgdmlydHVhbCB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGRv
dWJsZSB0aW1lKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpOworICAgIHZp
cnR1YWwgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSk7CisgICAg
dmlydHVhbCB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpOwogCiAg
ICAgLy8gRW5zdXJlcyB0aGF0IHRoZSBsaXN0IG9mIGFjdGl2ZSBhbmltYXRpb25zIG9uIHRoZSBt
YWluIHRocmVhZCBhbmQgdGhlIGltcGwgdGhyZWFkCiAgICAgLy8gYXJlIGtlcHQgaW4gc3luYy4g
VGhpcyBmdW5jdGlvbiBkb2VzIG5vdCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgaW1wbCB0aHJlYWQg
Y29udHJvbGxlci4KQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogCiAgICAgLy8gUmV0dXJucyB0
aGUgYWN0aXZlIGFuaW1hdGlvbiBpbiB0aGUgZ2l2ZW4gZ3JvdXAsIGFuaW1hdGluZyB0aGUgZ2l2
ZW4gcHJvcGVydHkgaWYgc3VjaCBhbgogICAgIC8vIGFuaW1hdGlvbiBleGlzdHMuCi0gICAgQ0NB
Y3RpdmVBbmltYXRpb24qIGdldEFjdGl2ZUFuaW1hdGlvbihpbnQgZ3JvdXBJZCwgQ0NBY3RpdmVB
bmltYXRpb246OlRhcmdldFByb3BlcnR5KTsKKyAgICBDQ0FjdGl2ZUFuaW1hdGlvbiogZ2V0QWN0
aXZlQW5pbWF0aW9uKGludCBncm91cElkLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6VGFyZ2V0UHJvcGVy
dHkpIGNvbnN0OwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZXJlIGFyZSBhbnkgYW5pbWF0
aW9ucyB0aGF0IGhhdmUgbmVpdGhlciBmaW5pc2hlZCBub3IgYWJvcnRlZC4KICAgICBib29sIGhh
c0FjdGl2ZUFuaW1hdGlvbigpIGNvbnN0OwpAQCAtOTYsOCArOTYsOSBAQCBwcm90ZWN0ZWQ6CiBw
cml2YXRlOgogICAgIHR5cGVkZWYgSGFzaFNldDxpbnQ+IFRhcmdldFByb3BlcnRpZXM7CiAKLSAg
ICB2b2lkIHB1c2hOZXdBbmltYXRpb25zVG9JbXBsVGhyZWFkKENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyKik7Ci0gICAgdm9pZCByZW1vdmVBbmltYXRpb25zQ29tcGxldGVkT25NYWluVGhyZWFk
KENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyKik7CisgICAgdm9pZCBwdXNoTmV3QW5pbWF0aW9u
c1RvSW1wbFRocmVhZChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlciopIGNvbnN0OworICAgIHZv
aWQgcmVtb3ZlQW5pbWF0aW9uc0NvbXBsZXRlZE9uTWFpblRocmVhZChDQ0xheWVyQW5pbWF0aW9u
Q29udHJvbGxlciopIGNvbnN0OworICAgIHZvaWQgcHVzaFByb3BlcnRpZXNUb0ltcGxUaHJlYWQo
Q0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIqKSBjb25zdDsKIAogICAgIHZvaWQgc3RhcnRBbmlt
YXRpb25zV2FpdGluZ0Zvck5leHRUaWNrKGRvdWJsZSBtb25vdG9uaWNUaW1lLCBDQ0FuaW1hdGlv
bkV2ZW50c1ZlY3RvciopOwogICAgIHZvaWQgc3RhcnRBbmltYXRpb25zV2FpdGluZ0ZvclN0YXJ0
VGltZShkb3VibGUgbW9ub3RvbmljVGltZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3IqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NBY3RpdmVBbmltYXRpb25U
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NBY3RpdmVBbmltYXRpb25U
ZXN0LmNwcAppbmRleCBlMTRlZjliYzA5NzFhMTFlMjE0YjMxNGQ3NTgyOTE1ZWNjNTZkMzUyLi5h
MWFiNzcwYjdhMzEyMDc2YTMxMTg1MmQyZDg5ODFkNTYyYWRmNTk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDQWN0aXZlQW5pbWF0aW9uVGVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0FjdGl2ZUFuaW1hdGlvblRlc3QuY3BwCkBA
IC04MCw2ICs4MCwxNyBAQCBURVNUKENDQWN0aXZlQW5pbWF0aW9uVGVzdCwgVHJpbVRpbWVTdGFy
dFRpbWUpCiAgICAgRVhQRUNUX0VRKDEsIGFuaW0tPnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9u
KDYpKTsKIH0KIAorVEVTVChDQ0FjdGl2ZUFuaW1hdGlvblRlc3QsIFRyaW1UaW1lVGltZU9mZnNl
dCkKK3sKKyAgICBPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGFuaW0oY3JlYXRlQWN0aXZlQW5p
bWF0aW9uKDEpKTsKKyAgICBhbmltLT5zZXRUaW1lT2Zmc2V0KDQpOworICAgIGFuaW0tPnNldFN0
YXJ0VGltZSg0KTsKKyAgICBFWFBFQ1RfRVEoMCwgYW5pbS0+dHJpbVRpbWVUb0N1cnJlbnRJdGVy
YXRpb24oMCkpOworICAgIEVYUEVDVF9FUSgwLjUsIGFuaW0tPnRyaW1UaW1lVG9DdXJyZW50SXRl
cmF0aW9uKDAuNSkpOworICAgIEVYUEVDVF9FUSgxLCBhbmltLT50cmltVGltZVRvQ3VycmVudEl0
ZXJhdGlvbigxKSk7CisgICAgRVhQRUNUX0VRKDEsIGFuaW0tPnRyaW1UaW1lVG9DdXJyZW50SXRl
cmF0aW9uKDEpKTsKK30KKwogVEVTVChDQ0FjdGl2ZUFuaW1hdGlvblRlc3QsIFRyaW1UaW1lUGF1
c2VSZXN1bWUpCiB7CiAgICAgT3duUHRyPENDQWN0aXZlQW5pbWF0aW9uPiBhbmltKGNyZWF0ZUFj
dGl2ZUFuaW1hdGlvbigxKSk7CkBAIC05Myw2ICsxMDQsMTkgQEAgVEVTVChDQ0FjdGl2ZUFuaW1h
dGlvblRlc3QsIFRyaW1UaW1lUGF1c2VSZXN1bWUpCiAgICAgRVhQRUNUX0VRKDEsIGFuaW0tPnRy
aW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDEwMjQuNSkpOwogfQogCitURVNUKENDQWN0aXZlQW5p
bWF0aW9uVGVzdCwgVHJpbVRpbWVTdXNwZW5kUmVzdW1lKQoreworICAgIE93blB0cjxDQ0FjdGl2
ZUFuaW1hdGlvbj4gYW5pbShjcmVhdGVBY3RpdmVBbmltYXRpb24oMSkpOworICAgIGFuaW0tPnNl
dFJ1blN0YXRlKENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCAwKTsKKyAgICBFWFBFQ1RfRVEo
MCwgYW5pbS0+dHJpbVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oMCkpOworICAgIEVYUEVDVF9FUSgw
LjUsIGFuaW0tPnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDAuNSkpOworICAgIGFuaW0tPnN1
c3BlbmQoMC41KTsKKyAgICBFWFBFQ1RfRVEoMC41LCBhbmltLT50cmltVGltZVRvQ3VycmVudEl0
ZXJhdGlvbigxMDI0KSk7CisgICAgYW5pbS0+cmVzdW1lKDEwMjQpOworICAgIEVYUEVDVF9FUSgw
LjUsIGFuaW0tPnRyaW1UaW1lVG9DdXJyZW50SXRlcmF0aW9uKDEwMjQpKTsKKyAgICBFWFBFQ1Rf
RVEoMSwgYW5pbS0+dHJpbVRpbWVUb0N1cnJlbnRJdGVyYXRpb24oMTAyNC41KSk7Cit9CisKIFRF
U1QoQ0NBY3RpdmVBbmltYXRpb25UZXN0LCBJc0ZpbmlzaGVkQXRaZXJvSXRlcmF0aW9ucykKIHsK
ICAgICBPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGFuaW0oY3JlYXRlQWN0aXZlQW5pbWF0aW9u
KDApKTsKQEAgLTE2MCw0ICsxODQsMzUgQEAgVEVTVChDQ0FjdGl2ZUFuaW1hdGlvblRlc3QsIElz
RmluaXNoZWQpCiAgICAgRVhQRUNUX1RSVUUoYW5pbS0+aXNGaW5pc2hlZCgpKTsKIH0KIAorVEVT
VChDQ0FjdGl2ZUFuaW1hdGlvblRlc3QsIElzRmluaXNoZWROZWVkc1N5bmNocm9uaXplZFN0YXJ0
VGltZSkKK3sKKyAgICBPd25QdHI8Q0NBY3RpdmVBbmltYXRpb24+IGFuaW0oY3JlYXRlQWN0aXZl
QW5pbWF0aW9uKDEpKTsKKyAgICBhbmltLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6
UnVubmluZywgMik7CisgICAgRVhQRUNUX0ZBTFNFKGFuaW0tPmlzRmluaXNoZWQoKSk7CisgICAg
YW5pbS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OlBhdXNlZCwgMik7CisgICAgRVhQ
RUNUX0ZBTFNFKGFuaW0tPmlzRmluaXNoZWQoKSk7CisgICAgYW5pbS0+c2V0UnVuU3RhdGUoQ0NB
Y3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JOZXh0VGljaywgMik7CisgICAgRVhQRUNUX0ZBTFNF
KGFuaW0tPmlzRmluaXNoZWQoKSk7CisgICAgYW5pbS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmlt
YXRpb246OldhaXRpbmdGb3JUYXJnZXRBdmFpbGFiaWxpdHksIDIpOworICAgIEVYUEVDVF9GQUxT
RShhbmltLT5pc0ZpbmlzaGVkKCkpOworICAgIGFuaW0tPnNldFJ1blN0YXRlKENDQWN0aXZlQW5p
bWF0aW9uOjpXYWl0aW5nRm9yU3RhcnRUaW1lLCAyKTsKKyAgICBFWFBFQ1RfRkFMU0UoYW5pbS0+
aXNGaW5pc2hlZCgpKTsKKyAgICBhbmltLT5zZXRSdW5TdGF0ZShDQ0FjdGl2ZUFuaW1hdGlvbjo6
RmluaXNoZWQsIDApOworICAgIEVYUEVDVF9UUlVFKGFuaW0tPmlzRmluaXNoZWQoKSk7CisgICAg
YW5pbS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OkFib3J0ZWQsIDApOworICAgIEVY
UEVDVF9UUlVFKGFuaW0tPmlzRmluaXNoZWQoKSk7Cit9CisKK1RFU1QoQ0NBY3RpdmVBbmltYXRp
b25UZXN0LCBSdW5TdGF0ZUNoYW5nZXNJZ25vcmVkV2hpbGVTdXNwZW5kZWQpCit7CisgICAgT3du
UHRyPENDQWN0aXZlQW5pbWF0aW9uPiBhbmltKGNyZWF0ZUFjdGl2ZUFuaW1hdGlvbigxKSk7Cisg
ICAgYW5pbS0+c3VzcGVuZCgwKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OlBh
dXNlZCwgYW5pbS0+cnVuU3RhdGUoKSk7CisgICAgYW5pbS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVB
bmltYXRpb246OlJ1bm5pbmcsIDApOworICAgIEVYUEVDVF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6
UGF1c2VkLCBhbmltLT5ydW5TdGF0ZSgpKTsKKyAgICBhbmltLT5yZXN1bWUoMCk7CisgICAgYW5p
bS0+c2V0UnVuU3RhdGUoQ0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIDApOworICAgIEVYUEVD
VF9FUShDQ0FjdGl2ZUFuaW1hdGlvbjo6UnVubmluZywgYW5pbS0+cnVuU3RhdGUoKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdC5jcHAKaW5kZXggN2NiMzk1
M2RjZWUxNmQyYWY2NTdhYWE1YjJmMzA4MTg4NzZkN2QzMC4uZmE5NWEyYWM1YTlmYzcxY2M2N2U0
YzcxNWI3YjI4MzMwMjBmNDE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXJUZXN0LmNwcApAQCAt
MTk5LDYgKzE5OSw0NyBAQCBURVNUKENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyVGVzdCwgZG9O
b3RDbG9iYmVyU3RhcnRUaW1lcykKICAgICBFWFBFQ1RfRVEoY29udHJvbGxlci0+Z2V0QWN0aXZl
QW5pbWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5KS0+c3RhcnRUaW1lKCksIGNv
bnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246Ok9w
YWNpdHkpLT5zdGFydFRpbWUoKSk7CiB9CiAKK1RFU1QoQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xs
ZXJUZXN0LCBzeW5jUGF1c2VBbmRSZXN1bWUpCit7CisgICAgRmFrZUxheWVyQW5pbWF0aW9uQ29u
dHJvbGxlckNsaWVudCBkdW1teUltcGw7CisgICAgT3duUHRyPENDTGF5ZXJBbmltYXRpb25Db250
cm9sbGVyPiBjb250cm9sbGVySW1wbChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRl
KCZkdW1teUltcGwpKTsKKyAgICBGYWtlTGF5ZXJBbmltYXRpb25Db250cm9sbGVyQ2xpZW50IGR1
bW15OworICAgIE93blB0cjxDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcj4gY29udHJvbGxlcihD
Q0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKCZkdW1teSkpOworCisgICAgRVhQRUNU
X0ZBTFNFKGNvbnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmlt
YXRpb246Ok9wYWNpdHkpKTsKKworICAgIGFkZE9wYWNpdHlUcmFuc2l0aW9uVG9Db250cm9sbGVy
KCpjb250cm9sbGVyLCAxLCAwLCAxLCBmYWxzZSk7CisKKyAgICBjb250cm9sbGVyLT5wdXNoQW5p
bWF0aW9uVXBkYXRlc1RvKGNvbnRyb2xsZXJJbXBsLmdldCgpKTsKKworICAgIEVYUEVDVF9UUlVF
KGNvbnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwgQ0NBY3RpdmVBbmltYXRpb246
Ok9wYWNpdHkpKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OldhaXRpbmdGb3JU
YXJnZXRBdmFpbGFiaWxpdHksIGNvbnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwg
Q0NBY3RpdmVBbmltYXRpb246Ok9wYWNpdHkpLT5ydW5TdGF0ZSgpKTsKKworICAgIC8vIFN0YXJ0
IHRoZSBhbmltYXRpb25zIG9uIGVhY2ggY29udHJvbGxlci4KKyAgICBDQ0FuaW1hdGlvbkV2ZW50
c1ZlY3RvciBldmVudHM7CisgICAgY29udHJvbGxlckltcGwtPmFuaW1hdGUoMCwgJmV2ZW50cyk7
CisgICAgY29udHJvbGxlci0+YW5pbWF0ZSgwLCAwKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVB
bmltYXRpb246OlJ1bm5pbmcsIGNvbnRyb2xsZXJJbXBsLT5nZXRBY3RpdmVBbmltYXRpb24oMCwg
Q0NBY3RpdmVBbmltYXRpb246Ok9wYWNpdHkpLT5ydW5TdGF0ZSgpKTsKKyAgICBFWFBFQ1RfRVEo
Q0NBY3RpdmVBbmltYXRpb246OlJ1bm5pbmcsIGNvbnRyb2xsZXItPmdldEFjdGl2ZUFuaW1hdGlv
bigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eSktPnJ1blN0YXRlKCkpOworCisgICAgLy8g
UGF1c2UgdGhlIG1haW4tdGhyZWFkIGFuaW1hdGlvbi4KKyAgICBjb250cm9sbGVyLT5zdXNwZW5k
QW5pbWF0aW9ucygxKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OlBhdXNlZCwg
Y29udHJvbGxlci0+Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFj
aXR5KS0+cnVuU3RhdGUoKSk7CisKKyAgICAvLyBUaGUgcGF1c2UgcnVuIHN0YXRlIGNoYW5nZSBz
aG91bGQgbWFrZSBpdCB0byB0aGUgaW1wbCB0aHJlYWQgY29udHJvbGxlci4KKyAgICBjb250cm9s
bGVyLT5wdXNoQW5pbWF0aW9uVXBkYXRlc1RvKGNvbnRyb2xsZXJJbXBsLmdldCgpKTsKKyAgICBF
WFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRpb246OlBhdXNlZCwgY29udHJvbGxlckltcGwtPmdldEFj
dGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFuaW1hdGlvbjo6T3BhY2l0eSktPnJ1blN0YXRlKCkp
OworCisgICAgLy8gUmVzdW1lIHRoZSBtYWluLXRocmVhZCBhbmltYXRpb24uCisgICAgY29udHJv
bGxlci0+cmVzdW1lQW5pbWF0aW9ucygyKTsKKyAgICBFWFBFQ1RfRVEoQ0NBY3RpdmVBbmltYXRp
b246OlJ1bm5pbmcsIGNvbnRyb2xsZXItPmdldEFjdGl2ZUFuaW1hdGlvbigwLCBDQ0FjdGl2ZUFu
aW1hdGlvbjo6T3BhY2l0eSktPnJ1blN0YXRlKCkpOworCisgICAgLy8gVGhlIHBhdXNlIHJ1biBz
dGF0ZSBjaGFuZ2Ugc2hvdWxkIG1ha2UgaXQgdG8gdGhlIGltcGwgdGhyZWFkIGNvbnRyb2xsZXIu
CisgICAgY29udHJvbGxlci0+cHVzaEFuaW1hdGlvblVwZGF0ZXNUbyhjb250cm9sbGVySW1wbC5n
ZXQoKSk7CisgICAgRVhQRUNUX0VRKENDQWN0aXZlQW5pbWF0aW9uOjpSdW5uaW5nLCBjb250cm9s
bGVySW1wbC0+Z2V0QWN0aXZlQW5pbWF0aW9uKDAsIENDQWN0aXZlQW5pbWF0aW9uOjpPcGFjaXR5
KS0+cnVuU3RhdGUoKSk7Cit9CisKKwogVEVTVChDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlclRl
c3QsIGRvTm90U3luY0ZpbmlzaGVkQW5pbWF0aW9uKQogewogICAgIEZha2VMYXllckFuaW1hdGlv
bkNvbnRyb2xsZXJDbGllbnQgZHVtbXlJbXBsOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>