<?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>134004</bug_id>
          
          <creation_ts>2014-06-17 16:45:51 -0700</creation_ts>
          <short_desc>[iOS][wk2] Ensure that layers are marked volatile before allowing the process to suspend</short_desc>
          <delta_ts>2014-06-23 14:12:45 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>134189</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1016308</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-17 16:45:51 -0700</bug_when>
    <thetext>WebKit tries to make layers volatile when unparented, but sometimes isn&apos;t given a chance to do so before the process gets suspended, so we end up with lots of non-volatile surfaces that should really be volatile.

&lt;rdar://problem/17186342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016324</commentid>
    <comment_count>1</comment_count>
      <attachid>233271</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-17 17:13:20 -0700</bug_when>
    <thetext>Created attachment 233271
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016340</commentid>
    <comment_count>2</comment_count>
      <attachid>233271</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-17 18:26:11 -0700</bug_when>
    <thetext>Comment on attachment 233271
patch

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

&gt; Source/WebKit2/Shared/mac/RemoteLayerBackingStoreCollection.h:65
&gt; +    bool markBackingStoreVolatileImmediately(RemoteLayerBackingStore&amp;, unsigned volatilityMarkingFlags = 0);

enum for the set of flag mask please, not unsigned.

&gt; Source/WebKit2/Shared/mac/RemoteLayerBackingStoreCollection.mm:160
&gt; +    for (const auto&amp; backingStore : m_unparentedBackingStore)

Blank line above please.

&gt; Source/WebKit2/UIProcess/ios/ProcessThrottler.mm:109
&gt; +    // If the process is currently waiting for the WebProcess to become suspendable but would become runnable,
&gt; +    // let it know that it can cancel the suspension cleanup.

Hard to grok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016342</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-17 18:44:37 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 233271 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=233271&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/mac/RemoteLayerBackingStoreCollection.h:65
&gt; &gt; +    bool markBackingStoreVolatileImmediately(RemoteLayerBackingStore&amp;, unsigned volatilityMarkingFlags = 0);
&gt; 
&gt; enum for the set of flag mask please, not unsigned.

To clarify, .smfr says to use a typedef of unsigned for the flag argument type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016347</commentid>
    <comment_count>4</comment_count>
      <attachid>233277</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-17 19:23:49 -0700</bug_when>
    <thetext>Created attachment 233277
with simon&apos;s changes

This patch will now sit here for a bit while I work on the final remaining piece in another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016349</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-17 19:25:52 -0700</bug_when>
    <thetext>Attachment 233277 did not pass style-queue:


ERROR: Source/WebKit2/Shared/mac/RemoteLayerBackingStoreCollection.h:66:  The parameter name &quot;volatilityMarkingFlags&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016369</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-06-17 22:27:42 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017680</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-23 14:12:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/170316</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233271</attachid>
            <date>2014-06-17 17:13:20 -0700</date>
            <delta_ts>2014-06-17 19:23:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>volatile.diff</filename>
            <type>text/plain</type>
            <size>19035</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzY2ZmYTc2Li40ZDUzNzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcg
QEAKKzIwMTQtMDYtMTcgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdW3drMl0gRW5zdXJlIHRoYXQgbGF5ZXJzIGFyZSBtYXJrZWQgdm9s
YXRpbGUgYmVmb3JlIGFsbG93aW5nIHRoZSBwcm9jZXNzIHRvIHN1c3BlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDAwNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTcxODYzNDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViS2l0IHRyaWVzIHRvIG1ha2UgbGF5ZXJzIHZvbGF0aWxlIHdoZW4g
dW5wYXJlbnRlZCwgYnV0IHNvbWV0aW1lcyBpc24ndCBnaXZlbgorICAgICAgICBhIGNoYW5jZSB0
byBkbyBzbyBiZWZvcmUgdGhlIHByb2Nlc3MgZ2V0cyBzdXNwZW5kZWQsIHNvIHdlIGVuZCB1cCB3
aXRoIGxvdHMgb2YKKyAgICAgICAgbm9uLXZvbGF0aWxlIHN1cmZhY2VzIHRoYXQgc2hvdWxkIHJl
YWxseSBiZSB2b2xhdGlsZS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllckJh
Y2tpbmdTdG9yZUNvbGxlY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlSW1tZWRpYXRlbHkp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246Om1h
cmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSk6CisgICAgICAg
IEFkZCBtYXJrQWxsQmFja2luZ1N0b3JlVm9sYXRpbGVJbW1lZGlhdGVseUlmUG9zc2libGUsIHdo
aWNoIHRyaWVzIHRvIG1hcmsgKmFsbCoKKyAgICAgICAgYnVmZmVycyBvZiAqYWxsKiBiYWNraW5n
IHN0b3JlLCAobGl2ZSBhbmQgdW5yZWFjaGFibGUpLCAoZnJvbnQsIGJhY2ssIGFuZCBzZWNvbmRh
cnkpLAorICAgICAgICB2b2xhdGlsZSByaWdodCBhd2F5LiBJdCByZXR1cm5zIGZhbHNlIGlmIGFu
eSBidWZmZXIgaXNuJ3QgbWFya2VkIHZvbGF0aWxlIChiZWNhdXNlIGl0IHdhcyBpbi11c2UpLgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzVGhyb3R0bGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzVGhyb3R0bGVyLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
VGhyb3R0bGVyOjpwcm9jZXNzUmVhZHlUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzVGhyb3R0bGVyOjpkaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6c2VuZENhbmNlbFByb2Nlc3NXaWxsU3VzcGVuZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgSWYgdGhlIFVJIHByb2Nlc3MgaXMgd2FpdGluZyBmb3IgdGhlIFdlYiBwcm9jZXNzIHRvIGNv
bmZpcm0gdGhhdCBpdCBjYW4gc3VzcGVuZAorICAgICAgICBhbmQgc29tZXRoaW5nIGhhcHBlbnMg
KHRoZSB2aWV3IGlzIHJlcGFyZW50ZWQpIHRoYXQgY2FuY2VscyB0aGUgc3VzcGVuc2lvbiwgaW5m
b3JtCisgICAgICAgIHRoZSBXZWIgcHJvY2VzcyB0aGF0IHRoaXMgaGFwcGVuZWQsIHNvIHRoYXQg
aXQgY2FuIGNhbmNlbCBhbnkgY2xlYW51cCB0aGF0IG1pZ2h0IHN0aWxsIGJlIHRha2luZyBwbGFj
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAgICAgIElmIGEgdmll
dyBnb2VzIGluLXdpbmRvdywgZGlzcGF0Y2ggdGhlIHZpZXcgc3RhdGUgY2hhbmdlIGltbWVkaWF0
ZWx5IHdpdGhvdXQgZGVsYXksCisgICAgICAgIHRvIG1pbmltaXplIHRoZSBsYXRlbmN5IGJldHdl
ZW4gY29taW5nIGluLXdpbmRvdyBhbmQgYmVpbmcgcmVhZHkgdG8gZ28uCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2lu
Z0FyZWE6Om1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRS
b290Q29tcG9zaXRpbmdMYXllcik6CisgICAgICAgIFNjaGVkdWxlIGEgZmx1c2ggd2hlbiB3ZSBj
aGFuZ2UgdGhlIHJvb3QgbGF5ZXI7IG90aGVyd2lzZSwgd2UgY2FuIGVuZCB1cAorICAgICAgICBk
ZXRhY2hpbmcgdGhlIHJvb3QgbGF5ZXIgYnV0IGNoYW5naW5nIG5vdGhpbmcgZWxzZSwgYW5kIG5l
dmVyIGNvbW1pdHRpbmcgdGhhdCBjaGFuZ2UuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6Om1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJs
ZSk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cHJvY2Vzc1dpbGxTdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2Fu
Y2VsUHJvY2Vzc1dpbGxTdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFy
a0FsbExheWVyc1ZvbGF0aWxlSWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnByb2Nlc3NTdXNwZW5zaW9uQ2xlYW51cFRpbWVyRmlyZWQpOgorICAgICAgICBXaGVuIHRo
ZSBVSSBwcm9jZXNzIGlzIGdvaW5nIHRvIHN1c3BlbmQgdGhlIHByb2Nlc3MsIGl0IHNlbmRzIHVz
IFByb2Nlc3NXaWxsU3VzcGVuZCwKKyAgICAgICAgYW5kIGRlZmVycyB0aGUgc3VzcGVuc2lvbiB1
bnRpbCB3ZSBzZW5kIGEgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kIGJhY2suCisgICAgICAgIERlbGF5
IFByb2Nlc3NSZWFkeVRvU3VzcGVuZCB1bnRpbCBhbGwgbGF5ZXJzIGluIG91ciBwcm9jZXNzIGhh
dmUgYmVlbiBtYXJrZWQgdm9sYXRpbGUuCisgICAgICAgIFdlJ2xsIGtlZXAgdHJ5aW5nIGV2ZXJ5
IDIwbXMgdW50aWwgdGhleSdyZSBhbGwgdm9sYXRpbGUuIEZvciBzYWZldHksIHRoZSBVSSBwcm9j
ZXNzIHdpbGwgZXZlbnR1YWxseQorICAgICAgICBzdG9wIHdhaXRpbmcgZm9yIHVzLCBidXQgdGhl
IHZvbGF0aWxpdHkgY2hhbmdlIGlzIHVzdWFsbHkgYXBwbGllZCBzdWNjZXNzZnVsbHkgd2l0aGlu
IHRoZSBmaXJzdAorICAgICAgICBvciBzZWNvbmQgdGltZXIgY2FsbGJhY2suCisKIDIwMTQtMDYt
MTYgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdW3drMl0gU3dpcGUgc25hcHNob3RzIGFyZSByZW1vdmVkIHRvbyBxdWlja2x5IGlmIHRo
ZXJlIGlzIG5vIHNhdmVkIHJlbmRlciB0cmVlIHNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5o
CmluZGV4IDgxZDJiMTAuLjRkOTMyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaApAQCAt
NTQsMTEgKzU0LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZsdXNoTGF5ZXJzKCk7CiAKICAg
ICB2b2lkIHZvbGF0aWxpdHlUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbj4mKTsKKyAgICBib29sIG1hcmtBbGxCYWNraW5nU3RvcmVWb2xh
dGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwogCiAgICAgdm9pZCBzY2hlZHVsZVZvbGF0aWxp
dHlUaW1lcigpOwogCiBwcml2YXRlOgotICAgIGJvb2wgbWFya0JhY2tpbmdTdG9yZVZvbGF0aWxl
SW1tZWRpYXRlbHkoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmKTsKKyAgICBlbnVtIFZvbGF0aWxp
dHlNYXJraW5nRmxhZ3MgeworICAgICAgICBNYXJrQnVmZmVyc0lnbm9yaW5nUmVhY2hhYmlsaXR5
ID0gMSA8PCAwCisgICAgfTsKKyAgICBib29sIG1hcmtCYWNraW5nU3RvcmVWb2xhdGlsZUltbWVk
aWF0ZWx5KFJlbW90ZUxheWVyQmFja2luZ1N0b3JlJiwgdW5zaWduZWQgdm9sYXRpbGl0eU1hcmtp
bmdGbGFncyA9IDApOwogICAgIGJvb2wgbWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlKFJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlJiwgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCBu
b3cpOwogCiAgICAgSGFzaFNldDxSZW1vdGVMYXllckJhY2tpbmdTdG9yZSo+IG1fbGl2ZUJhY2tp
bmdTdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9S
ZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0KaW5kZXggZDFkOTU4My4uZGJmZGNm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZUNvbGxlY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0KQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lk
IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6YmFja2luZ1N0b3JlV2lsbEJlRGlz
cGxheWVkKFJlbW90ZUxheWVyQgogICAgIG1fdW5wYXJlbnRlZEJhY2tpbmdTdG9yZS5yZW1vdmUo
YmFja2luZ1N0b3JlSXRlcik7CiB9CiAKLWJvb2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xs
ZWN0aW9uOjptYXJrQmFja2luZ1N0b3JlVm9sYXRpbGVJbW1lZGlhdGVseShSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZSYgYmFja2luZ1N0b3JlKQorYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNv
bGxlY3Rpb246Om1hcmtCYWNraW5nU3RvcmVWb2xhdGlsZUltbWVkaWF0ZWx5KFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUsIHVuc2lnbmVkIHZvbGF0aWxpdHlNYXJraW5nRmxh
Z3MpCiB7CiAgICAgQVNTRVJUKCFtX2luTGF5ZXJGbHVzaCk7CiAgICAgYm9vbCBzdWNjZXNzZnVs
bHlNYWRlQmFja2luZ1N0b3JlVm9sYXRpbGUgPSB0cnVlOwpAQCAtMTEyLDcgKzExMiw3IEBAIGJv
b2wgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjptYXJrQmFja2luZ1N0b3JlVm9s
YXRpbGVJbW1lZGlhdGVseShSZW1vCiAgICAgaWYgKCFiYWNraW5nU3RvcmUuc2V0QnVmZmVyVm9s
YXRpbGl0eShSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6QnVmZmVyVHlwZTo6QmFjaywgdHJ1ZSkp
CiAgICAgICAgIHN1Y2Nlc3NmdWxseU1hZGVCYWNraW5nU3RvcmVWb2xhdGlsZSA9IGZhbHNlOwog
Ci0gICAgaWYgKCFtX3JlYWNoYWJsZUJhY2tpbmdTdG9yZUluTGF0ZXN0Rmx1c2guY29udGFpbnMo
JmJhY2tpbmdTdG9yZSkpIHsKKyAgICBpZiAoIW1fcmVhY2hhYmxlQmFja2luZ1N0b3JlSW5MYXRl
c3RGbHVzaC5jb250YWlucygmYmFja2luZ1N0b3JlKSB8fCAodm9sYXRpbGl0eU1hcmtpbmdGbGFn
cyAmIE1hcmtCdWZmZXJzSWdub3JpbmdSZWFjaGFiaWxpdHkpKSB7CiAgICAgICAgIGlmICghYmFj
a2luZ1N0b3JlLnNldEJ1ZmZlclZvbGF0aWxpdHkoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OkJ1
ZmZlclR5cGU6OkZyb250LCB0cnVlKSkKICAgICAgICAgICAgIHN1Y2Nlc3NmdWxseU1hZGVCYWNr
aW5nU3RvcmVWb2xhdGlsZSA9IGZhbHNlOwogICAgIH0KQEAgLTE1MSw2ICsxNTEsMTggQEAgdm9p
ZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OmJhY2tpbmdTdG9yZUJlY2FtZVVu
cmVhY2hhYmxlKFJlbW90ZUxheWUKICAgICBtYXJrQmFja2luZ1N0b3JlVm9sYXRpbGVJbW1lZGlh
dGVseSgqYmFja2luZ1N0b3JlKTsKIH0KIAorYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNv
bGxlY3Rpb246Om1hcmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJs
ZSgpCit7CisgICAgYm9vbCBzdWNjZXNzZnVsbHlNYWRlQmFja2luZ1N0b3JlVm9sYXRpbGUgPSB0
cnVlOworCisgICAgZm9yIChjb25zdCBhdXRvJiBiYWNraW5nU3RvcmUgOiBtX2xpdmVCYWNraW5n
U3RvcmUpCisgICAgICAgIHN1Y2Nlc3NmdWxseU1hZGVCYWNraW5nU3RvcmVWb2xhdGlsZSAmPSBt
YXJrQmFja2luZ1N0b3JlVm9sYXRpbGVJbW1lZGlhdGVseSgqYmFja2luZ1N0b3JlLCBNYXJrQnVm
ZmVyc0lnbm9yaW5nUmVhY2hhYmlsaXR5KTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGJhY2tpbmdT
dG9yZSA6IG1fdW5wYXJlbnRlZEJhY2tpbmdTdG9yZSkKKyAgICAgICAgc3VjY2Vzc2Z1bGx5TWFk
ZUJhY2tpbmdTdG9yZVZvbGF0aWxlICY9IG1hcmtCYWNraW5nU3RvcmVWb2xhdGlsZUltbWVkaWF0
ZWx5KCpiYWNraW5nU3RvcmUsIE1hcmtCdWZmZXJzSWdub3JpbmdSZWFjaGFiaWxpdHkpOworCisg
ICAgcmV0dXJuIHN1Y2Nlc3NmdWxseU1hZGVCYWNraW5nU3RvcmVWb2xhdGlsZTsKK30KKwogdm9p
ZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OnZvbGF0aWxpdHlUaW1lckZpcmVk
KFdlYkNvcmU6OlRpbWVyPFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbj4mKQogewog
ICAgIGJvb2wgc3VjY2Vzc2Z1bGx5TWFkZUJhY2tpbmdTdG9yZVZvbGF0aWxlID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTY2ODExMS4uOTU3
MGRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEx
MDYsNiArMTEwNiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dmlld1N0YXRlRGlkQ2hhbmdlKFZp
ZXdTdGF0ZTo6RmxhZ3MgbWF5SGF2ZUNoYW5nZWQsIFdhbnRzUmVwbAogICAgIG1fdmlld1N0YXRl
Q2hhbmdlV2FudHNSZXBseSA9ICh3YW50c1JlcGx5ID09IFdhbnRzUmVwbHlPck5vdDo6RG9lc1dh
bnRSZXBseSB8fCBtX3ZpZXdTdGF0ZUNoYW5nZVdhbnRzUmVwbHkgPT0gV2FudHNSZXBseU9yTm90
OjpEb2VzV2FudFJlcGx5KSA/IFdhbnRzUmVwbHlPck5vdDo6RG9lc1dhbnRSZXBseSA6IFdhbnRz
UmVwbHlPck5vdDo6RG9lc05vdFdhbnRSZXBseTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IGJvb2wgaXNOZXdseUluV2luZG93ID0gIShtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJbldp
bmRvdykgJiYgKG1heUhhdmVDaGFuZ2VkICYgVmlld1N0YXRlOjpJc0luV2luZG93KSAmJiBtX3Bh
Z2VDbGllbnQuaXNWaWV3SW5XaW5kb3coKTsKKyAgICBpZiAoaXNOZXdseUluV2luZG93KSB7Cisg
ICAgICAgIGRpc3BhdGNoVmlld1N0YXRlQ2hhbmdlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CiAgICAgbV92aWV3U3RhdGVDaGFuZ2VEaXNwYXRjaGVyLT5zY2hlZHVsZSgpOwogI2Vsc2UKICAg
ICBkaXNwYXRjaFZpZXdTdGF0ZUNoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCmluZGV4IGQ0NWZmYzcuLjVlZGE5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEzOCw2ICsxMzgsOCBAQCBwdWJsaWM6
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2VuZFByb2Nlc3NXaWxsU3VzcGVuZCgpOwog
ICAgIHZvaWQgcHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCk7CisgICAgdm9pZCBzZW5kQ2FuY2VsUHJv
Y2Vzc1dpbGxTdXNwZW5kKCk7CisgICAgdm9pZCBkaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigp
OwogICAgIAogICAgIFByb2Nlc3NUaHJvdHRsZXImIHRocm90dGxlcigpIHsgcmV0dXJuICptX3Ro
cm90dGxlcjsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjNTRiZTNjLi5lYWUzMGQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KQEAgLTQ5LDUgKzQ5LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJl
Y2VpdmVyIHsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICBQcm9jZXNzUmVhZHlUb1N1
c3BlbmQoKQorICAgIERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKICNlbmRpZgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzVGhyb3R0bGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NUaHJvdHRsZXIuaAppbmRleCA3
MzhmNjlkLi4wNDYxYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1Byb2Nlc3NUaHJvdHRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1By
b2Nlc3NUaHJvdHRsZXIuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9p
ZCBkaWRDb25ubmVjdFRvUHJvY2VzcyhwaWRfdCk7CiAgICAgdm9pZCBwcm9jZXNzUmVhZHlUb1N1
c3BlbmQoKTsKKyAgICB2b2lkIGRpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCk7CiAgICAgCiBw
cml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBGb3JlZ3JvdW5kQWN0aXZpdHlUb2tlbjsKQEAgLTc4
LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpUaW1lcjxQcm9jZXNzVGhyb3R0bGVy
PiBtX3N1c3BlbmRUaW1lcjsKICAgICB1bnNpZ25lZCBtX2ZvcmVncm91bmRDb3VudDsKICAgICB1
bnNpZ25lZCBtX2JhY2tncm91bmRDb3VudDsKLSAgICB1bnNpZ25lZCBtX3N1c3BlbmRNZXNzYWdl
Q291bnQ7CisgICAgaW50IG1fc3VzcGVuZE1lc3NhZ2VDb3VudDsKIH07CiAgICAgCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NUaHJvdHRsZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NUaHJvdHRsZXIubW0KaW5kZXgg
OGZjMzFkNi4uODkxN2JlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9Qcm9jZXNzVGhyb3R0bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UHJvY2Vzc1Rocm90dGxlci5tbQpAQCAtMTAyLDggKzEwMiwxNSBAQCB2b2lkIFByb2Nlc3NUaHJv
dHRsZXI6OnVwZGF0ZUFzc2VydGlvbigpCiAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZFByb2Nlc3NX
aWxsU3VzcGVuZCgpOwogICAgICAgICBtX3N1c3BlbmRUaW1lci5zdGFydE9uZVNob3QocHJvY2Vz
c1N1c3BlbnNpb25UaW1lb3V0KTsKICAgICAgICAgbV9hc3NlcnRpb24tPnNldFN0YXRlKEFzc2Vy
dGlvblN0YXRlOjpCYWNrZ3JvdW5kKTsKLSAgICB9IGVsc2UKLSAgICAgICAgdXBkYXRlQXNzZXJ0
aW9uTm93KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBJZiB0aGUgcHJvY2Vz
cyBpcyBjdXJyZW50bHkgd2FpdGluZyBmb3IgdGhlIFdlYlByb2Nlc3MgdG8gYmVjb21lIHN1c3Bl
bmRhYmxlIGJ1dCB3b3VsZCBiZWNvbWUgcnVubmFibGUsCisgICAgLy8gbGV0IGl0IGtub3cgdGhh
dCBpdCBjYW4gY2FuY2VsIHRoZSBzdXNwZW5zaW9uIGNsZWFudXAuCisgICAgaWYgKG1fc3VzcGVu
ZFRpbWVyLmlzQWN0aXZlKCkgJiYgKG1fZm9yZWdyb3VuZENvdW50IHx8IG1fYmFja2dyb3VuZENv
dW50KSkKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kQ2FuY2VsUHJvY2Vzc1dpbGxTdXNwZW5kKCk7
CisKKyAgICB1cGRhdGVBc3NlcnRpb25Ob3coKTsKIH0KIAogdm9pZCBQcm9jZXNzVGhyb3R0bGVy
OjpkaWRDb25ubmVjdFRvUHJvY2VzcyhwaWRfdCBwaWQpCkBAIC0xMjEsNiArMTI4LDE0IEBAIHZv
aWQgUHJvY2Vzc1Rocm90dGxlcjo6cHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKIHsKICAgICBpZiAo
IS0tbV9zdXNwZW5kTWVzc2FnZUNvdW50KQogICAgICAgICB1cGRhdGVBc3NlcnRpb25Ob3coKTsK
KyAgICBBU1NFUlQobV9zdXNwZW5kTWVzc2FnZUNvdW50ID49IDApOworfQorCit2b2lkIFByb2Nl
c3NUaHJvdHRsZXI6OmRpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKK3sKKyAgICBpZiAoIS0t
bV9zdXNwZW5kTWVzc2FnZUNvdW50KQorICAgICAgICB1cGRhdGVBc3NlcnRpb25Ob3coKTsKKyAg
ICBBU1NFUlQobV9zdXNwZW5kTWVzc2FnZUNvdW50ID49IDApOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCmluZGV4IDZm
ZWVmNTcuLmQzYjM0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViUHJvY2Vzc1Byb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViUHJvY2Vzc1Byb3h5SU9TLm1tCkBAIC03OCwxMSArNzgsMjIgQEAgdm9pZCBXZWJQcm9jZXNz
UHJveHk6OnNlbmRQcm9jZXNzV2lsbFN1c3BlbmQoKQogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgp
KQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpQcm9jZXNzV2lsbFN1c3BlbmQo
KSwgMCk7CiB9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kQ2FuY2VsUHJvY2Vzc1dpbGxT
dXNwZW5kKCkKK3sKKyAgICBpZiAoY2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgc2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzczo6Q2FuY2VsUHJvY2Vzc1dpbGxTdXNwZW5kKCksIDApOworfQogICAg
IAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiB7CiAgICAg
bV90aHJvdHRsZXItPnByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpOwogfQorCit2b2lkIFdlYlByb2Nl
c3NQcm94eTo6ZGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24oKQoreworICAgIG1fdGhyb3R0bGVy
LT5kaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpOworfQogICAgIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLmgKaW5kZXggOGQwZGQxMy4uY2ZhYjQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTExNyw2ICsxMTcsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6
OkZsYWdzKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhv
c3RpbmdNb2RlKSB7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBtYXJrTGF5ZXJzVm9sYXRpbGVJbW1l
ZGlhdGVseUlmUG9zc2libGUoKSB7IHJldHVybiB0cnVlOyB9CisKIHByb3RlY3RlZDoKICAgICBE
cmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGUsIFdlYlBhZ2UqKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IDIwNjk3OTcuLjMzYjk0Y2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTEwOSw2ICsxMDksOCBAQCBwcml2YXRlOgogCiAg
ICAgdWludDY0X3QgdGFrZU5leHRUcmFuc2FjdGlvbklEKCkgeyByZXR1cm4gKyttX2N1cnJlbnRU
cmFuc2FjdGlvbklEOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgbWFya0xheWVyc1ZvbGF0aWxlSW1t
ZWRpYXRlbHlJZlBvc3NpYmxlKCkgb3ZlcnJpZGU7CisKICAgICBjbGFzcyBCYWNraW5nU3RvcmVG
bHVzaGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEJhY2tpbmdTdG9yZUZsdXNoZXI+
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJhY2tpbmdTdG9yZUZs
dXNoZXI+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24qLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpNZXNz
YWdlRW5jb2Rlcj4sIFZlY3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggZGU0NTNmZC4uMTU3OWRjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC0xMTIsMTIgKzExMiwxNCBAQCB2
b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp3aWxsRGVzdHJveURpc3BsYXlSZWZyZXNo
TW9uaXRvcihEaXNwbGF5UmVmcmVzaAogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihHcmFwaGljc0xheWVyKiByb290TGF5ZXIpCiB7Ci0g
ICAgVmVjdG9yPEdyYXBoaWNzTGF5ZXIgKj4gY2hpbGRyZW47CisgICAgVmVjdG9yPEdyYXBoaWNz
TGF5ZXIqPiBjaGlsZHJlbjsKICAgICBpZiAocm9vdExheWVyKSB7CiAgICAgICAgIGNoaWxkcmVu
LmFwcGVuZChyb290TGF5ZXIpOwogICAgICAgICBjaGlsZHJlbi5hcHBlbmQobV93ZWJQYWdlLT5w
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS52aWV3T3ZlcmxheVJvb3RMYXllcigpKTsKICAgICB9CiAg
ICAgbV9yb290TGF5ZXItPnNldENoaWxkcmVuKGNoaWxkcmVuKTsKKworICAgIHNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBjb25zdCBJbnRTaXpl
JiBsYXllclBvc2l0aW9uKQpAQCAtMzUxLDYgKzM1MywxMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6ZSYg
Y29udAogICAgIG1fd2ViUGFnZS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuZGlkQ2hhbmdlRG9j
dW1lbnRTaXplKCk7CiB9CiAKK2Jvb2wgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6Om1hcmtM
YXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fcmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC0+YmFja2luZ1N0b3JlQ29sbGVjdGlvbigpLm1hcmtBbGxCYWNr
aW5nU3RvcmVWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOworfQorCiBQYXNzUmVmUHRy
PFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyPiBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6Y3JlYXRlKElQQzo6Q29u
bmVjdGlvbiogY29ubmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+
IGVuY29kZXIsIFZlY3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4gY29udGV4dHNUb0ZsdXNo
KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6
OkJhY2tpbmdTdG9yZUZsdXNoZXIoY29ubmVjdGlvbiwgc3RkOjptb3ZlKGVuY29kZXIpLCBzdGQ6
Om1vdmUoY29udGV4dHNUb0ZsdXNoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggNjk0MjIyZC4uM2FlYjg2ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVBJRnJh
bWVIYW5kbGUuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRl
ICJEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNv
ZGVycy5oIgpAQCAtMTUxLDYgKzE1Miw3IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAg
IDogbV9ldmVudERpc3BhdGNoZXIoRXZlbnREaXNwYXRjaGVyOjpjcmVhdGUoKSkKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgLCBtX3ZpZXdVcGRhdGVEaXNwYXRjaGVyKFZpZXdVcGRhdGVEaXNwYXRj
aGVyOjpjcmVhdGUoKSkKKyAgICAsIG1fcHJvY2Vzc1N1c3BlbnNpb25DbGVhbnVwVGltZXIodGhp
cywgJldlYlByb2Nlc3M6OnByb2Nlc3NTdXNwZW5zaW9uQ2xlYW51cFRpbWVyRmlyZWQpCiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TKQogICAgICwgbV9pbkRpZENsb3NlKGZhbHNlKQogICAgICwgbV9o
YXNTZXRDYWNoZU1vZGVsKGZhbHNlKQpAQCAtMTE2MSw5ICsxMTYzLDQyIEBAIHZvaWQgV2ViUHJv
Y2Vzczo6cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb25zKCkKIHZvaWQgV2ViUHJvY2Vzczo6
cHJvY2Vzc1dpbGxTdXNwZW5kKCkKIHsKICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIoKS5yZWxl
YXNlTWVtb3J5KHRydWUpOwotICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCksIDApOworCisg
ICAgaWYgKCFtYXJrQWxsTGF5ZXJzVm9sYXRpbGVJZlBvc3NpYmxlKCkpCisgICAgICAgIG1fcHJv
Y2Vzc1N1c3BlbnNpb25DbGVhbnVwVGltZXIuc3RhcnRSZXBlYXRpbmcoc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcygyMCkpOworICAgIGVsc2UKKyAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpQcm9jZXNzUmVhZHlUb1N1c3Bl
bmQoKSwgMCk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzczo6Y2FuY2VsUHJvY2Vzc1dpbGxTdXNwZW5k
KCkKK3sKKyAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZpbmlzaGVkIGNsZWFuaW5nIHVwIGFuZCBz
ZW50IFByb2Nlc3NSZWFkeVRvU3VzcGVuZCwgd2UKKyAgICAvLyBzaG91bGRuJ3Qgc2VuZCBEaWRD
YW5jZWxQcm9jZXNzU3VzcGVuc2lvbjsgdGhlIFVJIHByb2Nlc3Mgc3RyaWN0bHkgZXhwZWN0cyBv
bmUgb3IgdGhlIG90aGVyLgorICAgIGlmICghbV9wcm9jZXNzU3VzcGVuc2lvbkNsZWFudXBUaW1l
ci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nlc3NTdXNwZW5zaW9u
Q2xlYW51cFRpbWVyLnN0b3AoKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCks
IDApOworfQorCitib29sIFdlYlByb2Nlc3M6Om1hcmtBbGxMYXllcnNWb2xhdGlsZUlmUG9zc2li
bGUoKQoreworICAgIGJvb2wgc3VjY2Vzc2Z1bGx5TWFya2VkQWxsTGF5ZXJzVm9sYXRpbGUgPSB0
cnVlOworICAgIGZvciAoYXV0byYgcGFnZSA6IG1fcGFnZU1hcC52YWx1ZXMoKSkgeworICAgICAg
ICBpZiAoYXV0byBkcmF3aW5nQXJlYSA9IHBhZ2UtPmRyYXdpbmdBcmVhKCkpCisgICAgICAgICAg
ICBzdWNjZXNzZnVsbHlNYXJrZWRBbGxMYXllcnNWb2xhdGlsZSAmPSBkcmF3aW5nQXJlYS0+bWFy
a0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxlKCk7CisgICAgfQorCisgICAgcmV0
dXJuIHN1Y2Nlc3NmdWxseU1hcmtlZEFsbExheWVyc1ZvbGF0aWxlOworfQorCit2b2lkIFdlYlBy
b2Nlc3M6OnByb2Nlc3NTdXNwZW5zaW9uQ2xlYW51cFRpbWVyRmlyZWQoVGltZXI8V2ViUHJvY2Vz
cz4qIHRpbWVyKQoreworICAgIGlmIChtYXJrQWxsTGF5ZXJzVm9sYXRpbGVJZlBvc3NpYmxlKCkp
IHsKKyAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKSwgMCk7CisgICAgICAgIHRpbWVy
LT5zdG9wKCk7CisgICAgfQogfQotICAgIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKIAogdm9p
ZCBXZWJQcm9jZXNzOjpwYWdlRGlkRW50ZXJXaW5kb3codWludDY0X3QgcGFnZUlEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAwNmI3YmY5Li4zMDk1NWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMjksNiArMjksNyBAQAogI2lu
Y2x1ZGUgIkNhY2hlTW9kZWwuaCIKICNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKICNpbmNsdWRl
ICJEb3dubG9hZE1hbmFnZXIuaCIKKyNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUg
IlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlc291cmNlQ2Fj
aGVzVG9DbGVhci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKQEAgLTE3Nyw2ICsx
NzgsOSBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgcmVzZXRBbGxHZW9s
b2NhdGlvblBlcm1pc3Npb25zKCk7CiAgICAgdm9pZCBwcm9jZXNzV2lsbFN1c3BlbmQoKTsKKyAg
ICB2b2lkIGNhbmNlbFByb2Nlc3NXaWxsU3VzcGVuZCgpOworICAgIGJvb2wgbWFya0FsbExheWVy
c1ZvbGF0aWxlSWZQb3NzaWJsZSgpOworICAgIHZvaWQgcHJvY2Vzc1N1c3BlbnNpb25DbGVhbnVw
VGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxXZWJQcm9jZXNzPiopOwogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gYXBpT2JqZWN0QnlDb252ZXJ0aW5n
RnJvbUhhbmRsZXMoQVBJOjpPYmplY3QqKTsKQEAgLTI4Niw2ICsyOTAsNyBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxFdmVudERpc3BhdGNoZXI+IG1fZXZlbnREaXNwYXRjaGVyOwogI2lmIFBMQVRG
T1JNKElPUykKICAgICBSZWZQdHI8Vmlld1VwZGF0ZURpc3BhdGNoZXI+IG1fdmlld1VwZGF0ZURp
c3BhdGNoZXI7CisgICAgV2ViQ29yZTo6VGltZXI8V2ViUHJvY2Vzcz4gbV9wcm9jZXNzU3VzcGVu
c2lvbkNsZWFudXBUaW1lcjsKICNlbmRpZgogCiAgICAgYm9vbCBtX2luRGlkQ2xvc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
NjNmZWUwZC4uOGY3N2U1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtOTUsNSArOTUsNiBAQCBtZXNzYWdlcyAtPiBXZWJQcm9j
ZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBQcm9jZXNzV2ls
bFN1c3BlbmQoKQorICAgIENhbmNlbFByb2Nlc3NXaWxsU3VzcGVuZCgpCiAjZW5kaWYKIH0K
</data>
<flag name="review"
          id="257776"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233277</attachid>
            <date>2014-06-17 19:23:49 -0700</date>
            <delta_ts>2014-06-17 19:23:49 -0700</delta_ts>
            <desc>with simon&apos;s changes</desc>
            <filename>volatile.diff</filename>
            <type>text/plain</type>
            <size>19096</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzY2ZmYTc2Li40ZDUzNzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcg
QEAKKzIwMTQtMDYtMTcgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdW3drMl0gRW5zdXJlIHRoYXQgbGF5ZXJzIGFyZSBtYXJrZWQgdm9s
YXRpbGUgYmVmb3JlIGFsbG93aW5nIHRoZSBwcm9jZXNzIHRvIHN1c3BlbmQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDAwNAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTcxODYzNDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViS2l0IHRyaWVzIHRvIG1ha2UgbGF5ZXJzIHZvbGF0aWxlIHdoZW4g
dW5wYXJlbnRlZCwgYnV0IHNvbWV0aW1lcyBpc24ndCBnaXZlbgorICAgICAgICBhIGNoYW5jZSB0
byBkbyBzbyBiZWZvcmUgdGhlIHByb2Nlc3MgZ2V0cyBzdXNwZW5kZWQsIHNvIHdlIGVuZCB1cCB3
aXRoIGxvdHMgb2YKKyAgICAgICAgbm9uLXZvbGF0aWxlIHN1cmZhY2VzIHRoYXQgc2hvdWxkIHJl
YWxseSBiZSB2b2xhdGlsZS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmVDb2xsZWN0aW9uLmg6CisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllckJh
Y2tpbmdTdG9yZUNvbGxlY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlSW1tZWRpYXRlbHkp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246Om1h
cmtBbGxCYWNraW5nU3RvcmVWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSk6CisgICAgICAg
IEFkZCBtYXJrQWxsQmFja2luZ1N0b3JlVm9sYXRpbGVJbW1lZGlhdGVseUlmUG9zc2libGUsIHdo
aWNoIHRyaWVzIHRvIG1hcmsgKmFsbCoKKyAgICAgICAgYnVmZmVycyBvZiAqYWxsKiBiYWNraW5n
IHN0b3JlLCAobGl2ZSBhbmQgdW5yZWFjaGFibGUpLCAoZnJvbnQsIGJhY2ssIGFuZCBzZWNvbmRh
cnkpLAorICAgICAgICB2b2xhdGlsZSByaWdodCBhd2F5LiBJdCByZXR1cm5zIGZhbHNlIGlmIGFu
eSBidWZmZXIgaXNuJ3QgbWFya2VkIHZvbGF0aWxlIChiZWNhdXNlIGl0IHdhcyBpbi11c2UpLgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzVGhyb3R0bGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzVGhyb3R0bGVyLm1tOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
VGhyb3R0bGVyOjpwcm9jZXNzUmVhZHlUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzVGhyb3R0bGVyOjpkaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eTo6c2VuZENhbmNlbFByb2Nlc3NXaWxsU3VzcGVuZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgSWYgdGhlIFVJIHByb2Nlc3MgaXMgd2FpdGluZyBmb3IgdGhlIFdlYiBwcm9jZXNzIHRvIGNv
bmZpcm0gdGhhdCBpdCBjYW4gc3VzcGVuZAorICAgICAgICBhbmQgc29tZXRoaW5nIGhhcHBlbnMg
KHRoZSB2aWV3IGlzIHJlcGFyZW50ZWQpIHRoYXQgY2FuY2VscyB0aGUgc3VzcGVuc2lvbiwgaW5m
b3JtCisgICAgICAgIHRoZSBXZWIgcHJvY2VzcyB0aGF0IHRoaXMgaGFwcGVuZWQsIHNvIHRoYXQg
aXQgY2FuIGNhbmNlbCBhbnkgY2xlYW51cCB0aGF0IG1pZ2h0IHN0aWxsIGJlIHRha2luZyBwbGFj
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAgICAgIElmIGEgdmll
dyBnb2VzIGluLXdpbmRvdywgZGlzcGF0Y2ggdGhlIHZpZXcgc3RhdGUgY2hhbmdlIGltbWVkaWF0
ZWx5IHdpdGhvdXQgZGVsYXksCisgICAgICAgIHRvIG1pbmltaXplIHRoZSBsYXRlbmN5IGJldHdl
ZW4gY29taW5nIGluLXdpbmRvdyBhbmQgYmVpbmcgcmVhZHkgdG8gZ28uCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2lu
Z0FyZWE6Om1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRS
b290Q29tcG9zaXRpbmdMYXllcik6CisgICAgICAgIFNjaGVkdWxlIGEgZmx1c2ggd2hlbiB3ZSBj
aGFuZ2UgdGhlIHJvb3QgbGF5ZXI7IG90aGVyd2lzZSwgd2UgY2FuIGVuZCB1cAorICAgICAgICBk
ZXRhY2hpbmcgdGhlIHJvb3QgbGF5ZXIgYnV0IGNoYW5naW5nIG5vdGhpbmcgZWxzZSwgYW5kIG5l
dmVyIGNvbW1pdHRpbmcgdGhhdCBjaGFuZ2UuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6Om1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJs
ZSk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6cHJvY2Vzc1dpbGxTdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2Fu
Y2VsUHJvY2Vzc1dpbGxTdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bWFy
a0FsbExheWVyc1ZvbGF0aWxlSWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OnByb2Nlc3NTdXNwZW5zaW9uQ2xlYW51cFRpbWVyRmlyZWQpOgorICAgICAgICBXaGVuIHRo
ZSBVSSBwcm9jZXNzIGlzIGdvaW5nIHRvIHN1c3BlbmQgdGhlIHByb2Nlc3MsIGl0IHNlbmRzIHVz
IFByb2Nlc3NXaWxsU3VzcGVuZCwKKyAgICAgICAgYW5kIGRlZmVycyB0aGUgc3VzcGVuc2lvbiB1
bnRpbCB3ZSBzZW5kIGEgUHJvY2Vzc1JlYWR5VG9TdXNwZW5kIGJhY2suCisgICAgICAgIERlbGF5
IFByb2Nlc3NSZWFkeVRvU3VzcGVuZCB1bnRpbCBhbGwgbGF5ZXJzIGluIG91ciBwcm9jZXNzIGhh
dmUgYmVlbiBtYXJrZWQgdm9sYXRpbGUuCisgICAgICAgIFdlJ2xsIGtlZXAgdHJ5aW5nIGV2ZXJ5
IDIwbXMgdW50aWwgdGhleSdyZSBhbGwgdm9sYXRpbGUuIEZvciBzYWZldHksIHRoZSBVSSBwcm9j
ZXNzIHdpbGwgZXZlbnR1YWxseQorICAgICAgICBzdG9wIHdhaXRpbmcgZm9yIHVzLCBidXQgdGhl
IHZvbGF0aWxpdHkgY2hhbmdlIGlzIHVzdWFsbHkgYXBwbGllZCBzdWNjZXNzZnVsbHkgd2l0aGlu
IHRoZSBmaXJzdAorICAgICAgICBvciBzZWNvbmQgdGltZXIgY2FsbGJhY2suCisKIDIwMTQtMDYt
MTYgIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdW3drMl0gU3dpcGUgc25hcHNob3RzIGFyZSByZW1vdmVkIHRvbyBxdWlja2x5IGlmIHRo
ZXJlIGlzIG5vIHNhdmVkIHJlbmRlciB0cmVlIHNpemUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5o
CmluZGV4IDgxZDJiMTAuLmZjMzY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaApAQCAt
NTQsMTEgKzU0LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZsdXNoTGF5ZXJzKCk7CiAKICAg
ICB2b2lkIHZvbGF0aWxpdHlUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbj4mKTsKKyAgICBib29sIG1hcmtBbGxCYWNraW5nU3RvcmVWb2xh
dGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOwogCiAgICAgdm9pZCBzY2hlZHVsZVZvbGF0aWxp
dHlUaW1lcigpOwogCiBwcml2YXRlOgotICAgIGJvb2wgbWFya0JhY2tpbmdTdG9yZVZvbGF0aWxl
SW1tZWRpYXRlbHkoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUmKTsKKyAgICBlbnVtIFZvbGF0aWxp
dHlNYXJraW5nRmxhZyB7CisgICAgICAgIE1hcmtCdWZmZXJzSWdub3JpbmdSZWFjaGFiaWxpdHkg
PSAxIDw8IDAKKyAgICB9OworICAgIHR5cGVkZWYgdW5zaWduZWQgVm9sYXRpbGl0eU1hcmtpbmdG
bGFnczsKKyAgICBib29sIG1hcmtCYWNraW5nU3RvcmVWb2xhdGlsZUltbWVkaWF0ZWx5KFJlbW90
ZUxheWVyQmFja2luZ1N0b3JlJiwgVm9sYXRpbGl0eU1hcmtpbmdGbGFncyB2b2xhdGlsaXR5TWFy
a2luZ0ZsYWdzID0gMCk7CiAgICAgYm9vbCBtYXJrQmFja2luZ1N0b3JlVm9sYXRpbGUoUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUmLCBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50
IG5vdyk7CiAKICAgICBIYXNoU2V0PFJlbW90ZUxheWVyQmFja2luZ1N0b3JlKj4gbV9saXZlQmFj
a2luZ1N0b3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVM
YXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1JlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbQppbmRleCBkMWQ5NTgzLi41Yjll
NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlQ29sbGVjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5tbQpAQCAtMTAxLDcgKzEwMSw3IEBAIHZv
aWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpiYWNraW5nU3RvcmVXaWxsQmVE
aXNwbGF5ZWQoUmVtb3RlTGF5ZXJCCiAgICAgbV91bnBhcmVudGVkQmFja2luZ1N0b3JlLnJlbW92
ZShiYWNraW5nU3RvcmVJdGVyKTsKIH0KIAotYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNv
bGxlY3Rpb246Om1hcmtCYWNraW5nU3RvcmVWb2xhdGlsZUltbWVkaWF0ZWx5KFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUpCitib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Q29sbGVjdGlvbjo6bWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlSW1tZWRpYXRlbHkoUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmUmIGJhY2tpbmdTdG9yZSwgVm9sYXRpbGl0eU1hcmtpbmdGbGFncyB2b2xh
dGlsaXR5TWFya2luZ0ZsYWdzKQogewogICAgIEFTU0VSVCghbV9pbkxheWVyRmx1c2gpOwogICAg
IGJvb2wgc3VjY2Vzc2Z1bGx5TWFkZUJhY2tpbmdTdG9yZVZvbGF0aWxlID0gdHJ1ZTsKQEAgLTEx
Miw3ICsxMTIsNyBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbjo6bWFy
a0JhY2tpbmdTdG9yZVZvbGF0aWxlSW1tZWRpYXRlbHkoUmVtbwogICAgIGlmICghYmFja2luZ1N0
b3JlLnNldEJ1ZmZlclZvbGF0aWxpdHkoUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OkJ1ZmZlclR5
cGU6OkJhY2ssIHRydWUpKQogICAgICAgICBzdWNjZXNzZnVsbHlNYWRlQmFja2luZ1N0b3JlVm9s
YXRpbGUgPSBmYWxzZTsKIAotICAgIGlmICghbV9yZWFjaGFibGVCYWNraW5nU3RvcmVJbkxhdGVz
dEZsdXNoLmNvbnRhaW5zKCZiYWNraW5nU3RvcmUpKSB7CisgICAgaWYgKCFtX3JlYWNoYWJsZUJh
Y2tpbmdTdG9yZUluTGF0ZXN0Rmx1c2guY29udGFpbnMoJmJhY2tpbmdTdG9yZSkgfHwgKHZvbGF0
aWxpdHlNYXJraW5nRmxhZ3MgJiBNYXJrQnVmZmVyc0lnbm9yaW5nUmVhY2hhYmlsaXR5KSkgewog
ICAgICAgICBpZiAoIWJhY2tpbmdTdG9yZS5zZXRCdWZmZXJWb2xhdGlsaXR5KFJlbW90ZUxheWVy
QmFja2luZ1N0b3JlOjpCdWZmZXJUeXBlOjpGcm9udCwgdHJ1ZSkpCiAgICAgICAgICAgICBzdWNj
ZXNzZnVsbHlNYWRlQmFja2luZ1N0b3JlVm9sYXRpbGUgPSBmYWxzZTsKICAgICB9CkBAIC0xNTEs
NiArMTUxLDE5IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjpiYWNr
aW5nU3RvcmVCZWNhbWVVbnJlYWNoYWJsZShSZW1vdGVMYXllCiAgICAgbWFya0JhY2tpbmdTdG9y
ZVZvbGF0aWxlSW1tZWRpYXRlbHkoKmJhY2tpbmdTdG9yZSk7CiB9CiAKK2Jvb2wgUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uOjptYXJrQWxsQmFja2luZ1N0b3JlVm9sYXRpbGVJbW1l
ZGlhdGVseUlmUG9zc2libGUoKQoreworICAgIGJvb2wgc3VjY2Vzc2Z1bGx5TWFkZUJhY2tpbmdT
dG9yZVZvbGF0aWxlID0gdHJ1ZTsKKworICAgIGZvciAoY29uc3QgYXV0byYgYmFja2luZ1N0b3Jl
IDogbV9saXZlQmFja2luZ1N0b3JlKQorICAgICAgICBzdWNjZXNzZnVsbHlNYWRlQmFja2luZ1N0
b3JlVm9sYXRpbGUgJj0gbWFya0JhY2tpbmdTdG9yZVZvbGF0aWxlSW1tZWRpYXRlbHkoKmJhY2tp
bmdTdG9yZSwgTWFya0J1ZmZlcnNJZ25vcmluZ1JlYWNoYWJpbGl0eSk7CisKKyAgICBmb3IgKGNv
bnN0IGF1dG8mIGJhY2tpbmdTdG9yZSA6IG1fdW5wYXJlbnRlZEJhY2tpbmdTdG9yZSkKKyAgICAg
ICAgc3VjY2Vzc2Z1bGx5TWFkZUJhY2tpbmdTdG9yZVZvbGF0aWxlICY9IG1hcmtCYWNraW5nU3Rv
cmVWb2xhdGlsZUltbWVkaWF0ZWx5KCpiYWNraW5nU3RvcmUsIE1hcmtCdWZmZXJzSWdub3JpbmdS
ZWFjaGFiaWxpdHkpOworCisgICAgcmV0dXJuIHN1Y2Nlc3NmdWxseU1hZGVCYWNraW5nU3RvcmVW
b2xhdGlsZTsKK30KKwogdm9pZCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb246OnZv
bGF0aWxpdHlUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Q29sbGVjdGlvbj4mKQogewogICAgIGJvb2wgc3VjY2Vzc2Z1bGx5TWFkZUJhY2tpbmdTdG9yZVZv
bGF0aWxlID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggYTY2ODExMS4uOTU3MGRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTExMDYsNiArMTEwNiwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dmll
d1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgbWF5SGF2ZUNoYW5nZWQsIFdhbnRzUmVw
bAogICAgIG1fdmlld1N0YXRlQ2hhbmdlV2FudHNSZXBseSA9ICh3YW50c1JlcGx5ID09IFdhbnRz
UmVwbHlPck5vdDo6RG9lc1dhbnRSZXBseSB8fCBtX3ZpZXdTdGF0ZUNoYW5nZVdhbnRzUmVwbHkg
PT0gV2FudHNSZXBseU9yTm90OjpEb2VzV2FudFJlcGx5KSA/IFdhbnRzUmVwbHlPck5vdDo6RG9l
c1dhbnRSZXBseSA6IFdhbnRzUmVwbHlPck5vdDo6RG9lc05vdFdhbnRSZXBseTsKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIGJvb2wgaXNOZXdseUluV2luZG93ID0gIShtX3ZpZXdTdGF0ZSAm
IFZpZXdTdGF0ZTo6SXNJbldpbmRvdykgJiYgKG1heUhhdmVDaGFuZ2VkICYgVmlld1N0YXRlOjpJ
c0luV2luZG93KSAmJiBtX3BhZ2VDbGllbnQuaXNWaWV3SW5XaW5kb3coKTsKKyAgICBpZiAoaXNO
ZXdseUluV2luZG93KSB7CisgICAgICAgIGRpc3BhdGNoVmlld1N0YXRlQ2hhbmdlKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CiAgICAgbV92aWV3U3RhdGVDaGFuZ2VEaXNwYXRjaGVyLT5zY2hl
ZHVsZSgpOwogI2Vsc2UKICAgICBkaXNwYXRjaFZpZXdTdGF0ZUNoYW5nZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGQ0NWZmYzcuLjVlZGE5Y2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEzOCw2
ICsxMzgsOCBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2VuZFByb2Nl
c3NXaWxsU3VzcGVuZCgpOwogICAgIHZvaWQgcHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCk7CisgICAg
dm9pZCBzZW5kQ2FuY2VsUHJvY2Vzc1dpbGxTdXNwZW5kKCk7CisgICAgdm9pZCBkaWRDYW5jZWxQ
cm9jZXNzU3VzcGVuc2lvbigpOwogICAgIAogICAgIFByb2Nlc3NUaHJvdHRsZXImIHRocm90dGxl
cigpIHsgcmV0dXJuICptX3Rocm90dGxlcjsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjNTRiZTNj
Li5lYWUzMGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTQ5LDUgKzQ5LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJv
Y2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBQcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQorICAgIERpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9u
KCkKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzVGhyb3R0bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NU
aHJvdHRsZXIuaAppbmRleCA3MzhmNjlkLi4wNDYxYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NUaHJvdHRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NUaHJvdHRsZXIuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgdm9pZCBkaWRDb25ubmVjdFRvUHJvY2VzcyhwaWRfdCk7CiAgICAgdm9p
ZCBwcm9jZXNzUmVhZHlUb1N1c3BlbmQoKTsKKyAgICB2b2lkIGRpZENhbmNlbFByb2Nlc3NTdXNw
ZW5zaW9uKCk7CiAgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBGb3JlZ3JvdW5kQWN0
aXZpdHlUb2tlbjsKQEAgLTc4LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpUaW1l
cjxQcm9jZXNzVGhyb3R0bGVyPiBtX3N1c3BlbmRUaW1lcjsKICAgICB1bnNpZ25lZCBtX2ZvcmVn
cm91bmRDb3VudDsKICAgICB1bnNpZ25lZCBtX2JhY2tncm91bmRDb3VudDsKLSAgICB1bnNpZ25l
ZCBtX3N1c3BlbmRNZXNzYWdlQ291bnQ7CisgICAgaW50IG1fc3VzcGVuZE1lc3NhZ2VDb3VudDsK
IH07CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1By
b2Nlc3NUaHJvdHRsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NU
aHJvdHRsZXIubW0KaW5kZXggOGZjMzFkNi4uOGUyZTliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzVGhyb3R0bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1Rocm90dGxlci5tbQpAQCAtMTAyLDggKzEwMiwxNCBA
QCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbigpCiAgICAgICAgIG1fcHJv
Y2Vzcy0+c2VuZFByb2Nlc3NXaWxsU3VzcGVuZCgpOwogICAgICAgICBtX3N1c3BlbmRUaW1lci5z
dGFydE9uZVNob3QocHJvY2Vzc1N1c3BlbnNpb25UaW1lb3V0KTsKICAgICAgICAgbV9hc3NlcnRp
b24tPnNldFN0YXRlKEFzc2VydGlvblN0YXRlOjpCYWNrZ3JvdW5kKTsKLSAgICB9IGVsc2UKLSAg
ICAgICAgdXBkYXRlQXNzZXJ0aW9uTm93KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAvLyBJZiB3ZSdyZSBjdXJyZW50bHkgd2FpdGluZyBmb3IgdGhlIFdlYiBwcm9jZXNzIHRvIGRv
IHN1c3BlbnNpb24gY2xlYW51cCwgYnV0IG5vIGxvbmdlciBuZWVkIHRvIGJlIHN1c3BlbmRlZCwg
dGVsbCB0aGUgV2ViIHByb2Nlc3MgdG8gY2FuY2VsIHRoZSBjbGVhbnVwLgorICAgIGlmIChtX3N1
c3BlbmRUaW1lci5pc0FjdGl2ZSgpICYmIChtX2ZvcmVncm91bmRDb3VudCB8fCBtX2JhY2tncm91
bmRDb3VudCkpCisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZENhbmNlbFByb2Nlc3NXaWxsU3VzcGVu
ZCgpOworCisgICAgdXBkYXRlQXNzZXJ0aW9uTm93KCk7CiB9CiAKIHZvaWQgUHJvY2Vzc1Rocm90
dGxlcjo6ZGlkQ29ubm5lY3RUb1Byb2Nlc3MocGlkX3QgcGlkKQpAQCAtMTIxLDYgKzEyNywxNCBA
QCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiB7CiAgICAg
aWYgKCEtLW1fc3VzcGVuZE1lc3NhZ2VDb3VudCkKICAgICAgICAgdXBkYXRlQXNzZXJ0aW9uTm93
KCk7CisgICAgQVNTRVJUKG1fc3VzcGVuZE1lc3NhZ2VDb3VudCA+PSAwKTsKK30KKwordm9pZCBQ
cm9jZXNzVGhyb3R0bGVyOjpkaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpCit7CisgICAgaWYg
KCEtLW1fc3VzcGVuZE1lc3NhZ2VDb3VudCkKKyAgICAgICAgdXBkYXRlQXNzZXJ0aW9uTm93KCk7
CisgICAgQVNTRVJUKG1fc3VzcGVuZE1lc3NhZ2VDb3VudCA+PSAwKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQppbmRl
eCA2ZmVlZjU3Li5kM2IzNDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQpAQCAtNzgsMTEgKzc4LDIyIEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc1dpbGxTdXNwZW5kKCkKICAgICBpZiAoY2FuU2VuZE1lc3Nh
Z2UoKSkKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6UHJvY2Vzc1dpbGxTdXNw
ZW5kKCksIDApOwogfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZENhbmNlbFByb2Nlc3NX
aWxsU3VzcGVuZCgpCit7CisgICAgaWYgKGNhblNlbmRNZXNzYWdlKCkpCisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OldlYlByb2Nlc3M6OkNhbmNlbFByb2Nlc3NXaWxsU3VzcGVuZCgpLCAwKTsKK30K
ICAgICAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogewog
ICAgIG1fdGhyb3R0bGVyLT5wcm9jZXNzUmVhZHlUb1N1c3BlbmQoKTsKIH0KKwordm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmRpZENhbmNlbFByb2Nlc3NTdXNwZW5zaW9uKCkKK3sKKyAgICBtX3Rocm90
dGxlci0+ZGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24oKTsKK30KICAgICAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5oCmluZGV4IDhkMGRkMTMuLmNmYWI0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC0xMTcsNiArMTE3LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCB2aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0
YXRlOjpGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5
ZXJIb3N0aW5nTW9kZSkgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgbWFya0xheWVyc1ZvbGF0aWxl
SW1tZWRpYXRlbHlJZlBvc3NpYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlLCBXZWJQYWdlKik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCAyMDY5Nzk3Li4zM2I5NGNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC0xMDksNiArMTA5LDggQEAgcHJpdmF0ZToK
IAogICAgIHVpbnQ2NF90IHRha2VOZXh0VHJhbnNhY3Rpb25JRCgpIHsgcmV0dXJuICsrbV9jdXJy
ZW50VHJhbnNhY3Rpb25JRDsgfQogCisgICAgdmlydHVhbCBib29sIG1hcmtMYXllcnNWb2xhdGls
ZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpIG92ZXJyaWRlOworCiAgICAgY2xhc3MgQmFja2luZ1N0
b3JlRmx1c2hlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxCYWNraW5nU3RvcmVGbHVz
aGVyPiB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxCYWNraW5nU3Rv
cmVGbHVzaGVyPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uKiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
TWVzc2FnZUVuY29kZXI+LCBWZWN0b3I8UmV0YWluUHRyPENHQ29udGV4dFJlZj4+KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IGRlNDUzZmQuLjE1NzlkY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtMTEyLDEyICsxMTIsMTQg
QEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6d2lsbERlc3Ryb3lEaXNwbGF5UmVm
cmVzaE1vbml0b3IoRGlzcGxheVJlZnJlc2gKIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhpY3NMYXllciogcm9vdExheWVyKQog
ewotICAgIFZlY3RvcjxHcmFwaGljc0xheWVyICo+IGNoaWxkcmVuOworICAgIFZlY3RvcjxHcmFw
aGljc0xheWVyKj4gY2hpbGRyZW47CiAgICAgaWYgKHJvb3RMYXllcikgewogICAgICAgICBjaGls
ZHJlbi5hcHBlbmQocm9vdExheWVyKTsKICAgICAgICAgY2hpbGRyZW4uYXBwZW5kKG1fd2ViUGFn
ZS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudmlld092ZXJsYXlSb290TGF5ZXIoKSk7CiAgICAg
fQogICAgIG1fcm9vdExheWVyLT5zZXRDaGlsZHJlbihjaGlsZHJlbik7CisKKyAgICBzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgSW50
U2l6ZSYgbGF5ZXJQb3NpdGlvbikKQEAgLTM1MSw2ICszNTMsMTEgQEAgdm9pZCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6bWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IEludFNp
emUmIGNvbnQKICAgICBtX3dlYlBhZ2UtPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmRpZENoYW5n
ZURvY3VtZW50U2l6ZSgpOwogfQogCitib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpt
YXJrTGF5ZXJzVm9sYXRpbGVJbW1lZGlhdGVseUlmUG9zc2libGUoKQoreworICAgIHJldHVybiBt
X3JlbW90ZUxheWVyVHJlZUNvbnRleHQtPmJhY2tpbmdTdG9yZUNvbGxlY3Rpb24oKS5tYXJrQWxs
QmFja2luZ1N0b3JlVm9sYXRpbGVJbW1lZGlhdGVseUlmUG9zc2libGUoKTsKK30KKwogUGFzc1Jl
ZlB0cjxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcj4gUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXI6OmNyZWF0ZShJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNv
ZGVyPiBlbmNvZGVyLCBWZWN0b3I8UmV0YWluUHRyPENHQ29udGV4dFJlZj4+IGNvbnRleHRzVG9G
bHVzaCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyKGNvbm5lY3Rpb24sIHN0ZDo6bW92ZShlbmNvZGVyKSwg
c3RkOjptb3ZlKGNvbnRleHRzVG9GbHVzaCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IDY5NDIyMmQuLjNhZWI4NmViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFQ
SUZyYW1lSGFuZGxlLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCisjaW5j
bHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJFdmVudERpc3BhdGNoZXIuaCIKICNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3Nh
Z2VDb2RlcnMuaCIKQEAgLTE1MSw2ICsxNTIsNyBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkK
ICAgICA6IG1fZXZlbnREaXNwYXRjaGVyKEV2ZW50RGlzcGF0Y2hlcjo6Y3JlYXRlKCkpCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgICwgbV92aWV3VXBkYXRlRGlzcGF0Y2hlcihWaWV3VXBkYXRlRGlz
cGF0Y2hlcjo6Y3JlYXRlKCkpCisgICAgLCBtX3Byb2Nlc3NTdXNwZW5zaW9uQ2xlYW51cFRpbWVy
KHRoaXMsICZXZWJQcm9jZXNzOjpwcm9jZXNzU3VzcGVuc2lvbkNsZWFudXBUaW1lckZpcmVkKQog
I2VuZGlmIC8vIFBMQVRGT1JNKElPUykKICAgICAsIG1faW5EaWRDbG9zZShmYWxzZSkKICAgICAs
IG1faGFzU2V0Q2FjaGVNb2RlbChmYWxzZSkKQEAgLTExNjEsOSArMTE2Myw0MiBAQCB2b2lkIFdl
YlByb2Nlc3M6OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9ucygpCiB2b2lkIFdlYlByb2Nl
c3M6OnByb2Nlc3NXaWxsU3VzcGVuZCgpCiB7CiAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyKCku
cmVsZWFzZU1lbW9yeSh0cnVlKTsKLSAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpLCAwKTsK
KworICAgIGlmICghbWFya0FsbExheWVyc1ZvbGF0aWxlSWZQb3NzaWJsZSgpKQorICAgICAgICBt
X3Byb2Nlc3NTdXNwZW5zaW9uQ2xlYW51cFRpbWVyLnN0YXJ0UmVwZWF0aW5nKHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMoMjApKTsKKyAgICBlbHNlCisgICAgICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9T
dXNwZW5kKCksIDApOworfQorCit2b2lkIFdlYlByb2Nlc3M6OmNhbmNlbFByb2Nlc3NXaWxsU3Vz
cGVuZCgpCit7CisgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBmaW5pc2hlZCBjbGVhbmluZyB1cCBh
bmQgc2VudCBQcm9jZXNzUmVhZHlUb1N1c3BlbmQsIHdlCisgICAgLy8gc2hvdWxkbid0IHNlbmQg
RGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb247IHRoZSBVSSBwcm9jZXNzIHN0cmljdGx5IGV4cGVj
dHMgb25lIG9yIHRoZSBvdGhlci4KKyAgICBpZiAoIW1fcHJvY2Vzc1N1c3BlbnNpb25DbGVhbnVw
VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9jZXNzU3VzcGVu
c2lvbkNsZWFudXBUaW1lci5zdG9wKCk7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lv
bigpLCAwKTsKK30KKworYm9vbCBXZWJQcm9jZXNzOjptYXJrQWxsTGF5ZXJzVm9sYXRpbGVJZlBv
c3NpYmxlKCkKK3sKKyAgICBib29sIHN1Y2Nlc3NmdWxseU1hcmtlZEFsbExheWVyc1ZvbGF0aWxl
ID0gdHJ1ZTsKKyAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpIHsKKyAg
ICAgICAgaWYgKGF1dG8gZHJhd2luZ0FyZWEgPSBwYWdlLT5kcmF3aW5nQXJlYSgpKQorICAgICAg
ICAgICAgc3VjY2Vzc2Z1bGx5TWFya2VkQWxsTGF5ZXJzVm9sYXRpbGUgJj0gZHJhd2luZ0FyZWEt
Pm1hcmtMYXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpOworICAgIH0KKworICAg
IHJldHVybiBzdWNjZXNzZnVsbHlNYXJrZWRBbGxMYXllcnNWb2xhdGlsZTsKK30KKwordm9pZCBX
ZWJQcm9jZXNzOjpwcm9jZXNzU3VzcGVuc2lvbkNsZWFudXBUaW1lckZpcmVkKFRpbWVyPFdlYlBy
b2Nlc3M+KiB0aW1lcikKK3sKKyAgICBpZiAobWFya0FsbExheWVyc1ZvbGF0aWxlSWZQb3NzaWJs
ZSgpKSB7CisgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6UHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCksIDApOworICAgICAgICB0
aW1lci0+c3RvcCgpOworICAgIH0KIH0KLSAgICAKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAK
IHZvaWQgV2ViUHJvY2Vzczo6cGFnZURpZEVudGVyV2luZG93KHVpbnQ2NF90IHBhZ2VJRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggMDZiN2JmOS4uMzA5NTVkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJDYWNoZU1vZGVsLmgiCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgiCiAjaW5j
bHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNs
dWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUNhY2hlc1RvQ2xlYXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCkBAIC0xNzcs
NiArMTc4LDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIHJlc2V0QWxs
R2VvbG9jYXRpb25QZXJtaXNzaW9ucygpOwogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kKCk7
CisgICAgdm9pZCBjYW5jZWxQcm9jZXNzV2lsbFN1c3BlbmQoKTsKKyAgICBib29sIG1hcmtBbGxM
YXllcnNWb2xhdGlsZUlmUG9zc2libGUoKTsKKyAgICB2b2lkIHByb2Nlc3NTdXNwZW5zaW9uQ2xl
YW51cFRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8V2ViUHJvY2Vzcz4qKTsKICNlbmRpZiAvLyBQ
TEFURk9STShJT1MpCiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IGFwaU9iamVjdEJ5Q29udmVy
dGluZ0Zyb21IYW5kbGVzKEFQSTo6T2JqZWN0Kik7CkBAIC0yODYsNiArMjkwLDcgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8RXZlbnREaXNwYXRjaGVyPiBtX2V2ZW50RGlzcGF0Y2hlcjsKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgUmVmUHRyPFZpZXdVcGRhdGVEaXNwYXRjaGVyPiBtX3ZpZXdVcGRh
dGVEaXNwYXRjaGVyOworICAgIFdlYkNvcmU6OlRpbWVyPFdlYlByb2Nlc3M+IG1fcHJvY2Vzc1N1
c3BlbnNpb25DbGVhbnVwVGltZXI7CiAjZW5kaWYKIAogICAgIGJvb2wgbV9pbkRpZENsb3NlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IDYzZmVlMGQuLjhmNzdlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTk1LDUgKzk1LDYgQEAgbWVzc2FnZXMgLT4gV2Vi
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgUHJvY2Vz
c1dpbGxTdXNwZW5kKCkKKyAgICBDYW5jZWxQcm9jZXNzV2lsbFN1c3BlbmQoKQogI2VuZGlmCiB9
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>