<?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>89965</bug_id>
          
          <creation_ts>2012-06-26 03:00:24 -0700</creation_ts>
          <short_desc>[Platform] Implement functions for localized time format information</short_desc>
          <delta_ts>2012-06-28 00:30:26 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>89967</dependson>
          <blocked>88970</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>657452</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-26 03:00:24 -0700</bug_when>
    <thetext>For implementing &quot;time&quot; input type, we would like to have following functions:
* localizedTimeFormatText() returns time format with second, e.g. &quot;h:mm:ss a&quot;
* localizedShortTimeFormatText() returns time format without second, e.g. &quot;h:mm a&quot;
* periosLabels() returns localized strings of AM/PM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658509</commentid>
    <comment_count>1</comment_count>
      <attachid>149716</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 03:30:28 -0700</bug_when>
    <thetext>Created attachment 149716
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658510</commentid>
    <comment_count>2</comment_count>
      <attachid>149716</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 03:31:44 -0700</bug_when>
    <thetext>Comment on attachment 149716
Patch 1

Could you review this patch?
Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659132</commentid>
    <comment_count>3</comment_count>
      <attachid>149716</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-27 20:28:02 -0700</bug_when>
    <thetext>Comment on attachment 149716
Patch 1

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

&gt; Source/WebCore/ChangeLog:10
&gt; +          1. localizedTimeFormatText()
&gt; +          2. localizedShortTimeFormatText()

Why do you need both of non-short and short formats?

&gt; Source/WebCore/ChangeLog:11
&gt; +          2. periodLabels()

The name periodLabels() is too short and not concrete.
How about timeAMPMabels(), or separate it into timeAMLabel() and timePMLabel()?

&gt; Source/WebKit/chromium/ChangeLog:32
&gt; +2012-06-27  Yoshifumi Inoue  &lt;yosin@chromium.org&gt;
&gt; +
&gt; +        Need a short description and bug URL (OOPS!)
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * WebKit.gypi:
&gt; +

Please remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659211</commentid>
    <comment_count>4</comment_count>
      <attachid>149872</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 22:35:32 -0700</bug_when>
    <thetext>Created attachment 149872
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659217</commentid>
    <comment_count>5</comment_count>
      <attachid>149872</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 22:40:59 -0700</bug_when>
    <thetext>Comment on attachment 149872
Patch 2

Could you review this patch?
Thanks in advance.

= Changes since last review =
* Replace INPUT_TIME_FIELDS =&gt; INPUT_TYPE_TIME_MULTIPLE_FIELDS
* Replace periodLabels =&gt; timeAMPMLabels
** Thanks for suggestion. This is more explicit.
** For consistency of month names and weekday names, returning vector seems to be better.
* Having TimeFormat and ShortTimeFormat for displaying only two fields hour and minute when step &gt;= 60. There is no way to remove second field from &quot;h:m:s&quot; pattern string. We don&apos;t know whether &quot;:&quot; after &quot;m&quot; belongs minute or second field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659223</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-27 22:52:17 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; * Having TimeFormat and ShortTimeFormat for displaying only two fields hour and minute when step &gt;= 60. There is no way to remove second field from &quot;h:m:s&quot; pattern string. We don&apos;t know whether &quot;:&quot; after &quot;m&quot; belongs minute or second field.

Please write this in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659224</commentid>
    <comment_count>7</comment_count>
      <attachid>149872</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 22:56:29 -0700</bug_when>
    <thetext>Comment on attachment 149872
Patch 2

Attachment 149872 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13099932</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659226</commentid>
    <comment_count>8</comment_count>
      <attachid>149872</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-27 22:56:57 -0700</bug_when>
    <thetext>Comment on attachment 149872
Patch 2

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

&gt; Source/WebCore/platform/text/LocaleICU.cpp:529
&gt; +    m_mediumTimeFormat = openDateFormat(UDAT_MEDIUM, UDAT_NONE);
&gt; +    m_localizedTimeFormatText = getDateFormatPattern(m_mediumTimeFormat);
&gt; +
&gt; +    m_shortTimeFormat = openDateFormat(UDAT_SHORT, UDAT_NONE);
&gt; +    m_localizedShortTimeFormatText = getDateFormatPattern(m_shortTimeFormat);

WebCore::localized*TimeFormatText() ask LDML format strings, but they are ICU format strings.  Probably you have an assumption that ICU returns LDML-compatible formt strings. We need a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659227</commentid>
    <comment_count>9</comment_count>
      <attachid>149876</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 22:58:54 -0700</bug_when>
    <thetext>Created attachment 149876
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659229</commentid>
    <comment_count>10</comment_count>
      <attachid>149877</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 23:00:37 -0700</bug_when>
    <thetext>Created attachment 149877
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659230</commentid>
    <comment_count>11</comment_count>
      <attachid>149877</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 23:03:02 -0700</bug_when>
    <thetext>Comment on attachment 149877
Patch 4

Could you review this patch?
Thanks in advance.

= Changes since last review =
* Add a reason why we have both localizedDateFormat and localizedShortDateFormat
* Add LocalizedDateICUTest.cpp (it was in Patch 1, but not in Patch 2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659244</commentid>
    <comment_count>12</comment_count>
      <attachid>149877</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-27 23:21:44 -0700</bug_when>
    <thetext>Comment on attachment 149877
Patch 4

r- because of Comment #8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659253</commentid>
    <comment_count>13</comment_count>
      <attachid>149883</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 23:37:04 -0700</bug_when>
    <thetext>Created attachment 149883
Patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659256</commentid>
    <comment_count>14</comment_count>
      <attachid>149883</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 23:38:24 -0700</bug_when>
    <thetext>Comment on attachment 149883
Patch 5

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Put comment ICU/LDML pattern compatibility as pointed by comment#8 into LocaleICU.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659262</commentid>
    <comment_count>15</comment_count>
      <attachid>149883</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-27 23:45:10 -0700</bug_when>
    <thetext>Comment on attachment 149883
Patch 5

missing LocalizedDateICUTest.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659264</commentid>
    <comment_count>16</comment_count>
      <attachid>149886</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 23:46:44 -0700</bug_when>
    <thetext>Created attachment 149886
Patch 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659265</commentid>
    <comment_count>17</comment_count>
      <attachid>149886</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-27 23:47:43 -0700</bug_when>
    <thetext>Comment on attachment 149886
Patch 6

Could you review this patch?
Thanks in advance and sorry for redundant iteration.

= Changes since the last review =
* Include LocalizedDateICUTest.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659292</commentid>
    <comment_count>18</comment_count>
      <attachid>149886</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-28 00:27:52 -0700</bug_when>
    <thetext>Comment on attachment 149886
Patch 6

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659295</commentid>
    <comment_count>19</comment_count>
      <attachid>149886</attachid>
    <who name="">yosin</who>
    <bug_when>2012-06-28 00:30:19 -0700</bug_when>
    <thetext>Comment on attachment 149886
Patch 6

Clearing flags on attachment: 149886

Committed r121415: &lt;http://trac.webkit.org/changeset/121415&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659296</commentid>
    <comment_count>20</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-28 00:30:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149716</attachid>
            <date>2012-06-27 03:30:28 -0700</date>
            <delta_ts>2012-06-27 22:35:27 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-89965-20120627193027.patch</filename>
            <type>text/plain</type>
            <size>15167</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKb2xkIG1vZGUgMTAwNzU1Cm5ldyBt
b2RlIDEwMDY0NAppbmRleCAzNjgxM2JlMTY1MjJmM2IwNzk0YjY1MzgxMDM0MWUzNmY4NWRkNGEz
Li45ODcxNjE4MmEyYzk3NzU3ZjIwMGExZWM4ZGUwNWE1MWQ1NzQ2MDg1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMyBAQAorMjAxMi0wNi0yNyAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtQbGF0Zm9ybV1bRGF0ZVRpbWVdW0Zvcm1zXSBJbXBsZW1lbnQgZnVuY3Rp
b25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5mb3JtYXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTY1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRo
cmVlIGZ1bmN0aW9ucyBmb3IgdGltZSBmb3JtYXQ6CisgICAgICAgICAgMS4gbG9jYWxpemVkVGlt
ZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIGxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQo
KQorICAgICAgICAgIDIuIHBlcmlvZExhYmVscygpCisgICAgICAgIGZvciBpbnB1dCB0eXBlICJ0
aW1lIiBpZiBFTkFCTEUoVElNRV9JTlBVVF9GSUVMRFMpIGlzIHRydWUuCisKKyAgICAgICAgVGVz
dDogV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcAorCisgICAg
ICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9j
YWxlSUNVOjpMb2NhbGVJQ1UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRmFsbGJhY2tQZXJp
b2RMYWJlbHMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZUlDVTo6aW5pdGlhbGl6
ZURhdGVUaW1lRm9ybWF0KTogIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjps
b2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCk6ICBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxvY2Fs
ZUlDVTo6bG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCk6ICBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxvY2FsZUlDVTo6cGVyaW9kTGFiZWxzKTogIEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvTG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBs
YXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9j
YWxpemVkRGF0ZUlDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRUaW1lRm9ybWF0
VGV4dCk6ICBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZFNob3J0VGltZUZvcm1h
dFRleHQpOiAgQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpwZXJpb2RMYWJlbHMpOiAgQWRkZWQu
CisKIDIwMTItMDYtMjcgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIExhYmVsYWJsZUVsZW1lbnQuY3BwIHNob3VsZCBpbmNsdWRlIG5vdCBFbGVtZW50UmFy
ZURhdGEuaCBidXQgTm9kZVJhcmVEYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
MzY1ZDBlYjNjY2E1MWYyZWZiYzUyNWEyMTdjMWEzNjBlYjljNTllOC4uZmJlNjBkYWY1ZWE5NjUz
NWE2YzZlYmJmODQ2MWIxMzc1OGY2NjYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNSBAQAorMjAxMi0wNi0yNyAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtQbGF0Zm9ybV1bRGF0ZVRpbWVdW0Zvcm1zXSBJbXBsZW1lbnQg
ZnVuY3Rpb25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5mb3JtYXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTY1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIG5l
dyB0ZXN0IExvY2FsaXplZERhdGVJQ1VUZXN0IGlmIEVOQUJMRShJTlBVVF9USU1FX0ZJRUxEUykK
KyAgICAgICAgaXMgdHJ1ZS4KKworICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAgICAqIHRl
c3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChMb2NhbGl6ZWRE
YXRlSUNVVGVzdCk6CisgICAgICAgIChMYWJlbHMpOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlD
VVRlc3Q6OkxhYmVsczo6TGFiZWxzKToKKyAgICAgICAgKExvY2FsaXplZERhdGVJQ1VUZXN0OjpM
YWJlbHM6Om9wZXJhdG9yPT0pOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OkxhYmVs
czo6dG9TdHJpbmcpOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OmxhYmVscyk6Cisg
ICAgICAgIChMb2NhbGl6ZWREYXRlSUNVVGVzdDo6bG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpOgor
ICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OmxvY2FsaXplZFNob3J0RGF0ZUZvcm1hdFRl
eHQpOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OnBlcmlvZExhYmVscyk6CisgICAg
ICAgIChvcGVyYXRvcjw8KToKKyAgICAgICAgKFRFU1RfRik6CisKKzIwMTItMDYtMjcgIFlvc2hp
ZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBOZWVkIGEgc2hvcnQg
ZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cGk6CisKIDIwMTItMDYtMjYgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQuICBSb2xsZWQgREVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTG9jYWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcAppbmRleCBmNmI0ZWY4MGY5YmE1OWQ5MDFmZjY3NzRlY2U1MzNmYzIxN2Y2ZjMxLi4y
MWI0YTliOTU3MmU0MzIzODZjMTZhY2Q3ZDA5YmYzNTIyOTQ5ZWFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC01MSw2ICs1MSwxMSBAQCBMb2NhbGVJ
Q1U6OkxvY2FsZUlDVShjb25zdCBjaGFyKiBsb2NhbGUpCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJ
Q0tFUikKICAgICAsIG1fZmlyc3REYXlPZldlZWsoMCkKICNlbmRpZgorI2lmIEVOQUJMRShUSU1F
X0lOUFVUX0ZJRUxEUykKKyAgICAsIG1fbWVkaXVtVGltZUZvcm1hdCgwKQorICAgICwgbV9zaG9y
dFRpbWVGb3JtYXQoMCkKKyAgICAsIG1fZGlkQ3JlYXRlVGltZUZvcm1hdChmYWxzZSkKKyNlbmRp
ZgogewogfQogCkBAIC0zMTcsNyArMzIyLDcgQEAgU3RyaW5nIExvY2FsZUlDVTo6Zm9ybWF0TG9j
YWxpemVkRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMpCiAgICAgcmV0
dXJuIFN0cmluZzo6YWRvcHQoYnVmZmVyKTsKIH0KIAotI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNL
RVIpCisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikgfHwgRU5BQkxFKFRJTUVfSU5QVVRfRklF
TERTKQogc3RhdGljIFN0cmluZyBnZXREYXRlRm9ybWF0UGF0dGVybihjb25zdCBVRGF0ZUZvcm1h
dCogZGF0ZUZvcm1hdCkKIHsKICAgICBpZiAoIWRhdGVGb3JtYXQpCkBAIC0zMzQsNyArMzM5LDkg
QEAgc3RhdGljIFN0cmluZyBnZXREYXRlRm9ybWF0UGF0dGVybihjb25zdCBVRGF0ZUZvcm1hdCog
ZGF0ZUZvcm1hdCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAgICAgcmV0dXJuIFN0
cmluZzo6YWRvcHQoYnVmZmVyKTsKIH0KKyNlbmRpZgogCisjaWYgRU5BQkxFKENBTEVOREFSX1BJ
Q0tFUikKIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0lDVVllYXJTeW1ib2woVUNoYXIgbGV0dGVyKQog
ewogICAgIHJldHVybiBsZXR0ZXIgPT0gJ3knIHx8IGxldHRlciA9PSAnWSc7CkBAIC00OTMsNSAr
NTAwLDU1IEBAIHVuc2lnbmVkIExvY2FsZUlDVTo6Zmlyc3REYXlPZldlZWsoKQogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoVElNRV9JTlBVVF9GSUVMRFMpCisKK3N0YXRpYyBQYXNzT3duUHRyPFZl
Y3RvcjxTdHJpbmc+ID4gY3JlYXRlRmFsbGJhY2tQZXJpb2RMYWJlbHMoKQoreworICAgIE93blB0
cjxWZWN0b3I8U3RyaW5nPiA+IGxhYmVscyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8U3RyaW5nPigp
KTsKKyAgICBsYWJlbHMtPnJlc2VydmVDYXBhY2l0eSgyKTsKKyAgICBsYWJlbHMtPmFwcGVuZCgi
QU0iKTsKKyAgICBsYWJlbHMtPmFwcGVuZCgiUE0iKTsKKyAgICByZXR1cm4gbGFiZWxzLnJlbGVh
c2UoKTsKK30KKwordm9pZCBMb2NhbGVJQ1U6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgpCit7
CisgICAgaWYgKG1fZGlkQ3JlYXRlVGltZUZvcm1hdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9tZWRpdW1UaW1lRm9ybWF0ID0gb3BlbkRhdGVGb3JtYXQoVURBVF9NRURJVU0sIFVEQVRfTk9O
RSk7CisgICAgbV9sb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCA9IGdldERhdGVGb3JtYXRQYXR0ZXJu
KG1fbWVkaXVtVGltZUZvcm1hdCk7CisKKyAgICBtX3Nob3J0VGltZUZvcm1hdCA9IG9wZW5EYXRl
Rm9ybWF0KFVEQVRfU0hPUlQsIFVEQVRfTk9ORSk7CisgICAgbV9sb2NhbGl6ZWRTaG9ydFRpbWVG
b3JtYXRUZXh0ID0gZ2V0RGF0ZUZvcm1hdFBhdHRlcm4obV9zaG9ydFRpbWVGb3JtYXQpOworCisg
ICAgbV9wZXJpb2RMYWJlbHMgPSBjcmVhdGVMYWJlbFZlY3RvcihtX21lZGl1bVRpbWVGb3JtYXQs
IFVEQVRfQU1fUE1TLCBVQ0FMX0FNLCAyKTsKKyAgICBpZiAoIW1fcGVyaW9kTGFiZWxzKQorICAg
ICAgICBtX3BlcmlvZExhYmVscyA9IGNyZWF0ZUZhbGxiYWNrUGVyaW9kTGFiZWxzKCk7CisKKyAg
ICBtX2RpZENyZWF0ZVRpbWVGb3JtYXQgPSB0cnVlOworfQorCitTdHJpbmcgTG9jYWxlSUNVOjps
b2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgaW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0
KCk7CisgICAgcmV0dXJuIG1fbG9jYWxpemVkVGltZUZvcm1hdFRleHQ7Cit9CisKKworU3RyaW5n
IExvY2FsZUlDVTo6bG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgaW5pdGlh
bGl6ZURhdGVUaW1lRm9ybWF0KCk7CisgICAgcmV0dXJuIG1fbG9jYWxpemVkU2hvcnRUaW1lRm9y
bWF0VGV4dDsKK30KKworY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZUlDVTo6cGVyaW9kTGFi
ZWxzKCkKK3sKKyAgICBpbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQoKTsKKyAgICByZXR1cm4gKm1f
cGVyaW9kTGFiZWxzOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaAppbmRleCA4YzliMzllNzNlYzFk
YThhMTlkOTIyZmMxYzdhZDk4MDgzOWJlOTIwLi42MzUyMWYzZDExNzkxMzhhYTAzM2IzOGM3ZjY1
ZjY1MmYxZjM1NzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xv
Y2FsZUlDVS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgK
QEAgLTY0LDYgKzY0LDEyIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBmaXJzdERheU9mV2Vlaygp
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVElNRV9JTlBVVF9GSUVMRFMpCisgICAgU3RyaW5nIGxv
Y2FsaXplZFRpbWVGb3JtYXRUZXh0KCk7CisgICAgU3RyaW5nIGxvY2FsaXplZFNob3J0VGltZUZv
cm1hdFRleHQoKTsKKyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGVyaW9kTGFiZWxzKCk7Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBzdGF0aWMgUGFzc093blB0cjxMb2NhbGVJQ1U+IGNyZWF0
ZUZvckN1cnJlbnRMb2NhbGUoKTsKICAgICBleHBsaWNpdCBMb2NhbGVJQ1UoY29uc3QgY2hhciop
OwpAQCAtNzcsMTIgKzgzLDE2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpbml0aWFsaXplU2hvcnRE
YXRlRm9ybWF0KCk7CiAgICAgVURhdGVGb3JtYXQqIG9wZW5EYXRlRm9ybWF0KFVEYXRlRm9ybWF0
U3R5bGUgdGltZVN0eWxlLCBVRGF0ZUZvcm1hdFN0eWxlIGRhdGVTdHlsZSkgY29uc3Q7CiAKLSNp
ZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQorI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpIHx8
IEVOQUJMRShUSU1FX0lOUFVUX0ZJRUxEUykKICAgICB2b2lkIGluaXRpYWxpemVMb2NhbGl6ZWRE
YXRlRm9ybWF0VGV4dCgpOwogICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBjcmVhdGVM
YWJlbFZlY3Rvcihjb25zdCBVRGF0ZUZvcm1hdCosIFVEYXRlRm9ybWF0U3ltYm9sVHlwZSwgaW50
MzJfdCBzdGFydEluZGV4LCBpbnQzMl90IHNpemUpOwogICAgIHZvaWQgaW5pdGlhbGl6ZUNhbGVu
ZGFyKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShUSU1FX0lOUFVUX0ZJRUxEUykKKyAgICB2b2lk
IGluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgpOworI2VuZGlmCisKICAgICBDU3RyaW5nIG1fbG9j
YWxlOwogICAgIFVOdW1iZXJGb3JtYXQqIG1fbnVtYmVyRm9ybWF0OwogICAgIFVEYXRlRm9ybWF0
KiBtX3Nob3J0RGF0ZUZvcm1hdDsKQEAgLTEwNiw2ICsxMTYsMTUgQEAgcHJpdmF0ZToKICAgICBP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiBtX3dlZWtEYXlTaG9ydExhYmVsczsKICAgICB1bnNpZ25l
ZCBtX2ZpcnN0RGF5T2ZXZWVrOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoVElNRV9JTlBVVF9GSUVM
RFMpCisgICAgVURhdGVGb3JtYXQqIG1fbWVkaXVtVGltZUZvcm1hdDsKKyAgICBVRGF0ZUZvcm1h
dCogbV9zaG9ydFRpbWVGb3JtYXQ7CisgICAgU3RyaW5nIG1fbG9jYWxpemVkVGltZUZvcm1hdFRl
eHQ7CisgICAgU3RyaW5nIG1fbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dDsKKyAgICBPd25Q
dHI8VmVjdG9yPFN0cmluZz4gPiBtX3BlcmlvZExhYmVsczsKKyAgICBib29sIG1fZGlkQ3JlYXRl
VGltZUZvcm1hdDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsaXplZERhdGUuaAppbmRleCA0ZGI1ZWFjOGUzNWI3NTRiOWQ4MzUwMjdlNDIwNzU4
YTA0ZjhmOWQ1Li5hZjY1ZTVjZTQ1MDk3MDYxNDQ4YzMyM2NkZTVkNzliZTFmM2ZkNGQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGUuaApAQCAtNjAsNiAr
NjAsMjIgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHdlZWtEYXlTaG9ydExhYmVscygpOwogCiAv
LyBUaGUgZmlyc3QgZGF5IG9mIGEgd2Vlay4gMCBpcyBTdW5kYXksIGFuZCA2IGlzIFNhdHVyZGF5
LgogdW5zaWduZWQgZmlyc3REYXlPZldlZWsoKTsKKworI2VuZGlmCisKKyNpZiBFTkFCTEUoVElN
RV9JTlBVVF9GSUVMRFMpCisvLyBSZXR1cm5zIHRpbWUgZm9ybWF0IGluIFVuaWNvZGUgVFIzNSBM
RE1MWzFdIGNvbnRhaW5pbmcgaG91ciwgbWludXRlLCBhbmQKKy8vIHNlY29uZCB3aXRoIG9wdGlv
bmFsIHBlcmlvZChBTS9QTSksIGUuZy4gImg6bW06c3MgYSIKKy8vIFsxXSBMRE1MIGh0dHA6Ly91
bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvdHIzNS02Lmh0bWwjRGF0ZV9Gb3JtYXRfUGF0dGVybnMK
K1N0cmluZyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpOworCisvLyBSZXR1cm5zIHRpbWUgZm9y
bWF0IGluIFVuaWNvZGUgVFIzNSBMRE1MIGNvbnRhaW5pbmcgaG91ciwgYW5kIG1pbnV0ZQorLy8g
d2l0aCBvcHRpb25hbCBwZXJpb2QoQU0vUE0pLCBlLmcuICJoOm1tIGEiCisvLyBOb3RlOiBTb21l
IHBsYXRmb3JtcyByZXR1cm4gc2FtZSB2YWx1ZSBhcyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgp
LgorU3RyaW5nIGxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQoKTsKKworLy8gUmV0dXJucyBs
b2NhbGl6ZWQgcGVyaW9kIGZpZWxkKEFNL1BNKSBzdHJpbmdzLgorY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBlcmlvZExhYmVscygpOwogI2VuZGlmCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZUlDVS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVJQ1UuY3BwCmlu
ZGV4IDEwY2I2ZjEzMmNlMzkzZWZlOWJkYTRmMGQ3NzBjMGM4ZjllY2I3ZjguLmNkNWE1OTIyZWQw
MzZmZjZlZTI4MWZjOWNiMTk3Njc5MzA1NTA1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZUlDVS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcApAQCAtOTIsNCArOTIsMjEgQEAgdW5z
aWduZWQgZmlyc3REYXlPZldlZWsoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVElNRV9JTlBV
VF9GSUVMRFMpCitTdHJpbmcgbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKQoreworICAgIHJldHVy
biBMb2NhbGVJQ1U6OmN1cnJlbnRMb2NhbGUoKS0+bG9jYWxpemVkVGltZUZvcm1hdFRleHQoKTsK
K30KKworU3RyaW5nIGxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQoKQoreworICAgIHJldHVy
biBMb2NhbGVJQ1U6OmN1cnJlbnRMb2NhbGUoKS0+bG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4
dCgpOworfQorCitjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGVyaW9kTGFiZWxzKCkKK3sKKyAgICBy
ZXR1cm4gTG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPnBlcmlvZExhYmVscygpOworfQorI2Vu
ZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4IGM0MTBlNmY0Zjc1ODRm
ZDIwZTg4ODNhMDBmMWVjMDYwNzhlMjcyNjcuLmE4ZGQzYTYyNjUzNTA1MzcwMTUwYzY1ZWU4ZGZj
ZTA5MTdlNzg0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpAQCAtMTIzLDYgKzEy
Myw3IEBACiAgICAgICAgICAgICAndGVzdHMvTGV2ZWxEQlRlc3QuY3BwJywKICAgICAgICAgICAg
ICd0ZXN0cy9MaW5rSGlnaGxpZ2h0VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0xpc3Rl
bmVyTGVha1Rlc3QuY3BwJywKKyAgICAgICAgICAgICd0ZXN0cy9Mb2NhbGl6ZWREYXRlSUNVVGVz
dC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0xvY2FsaXplZE51bWJlcklDVVRlc3QuY3BwJywK
ICAgICAgICAgICAgICd0ZXN0cy9Nb2NrQ0NRdWFkQ3VsbGVyLmgnLAogICAgICAgICAgICAgJ3Rl
c3RzL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlVGVzdC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGl6ZWREYXRlSUNVVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYjA3YTBjOTZjZjVmOWUxODA1MGZiM2Q5MzJiYmFjZDM0NWZiMWJl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGl6
ZWREYXRlSUNVVGVzdC5jcHAKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpZiBFTkFCTEUoVElNRV9JTlBVVF9GSUVMRFMpCisKKyNpbmNsdWRlICJMb2NhbGVJQ1UuaCIK
KyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworY2xhc3MgTG9jYWxpemVkRGF0ZUlDVVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpU
ZXN0IHsKK3B1YmxpYzoKKyAgICAvLyBMYWJlbHMgY2xhc3MgaXMgdXNlZCBmb3IgcHJpbnRpbmcg
cmVzdWx0cyBpbiBFWFBFQ1RfRVEgbWFjcm8uCisgICAgY2xhc3MgTGFiZWxzIHsKKyAgICBwdWJs
aWM6CisgICAgICAgIExhYmVscyhjb25zdCBWZWN0b3I8U3RyaW5nPiBsYWJlbHMpCisgICAgICAg
ICAgICA6IG1fbGFiZWxzKGxhYmVscykKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCB1c2UgVmVjdG9yPFQ+OjpvcGVyYXRvcj09KCkgaWYgaXQgd29y
a3MuCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMYWJlbHMmIG90aGVyKSBjb25zdAor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAobV9sYWJlbHMuc2l6ZSgpICE9IG90aGVyLm1fbGFi
ZWxzLnNpemUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBtX2xhYmVscy5zaXplKCk7ICsraW5kZXgp
CisgICAgICAgICAgICAgICAgaWYgKG1fbGFiZWxzW2luZGV4XSAhPSBvdGhlci5tX2xhYmVsc1tp
bmRleF0pCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QK
KyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoImxhYmVscygiKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aW5kZXggPSAwOyBpbmRleCA8IG1fbGFiZWxzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICAg
ICAgICAgIGlmIChpbmRleCkKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwg
Iik7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyInKTsKKyAgICAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZChtX2xhYmVsc1tpbmRleF0pOworICAgICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCciJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnKScpOworICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAg
fQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gbV9sYWJlbHM7CisgICAg
fTsKKworcHJvdGVjdGVkOgorICAgIExhYmVscyBsYWJlbHMoY29uc3QgU3RyaW5nJiBlbGVtZW50
MSwgY29uc3QgU3RyaW5nJiBlbGVtZW50MikKKyAgICB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+
IGxhYmVscyA9IFZlY3RvcjxTdHJpbmc+KCk7CisgICAgICAgIGxhYmVscy5hcHBlbmQoZWxlbWVu
dDEpOworICAgICAgICBsYWJlbHMuYXBwZW5kKGVsZW1lbnQyKTsKKyAgICAgICAgcmV0dXJuIExh
YmVscyhsYWJlbHMpOworICAgIH0KKworICAgIFN0cmluZyBsb2NhbGl6ZWREYXRlRm9ybWF0VGV4
dChjb25zdCBjaGFyKiBsb2NhbGVTdHJpbmcpCisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxl
SUNVPiBsb2NhbGUgPSBMb2NhbGVJQ1U6OmNyZWF0ZShsb2NhbGVTdHJpbmcpOworICAgICAgICBy
ZXR1cm4gbG9jYWxlLT5sb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpOworICAgIH0KKworICAgIFN0
cmluZyBsb2NhbGl6ZWRTaG9ydERhdGVGb3JtYXRUZXh0KGNvbnN0IGNoYXIqIGxvY2FsZVN0cmlu
ZykKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVJQ1U+IGxvY2FsZSA9IExvY2FsZUlDVTo6
Y3JlYXRlKGxvY2FsZVN0cmluZyk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPmxvY2FsaXplZFNo
b3J0VGltZUZvcm1hdFRleHQoKTsKKyAgICB9CisKKyAgICBMYWJlbHMgcGVyaW9kTGFiZWxzKGNv
bnN0IGNoYXIqIGxvY2FsZVN0cmluZykKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVJQ1U+
IGxvY2FsZSA9IExvY2FsZUlDVTo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7CisgICAgICAgIHJldHVy
biBMYWJlbHMobG9jYWxlLT5wZXJpb2RMYWJlbHMoKSk7CisgICAgfQorfTsKKworc3RkOjpvc3Ry
ZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IExvY2FsaXplZERhdGVJQ1VU
ZXN0OjpMYWJlbHMmIGxhYmVscykKK3sKKyAgICByZXR1cm4gb3MgPDwgbGFiZWxzLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKTsKK30KKworVEVTVF9GKExvY2FsaXplZERhdGVJQ1VUZXN0LCBsb2Nh
bGl6ZWREYXRlRm9ybWF0VGV4dCkKK3sKKyAgICAvLyBOb3RlOiBFWFBFQ1RfRVEoU3RyaW5nLCBT
dHJpbmcpIGRvZXNuJ3QgcHJpbnQgcmVzdWx0IGFzIHN0cmluZy4KKyAgICBFWFBFQ1RfU1RSRVEo
Img6bW06c3MgYSIsIGxvY2FsaXplZERhdGVGb3JtYXRUZXh0KCJlbl9VUyIpLnV0ZjgoKS5kYXRh
KCkpOworICAgIEVYUEVDVF9TVFJFUSgiSEg6bW06c3MiLCBsb2NhbGl6ZWREYXRlRm9ybWF0VGV4
dCgiZnIiKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkg6bW06c3MiLCBsb2Nh
bGl6ZWREYXRlRm9ybWF0VGV4dCgiamEiKS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExv
Y2FsaXplZERhdGVJQ1VUZXN0LCBsb2NhbGl6ZWRTaG9ydERhdGVGb3JtYXRUZXh0KQoreworICAg
IEVYUEVDVF9TVFJFUSgiaDptbSBhIiwgbG9jYWxpemVkU2hvcnREYXRlRm9ybWF0VGV4dCgiZW5f
VVMiKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkhIOm1tIiwgbG9jYWxpemVk
U2hvcnREYXRlRm9ybWF0VGV4dCgiZnIiKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIkg6bW0iLCBsb2NhbGl6ZWRTaG9ydERhdGVGb3JtYXRUZXh0KCJqYSIpLnV0ZjgoKS5kYXRh
KCkpOworfQorCitURVNUX0YoTG9jYWxpemVkRGF0ZUlDVVRlc3QsIHBlcmlvZExhYmVscykKK3sK
KyAgICBFWFBFQ1RfRVEobGFiZWxzKCJBTSIsICJQTSIpLCBwZXJpb2RMYWJlbHMoImVuX1VTIikp
OworICAgIEVYUEVDVF9FUShsYWJlbHMoIkFNIiwgIlBNIiksIHBlcmlvZExhYmVscygiZnIiKSk7
CisKKyAgICBVQ2hhciBqYUFNWzNdID0geyAweDUzNDgsIDB4NTI0ZCwgMCB9OworICAgIFVDaGFy
IGphUE1bM10gPSB7IDB4NTM0OCwgMHg1RjhDLCAwIH07CisgICAgRVhQRUNUX0VRKGxhYmVscyhT
dHJpbmcoamFBTSksIFN0cmluZyhqYVBNKSksIHBlcmlvZExhYmVscygiamEiKSk7Cit9CisKKyNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149872</attachid>
            <date>2012-06-27 22:35:32 -0700</date>
            <delta_ts>2012-06-27 22:58:49 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-89965-20120628143532.patch</filename>
            <type>text/plain</type>
            <size>9766</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE4ZDRkNGQxMjczNWZj
NzQ0YzZjZjA5MDY0OWYxYjI5Y2RiMDg1My4uYjI2NjFkNzZkMjg5ZWU2ZDg0OTEwZmY1YjdiNzhm
YWI1MmMwMjZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA2LTI4ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1BsYXRmb3JtXSBJ
bXBsZW1lbnQgZnVuY3Rpb25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5mb3JtYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTY1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbnRyb2R1Y2VzIHRocmVlIGZ1bmN0aW9ucyBmb3IgdGltZSBmb3JtYXQ6CisgICAgICAgICAg
MS4gbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIGxvY2FsaXplZFNob3J0
VGltZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIHRpbWVBTVBNTGFiZWxzKCkKKyAgICAgICAg
Zm9yIGlucHV0IHR5cGUgInRpbWUiIGlmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKSBpcyB0cnVlLgorCisgICAgICAgIFRlc3Q6IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9M
b2NhbGl6ZWREYXRlSUNVVGVzdC5jcHAKKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZUlDVTo6TG9jYWxlSUNVKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUZhbGxiYWNrQU1QTUxhYmVscyk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6TG9jYWxlSUNVOjppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQpOiAgQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMb2NhbGVJQ1U6OmxvY2FsaXplZFRpbWVGb3JtYXRUZXh0KTogIEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjpsb2NhbGl6ZWRTaG9ydFRpbWVGb3Jt
YXRUZXh0KTogIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjp0aW1lQU1QTUxh
YmVscyk6ICBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oOgorICAg
ICAgICAoTG9jYWxlSUNVKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVJQ1UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bG9jYWxpemVkVGltZUZvcm1hdFRleHQpOiAgQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpsb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KTogIEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6dGltZUFNUE1MYWJlbHMpOiAgQWRkZWQuCisKIDIwMTItMDYtMjcgIFlvc2hpZnVt
aSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbUGxhdGZvcm1dIEltcGxl
bWVudCBsb2NhbGl6ZWREZWNpbWFsU2VwYXJhdG9yIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDVmMTk4MWI2M2IwNmZkNDM5NGQ4MTJlMTg5NWZjZTRkNGRjZWNmYTguLmVk
NjU4NWVlYjUzZTE0ZThlZjQzMmE5NDdhZTdlMTlhYjFhNWNiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDYtMjcgIFlvc2hpZnVtaSBJbm91ZSAg
PHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbUGxhdGZvcm1dIEltcGxlbWVudCBmdW5j
dGlvbnMgZm9yIGxvY2FsaXplZCB0aW1lIGZvcm1hdCBpbmZvcm1hdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk5NjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgbmV3IHRl
c3QgTG9jYWxpemVkRGF0ZUlDVVRlc3QgaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBM
RV9GSUVMRFMpCisgICAgICAgIGlzIHRydWUuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAg
ICAgICAgKiB0ZXN0cy9Mb2NhbGl6ZWREYXRlSUNVVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAo
TG9jYWxpemVkRGF0ZUlDVVRlc3QpOgorICAgICAgICAoTGFiZWxzKToKKyAgICAgICAgKExvY2Fs
aXplZERhdGVJQ1VUZXN0OjpMYWJlbHM6OkxhYmVscyk6CisgICAgICAgIChMb2NhbGl6ZWREYXRl
SUNVVGVzdDo6TGFiZWxzOjpvcGVyYXRvcj09KToKKyAgICAgICAgKExvY2FsaXplZERhdGVJQ1VU
ZXN0OjpMYWJlbHM6OnRvU3RyaW5nKToKKyAgICAgICAgKExvY2FsaXplZERhdGVJQ1VUZXN0Ojps
YWJlbHMpOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OmxvY2FsaXplZERhdGVGb3Jt
YXRUZXh0KToKKyAgICAgICAgKExvY2FsaXplZERhdGVJQ1VUZXN0Ojpsb2NhbGl6ZWRTaG9ydERh
dGVGb3JtYXRUZXh0KToKKyAgICAgICAgKExvY2FsaXplZERhdGVJQ1VUZXN0Ojp0aW1lQU1QTUxh
YmVscyk6CisgICAgICAgIChvcGVyYXRvcjw8KToKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTIt
MDYtMjcgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBVc2UgV0VCS0lUX0lNUExFTUVOVEFUSU9OID09IDEgZm9yIHdlYmtpdF91bml0
X3Rlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlD
VS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKaW5kZXgg
NzM1ZjA5OWQxOGNkY2JmMzc0ODg0NDkzYTRjMWI2NWExOTJjZThlYi4uMjYzODU4ZjZiZDcyNTM3
MzE4ODAwZjBjN2E4NzEwMWM4ZjhjY2UyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxlSUNVLmNwcApAQCAtNTEsNiArNTEsMTEgQEAgTG9jYWxlSUNVOjpMb2NhbGVJQ1Uo
Y29uc3QgY2hhciogbG9jYWxlKQogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAgICAgLCBt
X2ZpcnN0RGF5T2ZXZWVrKDApCiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01V
TFRJUExFX0ZJRUxEUykKKyAgICAsIG1fbWVkaXVtVGltZUZvcm1hdCgwKQorICAgICwgbV9zaG9y
dFRpbWVGb3JtYXQoMCkKKyAgICAsIG1fZGlkQ3JlYXRlVGltZUZvcm1hdChmYWxzZSkKKyNlbmRp
ZgogewogfQogCkBAIC0zMTcsNyArMzIyLDcgQEAgU3RyaW5nIExvY2FsZUlDVTo6Zm9ybWF0TG9j
YWxpemVkRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMpCiAgICAgcmV0
dXJuIFN0cmluZzo6YWRvcHQoYnVmZmVyKTsKIH0KIAotI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNL
RVIpCisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikgfHwgRU5BQkxFKElOUFVUX1RZUEVfVElN
RV9NVUxUSVBMRV9GSUVMRFMpCiBzdGF0aWMgU3RyaW5nIGdldERhdGVGb3JtYXRQYXR0ZXJuKGNv
bnN0IFVEYXRlRm9ybWF0KiBkYXRlRm9ybWF0KQogewogICAgIGlmICghZGF0ZUZvcm1hdCkKQEAg
LTMzNCw3ICszMzksOSBAQCBzdGF0aWMgU3RyaW5nIGdldERhdGVGb3JtYXRQYXR0ZXJuKGNvbnN0
IFVEYXRlRm9ybWF0KiBkYXRlRm9ybWF0KQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
ICAgICByZXR1cm4gU3RyaW5nOjphZG9wdChidWZmZXIpOwogfQorI2VuZGlmCiAKKyNpZiBFTkFC
TEUoQ0FMRU5EQVJfUElDS0VSKQogc3RhdGljIGlubGluZSBib29sIGlzSUNVWWVhclN5bWJvbChV
Q2hhciBsZXR0ZXIpCiB7CiAgICAgcmV0dXJuIGxldHRlciA9PSAneScgfHwgbGV0dGVyID09ICdZ
JzsKQEAgLTUwMSw2ICs1MDgsNTIgQEAgU3RyaW5nIExvY2FsZUlDVTo6bG9jYWxpemVkRGVjaW1h
bFNlcGFyYXRvcigpCiAgICAgcmV0dXJuIG1fZGVjaW1hbFN5bWJvbHNbRGVjaW1hbFNlcGFyYXRv
ckluZGV4XTsKIH0KIAorc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBjcmVhdGVG
YWxsYmFja0FNUE1MYWJlbHMoKQoreworICAgIE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IGxhYmVs
cyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8U3RyaW5nPigpKTsKKyAgICBsYWJlbHMtPnJlc2VydmVD
YXBhY2l0eSgyKTsKKyAgICBsYWJlbHMtPmFwcGVuZCgiQU0iKTsKKyAgICBsYWJlbHMtPmFwcGVu
ZCgiUE0iKTsKKyAgICByZXR1cm4gbGFiZWxzLnJlbGVhc2UoKTsKK30KKwordm9pZCBMb2NhbGVJ
Q1U6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgpCit7CisgICAgaWYgKG1fZGlkQ3JlYXRlVGlt
ZUZvcm1hdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tZWRpdW1UaW1lRm9ybWF0ID0gb3Bl
bkRhdGVGb3JtYXQoVURBVF9NRURJVU0sIFVEQVRfTk9ORSk7CisgICAgbV9sb2NhbGl6ZWRUaW1l
Rm9ybWF0VGV4dCA9IGdldERhdGVGb3JtYXRQYXR0ZXJuKG1fbWVkaXVtVGltZUZvcm1hdCk7CisK
KyAgICBtX3Nob3J0VGltZUZvcm1hdCA9IG9wZW5EYXRlRm9ybWF0KFVEQVRfU0hPUlQsIFVEQVRf
Tk9ORSk7CisgICAgbV9sb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0ID0gZ2V0RGF0ZUZvcm1h
dFBhdHRlcm4obV9zaG9ydFRpbWVGb3JtYXQpOworCisgICAgbV90aW1lQU1QTUxhYmVscyA9IGNy
ZWF0ZUxhYmVsVmVjdG9yKG1fbWVkaXVtVGltZUZvcm1hdCwgVURBVF9BTV9QTVMsIFVDQUxfQU0s
IDIpOworICAgIGlmICghbV90aW1lQU1QTUxhYmVscykKKyAgICAgICAgbV90aW1lQU1QTUxhYmVs
cyA9IGNyZWF0ZUZhbGxiYWNrQU1QTUxhYmVscygpOworCisgICAgbV9kaWRDcmVhdGVUaW1lRm9y
bWF0ID0gdHJ1ZTsKK30KKworU3RyaW5nIExvY2FsZUlDVTo6bG9jYWxpemVkVGltZUZvcm1hdFRl
eHQoKQoreworICAgIGluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgpOworICAgIHJldHVybiBtX2xv
Y2FsaXplZFRpbWVGb3JtYXRUZXh0OworfQorCisKK1N0cmluZyBMb2NhbGVJQ1U6OmxvY2FsaXpl
ZFNob3J0VGltZUZvcm1hdFRleHQoKQoreworICAgIGluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgp
OworICAgIHJldHVybiBtX2xvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQ7Cit9CisKK2NvbnN0
IFZlY3RvcjxTdHJpbmc+JiBMb2NhbGVJQ1U6OnRpbWVBTVBNTGFiZWxzKCkKK3sKKyAgICBpbml0
aWFsaXplRGF0ZVRpbWVGb3JtYXQoKTsKKyAgICByZXR1cm4gKm1fdGltZUFNUE1MYWJlbHM7Cit9
CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVJQ1UuaAppbmRleCAyZmI4NGY1MjliYWJkYTYxYTAwYWRmMWVlZjM2ZTc3
MTU4OWZjYTRiLi4wODY2NzgwNmQzYmJhYTVmYWUyOTI3OTdmNGI3NzI4ZDdhZjU4MjU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKQEAgLTY3LDYgKzY3LDEyIEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCBmaXJzdERheU9mV2VlaygpOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICBTdHJpbmcgbG9jYWxp
emVkVGltZUZvcm1hdFRleHQoKTsKKyAgICBTdHJpbmcgbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0
VGV4dCgpOworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0aW1lQU1QTUxhYmVscygpOworI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8TG9jYWxlSUNVPiBjcmVhdGVG
b3JDdXJyZW50TG9jYWxlKCk7CiAgICAgZXhwbGljaXQgTG9jYWxlSUNVKGNvbnN0IGNoYXIqKTsK
QEAgLTgyLDEwICs4OCwxNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tF
UikKICAgICB2b2lkIGluaXRpYWxpemVMb2NhbGl6ZWREYXRlRm9ybWF0VGV4dCgpOwotICAgIFBh
c3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBjcmVhdGVMYWJlbFZlY3Rvcihjb25zdCBVRGF0ZUZv
cm1hdCosIFVEYXRlRm9ybWF0U3ltYm9sVHlwZSwgaW50MzJfdCBzdGFydEluZGV4LCBpbnQzMl90
IHNpemUpOwogICAgIHZvaWQgaW5pdGlhbGl6ZUNhbGVuZGFyKCk7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShDQUxFTkRBUl9QSUNLRVIpIHx8IEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKQorICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBjcmVhdGVMYWJlbFZlY3Rv
cihjb25zdCBVRGF0ZUZvcm1hdCosIFVEYXRlRm9ybWF0U3ltYm9sVHlwZSwgaW50MzJfdCBzdGFy
dEluZGV4LCBpbnQzMl90IHNpemUpOworI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9U
SU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICB2b2lkIGluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgp
OworI2VuZGlmCisKICAgICBDU3RyaW5nIG1fbG9jYWxlOwogICAgIFVOdW1iZXJGb3JtYXQqIG1f
bnVtYmVyRm9ybWF0OwogICAgIFVEYXRlRm9ybWF0KiBtX3Nob3J0RGF0ZUZvcm1hdDsKQEAgLTEw
OSw2ICsxMjIsMTUgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBtX3dl
ZWtEYXlTaG9ydExhYmVsczsKICAgICB1bnNpZ25lZCBtX2ZpcnN0RGF5T2ZXZWVrOwogI2VuZGlm
CisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICBVRGF0
ZUZvcm1hdCogbV9tZWRpdW1UaW1lRm9ybWF0OworICAgIFVEYXRlRm9ybWF0KiBtX3Nob3J0VGlt
ZUZvcm1hdDsKKyAgICBTdHJpbmcgbV9sb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dDsKKyAgICBTdHJp
bmcgbV9sb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0OworICAgIE93blB0cjxWZWN0b3I8U3Ry
aW5nPiA+IG1fdGltZUFNUE1MYWJlbHM7CisgICAgYm9vbCBtX2RpZENyZWF0ZVRpbWVGb3JtYXQ7
CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkRGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWREYXRlLmgKaW5kZXggNGRiNWVhYzhlMzViNzU0YjlkODM1MDI3ZTQyMDc1OGEwNGY4ZjlkNS4u
YWI2ODU0ZTUzYjRmYzZlODFhNmEwMTU2NTUzMzAzYzgzMDE1OGEzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlLmgKQEAgLTYwLDYgKzYwLDIyIEBAIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB3ZWVrRGF5U2hvcnRMYWJlbHMoKTsKIAogLy8gVGhlIGZpcnN0
IGRheSBvZiBhIHdlZWsuIDAgaXMgU3VuZGF5LCBhbmQgNiBpcyBTYXR1cmRheS4KIHVuc2lnbmVk
IGZpcnN0RGF5T2ZXZWVrKCk7CisKKyNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElN
RV9NVUxUSVBMRV9GSUVMRFMpCisvLyBSZXR1cm5zIHRpbWUgZm9ybWF0IGluIFVuaWNvZGUgVFIz
NSBMRE1MWzFdIGNvbnRhaW5pbmcgaG91ciwgbWludXRlLCBhbmQKKy8vIHNlY29uZCB3aXRoIG9w
dGlvbmFsIHBlcmlvZChBTS9QTSksIGUuZy4gImg6bW06c3MgYSIKKy8vIFsxXSBMRE1MIGh0dHA6
Ly91bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUvdHIzNS02Lmh0bWwjRGF0ZV9Gb3JtYXRfUGF0dGVy
bnMKK1N0cmluZyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpOworCisvLyBSZXR1cm5zIHRpbWUg
Zm9ybWF0IGluIFVuaWNvZGUgVFIzNSBMRE1MIGNvbnRhaW5pbmcgaG91ciwgYW5kIG1pbnV0ZQor
Ly8gd2l0aCBvcHRpb25hbCBwZXJpb2QoQU0vUE0pLCBlLmcuICJoOm1tIGEiCisvLyBOb3RlOiBT
b21lIHBsYXRmb3JtcyByZXR1cm4gc2FtZSB2YWx1ZSBhcyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4
dCgpLgorU3RyaW5nIGxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQoKTsKKworLy8gUmV0dXJu
cyBsb2NhbGl6ZWQgcGVyaW9kIGZpZWxkKEFNL1BNKSBzdHJpbmdzLgorY29uc3QgVmVjdG9yPFN0
cmluZz4mIHRpbWVBTVBNTGFiZWxzKCk7CiAjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRl
SUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZUlDVS5j
cHAKaW5kZXggMTBjYjZmMTMyY2UzOTNlZmU5YmRhNGYwZDc3MGMwYzhmOWVjYjdmOC4uMTlkNmQx
NTgxYWIwNDk3YzQxMjY4MDI0M2I2NDU4YTNlY2U4ZDVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVJQ1UuY3BwCkBAIC05Miw0ICs5MiwyMSBA
QCB1bnNpZ25lZCBmaXJzdERheU9mV2VlaygpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBV
VF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorU3RyaW5nIGxvY2FsaXplZFRpbWVGb3JtYXRU
ZXh0KCkKK3sKKyAgICByZXR1cm4gTG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPmxvY2FsaXpl
ZFRpbWVGb3JtYXRUZXh0KCk7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRU
ZXh0KCkKK3sKKyAgICByZXR1cm4gTG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPmxvY2FsaXpl
ZFNob3J0VGltZUZvcm1hdFRleHQoKTsKK30KKworY29uc3QgVmVjdG9yPFN0cmluZz4mIHRpbWVB
TVBNTGFiZWxzKCkKK3sKKyAgICByZXR1cm4gTG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPnRp
bWVBTVBNTGFiZWxzKCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cGkKaW5kZXggZWJjZmE2MGM2NWQ2ODRmZmQwYWY0ZmU1YmViOWEwODAzZTliOWU4NS4uZDc2NWVj
NjY2YjJkNzIzM2ViYzc1MjJhZTE1ZmRkZmE3YjIyMWMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXBpCkBAIC0xMjMsNiArMTIzLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9MZXZlbERC
VGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0xpbmtIaWdobGlnaHRUZXN0LmNwcCcsCiAg
ICAgICAgICAgICAndGVzdHMvTGlzdGVuZXJMZWFrVGVzdC5jcHAnLAorICAgICAgICAgICAgJ3Rl
c3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvTG9jYWxp
emVkTnVtYmVySUNVVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL01vY2tDQ1F1YWRDdWxs
ZXIuaCcsCiAgICAgICAgICAgICAndGVzdHMvT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVy
RGVsZWdhdGVUZXN0LmNwcCcsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149876</attachid>
            <date>2012-06-27 22:58:54 -0700</date>
            <delta_ts>2012-06-27 23:00:31 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-89965-20120628145853.patch</filename>
            <type>text/plain</type>
            <size>10068</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE4ZDRkNGQxMjczNWZj
NzQ0YzZjZjA5MDY0OWYxYjI5Y2RiMDg1My4uNTVmOTM5ZGJiNWZkNmVkMjgwOTYxZGY4OTJhNTY2
ZGQ0ODZhYTdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA2LTI4ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1BsYXRmb3JtXSBJ
bXBsZW1lbnQgZnVuY3Rpb25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5mb3JtYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTY1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbnRyb2R1Y2VzIHRocmVlIGZ1bmN0aW9ucyBmb3IgdGltZSBmb3JtYXQ6CisgICAgICAgICAg
MS4gbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIGxvY2FsaXplZFNob3J0
VGltZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIHRpbWVBTVBNTGFiZWxzKCkKKyAgICAgICAg
Zm9yIGlucHV0IHR5cGUgInRpbWUiIGlmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKSBpcyB0cnVlLgorCisgICAgICAgIEhhdmluZyBib3RoIGxvY2FsaXplZFRpbWVGb3Jt
YXQgYW5kIGxvY2FsaXplZFNob3J0VGltZUZvcm1hdCBpcyBmb3IKKyAgICAgICAgZGlzcGxheWlu
ZyBvbmx5IHR3byBmaWVsZHMgaG91ciBhbmQgbWludXRlIHdoZW4gc3RlcCA+PSA2MC4gVGhlcmUg
aXMKKyAgICAgICAgbm8gd2F5IHRvIHJlbW92ZSBzZWNvbmQgZmllbGQgZnJvbSAiaDptOnMiIHBh
dHRlcm4gc3RyaW5nLiBXZSBkb24ndAorICAgICAgICBrbm93IHdoZXRoZXIgIjoiIGFmdGVyICJt
IiBiZWxvbmdzIG1pbnV0ZSBvciBzZWNvbmQgZmllbGQuCisKKyAgICAgICAgVGVzdDogV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcAorCisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjpM
b2NhbGVJQ1UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRmFsbGJhY2tBTVBNTGFiZWxzKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVJQ1U6OmluaXRpYWxpemVEYXRlVGltZUZv
cm1hdCk6ICBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZUlDVTo6bG9jYWxpemVkVGlt
ZUZvcm1hdFRleHQpOiAgQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVJQ1U6OmxvY2Fs
aXplZFNob3J0VGltZUZvcm1hdFRleHQpOiAgQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bGVJQ1U6OnRpbWVBTVBNTGFiZWxzKTogIEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
TG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkRGF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0
ZUlDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCk6ICBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQpOiAg
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0aW1lQU1QTUxhYmVscyk6ICBBZGRlZC4KKwogMjAx
Mi0wNi0yNyAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtQbGF0Zm9ybV0gSW1wbGVtZW50IGxvY2FsaXplZERlY2ltYWxTZXBhcmF0b3IgZnVuY3Rpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNWYxOTgxYjYzYjA2ZmQ0Mzk0ZDgxMmUxODk1
ZmNlNGQ0ZGNlY2ZhOC4uZWQ2NTg1ZWViNTNlMTRlOGVmNDMyYTk0N2FlN2UxOWFiMWE1Y2JhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wNi0yNyAg
WW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtQbGF0Zm9y
bV0gSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgbG9jYWxpemVkIHRpbWUgZm9ybWF0IGluZm9ybWF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk2
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyBuZXcgdGVzdCBMb2NhbGl6ZWREYXRlSUNVVGVzdCBpZiBFTkFCTEUoSU5QVVRf
VFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICAgICAgaXMgdHJ1ZS4KKworICAgICAgICAq
IFdlYktpdC5neXBpOgorICAgICAgICAqIHRlc3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcDog
QWRkZWQuCisgICAgICAgIChMb2NhbGl6ZWREYXRlSUNVVGVzdCk6CisgICAgICAgIChMYWJlbHMp
OgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OkxhYmVsczo6TGFiZWxzKToKKyAgICAg
ICAgKExvY2FsaXplZERhdGVJQ1VUZXN0OjpMYWJlbHM6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
TG9jYWxpemVkRGF0ZUlDVVRlc3Q6OkxhYmVsczo6dG9TdHJpbmcpOgorICAgICAgICAoTG9jYWxp
emVkRGF0ZUlDVVRlc3Q6OmxhYmVscyk6CisgICAgICAgIChMb2NhbGl6ZWREYXRlSUNVVGVzdDo6
bG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6
OmxvY2FsaXplZFNob3J0RGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlD
VVRlc3Q6OnRpbWVBTVBNTGFiZWxzKToKKyAgICAgICAgKG9wZXJhdG9yPDwpOgorICAgICAgICAo
VEVTVF9GKToKKwogMjAxMi0wNi0yNyAgU2hhd24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVzZSBXRUJLSVRfSU1QTEVNRU5UQVRJT04gPT0g
MSBmb3Igd2Via2l0X3VuaXRfdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlSUNVLmNwcAppbmRleCA3MzVmMDk5ZDE4Y2RjYmYzNzQ4ODQ0OTNhNGMxYjY1YTE5MmNlOGVi
Li4yNjM4NThmNmJkNzI1MzczMTg4MDBmMGM3YTg3MTAxYzhmOGNjZTIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC01MSw2ICs1MSwxMSBAQCBMb2Nh
bGVJQ1U6OkxvY2FsZUlDVShjb25zdCBjaGFyKiBsb2NhbGUpCiAjaWYgRU5BQkxFKENBTEVOREFS
X1BJQ0tFUikKICAgICAsIG1fZmlyc3REYXlPZldlZWsoMCkKICNlbmRpZgorI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorICAgICwgbV9tZWRpdW1UaW1lRm9ybWF0
KDApCisgICAgLCBtX3Nob3J0VGltZUZvcm1hdCgwKQorICAgICwgbV9kaWRDcmVhdGVUaW1lRm9y
bWF0KGZhbHNlKQorI2VuZGlmCiB7CiB9CiAKQEAgLTMxNyw3ICszMjIsNyBAQCBTdHJpbmcgTG9j
YWxlSUNVOjpmb3JtYXRMb2NhbGl6ZWREYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29t
cG9uZW50cykKICAgICByZXR1cm4gU3RyaW5nOjphZG9wdChidWZmZXIpOwogfQogCi0jaWYgRU5B
QkxFKENBTEVOREFSX1BJQ0tFUikKKyNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKSB8fCBFTkFC
TEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKIHN0YXRpYyBTdHJpbmcgZ2V0RGF0
ZUZvcm1hdFBhdHRlcm4oY29uc3QgVURhdGVGb3JtYXQqIGRhdGVGb3JtYXQpCiB7CiAgICAgaWYg
KCFkYXRlRm9ybWF0KQpAQCAtMzM0LDcgKzMzOSw5IEBAIHN0YXRpYyBTdHJpbmcgZ2V0RGF0ZUZv
cm1hdFBhdHRlcm4oY29uc3QgVURhdGVGb3JtYXQqIGRhdGVGb3JtYXQpCiAgICAgICAgIHJldHVy
biBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KGJ1ZmZlcik7CiB9Cisj
ZW5kaWYKIAorI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiBzdGF0aWMgaW5saW5lIGJvb2wg
aXNJQ1VZZWFyU3ltYm9sKFVDaGFyIGxldHRlcikKIHsKICAgICByZXR1cm4gbGV0dGVyID09ICd5
JyB8fCBsZXR0ZXIgPT0gJ1knOwpAQCAtNTAxLDYgKzUwOCw1MiBAQCBTdHJpbmcgTG9jYWxlSUNV
Ojpsb2NhbGl6ZWREZWNpbWFsU2VwYXJhdG9yKCkKICAgICByZXR1cm4gbV9kZWNpbWFsU3ltYm9s
c1tEZWNpbWFsU2VwYXJhdG9ySW5kZXhdOwogfQogCitzdGF0aWMgUGFzc093blB0cjxWZWN0b3I8
U3RyaW5nPiA+IGNyZWF0ZUZhbGxiYWNrQU1QTUxhYmVscygpCit7CisgICAgT3duUHRyPFZlY3Rv
cjxTdHJpbmc+ID4gbGFiZWxzID0gYWRvcHRQdHIobmV3IFZlY3RvcjxTdHJpbmc+KCkpOworICAg
IGxhYmVscy0+cmVzZXJ2ZUNhcGFjaXR5KDIpOworICAgIGxhYmVscy0+YXBwZW5kKCJBTSIpOwor
ICAgIGxhYmVscy0+YXBwZW5kKCJQTSIpOworICAgIHJldHVybiBsYWJlbHMucmVsZWFzZSgpOwor
fQorCit2b2lkIExvY2FsZUlDVTo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KCkKK3sKKyAgICBp
ZiAobV9kaWRDcmVhdGVUaW1lRm9ybWF0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX21lZGl1
bVRpbWVGb3JtYXQgPSBvcGVuRGF0ZUZvcm1hdChVREFUX01FRElVTSwgVURBVF9OT05FKTsKKyAg
ICBtX2xvY2FsaXplZFRpbWVGb3JtYXRUZXh0ID0gZ2V0RGF0ZUZvcm1hdFBhdHRlcm4obV9tZWRp
dW1UaW1lRm9ybWF0KTsKKworICAgIG1fc2hvcnRUaW1lRm9ybWF0ID0gb3BlbkRhdGVGb3JtYXQo
VURBVF9TSE9SVCwgVURBVF9OT05FKTsKKyAgICBtX2xvY2FsaXplZFNob3J0VGltZUZvcm1hdFRl
eHQgPSBnZXREYXRlRm9ybWF0UGF0dGVybihtX3Nob3J0VGltZUZvcm1hdCk7CisKKyAgICBtX3Rp
bWVBTVBNTGFiZWxzID0gY3JlYXRlTGFiZWxWZWN0b3IobV9tZWRpdW1UaW1lRm9ybWF0LCBVREFU
X0FNX1BNUywgVUNBTF9BTSwgMik7CisgICAgaWYgKCFtX3RpbWVBTVBNTGFiZWxzKQorICAgICAg
ICBtX3RpbWVBTVBNTGFiZWxzID0gY3JlYXRlRmFsbGJhY2tBTVBNTGFiZWxzKCk7CisKKyAgICBt
X2RpZENyZWF0ZVRpbWVGb3JtYXQgPSB0cnVlOworfQorCitTdHJpbmcgTG9jYWxlSUNVOjpsb2Nh
bGl6ZWRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgaW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KCk7
CisgICAgcmV0dXJuIG1fbG9jYWxpemVkVGltZUZvcm1hdFRleHQ7Cit9CisKKworU3RyaW5nIExv
Y2FsZUlDVTo6bG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgaW5pdGlhbGl6
ZURhdGVUaW1lRm9ybWF0KCk7CisgICAgcmV0dXJuIG1fbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0
VGV4dDsKK30KKworY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZUlDVTo6dGltZUFNUE1MYWJl
bHMoKQoreworICAgIGluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgpOworICAgIHJldHVybiAqbV90
aW1lQU1QTUxhYmVsczsKK30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCmluZGV4IDJmYjg0ZjUyOWJhYmRh
NjFhMDBhZGYxZWVmMzZlNzcxNTg5ZmNhNGIuLjA4NjY3ODA2ZDNiYmFhNWZhZTI5Mjc5N2Y0Yjc3
MjhkN2FmNTgyNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlSUNVLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaApA
QCAtNjcsNiArNjcsMTIgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQor
ICAgIFN0cmluZyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpOworICAgIFN0cmluZyBsb2NhbGl6
ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCk7CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRpbWVB
TVBNTGFiZWxzKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBzdGF0aWMgUGFzc093blB0cjxM
b2NhbGVJQ1U+IGNyZWF0ZUZvckN1cnJlbnRMb2NhbGUoKTsKICAgICBleHBsaWNpdCBMb2NhbGVJ
Q1UoY29uc3QgY2hhciopOwpAQCAtODIsMTAgKzg4LDE3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFC
TEUoQ0FMRU5EQVJfUElDS0VSKQogICAgIHZvaWQgaW5pdGlhbGl6ZUxvY2FsaXplZERhdGVGb3Jt
YXRUZXh0KCk7Ci0gICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGNyZWF0ZUxhYmVsVmVj
dG9yKGNvbnN0IFVEYXRlRm9ybWF0KiwgVURhdGVGb3JtYXRTeW1ib2xUeXBlLCBpbnQzMl90IHN0
YXJ0SW5kZXgsIGludDMyX3Qgc2l6ZSk7CiAgICAgdm9pZCBpbml0aWFsaXplQ2FsZW5kYXIoKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikgfHwgRU5BQkxFKElOUFVUX1RZ
UEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+
IGNyZWF0ZUxhYmVsVmVjdG9yKGNvbnN0IFVEYXRlRm9ybWF0KiwgVURhdGVGb3JtYXRTeW1ib2xU
eXBlLCBpbnQzMl90IHN0YXJ0SW5kZXgsIGludDMyX3Qgc2l6ZSk7CisjZW5kaWYKKworI2lmIEVO
QUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorICAgIHZvaWQgaW5pdGlhbGl6
ZURhdGVUaW1lRm9ybWF0KCk7CisjZW5kaWYKKwogICAgIENTdHJpbmcgbV9sb2NhbGU7CiAgICAg
VU51bWJlckZvcm1hdCogbV9udW1iZXJGb3JtYXQ7CiAgICAgVURhdGVGb3JtYXQqIG1fc2hvcnRE
YXRlRm9ybWF0OwpAQCAtMTA5LDYgKzEyMiwxNSBAQCBwcml2YXRlOgogICAgIE93blB0cjxWZWN0
b3I8U3RyaW5nPiA+IG1fd2Vla0RheVNob3J0TGFiZWxzOwogICAgIHVuc2lnbmVkIG1fZmlyc3RE
YXlPZldlZWs7CiAjZW5kaWYKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKQorICAgIFVEYXRlRm9ybWF0KiBtX21lZGl1bVRpbWVGb3JtYXQ7CisgICAgVURhdGVG
b3JtYXQqIG1fc2hvcnRUaW1lRm9ybWF0OworICAgIFN0cmluZyBtX2xvY2FsaXplZFRpbWVGb3Jt
YXRUZXh0OworICAgIFN0cmluZyBtX2xvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQ7CisgICAg
T3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gbV90aW1lQU1QTUxhYmVsczsKKyAgICBib29sIG1fZGlk
Q3JlYXRlVGltZUZvcm1hdDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0xvY2FsaXplZERhdGUuaAppbmRleCA0ZGI1ZWFjOGUzNWI3NTRiOWQ4MzUwMjdl
NDIwNzU4YTA0ZjhmOWQ1Li5hYjY4NTRlNTNiNGZjNmU4MWE2YTAxNTY1NTMzMDNjODMwMTU4YTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGUuaApAQCAt
NjAsNiArNjAsMjIgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHdlZWtEYXlTaG9ydExhYmVscygp
OwogCiAvLyBUaGUgZmlyc3QgZGF5IG9mIGEgd2Vlay4gMCBpcyBTdW5kYXksIGFuZCA2IGlzIFNh
dHVyZGF5LgogdW5zaWduZWQgZmlyc3REYXlPZldlZWsoKTsKKworI2VuZGlmCisKKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKy8vIFJldHVybnMgdGltZSBmb3Jt
YXQgaW4gVW5pY29kZSBUUjM1IExETUxbMV0gY29udGFpbmluZyBob3VyLCBtaW51dGUsIGFuZAor
Ly8gc2Vjb25kIHdpdGggb3B0aW9uYWwgcGVyaW9kKEFNL1BNKSwgZS5nLiAiaDptbTpzcyBhIgor
Ly8gWzFdIExETUwgaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS90cjM1LTYuaHRtbCNE
YXRlX0Zvcm1hdF9QYXR0ZXJucworU3RyaW5nIGxvY2FsaXplZFRpbWVGb3JtYXRUZXh0KCk7CisK
Ky8vIFJldHVybnMgdGltZSBmb3JtYXQgaW4gVW5pY29kZSBUUjM1IExETUwgY29udGFpbmluZyBo
b3VyLCBhbmQgbWludXRlCisvLyB3aXRoIG9wdGlvbmFsIHBlcmlvZChBTS9QTSksIGUuZy4gImg6
bW0gYSIKKy8vIE5vdGU6IFNvbWUgcGxhdGZvcm1zIHJldHVybiBzYW1lIHZhbHVlIGFzIGxvY2Fs
aXplZFRpbWVGb3JtYXRUZXh0KCkuCitTdHJpbmcgbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4
dCgpOworCisvLyBSZXR1cm5zIGxvY2FsaXplZCBwZXJpb2QgZmllbGQoQU0vUE0pIHN0cmluZ3Mu
Citjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGltZUFNUE1MYWJlbHMoKTsKICNlbmRpZgogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsaXplZERhdGVJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGl6ZWREYXRlSUNVLmNwcAppbmRleCAxMGNiNmYxMzJjZTM5M2VmZTliZGE0ZjBkNzcwYzBj
OGY5ZWNiN2Y4Li4xOWQ2ZDE1ODFhYjA0OTdjNDEyNjgwMjQzYjY0NThhM2VjZThkNWM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVJQ1UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZUlDVS5jcHAK
QEAgLTkyLDQgKzkyLDIxIEBAIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCkKIH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCitTdHJpbmcgbG9j
YWxpemVkVGltZUZvcm1hdFRleHQoKQoreworICAgIHJldHVybiBMb2NhbGVJQ1U6OmN1cnJlbnRM
b2NhbGUoKS0+bG9jYWxpemVkVGltZUZvcm1hdFRleHQoKTsKK30KKworU3RyaW5nIGxvY2FsaXpl
ZFNob3J0VGltZUZvcm1hdFRleHQoKQoreworICAgIHJldHVybiBMb2NhbGVJQ1U6OmN1cnJlbnRM
b2NhbGUoKS0+bG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpOworfQorCitjb25zdCBWZWN0
b3I8U3RyaW5nPiYgdGltZUFNUE1MYWJlbHMoKQoreworICAgIHJldHVybiBMb2NhbGVJQ1U6OmN1
cnJlbnRMb2NhbGUoKS0+dGltZUFNUE1MYWJlbHMoKTsKK30KKyNlbmRpZgorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCBlYmNmYTYwYzY1ZDY4NGZmZDBhZjRmZTViZWI5YTA4
MDNlOWI5ZTg1Li5kNzY1ZWM2NjZiMmQ3MjMzZWJjNzUyMmFlMTVmZGRmYTdiMjIxYzA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTEyMyw2ICsxMjMsNyBAQAogICAgICAgICAg
ICAgJ3Rlc3RzL0xldmVsREJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvTGlua0hpZ2hs
aWdodFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9MaXN0ZW5lckxlYWtUZXN0LmNwcCcs
CisgICAgICAgICAgICAndGVzdHMvTG9jYWxpemVkRGF0ZUlDVVRlc3QuY3BwJywKICAgICAgICAg
ICAgICd0ZXN0cy9Mb2NhbGl6ZWROdW1iZXJJQ1VUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVz
dHMvTW9ja0NDUXVhZEN1bGxlci5oJywKICAgICAgICAgICAgICd0ZXN0cy9PcGFxdWVSZWN0VHJh
Y2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3QuY3BwJywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149877</attachid>
            <date>2012-06-27 23:00:37 -0700</date>
            <delta_ts>2012-06-27 23:36:59 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-89965-20120628150036.patch</filename>
            <type>text/plain</type>
            <size>15461</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE4ZDRkNGQxMjczNWZj
NzQ0YzZjZjA5MDY0OWYxYjI5Y2RiMDg1My4uNTVmOTM5ZGJiNWZkNmVkMjgwOTYxZGY4OTJhNTY2
ZGQ0ODZhYTdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA2LTI4ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1BsYXRmb3JtXSBJ
bXBsZW1lbnQgZnVuY3Rpb25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5mb3JtYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTY1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbnRyb2R1Y2VzIHRocmVlIGZ1bmN0aW9ucyBmb3IgdGltZSBmb3JtYXQ6CisgICAgICAgICAg
MS4gbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIGxvY2FsaXplZFNob3J0
VGltZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIHRpbWVBTVBNTGFiZWxzKCkKKyAgICAgICAg
Zm9yIGlucHV0IHR5cGUgInRpbWUiIGlmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKSBpcyB0cnVlLgorCisgICAgICAgIEhhdmluZyBib3RoIGxvY2FsaXplZFRpbWVGb3Jt
YXQgYW5kIGxvY2FsaXplZFNob3J0VGltZUZvcm1hdCBpcyBmb3IKKyAgICAgICAgZGlzcGxheWlu
ZyBvbmx5IHR3byBmaWVsZHMgaG91ciBhbmQgbWludXRlIHdoZW4gc3RlcCA+PSA2MC4gVGhlcmUg
aXMKKyAgICAgICAgbm8gd2F5IHRvIHJlbW92ZSBzZWNvbmQgZmllbGQgZnJvbSAiaDptOnMiIHBh
dHRlcm4gc3RyaW5nLiBXZSBkb24ndAorICAgICAgICBrbm93IHdoZXRoZXIgIjoiIGFmdGVyICJt
IiBiZWxvbmdzIG1pbnV0ZSBvciBzZWNvbmQgZmllbGQuCisKKyAgICAgICAgVGVzdDogV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcAorCisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjpM
b2NhbGVJQ1UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRmFsbGJhY2tBTVBNTGFiZWxzKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVJQ1U6OmluaXRpYWxpemVEYXRlVGltZUZv
cm1hdCk6ICBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZUlDVTo6bG9jYWxpemVkVGlt
ZUZvcm1hdFRleHQpOiAgQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVJQ1U6OmxvY2Fs
aXplZFNob3J0VGltZUZvcm1hdFRleHQpOiAgQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bGVJQ1U6OnRpbWVBTVBNTGFiZWxzKTogIEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
TG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkRGF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0
ZUlDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCk6ICBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQpOiAg
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0aW1lQU1QTUxhYmVscyk6ICBBZGRlZC4KKwogMjAx
Mi0wNi0yNyAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtQbGF0Zm9ybV0gSW1wbGVtZW50IGxvY2FsaXplZERlY2ltYWxTZXBhcmF0b3IgZnVuY3Rpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNWYxOTgxYjYzYjA2ZmQ0Mzk0ZDgxMmUxODk1
ZmNlNGQ0ZGNlY2ZhOC4uZWQ2NTg1ZWViNTNlMTRlOGVmNDMyYTk0N2FlN2UxOWFiMWE1Y2JhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wNi0yNyAg
WW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtQbGF0Zm9y
bV0gSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgbG9jYWxpemVkIHRpbWUgZm9ybWF0IGluZm9ybWF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk2
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggYWRkcyBuZXcgdGVzdCBMb2NhbGl6ZWREYXRlSUNVVGVzdCBpZiBFTkFCTEUoSU5QVVRf
VFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICAgICAgaXMgdHJ1ZS4KKworICAgICAgICAq
IFdlYktpdC5neXBpOgorICAgICAgICAqIHRlc3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcDog
QWRkZWQuCisgICAgICAgIChMb2NhbGl6ZWREYXRlSUNVVGVzdCk6CisgICAgICAgIChMYWJlbHMp
OgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OkxhYmVsczo6TGFiZWxzKToKKyAgICAg
ICAgKExvY2FsaXplZERhdGVJQ1VUZXN0OjpMYWJlbHM6Om9wZXJhdG9yPT0pOgorICAgICAgICAo
TG9jYWxpemVkRGF0ZUlDVVRlc3Q6OkxhYmVsczo6dG9TdHJpbmcpOgorICAgICAgICAoTG9jYWxp
emVkRGF0ZUlDVVRlc3Q6OmxhYmVscyk6CisgICAgICAgIChMb2NhbGl6ZWREYXRlSUNVVGVzdDo6
bG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6
OmxvY2FsaXplZFNob3J0RGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlD
VVRlc3Q6OnRpbWVBTVBNTGFiZWxzKToKKyAgICAgICAgKG9wZXJhdG9yPDwpOgorICAgICAgICAo
VEVTVF9GKToKKwogMjAxMi0wNi0yNyAgU2hhd24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVzZSBXRUJLSVRfSU1QTEVNRU5UQVRJT04gPT0g
MSBmb3Igd2Via2l0X3VuaXRfdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlSUNVLmNwcAppbmRleCA3MzVmMDk5ZDE4Y2RjYmYzNzQ4ODQ0OTNhNGMxYjY1YTE5MmNlOGVi
Li4yNjM4NThmNmJkNzI1MzczMTg4MDBmMGM3YTg3MTAxYzhmOGNjZTIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC01MSw2ICs1MSwxMSBAQCBMb2Nh
bGVJQ1U6OkxvY2FsZUlDVShjb25zdCBjaGFyKiBsb2NhbGUpCiAjaWYgRU5BQkxFKENBTEVOREFS
X1BJQ0tFUikKICAgICAsIG1fZmlyc3REYXlPZldlZWsoMCkKICNlbmRpZgorI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorICAgICwgbV9tZWRpdW1UaW1lRm9ybWF0
KDApCisgICAgLCBtX3Nob3J0VGltZUZvcm1hdCgwKQorICAgICwgbV9kaWRDcmVhdGVUaW1lRm9y
bWF0KGZhbHNlKQorI2VuZGlmCiB7CiB9CiAKQEAgLTMxNyw3ICszMjIsNyBAQCBTdHJpbmcgTG9j
YWxlSUNVOjpmb3JtYXRMb2NhbGl6ZWREYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29t
cG9uZW50cykKICAgICByZXR1cm4gU3RyaW5nOjphZG9wdChidWZmZXIpOwogfQogCi0jaWYgRU5B
QkxFKENBTEVOREFSX1BJQ0tFUikKKyNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKSB8fCBFTkFC
TEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKIHN0YXRpYyBTdHJpbmcgZ2V0RGF0
ZUZvcm1hdFBhdHRlcm4oY29uc3QgVURhdGVGb3JtYXQqIGRhdGVGb3JtYXQpCiB7CiAgICAgaWYg
KCFkYXRlRm9ybWF0KQpAQCAtMzM0LDcgKzMzOSw5IEBAIHN0YXRpYyBTdHJpbmcgZ2V0RGF0ZUZv
cm1hdFBhdHRlcm4oY29uc3QgVURhdGVGb3JtYXQqIGRhdGVGb3JtYXQpCiAgICAgICAgIHJldHVy
biBlbXB0eVN0cmluZygpOwogICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KGJ1ZmZlcik7CiB9Cisj
ZW5kaWYKIAorI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiBzdGF0aWMgaW5saW5lIGJvb2wg
aXNJQ1VZZWFyU3ltYm9sKFVDaGFyIGxldHRlcikKIHsKICAgICByZXR1cm4gbGV0dGVyID09ICd5
JyB8fCBsZXR0ZXIgPT0gJ1knOwpAQCAtNTAxLDYgKzUwOCw1MiBAQCBTdHJpbmcgTG9jYWxlSUNV
Ojpsb2NhbGl6ZWREZWNpbWFsU2VwYXJhdG9yKCkKICAgICByZXR1cm4gbV9kZWNpbWFsU3ltYm9s
c1tEZWNpbWFsU2VwYXJhdG9ySW5kZXhdOwogfQogCitzdGF0aWMgUGFzc093blB0cjxWZWN0b3I8
U3RyaW5nPiA+IGNyZWF0ZUZhbGxiYWNrQU1QTUxhYmVscygpCit7CisgICAgT3duUHRyPFZlY3Rv
cjxTdHJpbmc+ID4gbGFiZWxzID0gYWRvcHRQdHIobmV3IFZlY3RvcjxTdHJpbmc+KCkpOworICAg
IGxhYmVscy0+cmVzZXJ2ZUNhcGFjaXR5KDIpOworICAgIGxhYmVscy0+YXBwZW5kKCJBTSIpOwor
ICAgIGxhYmVscy0+YXBwZW5kKCJQTSIpOworICAgIHJldHVybiBsYWJlbHMucmVsZWFzZSgpOwor
fQorCit2b2lkIExvY2FsZUlDVTo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KCkKK3sKKyAgICBp
ZiAobV9kaWRDcmVhdGVUaW1lRm9ybWF0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX21lZGl1
bVRpbWVGb3JtYXQgPSBvcGVuRGF0ZUZvcm1hdChVREFUX01FRElVTSwgVURBVF9OT05FKTsKKyAg
ICBtX2xvY2FsaXplZFRpbWVGb3JtYXRUZXh0ID0gZ2V0RGF0ZUZvcm1hdFBhdHRlcm4obV9tZWRp
dW1UaW1lRm9ybWF0KTsKKworICAgIG1fc2hvcnRUaW1lRm9ybWF0ID0gb3BlbkRhdGVGb3JtYXQo
VURBVF9TSE9SVCwgVURBVF9OT05FKTsKKyAgICBtX2xvY2FsaXplZFNob3J0VGltZUZvcm1hdFRl
eHQgPSBnZXREYXRlRm9ybWF0UGF0dGVybihtX3Nob3J0VGltZUZvcm1hdCk7CisKKyAgICBtX3Rp
bWVBTVBNTGFiZWxzID0gY3JlYXRlTGFiZWxWZWN0b3IobV9tZWRpdW1UaW1lRm9ybWF0LCBVREFU
X0FNX1BNUywgVUNBTF9BTSwgMik7CisgICAgaWYgKCFtX3RpbWVBTVBNTGFiZWxzKQorICAgICAg
ICBtX3RpbWVBTVBNTGFiZWxzID0gY3JlYXRlRmFsbGJhY2tBTVBNTGFiZWxzKCk7CisKKyAgICBt
X2RpZENyZWF0ZVRpbWVGb3JtYXQgPSB0cnVlOworfQorCitTdHJpbmcgTG9jYWxlSUNVOjpsb2Nh
bGl6ZWRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgaW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KCk7
CisgICAgcmV0dXJuIG1fbG9jYWxpemVkVGltZUZvcm1hdFRleHQ7Cit9CisKKworU3RyaW5nIExv
Y2FsZUlDVTo6bG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgaW5pdGlhbGl6
ZURhdGVUaW1lRm9ybWF0KCk7CisgICAgcmV0dXJuIG1fbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0
VGV4dDsKK30KKworY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZUlDVTo6dGltZUFNUE1MYWJl
bHMoKQoreworICAgIGluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgpOworICAgIHJldHVybiAqbV90
aW1lQU1QTUxhYmVsczsKK30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCmluZGV4IDJmYjg0ZjUyOWJhYmRh
NjFhMDBhZGYxZWVmMzZlNzcxNTg5ZmNhNGIuLjA4NjY3ODA2ZDNiYmFhNWZhZTI5Mjc5N2Y0Yjc3
MjhkN2FmNTgyNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlSUNVLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaApA
QCAtNjcsNiArNjcsMTIgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQor
ICAgIFN0cmluZyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpOworICAgIFN0cmluZyBsb2NhbGl6
ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCk7CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRpbWVB
TVBNTGFiZWxzKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBzdGF0aWMgUGFzc093blB0cjxM
b2NhbGVJQ1U+IGNyZWF0ZUZvckN1cnJlbnRMb2NhbGUoKTsKICAgICBleHBsaWNpdCBMb2NhbGVJ
Q1UoY29uc3QgY2hhciopOwpAQCAtODIsMTAgKzg4LDE3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFC
TEUoQ0FMRU5EQVJfUElDS0VSKQogICAgIHZvaWQgaW5pdGlhbGl6ZUxvY2FsaXplZERhdGVGb3Jt
YXRUZXh0KCk7Ci0gICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGNyZWF0ZUxhYmVsVmVj
dG9yKGNvbnN0IFVEYXRlRm9ybWF0KiwgVURhdGVGb3JtYXRTeW1ib2xUeXBlLCBpbnQzMl90IHN0
YXJ0SW5kZXgsIGludDMyX3Qgc2l6ZSk7CiAgICAgdm9pZCBpbml0aWFsaXplQ2FsZW5kYXIoKTsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikgfHwgRU5BQkxFKElOUFVUX1RZ
UEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisgICAgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+
IGNyZWF0ZUxhYmVsVmVjdG9yKGNvbnN0IFVEYXRlRm9ybWF0KiwgVURhdGVGb3JtYXRTeW1ib2xU
eXBlLCBpbnQzMl90IHN0YXJ0SW5kZXgsIGludDMyX3Qgc2l6ZSk7CisjZW5kaWYKKworI2lmIEVO
QUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorICAgIHZvaWQgaW5pdGlhbGl6
ZURhdGVUaW1lRm9ybWF0KCk7CisjZW5kaWYKKwogICAgIENTdHJpbmcgbV9sb2NhbGU7CiAgICAg
VU51bWJlckZvcm1hdCogbV9udW1iZXJGb3JtYXQ7CiAgICAgVURhdGVGb3JtYXQqIG1fc2hvcnRE
YXRlRm9ybWF0OwpAQCAtMTA5LDYgKzEyMiwxNSBAQCBwcml2YXRlOgogICAgIE93blB0cjxWZWN0
b3I8U3RyaW5nPiA+IG1fd2Vla0RheVNob3J0TGFiZWxzOwogICAgIHVuc2lnbmVkIG1fZmlyc3RE
YXlPZldlZWs7CiAjZW5kaWYKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKQorICAgIFVEYXRlRm9ybWF0KiBtX21lZGl1bVRpbWVGb3JtYXQ7CisgICAgVURhdGVG
b3JtYXQqIG1fc2hvcnRUaW1lRm9ybWF0OworICAgIFN0cmluZyBtX2xvY2FsaXplZFRpbWVGb3Jt
YXRUZXh0OworICAgIFN0cmluZyBtX2xvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQ7CisgICAg
T3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gbV90aW1lQU1QTUxhYmVsczsKKyAgICBib29sIG1fZGlk
Q3JlYXRlVGltZUZvcm1hdDsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0xvY2FsaXplZERhdGUuaAppbmRleCA0ZGI1ZWFjOGUzNWI3NTRiOWQ4MzUwMjdl
NDIwNzU4YTA0ZjhmOWQ1Li5hYjY4NTRlNTNiNGZjNmU4MWE2YTAxNTY1NTMzMDNjODMwMTU4YTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGUuaApAQCAt
NjAsNiArNjAsMjIgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHdlZWtEYXlTaG9ydExhYmVscygp
OwogCiAvLyBUaGUgZmlyc3QgZGF5IG9mIGEgd2Vlay4gMCBpcyBTdW5kYXksIGFuZCA2IGlzIFNh
dHVyZGF5LgogdW5zaWduZWQgZmlyc3REYXlPZldlZWsoKTsKKworI2VuZGlmCisKKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKy8vIFJldHVybnMgdGltZSBmb3Jt
YXQgaW4gVW5pY29kZSBUUjM1IExETUxbMV0gY29udGFpbmluZyBob3VyLCBtaW51dGUsIGFuZAor
Ly8gc2Vjb25kIHdpdGggb3B0aW9uYWwgcGVyaW9kKEFNL1BNKSwgZS5nLiAiaDptbTpzcyBhIgor
Ly8gWzFdIExETUwgaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS90cjM1LTYuaHRtbCNE
YXRlX0Zvcm1hdF9QYXR0ZXJucworU3RyaW5nIGxvY2FsaXplZFRpbWVGb3JtYXRUZXh0KCk7CisK
Ky8vIFJldHVybnMgdGltZSBmb3JtYXQgaW4gVW5pY29kZSBUUjM1IExETUwgY29udGFpbmluZyBo
b3VyLCBhbmQgbWludXRlCisvLyB3aXRoIG9wdGlvbmFsIHBlcmlvZChBTS9QTSksIGUuZy4gImg6
bW0gYSIKKy8vIE5vdGU6IFNvbWUgcGxhdGZvcm1zIHJldHVybiBzYW1lIHZhbHVlIGFzIGxvY2Fs
aXplZFRpbWVGb3JtYXRUZXh0KCkuCitTdHJpbmcgbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4
dCgpOworCisvLyBSZXR1cm5zIGxvY2FsaXplZCBwZXJpb2QgZmllbGQoQU0vUE0pIHN0cmluZ3Mu
Citjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGltZUFNUE1MYWJlbHMoKTsKICNlbmRpZgogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsaXplZERhdGVJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGl6ZWREYXRlSUNVLmNwcAppbmRleCAxMGNiNmYxMzJjZTM5M2VmZTliZGE0ZjBkNzcwYzBj
OGY5ZWNiN2Y4Li4xOWQ2ZDE1ODFhYjA0OTdjNDEyNjgwMjQzYjY0NThhM2VjZThkNWM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVJQ1UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZUlDVS5jcHAK
QEAgLTkyLDQgKzkyLDIxIEBAIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCkKIH0KICNlbmRpZgog
CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCitTdHJpbmcgbG9j
YWxpemVkVGltZUZvcm1hdFRleHQoKQoreworICAgIHJldHVybiBMb2NhbGVJQ1U6OmN1cnJlbnRM
b2NhbGUoKS0+bG9jYWxpemVkVGltZUZvcm1hdFRleHQoKTsKK30KKworU3RyaW5nIGxvY2FsaXpl
ZFNob3J0VGltZUZvcm1hdFRleHQoKQoreworICAgIHJldHVybiBMb2NhbGVJQ1U6OmN1cnJlbnRM
b2NhbGUoKS0+bG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpOworfQorCitjb25zdCBWZWN0
b3I8U3RyaW5nPiYgdGltZUFNUE1MYWJlbHMoKQoreworICAgIHJldHVybiBMb2NhbGVJQ1U6OmN1
cnJlbnRMb2NhbGUoKS0+dGltZUFNUE1MYWJlbHMoKTsKK30KKyNlbmRpZgorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCBlYmNmYTYwYzY1ZDY4NGZmZDBhZjRmZTViZWI5YTA4
MDNlOWI5ZTg1Li5kNzY1ZWM2NjZiMmQ3MjMzZWJjNzUyMmFlMTVmZGRmYTdiMjIxYzA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTEyMyw2ICsxMjMsNyBAQAogICAgICAgICAg
ICAgJ3Rlc3RzL0xldmVsREJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvTGlua0hpZ2hs
aWdodFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9MaXN0ZW5lckxlYWtUZXN0LmNwcCcs
CisgICAgICAgICAgICAndGVzdHMvTG9jYWxpemVkRGF0ZUlDVVRlc3QuY3BwJywKICAgICAgICAg
ICAgICd0ZXN0cy9Mb2NhbGl6ZWROdW1iZXJJQ1VUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVz
dHMvTW9ja0NDUXVhZEN1bGxlci5oJywKICAgICAgICAgICAgICd0ZXN0cy9PcGFxdWVSZWN0VHJh
Y2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZVRlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxpemVkRGF0ZUlDVVRlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGl6ZWREYXRlSUNVVGVzdC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWE3MjVhOWY3NzFlYzdmN2FlM2I0OGZjYWM2YTVjOTdlMTk4MDFhZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxpemVkRGF0ZUlDVVRlc3QuY3Bw
CkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOUFVU
X1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisKKyNpbmNsdWRlICJMb2NhbGVJQ1UuaCIKKyNp
bmNsdWRlIDxndGVzdC9ndGVzdC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworY2xhc3MgTG9jYWxpemVkRGF0ZUlDVVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0
IHsKK3B1YmxpYzoKKyAgICAvLyBMYWJlbHMgY2xhc3MgaXMgdXNlZCBmb3IgcHJpbnRpbmcgcmVz
dWx0cyBpbiBFWFBFQ1RfRVEgbWFjcm8uCisgICAgY2xhc3MgTGFiZWxzIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIExhYmVscyhjb25zdCBWZWN0b3I8U3RyaW5nPiBsYWJlbHMpCisgICAgICAgICAg
ICA6IG1fbGFiZWxzKGxhYmVscykKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgLy8g
RklYTUU6IFdlIHNob3VsZCB1c2UgVmVjdG9yPFQ+OjpvcGVyYXRvcj09KCkgaWYgaXQgd29ya3Mu
CisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBMYWJlbHMmIG90aGVyKSBjb25zdAorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAobV9sYWJlbHMuc2l6ZSgpICE9IG90aGVyLm1fbGFiZWxz
LnNpemUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBtX2xhYmVscy5zaXplKCk7ICsraW5kZXgpCisg
ICAgICAgICAgICAgICAgaWYgKG1fbGFiZWxzW2luZGV4XSAhPSBvdGhlci5tX2xhYmVsc1tpbmRl
eF0pCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QKKyAg
ICAgICAgeworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoImxhYmVscygiKTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5k
ZXggPSAwOyBpbmRleCA8IG1fbGFiZWxzLnNpemUoKTsgKytpbmRleCkgeworICAgICAgICAgICAg
ICAgIGlmIChpbmRleCkKKyAgICAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIiwgIik7
CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyInKTsKKyAgICAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZChtX2xhYmVsc1tpbmRleF0pOworICAgICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCciJyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgn
KScpOworICAgICAgICAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICAgICAgfQor
CisgICAgcHJpdmF0ZToKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gbV9sYWJlbHM7CisgICAgfTsK
KworcHJvdGVjdGVkOgorICAgIExhYmVscyBsYWJlbHMoY29uc3QgU3RyaW5nJiBlbGVtZW50MSwg
Y29uc3QgU3RyaW5nJiBlbGVtZW50MikKKyAgICB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGxh
YmVscyA9IFZlY3RvcjxTdHJpbmc+KCk7CisgICAgICAgIGxhYmVscy5hcHBlbmQoZWxlbWVudDEp
OworICAgICAgICBsYWJlbHMuYXBwZW5kKGVsZW1lbnQyKTsKKyAgICAgICAgcmV0dXJuIExhYmVs
cyhsYWJlbHMpOworICAgIH0KKworICAgIFN0cmluZyBsb2NhbGl6ZWREYXRlRm9ybWF0VGV4dChj
b25zdCBjaGFyKiBsb2NhbGVTdHJpbmcpCisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxlSUNV
PiBsb2NhbGUgPSBMb2NhbGVJQ1U6OmNyZWF0ZShsb2NhbGVTdHJpbmcpOworICAgICAgICByZXR1
cm4gbG9jYWxlLT5sb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpOworICAgIH0KKworICAgIFN0cmlu
ZyBsb2NhbGl6ZWRTaG9ydERhdGVGb3JtYXRUZXh0KGNvbnN0IGNoYXIqIGxvY2FsZVN0cmluZykK
KyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVJQ1U+IGxvY2FsZSA9IExvY2FsZUlDVTo6Y3Jl
YXRlKGxvY2FsZVN0cmluZyk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPmxvY2FsaXplZFNob3J0
VGltZUZvcm1hdFRleHQoKTsKKyAgICB9CisKKyAgICBMYWJlbHMgdGltZUFNUE1MYWJlbHMoY29u
c3QgY2hhciogbG9jYWxlU3RyaW5nKQorICAgIHsKKyAgICAgICAgT3duUHRyPExvY2FsZUlDVT4g
bG9jYWxlID0gTG9jYWxlSUNVOjpjcmVhdGUobG9jYWxlU3RyaW5nKTsKKyAgICAgICAgcmV0dXJu
IExhYmVscyhsb2NhbGUtPnRpbWVBTVBNTGFiZWxzKCkpOworICAgIH0KK307CisKK3N0ZDo6b3N0
cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBMb2NhbGl6ZWREYXRlSUNV
VGVzdDo6TGFiZWxzJiBsYWJlbHMpCit7CisgICAgcmV0dXJuIG9zIDw8IGxhYmVscy50b1N0cmlu
ZygpLnV0ZjgoKS5kYXRhKCk7Cit9CisKK1RFU1RfRihMb2NhbGl6ZWREYXRlSUNVVGVzdCwgbG9j
YWxpemVkRGF0ZUZvcm1hdFRleHQpCit7CisgICAgLy8gTm90ZTogRVhQRUNUX0VRKFN0cmluZywg
U3RyaW5nKSBkb2Vzbid0IHByaW50IHJlc3VsdCBhcyBzdHJpbmcuCisgICAgRVhQRUNUX1NUUkVR
KCJoOm1tOnNzIGEiLCBsb2NhbGl6ZWREYXRlRm9ybWF0VGV4dCgiZW5fVVMiKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkhIOm1tOnNzIiwgbG9jYWxpemVkRGF0ZUZvcm1hdFRl
eHQoImZyIikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJIOm1tOnNzIiwgbG9j
YWxpemVkRGF0ZUZvcm1hdFRleHQoImphIikudXRmOCgpLmRhdGEoKSk7Cit9CisKK1RFU1RfRihM
b2NhbGl6ZWREYXRlSUNVVGVzdCwgbG9jYWxpemVkU2hvcnREYXRlRm9ybWF0VGV4dCkKK3sKKyAg
ICBFWFBFQ1RfU1RSRVEoImg6bW0gYSIsIGxvY2FsaXplZFNob3J0RGF0ZUZvcm1hdFRleHQoImVu
X1VTIikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJISDptbSIsIGxvY2FsaXpl
ZFNob3J0RGF0ZUZvcm1hdFRleHQoImZyIikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJIOm1tIiwgbG9jYWxpemVkU2hvcnREYXRlRm9ybWF0VGV4dCgiamEiKS51dGY4KCkuZGF0
YSgpKTsKK30KKworVEVTVF9GKExvY2FsaXplZERhdGVJQ1VUZXN0LCB0aW1lQU1QTUxhYmVscykK
K3sKKyAgICBFWFBFQ1RfRVEobGFiZWxzKCJBTSIsICJQTSIpLCB0aW1lQU1QTUxhYmVscygiZW5f
VVMiKSk7CisgICAgRVhQRUNUX0VRKGxhYmVscygiQU0iLCAiUE0iKSwgdGltZUFNUE1MYWJlbHMo
ImZyIikpOworCisgICAgVUNoYXIgamFBTVszXSA9IHsgMHg1MzQ4LCAweDUyNGQsIDAgfTsKKyAg
ICBVQ2hhciBqYVBNWzNdID0geyAweDUzNDgsIDB4NUY4QywgMCB9OworICAgIEVYUEVDVF9FUShs
YWJlbHMoU3RyaW5nKGphQU0pLCBTdHJpbmcoamFQTSkpLCB0aW1lQU1QTUxhYmVscygiamEiKSk7
Cit9CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149883</attachid>
            <date>2012-06-27 23:37:04 -0700</date>
            <delta_ts>2012-06-27 23:46:39 -0700</delta_ts>
            <desc>Patch 5</desc>
            <filename>bug-89965-20120628153704.patch</filename>
            <type>text/plain</type>
            <size>10258</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUwYmM3YWU2MGI4ZTU4
NzNlOWUwYWQ0Yjg3MTU0OTNjYjA4ZWZiZS4uNDY0NGZjMjFmMzRjODUwOGUyMTNkMWYxMzFjYWNj
NjRhNTQ2MGIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA2LTI4ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1BsYXRmb3JtXSBJ
bXBsZW1lbnQgZnVuY3Rpb25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5mb3JtYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTY1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbnRyb2R1Y2VzIHRocmVlIGZ1bmN0aW9ucyBmb3IgdGltZSBmb3JtYXQ6CisgICAgICAgICAg
MS4gbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIGxvY2FsaXplZFNob3J0
VGltZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIHRpbWVBTVBNTGFiZWxzKCkKKyAgICAgICAg
Zm9yIGlucHV0IHR5cGUgInRpbWUiIGlmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKSBpcyB0cnVlLgorCisgICAgICAgIEhhdmluZyBib3RoIGxvY2FsaXplZFRpbWVGb3Jt
YXQgYW5kIGxvY2FsaXplZFNob3J0VGltZUZvcm1hdCBpcyBmb3IKKyAgICAgICAgZGlzcGxheWlu
ZyBvbmx5IHR3byBmaWVsZHMgaG91ciBhbmQgbWludXRlIHdoZW4gc3RlcCA+PSA2MC4gVGhlcmUg
aXMKKyAgICAgICAgbm8gd2F5IHRvIHJlbW92ZSBzZWNvbmQgZmllbGQgZnJvbSAiaDptOnMiIHBh
dHRlcm4gc3RyaW5nLiBXZSBkb24ndAorICAgICAgICBrbm93IHdoZXRoZXIgIjoiIGFmdGVyICJt
IiBiZWxvbmdzIG1pbnV0ZSBvciBzZWNvbmQgZmllbGQuCisKKyAgICAgICAgVGVzdDogV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcAorCisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjpM
b2NhbGVJQ1UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRmFsbGJhY2tBTVBNTGFiZWxzKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVJQ1U6OmluaXRpYWxpemVEYXRlVGltZUZv
cm1hdCk6ICBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZUlDVTo6bG9jYWxpemVkVGlt
ZUZvcm1hdFRleHQpOiAgQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVJQ1U6OmxvY2Fs
aXplZFNob3J0VGltZUZvcm1hdFRleHQpOiAgQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bGVJQ1U6OnRpbWVBTVBNTGFiZWxzKTogIEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
TG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkRGF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0
ZUlDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCk6ICBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQpOiAg
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0aW1lQU1QTUxhYmVscyk6ICBBZGRlZC4KKwogMjAx
Mi0wNi0yNyAgTWFyeSBXdSAgPG1hcnkud3VAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAg
IFtCbGFja0JlcnJ5XSAwLWxlbmd0aCByZXNwb25zZSB3aXRoIG5vIGNvbnRlbnQtdHlwZSBzaG91
bGRuJ3QgZG93bmxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNzc1M2E4NjUyMTQ2
NDg2YzNiOTk1NDZhZjc4MTRiNWUxOTRlNTI3MC4uYWEwN2I3N2E0Nzk1ZjRjN2Y5YWUyMWZkZTMz
YjU3MDdiYjlkMzQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAxMi0wNi0yNyAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtQbGF0Zm9ybV0gSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgbG9jYWxpemVkIHRpbWUg
Zm9ybWF0IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTk2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBuZXcgdGVzdCBMb2NhbGl6ZWREYXRlSUNVVGVzdCBp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICAgICAgaXMgdHJ1
ZS4KKworICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAgICAqIHRlc3RzL0xvY2FsaXplZERh
dGVJQ1VUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChMb2NhbGl6ZWREYXRlSUNVVGVzdCk6Cisg
ICAgICAgIChMYWJlbHMpOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OkxhYmVsczo6
TGFiZWxzKToKKyAgICAgICAgKExvY2FsaXplZERhdGVJQ1VUZXN0OjpMYWJlbHM6Om9wZXJhdG9y
PT0pOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OkxhYmVsczo6dG9TdHJpbmcpOgor
ICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OmxhYmVscyk6CisgICAgICAgIChMb2NhbGl6
ZWREYXRlSUNVVGVzdDo6bG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAoTG9jYWxp
emVkRGF0ZUlDVVRlc3Q6OmxvY2FsaXplZFNob3J0RGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAo
TG9jYWxpemVkRGF0ZUlDVVRlc3Q6OnRpbWVBTVBNTGFiZWxzKToKKyAgICAgICAgKG9wZXJhdG9y
PDwpOgorICAgICAgICAoVEVTVF9GKToKKwogMjAxMi0wNi0yNyAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjEyMTQwNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcApp
bmRleCA3MzVmMDk5ZDE4Y2RjYmYzNzQ4ODQ0OTNhNGMxYjY1YTE5MmNlOGViLi41MWJhNGFhMzVl
ZWM0NTRkNjFmOTRkMWE2NmJhODg4M2U5MDc5Yjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC01MSw2ICs1MSwxMSBAQCBMb2NhbGVJQ1U6OkxvY2Fs
ZUlDVShjb25zdCBjaGFyKiBsb2NhbGUpCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICAg
ICAsIG1fZmlyc3REYXlPZldlZWsoMCkKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJ
TUVfTVVMVElQTEVfRklFTERTKQorICAgICwgbV9tZWRpdW1UaW1lRm9ybWF0KDApCisgICAgLCBt
X3Nob3J0VGltZUZvcm1hdCgwKQorICAgICwgbV9kaWRDcmVhdGVUaW1lRm9ybWF0KGZhbHNlKQor
I2VuZGlmCiB7CiB9CiAKQEAgLTMxNyw3ICszMjIsNyBAQCBTdHJpbmcgTG9jYWxlSUNVOjpmb3Jt
YXRMb2NhbGl6ZWREYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cykKICAg
ICByZXR1cm4gU3RyaW5nOjphZG9wdChidWZmZXIpOwogfQogCi0jaWYgRU5BQkxFKENBTEVOREFS
X1BJQ0tFUikKKyNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKSB8fCBFTkFCTEUoSU5QVVRfVFlQ
RV9USU1FX01VTFRJUExFX0ZJRUxEUykKIHN0YXRpYyBTdHJpbmcgZ2V0RGF0ZUZvcm1hdFBhdHRl
cm4oY29uc3QgVURhdGVGb3JtYXQqIGRhdGVGb3JtYXQpCiB7CiAgICAgaWYgKCFkYXRlRm9ybWF0
KQpAQCAtMzM0LDcgKzMzOSw5IEBAIHN0YXRpYyBTdHJpbmcgZ2V0RGF0ZUZvcm1hdFBhdHRlcm4o
Y29uc3QgVURhdGVGb3JtYXQqIGRhdGVGb3JtYXQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwogICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KGJ1ZmZlcik7CiB9CisjZW5kaWYKIAorI2lm
IEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNJQ1VZZWFyU3lt
Ym9sKFVDaGFyIGxldHRlcikKIHsKICAgICByZXR1cm4gbGV0dGVyID09ICd5JyB8fCBsZXR0ZXIg
PT0gJ1knOwpAQCAtNTAxLDYgKzUwOCw1NCBAQCBTdHJpbmcgTG9jYWxlSUNVOjpsb2NhbGl6ZWRE
ZWNpbWFsU2VwYXJhdG9yKCkKICAgICByZXR1cm4gbV9kZWNpbWFsU3ltYm9sc1tEZWNpbWFsU2Vw
YXJhdG9ySW5kZXhdOwogfQogCitzdGF0aWMgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGNy
ZWF0ZUZhbGxiYWNrQU1QTUxhYmVscygpCit7CisgICAgT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4g
bGFiZWxzID0gYWRvcHRQdHIobmV3IFZlY3RvcjxTdHJpbmc+KCkpOworICAgIGxhYmVscy0+cmVz
ZXJ2ZUNhcGFjaXR5KDIpOworICAgIGxhYmVscy0+YXBwZW5kKCJBTSIpOworICAgIGxhYmVscy0+
YXBwZW5kKCJQTSIpOworICAgIHJldHVybiBsYWJlbHMucmVsZWFzZSgpOworfQorCit2b2lkIExv
Y2FsZUlDVTo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KCkKK3sKKyAgICBpZiAobV9kaWRDcmVh
dGVUaW1lRm9ybWF0KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBhc3N1bWUgSUNVIG1l
ZGl1bSB0aW1lIHBhdHRlcm4gYW5kIHNob3J0IHRpbWUgcGF0dGVybiBhcmUgY29tcGF0aWJsZQor
ICAgIC8vIHdpdGggTERNTCwgYmVjYXVzZSBJQ1Ugc3BlY2lmaWMgcGF0dGVybiBjaGFyYWN0ZXIg
IlYiIGRvZXNuJ3QgYXBwZWFyCisgICAgLy8gaW4gYm90aCBtZWRpdW0gYW5kIHNob3J0IHRpbWUg
cGF0dGVybi4KKyAgICBtX21lZGl1bVRpbWVGb3JtYXQgPSBvcGVuRGF0ZUZvcm1hdChVREFUX01F
RElVTSwgVURBVF9OT05FKTsKKyAgICBtX2xvY2FsaXplZFRpbWVGb3JtYXRUZXh0ID0gZ2V0RGF0
ZUZvcm1hdFBhdHRlcm4obV9tZWRpdW1UaW1lRm9ybWF0KTsKKworICAgIG1fc2hvcnRUaW1lRm9y
bWF0ID0gb3BlbkRhdGVGb3JtYXQoVURBVF9TSE9SVCwgVURBVF9OT05FKTsKKyAgICBtX2xvY2Fs
aXplZFNob3J0VGltZUZvcm1hdFRleHQgPSBnZXREYXRlRm9ybWF0UGF0dGVybihtX3Nob3J0VGlt
ZUZvcm1hdCk7CisKKyAgICBtX3RpbWVBTVBNTGFiZWxzID0gY3JlYXRlTGFiZWxWZWN0b3IobV9t
ZWRpdW1UaW1lRm9ybWF0LCBVREFUX0FNX1BNUywgVUNBTF9BTSwgMik7CisgICAgaWYgKCFtX3Rp
bWVBTVBNTGFiZWxzKQorICAgICAgICBtX3RpbWVBTVBNTGFiZWxzID0gY3JlYXRlRmFsbGJhY2tB
TVBNTGFiZWxzKCk7CisKKyAgICBtX2RpZENyZWF0ZVRpbWVGb3JtYXQgPSB0cnVlOworfQorCitT
dHJpbmcgTG9jYWxlSUNVOjpsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgaW5pdGlh
bGl6ZURhdGVUaW1lRm9ybWF0KCk7CisgICAgcmV0dXJuIG1fbG9jYWxpemVkVGltZUZvcm1hdFRl
eHQ7Cit9CisKK1N0cmluZyBMb2NhbGVJQ1U6OmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQo
KQoreworICAgIGluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgpOworICAgIHJldHVybiBtX2xvY2Fs
aXplZFNob3J0VGltZUZvcm1hdFRleHQ7Cit9CisKK2NvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2Nh
bGVJQ1U6OnRpbWVBTVBNTGFiZWxzKCkKK3sKKyAgICBpbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQo
KTsKKyAgICByZXR1cm4gKm1fdGltZUFNUE1MYWJlbHM7Cit9CisKICNlbmRpZgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0xvY2FsZUlDVS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaApp
bmRleCAyZmI4NGY1MjliYWJkYTYxYTAwYWRmMWVlZjM2ZTc3MTU4OWZjYTRiLi4wODY2NzgwNmQz
YmJhYTVmYWUyOTI3OTdmNGI3NzI4ZDdhZjU4MjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTG9jYWxlSUNVLmgKQEAgLTY3LDYgKzY3LDEyIEBAIHB1YmxpYzoKICAgICB1bnNpZ25l
ZCBmaXJzdERheU9mV2VlaygpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1F
X01VTFRJUExFX0ZJRUxEUykKKyAgICBTdHJpbmcgbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKTsK
KyAgICBTdHJpbmcgbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpOworICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB0aW1lQU1QTUxhYmVscygpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
c3RhdGljIFBhc3NPd25QdHI8TG9jYWxlSUNVPiBjcmVhdGVGb3JDdXJyZW50TG9jYWxlKCk7CiAg
ICAgZXhwbGljaXQgTG9jYWxlSUNVKGNvbnN0IGNoYXIqKTsKQEAgLTgyLDEwICs4OCwxNyBAQCBw
cml2YXRlOgogCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICAgICB2b2lkIGluaXRpYWxp
emVMb2NhbGl6ZWREYXRlRm9ybWF0VGV4dCgpOwotICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiBjcmVhdGVMYWJlbFZlY3Rvcihjb25zdCBVRGF0ZUZvcm1hdCosIFVEYXRlRm9ybWF0U3lt
Ym9sVHlwZSwgaW50MzJfdCBzdGFydEluZGV4LCBpbnQzMl90IHNpemUpOwogICAgIHZvaWQgaW5p
dGlhbGl6ZUNhbGVuZGFyKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIp
IHx8IEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorICAgIFBhc3NPd25Q
dHI8VmVjdG9yPFN0cmluZz4gPiBjcmVhdGVMYWJlbFZlY3Rvcihjb25zdCBVRGF0ZUZvcm1hdCos
IFVEYXRlRm9ybWF0U3ltYm9sVHlwZSwgaW50MzJfdCBzdGFydEluZGV4LCBpbnQzMl90IHNpemUp
OworI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykK
KyAgICB2b2lkIGluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgpOworI2VuZGlmCisKICAgICBDU3Ry
aW5nIG1fbG9jYWxlOwogICAgIFVOdW1iZXJGb3JtYXQqIG1fbnVtYmVyRm9ybWF0OwogICAgIFVE
YXRlRm9ybWF0KiBtX3Nob3J0RGF0ZUZvcm1hdDsKQEAgLTEwOSw2ICsxMjIsMTUgQEAgcHJpdmF0
ZToKICAgICBPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBtX3dlZWtEYXlTaG9ydExhYmVsczsKICAg
ICB1bnNpZ25lZCBtX2ZpcnN0RGF5T2ZXZWVrOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICBVRGF0ZUZvcm1hdCogbV9tZWRpdW1UaW1l
Rm9ybWF0OworICAgIFVEYXRlRm9ybWF0KiBtX3Nob3J0VGltZUZvcm1hdDsKKyAgICBTdHJpbmcg
bV9sb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dDsKKyAgICBTdHJpbmcgbV9sb2NhbGl6ZWRTaG9ydFRp
bWVGb3JtYXRUZXh0OworICAgIE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IG1fdGltZUFNUE1MYWJl
bHM7CisgICAgYm9vbCBtX2RpZENyZWF0ZVRpbWVGb3JtYXQ7CisjZW5kaWYKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlLmgKaW5kZXggNGRiNWVh
YzhlMzViNzU0YjlkODM1MDI3ZTQyMDc1OGEwNGY4ZjlkNS4uYWI2ODU0ZTUzYjRmYzZlODFhNmEw
MTU2NTUzMzAzYzgzMDE1OGEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGl6ZWREYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGl6ZWREYXRlLmgKQEAgLTYwLDYgKzYwLDIyIEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB3
ZWVrRGF5U2hvcnRMYWJlbHMoKTsKIAogLy8gVGhlIGZpcnN0IGRheSBvZiBhIHdlZWsuIDAgaXMg
U3VuZGF5LCBhbmQgNiBpcyBTYXR1cmRheS4KIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCk7CisK
KyNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisv
LyBSZXR1cm5zIHRpbWUgZm9ybWF0IGluIFVuaWNvZGUgVFIzNSBMRE1MWzFdIGNvbnRhaW5pbmcg
aG91ciwgbWludXRlLCBhbmQKKy8vIHNlY29uZCB3aXRoIG9wdGlvbmFsIHBlcmlvZChBTS9QTSks
IGUuZy4gImg6bW06c3MgYSIKKy8vIFsxXSBMRE1MIGh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRz
L3RyMzUvdHIzNS02Lmh0bWwjRGF0ZV9Gb3JtYXRfUGF0dGVybnMKK1N0cmluZyBsb2NhbGl6ZWRU
aW1lRm9ybWF0VGV4dCgpOworCisvLyBSZXR1cm5zIHRpbWUgZm9ybWF0IGluIFVuaWNvZGUgVFIz
NSBMRE1MIGNvbnRhaW5pbmcgaG91ciwgYW5kIG1pbnV0ZQorLy8gd2l0aCBvcHRpb25hbCBwZXJp
b2QoQU0vUE0pLCBlLmcuICJoOm1tIGEiCisvLyBOb3RlOiBTb21lIHBsYXRmb3JtcyByZXR1cm4g
c2FtZSB2YWx1ZSBhcyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpLgorU3RyaW5nIGxvY2FsaXpl
ZFNob3J0VGltZUZvcm1hdFRleHQoKTsKKworLy8gUmV0dXJucyBsb2NhbGl6ZWQgcGVyaW9kIGZp
ZWxkKEFNL1BNKSBzdHJpbmdzLgorY29uc3QgVmVjdG9yPFN0cmluZz4mIHRpbWVBTVBNTGFiZWxz
KCk7CiAjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZUlDVS5jcHAKaW5kZXggMTBjYjZmMTMyY2Uz
OTNlZmU5YmRhNGYwZDc3MGMwYzhmOWVjYjdmOC4uMTlkNmQxNTgxYWIwNDk3YzQxMjY4MDI0M2I2
NDU4YTNlY2U4ZDVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGl6ZWREYXRlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xv
Y2FsaXplZERhdGVJQ1UuY3BwCkBAIC05Miw0ICs5MiwyMSBAQCB1bnNpZ25lZCBmaXJzdERheU9m
V2VlaygpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKQorU3RyaW5nIGxvY2FsaXplZFRpbWVGb3JtYXRUZXh0KCkKK3sKKyAgICByZXR1cm4g
TG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPmxvY2FsaXplZFRpbWVGb3JtYXRUZXh0KCk7Cit9
CisKK1N0cmluZyBsb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCkKK3sKKyAgICByZXR1cm4g
TG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQo
KTsKK30KKworY29uc3QgVmVjdG9yPFN0cmluZz4mIHRpbWVBTVBNTGFiZWxzKCkKK3sKKyAgICBy
ZXR1cm4gTG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPnRpbWVBTVBNTGFiZWxzKCk7Cit9Cisj
ZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
aSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggYzQxMGU2ZjRmNzU4
NGZkMjBlODg4M2EwMGYxZWMwNjA3OGUyNzI2Ny4uYThkZDNhNjI2NTM1MDUzNzAxNTBjNjVlZThk
ZmNlMDkxN2U3ODRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC0xMjMsNiAr
MTIzLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9MZXZlbERCVGVzdC5jcHAnLAogICAgICAgICAg
ICAgJ3Rlc3RzL0xpbmtIaWdobGlnaHRUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvTGlz
dGVuZXJMZWFrVGVzdC5jcHAnLAorICAgICAgICAgICAgJ3Rlc3RzL0xvY2FsaXplZERhdGVJQ1VU
ZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvTG9jYWxpemVkTnVtYmVySUNVVGVzdC5jcHAn
LAogICAgICAgICAgICAgJ3Rlc3RzL01vY2tDQ1F1YWRDdWxsZXIuaCcsCiAgICAgICAgICAgICAn
dGVzdHMvT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LmNwcCcsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149886</attachid>
            <date>2012-06-27 23:46:44 -0700</date>
            <delta_ts>2012-06-28 00:30:19 -0700</delta_ts>
            <desc>Patch 6</desc>
            <filename>bug-89965-20120628154644.patch</filename>
            <type>text/plain</type>
            <size>15651</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUwYmM3YWU2MGI4ZTU4
NzNlOWUwYWQ0Yjg3MTU0OTNjYjA4ZWZiZS4uNDY0NGZjMjFmMzRjODUwOGUyMTNkMWYxMzFjYWNj
NjRhNTQ2MGIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA2LTI4ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1BsYXRmb3JtXSBJ
bXBsZW1lbnQgZnVuY3Rpb25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5mb3JtYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTY1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpbnRyb2R1Y2VzIHRocmVlIGZ1bmN0aW9ucyBmb3IgdGltZSBmb3JtYXQ6CisgICAgICAgICAg
MS4gbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIGxvY2FsaXplZFNob3J0
VGltZUZvcm1hdFRleHQoKQorICAgICAgICAgIDIuIHRpbWVBTVBNTGFiZWxzKCkKKyAgICAgICAg
Zm9yIGlucHV0IHR5cGUgInRpbWUiIGlmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKSBpcyB0cnVlLgorCisgICAgICAgIEhhdmluZyBib3RoIGxvY2FsaXplZFRpbWVGb3Jt
YXQgYW5kIGxvY2FsaXplZFNob3J0VGltZUZvcm1hdCBpcyBmb3IKKyAgICAgICAgZGlzcGxheWlu
ZyBvbmx5IHR3byBmaWVsZHMgaG91ciBhbmQgbWludXRlIHdoZW4gc3RlcCA+PSA2MC4gVGhlcmUg
aXMKKyAgICAgICAgbm8gd2F5IHRvIHJlbW92ZSBzZWNvbmQgZmllbGQgZnJvbSAiaDptOnMiIHBh
dHRlcm4gc3RyaW5nLiBXZSBkb24ndAorICAgICAgICBrbm93IHdoZXRoZXIgIjoiIGFmdGVyICJt
IiBiZWxvbmdzIG1pbnV0ZSBvciBzZWNvbmQgZmllbGQuCisKKyAgICAgICAgVGVzdDogV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xvY2FsaXplZERhdGVJQ1VUZXN0LmNwcAorCisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjpM
b2NhbGVJQ1UpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRmFsbGJhY2tBTVBNTGFiZWxzKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVJQ1U6OmluaXRpYWxpemVEYXRlVGltZUZv
cm1hdCk6ICBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZUlDVTo6bG9jYWxpemVkVGlt
ZUZvcm1hdFRleHQpOiAgQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVJQ1U6OmxvY2Fs
aXplZFNob3J0VGltZUZvcm1hdFRleHQpOiAgQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bGVJQ1U6OnRpbWVBTVBNTGFiZWxzKTogIEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
TG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkRGF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0
ZUlDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCk6ICBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQpOiAg
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0aW1lQU1QTUxhYmVscyk6ICBBZGRlZC4KKwogMjAx
Mi0wNi0yNyAgTWFyeSBXdSAgPG1hcnkud3VAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAg
IFtCbGFja0JlcnJ5XSAwLWxlbmd0aCByZXNwb25zZSB3aXRoIG5vIGNvbnRlbnQtdHlwZSBzaG91
bGRuJ3QgZG93bmxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNzc1M2E4NjUyMTQ2
NDg2YzNiOTk1NDZhZjc4MTRiNWUxOTRlNTI3MC4uYWEwN2I3N2E0Nzk1ZjRjN2Y5YWUyMWZkZTMz
YjU3MDdiYjlkMzQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAxMi0wNi0yNyAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtQbGF0Zm9ybV0gSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgbG9jYWxpemVkIHRpbWUg
Zm9ybWF0IGluZm9ybWF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTk2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBuZXcgdGVzdCBMb2NhbGl6ZWREYXRlSUNVVGVzdCBp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICAgICAgaXMgdHJ1
ZS4KKworICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAgICAqIHRlc3RzL0xvY2FsaXplZERh
dGVJQ1VUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChMb2NhbGl6ZWREYXRlSUNVVGVzdCk6Cisg
ICAgICAgIChMYWJlbHMpOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OkxhYmVsczo6
TGFiZWxzKToKKyAgICAgICAgKExvY2FsaXplZERhdGVJQ1VUZXN0OjpMYWJlbHM6Om9wZXJhdG9y
PT0pOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OkxhYmVsczo6dG9TdHJpbmcpOgor
ICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OmxhYmVscyk6CisgICAgICAgIChMb2NhbGl6
ZWREYXRlSUNVVGVzdDo6bG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAoTG9jYWxp
emVkRGF0ZUlDVVRlc3Q6OmxvY2FsaXplZFNob3J0RGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAo
TG9jYWxpemVkRGF0ZUlDVVRlc3Q6OnRpbWVBTVBNTGFiZWxzKToKKyAgICAgICAgKG9wZXJhdG9y
PDwpOgorICAgICAgICAoVEVTVF9GKToKKwogMjAxMi0wNi0yNyAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjEyMTQwNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcApp
bmRleCA3MzVmMDk5ZDE4Y2RjYmYzNzQ4ODQ0OTNhNGMxYjY1YTE5MmNlOGViLi41MWJhNGFhMzVl
ZWM0NTRkNjFmOTRkMWE2NmJhODg4M2U5MDc5Yjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC01MSw2ICs1MSwxMSBAQCBMb2NhbGVJQ1U6OkxvY2Fs
ZUlDVShjb25zdCBjaGFyKiBsb2NhbGUpCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICAg
ICAsIG1fZmlyc3REYXlPZldlZWsoMCkKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJ
TUVfTVVMVElQTEVfRklFTERTKQorICAgICwgbV9tZWRpdW1UaW1lRm9ybWF0KDApCisgICAgLCBt
X3Nob3J0VGltZUZvcm1hdCgwKQorICAgICwgbV9kaWRDcmVhdGVUaW1lRm9ybWF0KGZhbHNlKQor
I2VuZGlmCiB7CiB9CiAKQEAgLTMxNyw3ICszMjIsNyBAQCBTdHJpbmcgTG9jYWxlSUNVOjpmb3Jt
YXRMb2NhbGl6ZWREYXRlKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cykKICAg
ICByZXR1cm4gU3RyaW5nOjphZG9wdChidWZmZXIpOwogfQogCi0jaWYgRU5BQkxFKENBTEVOREFS
X1BJQ0tFUikKKyNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKSB8fCBFTkFCTEUoSU5QVVRfVFlQ
RV9USU1FX01VTFRJUExFX0ZJRUxEUykKIHN0YXRpYyBTdHJpbmcgZ2V0RGF0ZUZvcm1hdFBhdHRl
cm4oY29uc3QgVURhdGVGb3JtYXQqIGRhdGVGb3JtYXQpCiB7CiAgICAgaWYgKCFkYXRlRm9ybWF0
KQpAQCAtMzM0LDcgKzMzOSw5IEBAIHN0YXRpYyBTdHJpbmcgZ2V0RGF0ZUZvcm1hdFBhdHRlcm4o
Y29uc3QgVURhdGVGb3JtYXQqIGRhdGVGb3JtYXQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwogICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KGJ1ZmZlcik7CiB9CisjZW5kaWYKIAorI2lm
IEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNJQ1VZZWFyU3lt
Ym9sKFVDaGFyIGxldHRlcikKIHsKICAgICByZXR1cm4gbGV0dGVyID09ICd5JyB8fCBsZXR0ZXIg
PT0gJ1knOwpAQCAtNTAxLDYgKzUwOCw1NCBAQCBTdHJpbmcgTG9jYWxlSUNVOjpsb2NhbGl6ZWRE
ZWNpbWFsU2VwYXJhdG9yKCkKICAgICByZXR1cm4gbV9kZWNpbWFsU3ltYm9sc1tEZWNpbWFsU2Vw
YXJhdG9ySW5kZXhdOwogfQogCitzdGF0aWMgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGNy
ZWF0ZUZhbGxiYWNrQU1QTUxhYmVscygpCit7CisgICAgT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4g
bGFiZWxzID0gYWRvcHRQdHIobmV3IFZlY3RvcjxTdHJpbmc+KCkpOworICAgIGxhYmVscy0+cmVz
ZXJ2ZUNhcGFjaXR5KDIpOworICAgIGxhYmVscy0+YXBwZW5kKCJBTSIpOworICAgIGxhYmVscy0+
YXBwZW5kKCJQTSIpOworICAgIHJldHVybiBsYWJlbHMucmVsZWFzZSgpOworfQorCit2b2lkIExv
Y2FsZUlDVTo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KCkKK3sKKyAgICBpZiAobV9kaWRDcmVh
dGVUaW1lRm9ybWF0KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBhc3N1bWUgSUNVIG1l
ZGl1bSB0aW1lIHBhdHRlcm4gYW5kIHNob3J0IHRpbWUgcGF0dGVybiBhcmUgY29tcGF0aWJsZQor
ICAgIC8vIHdpdGggTERNTCwgYmVjYXVzZSBJQ1Ugc3BlY2lmaWMgcGF0dGVybiBjaGFyYWN0ZXIg
IlYiIGRvZXNuJ3QgYXBwZWFyCisgICAgLy8gaW4gYm90aCBtZWRpdW0gYW5kIHNob3J0IHRpbWUg
cGF0dGVybi4KKyAgICBtX21lZGl1bVRpbWVGb3JtYXQgPSBvcGVuRGF0ZUZvcm1hdChVREFUX01F
RElVTSwgVURBVF9OT05FKTsKKyAgICBtX2xvY2FsaXplZFRpbWVGb3JtYXRUZXh0ID0gZ2V0RGF0
ZUZvcm1hdFBhdHRlcm4obV9tZWRpdW1UaW1lRm9ybWF0KTsKKworICAgIG1fc2hvcnRUaW1lRm9y
bWF0ID0gb3BlbkRhdGVGb3JtYXQoVURBVF9TSE9SVCwgVURBVF9OT05FKTsKKyAgICBtX2xvY2Fs
aXplZFNob3J0VGltZUZvcm1hdFRleHQgPSBnZXREYXRlRm9ybWF0UGF0dGVybihtX3Nob3J0VGlt
ZUZvcm1hdCk7CisKKyAgICBtX3RpbWVBTVBNTGFiZWxzID0gY3JlYXRlTGFiZWxWZWN0b3IobV9t
ZWRpdW1UaW1lRm9ybWF0LCBVREFUX0FNX1BNUywgVUNBTF9BTSwgMik7CisgICAgaWYgKCFtX3Rp
bWVBTVBNTGFiZWxzKQorICAgICAgICBtX3RpbWVBTVBNTGFiZWxzID0gY3JlYXRlRmFsbGJhY2tB
TVBNTGFiZWxzKCk7CisKKyAgICBtX2RpZENyZWF0ZVRpbWVGb3JtYXQgPSB0cnVlOworfQorCitT
dHJpbmcgTG9jYWxlSUNVOjpsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgaW5pdGlh
bGl6ZURhdGVUaW1lRm9ybWF0KCk7CisgICAgcmV0dXJuIG1fbG9jYWxpemVkVGltZUZvcm1hdFRl
eHQ7Cit9CisKK1N0cmluZyBMb2NhbGVJQ1U6OmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQo
KQoreworICAgIGluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgpOworICAgIHJldHVybiBtX2xvY2Fs
aXplZFNob3J0VGltZUZvcm1hdFRleHQ7Cit9CisKK2NvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2Nh
bGVJQ1U6OnRpbWVBTVBNTGFiZWxzKCkKK3sKKyAgICBpbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQo
KTsKKyAgICByZXR1cm4gKm1fdGltZUFNUE1MYWJlbHM7Cit9CisKICNlbmRpZgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0xvY2FsZUlDVS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaApp
bmRleCAyZmI4NGY1MjliYWJkYTYxYTAwYWRmMWVlZjM2ZTc3MTU4OWZjYTRiLi4wODY2NzgwNmQz
YmJhYTVmYWUyOTI3OTdmNGI3NzI4ZDdhZjU4MjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTG9jYWxlSUNVLmgKQEAgLTY3LDYgKzY3LDEyIEBAIHB1YmxpYzoKICAgICB1bnNpZ25l
ZCBmaXJzdERheU9mV2VlaygpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1F
X01VTFRJUExFX0ZJRUxEUykKKyAgICBTdHJpbmcgbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKTsK
KyAgICBTdHJpbmcgbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpOworICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB0aW1lQU1QTUxhYmVscygpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
c3RhdGljIFBhc3NPd25QdHI8TG9jYWxlSUNVPiBjcmVhdGVGb3JDdXJyZW50TG9jYWxlKCk7CiAg
ICAgZXhwbGljaXQgTG9jYWxlSUNVKGNvbnN0IGNoYXIqKTsKQEAgLTgyLDEwICs4OCwxNyBAQCBw
cml2YXRlOgogCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICAgICB2b2lkIGluaXRpYWxp
emVMb2NhbGl6ZWREYXRlRm9ybWF0VGV4dCgpOwotICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiBjcmVhdGVMYWJlbFZlY3Rvcihjb25zdCBVRGF0ZUZvcm1hdCosIFVEYXRlRm9ybWF0U3lt
Ym9sVHlwZSwgaW50MzJfdCBzdGFydEluZGV4LCBpbnQzMl90IHNpemUpOwogICAgIHZvaWQgaW5p
dGlhbGl6ZUNhbGVuZGFyKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIp
IHx8IEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorICAgIFBhc3NPd25Q
dHI8VmVjdG9yPFN0cmluZz4gPiBjcmVhdGVMYWJlbFZlY3Rvcihjb25zdCBVRGF0ZUZvcm1hdCos
IFVEYXRlRm9ybWF0U3ltYm9sVHlwZSwgaW50MzJfdCBzdGFydEluZGV4LCBpbnQzMl90IHNpemUp
OworI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykK
KyAgICB2b2lkIGluaXRpYWxpemVEYXRlVGltZUZvcm1hdCgpOworI2VuZGlmCisKICAgICBDU3Ry
aW5nIG1fbG9jYWxlOwogICAgIFVOdW1iZXJGb3JtYXQqIG1fbnVtYmVyRm9ybWF0OwogICAgIFVE
YXRlRm9ybWF0KiBtX3Nob3J0RGF0ZUZvcm1hdDsKQEAgLTEwOSw2ICsxMjIsMTUgQEAgcHJpdmF0
ZToKICAgICBPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBtX3dlZWtEYXlTaG9ydExhYmVsczsKICAg
ICB1bnNpZ25lZCBtX2ZpcnN0RGF5T2ZXZWVrOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICBVRGF0ZUZvcm1hdCogbV9tZWRpdW1UaW1l
Rm9ybWF0OworICAgIFVEYXRlRm9ybWF0KiBtX3Nob3J0VGltZUZvcm1hdDsKKyAgICBTdHJpbmcg
bV9sb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dDsKKyAgICBTdHJpbmcgbV9sb2NhbGl6ZWRTaG9ydFRp
bWVGb3JtYXRUZXh0OworICAgIE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IG1fdGltZUFNUE1MYWJl
bHM7CisgICAgYm9vbCBtX2RpZENyZWF0ZVRpbWVGb3JtYXQ7CisjZW5kaWYKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlLmgKaW5kZXggNGRiNWVh
YzhlMzViNzU0YjlkODM1MDI3ZTQyMDc1OGEwNGY4ZjlkNS4uYWI2ODU0ZTUzYjRmYzZlODFhNmEw
MTU2NTUzMzAzYzgzMDE1OGEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGl6ZWREYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGl6ZWREYXRlLmgKQEAgLTYwLDYgKzYwLDIyIEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB3
ZWVrRGF5U2hvcnRMYWJlbHMoKTsKIAogLy8gVGhlIGZpcnN0IGRheSBvZiBhIHdlZWsuIDAgaXMg
U3VuZGF5LCBhbmQgNiBpcyBTYXR1cmRheS4KIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCk7CisK
KyNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisv
LyBSZXR1cm5zIHRpbWUgZm9ybWF0IGluIFVuaWNvZGUgVFIzNSBMRE1MWzFdIGNvbnRhaW5pbmcg
aG91ciwgbWludXRlLCBhbmQKKy8vIHNlY29uZCB3aXRoIG9wdGlvbmFsIHBlcmlvZChBTS9QTSks
IGUuZy4gImg6bW06c3MgYSIKKy8vIFsxXSBMRE1MIGh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRz
L3RyMzUvdHIzNS02Lmh0bWwjRGF0ZV9Gb3JtYXRfUGF0dGVybnMKK1N0cmluZyBsb2NhbGl6ZWRU
aW1lRm9ybWF0VGV4dCgpOworCisvLyBSZXR1cm5zIHRpbWUgZm9ybWF0IGluIFVuaWNvZGUgVFIz
NSBMRE1MIGNvbnRhaW5pbmcgaG91ciwgYW5kIG1pbnV0ZQorLy8gd2l0aCBvcHRpb25hbCBwZXJp
b2QoQU0vUE0pLCBlLmcuICJoOm1tIGEiCisvLyBOb3RlOiBTb21lIHBsYXRmb3JtcyByZXR1cm4g
c2FtZSB2YWx1ZSBhcyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpLgorU3RyaW5nIGxvY2FsaXpl
ZFNob3J0VGltZUZvcm1hdFRleHQoKTsKKworLy8gUmV0dXJucyBsb2NhbGl6ZWQgcGVyaW9kIGZp
ZWxkKEFNL1BNKSBzdHJpbmdzLgorY29uc3QgVmVjdG9yPFN0cmluZz4mIHRpbWVBTVBNTGFiZWxz
KCk7CiAjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZUlDVS5jcHAKaW5kZXggMTBjYjZmMTMyY2Uz
OTNlZmU5YmRhNGYwZDc3MGMwYzhmOWVjYjdmOC4uMTlkNmQxNTgxYWIwNDk3YzQxMjY4MDI0M2I2
NDU4YTNlY2U4ZDVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGl6ZWREYXRlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xv
Y2FsaXplZERhdGVJQ1UuY3BwCkBAIC05Miw0ICs5MiwyMSBAQCB1bnNpZ25lZCBmaXJzdERheU9m
V2VlaygpCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKQorU3RyaW5nIGxvY2FsaXplZFRpbWVGb3JtYXRUZXh0KCkKK3sKKyAgICByZXR1cm4g
TG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPmxvY2FsaXplZFRpbWVGb3JtYXRUZXh0KCk7Cit9
CisKK1N0cmluZyBsb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCkKK3sKKyAgICByZXR1cm4g
TG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQo
KTsKK30KKworY29uc3QgVmVjdG9yPFN0cmluZz4mIHRpbWVBTVBNTGFiZWxzKCkKK3sKKyAgICBy
ZXR1cm4gTG9jYWxlSUNVOjpjdXJyZW50TG9jYWxlKCktPnRpbWVBTVBNTGFiZWxzKCk7Cit9Cisj
ZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
aSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggYzQxMGU2ZjRmNzU4
NGZkMjBlODg4M2EwMGYxZWMwNjA3OGUyNzI2Ny4uYThkZDNhNjI2NTM1MDUzNzAxNTBjNjVlZThk
ZmNlMDkxN2U3ODRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBAIC0xMjMsNiAr
MTIzLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9MZXZlbERCVGVzdC5jcHAnLAogICAgICAgICAg
ICAgJ3Rlc3RzL0xpbmtIaWdobGlnaHRUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvTGlz
dGVuZXJMZWFrVGVzdC5jcHAnLAorICAgICAgICAgICAgJ3Rlc3RzL0xvY2FsaXplZERhdGVJQ1VU
ZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvTG9jYWxpemVkTnVtYmVySUNVVGVzdC5jcHAn
LAogICAgICAgICAgICAgJ3Rlc3RzL01vY2tDQ1F1YWRDdWxsZXIuaCcsCiAgICAgICAgICAgICAn
dGVzdHMvT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGVUZXN0LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsaXplZERhdGVJQ1VU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxpemVkRGF0ZUlDVVRl
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVhNzI1YTlmNzcxZWM3ZjdhZTNiNDhmY2FjNmE1Yzk3ZTE5ODAx
YWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2Fs
aXplZERhdGVJQ1VUZXN0LmNwcApAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorCisjaW5jbHVk
ZSAiTG9jYWxlSUNVLmgiCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK2NsYXNzIExvY2FsaXplZERhdGVJQ1VUZXN0IDogcHVi
bGljIDo6dGVzdGluZzo6VGVzdCB7CitwdWJsaWM6CisgICAgLy8gTGFiZWxzIGNsYXNzIGlzIHVz
ZWQgZm9yIHByaW50aW5nIHJlc3VsdHMgaW4gRVhQRUNUX0VRIG1hY3JvLgorICAgIGNsYXNzIExh
YmVscyB7CisgICAgcHVibGljOgorICAgICAgICBMYWJlbHMoY29uc3QgVmVjdG9yPFN0cmluZz4g
bGFiZWxzKQorICAgICAgICAgICAgOiBtX2xhYmVscyhsYWJlbHMpCisgICAgICAgIHsKKyAgICAg
ICAgfQorCisgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXNlIFZlY3RvcjxUPjo6b3BlcmF0
b3I9PSgpIGlmIGl0IHdvcmtzLgorICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTGFiZWxz
JiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1fbGFiZWxzLnNpemUo
KSAhPSBvdGhlci5tX2xhYmVscy5zaXplKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbV9sYWJlbHMu
c2l6ZSgpOyArK2luZGV4KQorICAgICAgICAgICAgICAgIGlmIChtX2xhYmVsc1tpbmRleF0gIT0g
b3RoZXIubV9sYWJlbHNbaW5kZXhdKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyB0
b1N0cmluZygpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJsYWJlbHMoIik7CisgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCBtX2xhYmVscy5zaXplKCk7ICsraW5k
ZXgpIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXgpCisgICAgICAgICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCIsICIpOworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCciJyk7
CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQobV9sYWJlbHNbaW5kZXhdKTsKKyAgICAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnIicpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJyknKTsKKyAgICAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3Ry
aW5nKCk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFZlY3RvcjxTdHJpbmc+
IG1fbGFiZWxzOworICAgIH07CisKK3Byb3RlY3RlZDoKKyAgICBMYWJlbHMgbGFiZWxzKGNvbnN0
IFN0cmluZyYgZWxlbWVudDEsIGNvbnN0IFN0cmluZyYgZWxlbWVudDIpCisgICAgeworICAgICAg
ICBWZWN0b3I8U3RyaW5nPiBsYWJlbHMgPSBWZWN0b3I8U3RyaW5nPigpOworICAgICAgICBsYWJl
bHMuYXBwZW5kKGVsZW1lbnQxKTsKKyAgICAgICAgbGFiZWxzLmFwcGVuZChlbGVtZW50Mik7Cisg
ICAgICAgIHJldHVybiBMYWJlbHMobGFiZWxzKTsKKyAgICB9CisKKyAgICBTdHJpbmcgbG9jYWxp
emVkRGF0ZUZvcm1hdFRleHQoY29uc3QgY2hhciogbG9jYWxlU3RyaW5nKQorICAgIHsKKyAgICAg
ICAgT3duUHRyPExvY2FsZUlDVT4gbG9jYWxlID0gTG9jYWxlSUNVOjpjcmVhdGUobG9jYWxlU3Ry
aW5nKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+bG9jYWxpemVkVGltZUZvcm1hdFRleHQoKTsK
KyAgICB9CisKKyAgICBTdHJpbmcgbG9jYWxpemVkU2hvcnREYXRlRm9ybWF0VGV4dChjb25zdCBj
aGFyKiBsb2NhbGVTdHJpbmcpCisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxlSUNVPiBsb2Nh
bGUgPSBMb2NhbGVJQ1U6OmNyZWF0ZShsb2NhbGVTdHJpbmcpOworICAgICAgICByZXR1cm4gbG9j
YWxlLT5sb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCk7CisgICAgfQorCisgICAgTGFiZWxz
IHRpbWVBTVBNTGFiZWxzKGNvbnN0IGNoYXIqIGxvY2FsZVN0cmluZykKKyAgICB7CisgICAgICAg
IE93blB0cjxMb2NhbGVJQ1U+IGxvY2FsZSA9IExvY2FsZUlDVTo6Y3JlYXRlKGxvY2FsZVN0cmlu
Zyk7CisgICAgICAgIHJldHVybiBMYWJlbHMobG9jYWxlLT50aW1lQU1QTUxhYmVscygpKTsKKyAg
ICB9Cit9OworCitzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywgY29u
c3QgTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OkxhYmVscyYgbGFiZWxzKQoreworICAgIHJldHVybiBv
cyA8PCBsYWJlbHMudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpOworfQorCitURVNUX0YoTG9jYWxp
emVkRGF0ZUlDVVRlc3QsIGxvY2FsaXplZERhdGVGb3JtYXRUZXh0KQoreworICAgIC8vIE5vdGU6
IEVYUEVDVF9FUShTdHJpbmcsIFN0cmluZykgZG9lc24ndCBwcmludCByZXN1bHQgYXMgc3RyaW5n
LgorICAgIEVYUEVDVF9TVFJFUSgiaDptbTpzcyBhIiwgbG9jYWxpemVkRGF0ZUZvcm1hdFRleHQo
ImVuX1VTIikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJISDptbTpzcyIsIGxv
Y2FsaXplZERhdGVGb3JtYXRUZXh0KCJmciIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiSDptbTpzcyIsIGxvY2FsaXplZERhdGVGb3JtYXRUZXh0KCJqYSIpLnV0ZjgoKS5kYXRh
KCkpOworfQorCitURVNUX0YoTG9jYWxpemVkRGF0ZUlDVVRlc3QsIGxvY2FsaXplZFNob3J0RGF0
ZUZvcm1hdFRleHQpCit7CisgICAgRVhQRUNUX1NUUkVRKCJoOm1tIGEiLCBsb2NhbGl6ZWRTaG9y
dERhdGVGb3JtYXRUZXh0KCJlbl9VUyIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJF
USgiSEg6bW0iLCBsb2NhbGl6ZWRTaG9ydERhdGVGb3JtYXRUZXh0KCJmciIpLnV0ZjgoKS5kYXRh
KCkpOworICAgIEVYUEVDVF9TVFJFUSgiSDptbSIsIGxvY2FsaXplZFNob3J0RGF0ZUZvcm1hdFRl
eHQoImphIikudXRmOCgpLmRhdGEoKSk7Cit9CisKK1RFU1RfRihMb2NhbGl6ZWREYXRlSUNVVGVz
dCwgdGltZUFNUE1MYWJlbHMpCit7CisgICAgRVhQRUNUX0VRKGxhYmVscygiQU0iLCAiUE0iKSwg
dGltZUFNUE1MYWJlbHMoImVuX1VTIikpOworICAgIEVYUEVDVF9FUShsYWJlbHMoIkFNIiwgIlBN
IiksIHRpbWVBTVBNTGFiZWxzKCJmciIpKTsKKworICAgIFVDaGFyIGphQU1bM10gPSB7IDB4NTM0
OCwgMHg1MjRkLCAwIH07CisgICAgVUNoYXIgamFQTVszXSA9IHsgMHg1MzQ4LCAweDVGOEMsIDAg
fTsKKyAgICBFWFBFQ1RfRVEobGFiZWxzKFN0cmluZyhqYUFNKSwgU3RyaW5nKGphUE0pKSwgdGlt
ZUFNUE1MYWJlbHMoImphIikpOworfQorCisjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>