<?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>103120</bug_id>
          
          <creation_ts>2012-11-23 03:48:53 -0800</creation_ts>
          <short_desc>Web Inspector: Calculate &quot;idle&quot; time for CPU profiles.</short_desc>
          <delta_ts>2012-12-20 00:44:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>103550</dependson>
          <blocked>88446</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eugene Klyuchnikov">eustas</reporter>
          <assigned_to name="Eugene Klyuchnikov">eustas</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>caseq</cc>
    
    <cc>eustas</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>keishi</cc>
    
    <cc>levin+threading</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>774393</commentid>
    <comment_count>0</comment_count>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2012-11-23 03:48:53 -0800</bug_when>
    <thetext>CPU profiles contain a very confusing &quot;(program)&quot; item.
It is time when there is no JS stack.
That could be either idle time, or time when browser is doing something.

To split &quot;(program)&quot; item to idle and really program time we are to
calculate idle time during profiling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774407</commentid>
    <comment_count>1</comment_count>
      <attachid>175774</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2012-11-23 04:07:29 -0800</bug_when>
    <thetext>Created attachment 175774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778145</commentid>
    <comment_count>2</comment_count>
      <attachid>175774</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-11-28 11:59:52 -0800</bug_when>
    <thetext>Comment on attachment 175774
Patch

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

Mostly good, modulo the fact that we pollute ScriptProfile binding and InspectorProfilerAgent with a logic that is specific to v8&apos;s implementation of profiler.

&gt; Source/WebCore/inspector/InspectorController.cpp:121
&gt; +        , inspectorClient));

please revert these 2 lines

&gt; Source/WebCore/inspector/InspectorProfilerAgent.cpp:413
&gt; +        profile-&gt;setIdleTime(m_idleTime * 1000);

Is there a particular reason to pass time in milliseconds here?

&gt; Source/WebCore/inspector/InspectorProfilerAgent.h:136
&gt; +    double m_taskEndTime;

m_previousTaskEndTime?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779656</commentid>
    <comment_count>3</comment_count>
      <attachid>175774</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2012-11-29 17:38:57 -0800</bug_when>
    <thetext>Comment on attachment 175774
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorController.cpp:121
&gt;&gt; +        , inspectorClient));
&gt; 
&gt; please revert these 2 lines

Done

&gt;&gt; Source/WebCore/inspector/InspectorProfilerAgent.cpp:413
&gt;&gt; +        profile-&gt;setIdleTime(m_idleTime * 1000);
&gt; 
&gt; Is there a particular reason to pass time in milliseconds here?

That&apos;s because all other values in profile are also measured in ms.

&gt;&gt; Source/WebCore/inspector/InspectorProfilerAgent.h:136
&gt;&gt; +    double m_taskEndTime;
&gt; 
&gt; m_previousTaskEndTime?

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779668</commentid>
    <comment_count>4</comment_count>
      <attachid>176866</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2012-11-29 17:46:56 -0800</bug_when>
    <thetext>Created attachment 176866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779784</commentid>
    <comment_count>5</comment_count>
      <attachid>176866</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-11-29 20:41:09 -0800</bug_when>
    <thetext>Comment on attachment 176866
Patch

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

&gt; Source/WebCore/bindings/js/ScriptProfile.cpp:80
&gt; +    return 0.0;

You should provide the same implementation for JSC as you provide for v8.

&gt; Source/WebCore/inspector/InspectorProfilerAgent.cpp:388
&gt; +    m_idleTime = 0.0;

There is a way to record nested profiles using console.profile / console.profileEnd. So you might need to have an idle time per profile. I know this makes things more complex.

&gt; Source/WebCore/inspector/ScriptProfile.idl:36
&gt; +    readonly attribute double idleTime;

Yury, do we need to change V8ScriptProfile.cpp for it to be exposed on web-facing object in v8?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780172</commentid>
    <comment_count>6</comment_count>
      <attachid>176866</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-30 09:33:22 -0800</bug_when>
    <thetext>Comment on attachment 176866
Patch

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

&gt;&gt; Source/WebCore/inspector/ScriptProfile.idl:36
&gt;&gt; +    readonly attribute double idleTime;
&gt; 
&gt; Yury, do we need to change V8ScriptProfile.cpp for it to be exposed on web-facing object in v8?

No, it is generated from .idl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788062</commentid>
    <comment_count>7</comment_count>
      <attachid>178724</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2012-12-10 22:45:05 -0800</bug_when>
    <thetext>Created attachment 178724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791434</commentid>
    <comment_count>8</comment_count>
      <attachid>178724</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-14 00:51:50 -0800</bug_when>
    <thetext>Comment on attachment 178724
Patch

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

&gt; Source/WebCore/bindings/v8/ScriptProfiler.cpp:264
&gt; +    AtomicallyInitializedStatic(WTF::ThreadSpecific&lt;ProfileNameIdleTimeMap&gt;*, map = new WTF::ThreadSpecific&lt;ProfileNameIdleTimeMap&gt;);

You could make do without ThreadSpecific: in case of PageProfilerAgent the map can be a static variable and WorkerProfilerAgent can own one for the worker context which is currently one per worker thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793516</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-12-18 03:45:15 -0800</bug_when>
    <thetext>Committed r138004: &lt;http://trac.webkit.org/changeset/138004&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175774</attachid>
            <date>2012-11-23 04:07:29 -0800</date>
            <delta_ts>2012-11-29 17:46:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103120-20121123160512.patch</filename>
            <type>text/plain</type>
            <size>22070</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFmNjEwMTkyM2Y4ZmRj
ZGMzOWQ2NGZjMDEyNzk2YWM1NmU4MWRmYy4uMmUxZTk4Njg4ZmZlMTZmNmZjZDM0MjAyNDQ4N2Zh
MWU4MmU4NzU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTExLTIzICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IENhbGN1bGF0ZSAiaWRsZSIgdGltZSBmb3IgQ1BVIHByb2ZpbGVzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMTIwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ1BVIHByb2ZpbGVzIGNvbnRh
aW4gYSB2ZXJ5IGNvbmZ1c2luZyAiKHByb2dyYW0pIiBpdGVtLgorICAgICAgICBJdCBpcyB0aW1l
IHdoZW4gdGhlcmUgaXMgbm8gSlMgc3RhY2suCisgICAgICAgIFRoYXQgY291bGQgYmUgZWl0aGVy
IGlkbGUgdGltZSwgb3IgdGltZSB3aGVuIGJyb3dzZXIgaXMgZG9pbmcgc29tZXRoaW5nLgorCisg
ICAgICAgIFRvIHNwbGl0ICIocHJvZ3JhbSkiIGl0ZW0gdG8gaWRsZSBhbmQgcmVhbGx5IHByb2dy
YW0gdGltZSB3ZSBhcmUgdG8KKyAgICAgICAgY2FsY3VsYXRlIGlkbGUgdGltZSBkdXJpbmcgcHJv
ZmlsaW5nLgorCisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsOiBBZGRlZCAi
aWRsZVRpbWUiIGZpZWxkCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHA6
IERpdHRvLiAKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmg6IERpdHRvLiAK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmNwcDogRGl0dG8uIAorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuaDogRGl0dG8uIAorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3IuanNvbjogRGVjbGFyZWQgImlkbGVUaW1lIiBmaWVsZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIFByb3ZpZGUgaW5z
cGVjdG9yLWNsaWVudCB0byBwcm9maWxlci1hZ2VudC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgRGlzdHJpYnV0ZSBtYWluIHRocmVh
ZCB0YXNrIG5vdGlmaWNhdGlvbnMgdG8gcHJvZmlsZXItYWdlbnQuCisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICBVc2UgaW5zcGVjdG9yIGNs
aWVudCB0byBjYWxjdWxhdGUgaWRsZSB0aW1lIGluIENQVSBwcm9maWxlLgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50Lmg6IERpdHRvLgorCiAyMDEyLTExLTIyICBK
b2huIE1lbGxvciAgPGpvaG5tZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVGV4dCBBdXRvc2l6
aW5nOiBJbXByb3ZlIGhhbmRsaW5nIG9mIG5lc3RlZCBjb21tZW50cyBvbiByZWRkaXQuY29tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGRhZTcwNWY4Nzc1ODQ0NDJjZTBjMWY3MGNmMDQw
MTgyMjY5ZjQ3ODAuLmUwNDMwYTNlNTIwN2U4ODU1MGZkYjZkYjFmZDY3YWJkMTllYTgyZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMTEtMjMgIEV1
Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogQ2FsY3VsYXRlICJpZGxlIiB0aW1lIGZvciBDUFUgcHJvZmlsZXMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMxMjAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDUFUgcHJvZmlsZXMgY29u
dGFpbiBhIHZlcnkgY29uZnVzaW5nICIocHJvZ3JhbSkiIGl0ZW0uCisgICAgICAgIEl0IGlzIHRp
bWUgd2hlbiB0aGVyZSBpcyBubyBKUyBzdGFjay4KKyAgICAgICAgVGhhdCBjb3VsZCBiZSBlaXRo
ZXIgaWRsZSB0aW1lLCBvciB0aW1lIHdoZW4gYnJvd3NlciBpcyBkb2luZyBzb21ldGhpbmcuCisK
KyAgICAgICAgVG8gc3BsaXQgIihwcm9ncmFtKSIgaXRlbSB0byBpZGxlIGFuZCByZWFsbHkgcHJv
Z3JhbSB0aW1lIHdlIGFyZSB0bworICAgICAgICBjYWxjdWxhdGUgaWRsZSB0aW1lIGR1cmluZyBw
cm9maWxpbmcuCisKKyAgICAgICAgKiBzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHA6CisgICAg
ICAgIEFkZCBjb3VudGVyIHRvIHN1cHBvcnQgbXVsdGlwbGUgQ1BVIGFjdGl2aXR5IGxpc3RlbmVy
cy4KKyAgICAgICAgKiBzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5oOiBEaXR0by4KKwogMjAxMi0x
MS0yMiAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hy
b21pdW1dIEFkZCBPUyE9ImlvcyIgdG8gZ3VhcmQgZm9yIGdjY192ZXJzaW9uIGluIFdlYktpdC5n
eXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAKaW5kZXgg
NGNlZjRjZGRkNTljMjdmMjJjYTVlMTVhNTEyMWU2NTA2NTI4Mjk5MC4uOWEyYjQ1MTg5NzA0YmJh
MGI5YTBjMThhMTVkZWI4YmY2MzEwODMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0UHJvZmlsZS5jcHAKQEAgLTc1LDYgKzc1LDExIEBAIFBhc3NSZWZQdHI8U2NyaXB0
UHJvZmlsZU5vZGU+IFNjcmlwdFByb2ZpbGU6OmJvdHRvbVVwSGVhZCgpIGNvbnN0CiAgICAgcmV0
dXJuIDA7CiB9CiAKK2RvdWJsZSBTY3JpcHRQcm9maWxlOjppZGxlVGltZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIDAuMDsKK30KKwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yKGNvbnN0IEpTQzo6
UHJvZmlsZU5vZGUqIG5vZGUpCiB7CkBAIC0xMDksNiArMTE0LDEwIEBAIFBhc3NSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBTY3JpcHRQcm9maWxlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvckJvdHRv
bVVwSGVhZCgpCiB7CiAgICAgcmV0dXJuIDA7CiB9CisKK3ZvaWQgU2NyaXB0UHJvZmlsZTo6c2V0
SWRsZVRpbWUoZG91YmxlKQoreworfQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaAppbmRleCBkNzI1YWY1
NDU5Mjg1MDBhM2ZkYmU2OWQ5NjEzNmI1Mzk1ODI1MWM4Li4zMzljMjBkNjg5NDIxNzQzZjczNzcy
Yzk0ZWI3Y2E1MzZiNmE0MzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRQcm9maWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
UHJvZmlsZS5oCkBAIC01MSwxMCArNTEsMTIgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGludCB1
aWQoKSBjb25zdDsKICAgICBTY3JpcHRQcm9maWxlTm9kZSogaGVhZCgpIGNvbnN0OwogICAgIFBh
c3NSZWZQdHI8U2NyaXB0UHJvZmlsZU5vZGU+IGJvdHRvbVVwSGVhZCgpIGNvbnN0OworICAgIGRv
dWJsZSBpZGxlVGltZSgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBQYXNz
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRJbnNwZWN0b3JPYmplY3RGb3JIZWFkKCkgY29u
c3Q7CiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0
Rm9yQm90dG9tVXBIZWFkKCkgY29uc3Q7CisgICAgdm9pZCBzZXRJZGxlVGltZShkb3VibGUpOwog
I2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRQcm9maWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFBy
b2ZpbGUuY3BwCmluZGV4IGU1ZjQwMDE2NTIyZGY5MzQ0YjE5ZTA1MzkwMDNiZjU0ZTA2ZmY0YTYu
LmNlOGUyYTFkYjRhNTY4OTViYzM3OWVkODZjNWQ3NGIzYTMxMGZlN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuY3BwCkBAIC02NSw2ICs2NSwxMSBAQCBQ
YXNzUmVmUHRyPFNjcmlwdFByb2ZpbGVOb2RlPiBTY3JpcHRQcm9maWxlOjpib3R0b21VcEhlYWQo
KSBjb25zdAogICAgIHJldHVybiBTY3JpcHRQcm9maWxlTm9kZTo6Y3JlYXRlKG1fcHJvZmlsZS0+
R2V0Qm90dG9tVXBSb290KCkpOwogfQogCitkb3VibGUgU2NyaXB0UHJvZmlsZTo6aWRsZVRpbWUo
KSBjb25zdAoreworICAgIHJldHVybiBtX2lkbGVUaW1lOworfQorCiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRJbnNwZWN0b3JP
YmplY3RGb3IoY29uc3Qgdjg6OkNwdVByb2ZpbGVOb2RlKiBub2RlKQogewpAQCAtOTgsNiArMTAz
LDExIEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBTY3JpcHRQcm9maWxlOjpidWlsZElu
c3BlY3Rvck9iamVjdEZvckJvdHRvbVVwSGVhZCgpCiB7CiAgICAgcmV0dXJuIGJ1aWxkSW5zcGVj
dG9yT2JqZWN0Rm9yKG1fcHJvZmlsZS0+R2V0Qm90dG9tVXBSb290KCkpOwogfQorCit2b2lkIFNj
cmlwdFByb2ZpbGU6OnNldElkbGVUaW1lKGRvdWJsZSBpZGxlVGltZSkKK3sKKyAgICBtX2lkbGVU
aW1lID0gaWRsZVRpbWU7Cit9CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5oCmluZGV4IGRiMzk1ZWQ2YzUx
ODE5NWE0NmNjZjY5YWFmODJhY2FkZDBhMDJjM2EuLmE1YWY4OTllODIzZjdlMDFmZmY4M2MzZTAz
MmYxZjMzZWE4YTc4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdFByb2ZpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9m
aWxlLmgKQEAgLTU3LDE4ICs1NywyMiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgaW50IHVpZCgp
IGNvbnN0OwogICAgIFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZU5vZGU+IGhlYWQoKSBjb25zdDsK
ICAgICBQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGVOb2RlPiBib3R0b21VcEhlYWQoKSBjb25zdDsK
KyAgICBkb3VibGUgaWRsZVRpbWUoKSBjb25zdDsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9ySGVh
ZCgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZEluc3BlY3Rv
ck9iamVjdEZvckJvdHRvbVVwSGVhZCgpIGNvbnN0OworICAgIHZvaWQgc2V0SWRsZVRpbWUoZG91
YmxlKTsKICNlbmRpZgogCiBwcml2YXRlOgogICAgIFNjcmlwdFByb2ZpbGUoY29uc3Qgdjg6OkNw
dVByb2ZpbGUqIHByb2ZpbGUpCiAgICAgICAgIDogbV9wcm9maWxlKHByb2ZpbGUpCisgICAgICAg
ICwgbV9pZGxlVGltZSgwLjApCiAgICAge30KIAogICAgIGNvbnN0IHY4OjpDcHVQcm9maWxlKiBt
X3Byb2ZpbGU7CisgICAgZG91YmxlIG1faWRsZVRpbWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggNGE2NDgz
NmIwZjY0ZGZhNWZkYmNhMTljNDk5NTVmODI4ODM2ZDdiOC4uZmMwZDQwYmE2NDZjMWUxMjQ3NDU1
NjJhOWE0Y2MwYmYwNDAxYzRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
anNvbgpAQCAtMjk1OCw3ICsyOTU4LDggQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiUHJvZmlsZS4iLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImhlYWQiLCAidHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwi
OiB0cnVlIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYm90dG9tVXBIZWFkIiwg
InR5cGUiOiAib2JqZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSB9CisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiYm90dG9tVXBIZWFkIiwgInR5cGUiOiAib2JqZWN0IiwgIm9wdGlvbmFsIjog
dHJ1ZSB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkbGVUaW1lIiwgInR5cGUi
OiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9CiAgICAgICAgICAgICAgICAgXQogICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCAyZmYwZDM5YzViMGFkMzcwZmRjNWVjYWM1MWMx
YTg3YzdiNjU0NWU2Li5kYThlNzU5ZDI4NjNiZjAyZGFhYzI5NjNjZGE3NTE2NTNjMGMwZGQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CkBAIC0xMTcsOCArMTE3LDggQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJv
bGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICAgICBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQqIGRvbVN0b3JhZ2VBZ2VudCA9IGRvbVN0b3JhZ2VBZ2VudFB0ci5n
ZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQoZG9tU3RvcmFnZUFnZW50UHRyLnJlbGVhc2UoKSk7
CiAgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3Rvck1lbW9yeUFnZW50OjpjcmVhdGUobV9pbnN0
cnVtZW50aW5nQWdlbnRzLmdldCgpLCBpbnNwZWN0b3JDbGllbnQsIG1fc3RhdGUuZ2V0KCksIG1f
cGFnZSkpOwotICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVh
dGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdlbnQsIG1fc3RhdGUuZ2V0KCks
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OlBhZ2VJbnNwZWN0b3IsCi0gICAgICAgaW5zcGVjdG9y
Q2xpZW50KSk7CisgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OmNy
ZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2VudCwgbV9zdGF0ZS5nZXQo
KSwgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6UGFnZUluc3BlY3RvcgorICAgICAgICAsIGluc3Bl
Y3RvckNsaWVudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0
KCksIHBhZ2VBZ2VudCkpOwogCiAgICAgT3duUHRyPEluc3BlY3RvclJlc291cmNlQWdlbnQ+IHJl
c291cmNlQWdlbnRQdHIoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50LCBpbnNwZWN0b3JDbGllbnQsIG1fc3RhdGUuZ2V0
KCkpKTsKQEAgLTE0MCw3ICsxNDAsOCBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JD
b250cm9sbGVyKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogCiAgICAg
bV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1fZG9tQWdlbnQsIG1fZGVidWdn
ZXJBZ2VudCwgbV9pbnNwZWN0b3JBZ2VudCkpOwogCi0gICAgT3duUHRyPEluc3BlY3RvclByb2Zp
bGVyQWdlbnQ+IHByb2ZpbGVyQWdlbnRQdHIoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRl
KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgY29uc29sZUFnZW50LCBwYWdlLCBtX3N0YXRl
LmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOworICAgIE93blB0cjxJbnNw
ZWN0b3JQcm9maWxlckFnZW50PiBwcm9maWxlckFnZW50UHRyKEluc3BlY3RvclByb2ZpbGVyQWdl
bnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIGNvbnNvbGVBZ2VudCwgcGFn
ZSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkKKyAgICAgICAg
LCBpbnNwZWN0b3JDbGllbnQpKTsKICAgICBtX3Byb2ZpbGVyQWdlbnQgPSBwcm9maWxlckFnZW50
UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChwcm9maWxlckFnZW50UHRyLnJlbGVhc2Uo
KSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMmFjZDYyYjU0NDM2ZmVlZjdkNzgyM2JlMzcxNDUy
ZmQyODE4NjQxOC4uZGQyNjA5ZGI0NzVjMDRlOTFiOTZlNGZjY2Y3MmU5ODZhYjVhZTE4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKQEAgLTYxMSwxMiArNjExLDE2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsUHJvY2Vzc1Rhc2tJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lCiB7
CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5l
QWdlbnQtPndpbGxQcm9jZXNzVGFzaygpOworICAgIGlmIChJbnNwZWN0b3JQcm9maWxlckFnZW50
KiBwcm9maWxlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUHJvZmlsZXJB
Z2VudCgpKQorICAgICAgICBwcm9maWxlckFnZW50LT53aWxsUHJvY2Vzc1Rhc2soKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFByb2Nlc3NUYXNrSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQogewogICAgIGlmIChJbnNwZWN0b3JU
aW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVj
dG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRQcm9jZXNzVGFz
aygpOworICAgIGlmIChJbnNwZWN0b3JQcm9maWxlckFnZW50KiBwcm9maWxlckFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUHJvZmlsZXJBZ2VudCgpKQorICAgICAgICBwcm9m
aWxlckFnZW50LT5kaWRQcm9jZXNzVGFzaygpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgU3RyaW5nKiB1c2VyQWdlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggNmQ3MTg1
YmM0OGE4MTZiYWRjODMwNGUxY2Q3YzZmZjRjMzk0N2Y3Yy4uM2FhMWQ2ZmJkMGExYzJmYzZmYTRl
NjIxZWNmZDMwYjFmMzA1OWJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUg
IkNvbnNvbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVj
dGVkU2NyaXB0SG9zdC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckNvbnNvbGVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKQEAgLTUwLDYgKzUxLDcgQEAKICNpbmNsdWRl
ICJTY3JpcHRQcm9maWxlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIgorI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlLmg+CkBAIC02OCw4ICs3MCwxMCBAQCBzdGF0aWMgY29uc3QgY2hhciogY29u
c3QgSGVhcFByb2ZpbGVUeXBlID0gIkhFQVAiOwogCiBjbGFzcyBQYWdlUHJvZmlsZXJBZ2VudCA6
IHB1YmxpYyBJbnNwZWN0b3JQcm9maWxlckFnZW50IHsKIHB1YmxpYzoKLSAgICBQYWdlUHJvZmls
ZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0
b3JDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZSwgSW5zcGVj
dG9yU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFu
YWdlcikKLSAgICAgICAgOiBJbnNwZWN0b3JQcm9maWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2Vu
dHMsIGNvbnNvbGVBZ2VudCwgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlciksIG1faW5zcGVj
dGVkUGFnZShpbnNwZWN0ZWRQYWdlKSB7IH0KKyAgICBQYWdlUHJvZmlsZXJBZ2VudChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQq
IGNvbnNvbGVBZ2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZQorICAgICAgICAsIEluc3BlY3RvclN0
YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIs
IEluc3BlY3RvckNsaWVudCogY2xpZW50KQorICAgICAgICA6IEluc3BlY3RvclByb2ZpbGVyQWdl
bnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc29sZUFnZW50LCBzdGF0ZSwgaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKQorICAgICAgICAsIG1faW5zcGVjdGVkUGFnZShpbnNwZWN0ZWRQYWdlKSwgbV9j
bGllbnQoY2xpZW50KSB7IH0KICAgICB2aXJ0dWFsIH5QYWdlUHJvZmlsZXJBZ2VudCgpIHsgfQog
CiBwcml2YXRlOgpAQCAtODEsMTkgKzg1LDIzIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IHN0YXJ0UHJvZmlsaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgewogICAgICAgICBTY3Jp
cHRQcm9maWxlcjo6c3RhcnRGb3JQYWdlKG1faW5zcGVjdGVkUGFnZSwgdGl0bGUpOworICAgICAg
ICBtX2NsaWVudC0+c3RhcnRNYWluVGhyZWFkTW9uaXRvcmluZygpOwogICAgIH0KIAogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxTY3JpcHRQcm9maWxlPiBzdG9wUHJvZmlsaW5nKGNvbnN0IFN0cmlu
ZyYgdGl0bGUpCiAgICAgeworICAgICAgICBtX2NsaWVudC0+c3RvcE1haW5UaHJlYWRNb25pdG9y
aW5nKCk7CiAgICAgICAgIHJldHVybiBTY3JpcHRQcm9maWxlcjo6c3RvcEZvclBhZ2UobV9pbnNw
ZWN0ZWRQYWdlLCB0aXRsZSk7CiAgICAgfQogCiAgICAgUGFnZSogbV9pbnNwZWN0ZWRQYWdlOwor
ICAgIEluc3BlY3RvckNsaWVudCogbV9jbGllbnQ7CiB9OwogCi1QYXNzT3duUHRyPEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNv
bnNvbGVBZ2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZSwgSW5zcGVjdG9yU3RhdGUqIGluc3BlY3Rv
clN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1Bh
c3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LAorICAgIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIElu
c3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmpl
Y3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQogewotICAgIHJldHVy
biBhZG9wdFB0cihuZXcgUGFnZVByb2ZpbGVyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgY29u
c29sZUFnZW50LCBpbnNwZWN0ZWRQYWdlLCBpbnNwZWN0b3JTdGF0ZSwgaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlUHJvZmlsZXJBZ2VudChpbnN0
cnVtZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQsIGluc3BlY3RlZFBhZ2UsIGluc3BlY3RvclN0
YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIGNsaWVudCkpOwogfQogCiAjaWYgRU5BQkxFKFdP
UktFUlMpCkBAIC0xMzEsMTEgKzEzOSwxMyBAQCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpJbnNw
ZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbgogICAg
ICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwg
bV9mcm9udGVuZCgwKQogICAgICwgbV9lbmFibGVkKGZhbHNlKQotICAgICwgbV9yZWNvcmRpbmdV
c2VySW5pdGlhdGVkUHJvZmlsZShmYWxzZSkKKyAgICAsIG1fcmVjb3JkaW5nQ1BVUHJvZmlsZShm
YWxzZSkKICAgICAsIG1faGVhZGVyc1JlcXVlc3RlZChmYWxzZSkKICAgICAsIG1fY3VycmVudFVz
ZXJJbml0aWF0ZWRQcm9maWxlTnVtYmVyKC0xKQogICAgICwgbV9uZXh0VXNlckluaXRpYXRlZFBy
b2ZpbGVOdW1iZXIoMSkKICAgICAsIG1fbmV4dFVzZXJJbml0aWF0ZWRIZWFwU25hcHNob3ROdW1i
ZXIoMSkKKyAgICAsIG1faWRsZVRpbWUoMC4wKQorICAgICwgbV90YXNrRW5kVGltZSgwLjApCiB7
CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JQcm9maWxlckFnZW50KHRo
aXMpOwogfQpAQCAtMjkyLDYgKzMwMiw4IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6
Z2V0UHJvZmlsZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYKICAgICAg
ICAgcHJvZmlsZU9iamVjdC0+c2V0SGVhZChpdC0+dmFsdWUtPmJ1aWxkSW5zcGVjdG9yT2JqZWN0
Rm9ySGVhZCgpKTsKICAgICAgICAgaWYgKGl0LT52YWx1ZS0+Ym90dG9tVXBIZWFkKCkpCiAgICAg
ICAgICAgICBwcm9maWxlT2JqZWN0LT5zZXRCb3R0b21VcEhlYWQoaXQtPnZhbHVlLT5idWlsZElu
c3BlY3Rvck9iamVjdEZvckJvdHRvbVVwSGVhZCgpKTsKKyAgICAgICAgaWYgKGl0LT52YWx1ZS0+
aWRsZVRpbWUoKSkKKyAgICAgICAgICAgIHByb2ZpbGVPYmplY3QtPnNldElkbGVUaW1lKGl0LT52
YWx1ZS0+aWRsZVRpbWUoKSk7CiAgICAgfSBlbHNlIGlmICh0eXBlID09IEhlYXBQcm9maWxlVHlw
ZSkgewogICAgICAgICBIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBpdCA9IG1fc25hcHNob3Rz
LmZpbmQodWlkKTsKICAgICAgICAgaWYgKGl0ID09IG1fc25hcHNob3RzLmVuZCgpKSB7CkBAIC0z
NzQsMTMgKzM4NiwxNSBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnJlc3RvcmVFbmFi
bGVtZW50KCkKIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdGFydChFcnJvclN0cmlu
ZyopCiB7Ci0gICAgaWYgKG1fcmVjb3JkaW5nVXNlckluaXRpYXRlZFByb2ZpbGUpCisgICAgaWYg
KG1fcmVjb3JkaW5nQ1BVUHJvZmlsZSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICghZW5hYmxl
ZCgpKSB7CiAgICAgICAgIGVuYWJsZSh0cnVlKTsKICAgICAgICAgUGFnZVNjcmlwdERlYnVnU2Vy
dmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygwKTsKICAgICB9Ci0gICAgbV9y
ZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZSA9IHRydWU7CisgICAgbV9pZGxlVGltZSA9IDAu
MDsKKyAgICBtX3Rhc2tFbmRUaW1lID0gMC4wOworICAgIG1fcmVjb3JkaW5nQ1BVUHJvZmlsZSA9
IHRydWU7CiAgICAgU3RyaW5nIHRpdGxlID0gZ2V0Q3VycmVudFVzZXJJbml0aWF0ZWRQcm9maWxl
TmFtZSh0cnVlKTsKICAgICBzdGFydFByb2ZpbGluZyh0aXRsZSk7CiAgICAgYWRkU3RhcnRQcm9m
aWxpbmdNZXNzYWdlVG9Db25zb2xlKHRpdGxlLCAwLCBTdHJpbmcoKSk7CkBAIC0zOTAsMTMgKzQw
NCwxNSBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0YXJ0KEVycm9yU3RyaW5nKikK
IAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdG9wKEVycm9yU3RyaW5nKikKIHsKLSAg
ICBpZiAoIW1fcmVjb3JkaW5nVXNlckluaXRpYXRlZFByb2ZpbGUpCisgICAgaWYgKCFtX3JlY29y
ZGluZ0NQVVByb2ZpbGUpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3JlY29yZGluZ1VzZXJJbml0
aWF0ZWRQcm9maWxlID0gZmFsc2U7CisgICAgbV9yZWNvcmRpbmdDUFVQcm9maWxlID0gZmFsc2U7
CiAgICAgU3RyaW5nIHRpdGxlID0gZ2V0Q3VycmVudFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZSgp
OwogICAgIFJlZlB0cjxTY3JpcHRQcm9maWxlPiBwcm9maWxlID0gc3RvcFByb2ZpbGluZyh0aXRs
ZSk7Ci0gICAgaWYgKHByb2ZpbGUpCisgICAgaWYgKHByb2ZpbGUpIHsKKyAgICAgICAgcHJvZmls
ZS0+c2V0SWRsZVRpbWUobV9pZGxlVGltZSAqIDEwMDApOwogICAgICAgICBhZGRQcm9maWxlKHBy
b2ZpbGUsIDAsIFN0cmluZygpKTsKKyAgICB9CiAgICAgdG9nZ2xlUmVjb3JkQnV0dG9uKGZhbHNl
KTsKICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFByb2ZpbGVyQWdlbnRTdGF0ZTo6dXNlckluaXRp
YXRlZFByb2ZpbGluZywgZmFsc2UpOwogfQpAQCAtNDk1LDYgKzUxMSwyMiBAQCB2b2lkIEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZgogICAgIGluZm8uYWRkTWVtYmVyKG1fc25hcHNob3RzKTsKIH0KIAordm9p
ZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojp3aWxsUHJvY2Vzc1Rhc2soKQoreworICAgIGlmICgh
bV9yZWNvcmRpbmdDUFVQcm9maWxlKQorICAgICAgICByZXR1cm47CisgICAgaWYgKG1fdGFza0Vu
ZFRpbWUpCisgICAgICAgIG1faWRsZVRpbWUgKz0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSAtIG1fdGFza0VuZFRpbWU7CisgICAgbV90YXNrRW5kVGltZSA9IDAuMDsKK30KKwor
dm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpkaWRQcm9jZXNzVGFzaygpCit7CisgICAgaWYg
KCFtX3JlY29yZGluZ0NQVVByb2ZpbGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX3Rhc2tFbmRU
aW1lID0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYm
IEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclByb2ZpbGVyQWdlbnQuaAppbmRleCA4MjNiN2U2ZjBiODVjM2EzNDk5ZWE3ZWE0MTk1ZWM2
YTY0YjI2MjRmLi4xMDZjNjFlMjI5NzU0ZDc4YmRhNmYwN2VjZTgwYWIyOGQ3ODBiZWM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgK
QEAgLTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbmplY3RlZFNj
cmlwdE1hbmFnZXI7CiBjbGFzcyBJbnNwZWN0b3JBcnJheTsKK2NsYXNzIEluc3BlY3RvckNsaWVu
dDsKIGNsYXNzIEluc3BlY3RvckNvbnNvbGVBZ2VudDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5k
OwogY2xhc3MgSW5zcGVjdG9yT2JqZWN0OwpAQCAtNTksNyArNjAsNyBAQCB0eXBlZGVmIFN0cmlu
ZyBFcnJvclN0cmluZzsKIGNsYXNzIEluc3BlY3RvclByb2ZpbGVyQWdlbnQgOiBwdWJsaWMgSW5z
cGVjdG9yQmFzZUFnZW50PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXI6OlByb2ZpbGVyQ29tbWFuZEhhbmRsZXIgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKEluc3BlY3RvclByb2ZpbGVyQWdlbnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxlckFn
ZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2VudCos
IFBhZ2UqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIHN0
YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgUGFnZSosIEluc3BlY3RvclN0YXRl
KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yQ2xpZW50Kik7CiAjaWYgRU5BQkxF
KFdPUktFUlMpCiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4g
Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBXb3Jr
ZXJDb250ZXh0KiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKICNl
bmRpZgpAQCAtMTAyLDYgKzEwMyw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2
b2lkIHdpbGxQcm9jZXNzVGFzaygpOworICAgIHZvaWQgZGlkUHJvY2Vzc1Rhc2soKTsKKwogcHJv
dGVjdGVkOgogICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvckNvbnNvbGVBZ2VudCosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKik7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UHJvZmlsaW5nKGNvbnN0IFN0cmluZyYg
dGl0bGUpID0gMDsKQEAgLTEyMSwxMyArMTI1LDE1IEBAIHByaXZhdGU6CiAgICAgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKICAgICBJbnNwZWN0b3JGcm9u
dGVuZDo6UHJvZmlsZXIqIG1fZnJvbnRlbmQ7CiAgICAgYm9vbCBtX2VuYWJsZWQ7Ci0gICAgYm9v
bCBtX3JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlOworICAgIGJvb2wgbV9yZWNvcmRpbmdD
UFVQcm9maWxlOwogICAgIGJvb2wgbV9oZWFkZXJzUmVxdWVzdGVkOwogICAgIGludCBtX2N1cnJl
bnRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJlcjsKICAgICB1bnNpZ25lZCBtX25leHRVc2VySW5p
dGlhdGVkUHJvZmlsZU51bWJlcjsKICAgICB1bnNpZ25lZCBtX25leHRVc2VySW5pdGlhdGVkSGVh
cFNuYXBzaG90TnVtYmVyOwogICAgIFByb2ZpbGVzTWFwIG1fcHJvZmlsZXM7CiAgICAgSGVhcFNu
YXBzaG90c01hcCBtX3NuYXBzaG90czsKKyAgICBkb3VibGUgbV9pZGxlVGltZTsKKyAgICBkb3Vi
bGUgbV90YXNrRW5kVGltZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IDRi
NjE4YjE3MDBjNGEyOWFiOGUzZjVkN2VmNmVhMTRiYTljNGY1MTkuLjUzZDU3ZDlhY2VhMmUxZWFj
Njg5YTk5MTAyNDg5YWVjNGQ2MGE5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNTksMTAgKzU5LDEwIEBAIGNsYXNzIFJl
c291cmNlUmVzcG9uc2U7CiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogY2xhc3MgSW5z
cGVjdG9yVGltZWxpbmVBZ2VudAotICAgIDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNw
ZWN0b3JUaW1lbGluZUFnZW50PiwKLSAgICAgIHB1YmxpYyBTY3JpcHRHQ0V2ZW50TGlzdGVuZXIs
Ci0gICAgICBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OlRpbWVsaW5lQ29tbWFu
ZEhhbmRsZXIsCi0gICAgICBwdWJsaWMgUGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQgewor
ICAgIDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JUaW1lbGluZUFnZW50Pgor
ICAgICwgcHVibGljIFNjcmlwdEdDRXZlbnRMaXN0ZW5lcgorICAgICwgcHVibGljIEluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyOjpUaW1lbGluZUNvbW1hbmRIYW5kbGVyCisgICAgLCBwdWJsaWMg
UGxhdGZvcm1JbnN0cnVtZW50YXRpb25DbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEluc3BlY3RvclRpbWVsaW5lQWdlbnQpOwogcHVibGljOgogICAgIGVudW0gSW5zcGVjdG9yVHlw
ZSB7IFBhZ2VJbnNwZWN0b3IsIFdvcmtlckluc3BlY3RvciB9OwpAQCAtMTUzLDExICsxNTMsMTIg
QEAgcHVibGljOgogICAgIHZvaWQgd2lsbEZpcmVBbmltYXRpb25GcmFtZShpbnQgY2FsbGJhY2tJ
ZCwgRnJhbWUqKTsKICAgICB2b2lkIGRpZEZpcmVBbmltYXRpb25GcmFtZSgpOwogCi0gICAgdmly
dHVhbCB2b2lkIGRpZEdDKGRvdWJsZSwgZG91YmxlLCBzaXplX3QpOwotCiAgICAgdm9pZCB3aWxs
UHJvY2Vzc1Rhc2soKTsKICAgICB2b2lkIGRpZFByb2Nlc3NUYXNrKCk7CiAKKyAgICAvLyBTY3Jp
cHRHQ0V2ZW50TGlzdGVuZXIgbWV0aG9kcy4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkR0MoZG91Ymxl
LCBkb3VibGUsIHNpemVfdCk7CisKICAgICAvLyBQbGF0Zm9ybUluc3RydW1lbnRhdGlvbkNsaWVu
dCBtZXRob2RzLgogICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVjb2RlSW1hZ2UoY29uc3QgU3RyaW5n
JiBpbWFnZVR5cGUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWREZWNvZGVJbWFnZSgp
IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFBy
b2ZpbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsCmlu
ZGV4IDZhN2E4MmQ3YTYwMTdlM2I4YjRjYzBiZTJhZTRlNDY2MThjYWFhZjAuLjNiOGIyNGU3YjM1
NDk2YjNkY2YxNjM5ZWM5ZDZiMGU2MzBiZGExMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvU2NyaXB0UHJvZmlsZS5pZGwKQEAgLTMzLDUgKzMzLDYgQEAKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHRpdGxlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIHVpZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgU2NyaXB0UHJvZmlsZU5vZGUgaGVhZDsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGlkbGVUaW1lOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAppbmRleCAy
MjBiN2RiNzQzMDY1MjQ3MjJlOGEzY2E1ZmZhMzZkZTc4ZTQyNzBjLi4zZDJmOWVjNjYxMzFkYmY3
ODVlMTE5MzRhMzY5MzBhMWYwNzVhYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JbnNwZWN0b3JDbGllbnRJbXBsLmNwcApAQCAtNTEsNiArNTEsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogSW5zcGVjdG9yQ2xpZW50SW1wbDo6SW5zcGVjdG9yQ2xpZW50SW1wbChX
ZWJWaWV3SW1wbCogd2ViVmlldykKICAgICA6IG1faW5zcGVjdGVkV2ViVmlldyh3ZWJWaWV3KQor
ICAgICwgbV9tYWluVGhyZWFkU3Vic2NyaXByaW9uQ291bnQoMCkKIHsKICAgICBBU1NFUlQobV9p
bnNwZWN0ZWRXZWJWaWV3KTsKIH0KQEAgLTEzOCwxMiArMTM5LDE0IEBAIGJvb2wgSW5zcGVjdG9y
Q2xpZW50SW1wbDo6Y2FuTW9uaXRvck1haW5UaHJlYWQoKQogCiB2b2lkIEluc3BlY3RvckNsaWVu
dEltcGw6OnN0YXJ0TWFpblRocmVhZE1vbml0b3JpbmcoKQogewotICAgIFdlYktpdDo6UGxhdGZv
cm06OmN1cnJlbnQoKS0+Y3VycmVudFRocmVhZCgpLT5hZGRUYXNrT2JzZXJ2ZXIodGhpcyk7Cisg
ICAgaWYgKCFtX21haW5UaHJlYWRTdWJzY3JpcHJpb25Db3VudCsrKQorICAgICAgICBXZWJLaXQ6
OlBsYXRmb3JtOjpjdXJyZW50KCktPmN1cnJlbnRUaHJlYWQoKS0+YWRkVGFza09ic2VydmVyKHRo
aXMpOwogfQogCiB2b2lkIEluc3BlY3RvckNsaWVudEltcGw6OnN0b3BNYWluVGhyZWFkTW9uaXRv
cmluZygpCiB7Ci0gICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jdXJyZW50VGhyZWFk
KCktPnJlbW92ZVRhc2tPYnNlcnZlcih0aGlzKTsKKyAgICBpZiAoIS0tbV9tYWluVGhyZWFkU3Vi
c2NyaXByaW9uQ291bnQpCisgICAgICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y3Vy
cmVudFRocmVhZCgpLT5yZW1vdmVUYXNrT2JzZXJ2ZXIodGhpcyk7CiB9CiAKIGJvb2wgSW5zcGVj
dG9yQ2xpZW50SW1wbDo6Y2FuT3ZlcnJpZGVEZXZpY2VNZXRyaWNzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckNsaWVudEltcGwuaAppbmRleCBhNzU5MjU3YWY4
NWNlODAxODE0ODJjYzMzNDYyM2UxNGI2YzE4YjM3Li5mMjg4OGU0MTVkY2ZhMmJiZjAxMGQ4YTg4
MzQyYWMyNWYzMGJiMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
bnNwZWN0b3JDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5z
cGVjdG9yQ2xpZW50SW1wbC5oCkBAIC05NCw2ICs5NCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBU
aGUgV2ViVmlld0ltcGwgb2YgdGhlIHBhZ2UgYmVpbmcgaW5zcGVjdGVkOyBnZXRzIHBhc3NlZCB0
byB0aGUgY29uc3RydWN0b3IKICAgICBXZWJWaWV3SW1wbCogbV9pbnNwZWN0ZWRXZWJWaWV3Owor
ICAgIGludCBtX21haW5UaHJlYWRTdWJzY3JpcHJpb25Db3VudDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176866</attachid>
            <date>2012-11-29 17:46:56 -0800</date>
            <delta_ts>2012-12-10 22:44:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103120-20121130054428.patch</filename>
            <type>text/plain</type>
            <size>12769</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyZDQ0ZTU3YTk3OTY5
ZmMxYTVkMWE3ZWY4NDUxYmRkNTQ3NGE4Zi4uOTBmNzg4YzJjZTViOTRhOGNjNGMzMmIxZTQ4YjM4
YTg1YjRkMzdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTExLTI5ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IENhbGN1bGF0ZSAiaWRsZSIgdGltZSBmb3IgQ1BVIHByb2ZpbGVzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMTIwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ1BVIHByb2ZpbGVzIGNvbnRh
aW4gYSB2ZXJ5IGNvbmZ1c2luZyAiKHByb2dyYW0pIiBpdGVtLgorICAgICAgICBJdCBpcyB0aW1l
IHdoZW4gdGhlcmUgaXMgbm8gSlMgc3RhY2suCisgICAgICAgIFRoYXQgY291bGQgYmUgZWl0aGVy
IGlkbGUgdGltZSwgb3IgdGltZSB3aGVuIGJyb3dzZXIgaXMgZG9pbmcgc29tZXRoaW5nLgorCisg
ICAgICAgIFRvIHNwbGl0ICIocHJvZ3JhbSkiIGl0ZW0gdG8gaWRsZSBhbmQgcmVhbGx5IHByb2dy
YW0gdGltZSB3ZSBhcmUgdG8KKyAgICAgICAgY2FsY3VsYXRlIGlkbGUgdGltZSBkdXJpbmcgcHJv
ZmlsaW5nLgorCisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsOiBBZGRlZCAi
aWRsZVRpbWUiIGZpZWxkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuY3Bw
OiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmg6IERpdHRvLgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuY3BwOiBEaXR0by4KKyAgICAgICAg
KiBiaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmg6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbjogRGVjbGFyZWQgImlkbGVUaW1lIiBmaWVsZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIFByb3BhZ2F0ZSBub3Rp
ZmljYXRpb24gdG8gcHJvZmlsZXIgYWdlbnQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICBVc2UgaW5zcGVjdG9yIGNsaWVudCB0byBjYWxj
dWxhdGUgaWRsZSB0aW1lIGluIENQVSBwcm9maWxlLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JQcm9maWxlckFnZW50Lmg6IERpdHRvLgorCiAyMDEyLTExLTI5ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIHBhaW50aW5nIGxvdHMg
b2Ygc21hbGwgcmVjdHMgaW4gV2ViTGF5ZXIgcGFpbnRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAKaW5kZXggNGNlZjRjZGRkNTljMjdmMjJjYTVlMTVh
NTEyMWU2NTA2NTI4Mjk5MC4uOWEyYjQ1MTg5NzA0YmJhMGI5YTBjMThhMTVkZWI4YmY2MzEwODMz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHAKQEAg
LTc1LDYgKzc1LDExIEBAIFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZU5vZGU+IFNjcmlwdFByb2Zp
bGU6OmJvdHRvbVVwSGVhZCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK2RvdWJsZSBTY3Jp
cHRQcm9maWxlOjppZGxlVGltZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDAuMDsKK30KKwogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1
aWxkSW5zcGVjdG9yT2JqZWN0Rm9yKGNvbnN0IEpTQzo6UHJvZmlsZU5vZGUqIG5vZGUpCiB7CkBA
IC0xMDksNiArMTE0LDEwIEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBTY3JpcHRQcm9m
aWxlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvckJvdHRvbVVwSGVhZCgpCiB7CiAgICAgcmV0dXJu
IDA7CiB9CisKK3ZvaWQgU2NyaXB0UHJvZmlsZTo6c2V0SWRsZVRpbWUoZG91YmxlKQoreworfQog
I2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdFByb2ZpbGUuaAppbmRleCBkNzI1YWY1NDU5Mjg1MDBhM2ZkYmU2OWQ5NjEzNmI1
Mzk1ODI1MWM4Li4zMzljMjBkNjg5NDIxNzQzZjczNzcyYzk0ZWI3Y2E1MzZiNmE0MzMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oCkBAIC01MSwxMCArNTEs
MTIgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGludCB1aWQoKSBjb25zdDsKICAgICBTY3JpcHRQ
cm9maWxlTm9kZSogaGVhZCgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZU5v
ZGU+IGJvdHRvbVVwSGVhZCgpIGNvbnN0OworICAgIGRvdWJsZSBpZGxlVGltZSgpIGNvbnN0Owog
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
YnVpbGRJbnNwZWN0b3JPYmplY3RGb3JIZWFkKCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yQm90dG9tVXBIZWFkKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRJZGxlVGltZShkb3VibGUpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuY3BwCmluZGV4IGU1ZjQwMDE2
NTIyZGY5MzQ0YjE5ZTA1MzkwMDNiZjU0ZTA2ZmY0YTYuLmNlOGUyYTFkYjRhNTY4OTViYzM3OWVk
ODZjNWQ3NGIzYTMxMGZlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdFByb2ZpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Njcmlw
dFByb2ZpbGUuY3BwCkBAIC02NSw2ICs2NSwxMSBAQCBQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGVO
b2RlPiBTY3JpcHRQcm9maWxlOjpib3R0b21VcEhlYWQoKSBjb25zdAogICAgIHJldHVybiBTY3Jp
cHRQcm9maWxlTm9kZTo6Y3JlYXRlKG1fcHJvZmlsZS0+R2V0Qm90dG9tVXBSb290KCkpOwogfQog
Citkb3VibGUgU2NyaXB0UHJvZmlsZTo6aWRsZVRpbWUoKSBjb25zdAoreworICAgIHJldHVybiBt
X2lkbGVUaW1lOworfQorCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIHN0YXRpYyBQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gYnVpbGRJbnNwZWN0b3JPYmplY3RGb3IoY29uc3Qgdjg6OkNwdVBy
b2ZpbGVOb2RlKiBub2RlKQogewpAQCAtOTgsNiArMTAzLDExIEBAIFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBTY3JpcHRQcm9maWxlOjpidWlsZEluc3BlY3Rvck9iamVjdEZvckJvdHRvbVVw
SGVhZCgpCiB7CiAgICAgcmV0dXJuIGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9yKG1fcHJvZmlsZS0+
R2V0Qm90dG9tVXBSb290KCkpOwogfQorCit2b2lkIFNjcmlwdFByb2ZpbGU6OnNldElkbGVUaW1l
KGRvdWJsZSBpZGxlVGltZSkKK3sKKyAgICBtX2lkbGVUaW1lID0gaWRsZVRpbWU7Cit9CiAjZW5k
aWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
U2NyaXB0UHJvZmlsZS5oCmluZGV4IGRiMzk1ZWQ2YzUxODE5NWE0NmNjZjY5YWFmODJhY2FkZDBh
MDJjM2EuLmE1YWY4OTllODIzZjdlMDFmZmY4M2MzZTAzMmYxZjMzZWE4YTc4YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmgKQEAgLTU3LDE4ICs1NywyMiBA
QCBwdWJsaWM6CiAgICAgdW5zaWduZWQgaW50IHVpZCgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8
U2NyaXB0UHJvZmlsZU5vZGU+IGhlYWQoKSBjb25zdDsKICAgICBQYXNzUmVmUHRyPFNjcmlwdFBy
b2ZpbGVOb2RlPiBib3R0b21VcEhlYWQoKSBjb25zdDsKKyAgICBkb3VibGUgaWRsZVRpbWUoKSBj
b25zdDsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9ySGVhZCgpIGNvbnN0OwogICAgIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZEluc3BlY3Rvck9iamVjdEZvckJvdHRvbVVwSGVhZCgp
IGNvbnN0OworICAgIHZvaWQgc2V0SWRsZVRpbWUoZG91YmxlKTsKICNlbmRpZgogCiBwcml2YXRl
OgogICAgIFNjcmlwdFByb2ZpbGUoY29uc3Qgdjg6OkNwdVByb2ZpbGUqIHByb2ZpbGUpCiAgICAg
ICAgIDogbV9wcm9maWxlKHByb2ZpbGUpCisgICAgICAgICwgbV9pZGxlVGltZSgwLjApCiAgICAg
e30KIAogICAgIGNvbnN0IHY4OjpDcHVQcm9maWxlKiBtX3Byb2ZpbGU7CisgICAgZG91YmxlIG1f
aWRsZVRpbWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYTIwOTRjYmI5MDY3MDM1YWU5MzQ0MmQ0MWJhZjQ2
MmI0OTBhODIzZS4uNWE3ZGJhMWNlM2JiNDg4MTBhOGI1N2VlZTU2NGRjZTRmYjk5MTY1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMjk1OSw3ICsyOTU5LDgg
QEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJvZmlsZS4iLAogICAgICAgICAg
ICAgICAgICJwcm9wZXJ0aWVzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhl
YWQiLCAidHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwiOiB0cnVlIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYm90dG9tVXBIZWFkIiwgInR5cGUiOiAib2JqZWN0IiwgIm9wdGlv
bmFsIjogdHJ1ZSB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYm90dG9tVXBIZWFk
IiwgInR5cGUiOiAib2JqZWN0IiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAorICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImlkbGVUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjog
dHJ1ZSB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApp
bmRleCA0YTJiNGQyNDE0Mjg2OTUyNjI5YTQyZjhiNjg2YzAyMWM5ODFlMjQ2Li4zMmUyYTdjOGFl
YmRhNTkzMzVmNzg5MzM3Mjk0YTA5MjljY2Q0NTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC00MDMsMTIgKzQwMywxOCBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxQcm9jZXNzVGFzaygpCiB7CiAgICAgaWYgKElu
c3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKICAgICAgICAgdGltZWxpbmVBZ2VudC0+d2ls
bFByb2Nlc3NUYXNrKCk7CisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisgICAgbV9w
cm9maWxlckFnZW50LT53aWxsUHJvY2Vzc1Rhc2soKTsKKyNlbmRpZgogfQogCiB2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OmRpZFByb2Nlc3NUYXNrKCkKIHsKICAgICBpZiAoSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IG1faW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVj
dG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRQcm9jZXNzVGFz
aygpOworI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQorICAgIG1fcHJvZmlsZXJBZ2Vu
dC0+ZGlkUHJvY2Vzc1Rhc2soKTsKKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dC5jcHAKaW5kZXggNmQ3MTg1YmM0OGE4MTZiYWRjODMwNGUxY2Q3YzZmZjRjMzk0N2Y3Yy4uOTEx
MTJiYzYwNzkxYjI3Y2RhNmRhM2UyNTk1ZjY4YTBlYWMzZmJiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApAQCAtNTAsNiAr
NTAsNyBAQAogI2luY2x1ZGUgIlNjcmlwdFByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdERlYnVnU2VydmVy
LmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbkhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KQEAgLTEzMSwxMSArMTMyLDEzIEBAIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX2Zyb250ZW5kKDApCiAgICAgLCBtX2VuYWJsZWQo
ZmFsc2UpCi0gICAgLCBtX3JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKGZhbHNlKQorICAg
ICwgbV9yZWNvcmRpbmdDUFVQcm9maWxlKGZhbHNlKQogICAgICwgbV9oZWFkZXJzUmVxdWVzdGVk
KGZhbHNlKQogICAgICwgbV9jdXJyZW50VXNlckluaXRpYXRlZFByb2ZpbGVOdW1iZXIoLTEpCiAg
ICAgLCBtX25leHRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJlcigxKQogICAgICwgbV9uZXh0VXNl
ckluaXRpYXRlZEhlYXBTbmFwc2hvdE51bWJlcigxKQorICAgICwgbV9pZGxlVGltZSgwLjApCisg
ICAgLCBtX3ByZXZpb3VzVGFza0VuZFRpbWUoMC4wKQogewogICAgIG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy0+c2V0SW5zcGVjdG9yUHJvZmlsZXJBZ2VudCh0aGlzKTsKIH0KQEAgLTI5Miw2ICsyOTUs
OCBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGUoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmCiAgICAgICAgIHByb2ZpbGVPYmplY3QtPnNldEhl
YWQoaXQtPnZhbHVlLT5idWlsZEluc3BlY3Rvck9iamVjdEZvckhlYWQoKSk7CiAgICAgICAgIGlm
IChpdC0+dmFsdWUtPmJvdHRvbVVwSGVhZCgpKQogICAgICAgICAgICAgcHJvZmlsZU9iamVjdC0+
c2V0Qm90dG9tVXBIZWFkKGl0LT52YWx1ZS0+YnVpbGRJbnNwZWN0b3JPYmplY3RGb3JCb3R0b21V
cEhlYWQoKSk7CisgICAgICAgIGlmIChpdC0+dmFsdWUtPmlkbGVUaW1lKCkpCisgICAgICAgICAg
ICBwcm9maWxlT2JqZWN0LT5zZXRJZGxlVGltZShpdC0+dmFsdWUtPmlkbGVUaW1lKCkpOwogICAg
IH0gZWxzZSBpZiAodHlwZSA9PSBIZWFwUHJvZmlsZVR5cGUpIHsKICAgICAgICAgSGVhcFNuYXBz
aG90c01hcDo6aXRlcmF0b3IgaXQgPSBtX3NuYXBzaG90cy5maW5kKHVpZCk7CiAgICAgICAgIGlm
IChpdCA9PSBtX3NuYXBzaG90cy5lbmQoKSkgewpAQCAtMzc0LDEzICszNzksMTUgQEAgdm9pZCBJ
bnNwZWN0b3JQcm9maWxlckFnZW50OjpyZXN0b3JlRW5hYmxlbWVudCgpCiAKIHZvaWQgSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudDo6c3RhcnQoRXJyb3JTdHJpbmcqKQogewotICAgIGlmIChtX3JlY29y
ZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKQorICAgIGlmIChtX3JlY29yZGluZ0NQVVByb2ZpbGUp
CiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIWVuYWJsZWQoKSkgewogICAgICAgICBlbmFibGUo
dHJ1ZSk7CiAgICAgICAgIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkucmVjb21waWxl
QWxsSlNGdW5jdGlvbnMoMCk7CiAgICAgfQotICAgIG1fcmVjb3JkaW5nVXNlckluaXRpYXRlZFBy
b2ZpbGUgPSB0cnVlOworICAgIG1faWRsZVRpbWUgPSAwLjA7CisgICAgbV9wcmV2aW91c1Rhc2tF
bmRUaW1lID0gMC4wOworICAgIG1fcmVjb3JkaW5nQ1BVUHJvZmlsZSA9IHRydWU7CiAgICAgU3Ry
aW5nIHRpdGxlID0gZ2V0Q3VycmVudFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZSh0cnVlKTsKICAg
ICBzdGFydFByb2ZpbGluZyh0aXRsZSk7CiAgICAgYWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9D
b25zb2xlKHRpdGxlLCAwLCBTdHJpbmcoKSk7CkBAIC0zOTAsMTMgKzM5NywxNSBAQCB2b2lkIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0YXJ0KEVycm9yU3RyaW5nKikKIAogdm9pZCBJbnNwZWN0
b3JQcm9maWxlckFnZW50OjpzdG9wKEVycm9yU3RyaW5nKikKIHsKLSAgICBpZiAoIW1fcmVjb3Jk
aW5nVXNlckluaXRpYXRlZFByb2ZpbGUpCisgICAgaWYgKCFtX3JlY29yZGluZ0NQVVByb2ZpbGUp
CiAgICAgICAgIHJldHVybjsKLSAgICBtX3JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlID0g
ZmFsc2U7CisgICAgbV9yZWNvcmRpbmdDUFVQcm9maWxlID0gZmFsc2U7CiAgICAgU3RyaW5nIHRp
dGxlID0gZ2V0Q3VycmVudFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZSgpOwogICAgIFJlZlB0cjxT
Y3JpcHRQcm9maWxlPiBwcm9maWxlID0gc3RvcFByb2ZpbGluZyh0aXRsZSk7Ci0gICAgaWYgKHBy
b2ZpbGUpCisgICAgaWYgKHByb2ZpbGUpIHsKKyAgICAgICAgcHJvZmlsZS0+c2V0SWRsZVRpbWUo
bV9pZGxlVGltZSAqIDEwMDApOwogICAgICAgICBhZGRQcm9maWxlKHByb2ZpbGUsIDAsIFN0cmlu
ZygpKTsKKyAgICB9CiAgICAgdG9nZ2xlUmVjb3JkQnV0dG9uKGZhbHNlKTsKICAgICBtX3N0YXRl
LT5zZXRCb29sZWFuKFByb2ZpbGVyQWdlbnRTdGF0ZTo6dXNlckluaXRpYXRlZFByb2ZpbGluZywg
ZmFsc2UpOwogfQpAQCAtNDk1LDYgKzUwNCwyMiBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdl
bnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZgog
ICAgIGluZm8uYWRkTWVtYmVyKG1fc25hcHNob3RzKTsKIH0KIAordm9pZCBJbnNwZWN0b3JQcm9m
aWxlckFnZW50Ojp3aWxsUHJvY2Vzc1Rhc2soKQoreworICAgIGlmICghbV9yZWNvcmRpbmdDUFVQ
cm9maWxlKQorICAgICAgICByZXR1cm47CisgICAgaWYgKG1fcHJldmlvdXNUYXNrRW5kVGltZSkK
KyAgICAgICAgbV9pZGxlVGltZSArPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
IC0gbV9wcmV2aW91c1Rhc2tFbmRUaW1lOworICAgIG1fcHJldmlvdXNUYXNrRW5kVGltZSA9IDAu
MDsKK30KKwordm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpkaWRQcm9jZXNzVGFzaygpCit7
CisgICAgaWYgKCFtX3JlY29yZGluZ0NQVVByb2ZpbGUpCisgICAgICAgIHJldHVybjsKKyAgICBt
X3ByZXZpb3VzVGFza0VuZFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSkFWQVND
UklQVF9ERUJVR0dFUikgJiYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCmluZGV4IDgyM2I3ZTZmMGI4NWMz
YTM0OTllYTdlYTQxOTVlYzZhNjRiMjYyNGYuLmJkNjAxNDlkODU5NmRmOTI5M2U3MjhhMTM1ODdh
YjI3YzA3MWU4NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQcm9maWxlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clByb2ZpbGVyQWdlbnQuaApAQCAtMTAyLDYgKzEwMiw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJ
REU7CiAKKyAgICB2b2lkIHdpbGxQcm9jZXNzVGFzaygpOworICAgIHZvaWQgZGlkUHJvY2Vzc1Rh
c2soKTsKKwogcHJvdGVjdGVkOgogICAgIEluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2VudCosIEluc3BlY3RvclN0YXRlKiwgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UHJvZmlsaW5nKGNv
bnN0IFN0cmluZyYgdGl0bGUpID0gMDsKQEAgLTEyMSwxMyArMTI0LDE1IEBAIHByaXZhdGU6CiAg
ICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKICAgICBJ
bnNwZWN0b3JGcm9udGVuZDo6UHJvZmlsZXIqIG1fZnJvbnRlbmQ7CiAgICAgYm9vbCBtX2VuYWJs
ZWQ7Ci0gICAgYm9vbCBtX3JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlOworICAgIGJvb2wg
bV9yZWNvcmRpbmdDUFVQcm9maWxlOwogICAgIGJvb2wgbV9oZWFkZXJzUmVxdWVzdGVkOwogICAg
IGludCBtX2N1cnJlbnRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJlcjsKICAgICB1bnNpZ25lZCBt
X25leHRVc2VySW5pdGlhdGVkUHJvZmlsZU51bWJlcjsKICAgICB1bnNpZ25lZCBtX25leHRVc2Vy
SW5pdGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyOwogICAgIFByb2ZpbGVzTWFwIG1fcHJvZmlsZXM7
CiAgICAgSGVhcFNuYXBzaG90c01hcCBtX3NuYXBzaG90czsKKyAgICBkb3VibGUgbV9pZGxlVGlt
ZTsKKyAgICBkb3VibGUgbV9wcmV2aW91c1Rhc2tFbmRUaW1lOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1l
bGluZUFnZW50LmgKaW5kZXggNGI2MThiMTcwMGM0YTI5YWI4ZTNmNWQ3ZWY2ZWExNGJhOWM0ZjUx
OS4uZTg2ZDlmM2YxMTNlZTkxMmNiMTBiNzFhZTg1OTc2MTExY2E0ZjY4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0xNTMs
MTEgKzE1MywxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsRmlyZUFuaW1hdGlvbkZyYW1lKGlu
dCBjYWxsYmFja0lkLCBGcmFtZSopOwogICAgIHZvaWQgZGlkRmlyZUFuaW1hdGlvbkZyYW1lKCk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkR0MoZG91YmxlLCBkb3VibGUsIHNpemVfdCk7Ci0KICAg
ICB2b2lkIHdpbGxQcm9jZXNzVGFzaygpOwogICAgIHZvaWQgZGlkUHJvY2Vzc1Rhc2soKTsKIAor
ICAgIC8vIFNjcmlwdEdDRXZlbnRMaXN0ZW5lciBtZXRob2RzLgorICAgIHZpcnR1YWwgdm9pZCBk
aWRHQyhkb3VibGUsIGRvdWJsZSwgc2l6ZV90KTsKKwogICAgIC8vIFBsYXRmb3JtSW5zdHJ1bWVu
dGF0aW9uQ2xpZW50IG1ldGhvZHMuCiAgICAgdmlydHVhbCB2b2lkIHdpbGxEZWNvZGVJbWFnZShj
b25zdCBTdHJpbmcmIGltYWdlVHlwZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZERl
Y29kZUltYWdlKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvU2NyaXB0UHJvZmlsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJv
ZmlsZS5pZGwKaW5kZXggNmE3YTgyZDdhNjAxN2UzYjhiNGNjMGJlMmFlNGU0NjYxOGNhYWFmMC4u
M2I4YjI0ZTdiMzU0OTZiM2RjZjE2MzllYzlkNmIwZTYzMGJkYTEyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbApAQCAtMzMsNSArMzMsNiBAQAogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGl0bGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgdWlkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTY3JpcHRQcm9maWxl
Tm9kZSBoZWFkOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgaWRsZVRpbWU7CiB9Owog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178724</attachid>
            <date>2012-12-10 22:45:05 -0800</date>
            <delta_ts>2012-12-20 00:44:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103120-20121211104226.patch</filename>
            <type>text/plain</type>
            <size>16729</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQzMjdkZmE5MWY4Yzcw
NjA1NjFlZmZhMDQzYjljMDYyNmIzNDEyOS4uNWJlY2M4ZGM4YTQ4ZmY0MmE1N2Y3ZDE4ZDA5OWI4
YTUzNTJkZjI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEyLTEwICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IENhbGN1bGF0ZSAiaWRsZSIgdGltZSBmb3IgQ1BVIHByb2ZpbGVzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMTIwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ1BVIHByb2ZpbGVzIGNvbnRh
aW4gYSB2ZXJ5IGNvbmZ1c2luZyAiKHByb2dyYW0pIiBpdGVtLgorICAgICAgICBJdCBpcyB0aW1l
IHdoZW4gdGhlcmUgaXMgbm8gSlMgc3RhY2suCisgICAgICAgIFRoYXQgY291bGQgYmUgZWl0aGVy
IGlkbGUgdGltZSwgb3IgdGltZSB3aGVuIGJyb3dzZXIgaXMgZG9pbmcgc29tZXRoaW5nLgorCisg
ICAgICAgIFRvIHNwbGl0ICIocHJvZ3JhbSkiIGl0ZW0gdG8gaWRsZSBhbmQgcmVhbGx5IHByb2dy
YW0gdGltZSB3ZSBhcmUgdG8KKyAgICAgICAgY2FsY3VsYXRlIGlkbGUgdGltZSBkdXJpbmcgcHJv
ZmlsaW5nLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5jcHA6IEFkZGVk
ICJpZGxlVGltZSIgZ2V0dGVyLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUu
aDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIuaDoKKyAgICAg
ICAgQWRkZWQgZ2V0dGVyIG9mIHRocmVhZC1sb2NhbCBtYXAgb2YgY3VycmVudGx5IHdyaXR0ZW4g
cHJvZmlsZXMuCisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5jcHA6IEFkZGVk
ICJpZGxlVGltZSIgZ2V0dGVyLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUu
aDogRGl0dG8uCisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0UHJvZmlsZXI6OnN0YXJ0KTogUHV0IHByb2ZpbGUgbmFtZSB0
byBtYXAuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9maWxlcjo6c3RvcCk6IFJlbW92ZSBw
cm9maWxlIG5hbWUgZnJvbSBtYXA7CisgICAgICAgIHBhc3MgaWRsZVRpbWUgdG8gcHJvZmlsZSBj
b25zdHJ1Y3Rvci4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5oOgorICAg
ICAgICBBZGRlZCBnZXR0ZXIgb2YgdGhyZWFkLWxvY2FsIG1hcCBvZiBjdXJyZW50bHkgd3JpdHRl
biBwcm9maWxlcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246IEFkZGVkICJp
ZGxlVGltZSIgZmllbGQgdG8gcHJvZmlsZS4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHA6IFBhc3MgaG9va3MgdG8gcHJvZmlsZXIgYWdlbnQuCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICBBZGQgaWRsZSB0
aW1lIHRvIGN1cnJlbnRseSB3cml0dGVuIHByb2ZpbGVzLgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50Lmg6CisgICAgICAgIEFkZGVkIG1lbWJlciB0byBob2xkIHJl
ZmVyZW5jZSB0byBtYXAgb2YgY3VycmVudGx5IHdyaXR0ZW4gcHJvZmlsZXMuCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgQ2xlYW51cC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGw6CisgICAgICAgIEFkZCAiaWRsZVRp
bWUiIG1lbWJlci4KKwogMjAxMi0xMi0xMCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIG9sZCBXZWJLaXQgQW5pbWF0aW9uIEFQSSBjb2RlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuY3BwCmluZGV4IDRjZWY0Y2RkZDU5
YzI3ZjIyY2E1ZTE1YTUxMjFlNjUwNjUyODI5OTAuLmQxMjE4YTRiNGE3YmRmMWI4NDFhYmFmY2Rl
ZjJmZjhiMzZlNWRkZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdFByb2ZpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFBy
b2ZpbGUuY3BwCkBAIC03NSw2ICs3NSwxMSBAQCBQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGVOb2Rl
PiBTY3JpcHRQcm9maWxlOjpib3R0b21VcEhlYWQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQog
Citkb3VibGUgU2NyaXB0UHJvZmlsZTo6aWRsZVRpbWUoKSBjb25zdAoreworICAgIHJldHVybiAw
LjA7Cit9CisKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBidWlsZEluc3BlY3Rvck9iamVjdEZvcihjb25zdCBKU0M6OlByb2ZpbGVOb2Rl
KiBub2RlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
UHJvZmlsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oCmlu
ZGV4IGQ3MjVhZjU0NTkyODUwMGEzZmRiZTY5ZDk2MTM2YjUzOTU4MjUxYzguLmZlNWJiYjMyMDA3
YmFhMDA4OGM5NDE4OWQ1MmY1Zjc5Nzk0ZWZiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRQcm9maWxlLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogICAgIHVuc2ln
bmVkIGludCB1aWQoKSBjb25zdDsKICAgICBTY3JpcHRQcm9maWxlTm9kZSogaGVhZCgpIGNvbnN0
OwogICAgIFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZU5vZGU+IGJvdHRvbVVwSGVhZCgpIGNvbnN0
OworICAgIGRvdWJsZSBpZGxlVGltZSgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
ICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRJbnNwZWN0b3JPYmplY3RGb3JI
ZWFkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRQcm9maWxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZXIu
aAppbmRleCBjZTQ4NzBlMmZjMWMwOWQwNDNkNTBkNTYxYjU4OTNjODU3NmY2ZGEyLi4xZGEyODZh
NTIxOWFhMmIxZDU4YTEzNGJlYjkzMDczOWM2ODQzODI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVyLmgKQEAgLTgwLDYgKzgwLDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIHZpc2l0RXh0ZXJuYWxBcnJheXMoRXh0ZXJuYWxBcnJheVZpc2l0b3IqKSB7
IH0KICAgICBzdGF0aWMgdm9pZCBjb2xsZWN0QmluZGluZ01lbW9yeUluZm8oTWVtb3J5SW5zdHJ1
bWVudGF0aW9uKikgeyB9CiAgICAgc3RhdGljIHNpemVfdCBwcm9maWxlclNuYXBzaG90c1NpemUo
KSB7IHJldHVybiAwOyB9CisgICAgc3RhdGljIEhhc2hNYXA8U3RyaW5nLCBkb3VibGU+KiBjdXJy
ZW50UHJvZmlsZU5hbWVJZGxlVGltZU1hcCgpIHsgcmV0dXJuIDA7IH0KIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdFByb2ZpbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmls
ZS5jcHAKaW5kZXggZTVmNDAwMTY1MjJkZjkzNDRiMTllMDUzOTAwM2JmNTRlMDZmZjRhNi4uYjNl
OTRiN2U4ZTFkMjBmZGIwMTU2MGZmYjI5MmY1YWE2ZWY4OWU4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5jcHAKQEAgLTY1LDYgKzY1LDExIEBAIFBhc3NS
ZWZQdHI8U2NyaXB0UHJvZmlsZU5vZGU+IFNjcmlwdFByb2ZpbGU6OmJvdHRvbVVwSGVhZCgpIGNv
bnN0CiAgICAgcmV0dXJuIFNjcmlwdFByb2ZpbGVOb2RlOjpjcmVhdGUobV9wcm9maWxlLT5HZXRC
b3R0b21VcFJvb3QoKSk7CiB9CiAKK2RvdWJsZSBTY3JpcHRQcm9maWxlOjppZGxlVGltZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1faWRsZVRpbWU7Cit9CisKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZEluc3BlY3Rvck9iamVj
dEZvcihjb25zdCB2ODo6Q3B1UHJvZmlsZU5vZGUqIG5vZGUpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHRQcm9maWxlLmgKaW5kZXggZGIzOTVlZDZjNTE4MTk1YTQ2Y2NmNjlh
YWY4MmFjYWRkMGEwMmMzYS4uMWM0YTE4YzE5MzNjNGVmOWE5NTJjNzVmNTRlNTQ1ODliNTVjNGQx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGUuaApAQCAtNDcs
OSArNDcsOSBAQCBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiAKIGNsYXNzIFNjcmlwdFByb2ZpbGUg
OiBwdWJsaWMgUmVmQ291bnRlZDxTY3JpcHRQcm9maWxlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4gY3JlYXRlKGNvbnN0IHY4OjpDcHVQcm9maWxlKiBw
cm9maWxlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+IGNyZWF0ZShjb25z
dCB2ODo6Q3B1UHJvZmlsZSogcHJvZmlsZSwgZG91YmxlIGlkbGVUaW1lKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTY3JpcHRQcm9maWxlKHByb2ZpbGUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTY3JpcHRQcm9maWxlKHByb2ZpbGUsIGlkbGVUaW1lKSk7CiAg
ICAgfQogICAgIHZpcnR1YWwgflNjcmlwdFByb2ZpbGUoKTsKIApAQCAtNTcsNiArNTcsNyBAQCBw
dWJsaWM6CiAgICAgdW5zaWduZWQgaW50IHVpZCgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8U2Ny
aXB0UHJvZmlsZU5vZGU+IGhlYWQoKSBjb25zdDsKICAgICBQYXNzUmVmUHRyPFNjcmlwdFByb2Zp
bGVOb2RlPiBib3R0b21VcEhlYWQoKSBjb25zdDsKKyAgICBkb3VibGUgaWRsZVRpbWUoKSBjb25z
dDsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0Rm9ySGVhZCgpIGNvbnN0OwpAQCAtNjQsMTEgKzY1LDEz
IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIFNjcmlwdFByb2ZpbGUoY29uc3Qg
djg6OkNwdVByb2ZpbGUqIHByb2ZpbGUpCisgICAgU2NyaXB0UHJvZmlsZShjb25zdCB2ODo6Q3B1
UHJvZmlsZSogcHJvZmlsZSwgZG91YmxlIGlkbGVUaW1lKQogICAgICAgICA6IG1fcHJvZmlsZShw
cm9maWxlKQorICAgICAgICAsIG1faWRsZVRpbWUoaWRsZVRpbWUpCiAgICAge30KIAogICAgIGNv
bnN0IHY4OjpDcHVQcm9maWxlKiBtX3Byb2ZpbGU7CisgICAgZG91YmxlIG1faWRsZVRpbWU7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHRQcm9maWxlci5jcHAKaW5kZXggZjc3ZDU0ZTllNjgxYTI3YTQ2ZDc2YTNlOTM1ZDc3
Njc1ZTM1ODFmNi4uZWJmZTljZWZkNDJjNzEyNjE1M2YxMWFkODRkYjE3ODcxZjE4Mjc1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcApAQCAtNDMs
MTAgKzQzLDE5IEBACiAKICNpbmNsdWRlIDx2OC1wcm9maWxlci5oPgogCisjaW5jbHVkZSA8d3Rm
L1RocmVhZFNwZWNpZmljLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordHlwZWRlZiBIYXNo
TWFwPFN0cmluZywgZG91YmxlPiBQcm9maWxlTmFtZUlkbGVUaW1lTWFwOworCiB2b2lkIFNjcmlw
dFByb2ZpbGVyOjpzdGFydChTY3JpcHRTdGF0ZSogc3RhdGUsIGNvbnN0IFN0cmluZyYgdGl0bGUp
CiB7CisgICAgUHJvZmlsZU5hbWVJZGxlVGltZU1hcCogcHJvZmlsZU5hbWVJZGxlVGltZU1hcCA9
IFNjcmlwdFByb2ZpbGVyOjpjdXJyZW50UHJvZmlsZU5hbWVJZGxlVGltZU1hcCgpOworICAgIGlm
IChwcm9maWxlTmFtZUlkbGVUaW1lTWFwLT5jb250YWlucyh0aXRsZSkpCisgICAgICAgIHJldHVy
bjsKKyAgICBwcm9maWxlTmFtZUlkbGVUaW1lTWFwLT5hZGQodGl0bGUsIDApOworCiAgICAgdjg6
OkhhbmRsZVNjb3BlIGhzOwogICAgIHY4OjpDcHVQcm9maWxlcjo6U3RhcnRQcm9maWxpbmcoZGVw
cmVjYXRlZFY4U3RyaW5nKHRpdGxlKSk7CiB9CkBAIC02OSw3ICs3OCwxNiBAQCBQYXNzUmVmUHRy
PFNjcmlwdFByb2ZpbGU+IFNjcmlwdFByb2ZpbGVyOjpzdG9wKFNjcmlwdFN0YXRlKiBzdGF0ZSwg
Y29uc3QgU3RyaW5nJgogICAgIGNvbnN0IHY4OjpDcHVQcm9maWxlKiBwcm9maWxlID0gc3RhdGUg
PwogICAgICAgICB2ODo6Q3B1UHJvZmlsZXI6OlN0b3BQcm9maWxpbmcoZGVwcmVjYXRlZFY4U3Ry
aW5nKHRpdGxlKSwgc3RhdGUtPmNvbnRleHQoKS0+R2V0U2VjdXJpdHlUb2tlbigpKSA6CiAgICAg
ICAgIHY4OjpDcHVQcm9maWxlcjo6U3RvcFByb2ZpbGluZyhkZXByZWNhdGVkVjhTdHJpbmcodGl0
bGUpKTsKLSAgICByZXR1cm4gcHJvZmlsZSA/IFNjcmlwdFByb2ZpbGU6OmNyZWF0ZShwcm9maWxl
KSA6IDA7CisKKyAgICBkb3VibGUgaWRsZVRpbWUgPSAwLjA7CisgICAgUHJvZmlsZU5hbWVJZGxl
VGltZU1hcCogcHJvZmlsZU5hbWVJZGxlVGltZU1hcCA9IFNjcmlwdFByb2ZpbGVyOjpjdXJyZW50
UHJvZmlsZU5hbWVJZGxlVGltZU1hcCgpOworICAgIFByb2ZpbGVOYW1lSWRsZVRpbWVNYXA6Oml0
ZXJhdG9yIHByb2ZpbGVJZGxlVGltZSA9IHByb2ZpbGVOYW1lSWRsZVRpbWVNYXAtPmZpbmQodGl0
bGUpOworICAgIGlmIChwcm9maWxlSWRsZVRpbWUgIT0gcHJvZmlsZU5hbWVJZGxlVGltZU1hcC0+
ZW5kKCkpIHsKKyAgICAgICAgaWRsZVRpbWUgPSBwcm9maWxlSWRsZVRpbWUtPnZhbHVlICogMTAw
MC4wOworICAgICAgICBwcm9maWxlTmFtZUlkbGVUaW1lTWFwLT5yZW1vdmUocHJvZmlsZUlkbGVU
aW1lKTsKKyAgICB9CisKKyAgICByZXR1cm4gcHJvZmlsZSA/IFNjcmlwdFByb2ZpbGU6OmNyZWF0
ZShwcm9maWxlLCBpZGxlVGltZSkgOiAwOwogfQogCiBQYXNzUmVmUHRyPFNjcmlwdFByb2ZpbGU+
IFNjcmlwdFByb2ZpbGVyOjpzdG9wRm9yUGFnZShQYWdlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkK
QEAgLTI0MSw2ICsyNTksMTIgQEAgc2l6ZV90IFNjcmlwdFByb2ZpbGVyOjpwcm9maWxlclNuYXBz
aG90c1NpemUoKQogICAgIHJldHVybiB2ODo6SGVhcFByb2ZpbGVyOjpHZXRNZW1vcnlTaXplVXNl
ZEJ5UHJvZmlsZXIoKTsKIH0KIAorUHJvZmlsZU5hbWVJZGxlVGltZU1hcCogU2NyaXB0UHJvZmls
ZXI6OmN1cnJlbnRQcm9maWxlTmFtZUlkbGVUaW1lTWFwKCkKK3sKKyAgICBBdG9taWNhbGx5SW5p
dGlhbGl6ZWRTdGF0aWMoV1RGOjpUaHJlYWRTcGVjaWZpYzxQcm9maWxlTmFtZUlkbGVUaW1lTWFw
PiosIG1hcCA9IG5ldyBXVEY6OlRocmVhZFNwZWNpZmljPFByb2ZpbGVOYW1lSWRsZVRpbWVNYXA+
KTsKKyAgICByZXR1cm4gKm1hcDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRQcm9maWxlci5oCmluZGV4IGY4NDU5NDFhODZmMzc5OTNhZjk1MzEyZGI3ZjFkM2MzODNhNjA5
MDMuLmM3NGJmZWQzODc2YWVjOTdlNTVhZGFlYTZlNWMxYTMwYjk1ZDllMzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0UHJvZmlsZXIuaApAQCAtODQsNiArODQsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgdmlzaXRFeHRlcm5hbEFycmF5cyhFeHRlcm5hbEFycmF5
VmlzaXRvciopOwogICAgIHN0YXRpYyB2b2lkIGNvbGxlY3RCaW5kaW5nTWVtb3J5SW5mbyhNZW1v
cnlJbnN0cnVtZW50YXRpb24qKTsKICAgICBzdGF0aWMgc2l6ZV90IHByb2ZpbGVyU25hcHNob3Rz
U2l6ZSgpOworICAgIHN0YXRpYyBIYXNoTWFwPFN0cmluZywgZG91YmxlPiogY3VycmVudFByb2Zp
bGVOYW1lSWRsZVRpbWVNYXAoKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA0OTg4ZWZiYmNjNGMxMzZkNGEw
MWQyOTZlMjdmOTAzMDI5NTI1MjgzLi4yMWY0Y2M2NGI1OWZlYTUzNWVlNTIwNzgzNGZiZjg2NGQy
Y2M1OWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0yOTc2
LDcgKzI5NzYsOCBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcm9maWxlLiIs
CiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaGVhZCIsICJ0eXBlIjogIm9iamVjdCIsICJvcHRpb25hbCI6IHRydWUgfSwKLSAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJib3R0b21VcEhlYWQiLCAidHlwZSI6ICJvYmpl
Y3QiLCAib3B0aW9uYWwiOiB0cnVlIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJi
b3R0b21VcEhlYWQiLCAidHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwiOiB0cnVlIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRsZVRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAi
b3B0aW9uYWwiOiB0cnVlIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmluZGV4IGFhMmQ5YzczMWE5NzQxZTI2YTJhODYxNGY2ZWJmMWE2YWFhYzkxYzcu
LjNlNGRjOTNmNGU1NGQyMDQ5OGYyYjk0MDc3N2U5YTkzY2ZjNjkwYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTQxMywxMiAr
NDEzLDE4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFByb2Nlc3NUYXNrKCkKIHsK
ICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IG1faW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1lbGlu
ZUFnZW50LT53aWxsUHJvY2Vzc1Rhc2soKTsKKyNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikKKyAgICBtX3Byb2ZpbGVyQWdlbnQtPndpbGxQcm9jZXNzVGFzaygpOworI2VuZGlmCiB9CiAK
IHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUHJvY2Vzc1Rhc2soKQogewogICAgIGlmIChJ
bnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gbV9pbnN0cnVtZW50aW5nQWdl
bnRzLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRp
ZFByb2Nlc3NUYXNrKCk7CisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisgICAgbV9w
cm9maWxlckFnZW50LT5kaWRQcm9jZXNzVGFzaygpOworI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQcm9maWxlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
cm9maWxlckFnZW50LmNwcAppbmRleCA2ZDcxODViYzQ4YTgxNmJhZGM4MzA0ZTFjZDdjNmZmNGMz
OTQ3ZjdjLi40YjBkMGZlM2Q2M2JlYjE3M2M5MWI2MDJjMzNmZmRmODIxZjlmNmY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3Bw
CkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0UHJvZmlsZXIuaCIKICNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0
RGVidWdTZXJ2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgpAQCAtMTMxLDExICsx
MzIsMTMgQEAgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6SW5zcGVjdG9yUHJvZmlsZXJBZ2VudChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW4KICAgICAsIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkKICAgICAs
IG1fZW5hYmxlZChmYWxzZSkKLSAgICAsIG1fcmVjb3JkaW5nVXNlckluaXRpYXRlZFByb2ZpbGUo
ZmFsc2UpCisgICAgLCBtX3JlY29yZGluZ0NQVVByb2ZpbGUoZmFsc2UpCiAgICAgLCBtX2hlYWRl
cnNSZXF1ZXN0ZWQoZmFsc2UpCiAgICAgLCBtX2N1cnJlbnRVc2VySW5pdGlhdGVkUHJvZmlsZU51
bWJlcigtMSkKICAgICAsIG1fbmV4dFVzZXJJbml0aWF0ZWRQcm9maWxlTnVtYmVyKDEpCiAgICAg
LCBtX25leHRVc2VySW5pdGlhdGVkSGVhcFNuYXBzaG90TnVtYmVyKDEpCisgICAgLCBtX3Byb2Zp
bGVOYW1lSWRsZVRpbWVNYXAoU2NyaXB0UHJvZmlsZXI6OmN1cnJlbnRQcm9maWxlTmFtZUlkbGVU
aW1lTWFwKCkpCisgICAgLCBtX3ByZXZpb3VzVGFza0VuZFRpbWUoMC4wKQogewogICAgIG1faW5z
dHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUHJvZmlsZXJBZ2VudCh0aGlzKTsKIH0KQEAg
LTI5Miw2ICsyOTUsNyBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmdldFByb2ZpbGUo
RXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmCiAgICAgICAgIHByb2ZpbGVP
YmplY3QtPnNldEhlYWQoaXQtPnZhbHVlLT5idWlsZEluc3BlY3Rvck9iamVjdEZvckhlYWQoKSk7
CiAgICAgICAgIGlmIChpdC0+dmFsdWUtPmJvdHRvbVVwSGVhZCgpKQogICAgICAgICAgICAgcHJv
ZmlsZU9iamVjdC0+c2V0Qm90dG9tVXBIZWFkKGl0LT52YWx1ZS0+YnVpbGRJbnNwZWN0b3JPYmpl
Y3RGb3JCb3R0b21VcEhlYWQoKSk7CisgICAgICAgIHByb2ZpbGVPYmplY3QtPnNldElkbGVUaW1l
KGl0LT52YWx1ZS0+aWRsZVRpbWUoKSk7CiAgICAgfSBlbHNlIGlmICh0eXBlID09IEhlYXBQcm9m
aWxlVHlwZSkgewogICAgICAgICBIZWFwU25hcHNob3RzTWFwOjppdGVyYXRvciBpdCA9IG1fc25h
cHNob3RzLmZpbmQodWlkKTsKICAgICAgICAgaWYgKGl0ID09IG1fc25hcHNob3RzLmVuZCgpKSB7
CkBAIC0zNzQsMTMgKzM3OCwxMyBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnJlc3Rv
cmVFbmFibGVtZW50KCkKIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdGFydChFcnJv
clN0cmluZyopCiB7Ci0gICAgaWYgKG1fcmVjb3JkaW5nVXNlckluaXRpYXRlZFByb2ZpbGUpCisg
ICAgaWYgKG1fcmVjb3JkaW5nQ1BVUHJvZmlsZSkKICAgICAgICAgcmV0dXJuOwogICAgIGlmICgh
ZW5hYmxlZCgpKSB7CiAgICAgICAgIGVuYWJsZSh0cnVlKTsKICAgICAgICAgUGFnZVNjcmlwdERl
YnVnU2VydmVyOjpzaGFyZWQoKS5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygwKTsKICAgICB9Ci0g
ICAgbV9yZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZSA9IHRydWU7CisgICAgbV9yZWNvcmRp
bmdDUFVQcm9maWxlID0gdHJ1ZTsKICAgICBTdHJpbmcgdGl0bGUgPSBnZXRDdXJyZW50VXNlcklu
aXRpYXRlZFByb2ZpbGVOYW1lKHRydWUpOwogICAgIHN0YXJ0UHJvZmlsaW5nKHRpdGxlKTsKICAg
ICBhZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGUodGl0bGUsIDAsIFN0cmluZygpKTsK
QEAgLTM5MCw5ICszOTQsOSBAQCB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0YXJ0KEVy
cm9yU3RyaW5nKikKIAogdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdG9wKEVycm9yU3Ry
aW5nKikKIHsKLSAgICBpZiAoIW1fcmVjb3JkaW5nVXNlckluaXRpYXRlZFByb2ZpbGUpCisgICAg
aWYgKCFtX3JlY29yZGluZ0NQVVByb2ZpbGUpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3JlY29y
ZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlID0gZmFsc2U7CisgICAgbV9yZWNvcmRpbmdDUFVQcm9m
aWxlID0gZmFsc2U7CiAgICAgU3RyaW5nIHRpdGxlID0gZ2V0Q3VycmVudFVzZXJJbml0aWF0ZWRQ
cm9maWxlTmFtZSgpOwogICAgIFJlZlB0cjxTY3JpcHRQcm9maWxlPiBwcm9maWxlID0gc3RvcFBy
b2ZpbGluZyh0aXRsZSk7CiAgICAgaWYgKHByb2ZpbGUpCkBAIC00OTUsNiArNDk5LDI3IEBAIHZv
aWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mCiAgICAgaW5mby5hZGRNZW1iZXIobV9zbmFwc2hvdHMpOwog
fQogCit2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OndpbGxQcm9jZXNzVGFzaygpCit7Cisg
ICAgaWYgKCFtX3Byb2ZpbGVOYW1lSWRsZVRpbWVNYXAgfHwgIW1fcHJvZmlsZU5hbWVJZGxlVGlt
ZU1hcC0+c2l6ZSgpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFtX3ByZXZpb3VzVGFza0Vu
ZFRpbWUpCisgICAgICAgIHJldHVybjsKKworICAgIGRvdWJsZSBpZGxlVGltZSA9IFdURjo6bW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBtX3ByZXZpb3VzVGFza0VuZFRpbWU7CisgICAg
bV9wcmV2aW91c1Rhc2tFbmRUaW1lID0gMC4wOworICAgIFByb2ZpbGVOYW1lSWRsZVRpbWVNYXA6
Oml0ZXJhdG9yIGVuZCA9IG1fcHJvZmlsZU5hbWVJZGxlVGltZU1hcC0+ZW5kKCk7CisgICAgZm9y
IChQcm9maWxlTmFtZUlkbGVUaW1lTWFwOjppdGVyYXRvciBpdCA9IG1fcHJvZmlsZU5hbWVJZGxl
VGltZU1hcC0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBpdC0+dmFsdWUgKz0g
aWRsZVRpbWU7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6ZGlkUHJvY2Vzc1Rh
c2soKQoreworICAgIGlmICghbV9wcm9maWxlTmFtZUlkbGVUaW1lTWFwIHx8ICFtX3Byb2ZpbGVO
YW1lSWRsZVRpbWVNYXAtPnNpemUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fcHJldmlvdXNU
YXNrRW5kVGltZSA9IFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKSAmJiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKaW5kZXggODIzYjdlNmYwYjg1YzNhMzQ5OWVhN2Vh
NDE5NWVjNmE2NGIyNjI0Zi4uMjA4YTNkZjQ2N2Q1NmMxMDlhNjE2MWQ0MzNjNDc5M2IzYjI1NzEy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVy
QWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudC5oCkBAIC0xMDIsNiArMTAyLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKIAorICAg
IHZvaWQgd2lsbFByb2Nlc3NUYXNrKCk7CisgICAgdm9pZCBkaWRQcm9jZXNzVGFzaygpOworCiBw
cm90ZWN0ZWQ6CiAgICAgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlw
dE1hbmFnZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQcm9maWxpbmcoY29uc3QgU3RyaW5n
JiB0aXRsZSkgPSAwOwpAQCAtMTIxLDEzICsxMjQsMTcgQEAgcHJpdmF0ZToKICAgICBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAgIEluc3BlY3RvckZy
b250ZW5kOjpQcm9maWxlciogbV9mcm9udGVuZDsKICAgICBib29sIG1fZW5hYmxlZDsKLSAgICBi
b29sIG1fcmVjb3JkaW5nVXNlckluaXRpYXRlZFByb2ZpbGU7CisgICAgYm9vbCBtX3JlY29yZGlu
Z0NQVVByb2ZpbGU7CiAgICAgYm9vbCBtX2hlYWRlcnNSZXF1ZXN0ZWQ7CiAgICAgaW50IG1fY3Vy
cmVudFVzZXJJbml0aWF0ZWRQcm9maWxlTnVtYmVyOwogICAgIHVuc2lnbmVkIG1fbmV4dFVzZXJJ
bml0aWF0ZWRQcm9maWxlTnVtYmVyOwogICAgIHVuc2lnbmVkIG1fbmV4dFVzZXJJbml0aWF0ZWRI
ZWFwU25hcHNob3ROdW1iZXI7CiAgICAgUHJvZmlsZXNNYXAgbV9wcm9maWxlczsKICAgICBIZWFw
U25hcHNob3RzTWFwIG1fc25hcHNob3RzOworCisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywg
ZG91YmxlPiBQcm9maWxlTmFtZUlkbGVUaW1lTWFwOworICAgIFByb2ZpbGVOYW1lSWRsZVRpbWVN
YXAqIG1fcHJvZmlsZU5hbWVJZGxlVGltZU1hcDsKKyAgICBkb3VibGUgbV9wcmV2aW91c1Rhc2tF
bmRUaW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggNGI2MThiMTcwMGM0
YTI5YWI4ZTNmNWQ3ZWY2ZWExNGJhOWM0ZjUxOS4uZTg2ZDlmM2YxMTNlZTkxMmNiMTBiNzFhZTg1
OTc2MTExY2E0ZjY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oCkBAIC0xNTMsMTEgKzE1MywxMiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB3aWxsRmlyZUFuaW1hdGlvbkZyYW1lKGludCBjYWxsYmFja0lkLCBGcmFtZSopOwogICAgIHZv
aWQgZGlkRmlyZUFuaW1hdGlvbkZyYW1lKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkR0MoZG91
YmxlLCBkb3VibGUsIHNpemVfdCk7Ci0KICAgICB2b2lkIHdpbGxQcm9jZXNzVGFzaygpOwogICAg
IHZvaWQgZGlkUHJvY2Vzc1Rhc2soKTsKIAorICAgIC8vIFNjcmlwdEdDRXZlbnRMaXN0ZW5lciBt
ZXRob2RzLgorICAgIHZpcnR1YWwgdm9pZCBkaWRHQyhkb3VibGUsIGRvdWJsZSwgc2l6ZV90KTsK
KwogICAgIC8vIFBsYXRmb3JtSW5zdHJ1bWVudGF0aW9uQ2xpZW50IG1ldGhvZHMuCiAgICAgdmly
dHVhbCB2b2lkIHdpbGxEZWNvZGVJbWFnZShjb25zdCBTdHJpbmcmIGltYWdlVHlwZSkgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGRpZERlY29kZUltYWdlKCkgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwKaW5kZXggNmE3YTgyZDdhNjAxN2Uz
YjhiNGNjMGJlMmFlNGU0NjYxOGNhYWFmMC4uM2I4YjI0ZTdiMzU0OTZiM2RjZjE2MzllYzlkNmIw
ZTYzMGJkYTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFBy
b2ZpbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlk
bApAQCAtMzMsNSArMzMsNiBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGl0
bGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdWlkOwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBTY3JpcHRQcm9maWxlTm9kZSBoZWFkOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBkb3VibGUgaWRsZVRpbWU7CiB9OwogCg==
</data>
<flag name="review"
          id="195330"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>