<?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>161914</bug_id>
          
          <creation_ts>2016-09-13 10:28:26 -0700</creation_ts>
          <short_desc>Media controls behave strangely when changing media sources</short_desc>
          <delta_ts>2016-09-14 16:54:04 -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>Media</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jer.noble</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1229195</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-13 10:28:26 -0700</bug_when>
    <thetext>Media controls behave strangely when changing media sources</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229196</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-13 10:28:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/28227805&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229242</commentid>
    <comment_count>2</comment_count>
      <attachid>288710</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-13 12:00:42 -0700</bug_when>
    <thetext>Created attachment 288710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229251</commentid>
    <comment_count>3</comment_count>
      <attachid>288712</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-13 12:03:47 -0700</bug_when>
    <thetext>Created attachment 288712
Rebased against trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229723</commentid>
    <comment_count>4</comment_count>
      <attachid>288712</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-14 14:02:45 -0700</bug_when>
    <thetext>Comment on attachment 288712
Rebased against trunk

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

Looks pretty reasonable, but maybe have Jer or someone take a peek?

&gt; Source/WebCore/ChangeLog:26
&gt; +          play. This gives the user a change to interact with the controls when a video ends, but also allows the page

s/change/chance/

&gt; Source/WebCore/html/HTMLMediaElement.cpp:166
&gt; +static const double HideMediaControlsAfterEndedDelay = 6;

no std::chrono love? I don&apos;t know if we&apos;re on or off it this week, but it looks like you&apos;re matching nearby code so I guess it&apos;s fine.

&gt; Source/WebCore/html/MediaElementSession.cpp:654
&gt; +    return elementRectInMainFrame.width() * elementRectInMainFrame.height() &gt; totalElementArea / 2;

Don&apos;t we have a .area()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229726</commentid>
    <comment_count>5</comment_count>
      <attachid>288712</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-14 14:06:08 -0700</bug_when>
    <thetext>Comment on attachment 288712
Rebased against trunk

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

Thanks! I&apos;ll get Jer&apos;s opinion as well.

&gt;&gt; Source/WebCore/ChangeLog:26
&gt;&gt; +          play. This gives the user a change to interact with the controls when a video ends, but also allows the page
&gt; 
&gt; s/change/chance/

Whoops -- fixed.

&gt;&gt; Source/WebCore/html/MediaElementSession.cpp:654
&gt;&gt; +    return elementRectInMainFrame.width() * elementRectInMainFrame.height() &gt; totalElementArea / 2;
&gt; 
&gt; Don&apos;t we have a .area()?

Ah, so we do! Changed to area().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229773</commentid>
    <comment_count>6</comment_count>
      <attachid>288712</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-09-14 15:33:39 -0700</bug_when>
    <thetext>Comment on attachment 288712
Rebased against trunk

This all looks reasonable to me as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229795</commentid>
    <comment_count>7</comment_count>
      <attachid>288881</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-14 16:16:52 -0700</bug_when>
    <thetext>Created attachment 288881
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229797</commentid>
    <comment_count>8</comment_count>
      <attachid>288881</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-14 16:19:15 -0700</bug_when>
    <thetext>Comment on attachment 288881
Patch for landing

Rejecting attachment 288881 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 288881, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/2075052</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229800</commentid>
    <comment_count>9</comment_count>
      <attachid>288882</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2016-09-14 16:21:04 -0700</bug_when>
    <thetext>Created attachment 288882
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229825</commentid>
    <comment_count>10</comment_count>
      <attachid>288882</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-14 16:54:00 -0700</bug_when>
    <thetext>Comment on attachment 288882
Patch for landing

Clearing flags on attachment: 288882

Committed r205938: &lt;http://trac.webkit.org/changeset/205938&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229826</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-14 16:54:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288710</attachid>
            <date>2016-09-13 12:00:42 -0700</date>
            <delta_ts>2016-09-13 12:03:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161914-20160913115807.patch</filename>
            <type>text/plain</type>
            <size>34175</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTMzMzgzNzNlOTQwOGVh
MWZkMDc5ZTI4ZjRkYWI2NDMxMmI2ZGM3MC4uNzAxYTRhNGVjYWUyNzhmODZkZThhNTI5YTQ4NDhj
MDRmOGYxODhlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE2LTA5LTEzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRy
b2xzIGJlaGF2ZSBzdHJhbmdlbHkgd2hlbiBjaGFuZ2luZyBtZWRpYSBzb3VyY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5MTQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI4MjI3ODA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZHJlc3NlcyBtZWRpYSBjb250cm9scyBmbGlja2VyaW5nIHdo
aWxlIGNoYW5naW5nIHRoZSBzb3VyY2Ugb2YgYSBtZWRpYSBlbGVtZW50LiBUbyBhY2NvbXBsaXNo
IHRoaXMsIHdlIG1ha2UKKyAgICAgICAgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIHRoZSBtZWRp
YSBjb250cm9scyBtYWluIGNvbnRlbnQgaGV1cmlzdGljOgorCisgICAgICAgIC0gUHJldmVudCBl
bGVtZW50cyB0aGF0IGFyZSBub3QgbW9zdGx5IHdpdGhpbiB0aGUgbWFpbmZyYW1lIHJlY3QgKG9y
IGVsZW1lbnRzIHdpdGggZW1wdHkgcmVjdHMpIGZyb20gc2hvd2luZworICAgICAgICAgIG1lZGlh
IGNvbnRyb2xzLiBNYW55IHdlYnNpdGVzIHRoYXQgcmVseSBvbiBzYW1lIGRvY3VtZW50IG5hdmln
YXRpb24gd2lsbCBtb3ZlIHZpZGVvcyBvZmZzY3JlZW4gd2hlbiBuYXZpZ2F0aW5nCisgICAgICAg
ICAgdG8gYSBzZWN0aW9uIG9mIHRoZWlyIHNpdGUgdGhhdCBkb2VzIG5vdCBwbGF5IG1lZGlhLiBX
aXRob3V0IHRoaXMgY2hlY2ssIHdlIHdvdWxkIG5vdCBrbm93IHRvIGhpZGUgYSB2aWRlbworICAg
ICAgICAgIGVsZW1lbnQgb24gY2VydGFpbiBwb3B1bGFyIHdlYnNpdGVzIHRoYXQgdXNlIHRoaXMg
dGVjaG5pcXVlLCBzaW5jZSB0aGUgdmlkZW8gaGFzIGJlZW4gaW50ZXJhY3RlZCB3aXRoIGluIHRo
ZQorICAgICAgICAgIHBhc3QuCisKKyAgICAgICAgLSBSYXRoZXIgdGhhbiBjaGVjayB3aGV0aGVy
IGEgbWVkaWEgZWxlbWVudCBjdXJyZW50bHkgaGFzIHZpZGVvL2F1ZGlvIHNvdXJjZXMsIGNoZWNr
IHdoZXRoZXIgaXQgaGFzIGV2ZXIgaGFkCisgICAgICAgICAgYXVkaW8uIE1hbnkgd2Vic2l0ZXMg
d2lsbCB1c2UgdGhlIHNhbWUgbWVkaWEgZWxlbWVudCBhY3Jvc3MgZGlmZmVyZW50IHZpZGVvcyBh
bmQgY2hhbmdlIG9ubHkgdGhlIHNvdXJjZSwgYW5kCisgICAgICAgICAgd2Ugc2hvdWxkIG5vdCBw
cmV2ZW50IGEgbWVkaWEgZWxlbWVudCBmcm9tIGhhdmluZyBtZWRpYSBjb250cm9scyBvbiBncm91
bmRzIG9mIGhhdmluZyBubyBhdWRpbyBvciB2aWRlbyBpbgorICAgICAgICAgIHRoaXMgY2FzZS4K
KworICAgICAgICAtIFJhdGhlciB0aGFuIGFkZCB1c2VyIGdlc3R1cmUgYW5kIHBsYXliYWNrIGJl
aGF2aW9yIHJlc3RyaWN0aW9ucyBiZWZvcmUgZGlzcGF0Y2hpbmcgYW4gZW5kZWQgZXZlbnQsIGFk
ZCBvbmx5CisgICAgICAgICAgdGhlIGdlc3R1cmUgcmVzdHJpY3Rpb24gaW1tZWRpYXRlbHksIGFu
ZCBhZGQgdGhlIHBsYXliYWNrIHJlc3RyaWN0aW9uIGFmdGVyIHdhaXRpbmcgZm9yIGEgZ3JhY2Ug
cGVyaW9kIG9ubHkgaWYKKyAgICAgICAgICB0aGUgdXNlciBoYXMgbm90IGludGVyYWN0ZWQgd2l0
aCB0aGUgdmlkZW8gc2luY2UgZW5kaW5nLCBhbmQgdGhlIHZpZGVvIGlzIG5vdCBjdXJyZW50bHkg
cGxheWluZyBvciBhYm91dCB0bworICAgICAgICAgIHBsYXkuIFRoaXMgZ2l2ZXMgdGhlIHVzZXIg
YSBjaGFuZ2UgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgY29udHJvbHMgd2hlbiBhIHZpZGVvIGVuZHMs
IGJ1dCBhbHNvIGFsbG93cyB0aGUgcGFnZQorICAgICAgICAgIHRvIGxvYWQgb3IgYmVnaW4gcGxh
eWluZyBhIG5ldyB2aWRlbyB3aXRoIHRoZSBzYW1lIG1lZGlhIGVsZW1lbnQgd2l0aG91dCB0aHJh
c2hpbmcgbWVkaWEgY29udHJvbCBzdGF0ZS4KKworICAgICAgICBBZGRzIDMgbmV3IEFQSSB0ZXN0
cy4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVmZmVyc0NoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFu
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YmVnaW5TY3J1YmJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWRkQmVoYXZpb3JSZXN0cmlj
dGlvbnNPbkVuZElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmlj
dGlvbnNUaW1lckZpcmVkKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc0V2ZXJIYWRBdWRpbyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNFdmVySGFkVmlkZW8pOgorICAgICAg
ICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xp
ZW50OjptZWRpYVBsYXllckFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6bm90aWZ5QWN0aXZlU291cmNlQnVmZmVyc0No
YW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6bm90aWZ5QWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpy
ZW1vdmVTb3VyY2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2YXRl
QVZGT2JqQzo6c291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKToKKwogMjAx
Ni0wOS0xMiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjIwNTA5MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkMjAxYTBi
MGRiMDkyOWMyNmI0NjM3ZTg1YTNmMzQwMjAyMzk0MDJkLi45NGMyNzE5NzQ5NmVjMmY1OWEyNDU1
OGViMjYxNDAyNTViNzk5MzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDkt
MTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTWVk
aWEgY29udHJvbHMgYmVoYXZlIHN0cmFuZ2VseSB3aGVuIGNoYW5naW5nIG1lZGlhIHNvdXJjZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTkxNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjgyMjc4MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3dzIGEgd2ViIHBhZ2UgdG8gaGF2ZSBhbiBh
Y3RpdmUgdmlkZW8gZm9yIGEgbWVkaWEgY29udHJvbCBtYW5hZ2VyIGV2ZW4gaWYgbm8gYXVkaW8g
b3IgdmlkZW8gaXMgY3VycmVudGx5CisgICAgICAgIGJlaW5nIHByb2R1Y2VkLiBUaGlzIGlzIGJl
Y2F1c2UgdGhlIG1lZGlhIGVsZW1lbnQgbWF5IGJlIGluIGEgc3RhdGUgd2hlcmUgaXQgaXMgY2hh
bmdpbmcgaXRzIHNvdXJjZSBhbmQgZG9lcyBub3QKKyAgICAgICAgY3VycmVudGx5IGhhdmUgYSB2
aWRlbyBvciBhdWRpbyB0cmFjay4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omhhc0FjdGl2ZVZpZGVvRm9yQ29u
dHJvbHNNYW5hZ2VyKToKKwogMjAxNi0wOS0wOSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBXS1RodW1ibmFpbFZpZXcgc2hvdWxkIGV4cG9zZSBhIG1v
ZGUgd2hlcmUgaXQgY2FuIGJlIHJlcGFyZW50ZWQgd2l0aG91dCByZXNuYXBzaG90dGluZwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMTdmYjg4YmE1YThlZTQz
NDY2ZmVmMTEzNjE2M2E4YjAyN2MwOWMwMy4uYTgzNDhhNGIyYTYxODVlNjE2NTc5ZjdiMGFkNGFk
NTE3N2NjNTc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBA
IC0xNjMsNiArMTYzLDggQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBTZWVrVGltZSA9IDAuMjsKIHN0
YXRpYyBjb25zdCBkb3VibGUgU2NhblJlcGVhdERlbGF5ID0gMS41Owogc3RhdGljIGNvbnN0IGRv
dWJsZSBTY2FuTWF4aW11bVJhdGUgPSA4OwogCitzdGF0aWMgY29uc3QgZG91YmxlIEhpZGVNZWRp
YUNvbnRyb2xzQWZ0ZXJFbmRlZERlbGF5ID0gNjsKKwogc3RhdGljIHZvaWQgc2V0RmxhZ3ModW5z
aWduZWQmIHZhbHVlLCB1bnNpZ25lZCBmbGFncykKIHsKICAgICB2YWx1ZSB8PSBmbGFnczsKQEAg
LTQyNiw2ICs0MjgsNyBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogICAgICwgbV9wcm9ncmVz
c0V2ZW50VGltZXIoKnRoaXMsICZIVE1MTWVkaWFFbGVtZW50Ojpwcm9ncmVzc0V2ZW50VGltZXJG
aXJlZCkKICAgICAsIG1fcGxheWJhY2tQcm9ncmVzc1RpbWVyKCp0aGlzLCAmSFRNTE1lZGlhRWxl
bWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpCiAgICAgLCBtX3NjYW5UaW1lcigqdGhp
cywgJkhUTUxNZWRpYUVsZW1lbnQ6OnNjYW5UaW1lckZpcmVkKQorICAgICwgbV9wbGF5YmFja0Nv
bnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGltZXIoKnRoaXMsICZIVE1MTWVkaWFF
bGVtZW50OjpwbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGltZXJG
aXJlZCkKICAgICAsIG1fcGxheWVkVGltZVJhbmdlcygpCiAgICAgLCBtX2FzeW5jRXZlbnRRdWV1
ZSgqdGhpcykKICAgICAsIG1fcmVxdWVzdGVkUGxheWJhY2tSYXRlKDEpCkBAIC00ODIsNiArNDg1
LDggQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fY3JlYXRpbmdDb250cm9scyhm
YWxzZSkKICAgICAsIG1fcmVjZWl2ZWRMYXlvdXRTaXplQ2hhbmdlZChmYWxzZSkKICAgICAsIG1f
aGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nKGZhbHNlKQorICAgICwgbV9oYXNFdmVySGFkQXVk
aW8oZmFsc2UpCisgICAgLCBtX2hhc0V2ZXJIYWRWaWRlbyhmYWxzZSkKICNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfU0NSSVBUKQogICAgICwgbV9tZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2Nh
bGVGYWN0b3IoZmFsc2UpCiAgICAgLCBtX2hhdmVTZXRVcENhcHRpb25Db250YWluZXIoZmFsc2Up
CkBAIC02MzAsNiArNjM1LDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRpYUVsZW1lbnQo
KQogICAgIG1fcHJvbWlzZVRhc2tRdWV1ZS5jbG9zZSgpOwogICAgIG1fcGF1c2VBZnRlckRldGFj
aGVkVGFza1F1ZXVlLmNsb3NlKCk7CiAgICAgbV91cGRhdGVQbGF5YmFja0NvbnRyb2xzTWFuYWdl
clF1ZXVlLmNsb3NlKCk7CisgICAgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVz
dHJpY3Rpb25zUXVldWUuY2xvc2UoKTsKIAogICAgIG1fY29tcGxldGVseUxvYWRlZCA9IHRydWU7
CiAKQEAgLTk3Miw2ICs5NzgsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZU5l
eHRTb3VyY2VDaGlsZCgpCiAgICAgbV9wZW5kaW5nQWN0aW9uVGltZXIuc3RhcnRPbmVTaG90KDAp
OwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVm
ZmVyc0NoYW5nZWQoY29uc3QgTWVkaWFQbGF5ZXIqKQoreworICAgIG1faGFzRXZlckhhZEF1ZGlv
IHw9IGhhc0F1ZGlvKCk7CisgICAgbV9oYXNFdmVySGFkVmlkZW8gfD0gaGFzVmlkZW8oKTsKK30K
Kwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnROYW1lKQogewogI2lmIExPR19NRURJQV9FVkVOVFMKQEAgLTI2NzUsNiArMjY4Nyw5
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFU
aW1lJiBpblRpbWUsIGNvbnN0IE1lZGlhVGltCiAgICAgICAgIG1fc2Vla1Rhc2tRdWV1ZS5lbnF1
ZXVlVGFzayhzdGQ6OmJpbmQoJkhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNrLCB0aGlzKSk7CiAg
ICAgfSBlbHNlCiAgICAgICAgIHNlZWtUYXNrKCk7CisKKyAgICBpZiAoU2NyaXB0Q29udHJvbGxl
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICAgICAgbV9tZWRpYVNlc3Np
b24tPnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWly
ZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKIH0KIAogdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpzZWVrVGFzaygpCkBAIC0zNDkxLDYgKzM1MDYsOCBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmJlZ2luU2NydWJiaW5nKCkKICAgICAgICAgICAgIHNldFBhdXNlZEludGVybmFs
KHRydWUpOwogICAgICAgICB9CiAgICAgfQorCisgICAgbV9tZWRpYVNlc3Npb24tPnJlbW92ZUJl
aGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJl
VG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpl
bmRTY3J1YmJpbmcoKQpAQCAtNDUzNyw3ICs0NTU0LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjphZGRCZWhhdmlvclJlc3RyaWN0aW9uc09uRW5kSWZOZWNlc3NhcnkoKQogICAgIGlmIChpc0Z1
bGxzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9tZWRpYVNlc3Npb24tPmFkZEJl
aGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVBsYXliYWNrVG9D
b250cm9sQ29udHJvbHNNYW5hZ2VyIHwgTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJH
ZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKKyAgICBtX21lZGlhU2Vzc2lvbi0+YWRk
QmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1
cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpOworICAgIG1fcGxheWJhY2tDb250cm9sc01hbmFn
ZXJCZWhhdmlvclJlc3RyaWN0aW9uc1RpbWVyLnN0b3AoKTsKKyAgICBtX3BsYXliYWNrQ29udHJv
bHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUaW1lci5zdGFydE9uZVNob3QoSGlkZU1lZGlh
Q29udHJvbHNBZnRlckVuZGVkRGVsYXkpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopCkBAIC00NzcyLDYgKzQ3OTEsOSBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2Vk
KE1lZGlhUGxheWVyKikKICAgICBkb2N1bWVudCgpLnVwZGF0ZUlzUGxheWluZ01lZGlhKCk7CiAj
ZW5kaWYKIAorICAgIG1faGFzRXZlckhhZEF1ZGlvIHw9IGhhc0F1ZGlvKCk7CisgICAgbV9oYXNF
dmVySGFkVmlkZW8gfD0gaGFzVmlkZW8oKTsKKwogICAgIGVuZFByb2Nlc3NpbmdNZWRpYVBsYXll
ckNhbGxiYWNrKCk7CiB9CiAKQEAgLTczMDEsNiArNzMyMywyNSBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNjaGVkdWxlVXBkYXRlUGxheWJhY2tDb250cm9sc01hbmFnZXIoKQogICAgICAgICBt
X3VwZGF0ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyUXVldWUuZW5xdWV1ZVRhc2soc3RkOjpiaW5k
KCZIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlciwgdGhpcykp
OwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVo
YXZpb3JSZXN0cmljdGlvbnNUaW1lckZpcmVkKCkKK3sKKyAgICBpZiAobV9wbGF5YmFja0NvbnRy
b2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zUXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9tZWRpYVNlc3Npb24tPmhhc0JlaGF2aW9yUmVz
dHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9s
Q29udHJvbHNNYW5hZ2VyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPEhUTUxNZWRp
YUVsZW1lbnQ+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgbV9wbGF5YmFja0NvbnRyb2xzTWFu
YWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zUXVldWUuZW5xdWV1ZVRhc2soW3Byb3RlY3RlZFRoaXNd
ICgpIHsKKyAgICAgICAgTWVkaWFFbGVtZW50U2Vzc2lvbiogbWVkaWFFbGVtZW50U2Vzc2lvbiA9
IHByb3RlY3RlZFRoaXMtPm1fbWVkaWFTZXNzaW9uLmdldCgpOworICAgICAgICBpZiAocHJvdGVj
dGVkVGhpcy0+aXNQbGF5aW5nKCkgfHwgbWVkaWFFbGVtZW50U2Vzc2lvbi0+c3RhdGUoKSA9PSBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXV0b3BsYXlpbmcgfHwgbWVkaWFFbGVtZW50U2Vzc2lvbi0+
c3RhdGUoKSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheWluZykKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBtZWRpYUVsZW1lbnRTZXNzaW9uLT5hZGRCZWhhdmlvclJlc3RyaWN0
aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVQbGF5YmFja1RvQ29udHJvbENvbnRyb2xz
TWFuYWdlcik7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPnNjaGVkdWxlVXBkYXRlUGxheWJhY2tD
b250cm9sc01hbmFnZXIoKTsKKyAgICB9KTsKK30KKwogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpz
aG91bGRPdmVycmlkZUJhY2tncm91bmRMb2FkaW5nUmVzdHJpY3Rpb24oKSBjb25zdAogewogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oCmluZGV4IGQ4MzQ1ZGU1MDI0NGEzMmFjNjVlZTQzNDFjY2UyMTRlYTE2Njk1
MzkuLjA0ZWMzYjViNTk3NzcxZThmYzMzMTJhOWFkMTdlMzBmOTkzMzEyYzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00NzEsNiArNDcxLDggQEAgcHVibGljOgog
ICAgIHZvaWQgcmVzZXRQbGF5YmFja1Nlc3Npb25TdGF0ZSgpOwogICAgIGJvb2wgaXNWaXNpYmxl
SW5WaWV3cG9ydCgpIGNvbnN0OwogICAgIGJvb2wgaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5n
KCkgY29uc3Q7CisgICAgYm9vbCBoYXNFdmVySGFkQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2hh
c0V2ZXJIYWRBdWRpbzsgfQorICAgIGJvb2wgaGFzRXZlckhhZFZpZGVvKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNFdmVySGFkVmlkZW87IH0KIAogcHJvdGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIp
OwpAQCAtNjE5LDYgKzYyMSw4IEBAIHByaXZhdGU6CiAgICAgR3JhcGhpY3NEZXZpY2VBZGFwdGVy
KiBtZWRpYVBsYXllckdyYXBoaWNzRGV2aWNlQWRhcHRlcihjb25zdCBNZWRpYVBsYXllciopIGNv
bnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2b2lkIG1lZGlhUGxheWVyQWN0aXZlU291cmNl
QnVmZmVyc0NoYW5nZWQoY29uc3QgTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKKwogICAgIGJvb2wg
bWVkaWFQbGF5ZXJTaG91bGRXYWl0Rm9yUmVzcG9uc2VUb0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBtZWRp
YVBsYXllckhhbmRsZVBsYXliYWNrQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3Rl
Q29udHJvbENvbW1hbmRUeXBlIGNvbW1hbmQpIG92ZXJyaWRlIHsgZGlkUmVjZWl2ZVJlbW90ZUNv
bnRyb2xDb21tYW5kKGNvbW1hbmQsIG51bGxwdHIpOyB9CiAgICAgU3RyaW5nIG1lZGlhUGxheWVy
U291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC03OTEsNiAr
Nzk1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhdXNlQWZ0ZXJEZXRhY2hlZFRhc2soKTsKICAg
ICB2b2lkIHVwZGF0ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCk7CiAgICAgdm9pZCBzY2hlZHVs
ZVVwZGF0ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCk7CisgICAgdm9pZCBwbGF5YmFja0NvbnRy
b2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCB1
cGRhdGVSZW5kZXJlcigpOwogCkBAIC04MDQsMTIgKzgwOSwxNCBAQCBwcml2YXRlOgogICAgIFRp
bWVyIG1fcHJvZ3Jlc3NFdmVudFRpbWVyOwogICAgIFRpbWVyIG1fcGxheWJhY2tQcm9ncmVzc1Rp
bWVyOwogICAgIFRpbWVyIG1fc2NhblRpbWVyOworICAgIFRpbWVyIG1fcGxheWJhY2tDb250cm9s
c01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1RpbWVyOwogICAgIEdlbmVyaWNUYXNrUXVldWU8
VGltZXI+IG1fc2Vla1Rhc2tRdWV1ZTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Jl
c2l6ZVRhc2tRdWV1ZTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3NoYWRvd0RPTVRh
c2tRdWV1ZTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Byb21pc2VUYXNrUXVldWU7
CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVl
dWU7CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV91cGRhdGVQbGF5YmFja0NvbnRyb2xz
TWFuYWdlclF1ZXVlOworICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fcGxheWJhY2tDb250
cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1F1ZXVlOwogICAgIFJlZlB0cjxUaW1lUmFu
Z2VzPiBtX3BsYXllZFRpbWVSYW5nZXM7CiAgICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2
ZW50UXVldWU7CiAKQEAgLTk0Niw2ICs5NTMsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9yZWNl
aXZlZExheW91dFNpemVDaGFuZ2VkIDogMTsKICAgICBib29sIG1faGFzRXZlck5vdGlmaWVkQWJv
dXRQbGF5aW5nIDogMTsKIAorICAgIGJvb2wgbV9oYXNFdmVySGFkQXVkaW8gOiAxOworICAgIGJv
b2wgbV9oYXNFdmVySGFkVmlkZW8gOiAxOworCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1ND
UklQVCkKICAgICBib29sIG1fbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yIDog
MTsKICAgICBib29sIG1faGF2ZVNldFVwQ2FwdGlvbkNvbnRhaW5lciA6IDE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCA5ZDhjYTJkZTkwMzBhMzYy
NGI3ZGU4YTNhMWRmYTdjNThjNzIzYWQ3Li5mNzIwN2JlYWE5NjAxNzJjYmQ0OWUwNGU3OWQ2YmVj
MjM3NDAyZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNl
c3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5j
cHAKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3Qg
ZG91YmxlIGVsZW1lbnRNYWluQ29udGVudENoZWNrSW50ZXJ2YWwgPSAuMjUwOwogCitzdGF0aWMg
Ym9vbCBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUoY29uc3QgSFRNTE1lZGlhRWxlbWVu
dCYpOwogc3RhdGljIGJvb2wgaXNFbGVtZW50TGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudChjb25z
dCBIVE1MTWVkaWFFbGVtZW50JiwgTWVkaWFTZXNzaW9uTWFpbkNvbnRlbnRQdXJwb3NlKTsKIAog
I2lmICFMT0dfRElTQUJMRUQKQEAgLTIyMiw3ICsyMjMsMTIgQEAgYm9vbCBNZWRpYUVsZW1lbnRT
ZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCi0gICAgaWYgKCFtX2VsZW1lbnQuaGFzQXVkaW8oKSkgeworICAgIGlmICgh
aXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKG1fZWxlbWVudCkpIHsKKyAgICAgICAgTE9H
KE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciAtIHJl
dHVybmluZyBGQUxTRTogTm90IGluIG1haW4gZnJhbWUiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIGlmICghbV9lbGVtZW50Lmhhc0F1ZGlvKCkgJiYgIW1fZWxlbWVudC5o
YXNFdmVySGFkQXVkaW8oKSkgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNz
aW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyIC0gcmV0dXJuaW5nIEZBTFNFOiBObyBhdWRpbyIp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjY4LDcgKzI3NCw3IEBAIGJvb2wg
TWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlcigpIGNvbnN0CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIW1fZWxlbWVu
dC5oYXNWaWRlbygpKSB7CisgICAgICAgIGlmICghbV9lbGVtZW50Lmhhc1ZpZGVvKCkgJiYgIW1f
ZWxlbWVudC5oYXNFdmVySGFkVmlkZW8oKSkgewogICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVk
aWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciAtIHJldHVybmluZyBGQUxT
RTogTm8gdmlkZW8iKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAt
NjMwLDYgKzYzNiwyNCBAQCBzdGF0aWMgYm9vbCBpc01haW5Db250ZW50Rm9yUHVycG9zZXNPZkF1
dG9wbGF5KGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK3N0YXRpYyBib29sIGlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZShjb25zdCBI
VE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQoreworICAgIGF1dG8qIGRvY3VtZW50RnJhbWUgPSBl
bGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWRvY3VtZW50RnJhbWUpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gbWFpbkZyYW1lVmlldyA9IGRvY3VtZW50RnJh
bWUtPm1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICBpZiAoIW1haW5GcmFtZVZpZXcpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIEludFJlY3QgbWFpbkZyYW1lUmVjdEFkanVzdGVkRm9yU2Ny
b2xsUG9zaXRpb24gPSBJbnRSZWN0KC1tYWluRnJhbWVWaWV3LT5kb2N1bWVudFNjcm9sbFBvc2l0
aW9uUmVsYXRpdmVUb1ZpZXdPcmlnaW4oKSwgbWFpbkZyYW1lVmlldy0+Y29udGVudHNTaXplKCkp
OworICAgIEludFJlY3QgZWxlbWVudFJlY3RJbk1haW5GcmFtZSA9IGVsZW1lbnQuY2xpZW50UmVj
dCgpOworICAgIGludCB0b3RhbEVsZW1lbnRBcmVhID0gZWxlbWVudFJlY3RJbk1haW5GcmFtZS53
aWR0aCgpICogZWxlbWVudFJlY3RJbk1haW5GcmFtZS5oZWlnaHQoKTsKKyAgICBlbGVtZW50UmVj
dEluTWFpbkZyYW1lLmludGVyc2VjdChtYWluRnJhbWVSZWN0QWRqdXN0ZWRGb3JTY3JvbGxQb3Np
dGlvbik7CisKKyAgICByZXR1cm4gZWxlbWVudFJlY3RJbk1haW5GcmFtZS53aWR0aCgpICogZWxl
bWVudFJlY3RJbk1haW5GcmFtZS5oZWlnaHQoKSA+IHRvdGFsRWxlbWVudEFyZWEgLyAyOworfQor
CiBzdGF0aWMgYm9vbCBpc0VsZW1lbnRMYXJnZVJlbGF0aXZlVG9NYWluRnJhbWUoY29uc3QgSFRN
TE1lZGlhRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBzdGF0aWMgY29uc3QgZG91YmxlIG1pbmlt
dW1QZXJjZW50YWdlT2ZNYWluRnJhbWVBcmVhRm9yTWFpbkNvbnRlbnQgPSAwLjk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA3NmU0ZGVi
ZWE4N2Y1NjVjNGI0NDBhMTYwYmIwZTQxMGExMGVjNjUxLi5lMjg5Y2ZlZmVhNmRhYWIxYjliMmJh
OGI0YTJhOGEzOTExN2Y3MzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgKQEAgLTE5Niw2ICsxOTYsOCBAQCBwdWJsaWM6CiAgICAgLy8gYXZh
aWxhYmlsaXR5IG9mIHRoZSBwbGF0Zm9ybUxheWVyKCkuCiAgICAgdmlydHVhbCB2b2lkIG1lZGlh
UGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSB7IH0KIAorICAgIHZpcnR1
YWwgdm9pZCBtZWRpYVBsYXllckFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKGNvbnN0IE1lZGlh
UGxheWVyKikgeyB9CisKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCiAg
ICAgdmlydHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIG1lZGlhUGxheWVyR3JhcGhpY3NEZXZp
Y2VBZGFwdGVyKGNvbnN0IE1lZGlhUGxheWVyKikgY29uc3QgeyByZXR1cm4gMDsgfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oCmluZGV4IDEzN2NlZmIzOWFkNTM3MzdmNGExNGFlNjMyOTc5YjM1ODY3ZWQ5OWIu
LmFkMzg3YTdhMWViYjc5YTNiZmNlZDQ2YjBmNjIyNzAyOGVjOWY2N2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBA
IC0yNzUsNiArMjc1LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeVRyYWNrTW9kZUNoYW5nZWQoKSB7IH0KICNlbmRpZgorCisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCkgeyB9CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IGY3MWZlNDg1OWJhMGNmNDI0OWYxYmY2
MDE0MmMyZDkzYTFiNTBjNjMuLjEzNzE1YjU1MGUyZmRiNzI0NDdiNTNkNmQzYTI3ZWU0MWJmN2E2
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0xNjUsNiArMTY1LDcgQEAgcHJpdmF0
ZToKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlk
ZTsKICAgICAvLyBjYWxsZWQgd2hlbiB0aGUgcmVuZGVyaW5nIHN5c3RlbSBmbGlwcyB0aGUgaW50
byBvciBvdXQgb2YgYWNjZWxlcmF0ZWQgcmVuZGVyaW5nIG1vZGUuCiAgICAgdm9pZCBhY2NlbGVy
YXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgbm90aWZ5QWN0
aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKSBvdmVycmlkZTsKIAogICAgIE1lZGlhUGxheWVyOjpN
b3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCmluZGV4IGUzYjNjYmUyZTdiOTk3OWMzMzM5ZTkxNzU4YmExODgzZmUw
ZGJlMGMuLjlmMTRlMmQ2NzM0MzljZDBmMmNjZDgzMzU0ZWI4ODYxZDA0MDQ3NzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTU1Niw2ICs1NTYsMTEgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFu
Z2VkKCkKICAgICAgICAgZGVzdHJveUxheWVyKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpub3RpZnlBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgp
Cit7CisgICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVmZmVy
c0NoYW5nZWQobV9wbGF5ZXIpOworfQorCiBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Om1vdmllTG9hZFR5cGUoKSBjb25zdAog
ewogICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3RvcmVkU3RyZWFtOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3Vy
Y2VQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggY2UyNWRj
YmFiNjRiNjc3ZTkyNTBlN2VkYzhjZGI4MjlkMjIzZDM3NC4uNTI1YmI5MDgxN2NkY2NiNjJjYWEw
NTVlMmE3MjA5NDIwZjQzYmI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tCkBAIC04Myw4ICs4MywxMCBAQCB2b2lkIE1lZGlh
U291cmNlUHJpdmF0ZUFWRk9iakM6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2
YXRlKiBidWZmZXIpCiAgICAgQVNTRVJUKG1fc291cmNlQnVmZmVycy5jb250YWlucyhidWZmZXIp
KTsKIAogICAgIHNpemVfdCBwb3MgPSBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZmluZChidWZmZXIp
OwotICAgIGlmIChwb3MgIT0gbm90Rm91bmQpCisgICAgaWYgKHBvcyAhPSBub3RGb3VuZCkgewog
ICAgICAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMucmVtb3ZlKHBvcyk7CisgICAgICAgIG1fcGxh
eWVyLT5ub3RpZnlBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpOworICAgIH0KIAogICAgIHBv
cyA9IG1fc291cmNlQnVmZmVycy5maW5kKGJ1ZmZlcik7CiAgICAgbV9zb3VyY2VCdWZmZXJzW3Bv
c10tPmNsZWFyTWVkaWFTb3VyY2UoKTsKQEAgLTE0MSwxMyArMTQzLDE3IEBAIHZvaWQgTWVkaWFT
b3VyY2VQcml2YXRlQVZGT2JqQzo6c2Vla0NvbXBsZXRlZCgpCiAKIHZvaWQgTWVkaWFTb3VyY2VQ
cml2YXRlQVZGT2JqQzo6c291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKFNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDKiBidWZmZXIsIGJvb2wgYWN0aXZlKQogewotICAgIGlm
IChhY3RpdmUgJiYgIW1fYWN0aXZlU291cmNlQnVmZmVycy5jb250YWlucyhidWZmZXIpKQorICAg
IGlmIChhY3RpdmUgJiYgIW1fYWN0aXZlU291cmNlQnVmZmVycy5jb250YWlucyhidWZmZXIpKSB7
CiAgICAgICAgIG1fYWN0aXZlU291cmNlQnVmZmVycy5hcHBlbmQoYnVmZmVyKTsKKyAgICAgICAg
bV9wbGF5ZXItPm5vdGlmeUFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CisgICAgfQogCiAg
ICAgaWYgKCFhY3RpdmUpIHsKICAgICAgICAgc2l6ZV90IHBvc2l0aW9uID0gbV9hY3RpdmVTb3Vy
Y2VCdWZmZXJzLmZpbmQoYnVmZmVyKTsKLSAgICAgICAgaWYgKHBvc2l0aW9uICE9IG5vdEZvdW5k
KQorICAgICAgICBpZiAocG9zaXRpb24gIT0gbm90Rm91bmQpIHsKICAgICAgICAgICAgIG1fYWN0
aXZlU291cmNlQnVmZmVycy5yZW1vdmUocG9zaXRpb24pOworICAgICAgICAgICAgbV9wbGF5ZXIt
Pm5vdGlmeUFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CisgICAgICAgIH0KICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNDQ1Mjlj
NjMyNDhkYWM0YWRmMmUzODBkZjg1ZWY5NTkxMzQwZmQ3My4uNTg2ZGVhYjFlODE0YTQ5MDA0YzZl
NWE3ZTg5M2JmODg3ZWUzOGVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTYyOTMsNyArNjI5Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWRlb0Nv
bnRyb2xzTWFuYWdlckRpZENoYW5nZSgpCiBib29sIFdlYlBhZ2VQcm94eTo6aGFzQWN0aXZlVmlk
ZW9Gb3JDb250cm9sc01hbmFnZXIoKSBjb25zdAogewogI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKLSAgICByZXR1cm4gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyICYmIG1fcGxh
eWJhY2tTZXNzaW9uTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgJiYgbV9tZWRp
YVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvOworICAgIHJldHVybiBtX3Bs
YXliYWNrU2Vzc2lvbk1hbmFnZXIgJiYgbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyLT5jb250cm9s
c01hbmFnZXJJbnRlcmZhY2UoKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGE0NTBm
MWVhMDJkYTEwNTNlZTMxYTNlMTlkMWZjZGYxYmQ5ZTI1NC4uN2M0YjUxNWM5MTgzMTQ1Zjc4NjAz
MjFhNmQwMWU3NTFkMWZmYjRlMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA5LTEzICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIGJlaGF2
ZSBzdHJhbmdlbHkgd2hlbiBjaGFuZ2luZyBtZWRpYSBzb3VyY2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5MTQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzI4MjI3ODA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZHMgdGhyZWUgbmV3IHVuaXQgdGVzdHMgdmVyaWZ5aW5nIHRoYXQgbWVkaWEg
Y29udHJvbHMgcmVtYWluIHN0YWJsZSBkdXJpbmcgY29tbW9uIGBzcmNgIGNoYW5nZSBzY2VuYXJp
b3MuIEFsc28KKyAgICAgICAgdHdlYWtzIGFuIGV4aXN0aW5nIHRlc3QgdG8gYWNjb3VudCBmb3Ig
bmV3IGBlbmRlZGAgYmVoYXZpb3IuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbToKKyAgICAgICAgKC1b
VmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyB3YWl0Rm9yTWVkaWFDb250cm9sc1RvU2hv
d10pOgorICAgICAgICAoLVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IHdhaXRGb3JN
ZWRpYUNvbnRyb2xzVG9IaWRlXSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291
cmNlLW9uLWNsaWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNj
cmVlbi5odG1sOiBBZGRlZC4KKwogMjAxNi0wOS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIHBhcnNlSFRNTEludGVnZXIoKSBzaG91bGQgdGFrZSBhIFN0cmlu
Z1ZpZXcgaW4gcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE4N2Q0ZGNhYmM1
NmQ5MmZiZWRjOWQ2ZDJjMTcxNjU0ZTk0NTVlYjQuLjBiZWY3NDhjMTVkOWQzYmJhZDFkNTFiYTMy
OTJhYmMxYjQ3NjE1NmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NSw2ICs3NSw5IEBA
CiAJCTJFNjkxQUYzMUQ3OUU3NUUwMDEyOTQwNyAvKiBsYXJnZS12aWRlby1wbGF5aW5nLXNjcm9s
bC1hd2F5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkU2OTFBRjIxRDc5RTc1NDAwMTI5NDA3IC8qIGxhcmdlLXZpZGVvLXBsYXlpbmct
c2Nyb2xsLWF3YXkuaHRtbCAqLzsgfTsKIAkJMkU3NzY1Q0QxNkM0RDgwQTAwQkEyQkIxIC8qIG1h
aW5JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RTc3NjVDQzE2QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5tbSAqLzsgfTsKIAkJMkU3NzY1Q0Yx
NkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDRTE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5t
bSAqLzsgfTsKKwkJMkVGRjA2QzMxRDg4NjIxRTAwMDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9mZnNj
cmVlbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFRkYwNkMyMUQ4ODYyMTIwMDA0QkIzMCAvKiBsYXJnZS12aWRlby1vZmZzY3JlZW4u
aHRtbCAqLzsgfTsKKwkJMkVGRjA2QzUxRDg4Njc3NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1z
b3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZDNDFEODg2NzcwMDAwNEJCMzAgLyogY2hhbmdlLXZpZGVv
LXNvdXJjZS1vbi1jbGljay5odG1sICovOyB9OworCQkyRUZGMDZDNzFEODg2QTU4MDAwNEJCMzAg
LyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZDNjFEODg2QTU2MDAwNEJCMzAg
LyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLzsgfTsKIAkJMzNCRTVBRjkxMzdC
NUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcw
NTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAgKi87IH07CiAJCTMzREM4OTEy
MTQxOTU1RkUwMDc0N0VGNyAvKiBzaW1wbGUtaWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNEQzg5MEUxNDE5NTM5MzAwNzQ3
RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCAqLzsgfTsKIAkJMzNEQzg5MTQxNDE5NTc5RjAwNzQ3
RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNEQzg5MTMxNDE5
NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja19CdW5k
bGUuY3BwICovOyB9OwpAQCAtNTI5LDYgKzUzMiw5IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAor
CQkJCTJFRkYwNkM3MUQ4ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVu
ZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTJFRkYwNkM1MUQ4ODY3NzYwMDA0QkIz
MCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCisJCQkJMkVGRjA2QzMxRDg4NjIxRTAwMDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9mZnNjcmVl
bi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFMTMxQzE4MUQ4M0E5OEEwMDFCQTM2
QyAvKiB3aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQkyRTU0RjQwRDFEN0JDODQyMDA5MjFBREYgLyogbGFyZ2UtdmlkZW8tbXV0
ZXMtb25wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkU2OTFBRjMxRDc5
RTc1RTAwMTI5NDA3IC8qIGxhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKQEAgLTc3MSw2ICs3NzcsOSBAQAogCQkyRTY5MUFGMjFENzlFNzU0
MDAxMjk0MDcgLyogbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNzc2NUNDMTZDNEQ4MEEwMEJBMkJC
MSAvKiBtYWluSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
bWFpbklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3NzY1Q0UxNkM0RDgx
MTAwQkEyQkIxIC8qIG1haW5NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBtYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZD
MjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZDNDFEODg2NzcwMDAwNEJCMzAgLyogY2hhbmdl
LXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNl
LW9uLWVuZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNoYW5nZS12aWRlby1z
b3VyY2Utb24tZW5kLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMzNCOUNF
MTEyNzdGMjMxMDBGRUZDRTMgLyogUHJldmVudEVtcHR5VXNlckFnZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzQkU1QUY0MTM3QjVBNkMwMDcwNTgxMyAvKiBN
b3VzZU1vdmVBZnRlckNyYXNoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzM0JFNUFGODEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0ZXJD
cmFzaF9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQyNiw2ICsx
NDM1LDkgQEAKIAkJQTE2RjY2QjgxQzQwRTlFMTAwQkQ0RDI0IC8qIFJlc291cmNlcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkVGRjA2QzYxRDg4NkE1
NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwgKi8sCisJCQkJMkVG
RjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRt
bCAqLywKKwkJCQkyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2Ny
ZWVuLmh0bWwgKi8sCiAJCQkJMkUxMzFDMTcxRDgzQTk3RTAwMUJBMzZDIC8qIHdpZGUtYXV0b3Bs
YXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovLAogCQkJCTJFNTRGNDBDMUQ3QkM4MzkwMDky
MUFERiAvKiBsYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRtbCAqLywKIAkJCQkyRTY5MUFG
MjFENzlFNzU0MDAxMjk0MDcgLyogbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1s
ICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2Ev
VmlkZW9Db250cm9sc01hbmFnZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQppbmRleCBkMDdkMmU0OTU4ODYxOWU0ZDI3
OTZiMGMxNTBiMmFmNmE5OTEwNzdmLi5iZDMxODYyYWU0MmVjYjQyY2E0MWYxMmI2YWQ2Zjg3ZmM5
OTIxZmI3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQpAQCAtMTE5LDYgKzExOSwxOCBA
QCAtICh2b2lkKWV4cGVjdENvbnRyb2xzTWFuYWdlcjooQk9PTClleHBlY3RDb250cm9sc01hbmFn
ZXIgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOgogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZVdhaXRpbmcpOwogfQogCistICh2b2lkKXdhaXRGb3JNZWRpYUNvbnRyb2xzVG9TaG93Cit7
CisgICAgd2hpbGUgKCFbc2VsZiBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXJdKQor
ICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5M
b29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUgZGlzdGFudFBhc3RdXTsKK30KKworLSAodm9pZCl3
YWl0Rm9yTWVkaWFDb250cm9sc1RvSGlkZQoreworICAgIHdoaWxlIChbc2VsZiBfaGFzQWN0aXZl
VmlkZW9Gb3JDb250cm9sc01hbmFnZXJdKQorICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVu
TG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUgZGlz
dGFudFBhc3RdXTsKK30KKwogLSAodm9pZClwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOihO
U1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbgogewogICAg
IFJldGFpblB0cjxNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tNZXNzYWdlSGFu
ZGxlciBhbGxvY10gaW5pdFdpdGhNZXNzYWdlOm1lc3NhZ2UgaGFuZGxlcjphY3Rpb25dKTsKQEAg
LTMxOSw5ICszMzEsMTMgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9s
c01hbmFnZXJMYXJnZUF1dG9wbGF5aW5nVmlkZW9TZWVrc0FmdGVyRW4KIHsKICAgICBSZXRhaW5Q
dHI8VmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyo+IHdlYlZpZXcgPSBzZXRVcFdlYlZp
ZXdGb3JUZXN0aW5nVmlkZW9Db250cm9sc01hbmFnZXIoTlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEw
MCkpOwogCi0gICAgLy8gU2luY2UgdGhlIHZpZGVvIGhhcyBlbmRlZCwgdGhlIGV4cGVjdGF0aW9u
IGlzIE5PIGV2ZW4gaWYgdGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxseSBzZWVrcyB0byB0aGUgYmVn
aW5uaW5nLgogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAibGFyZ2UtdmlkZW8tc2Vl
ay1hZnRlci1lbmRpbmciXTsKLSAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6Tk8g
YWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAiZW5kZWQiXTsKKworICAgIC8vIEltbWVkaWF0ZWx5IGFm
dGVyIGVuZGluZywgdGhlIGNvbnRyb2xzIHNob3VsZCBzdGlsbCBiZSBwcmVzZW50LgorICAgIFt3
ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpZRVMgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAi
ZW5kZWQiXTsKKworICAgIC8vIEF0IHNvbWUgcG9pbnQgaW4gdGhlIGZ1dHVyZSwgdGhleSBzaG91
bGQgYXV0b21hdGljYWxseSBoaWRlLgorICAgIFt3ZWJWaWV3IHdhaXRGb3JNZWRpYUNvbnRyb2xz
VG9IaWRlXTsKIH0KIAogVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01h
bmFnZXJMYXJnZUF1dG9wbGF5aW5nVmlkZW9TZWVrc0FuZFBsYXlzQWZ0ZXJFbmRpbmcpCkBAIC0z
ODUsNiArNDAxLDMzIEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNN
YW5hZ2VyVGVhcnNEb3duTWVkaWFDb250cm9sc09uRGVhbGxvYykKICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmZpbmlzaGVkVGVzdCk7CiB9CiAKK1RFU1QoVmlkZW9Db250cm9sc01hbmFn
ZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyRG9lc05vdFNob3dNZWRpYUNvbnRyb2xzRm9yT2Zmc2Ny
ZWVuVmlkZW8pCit7CisgICAgUmV0YWluUHRyPFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZp
ZXcqPiB3ZWJWaWV3ID0gc2V0VXBXZWJWaWV3Rm9yVGVzdGluZ1ZpZGVvQ29udHJvbHNNYW5hZ2Vy
KE5TTWFrZVJlY3QoMCwgMCwgMTAyNCwgNzY4KSk7CisKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBh
Z2VOYW1lZDpAImxhcmdlLXZpZGVvLW9mZnNjcmVlbiJdOworICAgIFt3ZWJWaWV3IGV4cGVjdENv
bnRyb2xzTWFuYWdlcjpOTyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6QCJtb3ZlZCJdOworfQorCitU
RVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xzTWFuYWdlcktlZXBzQ29udHJv
bHNTdGFibGVEdXJpbmdTcmNDaGFuZ2VPbkNsaWNrKQoreworICAgIFJldGFpblB0cjxWaWRlb0Nv
bnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3Kj4gd2ViVmlldyA9IHNldFVwV2ViVmlld0ZvclRlc3Rp
bmdWaWRlb0NvbnRyb2xzTWFuYWdlcihOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSk7CisKKyAg
ICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xp
Y2siXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVv
czoxXTsKKyAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50Ok5TTWFrZVBvaW50KDQwMCwgMzAw
KV07CisKKyAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2
aW5nTWVzc2FnZTpAImNoYW5nZWQiXTsKK30KKworVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwg
VmlkZW9Db250cm9sc01hbmFnZXJLZWVwc0NvbnRyb2xzU3RhYmxlRHVyaW5nU3JjQ2hhbmdlT25F
bmQpCit7CisgICAgUmV0YWluUHRyPFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcqPiB3
ZWJWaWV3ID0gc2V0VXBXZWJWaWV3Rm9yVGVzdGluZ1ZpZGVvQ29udHJvbHNNYW5hZ2VyKE5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApKTsKKworICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVk
OkAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQiXTsKKyAgICBbd2ViVmlldyBleHBlY3RDb250
cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAImNoYW5nZWQiXTsKK30KKwog
VEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJTbWFsbFZpZGVv
SW5NZWRpYURvY3VtZW50KQogewogICAgIFJldGFpblB0cjxWaWRlb0NvbnRyb2xzTWFuYWdlclRl
c3RXZWJWaWV3Kj4gd2ViVmlldyA9IHNldFVwV2ViVmlld0ZvclRlc3RpbmdWaWRlb0NvbnRyb2xz
TWFuYWdlcihOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKSk7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNs
aWNrLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2Ut
dmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzhjMWQyODY1MjUzYWU2MmQw
MjU2OGQxN2EzYjEwMDg2NDE0NTM4NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRt
bApAQCAtMCwwICsxLDMzIEBACis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIHZpZGVvIHsK
KyAgICAgICAgICAgIHdpZHRoOiA4MDBweDsKKyAgICAgICAgICAgIGhlaWdodDogNjAwcHg7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KKyAgICAgICAgZnVuY3Rpb24gY2hhbmdlU291cmNlKCkgeworICAgICAgICAgICAgdmFyIHZp
ZGVvID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsKKyAgICAgICAgICAgIHZpZGVv
LnNyYyA9ICJsYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCI7CisgICAgICAgICAgICB2aWRlby5w
bGF5KCk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJjaGFuZ2VkIik7CisgICAgICAgICAgICAg
ICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVQbGF5aW5nKCkgeworICAgICAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAg
ICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5w
b3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgewor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIDApOworICAgICAgICB9CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0b3BsYXkgb25wbGF5aW5nPWhh
bmRsZVBsYXlpbmcoKSBvbm1vdXNlZG93bj1jaGFuZ2VTb3VyY2UoKSBzcmM9ImxhcmdlLXZpZGVv
LXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQu
aHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRl
by1zb3VyY2Utb24tZW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZkY2JkYTVjOWUyMjI4MzMxM2I0MGE2
NjBiMzkyYjUzNTA5MzY4ZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwKQEAgLTAs
MCArMSwzNSBAQAorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICB2aWRlbyB7CisgICAgICAg
ICAgICB3aWR0aDogODAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDYwMHB4OworICAgICAgICB9
CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAg
ICAgIHZhciBoYXNCZWd1blBsYXlpbmdCZWZvcmUgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlv
biBjaGFuZ2VTb3VyY2UoKSB7CisgICAgICAgICAgICB2YXIgdmlkZW8gPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJ2aWRlbyIpOworICAgICAgICAgICAgdmlkZW8uc3JjID0gImxhcmdlLXZpZGVv
LXdpdGgtYXVkaW8ubXA0IjsKKyAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsKKyAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIu
cG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIGhhbmRsZVBsYXlpbmcoKSB7CisgICAgICAgICAgICBpZiAoaGFzQmVndW5QbGF5aW5n
QmVmb3JlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaGFzQmVndW5Q
bGF5aW5nQmVmb3JlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhciB2aWRlbyA9IGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoInZpZGVvIik7CisgICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHZp
ZGVvLmR1cmF0aW9uIC0gMC41OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8dmlkZW8gYXV0b3BsYXkgb25wbGF5aW5nPWhhbmRsZVBsYXlpbmcoKSBzcmM9
ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IiBvbmVuZGVkPWNoYW5nZVNvdXJjZSgpPjwvdmlk
ZW8+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUwYTY4NWZmNjU5YTk4ZDc3ZTE2NTQxZjFkOTAxMjMxN2I1MmQ1M2UKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1v
ZmZzY3JlZW4uaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICB2aWRlbyB7CisgICAgICAgICAgICB3aWR0aDog
NDgwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMyMHB4OworICAgICAgICAgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgICAgICB9CisgICAgICAgIC5vZmZzY3JlZW4geworICAgICAgICAgICAg
dG9wOiAtMzIwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGZ1bmN0aW9uIG1vdmVWaWRlb09mZnNjcmVlbigpIHsKKyAgICAgICAgICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIikuY2xhc3NMaXN0LmFkZCgib2Zmc2NyZWVuIik7CisgICAg
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdI
YW5kbGVyLnBvc3RNZXNzYWdlKCJtb3ZlZCIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkg
eworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIDApOworICAgICAgICB9CisgICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0b3BsYXkgb25wbGF5aW5n
PW1vdmVWaWRlb09mZnNjcmVlbigpPjxzb3VyY2Ugc3JjPSJsYXJnZS12aWRlby13aXRoLWF1ZGlv
Lm1wNCI+PC92aWRlbz4KKzwvYm9keT4KKzxodG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288712</attachid>
            <date>2016-09-13 12:03:47 -0700</date>
            <delta_ts>2016-09-14 16:16:49 -0700</delta_ts>
            <desc>Rebased against trunk</desc>
            <filename>bug-161914-20160913120113.patch</filename>
            <type>text/plain</type>
            <size>34193</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1ODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWVkODdmMjkwMjU5ZTc4
NTBkYmFhMTQwN2VkOWYzZDRkMDdkNjU4Ni4uMjEwY2U1MDQ0ODhiNTk2MjgxNzk0ZTYyNTljMTc5
MDIyNDUyMzNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE2LTA5LTEzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRy
b2xzIGJlaGF2ZSBzdHJhbmdlbHkgd2hlbiBjaGFuZ2luZyBtZWRpYSBzb3VyY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5MTQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI4MjI3ODA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZHJlc3NlcyBtZWRpYSBjb250cm9scyBmbGlja2VyaW5nIHdo
aWxlIGNoYW5naW5nIHRoZSBzb3VyY2Ugb2YgYSBtZWRpYSBlbGVtZW50LiBUbyBhY2NvbXBsaXNo
IHRoaXMsIHdlIG1ha2UKKyAgICAgICAgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIHRoZSBtZWRp
YSBjb250cm9scyBtYWluIGNvbnRlbnQgaGV1cmlzdGljOgorCisgICAgICAgIC0gUHJldmVudCBl
bGVtZW50cyB0aGF0IGFyZSBub3QgbW9zdGx5IHdpdGhpbiB0aGUgbWFpbmZyYW1lIHJlY3QgKG9y
IGVsZW1lbnRzIHdpdGggZW1wdHkgcmVjdHMpIGZyb20gc2hvd2luZworICAgICAgICAgIG1lZGlh
IGNvbnRyb2xzLiBNYW55IHdlYnNpdGVzIHRoYXQgcmVseSBvbiBzYW1lIGRvY3VtZW50IG5hdmln
YXRpb24gd2lsbCBtb3ZlIHZpZGVvcyBvZmZzY3JlZW4gd2hlbiBuYXZpZ2F0aW5nCisgICAgICAg
ICAgdG8gYSBzZWN0aW9uIG9mIHRoZWlyIHNpdGUgdGhhdCBkb2VzIG5vdCBwbGF5IG1lZGlhLiBX
aXRob3V0IHRoaXMgY2hlY2ssIHdlIHdvdWxkIG5vdCBrbm93IHRvIGhpZGUgYSB2aWRlbworICAg
ICAgICAgIGVsZW1lbnQgb24gY2VydGFpbiBwb3B1bGFyIHdlYnNpdGVzIHRoYXQgdXNlIHRoaXMg
dGVjaG5pcXVlLCBzaW5jZSB0aGUgdmlkZW8gaGFzIGJlZW4gaW50ZXJhY3RlZCB3aXRoIGluIHRo
ZQorICAgICAgICAgIHBhc3QuCisKKyAgICAgICAgLSBSYXRoZXIgdGhhbiBjaGVjayB3aGV0aGVy
IGEgbWVkaWEgZWxlbWVudCBjdXJyZW50bHkgaGFzIHZpZGVvL2F1ZGlvIHNvdXJjZXMsIGNoZWNr
IHdoZXRoZXIgaXQgaGFzIGV2ZXIgaGFkCisgICAgICAgICAgYXVkaW8uIE1hbnkgd2Vic2l0ZXMg
d2lsbCB1c2UgdGhlIHNhbWUgbWVkaWEgZWxlbWVudCBhY3Jvc3MgZGlmZmVyZW50IHZpZGVvcyBh
bmQgY2hhbmdlIG9ubHkgdGhlIHNvdXJjZSwgYW5kCisgICAgICAgICAgd2Ugc2hvdWxkIG5vdCBw
cmV2ZW50IGEgbWVkaWEgZWxlbWVudCBmcm9tIGhhdmluZyBtZWRpYSBjb250cm9scyBvbiBncm91
bmRzIG9mIGhhdmluZyBubyBhdWRpbyBvciB2aWRlbyBpbgorICAgICAgICAgIHRoaXMgY2FzZS4K
KworICAgICAgICAtIFJhdGhlciB0aGFuIGFkZCB1c2VyIGdlc3R1cmUgYW5kIHBsYXliYWNrIGJl
aGF2aW9yIHJlc3RyaWN0aW9ucyBiZWZvcmUgZGlzcGF0Y2hpbmcgYW4gZW5kZWQgZXZlbnQsIGFk
ZCBvbmx5CisgICAgICAgICAgdGhlIGdlc3R1cmUgcmVzdHJpY3Rpb24gaW1tZWRpYXRlbHksIGFu
ZCBhZGQgdGhlIHBsYXliYWNrIHJlc3RyaWN0aW9uIGFmdGVyIHdhaXRpbmcgZm9yIGEgZ3JhY2Ug
cGVyaW9kIG9ubHkgaWYKKyAgICAgICAgICB0aGUgdXNlciBoYXMgbm90IGludGVyYWN0ZWQgd2l0
aCB0aGUgdmlkZW8gc2luY2UgZW5kaW5nLCBhbmQgdGhlIHZpZGVvIGlzIG5vdCBjdXJyZW50bHkg
cGxheWluZyBvciBhYm91dCB0bworICAgICAgICAgIHBsYXkuIFRoaXMgZ2l2ZXMgdGhlIHVzZXIg
YSBjaGFuZ2UgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgY29udHJvbHMgd2hlbiBhIHZpZGVvIGVuZHMs
IGJ1dCBhbHNvIGFsbG93cyB0aGUgcGFnZQorICAgICAgICAgIHRvIGxvYWQgb3IgYmVnaW4gcGxh
eWluZyBhIG5ldyB2aWRlbyB3aXRoIHRoZSBzYW1lIG1lZGlhIGVsZW1lbnQgd2l0aG91dCB0aHJh
c2hpbmcgbWVkaWEgY29udHJvbCBzdGF0ZS4KKworICAgICAgICBBZGRzIDMgbmV3IEFQSSB0ZXN0
cy4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVmZmVyc0NoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFu
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YmVnaW5TY3J1YmJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWRkQmVoYXZpb3JSZXN0cmlj
dGlvbnNPbkVuZElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmlj
dGlvbnNUaW1lckZpcmVkKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc0V2ZXJIYWRBdWRpbyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNFdmVySGFkVmlkZW8pOgorICAgICAg
ICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xp
ZW50OjptZWRpYVBsYXllckFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6bm90aWZ5QWN0aXZlU291cmNlQnVmZmVyc0No
YW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6bm90aWZ5QWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpy
ZW1vdmVTb3VyY2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2YXRl
QVZGT2JqQzo6c291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKToKKwogMjAx
Ni0wOS0xMyAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBDcmFz
aCBhdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdu
b3JlZCBjb25zdCAgKyA1NTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5Nzg2ZWFkNzZkMDViNjdhMGZiMjg3NmE0
OWI5MzYwNjY2MWM3NWM0Li5jNGMzZmMyMDkzNTUyZDJkZDNkZGY0OTQ4OTU4ZjhiNzEyZGFlMjIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDktMTMgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWEgY29udHJvbHMgYmVoYXZl
IHN0cmFuZ2VseSB3aGVuIGNoYW5naW5nIG1lZGlhIHNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTkxNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjgyMjc4MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWxsb3dzIGEgd2ViIHBhZ2UgdG8gaGF2ZSBhbiBhY3RpdmUgdmlkZW8gZm9yIGEg
bWVkaWEgY29udHJvbCBtYW5hZ2VyIGV2ZW4gaWYgbm8gYXVkaW8gb3IgdmlkZW8gaXMgY3VycmVu
dGx5CisgICAgICAgIGJlaW5nIHByb2R1Y2VkLiBUaGlzIGlzIGJlY2F1c2UgdGhlIG1lZGlhIGVs
ZW1lbnQgbWF5IGJlIGluIGEgc3RhdGUgd2hlcmUgaXQgaXMgY2hhbmdpbmcgaXRzIHNvdXJjZSBh
bmQgZG9lcyBub3QKKyAgICAgICAgY3VycmVudGx5IGhhdmUgYSB2aWRlbyBvciBhdWRpbyB0cmFj
ay4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6Omhhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyKToKKwog
MjAxNi0wOS0xMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gR2V0IHJpZCBvZiBEYXRhT2JqZWN0R3RrOjpmb3JDbGlwYm9hcmQgYW5k
IGNsZWFudXAgcGFzdGVib2FyZCBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAppbmRleCA3ODA0YzNiYzI3NGRjZTVlNzU5ZDQyYzJhMDI4NTdlYWJiMTYxNjhmLi42
YjJkMjViNTBmMTEwZjZhMmIzNGRjMmUwYmM5ZmM5MWQ4MDA5ZjBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTE2Myw2ICsxNjMsOCBAQCBzdGF0aWMgY29u
c3QgZG91YmxlIFNlZWtUaW1lID0gMC4yOwogc3RhdGljIGNvbnN0IGRvdWJsZSBTY2FuUmVwZWF0
RGVsYXkgPSAxLjU7CiBzdGF0aWMgY29uc3QgZG91YmxlIFNjYW5NYXhpbXVtUmF0ZSA9IDg7CiAK
K3N0YXRpYyBjb25zdCBkb3VibGUgSGlkZU1lZGlhQ29udHJvbHNBZnRlckVuZGVkRGVsYXkgPSA2
OworCiBzdGF0aWMgdm9pZCBzZXRGbGFncyh1bnNpZ25lZCYgdmFsdWUsIHVuc2lnbmVkIGZsYWdz
KQogewogICAgIHZhbHVlIHw9IGZsYWdzOwpAQCAtNDI2LDYgKzQyOCw3IEBAIEhUTUxNZWRpYUVs
ZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtCiAgICAgLCBtX3Byb2dyZXNzRXZlbnRUaW1lcigqdGhpcywgJkhUTUxNZWRp
YUVsZW1lbnQ6OnByb2dyZXNzRXZlbnRUaW1lckZpcmVkKQogICAgICwgbV9wbGF5YmFja1Byb2dy
ZXNzVGltZXIoKnRoaXMsICZIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVGltZXJG
aXJlZCkKICAgICAsIG1fc2NhblRpbWVyKCp0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6c2NhblRp
bWVyRmlyZWQpCisgICAgLCBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmlj
dGlvbnNUaW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrQ29udHJvbHNNYW5h
Z2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUaW1lckZpcmVkKQogICAgICwgbV9wbGF5ZWRUaW1lUmFu
Z2VzKCkKICAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKCp0aGlzKQogICAgICwgbV9yZXF1ZXN0ZWRQ
bGF5YmFja1JhdGUoMSkKQEAgLTQ4Miw2ICs0ODUsOCBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1M
TWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bQogICAgICwgbV9jcmVhdGluZ0NvbnRyb2xzKGZhbHNlKQogICAgICwgbV9yZWNlaXZlZExheW91
dFNpemVDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmco
ZmFsc2UpCisgICAgLCBtX2hhc0V2ZXJIYWRBdWRpbyhmYWxzZSkKKyAgICAsIG1faGFzRXZlckhh
ZFZpZGVvKGZhbHNlKQogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpCiAgICAgLCBt
X21lZGlhQ29udHJvbHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvcihmYWxzZSkKICAgICAsIG1faGF2
ZVNldFVwQ2FwdGlvbkNvbnRhaW5lcihmYWxzZSkKQEAgLTYzMCw2ICs2MzUsNyBAQCBIVE1MTWVk
aWFFbGVtZW50Ojp+SFRNTE1lZGlhRWxlbWVudCgpCiAgICAgbV9wcm9taXNlVGFza1F1ZXVlLmNs
b3NlKCk7CiAgICAgbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVldWUuY2xvc2UoKTsKICAgICBt
X3VwZGF0ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyUXVldWUuY2xvc2UoKTsKKyAgICBtX3BsYXli
YWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNRdWV1ZS5jbG9zZSgpOwogCiAg
ICAgbV9jb21wbGV0ZWx5TG9hZGVkID0gdHJ1ZTsKIApAQCAtOTcyLDYgKzk3OCwxMiBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlTmV4dFNvdXJjZUNoaWxkKCkKICAgICBtX3BlbmRp
bmdBY3Rpb25UaW1lci5zdGFydE9uZVNob3QoMCk7CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZChjb25zdCBNZWRpYVBsYXll
ciopCit7CisgICAgbV9oYXNFdmVySGFkQXVkaW8gfD0gaGFzQXVkaW8oKTsKKyAgICBtX2hhc0V2
ZXJIYWRWaWRlbyB8PSBoYXNWaWRlbygpOworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNj
aGVkdWxlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUpCiB7CiAjaWYgTE9HX01F
RElBX0VWRU5UUwpAQCAtMjY3NSw2ICsyNjg3LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
ZWVrV2l0aFRvbGVyYW5jZShjb25zdCBNZWRpYVRpbWUmIGluVGltZSwgY29uc3QgTWVkaWFUaW0K
ICAgICAgICAgbV9zZWVrVGFza1F1ZXVlLmVucXVldWVUYXNrKHN0ZDo6YmluZCgmSFRNTE1lZGlh
RWxlbWVudDo6c2Vla1Rhc2ssIHRoaXMpKTsKICAgICB9IGVsc2UKICAgICAgICAgc2Vla1Rhc2so
KTsKKworICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmVGb3JN
ZWRpYSgpKQorICAgICAgICBtX21lZGlhU2Vzc2lvbi0+cmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlv
bihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9s
c01hbmFnZXIpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNrKCkKQEAgLTM0
OTEsNiArMzUwNiw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YmVnaW5TY3J1YmJpbmcoKQog
ICAgICAgICAgICAgc2V0UGF1c2VkSW50ZXJuYWwodHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CisK
KyAgICBtX21lZGlhU2Vzc2lvbi0+cmVtb3ZlQmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1l
bnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpOwog
fQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVuZFNjcnViYmluZygpCkBAIC00NTM3LDcgKzQ1
NTQsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmFkZEJlaGF2aW9yUmVzdHJpY3Rpb25zT25F
bmRJZk5lY2Vzc2FyeSgpCiAgICAgaWYgKGlzRnVsbHNjcmVlbigpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX21lZGlhU2Vzc2lvbi0+YWRkQmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1l
bnRTZXNzaW9uOjpSZXF1aXJlUGxheWJhY2tUb0NvbnRyb2xDb250cm9sc01hbmFnZXIgfCBNZWRp
YUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFn
ZXIpOworICAgIG1fbWVkaWFTZXNzaW9uLT5hZGRCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxl
bWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7
CisgICAgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGltZXIu
c3RvcCgpOworICAgIG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9u
c1RpbWVyLnN0YXJ0T25lU2hvdChIaWRlTWVkaWFDb250cm9sc0FmdGVyRW5kZWREZWxheSk7CiB9
CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJWb2x1bWVDaGFuZ2VkKE1lZGlh
UGxheWVyKikKQEAgLTQ3NzIsNiArNDc5MSw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVk
aWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQoTWVkaWFQbGF5ZXIqKQogICAgIGRvY3VtZW50
KCkudXBkYXRlSXNQbGF5aW5nTWVkaWEoKTsKICNlbmRpZgogCisgICAgbV9oYXNFdmVySGFkQXVk
aW8gfD0gaGFzQXVkaW8oKTsKKyAgICBtX2hhc0V2ZXJIYWRWaWRlbyB8PSBoYXNWaWRlbygpOwor
CiAgICAgZW5kUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKIH0KIApAQCAtNzMwMSw2
ICs3MzIzLDI1IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVVcGRhdGVQbGF5YmFj
a0NvbnRyb2xzTWFuYWdlcigpCiAgICAgICAgIG1fdXBkYXRlUGxheWJhY2tDb250cm9sc01hbmFn
ZXJRdWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBs
YXliYWNrQ29udHJvbHNNYW5hZ2VyLCB0aGlzKSk7CiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6cGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1RpbWVyRmlyZWQo
KQoreworICAgIGlmIChtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlv
bnNRdWV1ZS5oYXNQZW5kaW5nVGFza3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFt
X21lZGlhU2Vzc2lvbi0+aGFzQmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9u
OjpSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBSZWZQdHI8SFRNTE1lZGlhRWxlbWVudD4gcHJvdGVjdGVkVGhpcyh0aGlz
KTsKKyAgICBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNRdWV1
ZS5lbnF1ZXVlVGFzayhbcHJvdGVjdGVkVGhpc10gKCkgeworICAgICAgICBNZWRpYUVsZW1lbnRT
ZXNzaW9uKiBtZWRpYUVsZW1lbnRTZXNzaW9uID0gcHJvdGVjdGVkVGhpcy0+bV9tZWRpYVNlc3Np
b24uZ2V0KCk7CisgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5pc1BsYXlpbmcoKSB8fCBtZWRp
YUVsZW1lbnRTZXNzaW9uLT5zdGF0ZSgpID09IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpBdXRvcGxh
eWluZyB8fCBtZWRpYUVsZW1lbnRTZXNzaW9uLT5zdGF0ZSgpID09IFBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpQbGF5aW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1lZGlhRWxlbWVu
dFNlc3Npb24tPmFkZEJlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVx
dWlyZVBsYXliYWNrVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKKyAgICAgICAgcHJvdGVjdGVk
VGhpcy0+c2NoZWR1bGVVcGRhdGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpOworICAgIH0pOwor
fQorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZE92ZXJyaWRlQmFja2dyb3VuZExvYWRp
bmdSZXN0cmljdGlvbigpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggOTZjMDcwZDAw
NTkyMGY2N2U0MmM5YTNhOWFkNTQ2N2I0ZjZjNTg4ZS4uYTJkNjNjY2UwNWIzNDNlZjRmYWFkNjc4
N2NkYzAwMGU3Y2VjODc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
QEAgLTQ3Myw2ICs0NzMsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFdmVyTm90aWZpZWRBYm91
dFBsYXlpbmcoKSBjb25zdDsKICAgICB2b2lkIHNldFNob3VsZERlbGF5TG9hZEV2ZW50KGJvb2wp
OwogCisgICAgYm9vbCBoYXNFdmVySGFkQXVkaW8oKSBjb25zdCB7IHJldHVybiBtX2hhc0V2ZXJI
YWRBdWRpbzsgfQorICAgIGJvb2wgaGFzRXZlckhhZFZpZGVvKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNFdmVySGFkVmlkZW87IH0KKwogcHJvdGVjdGVkOgogICAgIEhUTUxNZWRpYUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAg
IHZpcnR1YWwgfkhUTUxNZWRpYUVsZW1lbnQoKTsKQEAgLTYyMCw2ICs2MjMsOCBAQCBwcml2YXRl
OgogICAgIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogbWVkaWFQbGF5ZXJHcmFwaGljc0RldmljZUFk
YXB0ZXIoY29uc3QgTWVkaWFQbGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgogCisgICAg
dm9pZCBtZWRpYVBsYXllckFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKGNvbnN0IE1lZGlhUGxh
eWVyKikgb3ZlcnJpZGU7CisKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkV2FpdEZvclJlc3Bv
bnNlVG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJIYW5kbGVQbGF5YmFja0NvbW1hbmQo
UGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSBjb21tYW5kKSBv
dmVycmlkZSB7IGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChjb21tYW5kLCBudWxscHRy
KTsgfQogICAgIFN0cmluZyBtZWRpYVBsYXllclNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigp
IGNvbnN0IG92ZXJyaWRlOwpAQCAtNzkxLDYgKzc5Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBw
YXVzZUFmdGVyRGV0YWNoZWRUYXNrKCk7CiAgICAgdm9pZCB1cGRhdGVQbGF5YmFja0NvbnRyb2xz
TWFuYWdlcigpOwogICAgIHZvaWQgc2NoZWR1bGVVcGRhdGVQbGF5YmFja0NvbnRyb2xzTWFuYWdl
cigpOworICAgIHZvaWQgcGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9u
c1RpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgdXBkYXRlUmVuZGVyZXIoKTsKIApAQCAtODA0LDEy
ICs4MTAsMTQgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX3Byb2dyZXNzRXZlbnRUaW1lcjsKICAg
ICBUaW1lciBtX3BsYXliYWNrUHJvZ3Jlc3NUaW1lcjsKICAgICBUaW1lciBtX3NjYW5UaW1lcjsK
KyAgICBUaW1lciBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNU
aW1lcjsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3NlZWtUYXNrUXVldWU7CiAgICAg
R2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9yZXNpemVUYXNrUXVldWU7CiAgICAgR2VuZXJpY1Rh
c2tRdWV1ZTxUaW1lcj4gbV9zaGFkb3dET01UYXNrUXVldWU7CiAgICAgR2VuZXJpY1Rhc2tRdWV1
ZTxUaW1lcj4gbV9wcm9taXNlVGFza1F1ZXVlOwogICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+
IG1fcGF1c2VBZnRlckRldGFjaGVkVGFza1F1ZXVlOwogICAgIEdlbmVyaWNUYXNrUXVldWU8VGlt
ZXI+IG1fdXBkYXRlUGxheWJhY2tDb250cm9sc01hbmFnZXJRdWV1ZTsKKyAgICBHZW5lcmljVGFz
a1F1ZXVlPFRpbWVyPiBtX3BsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlv
bnNRdWV1ZTsKICAgICBSZWZQdHI8VGltZVJhbmdlcz4gbV9wbGF5ZWRUaW1lUmFuZ2VzOwogICAg
IEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwogCkBAIC05NDYsNiArOTU0LDkg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcmVjZWl2ZWRMYXlvdXRTaXplQ2hhbmdlZCA6IDE7CiAg
ICAgYm9vbCBtX2hhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZyA6IDE7CiAKKyAgICBib29sIG1f
aGFzRXZlckhhZEF1ZGlvIDogMTsKKyAgICBib29sIG1faGFzRXZlckhhZFZpZGVvIDogMTsKKwog
I2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpCiAgICAgYm9vbCBtX21lZGlhQ29udHJv
bHNEZXBlbmRPblBhZ2VTY2FsZUZhY3RvciA6IDE7CiAgICAgYm9vbCBtX2hhdmVTZXRVcENhcHRp
b25Db250YWluZXIgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHAKaW5kZXggOWQ4Y2EyZGU5MDMwYTM2MjRiN2RlOGEzYTFkZmE3YzU4YzcyM2FkNy4uZjcy
MDdiZWFhOTYwMTcyY2JkNDllMDRlNzlkNmJlYzIzNzQwMmRkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCkBAIC01OSw2ICs1OSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGRvdWJsZSBlbGVtZW50TWFpbkNvbnRlbnRDaGVj
a0ludGVydmFsID0gLjI1MDsKIAorc3RhdGljIGJvb2wgaXNFbGVtZW50UmVjdE1vc3RseUluTWFp
bkZyYW1lKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmKTsKIHN0YXRpYyBib29sIGlzRWxlbWVudExh
cmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYsIE1lZGlhU2Vz
c2lvbk1haW5Db250ZW50UHVycG9zZSk7CiAKICNpZiAhTE9HX0RJU0FCTEVECkBAIC0yMjIsNyAr
MjIzLDEyIEBAIGJvb2wgTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdl
cigpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGlmICghbV9lbGVt
ZW50Lmhhc0F1ZGlvKCkpIHsKKyAgICBpZiAoIWlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFt
ZShtX2VsZW1lbnQpKSB7CisgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246
OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE5vdCBpbiBtYWluIGZy
YW1lIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIW1fZWxlbWVu
dC5oYXNBdWRpbygpICYmICFtX2VsZW1lbnQuaGFzRXZlckhhZEF1ZGlvKCkpIHsKICAgICAgICAg
TE9HKE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciAt
IHJldHVybmluZyBGQUxTRTogTm8gYXVkaW8iKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KQEAgLTI2OCw3ICsyNzQsNyBAQCBib29sIE1lZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dD
b250cm9sc01hbmFnZXIoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKCFtX2VsZW1lbnQuaGFzVmlkZW8oKSkgeworICAgICAgICBpZiAo
IW1fZWxlbWVudC5oYXNWaWRlbygpICYmICFtX2VsZW1lbnQuaGFzRXZlckhhZFZpZGVvKCkpIHsK
ICAgICAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxlbWVudFNlc3Npb246OmNhblNob3dDb250
cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE5vIHZpZGVvIik7CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTYzMCw2ICs2MzYsMjQgQEAgc3RhdGljIGJvb2wg
aXNNYWluQ29udGVudEZvclB1cnBvc2VzT2ZBdXRvcGxheShjb25zdCBIVE1MTWVkaWFFbGVtZW50
JiBlbGVtZW50KQogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBpc0VsZW1lbnRS
ZWN0TW9zdGx5SW5NYWluRnJhbWUoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKK3sK
KyAgICBhdXRvKiBkb2N1bWVudEZyYW1lID0gZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCk7Cisg
ICAgaWYgKCFkb2N1bWVudEZyYW1lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRv
IG1haW5GcmFtZVZpZXcgPSBkb2N1bWVudEZyYW1lLT5tYWluRnJhbWUoKS52aWV3KCk7CisgICAg
aWYgKCFtYWluRnJhbWVWaWV3KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBJbnRSZWN0
IG1haW5GcmFtZVJlY3RBZGp1c3RlZEZvclNjcm9sbFBvc2l0aW9uID0gSW50UmVjdCgtbWFpbkZy
YW1lVmlldy0+ZG9jdW1lbnRTY3JvbGxQb3NpdGlvblJlbGF0aXZlVG9WaWV3T3JpZ2luKCksIG1h
aW5GcmFtZVZpZXctPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICBJbnRSZWN0IGVsZW1lbnRSZWN0SW5N
YWluRnJhbWUgPSBlbGVtZW50LmNsaWVudFJlY3QoKTsKKyAgICBpbnQgdG90YWxFbGVtZW50QXJl
YSA9IGVsZW1lbnRSZWN0SW5NYWluRnJhbWUud2lkdGgoKSAqIGVsZW1lbnRSZWN0SW5NYWluRnJh
bWUuaGVpZ2h0KCk7CisgICAgZWxlbWVudFJlY3RJbk1haW5GcmFtZS5pbnRlcnNlY3QobWFpbkZy
YW1lUmVjdEFkanVzdGVkRm9yU2Nyb2xsUG9zaXRpb24pOworCisgICAgcmV0dXJuIGVsZW1lbnRS
ZWN0SW5NYWluRnJhbWUud2lkdGgoKSAqIGVsZW1lbnRSZWN0SW5NYWluRnJhbWUuaGVpZ2h0KCkg
PiB0b3RhbEVsZW1lbnRBcmVhIC8gMjsKK30KKwogc3RhdGljIGJvb2wgaXNFbGVtZW50TGFyZ2VS
ZWxhdGl2ZVRvTWFpbkZyYW1lKGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiB7CiAg
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5pbXVtUGVyY2VudGFnZU9mTWFpbkZyYW1lQXJlYUZv
ck1haW5Db250ZW50ID0gMC45OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmgKaW5kZXggNzZlNGRlYmVhODdmNTY1YzRiNDQwYTE2MGJiMGU0MTBhMTBl
YzY1MS4uZTI4OWNmZWZlYTZkYWFiMWI5YjJiYThiNGEyYThhMzkxMTdmNzMzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0xOTYsNiAr
MTk2LDggQEAgcHVibGljOgogICAgIC8vIGF2YWlsYWJpbGl0eSBvZiB0aGUgcGxhdGZvcm1MYXll
cigpLgogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKE1l
ZGlhUGxheWVyKikgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJBY3RpdmVTb3Vy
Y2VCdWZmZXJzQ2hhbmdlZChjb25zdCBNZWRpYVBsYXllciopIHsgfQorCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFw
dGVyKiBtZWRpYVBsYXllckdyYXBoaWNzRGV2aWNlQWRhcHRlcihjb25zdCBNZWRpYVBsYXllciop
IGNvbnN0IHsgcmV0dXJuIDA7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCAxMzdjZWZiMzlhZDUz
NzM3ZjRhMTRhZTYzMjk3OWIzNTg2N2VkOTliLi5hZDM4N2E3YTFlYmI3OWEzYmZjZWQ0NmIwZjYy
MjcwMjhlYzlmNjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMjc1LDYgKzI3NSw4IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlUcmFja01vZGVD
aGFuZ2VkKCkgeyB9CiAjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBY3RpdmVTb3Vy
Y2VCdWZmZXJzQ2hhbmdlZCgpIHsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaApp
bmRleCBmNzFmZTQ4NTliYTBjZjQyNDlmMWJmNjAxNDJjMmQ5M2ExYjUwYzYzLi4xMzcxNWI1NTBl
MmZkYjcyNDQ3YjUzZDZkM2EyN2VlNDFiZjdhNmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
aApAQCAtMTY1LDYgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJh
dGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgLy8gY2FsbGVkIHdoZW4gdGhlIHJl
bmRlcmluZyBzeXN0ZW0gZmxpcHMgdGhlIGludG8gb3Igb3V0IG9mIGFjY2VsZXJhdGVkIHJlbmRl
cmluZyBtb2RlLgogICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKSBv
dmVycmlkZTsKKyAgICB2b2lkIG5vdGlmeUFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCkgb3Zl
cnJpZGU7CiAKICAgICBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCBlM2IzY2Jl
MmU3Yjk5NzljMzMzOWU5MTc1OGJhMTg4M2ZlMGRiZTBjLi45ZjE0ZTJkNjczNDM5Y2QwZjJjY2Q4
MzM1NGViODg2MWQwNDA0NzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC01NTYs
NiArNTU2LDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjph
Y2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiAgICAgICAgIGRlc3Ryb3lMYXllcigp
OwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bm90aWZ5
QWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKQoreworICAgIG1fcGxheWVyLT5jbGllbnQoKS5t
ZWRpYVBsYXllckFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKG1fcGxheWVyKTsKK30KKwogTWVk
aWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjptb3ZpZUxvYWRUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN0
b3JlZFN0cmVhbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVBy
aXZhdGVBVkZPYmpDLm1tCmluZGV4IGNlMjVkY2JhYjY0YjY3N2U5MjUwZTdlZGM4Y2RiODI5ZDIy
M2QzNzQuLjUyNWJiOTA4MTdjZGNjYjYyY2FhMDU1ZTJhNzIwOTQyMGY0M2JiNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQpA
QCAtODMsOCArODMsMTAgQEAgdm9pZCBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpyZW1vdmVT
b3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZSogYnVmZmVyKQogICAgIEFTU0VSVChtX3Nv
dXJjZUJ1ZmZlcnMuY29udGFpbnMoYnVmZmVyKSk7CiAKICAgICBzaXplX3QgcG9zID0gbV9hY3Rp
dmVTb3VyY2VCdWZmZXJzLmZpbmQoYnVmZmVyKTsKLSAgICBpZiAocG9zICE9IG5vdEZvdW5kKQor
ICAgIGlmIChwb3MgIT0gbm90Rm91bmQpIHsKICAgICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJz
LnJlbW92ZShwb3MpOworICAgICAgICBtX3BsYXllci0+bm90aWZ5QWN0aXZlU291cmNlQnVmZmVy
c0NoYW5nZWQoKTsKKyAgICB9CiAKICAgICBwb3MgPSBtX3NvdXJjZUJ1ZmZlcnMuZmluZChidWZm
ZXIpOwogICAgIG1fc291cmNlQnVmZmVyc1twb3NdLT5jbGVhck1lZGlhU291cmNlKCk7CkBAIC0x
NDEsMTMgKzE0MywxNyBAQCB2b2lkIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6OnNlZWtDb21w
bGV0ZWQoKQogCiB2b2lkIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6OnNvdXJjZUJ1ZmZlclBy
aXZhdGVEaWRDaGFuZ2VBY3RpdmVTdGF0ZShTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyogYnVm
ZmVyLCBib29sIGFjdGl2ZSkKIHsKLSAgICBpZiAoYWN0aXZlICYmICFtX2FjdGl2ZVNvdXJjZUJ1
ZmZlcnMuY29udGFpbnMoYnVmZmVyKSkKKyAgICBpZiAoYWN0aXZlICYmICFtX2FjdGl2ZVNvdXJj
ZUJ1ZmZlcnMuY29udGFpbnMoYnVmZmVyKSkgewogICAgICAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZl
cnMuYXBwZW5kKGJ1ZmZlcik7CisgICAgICAgIG1fcGxheWVyLT5ub3RpZnlBY3RpdmVTb3VyY2VC
dWZmZXJzQ2hhbmdlZCgpOworICAgIH0KIAogICAgIGlmICghYWN0aXZlKSB7CiAgICAgICAgIHNp
emVfdCBwb3NpdGlvbiA9IG1fYWN0aXZlU291cmNlQnVmZmVycy5maW5kKGJ1ZmZlcik7Ci0gICAg
ICAgIGlmIChwb3NpdGlvbiAhPSBub3RGb3VuZCkKKyAgICAgICAgaWYgKHBvc2l0aW9uICE9IG5v
dEZvdW5kKSB7CiAgICAgICAgICAgICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMucmVtb3ZlKHBvc2l0
aW9uKTsKKyAgICAgICAgICAgIG1fcGxheWVyLT5ub3RpZnlBY3RpdmVTb3VyY2VCdWZmZXJzQ2hh
bmdlZCgpOworICAgICAgICB9CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDBmMzUzM2I2ZGYzZDRmZGI2NGIwYWQ5Mzg1ZjNjNzRlOTI1
MzQ2YzAuLjNhMGVkNzA2YjlmZmU1OWUyOTc3NzY5Yjc2MTkwN2Q4MTYyY2ZlMDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC02MzE5LDcgKzYzMTksNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6dmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKQogYm9v
bCBXZWJQYWdlUHJveHk6Omhhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyKCkgY29uc3QK
IHsKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCi0gICAgcmV0dXJuIG1fcGxh
eWJhY2tTZXNzaW9uTWFuYWdlciAmJiBtX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXItPmNvbnRyb2xz
TWFuYWdlckludGVyZmFjZSgpICYmIG1fbWVkaWFTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6Okhhc0F1
ZGlvT3JWaWRlbzsKKyAgICByZXR1cm4gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyICYmIG1fcGxh
eWJhY2tTZXNzaW9uTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCk7CiAjZWxzZQog
ICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGNiNTk5Y2I0ZGE5MDNjMzIyNTFjOTQ4ODMzYzY3MDA4MWJj
YmM2ZDEuLmI5ZjlkNTE5ZmU5ZWJlYTc4YTdjODI2NjM0N2Y4MTQ1ZDc1YzFhYzEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBA
QAorMjAxNi0wOS0xMyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwor
ICAgICAgICBNZWRpYSBjb250cm9scyBiZWhhdmUgc3RyYW5nZWx5IHdoZW4gY2hhbmdpbmcgbWVk
aWEgc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYxOTE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODIyNzgwNT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHRocmVlIG5ldyB1bml0
IHRlc3RzIHZlcmlmeWluZyB0aGF0IG1lZGlhIGNvbnRyb2xzIHJlbWFpbiBzdGFibGUgZHVyaW5n
IGNvbW1vbiBgc3JjYCBjaGFuZ2Ugc2NlbmFyaW9zLiBBbHNvCisgICAgICAgIHR3ZWFrcyBhbiBl
eGlzdGluZyB0ZXN0IHRvIGFjY291bnQgZm9yIG5ldyBgZW5kZWRgIGJlaGF2aW9yLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250
cm9sc01hbmFnZXIubW06CisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZp
ZXcgd2FpdEZvck1lZGlhQ29udHJvbHNUb1Nob3ddKToKKyAgICAgICAgKC1bVmlkZW9Db250cm9s
c01hbmFnZXJUZXN0V2ViVmlldyB3YWl0Rm9yTWVkaWFDb250cm9sc1RvSGlkZV0pOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291
cmNlLW9uLWVuZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbDogQWRkZWQuCisKIDIwMTYtMDkt
MTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggcG9zdC1s
YW5kaW5nIHJldmlldyBjb21tZW50cyBhZnRlciByMjA1Nzg3CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGE4N2Q0ZGNhYmM1NmQ5MmZiZWRjOWQ2ZDJjMTcxNjU0ZTk0NTVlYjQuLjBiZWY3NDhj
MTVkOWQzYmJhZDFkNTFiYTMyOTJhYmMxYjQ3NjE1NmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC03NSw2ICs3NSw5IEBACiAJCTJFNjkxQUYzMUQ3OUU3NUUwMDEyOTQwNyAvKiBsYXJnZS12
aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2OTFBRjIxRDc5RTc1NDAwMTI5NDA3IC8qIGxh
cmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbCAqLzsgfTsKIAkJMkU3NzY1Q0QxNkM0
RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDQzE2QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5tbSAq
LzsgfTsKIAkJMkU3NzY1Q0YxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDRTE2QzREODExMDBC
QTJCQjEgLyogbWFpbk1hYy5tbSAqLzsgfTsKKwkJMkVGRjA2QzMxRDg4NjIxRTAwMDRCQjMwIC8q
IGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkMyMUQ4ODYyMTIwMDA0QkIzMCAvKiBsYXJn
ZS12aWRlby1vZmZzY3JlZW4uaHRtbCAqLzsgfTsKKwkJMkVGRjA2QzUxRDg4Njc3NjAwMDRCQjMw
IC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZDNDFEODg2NzcwMDAwNEJC
MzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovOyB9OworCQkyRUZGMDZD
NzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZD
NjFEODg2QTU2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLzsg
fTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVu
ZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMz
QkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAg
Ki87IH07CiAJCTMzREM4OTEyMTQxOTU1RkUwMDc0N0VGNyAvKiBzaW1wbGUtaWZyYW1lLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNE
Qzg5MEUxNDE5NTM5MzAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCAqLzsgfTsKIAkJMzNE
Qzg5MTQxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxs
YmFja19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzNEQzg5MTMxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVk
aXJlY3RDYWxsYmFja19CdW5kbGUuY3BwICovOyB9OwpAQCAtNTI5LDYgKzUzMiw5IEBACiAJCQlk
c3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0g
NzsKIAkJCWZpbGVzID0gKAorCQkJCTJFRkYwNkM3MUQ4ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2Ut
dmlkZW8tc291cmNlLW9uLWVuZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTJFRkYw
NkM1MUQ4ODY3NzYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJMkVGRjA2QzMxRDg4NjIxRTAwMDRCQjMwIC8qIGxh
cmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFMTMx
QzE4MUQ4M0E5OEEwMDFCQTM2QyAvKiB3aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8u
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRTU0RjQwRDFEN0JDODQyMDA5MjFBREYg
LyogbGFyZ2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJMkU2OTFBRjMxRDc5RTc1RTAwMTI5NDA3IC8qIGxhcmdlLXZpZGVvLXBsYXlpbmctc2Ny
b2xsLWF3YXkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTc3MSw2ICs3NzcsOSBAQAog
CQkyRTY5MUFGMjFENzlFNzU0MDAxMjk0MDcgLyogbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwt
YXdheS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLXBsYXlp
bmctc2Nyb2xsLWF3YXkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNzc2
NUNDMTZDNEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gbWFpbklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkU3NzY1Q0UxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBtYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2Ny
ZWVuLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tb2Zmc2Ny
ZWVuLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZDNDFEODg2Nzcw
MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBj
aGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gImNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMgLyogUHJldmVudEVtcHR5VXNlckFn
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXZlbnRFbXB0
eVVzZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzQkU1QUY0MTM3
QjVBNkMwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzM0JFNUFGODEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3Zl
QWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTQyNiw2ICsxNDM1LDkgQEAKIAkJQTE2RjY2QjgxQzQwRTlFMTAwQkQ0RDI0IC8q
IFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5k
Lmh0bWwgKi8sCisJCQkJMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1z
b3VyY2Utb24tY2xpY2suaHRtbCAqLywKKwkJCQkyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyog
bGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgKi8sCiAJCQkJMkUxMzFDMTcxRDgzQTk3RTAwMUJB
MzZDIC8qIHdpZGUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovLAogCQkJCTJF
NTRGNDBDMUQ3QkM4MzkwMDkyMUFERiAvKiBsYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRt
bCAqLywKIAkJCQkyRTY5MUFGMjFENzlFNzU0MDAxMjk0MDcgLyogbGFyZ2UtdmlkZW8tcGxheWlu
Zy1zY3JvbGwtYXdheS5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQppbmRleCBk
MDdkMmU0OTU4ODYxOWU0ZDI3OTZiMGMxNTBiMmFmNmE5OTEwNzdmLi5iZDMxODYyYWU0MmVjYjQy
Y2E0MWYxMmI2YWQ2Zjg3ZmM5OTIxZmI3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQpA
QCAtMTE5LDYgKzExOSwxOCBAQCAtICh2b2lkKWV4cGVjdENvbnRyb2xzTWFuYWdlcjooQk9PTCll
eHBlY3RDb250cm9sc01hbmFnZXIgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOgogICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZVdhaXRpbmcpOwogfQogCistICh2b2lkKXdhaXRGb3JNZWRp
YUNvbnRyb2xzVG9TaG93Cit7CisgICAgd2hpbGUgKCFbc2VsZiBfaGFzQWN0aXZlVmlkZW9Gb3JD
b250cm9sc01hbmFnZXJdKQorICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVu
TW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUgZGlzdGFudFBhc3Rd
XTsKK30KKworLSAodm9pZCl3YWl0Rm9yTWVkaWFDb250cm9sc1RvSGlkZQoreworICAgIHdoaWxl
IChbc2VsZiBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXJdKQorICAgICAgICBbW05T
UnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBiZWZv
cmVEYXRlOltOU0RhdGUgZGlzdGFudFBhc3RdXTsKK30KKwogLSAodm9pZClwZXJmb3JtQWZ0ZXJS
ZWNlaXZpbmdNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9j
a190KWFjdGlvbgogewogICAgIFJldGFpblB0cjxNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFk
b3B0TlMoW1tNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdFdpdGhNZXNzYWdlOm1lc3NhZ2UgaGFu
ZGxlcjphY3Rpb25dKTsKQEAgLTMxOSw5ICszMzEsMTMgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFu
YWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJMYXJnZUF1dG9wbGF5aW5nVmlkZW9TZWVrc0FmdGVy
RW4KIHsKICAgICBSZXRhaW5QdHI8VmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyo+IHdl
YlZpZXcgPSBzZXRVcFdlYlZpZXdGb3JUZXN0aW5nVmlkZW9Db250cm9sc01hbmFnZXIoTlNNYWtl
UmVjdCgwLCAwLCAxMDAsIDEwMCkpOwogCi0gICAgLy8gU2luY2UgdGhlIHZpZGVvIGhhcyBlbmRl
ZCwgdGhlIGV4cGVjdGF0aW9uIGlzIE5PIGV2ZW4gaWYgdGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxs
eSBzZWVrcyB0byB0aGUgYmVnaW5uaW5nLgogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVk
OkAibGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmciXTsKLSAgICBbd2ViVmlldyBleHBlY3RD
b250cm9sc01hbmFnZXI6Tk8gYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAiZW5kZWQiXTsKKworICAg
IC8vIEltbWVkaWF0ZWx5IGFmdGVyIGVuZGluZywgdGhlIGNvbnRyb2xzIHNob3VsZCBzdGlsbCBi
ZSBwcmVzZW50LgorICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpZRVMgYWZ0ZXJS
ZWNlaXZpbmdNZXNzYWdlOkAiZW5kZWQiXTsKKworICAgIC8vIEF0IHNvbWUgcG9pbnQgaW4gdGhl
IGZ1dHVyZSwgdGhleSBzaG91bGQgYXV0b21hdGljYWxseSBoaWRlLgorICAgIFt3ZWJWaWV3IHdh
aXRGb3JNZWRpYUNvbnRyb2xzVG9IaWRlXTsKIH0KIAogVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdl
ciwgVmlkZW9Db250cm9sc01hbmFnZXJMYXJnZUF1dG9wbGF5aW5nVmlkZW9TZWVrc0FuZFBsYXlz
QWZ0ZXJFbmRpbmcpCkBAIC0zODUsNiArNDAxLDMzIEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFn
ZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVhcnNEb3duTWVkaWFDb250cm9sc09uRGVhbGxvYykK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkVGVzdCk7CiB9CiAKK1RFU1Qo
VmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyRG9lc05vdFNob3dNZWRp
YUNvbnRyb2xzRm9yT2Zmc2NyZWVuVmlkZW8pCit7CisgICAgUmV0YWluUHRyPFZpZGVvQ29udHJv
bHNNYW5hZ2VyVGVzdFdlYlZpZXcqPiB3ZWJWaWV3ID0gc2V0VXBXZWJWaWV3Rm9yVGVzdGluZ1Zp
ZGVvQ29udHJvbHNNYW5hZ2VyKE5TTWFrZVJlY3QoMCwgMCwgMTAyNCwgNzY4KSk7CisKKyAgICBb
d2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvLW9mZnNjcmVlbiJdOworICAg
IFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpOTyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6
QCJtb3ZlZCJdOworfQorCitURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xz
TWFuYWdlcktlZXBzQ29udHJvbHNTdGFibGVEdXJpbmdTcmNDaGFuZ2VPbkNsaWNrKQoreworICAg
IFJldGFpblB0cjxWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3Kj4gd2ViVmlldyA9IHNl
dFVwV2ViVmlld0ZvclRlc3RpbmdWaWRlb0NvbnRyb2xzTWFuYWdlcihOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSk7CisKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImNoYW5nZS12
aWRlby1zb3VyY2Utb24tY2xpY2siXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdp
dGhBdXRvcGxheWluZ1ZpZGVvczoxXTsKKyAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50Ok5T
TWFrZVBvaW50KDQwMCwgMzAwKV07CisKKyAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFn
ZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAImNoYW5nZWQiXTsKK30KKworVEVTVChWaWRl
b0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJLZWVwc0NvbnRyb2xzU3RhYmxl
RHVyaW5nU3JjQ2hhbmdlT25FbmQpCit7CisgICAgUmV0YWluUHRyPFZpZGVvQ29udHJvbHNNYW5h
Z2VyVGVzdFdlYlZpZXcqPiB3ZWJWaWV3ID0gc2V0VXBXZWJWaWV3Rm9yVGVzdGluZ1ZpZGVvQ29u
dHJvbHNNYW5hZ2VyKE5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApKTsKKworICAgIFt3ZWJWaWV3
IGxvYWRUZXN0UGFnZU5hbWVkOkAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQiXTsKKyAgICBb
d2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpA
ImNoYW5nZWQiXTsKK30KKwogVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9s
c01hbmFnZXJTbWFsbFZpZGVvSW5NZWRpYURvY3VtZW50KQogewogICAgIFJldGFpblB0cjxWaWRl
b0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3Kj4gd2ViVmlldyA9IHNldFVwV2ViVmlld0ZvclRl
c3RpbmdWaWRlb0NvbnRyb2xzTWFuYWdlcihOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2Ut
dmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzhjMWQyODY1MjUzYWU2MmQwMjU2OGQxN2EzYjEwMDg2NDE0NTM4NAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1z
b3VyY2Utb24tY2xpY2suaHRtbApAQCAtMCwwICsxLDMzIEBACis8aGVhZD4KKyAgICA8c3R5bGU+
CisgICAgICAgIHZpZGVvIHsKKyAgICAgICAgICAgIHdpZHRoOiA4MDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogNjAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gY2hhbmdlU291cmNlKCkgewor
ICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsK
KyAgICAgICAgICAgIHZpZGVvLnNyYyA9ICJsYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCI7Cisg
ICAgICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJjaGFuZ2Vk
Iik7CisgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVQbGF5aW5n
KCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAg
ICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIDApOwor
ICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0
b3BsYXkgb25wbGF5aW5nPWhhbmRsZVBsYXlpbmcoKSBvbm1vdXNlZG93bj1jaGFuZ2VTb3VyY2Uo
KSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZp
ZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZkY2Jk
YTVjOWUyMjI4MzMxM2I0MGE2NjBiMzkyYjUzNTA5MzY4ZAotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Ut
b24tZW5kLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAg
ICB2aWRlbyB7CisgICAgICAgICAgICB3aWR0aDogODAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6
IDYwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CisgICAgICAgIHZhciBoYXNCZWd1blBsYXlpbmdCZWZvcmUgPSBmYWxzZTsK
KworICAgICAgICBmdW5jdGlvbiBjaGFuZ2VTb3VyY2UoKSB7CisgICAgICAgICAgICB2YXIgdmlk
ZW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworICAgICAgICAgICAgdmlkZW8u
c3JjID0gImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IjsKKyAgICAgICAgICAgIHZpZGVvLnBs
YXkoKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKKyAgICAgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVBsYXlpbmcoKSB7CisgICAgICAgICAgICBp
ZiAoaGFzQmVndW5QbGF5aW5nQmVmb3JlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAgICAgaGFzQmVndW5QbGF5aW5nQmVmb3JlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhciB2
aWRlbyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7CisgICAgICAgICAgICB2aWRl
by5jdXJyZW50VGltZSA9IHZpZGVvLmR1cmF0aW9uIC0gMC41OworICAgICAgICB9CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0b3BsYXkgb25wbGF5aW5nPWhh
bmRsZVBsYXlpbmcoKSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IiBvbmVuZGVkPWNo
YW5nZVNvdXJjZSgpPjwvdmlkZW8+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVl
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUwYTY4NWZmNjU5YTk4ZDc3ZTE2NTQxZjFkOTAxMjMxN2I1MmQ1
M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICB2aWRlbyB7Cisg
ICAgICAgICAgICB3aWR0aDogNDgwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMyMHB4OworICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB9CisgICAgICAgIC5vZmZzY3Jl
ZW4geworICAgICAgICAgICAgdG9wOiAtMzIwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIG1vdmVWaWRlb09mZnNjcmVlbigpIHsKKyAg
ICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIikuY2xhc3NMaXN0LmFkZCgi
b2Zmc2NyZWVuIik7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJtb3ZlZCIpOworICAgICAgICAg
ICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIDAp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8g
YXV0b3BsYXkgb25wbGF5aW5nPW1vdmVWaWRlb09mZnNjcmVlbigpPjxzb3VyY2Ugc3JjPSJsYXJn
ZS12aWRlby13aXRoLWF1ZGlvLm1wNCI+PC92aWRlbz4KKzwvYm9keT4KKzxodG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288881</attachid>
            <date>2016-09-14 16:16:52 -0700</date>
            <delta_ts>2016-09-14 16:21:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-161914-20160914161415.patch</filename>
            <type>text/plain</type>
            <size>34091</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4Zjc0M2VhNDc0MjQ4
ZTdlOTY5ZjVjMDRlNjY4YmE3Y2YyY2I4ZS4uM2VkZGYzOWJmY2FhNTYzMDg3MWM0OTgxNTc4YmZh
Njc4NGM4OTJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE2LTA5LTEzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRy
b2xzIGJlaGF2ZSBzdHJhbmdlbHkgd2hlbiBjaGFuZ2luZyBtZWRpYSBzb3VyY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5MTQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI4MjI3ODA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZHJlc3NlcyBtZWRpYSBjb250cm9scyBmbGlja2VyaW5nIHdo
aWxlIGNoYW5naW5nIHRoZSBzb3VyY2Ugb2YgYSBtZWRpYSBlbGVtZW50LiBUbyBhY2NvbXBsaXNo
IHRoaXMsIHdlIG1ha2UKKyAgICAgICAgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIHRoZSBtZWRp
YSBjb250cm9scyBtYWluIGNvbnRlbnQgaGV1cmlzdGljOgorCisgICAgICAgIC0gUHJldmVudCBl
bGVtZW50cyB0aGF0IGFyZSBub3QgbW9zdGx5IHdpdGhpbiB0aGUgbWFpbmZyYW1lIHJlY3QgKG9y
IGVsZW1lbnRzIHdpdGggZW1wdHkgcmVjdHMpIGZyb20gc2hvd2luZworICAgICAgICAgIG1lZGlh
IGNvbnRyb2xzLiBNYW55IHdlYnNpdGVzIHRoYXQgcmVseSBvbiBzYW1lIGRvY3VtZW50IG5hdmln
YXRpb24gd2lsbCBtb3ZlIHZpZGVvcyBvZmZzY3JlZW4gd2hlbiBuYXZpZ2F0aW5nCisgICAgICAg
ICAgdG8gYSBzZWN0aW9uIG9mIHRoZWlyIHNpdGUgdGhhdCBkb2VzIG5vdCBwbGF5IG1lZGlhLiBX
aXRob3V0IHRoaXMgY2hlY2ssIHdlIHdvdWxkIG5vdCBrbm93IHRvIGhpZGUgYSB2aWRlbworICAg
ICAgICAgIGVsZW1lbnQgb24gY2VydGFpbiBwb3B1bGFyIHdlYnNpdGVzIHRoYXQgdXNlIHRoaXMg
dGVjaG5pcXVlLCBzaW5jZSB0aGUgdmlkZW8gaGFzIGJlZW4gaW50ZXJhY3RlZCB3aXRoIGluIHRo
ZQorICAgICAgICAgIHBhc3QuCisKKyAgICAgICAgLSBSYXRoZXIgdGhhbiBjaGVjayB3aGV0aGVy
IGEgbWVkaWEgZWxlbWVudCBjdXJyZW50bHkgaGFzIHZpZGVvL2F1ZGlvIHNvdXJjZXMsIGNoZWNr
IHdoZXRoZXIgaXQgaGFzIGV2ZXIgaGFkCisgICAgICAgICAgYXVkaW8uIE1hbnkgd2Vic2l0ZXMg
d2lsbCB1c2UgdGhlIHNhbWUgbWVkaWEgZWxlbWVudCBhY3Jvc3MgZGlmZmVyZW50IHZpZGVvcyBh
bmQgY2hhbmdlIG9ubHkgdGhlIHNvdXJjZSwgYW5kCisgICAgICAgICAgd2Ugc2hvdWxkIG5vdCBw
cmV2ZW50IGEgbWVkaWEgZWxlbWVudCBmcm9tIGhhdmluZyBtZWRpYSBjb250cm9scyBvbiBncm91
bmRzIG9mIGhhdmluZyBubyBhdWRpbyBvciB2aWRlbyBpbgorICAgICAgICAgIHRoaXMgY2FzZS4K
KworICAgICAgICAtIFJhdGhlciB0aGFuIGFkZCB1c2VyIGdlc3R1cmUgYW5kIHBsYXliYWNrIGJl
aGF2aW9yIHJlc3RyaWN0aW9ucyBiZWZvcmUgZGlzcGF0Y2hpbmcgYW4gZW5kZWQgZXZlbnQsIGFk
ZCBvbmx5CisgICAgICAgICAgdGhlIGdlc3R1cmUgcmVzdHJpY3Rpb24gaW1tZWRpYXRlbHksIGFu
ZCBhZGQgdGhlIHBsYXliYWNrIHJlc3RyaWN0aW9uIGFmdGVyIHdhaXRpbmcgZm9yIGEgZ3JhY2Ug
cGVyaW9kIG9ubHkgaWYKKyAgICAgICAgICB0aGUgdXNlciBoYXMgbm90IGludGVyYWN0ZWQgd2l0
aCB0aGUgdmlkZW8gc2luY2UgZW5kaW5nLCBhbmQgdGhlIHZpZGVvIGlzIG5vdCBjdXJyZW50bHkg
cGxheWluZyBvciBhYm91dCB0bworICAgICAgICAgIHBsYXkuIFRoaXMgZ2l2ZXMgdGhlIHVzZXIg
YSBjaGFuY2UgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgY29udHJvbHMgd2hlbiBhIHZpZGVvIGVuZHMs
IGJ1dCBhbHNvIGFsbG93cyB0aGUgcGFnZQorICAgICAgICAgIHRvIGxvYWQgb3IgYmVnaW4gcGxh
eWluZyBhIG5ldyB2aWRlbyB3aXRoIHRoZSBzYW1lIG1lZGlhIGVsZW1lbnQgd2l0aG91dCB0aHJh
c2hpbmcgbWVkaWEgY29udHJvbCBzdGF0ZS4KKworICAgICAgICBBZGRzIDMgbmV3IEFQSSB0ZXN0
cy4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVmZmVyc0NoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFu
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YmVnaW5TY3J1YmJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWRkQmVoYXZpb3JSZXN0cmlj
dGlvbnNPbkVuZElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmlj
dGlvbnNUaW1lckZpcmVkKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc0V2ZXJIYWRBdWRpbyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoYXNFdmVySGFkVmlkZW8pOgorICAgICAg
ICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xp
ZW50OjptZWRpYVBsYXllckFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6bm90aWZ5QWN0aXZlU291cmNlQnVmZmVyc0No
YW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6bm90aWZ5QWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpy
ZW1vdmVTb3VyY2VCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2YXRl
QVZGT2JqQzo6c291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKToKKwogMjAx
Ni0wOS0xNCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWVkaWFTdHJlYW1dIE1pbm9yIGNsZWFudXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjNWZjYjQ5OGQyMjE3
YjM0NWIxNDQyMjRiMWExODNhZjc0OGU5ZDAyLi5lZDIzOWYyZjEyNTIxN2RmOTAxZDFhNTgxNTI3
MTgxZDNkMzFhODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDktMTMgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWEgY29u
dHJvbHMgYmVoYXZlIHN0cmFuZ2VseSB3aGVuIGNoYW5naW5nIG1lZGlhIHNvdXJjZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTkxNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjgyMjc4MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWxsb3dzIGEgd2ViIHBhZ2UgdG8gaGF2ZSBhbiBhY3RpdmUg
dmlkZW8gZm9yIGEgbWVkaWEgY29udHJvbCBtYW5hZ2VyIGV2ZW4gaWYgbm8gYXVkaW8gb3Igdmlk
ZW8gaXMgY3VycmVudGx5CisgICAgICAgIGJlaW5nIHByb2R1Y2VkLiBUaGlzIGlzIGJlY2F1c2Ug
dGhlIG1lZGlhIGVsZW1lbnQgbWF5IGJlIGluIGEgc3RhdGUgd2hlcmUgaXQgaXMgY2hhbmdpbmcg
aXRzIHNvdXJjZSBhbmQgZG9lcyBub3QKKyAgICAgICAgY3VycmVudGx5IGhhdmUgYSB2aWRlbyBv
ciBhdWRpbyB0cmFjay4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Omhhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNN
YW5hZ2VyKToKKwogMjAxNi0wOS0xNCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIG5lZWRzUGxhaW5UZXh0UXVpcmsgYW5kIHNlbmQgaXQgdG8gdGhlIFVJUHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNzgwNGMz
YmMyNzRkY2U1ZTc1OWQ0MmMyYTAyODU3ZWFiYjE2MTY4Zi4uNmIyZDI1YjUwZjExMGY2YTJiMzRk
YzJlMGJjOWZjOTFkODAwOWYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwCkBAIC0xNjMsNiArMTYzLDggQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBTZWVrVGltZSA9
IDAuMjsKIHN0YXRpYyBjb25zdCBkb3VibGUgU2NhblJlcGVhdERlbGF5ID0gMS41Owogc3RhdGlj
IGNvbnN0IGRvdWJsZSBTY2FuTWF4aW11bVJhdGUgPSA4OwogCitzdGF0aWMgY29uc3QgZG91Ymxl
IEhpZGVNZWRpYUNvbnRyb2xzQWZ0ZXJFbmRlZERlbGF5ID0gNjsKKwogc3RhdGljIHZvaWQgc2V0
RmxhZ3ModW5zaWduZWQmIHZhbHVlLCB1bnNpZ25lZCBmbGFncykKIHsKICAgICB2YWx1ZSB8PSBm
bGFnczsKQEAgLTQyNiw2ICs0MjgsNyBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogICAgICwg
bV9wcm9ncmVzc0V2ZW50VGltZXIoKnRoaXMsICZIVE1MTWVkaWFFbGVtZW50Ojpwcm9ncmVzc0V2
ZW50VGltZXJGaXJlZCkKICAgICAsIG1fcGxheWJhY2tQcm9ncmVzc1RpbWVyKCp0aGlzLCAmSFRN
TE1lZGlhRWxlbWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQpCiAgICAgLCBtX3NjYW5U
aW1lcigqdGhpcywgJkhUTUxNZWRpYUVsZW1lbnQ6OnNjYW5UaW1lckZpcmVkKQorICAgICwgbV9w
bGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGltZXIoKnRoaXMsICZI
VE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rp
b25zVGltZXJGaXJlZCkKICAgICAsIG1fcGxheWVkVGltZVJhbmdlcygpCiAgICAgLCBtX2FzeW5j
RXZlbnRRdWV1ZSgqdGhpcykKICAgICAsIG1fcmVxdWVzdGVkUGxheWJhY2tSYXRlKDEpCkBAIC00
ODIsNiArNDg1LDggQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fY3JlYXRpbmdD
b250cm9scyhmYWxzZSkKICAgICAsIG1fcmVjZWl2ZWRMYXlvdXRTaXplQ2hhbmdlZChmYWxzZSkK
ICAgICAsIG1faGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nKGZhbHNlKQorICAgICwgbV9oYXNF
dmVySGFkQXVkaW8oZmFsc2UpCisgICAgLCBtX2hhc0V2ZXJIYWRWaWRlbyhmYWxzZSkKICNpZiBF
TkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKQogICAgICwgbV9tZWRpYUNvbnRyb2xzRGVwZW5k
T25QYWdlU2NhbGVGYWN0b3IoZmFsc2UpCiAgICAgLCBtX2hhdmVTZXRVcENhcHRpb25Db250YWlu
ZXIoZmFsc2UpCkBAIC02MzAsNiArNjM1LDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRp
YUVsZW1lbnQoKQogICAgIG1fcHJvbWlzZVRhc2tRdWV1ZS5jbG9zZSgpOwogICAgIG1fcGF1c2VB
ZnRlckRldGFjaGVkVGFza1F1ZXVlLmNsb3NlKCk7CiAgICAgbV91cGRhdGVQbGF5YmFja0NvbnRy
b2xzTWFuYWdlclF1ZXVlLmNsb3NlKCk7CisgICAgbV9wbGF5YmFja0NvbnRyb2xzTWFuYWdlckJl
aGF2aW9yUmVzdHJpY3Rpb25zUXVldWUuY2xvc2UoKTsKIAogICAgIG1fY29tcGxldGVseUxvYWRl
ZCA9IHRydWU7CiAKQEAgLTk3Miw2ICs5NzgsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
Y2hlZHVsZU5leHRTb3VyY2VDaGlsZCgpCiAgICAgbV9wZW5kaW5nQWN0aW9uVGltZXIuc3RhcnRP
bmVTaG90KDApOwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQWN0aXZl
U291cmNlQnVmZmVyc0NoYW5nZWQoY29uc3QgTWVkaWFQbGF5ZXIqKQoreworICAgIG1faGFzRXZl
ckhhZEF1ZGlvIHw9IGhhc0F1ZGlvKCk7CisgICAgbV9oYXNFdmVySGFkVmlkZW8gfD0gaGFzVmlk
ZW8oKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnROYW1lKQogewogI2lmIExPR19NRURJQV9FVkVOVFMKQEAgLTI2NzUs
NiArMjY4Nyw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2Vla1dpdGhUb2xlcmFuY2UoY29u
c3QgTWVkaWFUaW1lJiBpblRpbWUsIGNvbnN0IE1lZGlhVGltCiAgICAgICAgIG1fc2Vla1Rhc2tR
dWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJkhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNrLCB0
aGlzKSk7CiAgICAgfSBlbHNlCiAgICAgICAgIHNlZWtUYXNrKCk7CisKKyAgICBpZiAoU2NyaXB0
Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKSkKKyAgICAgICAgbV9t
ZWRpYVNlc3Npb24tPnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lv
bjo6UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKIH0KIAogdm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjpzZWVrVGFzaygpCkBAIC0zNDkxLDYgKzM1MDYsOCBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmJlZ2luU2NydWJiaW5nKCkKICAgICAgICAgICAgIHNldFBhdXNl
ZEludGVybmFsKHRydWUpOwogICAgICAgICB9CiAgICAgfQorCisgICAgbV9tZWRpYVNlc3Npb24t
PnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVz
ZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjplbmRTY3J1YmJpbmcoKQpAQCAtNDUzNyw3ICs0NTU0LDkgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjphZGRCZWhhdmlvclJlc3RyaWN0aW9uc09uRW5kSWZOZWNlc3NhcnkoKQogICAg
IGlmIChpc0Z1bGxzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9tZWRpYVNlc3Np
b24tPmFkZEJlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVBs
YXliYWNrVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyIHwgTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVx
dWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKKyAgICBtX21lZGlhU2Vz
c2lvbi0+YWRkQmVoYXZpb3JSZXN0cmljdGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJl
VXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpOworICAgIG1fcGxheWJhY2tDb250
cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1RpbWVyLnN0b3AoKTsKKyAgICBtX3BsYXli
YWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUaW1lci5zdGFydE9uZVNob3Qo
SGlkZU1lZGlhQ29udHJvbHNBZnRlckVuZGVkRGVsYXkpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhUGxheWVyVm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllciopCkBAIC00NzcyLDYg
KzQ3OTEsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQ2hhcmFjdGVyaXN0
aWNDaGFuZ2VkKE1lZGlhUGxheWVyKikKICAgICBkb2N1bWVudCgpLnVwZGF0ZUlzUGxheWluZ01l
ZGlhKCk7CiAjZW5kaWYKIAorICAgIG1faGFzRXZlckhhZEF1ZGlvIHw9IGhhc0F1ZGlvKCk7Cisg
ICAgbV9oYXNFdmVySGFkVmlkZW8gfD0gaGFzVmlkZW8oKTsKKwogICAgIGVuZFByb2Nlc3NpbmdN
ZWRpYVBsYXllckNhbGxiYWNrKCk7CiB9CiAKQEAgLTczMDEsNiArNzMyMywyNSBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlVXBkYXRlUGxheWJhY2tDb250cm9sc01hbmFnZXIoKQog
ICAgICAgICBtX3VwZGF0ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyUXVldWUuZW5xdWV1ZVRhc2so
c3RkOjpiaW5kKCZIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5YmFja0NvbnRyb2xzTWFuYWdl
ciwgdGhpcykpOwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrQ29udHJvbHNN
YW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUaW1lckZpcmVkKCkKK3sKKyAgICBpZiAobV9wbGF5
YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zUXVldWUuaGFzUGVuZGluZ1Rh
c2tzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9tZWRpYVNlc3Npb24tPmhhc0Jl
aGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJl
VG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRy
PEhUTUxNZWRpYUVsZW1lbnQ+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgbV9wbGF5YmFja0Nv
bnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zUXVldWUuZW5xdWV1ZVRhc2soW3Byb3Rl
Y3RlZFRoaXNdICgpIHsKKyAgICAgICAgTWVkaWFFbGVtZW50U2Vzc2lvbiogbWVkaWFFbGVtZW50
U2Vzc2lvbiA9IHByb3RlY3RlZFRoaXMtPm1fbWVkaWFTZXNzaW9uLmdldCgpOworICAgICAgICBp
ZiAocHJvdGVjdGVkVGhpcy0+aXNQbGF5aW5nKCkgfHwgbWVkaWFFbGVtZW50U2Vzc2lvbi0+c3Rh
dGUoKSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6QXV0b3BsYXlpbmcgfHwgbWVkaWFFbGVtZW50
U2Vzc2lvbi0+c3RhdGUoKSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheWluZykKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBtZWRpYUVsZW1lbnRTZXNzaW9uLT5hZGRCZWhhdmlv
clJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVQbGF5YmFja1RvQ29udHJv
bENvbnRyb2xzTWFuYWdlcik7CisgICAgICAgIHByb3RlY3RlZFRoaXMtPnNjaGVkdWxlVXBkYXRl
UGxheWJhY2tDb250cm9sc01hbmFnZXIoKTsKKyAgICB9KTsKK30KKwogYm9vbCBIVE1MTWVkaWFF
bGVtZW50OjpzaG91bGRPdmVycmlkZUJhY2tncm91bmRMb2FkaW5nUmVzdHJpY3Rpb24oKSBjb25z
dAogewogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDk2YzA3MGQwMDU5MjBmNjdlNDJjOWEzYTlhZDU0
NjdiNGY2YzU4OGUuLmEyZDYzY2NlMDViMzQzZWY0ZmFhZDY3ODdjZGMwMDBlN2NlYzg3NjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00NzMsNiArNDczLDkgQEAg
cHVibGljOgogICAgIGJvb2wgaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRTaG91bGREZWxheUxvYWRFdmVudChib29sKTsKIAorICAgIGJvb2wgaGFzRXZl
ckhhZEF1ZGlvKCkgY29uc3QgeyByZXR1cm4gbV9oYXNFdmVySGFkQXVkaW87IH0KKyAgICBib29s
IGhhc0V2ZXJIYWRWaWRlbygpIGNvbnN0IHsgcmV0dXJuIG1faGFzRXZlckhhZFZpZGVvOyB9CisK
IHByb3RlY3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIH5IVE1MTWVkaWFF
bGVtZW50KCk7CkBAIC02MjAsNiArNjIzLDggQEAgcHJpdmF0ZToKICAgICBHcmFwaGljc0Rldmlj
ZUFkYXB0ZXIqIG1lZGlhUGxheWVyR3JhcGhpY3NEZXZpY2VBZGFwdGVyKGNvbnN0IE1lZGlhUGxh
eWVyKikgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHZvaWQgbWVkaWFQbGF5ZXJBY3Rp
dmVTb3VyY2VCdWZmZXJzQ2hhbmdlZChjb25zdCBNZWRpYVBsYXllciopIG92ZXJyaWRlOworCiAg
ICAgYm9vbCBtZWRpYVBsYXllclNob3VsZFdhaXRGb3JSZXNwb25zZVRvQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKICAgICB2
b2lkIG1lZGlhUGxheWVySGFuZGxlUGxheWJhY2tDb21tYW5kKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpSZW1vdGVDb250cm9sQ29tbWFuZFR5cGUgY29tbWFuZCkgb3ZlcnJpZGUgeyBkaWRSZWNlaXZl
UmVtb3RlQ29udHJvbENvbW1hbmQoY29tbWFuZCwgbnVsbHB0cik7IH0KICAgICBTdHJpbmcgbWVk
aWFQbGF5ZXJTb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKQEAg
LTc5MSw2ICs3OTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGF1c2VBZnRlckRldGFjaGVkVGFz
aygpOwogICAgIHZvaWQgdXBkYXRlUGxheWJhY2tDb250cm9sc01hbmFnZXIoKTsKICAgICB2b2lk
IHNjaGVkdWxlVXBkYXRlUGxheWJhY2tDb250cm9sc01hbmFnZXIoKTsKKyAgICB2b2lkIHBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUaW1lckZpcmVkKCk7CiAKICAg
ICB2b2lkIHVwZGF0ZVJlbmRlcmVyKCk7CiAKQEAgLTgwNCwxMiArODEwLDE0IEBAIHByaXZhdGU6
CiAgICAgVGltZXIgbV9wcm9ncmVzc0V2ZW50VGltZXI7CiAgICAgVGltZXIgbV9wbGF5YmFja1By
b2dyZXNzVGltZXI7CiAgICAgVGltZXIgbV9zY2FuVGltZXI7CisgICAgVGltZXIgbV9wbGF5YmFj
a0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGltZXI7CiAgICAgR2VuZXJpY1Rh
c2tRdWV1ZTxUaW1lcj4gbV9zZWVrVGFza1F1ZXVlOwogICAgIEdlbmVyaWNUYXNrUXVldWU8VGlt
ZXI+IG1fcmVzaXplVGFza1F1ZXVlOwogICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fc2hh
ZG93RE9NVGFza1F1ZXVlOwogICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fcHJvbWlzZVRh
c2tRdWV1ZTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3BhdXNlQWZ0ZXJEZXRhY2hl
ZFRhc2tRdWV1ZTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3VwZGF0ZVBsYXliYWNr
Q29udHJvbHNNYW5hZ2VyUXVldWU7CisgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9wbGF5
YmFja0NvbnRyb2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zUXVldWU7CiAgICAgUmVmUHRy
PFRpbWVSYW5nZXM+IG1fcGxheWVkVGltZVJhbmdlczsKICAgICBHZW5lcmljRXZlbnRRdWV1ZSBt
X2FzeW5jRXZlbnRRdWV1ZTsKIApAQCAtOTQ2LDYgKzk1NCw5IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3JlY2VpdmVkTGF5b3V0U2l6ZUNoYW5nZWQgOiAxOwogICAgIGJvb2wgbV9oYXNFdmVyTm90
aWZpZWRBYm91dFBsYXlpbmcgOiAxOwogCisgICAgYm9vbCBtX2hhc0V2ZXJIYWRBdWRpbyA6IDE7
CisgICAgYm9vbCBtX2hhc0V2ZXJIYWRWaWRlbyA6IDE7CisKICNpZiBFTkFCTEUoTUVESUFfQ09O
VFJPTFNfU0NSSVBUKQogICAgIGJvb2wgbV9tZWRpYUNvbnRyb2xzRGVwZW5kT25QYWdlU2NhbGVG
YWN0b3IgOiAxOwogICAgIGJvb2wgbV9oYXZlU2V0VXBDYXB0aW9uQ29udGFpbmVyIDogMTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IDlkOGNhMmRl
OTAzMGEzNjI0YjdkZThhM2ExZGZhN2M1OGM3MjNhZDcuLjUwZmI3ZTEzOWIxNTE5YWRlOTVjZTlj
ODQ3YzFiZDVjZDJiNjNiMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFF
bGVtZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRT
ZXNzaW9uLmNwcApAQCAtNTksNiArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRp
YyBjb25zdCBkb3VibGUgZWxlbWVudE1haW5Db250ZW50Q2hlY2tJbnRlcnZhbCA9IC4yNTA7CiAK
K3N0YXRpYyBib29sIGlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZShjb25zdCBIVE1MTWVk
aWFFbGVtZW50Jik7CiBzdGF0aWMgYm9vbCBpc0VsZW1lbnRMYXJnZUVub3VnaEZvck1haW5Db250
ZW50KGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmLCBNZWRpYVNlc3Npb25NYWluQ29udGVudFB1cnBv
c2UpOwogCiAjaWYgIUxPR19ESVNBQkxFRApAQCAtMjIyLDcgKzIyMywxMiBAQCBib29sIE1lZGlh
RWxlbWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoIW1fZWxlbWVudC5oYXNBdWRpbygpKSB7Cisg
ICAgaWYgKCFpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUobV9lbGVtZW50KSkgeworICAg
ICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5h
Z2VyIC0gcmV0dXJuaW5nIEZBTFNFOiBOb3QgaW4gbWFpbiBmcmFtZSIpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFtX2VsZW1lbnQuaGFzQXVkaW8oKSAmJiAhbV9l
bGVtZW50Lmhhc0V2ZXJIYWRBdWRpbygpKSB7CiAgICAgICAgIExPRyhNZWRpYSwgIk1lZGlhRWxl
bWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIgLSByZXR1cm5pbmcgRkFMU0U6IE5v
IGF1ZGlvIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0yNjgsNyArMjc0LDcg
QEAgYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKCkgY29u
c3QKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICgh
bV9lbGVtZW50Lmhhc1ZpZGVvKCkpIHsKKyAgICAgICAgaWYgKCFtX2VsZW1lbnQuaGFzVmlkZW8o
KSAmJiAhbV9lbGVtZW50Lmhhc0V2ZXJIYWRWaWRlbygpKSB7CiAgICAgICAgICAgICBMT0coTWVk
aWEsICJNZWRpYUVsZW1lbnRTZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyIC0gcmV0dXJu
aW5nIEZBTFNFOiBObyB2aWRlbyIpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICB9CkBAIC02MzAsNiArNjM2LDI3IEBAIHN0YXRpYyBib29sIGlzTWFpbkNvbnRlbnRGb3JQdXJw
b3Nlc09mQXV0b3BsYXkoY29uc3QgSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgaXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1l
KGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKCFlbGVtZW50LnJl
bmRlcmVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8qIGRvY3VtZW50RnJh
bWUgPSBlbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWRvY3VtZW50RnJhbWUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gbWFpbkZyYW1lVmlldyA9IGRvY3Vt
ZW50RnJhbWUtPm1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICBpZiAoIW1haW5GcmFtZVZpZXcpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEludFJlY3QgbWFpbkZyYW1lUmVjdEFkanVzdGVk
Rm9yU2Nyb2xsUG9zaXRpb24gPSBJbnRSZWN0KC1tYWluRnJhbWVWaWV3LT5kb2N1bWVudFNjcm9s
bFBvc2l0aW9uUmVsYXRpdmVUb1ZpZXdPcmlnaW4oKSwgbWFpbkZyYW1lVmlldy0+Y29udGVudHNT
aXplKCkpOworICAgIEludFJlY3QgZWxlbWVudFJlY3RJbk1haW5GcmFtZSA9IGVsZW1lbnQuY2xp
ZW50UmVjdCgpOworICAgIHVuc2lnbmVkIGludCB0b3RhbEVsZW1lbnRBcmVhID0gZWxlbWVudFJl
Y3RJbk1haW5GcmFtZS5hcmVhKCk7CisgICAgZWxlbWVudFJlY3RJbk1haW5GcmFtZS5pbnRlcnNl
Y3QobWFpbkZyYW1lUmVjdEFkanVzdGVkRm9yU2Nyb2xsUG9zaXRpb24pOworCisgICAgcmV0dXJu
IGVsZW1lbnRSZWN0SW5NYWluRnJhbWUuYXJlYSgpID4gdG90YWxFbGVtZW50QXJlYSAvIDI7Cit9
CisKIHN0YXRpYyBib29sIGlzRWxlbWVudExhcmdlUmVsYXRpdmVUb01haW5GcmFtZShjb25zdCBI
VE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogewogICAgIHN0YXRpYyBjb25zdCBkb3VibGUgbWlu
aW11bVBlcmNlbnRhZ2VPZk1haW5GcmFtZUFyZWFGb3JNYWluQ29udGVudCA9IDAuOTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDc2ZTRk
ZWJlYTg3ZjU2NWM0YjQ0MGExNjBiYjBlNDEwYTEwZWM2NTEuLmUyODljZmVmZWE2ZGFhYjFiOWIy
YmE4YjRhMmE4YTM5MTE3ZjczM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtMTk2LDYgKzE5Niw4IEBAIHB1YmxpYzoKICAgICAvLyBh
dmFpbGFiaWxpdHkgb2YgdGhlIHBsYXRmb3JtTGF5ZXIoKS4KICAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChNZWRpYVBsYXllciopIHsgfQogCisgICAgdmly
dHVhbCB2b2lkIG1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoY29uc3QgTWVk
aWFQbGF5ZXIqKSB7IH0KKwogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikK
ICAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogbWVkaWFQbGF5ZXJHcmFwaGljc0Rl
dmljZUFkYXB0ZXIoY29uc3QgTWVkaWFQbGF5ZXIqKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmgKaW5kZXggMTM3Y2VmYjM5YWQ1MzczN2Y0YTE0YWU2MzI5NzliMzU4NjdlZDk5
Yi4uYWQzODdhN2ExZWJiNzlhM2JmY2VkNDZiMGY2MjI3MDI4ZWM5ZjY3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
QEAgLTI3NSw2ICsyNzUsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgpIHsgfQogI2VuZGlmCisKKyAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5QWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKSB7IH0KIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKaW5kZXggZjcxZmU0ODU5YmEwY2Y0MjQ5ZjFi
ZjYwMTQyYzJkOTNhMWI1MGM2My4uMTM3MTViNTUwZTJmZGI3MjQ0N2I1M2Q2ZDNhMjdlZTQxYmY3
YTZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmgKQEAgLTE2NSw2ICsxNjUsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IG92ZXJy
aWRlOwogICAgIC8vIGNhbGxlZCB3aGVuIHRoZSByZW5kZXJpbmcgc3lzdGVtIGZsaXBzIHRoZSBp
bnRvIG9yIG91dCBvZiBhY2NlbGVyYXRlZCByZW5kZXJpbmcgbW9kZS4KICAgICB2b2lkIGFjY2Vs
ZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBub3RpZnlB
Y3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpIG92ZXJyaWRlOwogCiAgICAgTWVkaWFQbGF5ZXI6
Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KaW5kZXggZTNiM2NiZTJlN2I5OTc5YzMzMzllOTE3NThiYTE4ODNm
ZTBkYmUwYy4uOWYxNGUyZDY3MzQzOWNkMGYyY2NkODMzNTRlYjg4NjFkMDQwNDc3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNTU2LDYgKzU1NiwxMSBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNo
YW5nZWQoKQogICAgICAgICBkZXN0cm95TGF5ZXIoKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Om5vdGlmeUFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2Vk
KCkKK3sKKyAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJBY3RpdmVTb3VyY2VCdWZm
ZXJzQ2hhbmdlZChtX3BsYXllcik7Cit9CisKIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6bW92aWVMb2FkVHlwZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdG9yZWRTdHJlYW07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNv
dXJjZVByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQppbmRleCBjZTI1
ZGNiYWI2NGI2NzdlOTI1MGU3ZWRjOGNkYjgyOWQyMjNkMzc0Li41MjViYjkwODE3Y2RjY2I2MmNh
YTA1NWUyYTcyMDk0MjBmNDNiYjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0KQEAgLTgzLDggKzgzLDEwIEBAIHZvaWQgTWVk
aWFTb3VyY2VQcml2YXRlQVZGT2JqQzo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlclBy
aXZhdGUqIGJ1ZmZlcikKICAgICBBU1NFUlQobV9zb3VyY2VCdWZmZXJzLmNvbnRhaW5zKGJ1ZmZl
cikpOwogCiAgICAgc2l6ZV90IHBvcyA9IG1fYWN0aXZlU291cmNlQnVmZmVycy5maW5kKGJ1ZmZl
cik7Ci0gICAgaWYgKHBvcyAhPSBub3RGb3VuZCkKKyAgICBpZiAocG9zICE9IG5vdEZvdW5kKSB7
CiAgICAgICAgIG1fYWN0aXZlU291cmNlQnVmZmVycy5yZW1vdmUocG9zKTsKKyAgICAgICAgbV9w
bGF5ZXItPm5vdGlmeUFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CisgICAgfQogCiAgICAg
cG9zID0gbV9zb3VyY2VCdWZmZXJzLmZpbmQoYnVmZmVyKTsKICAgICBtX3NvdXJjZUJ1ZmZlcnNb
cG9zXS0+Y2xlYXJNZWRpYVNvdXJjZSgpOwpAQCAtMTQxLDEzICsxNDMsMTcgQEAgdm9pZCBNZWRp
YVNvdXJjZVByaXZhdGVBVkZPYmpDOjpzZWVrQ29tcGxldGVkKCkKIAogdm9pZCBNZWRpYVNvdXJj
ZVByaXZhdGVBVkZPYmpDOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUo
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIGJ1ZmZlciwgYm9vbCBhY3RpdmUpCiB7Ci0gICAg
aWYgKGFjdGl2ZSAmJiAhbV9hY3RpdmVTb3VyY2VCdWZmZXJzLmNvbnRhaW5zKGJ1ZmZlcikpCisg
ICAgaWYgKGFjdGl2ZSAmJiAhbV9hY3RpdmVTb3VyY2VCdWZmZXJzLmNvbnRhaW5zKGJ1ZmZlcikp
IHsKICAgICAgICAgbV9hY3RpdmVTb3VyY2VCdWZmZXJzLmFwcGVuZChidWZmZXIpOworICAgICAg
ICBtX3BsYXllci0+bm90aWZ5QWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKTsKKyAgICB9CiAK
ICAgICBpZiAoIWFjdGl2ZSkgewogICAgICAgICBzaXplX3QgcG9zaXRpb24gPSBtX2FjdGl2ZVNv
dXJjZUJ1ZmZlcnMuZmluZChidWZmZXIpOwotICAgICAgICBpZiAocG9zaXRpb24gIT0gbm90Rm91
bmQpCisgICAgICAgIGlmIChwb3NpdGlvbiAhPSBub3RGb3VuZCkgewogICAgICAgICAgICAgbV9h
Y3RpdmVTb3VyY2VCdWZmZXJzLnJlbW92ZShwb3NpdGlvbik7CisgICAgICAgICAgICBtX3BsYXll
ci0+bm90aWZ5QWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQoKTsKKyAgICAgICAgfQogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1NDYz
ZmJmNjNmYjgwZGMzNTg5ZWZmMmFkZGI3ODAwODAzYjljYmIyLi4wMmMyYzIyMDhiOWI5ODdlNzcz
ZDBiZTRlYzAyNzM2Yjg2MmVkOTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNjMyOSw3ICs2MzI5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZGVv
Q29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCkKIGJvb2wgV2ViUGFnZVByb3h5OjpoYXNBY3RpdmVW
aWRlb0ZvckNvbnRyb2xzTWFuYWdlcigpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQotICAgIHJldHVybiBtX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXIgJiYgbV9w
bGF5YmFja1Nlc3Npb25NYW5hZ2VyLT5jb250cm9sc01hbmFnZXJJbnRlcmZhY2UoKSAmJiBtX21l
ZGlhU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpIYXNBdWRpb09yVmlkZW87CisgICAgcmV0dXJuIG1f
cGxheWJhY2tTZXNzaW9uTWFuYWdlciAmJiBtX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXItPmNvbnRy
b2xzTWFuYWdlckludGVyZmFjZSgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMWUx
MDEzNmI0YmUxYmQ0NzE4NzhiOWQ4ZGFhNDBhYTFlNDE2ZDE2Li5lMzE3MzAyMTRlYTI0ZWZkNmVk
ODM3NGZiOTRkOTI2MzhhYTZkZmM1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTYtMDktMTMgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWEgY29udHJvbHMgYmVo
YXZlIHN0cmFuZ2VseSB3aGVuIGNoYW5naW5nIG1lZGlhIHNvdXJjZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTkxNAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMjgyMjc4MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkcyB0aHJlZSBuZXcgdW5pdCB0ZXN0cyB2ZXJpZnlpbmcgdGhhdCBtZWRp
YSBjb250cm9scyByZW1haW4gc3RhYmxlIGR1cmluZyBjb21tb24gYHNyY2AgY2hhbmdlIHNjZW5h
cmlvcy4gQWxzbworICAgICAgICB0d2Vha3MgYW4gZXhpc3RpbmcgdGVzdCB0byBhY2NvdW50IGZv
ciBuZXcgYGVuZGVkYCBiZWhhdmlvci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgorICAgICAgICAo
LVtWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3IHdhaXRGb3JNZWRpYUNvbnRyb2xzVG9T
aG93XSk6CisgICAgICAgICgtW1ZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgd2FpdEZv
ck1lZGlhQ29udHJvbHNUb0hpZGVdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1z
b3VyY2Utb24tY2xpY2suaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tb2Zm
c2NyZWVuLmh0bWw6IEFkZGVkLgorCiAyMDE2LTA5LTE0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVk
YXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbWFzdGVyY2ZnX3VuaXR0ZXN0CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGRkNDY0NzgyMmIxM2I3NWYwYWRhMGVhMTIwZjhmYjc2ZGE0Mzlh
YzguLjhhNDljM2JjYjc5YTQ2ZDA2YzBmOTE0NDM4YzRiYTQ5NjM5NDYxOTcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC03NSw2ICs3NSw5IEBACiAJCTJFNjkxQUYzMUQ3OUU3NUUwMDEyOTQw
NyAvKiBsYXJnZS12aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2OTFBRjIxRDc5RTc1NDAw
MTI5NDA3IC8qIGxhcmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbCAqLzsgfTsKIAkJ
MkU3NzY1Q0QxNkM0RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDQzE2QzREODBBMDBCQTJCQjEgLyog
bWFpbklPUy5tbSAqLzsgfTsKIAkJMkU3NzY1Q0YxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVD
RTE2QzREODExMDBCQTJCQjEgLyogbWFpbk1hYy5tbSAqLzsgfTsKKwkJMkVGRjA2QzMxRDg4NjIx
RTAwMDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkMyMUQ4ODYyMTIwMDA0
QkIzMCAvKiBsYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCAqLzsgfTsKKwkJMkVGRjA2QzUxRDg4
Njc3NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZDNDFE
ODg2NzcwMDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovOyB9
OworCQkyRUZGMDZDNzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1l
bmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRUZGMDZDNjFEODg2QTU2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1l
bmQuaHRtbCAqLzsgfTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFm
dGVyQ3Jhc2hfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMzQkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNo
X0J1bmRsZS5jcHAgKi87IH07CiAJCTMzREM4OTEyMTQxOTU1RkUwMDc0N0VGNyAvKiBzaW1wbGUt
aWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzNEQzg5MEUxNDE5NTM5MzAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCAq
LzsgfTsKIAkJMzNEQzg5MTQxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVy
UmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzNEQzg5MTMxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxl
ZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFja19CdW5kbGUuY3BwICovOyB9OwpAQCAtNTM4LDYgKzU0
MSw5IEBACiAJCQlkc3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJm
b2xkZXJTcGVjID0gNzsKIAkJCWZpbGVzID0gKAorCQkJCTJFRkYwNkM3MUQ4ODZBNTgwMDA0QkIz
MCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAorCQkJCTJFRkYwNkM1MUQ4ODY3NzYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9u
LWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJMkVGRjA2QzMxRDg4NjIxRTAw
MDRCQjMwIC8qIGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCTJFMTMxQzE4MUQ4M0E5OEEwMDFCQTM2QyAvKiB3aWRlLWF1dG9wbGF5aW5nLXZpZGVv
LXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRTU0RjQwRDFEN0JD
ODQyMDA5MjFBREYgLyogbGFyZ2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJMkU2OTFBRjMxRDc5RTc1RTAwMTI5NDA3IC8qIGxhcmdlLXZpZGVv
LXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTc4MCw2
ICs3ODYsOSBAQAogCQkyRTY5MUFGMjFENzlFNzU0MDAxMjk0MDcgLyogbGFyZ2UtdmlkZW8tcGxh
eWluZy1zY3JvbGwtYXdheS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdl
LXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJFNzc2NUNDMTZDNEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gbWFpbklPUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkU3NzY1Q0UxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBtYWluTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2Ut
dmlkZW8tb2Zmc2NyZWVuLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2Ut
dmlkZW8tb2Zmc2NyZWVuLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUZG
MDZDNDFEODg2NzcwMDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xp
Y2suaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRkYwNkM2MUQ4ODZBNTYw
MDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMgLyogUHJldmVu
dEVtcHR5VXNlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMzQkU1QUY0MTM3QjVBNkMwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzM0JFNUFGODEzN0I1QUFFMDA3MDU4MTMg
LyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1NSw2ICsxNDY0LDkgQEAKIAkJQTE2RjY2QjgxQzQwRTlF
MTAwQkQ0RDI0IC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1z
b3VyY2Utb24tZW5kLmh0bWwgKi8sCisJCQkJMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNo
YW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCAqLywKKwkJCQkyRUZGMDZDMjFEODg2MjEy
MDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgKi8sCiAJCQkJMkUxMzFDMTcx
RDgzQTk3RTAwMUJBMzZDIC8qIHdpZGUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1s
ICovLAogCQkJCTJFNTRGNDBDMUQ3QkM4MzkwMDkyMUFERiAvKiBsYXJnZS12aWRlby1tdXRlcy1v
bnBsYXlpbmcuaHRtbCAqLywKIAkJCQkyRTY5MUFGMjFENzlFNzU0MDAxMjk0MDcgLyogbGFyZ2Ut
dmlkZW8tcGxheWluZy1zY3JvbGwtYXdheS5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdl
ci5tbQppbmRleCBkMDdkMmU0OTU4ODYxOWU0ZDI3OTZiMGMxNTBiMmFmNmE5OTEwNzdmLi5iZDMx
ODYyYWU0MmVjYjQyY2E0MWYxMmI2YWQ2Zjg3ZmM5OTIxZmI3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xz
TWFuYWdlci5tbQpAQCAtMTE5LDYgKzExOSwxOCBAQCAtICh2b2lkKWV4cGVjdENvbnRyb2xzTWFu
YWdlcjooQk9PTClleHBlY3RDb250cm9sc01hbmFnZXIgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOgog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZVdhaXRpbmcpOwogfQogCistICh2b2lk
KXdhaXRGb3JNZWRpYUNvbnRyb2xzVG9TaG93Cit7CisgICAgd2hpbGUgKCFbc2VsZiBfaGFzQWN0
aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXJdKQorICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50
UnVuTG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUg
ZGlzdGFudFBhc3RdXTsKK30KKworLSAodm9pZCl3YWl0Rm9yTWVkaWFDb250cm9sc1RvSGlkZQor
eworICAgIHdoaWxlIChbc2VsZiBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXJdKQor
ICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5M
b29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUgZGlzdGFudFBhc3RdXTsKK30KKwogLSAodm9pZClw
ZXJmb3JtQWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihk
aXNwYXRjaF9ibG9ja190KWFjdGlvbgogewogICAgIFJldGFpblB0cjxNZXNzYWdlSGFuZGxlcj4g
aGFuZGxlciA9IGFkb3B0TlMoW1tNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdFdpdGhNZXNzYWdl
Om1lc3NhZ2UgaGFuZGxlcjphY3Rpb25dKTsKQEAgLTMxOSw5ICszMzEsMTMgQEAgVEVTVChWaWRl
b0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJMYXJnZUF1dG9wbGF5aW5nVmlk
ZW9TZWVrc0FmdGVyRW4KIHsKICAgICBSZXRhaW5QdHI8VmlkZW9Db250cm9sc01hbmFnZXJUZXN0
V2ViVmlldyo+IHdlYlZpZXcgPSBzZXRVcFdlYlZpZXdGb3JUZXN0aW5nVmlkZW9Db250cm9sc01h
bmFnZXIoTlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCkpOwogCi0gICAgLy8gU2luY2UgdGhlIHZp
ZGVvIGhhcyBlbmRlZCwgdGhlIGV4cGVjdGF0aW9uIGlzIE5PIGV2ZW4gaWYgdGhlIHBhZ2UgcHJv
Z3JhbW1hdGljYWxseSBzZWVrcyB0byB0aGUgYmVnaW5uaW5nLgogICAgIFt3ZWJWaWV3IGxvYWRU
ZXN0UGFnZU5hbWVkOkAibGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmciXTsKLSAgICBbd2Vi
VmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6Tk8gYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAiZW5k
ZWQiXTsKKworICAgIC8vIEltbWVkaWF0ZWx5IGFmdGVyIGVuZGluZywgdGhlIGNvbnRyb2xzIHNo
b3VsZCBzdGlsbCBiZSBwcmVzZW50LgorICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdl
cjpZRVMgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAiZW5kZWQiXTsKKworICAgIC8vIEF0IHNvbWUg
cG9pbnQgaW4gdGhlIGZ1dHVyZSwgdGhleSBzaG91bGQgYXV0b21hdGljYWxseSBoaWRlLgorICAg
IFt3ZWJWaWV3IHdhaXRGb3JNZWRpYUNvbnRyb2xzVG9IaWRlXTsKIH0KIAogVEVTVChWaWRlb0Nv
bnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJMYXJnZUF1dG9wbGF5aW5nVmlkZW9T
ZWVrc0FuZFBsYXlzQWZ0ZXJFbmRpbmcpCkBAIC0zODUsNiArNDAxLDMzIEBAIFRFU1QoVmlkZW9D
b250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVhcnNEb3duTWVkaWFDb250cm9s
c09uRGVhbGxvYykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkVGVzdCk7
CiB9CiAKK1RFU1QoVmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyRG9l
c05vdFNob3dNZWRpYUNvbnRyb2xzRm9yT2Zmc2NyZWVuVmlkZW8pCit7CisgICAgUmV0YWluUHRy
PFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcqPiB3ZWJWaWV3ID0gc2V0VXBXZWJWaWV3
Rm9yVGVzdGluZ1ZpZGVvQ29udHJvbHNNYW5hZ2VyKE5TTWFrZVJlY3QoMCwgMCwgMTAyNCwgNzY4
KSk7CisKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvLW9mZnNj
cmVlbiJdOworICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpOTyBhZnRlclJlY2Vp
dmluZ01lc3NhZ2U6QCJtb3ZlZCJdOworfQorCitURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBW
aWRlb0NvbnRyb2xzTWFuYWdlcktlZXBzQ29udHJvbHNTdGFibGVEdXJpbmdTcmNDaGFuZ2VPbkNs
aWNrKQoreworICAgIFJldGFpblB0cjxWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3Kj4g
d2ViVmlldyA9IHNldFVwV2ViVmlld0ZvclRlc3RpbmdWaWRlb0NvbnRyb2xzTWFuYWdlcihOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKSk7CisKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1l
ZDpAImNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2siXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9y
UGFnZVRvTG9hZFdpdGhBdXRvcGxheWluZ1ZpZGVvczoxXTsKKyAgICBbd2ViVmlldyBtb3VzZURv
d25BdFBvaW50Ok5TTWFrZVBvaW50KDQwMCwgMzAwKV07CisKKyAgICBbd2ViVmlldyBleHBlY3RD
b250cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAImNoYW5nZWQiXTsKK30K
KworVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJLZWVwc0Nv
bnRyb2xzU3RhYmxlRHVyaW5nU3JjQ2hhbmdlT25FbmQpCit7CisgICAgUmV0YWluUHRyPFZpZGVv
Q29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcqPiB3ZWJWaWV3ID0gc2V0VXBXZWJWaWV3Rm9yVGVz
dGluZ1ZpZGVvQ29udHJvbHNNYW5hZ2VyKE5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApKTsKKwor
ICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1l
bmQiXTsKKyAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2
aW5nTWVzc2FnZTpAImNoYW5nZWQiXTsKK30KKwogVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwg
VmlkZW9Db250cm9sc01hbmFnZXJTbWFsbFZpZGVvSW5NZWRpYURvY3VtZW50KQogewogICAgIFJl
dGFpblB0cjxWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3Kj4gd2ViVmlldyA9IHNldFVw
V2ViVmlld0ZvclRlc3RpbmdWaWRlb0NvbnRyb2xzTWFuYWdlcihOU01ha2VSZWN0KDAsIDAsIDEw
MCwgMTAwKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzhjMWQyODY1MjUzYWU2MmQwMjU2OGQxN2EzYjEwMDg2NDE0NTM4NAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2No
YW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbApAQCAtMCwwICsxLDMzIEBACis8aGVhZD4K
KyAgICA8c3R5bGU+CisgICAgICAgIHZpZGVvIHsKKyAgICAgICAgICAgIHdpZHRoOiA4MDBweDsK
KyAgICAgICAgICAgIGhlaWdodDogNjAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gY2hhbmdl
U291cmNlKCkgeworICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigidmlkZW8iKTsKKyAgICAgICAgICAgIHZpZGVvLnNyYyA9ICJsYXJnZS12aWRlby13aXRoLWF1
ZGlvLm1wNCI7CisgICAgICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAg
ICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNz
YWdlKCJjaGFuZ2VkIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBo
YW5kbGVQbGF5aW5nKCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOwor
ICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0sIDApOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8dmlkZW8gYXV0b3BsYXkgb25wbGF5aW5nPWhhbmRsZVBsYXlpbmcoKSBvbm1vdXNlZG93bj1j
aGFuZ2VTb3VyY2UoKSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgor
PC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGZkY2JkYTVjOWUyMjI4MzMxM2I0MGE2NjBiMzkyYjUzNTA5MzY4ZAotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12
aWRlby1zb3VyY2Utb24tZW5kLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGhlYWQ+CisgICAgPHN0
eWxlPgorICAgICAgICB2aWRlbyB7CisgICAgICAgICAgICB3aWR0aDogODAwcHg7CisgICAgICAg
ICAgICBoZWlnaHQ6IDYwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgIHZhciBoYXNCZWd1blBsYXlpbmdCZWZv
cmUgPSBmYWxzZTsKKworICAgICAgICBmdW5jdGlvbiBjaGFuZ2VTb3VyY2UoKSB7CisgICAgICAg
ICAgICB2YXIgdmlkZW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworICAgICAg
ICAgICAgdmlkZW8uc3JjID0gImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IjsKKyAgICAgICAg
ICAgIHZpZGVvLnBsYXkoKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKKyAg
ICAgICAgICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVBsYXlpbmcoKSB7Cisg
ICAgICAgICAgICBpZiAoaGFzQmVndW5QbGF5aW5nQmVmb3JlKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICAgICAgaGFzQmVndW5QbGF5aW5nQmVmb3JlID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHZhciB2aWRlbyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7CisgICAg
ICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHZpZGVvLmR1cmF0aW9uIC0gMC41OworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0b3BsYXkg
b25wbGF5aW5nPWhhbmRsZVBsYXlpbmcoKSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0
IiBvbmVuZGVkPWNoYW5nZVNvdXJjZSgpPjwvdmlkZW8+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3Jl
ZW4uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZp
ZGVvLW9mZnNjcmVlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwYTY4NWZmNjU5YTk4ZDc3ZTE2NTQxZjFk
OTAxMjMxN2I1MmQ1M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbApAQCAtMCwwICsxLDI5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAg
ICB2aWRlbyB7CisgICAgICAgICAgICB3aWR0aDogNDgwcHg7CisgICAgICAgICAgICBoZWlnaHQ6
IDMyMHB4OworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB9CisgICAg
ICAgIC5vZmZzY3JlZW4geworICAgICAgICAgICAgdG9wOiAtMzIwcHg7CisgICAgICAgIH0KKyAg
ICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIG1vdmVWaWRlb09mZnNj
cmVlbigpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIikuY2xh
c3NMaXN0LmFkZCgib2Zmc2NyZWVuIik7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJtb3ZlZCIp
OworICAgICAgICAgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0sIDApOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8dmlkZW8gYXV0b3BsYXkgb25wbGF5aW5nPW1vdmVWaWRlb09mZnNjcmVlbigpPjxzb3Vy
Y2Ugc3JjPSJsYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCI+PC92aWRlbz4KKzwvYm9keT4KKzxo
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288882</attachid>
            <date>2016-09-14 16:21:04 -0700</date>
            <delta_ts>2016-09-14 16:54:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-161914-20160914161827.patch</filename>
            <type>text/plain</type>
            <size>34079</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1OTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4Zjc0M2VhNDc0MjQ4
ZTdlOTY5ZjVjMDRlNjY4YmE3Y2YyY2I4ZS4uNDkxNjA3MjZmYmYzY2Q0ZDVlOTU0NGNjMjk3ZWNh
Y2JjYWU3ZGNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE2LTA5LTEzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRy
b2xzIGJlaGF2ZSBzdHJhbmdlbHkgd2hlbiBjaGFuZ2luZyBtZWRpYSBzb3VyY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5MTQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzI4MjI3ODA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0
b24uCisKKyAgICAgICAgQWRkcmVzc2VzIG1lZGlhIGNvbnRyb2xzIGZsaWNrZXJpbmcgd2hpbGUg
Y2hhbmdpbmcgdGhlIHNvdXJjZSBvZiBhIG1lZGlhIGVsZW1lbnQuIFRvIGFjY29tcGxpc2ggdGhp
cywgd2UgbWFrZQorICAgICAgICB0aGUgZm9sbG93aW5nIGNoYW5nZXMgdG8gdGhlIG1lZGlhIGNv
bnRyb2xzIG1haW4gY29udGVudCBoZXVyaXN0aWM6CisKKyAgICAgICAgLSBQcmV2ZW50IGVsZW1l
bnRzIHRoYXQgYXJlIG5vdCBtb3N0bHkgd2l0aGluIHRoZSBtYWluZnJhbWUgcmVjdCAob3IgZWxl
bWVudHMgd2l0aCBlbXB0eSByZWN0cykgZnJvbSBzaG93aW5nCisgICAgICAgICAgbWVkaWEgY29u
dHJvbHMuIE1hbnkgd2Vic2l0ZXMgdGhhdCByZWx5IG9uIHNhbWUgZG9jdW1lbnQgbmF2aWdhdGlv
biB3aWxsIG1vdmUgdmlkZW9zIG9mZnNjcmVlbiB3aGVuIG5hdmlnYXRpbmcKKyAgICAgICAgICB0
byBhIHNlY3Rpb24gb2YgdGhlaXIgc2l0ZSB0aGF0IGRvZXMgbm90IHBsYXkgbWVkaWEuIFdpdGhv
dXQgdGhpcyBjaGVjaywgd2Ugd291bGQgbm90IGtub3cgdG8gaGlkZSBhIHZpZGVvCisgICAgICAg
ICAgZWxlbWVudCBvbiBjZXJ0YWluIHBvcHVsYXIgd2Vic2l0ZXMgdGhhdCB1c2UgdGhpcyB0ZWNo
bmlxdWUsIHNpbmNlIHRoZSB2aWRlbyBoYXMgYmVlbiBpbnRlcmFjdGVkIHdpdGggaW4gdGhlCisg
ICAgICAgICAgcGFzdC4KKworICAgICAgICAtIFJhdGhlciB0aGFuIGNoZWNrIHdoZXRoZXIgYSBt
ZWRpYSBlbGVtZW50IGN1cnJlbnRseSBoYXMgdmlkZW8vYXVkaW8gc291cmNlcywgY2hlY2sgd2hl
dGhlciBpdCBoYXMgZXZlciBoYWQKKyAgICAgICAgICBhdWRpby4gTWFueSB3ZWJzaXRlcyB3aWxs
IHVzZSB0aGUgc2FtZSBtZWRpYSBlbGVtZW50IGFjcm9zcyBkaWZmZXJlbnQgdmlkZW9zIGFuZCBj
aGFuZ2Ugb25seSB0aGUgc291cmNlLCBhbmQKKyAgICAgICAgICB3ZSBzaG91bGQgbm90IHByZXZl
bnQgYSBtZWRpYSBlbGVtZW50IGZyb20gaGF2aW5nIG1lZGlhIGNvbnRyb2xzIG9uIGdyb3VuZHMg
b2YgaGF2aW5nIG5vIGF1ZGlvIG9yIHZpZGVvIGluCisgICAgICAgICAgdGhpcyBjYXNlLgorCisg
ICAgICAgIC0gUmF0aGVyIHRoYW4gYWRkIHVzZXIgZ2VzdHVyZSBhbmQgcGxheWJhY2sgYmVoYXZp
b3IgcmVzdHJpY3Rpb25zIGJlZm9yZSBkaXNwYXRjaGluZyBhbiBlbmRlZCBldmVudCwgYWRkIG9u
bHkKKyAgICAgICAgICB0aGUgZ2VzdHVyZSByZXN0cmljdGlvbiBpbW1lZGlhdGVseSwgYW5kIGFk
ZCB0aGUgcGxheWJhY2sgcmVzdHJpY3Rpb24gYWZ0ZXIgd2FpdGluZyBmb3IgYSBncmFjZSBwZXJp
b2Qgb25seSBpZgorICAgICAgICAgIHRoZSB1c2VyIGhhcyBub3QgaW50ZXJhY3RlZCB3aXRoIHRo
ZSB2aWRlbyBzaW5jZSBlbmRpbmcsIGFuZCB0aGUgdmlkZW8gaXMgbm90IGN1cnJlbnRseSBwbGF5
aW5nIG9yIGFib3V0IHRvCisgICAgICAgICAgcGxheS4gVGhpcyBnaXZlcyB0aGUgdXNlciBhIGNo
YW5jZSB0byBpbnRlcmFjdCB3aXRoIHRoZSBjb250cm9scyB3aGVuIGEgdmlkZW8gZW5kcywgYnV0
IGFsc28gYWxsb3dzIHRoZSBwYWdlCisgICAgICAgICAgdG8gbG9hZCBvciBiZWdpbiBwbGF5aW5n
IGEgbmV3IHZpZGVvIHdpdGggdGhlIHNhbWUgbWVkaWEgZWxlbWVudCB3aXRob3V0IHRocmFzaGlu
ZyBtZWRpYSBjb250cm9sIHN0YXRlLgorCisgICAgICAgIEFkZHMgMyBuZXcgQVBJIHRlc3RzLgor
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWVrV2l0aFRvbGVyYW5jZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpiZWdpblNjcnViYmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphZGRCZWhhdmlvclJlc3RyaWN0aW9u
c09uRW5kSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6cGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9u
c1RpbWVyRmlyZWQpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aGFzRXZlckhhZEF1ZGlvKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Omhhc0V2ZXJIYWRWaWRlbyk6CisgICAgICAgICog
aHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxl
bWVudFNlc3Npb246OmNhblNob3dDb250cm9sc01hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6
aXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6
Om1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVmZmVyc0NoYW5nZWQpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpub3RpZnlBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjpub3RpZnlBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2Jq
Qy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6OnJlbW92
ZVNvdXJjZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZP
YmpDOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZlU3RhdGUpOgorCiAyMDE2LTA5
LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtN
ZWRpYVN0cmVhbV0gTWlub3IgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGM1ZmNiNDk4ZDIyMTdiMzQ1
YjE0NDIyNGIxYTE4M2FmNzQ4ZTlkMDIuLjE1YmQ2M2IyY2I4Mjg2OWFhYjZkZDY1ZDEwM2I4MzI5
MmRkOTlkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNi0wOS0xMyAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBjb250cm9s
cyBiZWhhdmUgc3RyYW5nZWx5IHdoZW4gY2hhbmdpbmcgbWVkaWEgc291cmNlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxOTE0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yODIyNzgwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9u
LgorCisgICAgICAgIEFsbG93cyBhIHdlYiBwYWdlIHRvIGhhdmUgYW4gYWN0aXZlIHZpZGVvIGZv
ciBhIG1lZGlhIGNvbnRyb2wgbWFuYWdlciBldmVuIGlmIG5vIGF1ZGlvIG9yIHZpZGVvIGlzIGN1
cnJlbnRseQorICAgICAgICBiZWluZyBwcm9kdWNlZC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBtZWRp
YSBlbGVtZW50IG1heSBiZSBpbiBhIHN0YXRlIHdoZXJlIGl0IGlzIGNoYW5naW5nIGl0cyBzb3Vy
Y2UgYW5kIGRvZXMgbm90CisgICAgICAgIGN1cnJlbnRseSBoYXZlIGEgdmlkZW8gb3IgYXVkaW8g
dHJhY2suCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xzTWFuYWdlcik6
CisKIDIwMTYtMDktMTQgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBuZWVkc1BsYWluVGV4dFF1aXJrIGFuZCBzZW5kIGl0IHRvIHRoZSBVSVByb2Nlc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDc4MDRjM2JjMjc0ZGNl
NWU3NTlkNDJjMmEwMjg1N2VhYmIxNjE2OGYuLjZiMmQyNWI1MGYxMTBmNmEyYjM0ZGMyZTBiYzlm
YzkxZDgwMDlmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApA
QCAtMTYzLDYgKzE2Myw4IEBAIHN0YXRpYyBjb25zdCBkb3VibGUgU2Vla1RpbWUgPSAwLjI7CiBz
dGF0aWMgY29uc3QgZG91YmxlIFNjYW5SZXBlYXREZWxheSA9IDEuNTsKIHN0YXRpYyBjb25zdCBk
b3VibGUgU2Nhbk1heGltdW1SYXRlID0gODsKIAorc3RhdGljIGNvbnN0IGRvdWJsZSBIaWRlTWVk
aWFDb250cm9sc0FmdGVyRW5kZWREZWxheSA9IDY7CisKIHN0YXRpYyB2b2lkIHNldEZsYWdzKHVu
c2lnbmVkJiB2YWx1ZSwgdW5zaWduZWQgZmxhZ3MpCiB7CiAgICAgdmFsdWUgfD0gZmxhZ3M7CkBA
IC00MjYsNiArNDI4LDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fcHJvZ3Jl
c3NFdmVudFRpbWVyKCp0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVy
RmlyZWQpCiAgICAgLCBtX3BsYXliYWNrUHJvZ3Jlc3NUaW1lcigqdGhpcywgJkhUTUxNZWRpYUVs
ZW1lbnQ6OnBsYXliYWNrUHJvZ3Jlc3NUaW1lckZpcmVkKQogICAgICwgbV9zY2FuVGltZXIoKnRo
aXMsICZIVE1MTWVkaWFFbGVtZW50OjpzY2FuVGltZXJGaXJlZCkKKyAgICAsIG1fcGxheWJhY2tD
b250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1RpbWVyKCp0aGlzLCAmSFRNTE1lZGlh
RWxlbWVudDo6cGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1RpbWVy
RmlyZWQpCiAgICAgLCBtX3BsYXllZFRpbWVSYW5nZXMoKQogICAgICwgbV9hc3luY0V2ZW50UXVl
dWUoKnRoaXMpCiAgICAgLCBtX3JlcXVlc3RlZFBsYXliYWNrUmF0ZSgxKQpAQCAtNDgyLDYgKzQ4
NSw4IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBtX2NyZWF0aW5nQ29udHJvbHMo
ZmFsc2UpCiAgICAgLCBtX3JlY2VpdmVkTGF5b3V0U2l6ZUNoYW5nZWQoZmFsc2UpCiAgICAgLCBt
X2hhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZyhmYWxzZSkKKyAgICAsIG1faGFzRXZlckhhZEF1
ZGlvKGZhbHNlKQorICAgICwgbV9oYXNFdmVySGFkVmlkZW8oZmFsc2UpCiAjaWYgRU5BQkxFKE1F
RElBX0NPTlRST0xTX1NDUklQVCkKICAgICAsIG1fbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNj
YWxlRmFjdG9yKGZhbHNlKQogICAgICwgbV9oYXZlU2V0VXBDYXB0aW9uQ29udGFpbmVyKGZhbHNl
KQpAQCAtNjMwLDYgKzYzNSw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6On5IVE1MTWVkaWFFbGVtZW50
KCkKICAgICBtX3Byb21pc2VUYXNrUXVldWUuY2xvc2UoKTsKICAgICBtX3BhdXNlQWZ0ZXJEZXRh
Y2hlZFRhc2tRdWV1ZS5jbG9zZSgpOwogICAgIG1fdXBkYXRlUGxheWJhY2tDb250cm9sc01hbmFn
ZXJRdWV1ZS5jbG9zZSgpOworICAgIG1fcGxheWJhY2tDb250cm9sc01hbmFnZXJCZWhhdmlvclJl
c3RyaWN0aW9uc1F1ZXVlLmNsb3NlKCk7CiAKICAgICBtX2NvbXBsZXRlbHlMb2FkZWQgPSB0cnVl
OwogCkBAIC05NzIsNiArOTc4LDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVO
ZXh0U291cmNlQ2hpbGQoKQogICAgIG1fcGVuZGluZ0FjdGlvblRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckFjdGl2ZVNvdXJjZUJ1
ZmZlcnNDaGFuZ2VkKGNvbnN0IE1lZGlhUGxheWVyKikKK3sKKyAgICBtX2hhc0V2ZXJIYWRBdWRp
byB8PSBoYXNBdWRpbygpOworICAgIG1faGFzRXZlckhhZFZpZGVvIHw9IGhhc1ZpZGVvKCk7Cit9
CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2NoZWR1bGVFdmVudChjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50TmFtZSkKIHsKICNpZiBMT0dfTUVESUFfRVZFTlRTCkBAIC0yNjc1LDYgKzI2ODcs
OSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlh
VGltZSYgaW5UaW1lLCBjb25zdCBNZWRpYVRpbQogICAgICAgICBtX3NlZWtUYXNrUXVldWUuZW5x
dWV1ZVRhc2soc3RkOjpiaW5kKCZIVE1MTWVkaWFFbGVtZW50OjpzZWVrVGFzaywgdGhpcykpOwog
ICAgIH0gZWxzZQogICAgICAgICBzZWVrVGFzaygpOworCisgICAgaWYgKFNjcmlwdENvbnRyb2xs
ZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCkpCisgICAgICAgIG1fbWVkaWFTZXNz
aW9uLT5yZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVp
cmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7CiB9CiAKIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2Vla1Rhc2soKQpAQCAtMzQ5MSw2ICszNTA2LDggQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpiZWdpblNjcnViYmluZygpCiAgICAgICAgICAgICBzZXRQYXVzZWRJbnRlcm5h
bCh0cnVlKTsKICAgICAgICAgfQogICAgIH0KKworICAgIG1fbWVkaWFTZXNzaW9uLT5yZW1vdmVC
ZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVy
ZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
ZW5kU2NydWJiaW5nKCkKQEAgLTQ1MzcsNyArNDU1NCw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6YWRkQmVoYXZpb3JSZXN0cmljdGlvbnNPbkVuZElmTmVjZXNzYXJ5KCkKICAgICBpZiAoaXNG
dWxsc2NyZWVuKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fbWVkaWFTZXNzaW9uLT5hZGRC
ZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVQbGF5YmFja1Rv
Q29udHJvbENvbnRyb2xzTWFuYWdlciB8IE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2Vy
R2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcik7CisgICAgbV9tZWRpYVNlc3Npb24tPmFk
ZEJlaGF2aW9yUmVzdHJpY3Rpb24oTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0
dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKTsKKyAgICBtX3BsYXliYWNrQ29udHJvbHNNYW5h
Z2VyQmVoYXZpb3JSZXN0cmljdGlvbnNUaW1lci5zdG9wKCk7CisgICAgbV9wbGF5YmFja0NvbnRy
b2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGltZXIuc3RhcnRPbmVTaG90KEhpZGVNZWRp
YUNvbnRyb2xzQWZ0ZXJFbmRlZERlbGF5KTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpt
ZWRpYVBsYXllclZvbHVtZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQpAQCAtNDc3Miw2ICs0NzkxLDkg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNoYXJhY3RlcmlzdGljQ2hhbmdl
ZChNZWRpYVBsYXllciopCiAgICAgZG9jdW1lbnQoKS51cGRhdGVJc1BsYXlpbmdNZWRpYSgpOwog
I2VuZGlmCiAKKyAgICBtX2hhc0V2ZXJIYWRBdWRpbyB8PSBoYXNBdWRpbygpOworICAgIG1faGFz
RXZlckhhZFZpZGVvIHw9IGhhc1ZpZGVvKCk7CisKICAgICBlbmRQcm9jZXNzaW5nTWVkaWFQbGF5
ZXJDYWxsYmFjaygpOwogfQogCkBAIC03MzAxLDYgKzczMjMsMjUgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpzY2hlZHVsZVVwZGF0ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkKICAgICAgICAg
bV91cGRhdGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlclF1ZXVlLmVucXVldWVUYXNrKHN0ZDo6Ymlu
ZCgmSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGxheWJhY2tDb250cm9sc01hbmFnZXIsIHRoaXMp
KTsKIH0KIAordm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja0NvbnRyb2xzTWFuYWdlckJl
aGF2aW9yUmVzdHJpY3Rpb25zVGltZXJGaXJlZCgpCit7CisgICAgaWYgKG1fcGxheWJhY2tDb250
cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1F1ZXVlLmhhc1BlbmRpbmdUYXNrcygpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fbWVkaWFTZXNzaW9uLT5oYXNCZWhhdmlvclJl
c3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJv
bENvbnRyb2xzTWFuYWdlcikpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxIVE1MTWVk
aWFFbGVtZW50PiBwcm90ZWN0ZWRUaGlzKHRoaXMpOworICAgIG1fcGxheWJhY2tDb250cm9sc01h
bmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1F1ZXVlLmVucXVldWVUYXNrKFtwcm90ZWN0ZWRUaGlz
XSAoKSB7CisgICAgICAgIE1lZGlhRWxlbWVudFNlc3Npb24qIG1lZGlhRWxlbWVudFNlc3Npb24g
PSBwcm90ZWN0ZWRUaGlzLT5tX21lZGlhU2Vzc2lvbi5nZXQoKTsKKyAgICAgICAgaWYgKHByb3Rl
Y3RlZFRoaXMtPmlzUGxheWluZygpIHx8IG1lZGlhRWxlbWVudFNlc3Npb24tPnN0YXRlKCkgPT0g
UGxhdGZvcm1NZWRpYVNlc3Npb246OkF1dG9wbGF5aW5nIHx8IG1lZGlhRWxlbWVudFNlc3Npb24t
PnN0YXRlKCkgPT0gUGxhdGZvcm1NZWRpYVNlc3Npb246OlBsYXlpbmcpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgbWVkaWFFbGVtZW50U2Vzc2lvbi0+YWRkQmVoYXZpb3JSZXN0cmlj
dGlvbihNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlUGxheWJhY2tUb0NvbnRyb2xDb250cm9s
c01hbmFnZXIpOworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5zY2hlZHVsZVVwZGF0ZVBsYXliYWNr
Q29udHJvbHNNYW5hZ2VyKCk7CisgICAgfSk7Cit9CisKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
c2hvdWxkT3ZlcnJpZGVCYWNrZ3JvdW5kTG9hZGluZ1Jlc3RyaWN0aW9uKCkgY29uc3QKIHsKICNp
ZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAppbmRleCA5NmMwNzBkMDA1OTIwZjY3ZTQyYzlhM2E5YWQ1NDY3YjRmNmM1
ODhlLi5hMmQ2M2NjZTA1YjM0M2VmNGZhYWQ2Nzg3Y2RjMDAwZTdjZWM4NzYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDczLDYgKzQ3Myw5IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZygpIGNvbnN0OwogICAgIHZvaWQg
c2V0U2hvdWxkRGVsYXlMb2FkRXZlbnQoYm9vbCk7CiAKKyAgICBib29sIGhhc0V2ZXJIYWRBdWRp
bygpIGNvbnN0IHsgcmV0dXJuIG1faGFzRXZlckhhZEF1ZGlvOyB9CisgICAgYm9vbCBoYXNFdmVy
SGFkVmlkZW8oKSBjb25zdCB7IHJldHVybiBtX2hhc0V2ZXJIYWRWaWRlbzsgfQorCiBwcm90ZWN0
ZWQ6CiAgICAgSFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
LCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAgICAgdmlydHVhbCB+SFRNTE1lZGlhRWxlbWVudCgp
OwpAQCAtNjIwLDYgKzYyMyw4IEBAIHByaXZhdGU6CiAgICAgR3JhcGhpY3NEZXZpY2VBZGFwdGVy
KiBtZWRpYVBsYXllckdyYXBoaWNzRGV2aWNlQWRhcHRlcihjb25zdCBNZWRpYVBsYXllciopIGNv
bnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICB2b2lkIG1lZGlhUGxheWVyQWN0aXZlU291cmNl
QnVmZmVyc0NoYW5nZWQoY29uc3QgTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKKwogICAgIGJvb2wg
bWVkaWFQbGF5ZXJTaG91bGRXYWl0Rm9yUmVzcG9uc2VUb0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBtZWRp
YVBsYXllckhhbmRsZVBsYXliYWNrQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3Rl
Q29udHJvbENvbW1hbmRUeXBlIGNvbW1hbmQpIG92ZXJyaWRlIHsgZGlkUmVjZWl2ZVJlbW90ZUNv
bnRyb2xDb21tYW5kKGNvbW1hbmQsIG51bGxwdHIpOyB9CiAgICAgU3RyaW5nIG1lZGlhUGxheWVy
U291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC03OTEsNiAr
Nzk2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBhdXNlQWZ0ZXJEZXRhY2hlZFRhc2soKTsKICAg
ICB2b2lkIHVwZGF0ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCk7CiAgICAgdm9pZCBzY2hlZHVs
ZVVwZGF0ZVBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCk7CisgICAgdm9pZCBwbGF5YmFja0NvbnRy
b2xzTWFuYWdlckJlaGF2aW9yUmVzdHJpY3Rpb25zVGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCB1
cGRhdGVSZW5kZXJlcigpOwogCkBAIC04MDQsMTIgKzgxMCwxNCBAQCBwcml2YXRlOgogICAgIFRp
bWVyIG1fcHJvZ3Jlc3NFdmVudFRpbWVyOwogICAgIFRpbWVyIG1fcGxheWJhY2tQcm9ncmVzc1Rp
bWVyOwogICAgIFRpbWVyIG1fc2NhblRpbWVyOworICAgIFRpbWVyIG1fcGxheWJhY2tDb250cm9s
c01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1RpbWVyOwogICAgIEdlbmVyaWNUYXNrUXVldWU8
VGltZXI+IG1fc2Vla1Rhc2tRdWV1ZTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Jl
c2l6ZVRhc2tRdWV1ZTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3NoYWRvd0RPTVRh
c2tRdWV1ZTsKICAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX3Byb21pc2VUYXNrUXVldWU7
CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9wYXVzZUFmdGVyRGV0YWNoZWRUYXNrUXVl
dWU7CiAgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV91cGRhdGVQbGF5YmFja0NvbnRyb2xz
TWFuYWdlclF1ZXVlOworICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fcGxheWJhY2tDb250
cm9sc01hbmFnZXJCZWhhdmlvclJlc3RyaWN0aW9uc1F1ZXVlOwogICAgIFJlZlB0cjxUaW1lUmFu
Z2VzPiBtX3BsYXllZFRpbWVSYW5nZXM7CiAgICAgR2VuZXJpY0V2ZW50UXVldWUgbV9hc3luY0V2
ZW50UXVldWU7CiAKQEAgLTk0Niw2ICs5NTQsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9yZWNl
aXZlZExheW91dFNpemVDaGFuZ2VkIDogMTsKICAgICBib29sIG1faGFzRXZlck5vdGlmaWVkQWJv
dXRQbGF5aW5nIDogMTsKIAorICAgIGJvb2wgbV9oYXNFdmVySGFkQXVkaW8gOiAxOworICAgIGJv
b2wgbV9oYXNFdmVySGFkVmlkZW8gOiAxOworCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1ND
UklQVCkKICAgICBib29sIG1fbWVkaWFDb250cm9sc0RlcGVuZE9uUGFnZVNjYWxlRmFjdG9yIDog
MTsKICAgICBib29sIG1faGF2ZVNldFVwQ2FwdGlvbkNvbnRhaW5lciA6IDE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCA5ZDhjYTJkZTkwMzBhMzYy
NGI3ZGU4YTNhMWRmYTdjNThjNzIzYWQ3Li41MGZiN2UxMzliMTUxOWFkZTk1Y2U5Yzg0N2MxYmQ1
Y2QyYjYzYjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNl
c3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5j
cHAKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3Qg
ZG91YmxlIGVsZW1lbnRNYWluQ29udGVudENoZWNrSW50ZXJ2YWwgPSAuMjUwOwogCitzdGF0aWMg
Ym9vbCBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUoY29uc3QgSFRNTE1lZGlhRWxlbWVu
dCYpOwogc3RhdGljIGJvb2wgaXNFbGVtZW50TGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudChjb25z
dCBIVE1MTWVkaWFFbGVtZW50JiwgTWVkaWFTZXNzaW9uTWFpbkNvbnRlbnRQdXJwb3NlKTsKIAog
I2lmICFMT0dfRElTQUJMRUQKQEAgLTIyMiw3ICsyMjMsMTIgQEAgYm9vbCBNZWRpYUVsZW1lbnRT
ZXNzaW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCi0gICAgaWYgKCFtX2VsZW1lbnQuaGFzQXVkaW8oKSkgeworICAgIGlmICgh
aXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKG1fZWxlbWVudCkpIHsKKyAgICAgICAgTE9H
KE1lZGlhLCAiTWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciAtIHJl
dHVybmluZyBGQUxTRTogTm90IGluIG1haW4gZnJhbWUiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIGlmICghbV9lbGVtZW50Lmhhc0F1ZGlvKCkgJiYgIW1fZWxlbWVudC5o
YXNFdmVySGFkQXVkaW8oKSkgewogICAgICAgICBMT0coTWVkaWEsICJNZWRpYUVsZW1lbnRTZXNz
aW9uOjpjYW5TaG93Q29udHJvbHNNYW5hZ2VyIC0gcmV0dXJuaW5nIEZBTFNFOiBObyBhdWRpbyIp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMjY4LDcgKzI3NCw3IEBAIGJvb2wg
TWVkaWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlcigpIGNvbnN0CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIW1fZWxlbWVu
dC5oYXNWaWRlbygpKSB7CisgICAgICAgIGlmICghbV9lbGVtZW50Lmhhc1ZpZGVvKCkgJiYgIW1f
ZWxlbWVudC5oYXNFdmVySGFkVmlkZW8oKSkgewogICAgICAgICAgICAgTE9HKE1lZGlhLCAiTWVk
aWFFbGVtZW50U2Vzc2lvbjo6Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciAtIHJldHVybmluZyBGQUxT
RTogTm8gdmlkZW8iKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAt
NjMwLDYgKzYzNiwyNyBAQCBzdGF0aWMgYm9vbCBpc01haW5Db250ZW50Rm9yUHVycG9zZXNPZkF1
dG9wbGF5KGNvbnN0IEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK3N0YXRpYyBib29sIGlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZShjb25zdCBI
VE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmICghZWxlbWVudC5yZW5kZXJlcigp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvKiBkb2N1bWVudEZyYW1lID0gZWxl
bWVudC5kb2N1bWVudCgpLmZyYW1lKCk7CisgICAgaWYgKCFkb2N1bWVudEZyYW1lKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIG1haW5GcmFtZVZpZXcgPSBkb2N1bWVudEZyYW1l
LT5tYWluRnJhbWUoKS52aWV3KCk7CisgICAgaWYgKCFtYWluRnJhbWVWaWV3KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBJbnRSZWN0IG1haW5GcmFtZVJlY3RBZGp1c3RlZEZvclNjcm9s
bFBvc2l0aW9uID0gSW50UmVjdCgtbWFpbkZyYW1lVmlldy0+ZG9jdW1lbnRTY3JvbGxQb3NpdGlv
blJlbGF0aXZlVG9WaWV3T3JpZ2luKCksIG1haW5GcmFtZVZpZXctPmNvbnRlbnRzU2l6ZSgpKTsK
KyAgICBJbnRSZWN0IGVsZW1lbnRSZWN0SW5NYWluRnJhbWUgPSBlbGVtZW50LmNsaWVudFJlY3Qo
KTsKKyAgICB1bnNpZ25lZCBpbnQgdG90YWxFbGVtZW50QXJlYSA9IGVsZW1lbnRSZWN0SW5NYWlu
RnJhbWUuYXJlYSgpOworICAgIGVsZW1lbnRSZWN0SW5NYWluRnJhbWUuaW50ZXJzZWN0KG1haW5G
cmFtZVJlY3RBZGp1c3RlZEZvclNjcm9sbFBvc2l0aW9uKTsKKworICAgIHJldHVybiBlbGVtZW50
UmVjdEluTWFpbkZyYW1lLmFyZWEoKSA+IHRvdGFsRWxlbWVudEFyZWEgLyAyOworfQorCiBzdGF0
aWMgYm9vbCBpc0VsZW1lbnRMYXJnZVJlbGF0aXZlVG9NYWluRnJhbWUoY29uc3QgSFRNTE1lZGlh
RWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBzdGF0aWMgY29uc3QgZG91YmxlIG1pbmltdW1QZXJj
ZW50YWdlT2ZNYWluRnJhbWVBcmVhRm9yTWFpbkNvbnRlbnQgPSAwLjk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA3NmU0ZGViZWE4N2Y1
NjVjNGI0NDBhMTYwYmIwZTQxMGExMGVjNjUxLi5lMjg5Y2ZlZmVhNmRhYWIxYjliMmJhOGI0YTJh
OGEzOTExN2Y3MzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKQEAgLTE5Niw2ICsxOTYsOCBAQCBwdWJsaWM6CiAgICAgLy8gYXZhaWxhYmls
aXR5IG9mIHRoZSBwbGF0Zm9ybUxheWVyKCkuCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVy
UmVuZGVyaW5nTW9kZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSB7IH0KIAorICAgIHZpcnR1YWwgdm9p
ZCBtZWRpYVBsYXllckFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKGNvbnN0IE1lZGlhUGxheWVy
KikgeyB9CisKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgdmly
dHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIG1lZGlhUGxheWVyR3JhcGhpY3NEZXZpY2VBZGFw
dGVyKGNvbnN0IE1lZGlhUGxheWVyKikgY29uc3QgeyByZXR1cm4gMDsgfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCmluZGV4IDEzN2NlZmIzOWFkNTM3MzdmNGExNGFlNjMyOTc5YjM1ODY3ZWQ5OWIuLmFkMzg3
YTdhMWViYjc5YTNiZmNlZDQ2YjBmNjIyNzAyOGVjOWY2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0yNzUs
NiArMjc1LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeVRyYWNrTW9kZUNoYW5nZWQoKSB7IH0KICNlbmRpZgorCisgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCkgeyB9CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5oCmluZGV4IGY3MWZlNDg1OWJhMGNmNDI0OWYxYmY2MDE0MmMy
ZDkzYTFiNTBjNjMuLjEzNzE1YjU1MGUyZmRiNzI0NDdiNTNkNmQzYTI3ZWU0MWJmN2E2YTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQy5oCkBAIC0xNjUsNiArMTY1LDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsKICAg
ICAvLyBjYWxsZWQgd2hlbiB0aGUgcmVuZGVyaW5nIHN5c3RlbSBmbGlwcyB0aGUgaW50byBvciBv
dXQgb2YgYWNjZWxlcmF0ZWQgcmVuZGVyaW5nIG1vZGUuCiAgICAgdm9pZCBhY2NlbGVyYXRlZFJl
bmRlcmluZ1N0YXRlQ2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgbm90aWZ5QWN0aXZlU291
cmNlQnVmZmVyc0NoYW5nZWQoKSBvdmVycmlkZTsKIAogICAgIE1lZGlhUGxheWVyOjpNb3ZpZUxv
YWRUeXBlIG1vdmllTG9hZFR5cGUoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLm1tCmluZGV4IGUzYjNjYmUyZTdiOTk3OWMzMzM5ZTkxNzU4YmExODgzZmUwZGJlMGMu
LjlmMTRlMmQ2NzM0MzljZDBmMmNjZDgzMzU0ZWI4ODYxZDA0MDQ3NzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KQEAgLTU1Niw2ICs1NTYsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkK
ICAgICAgICAgZGVzdHJveUxheWVyKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpub3RpZnlBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpCit7Cisg
ICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyQWN0aXZlU291cmNlQnVmZmVyc0NoYW5n
ZWQobV9wbGF5ZXIpOworfQorCiBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6Om1vdmllTG9hZFR5cGUoKSBjb25zdAogewogICAg
IHJldHVybiBNZWRpYVBsYXllcjo6U3RvcmVkU3RyZWFtOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2
YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggY2UyNWRjYmFiNjRi
Njc3ZTkyNTBlN2VkYzhjZGI4MjlkMjIzZDM3NC4uNTI1YmI5MDgxN2NkY2NiNjJjYWEwNTVlMmE3
MjA5NDIwZjQzYmI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNv
dXJjZVByaXZhdGVBVkZPYmpDLm1tCkBAIC04Myw4ICs4MywxMCBAQCB2b2lkIE1lZGlhU291cmNl
UHJpdmF0ZUFWRk9iakM6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXJQcml2YXRlKiBi
dWZmZXIpCiAgICAgQVNTRVJUKG1fc291cmNlQnVmZmVycy5jb250YWlucyhidWZmZXIpKTsKIAog
ICAgIHNpemVfdCBwb3MgPSBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMuZmluZChidWZmZXIpOwotICAg
IGlmIChwb3MgIT0gbm90Rm91bmQpCisgICAgaWYgKHBvcyAhPSBub3RGb3VuZCkgewogICAgICAg
ICBtX2FjdGl2ZVNvdXJjZUJ1ZmZlcnMucmVtb3ZlKHBvcyk7CisgICAgICAgIG1fcGxheWVyLT5u
b3RpZnlBY3RpdmVTb3VyY2VCdWZmZXJzQ2hhbmdlZCgpOworICAgIH0KIAogICAgIHBvcyA9IG1f
c291cmNlQnVmZmVycy5maW5kKGJ1ZmZlcik7CiAgICAgbV9zb3VyY2VCdWZmZXJzW3Bvc10tPmNs
ZWFyTWVkaWFTb3VyY2UoKTsKQEAgLTE0MSwxMyArMTQzLDE3IEBAIHZvaWQgTWVkaWFTb3VyY2VQ
cml2YXRlQVZGT2JqQzo6c2Vla0NvbXBsZXRlZCgpCiAKIHZvaWQgTWVkaWFTb3VyY2VQcml2YXRl
QVZGT2JqQzo6c291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDKiBidWZmZXIsIGJvb2wgYWN0aXZlKQogewotICAgIGlmIChhY3Rp
dmUgJiYgIW1fYWN0aXZlU291cmNlQnVmZmVycy5jb250YWlucyhidWZmZXIpKQorICAgIGlmIChh
Y3RpdmUgJiYgIW1fYWN0aXZlU291cmNlQnVmZmVycy5jb250YWlucyhidWZmZXIpKSB7CiAgICAg
ICAgIG1fYWN0aXZlU291cmNlQnVmZmVycy5hcHBlbmQoYnVmZmVyKTsKKyAgICAgICAgbV9wbGF5
ZXItPm5vdGlmeUFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CisgICAgfQogCiAgICAgaWYg
KCFhY3RpdmUpIHsKICAgICAgICAgc2l6ZV90IHBvc2l0aW9uID0gbV9hY3RpdmVTb3VyY2VCdWZm
ZXJzLmZpbmQoYnVmZmVyKTsKLSAgICAgICAgaWYgKHBvc2l0aW9uICE9IG5vdEZvdW5kKQorICAg
ICAgICBpZiAocG9zaXRpb24gIT0gbm90Rm91bmQpIHsKICAgICAgICAgICAgIG1fYWN0aXZlU291
cmNlQnVmZmVycy5yZW1vdmUocG9zaXRpb24pOworICAgICAgICAgICAgbV9wbGF5ZXItPm5vdGlm
eUFjdGl2ZVNvdXJjZUJ1ZmZlcnNDaGFuZ2VkKCk7CisgICAgICAgIH0KICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNTQ2M2ZiZjYzZmI4
MGRjMzU4OWVmZjJhZGRiNzgwMDgwM2I5Y2JiMi4uMDJjMmMyMjA4YjliOTg3ZTc3M2QwYmU0ZWMw
MjczNmI4NjJlZDk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTYzMjksNyArNjMyOSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWRlb0NvbnRyb2xz
TWFuYWdlckRpZENoYW5nZSgpCiBib29sIFdlYlBhZ2VQcm94eTo6aGFzQWN0aXZlVmlkZW9Gb3JD
b250cm9sc01hbmFnZXIoKSBjb25zdAogewogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKLSAgICByZXR1cm4gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyICYmIG1fcGxheWJhY2tT
ZXNzaW9uTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgJiYgbV9tZWRpYVN0YXRl
ICYgTWVkaWFQcm9kdWNlcjo6SGFzQXVkaW9PclZpZGVvOworICAgIHJldHVybiBtX3BsYXliYWNr
U2Vzc2lvbk1hbmFnZXIgJiYgbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyLT5jb250cm9sc01hbmFn
ZXJJbnRlcmZhY2UoKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTFlMTAxMzZiNGJl
MWJkNDcxODc4YjlkOGRhYTQwYWExZTQxNmQxNi4uNDFjNDc3YWY4YTExMjgwY2ExNWZlZTAxYWZk
OTczY2UzY2MzNjc3NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE2LTA5LTEzICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIGNvbnRyb2xzIGJlaGF2ZSBzdHJh
bmdlbHkgd2hlbiBjaGFuZ2luZyBtZWRpYSBzb3VyY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE5MTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI4MjI3ODA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAg
QWRkcyB0aHJlZSBuZXcgdW5pdCB0ZXN0cyB2ZXJpZnlpbmcgdGhhdCBtZWRpYSBjb250cm9scyBy
ZW1haW4gc3RhYmxlIGR1cmluZyBjb21tb24gYHNyY2AgY2hhbmdlIHNjZW5hcmlvcy4gQWxzbwor
ICAgICAgICB0d2Vha3MgYW4gZXhpc3RpbmcgdGVzdCB0byBhY2NvdW50IGZvciBuZXcgYGVuZGVk
YCBiZWhhdmlvci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0MkNvY29hL1ZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOgorICAgICAgICAoLVtWaWRlb0NvbnRy
b2xzTWFuYWdlclRlc3RXZWJWaWV3IHdhaXRGb3JNZWRpYUNvbnRyb2xzVG9TaG93XSk6CisgICAg
ICAgICgtW1ZpZGVvQ29udHJvbHNNYW5hZ2VyVGVzdFdlYlZpZXcgd2FpdEZvck1lZGlhQ29udHJv
bHNUb0hpZGVdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tY2xp
Y2suaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvbGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWw6
IEFkZGVkLgorCiAyMDE2LTA5LTE0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggbWFzdGVyY2ZnX3VuaXR0ZXN0CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGRkNDY0NzgyMmIxM2I3NWYwYWRhMGVhMTIwZjhmYjc2ZGE0MzlhYzguLjhhNDljM2Jj
Yjc5YTQ2ZDA2YzBmOTE0NDM4YzRiYTQ5NjM5NDYxOTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC03NSw2ICs3NSw5IEBACiAJCTJFNjkxQUYzMUQ3OUU3NUUwMDEyOTQwNyAvKiBsYXJnZS12
aWRlby1wbGF5aW5nLXNjcm9sbC1hd2F5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2OTFBRjIxRDc5RTc1NDAwMTI5NDA3IC8qIGxh
cmdlLXZpZGVvLXBsYXlpbmctc2Nyb2xsLWF3YXkuaHRtbCAqLzsgfTsKIAkJMkU3NzY1Q0QxNkM0
RDgwQTAwQkEyQkIxIC8qIG1haW5JT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDQzE2QzREODBBMDBCQTJCQjEgLyogbWFpbklPUy5tbSAq
LzsgfTsKIAkJMkU3NzY1Q0YxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTc3NjVDRTE2QzREODExMDBC
QTJCQjEgLyogbWFpbk1hYy5tbSAqLzsgfTsKKwkJMkVGRjA2QzMxRDg4NjIxRTAwMDRCQjMwIC8q
IGxhcmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkMyMUQ4ODYyMTIwMDA0QkIzMCAvKiBsYXJn
ZS12aWRlby1vZmZzY3JlZW4uaHRtbCAqLzsgfTsKKwkJMkVGRjA2QzUxRDg4Njc3NjAwMDRCQjMw
IC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZDNDFEODg2NzcwMDAwNEJC
MzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovOyB9OworCQkyRUZGMDZD
NzFEODg2QTU4MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUZGMDZD
NjFEODg2QTU2MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCAqLzsg
fTsKIAkJMzNCRTVBRjkxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVu
ZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMz
QkU1QUY4MTM3QjVBQUUwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoX0J1bmRsZS5jcHAg
Ki87IH07CiAJCTMzREM4OTEyMTQxOTU1RkUwMDc0N0VGNyAvKiBzaW1wbGUtaWZyYW1lLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNE
Qzg5MEUxNDE5NTM5MzAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRtbCAqLzsgfTsKIAkJMzNE
Qzg5MTQxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxs
YmFja19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzNEQzg5MTMxNDE5NTc5RjAwNzQ3RUY3IC8qIExvYWRDYW5jZWxlZE5vU2VydmVyUmVk
aXJlY3RDYWxsYmFja19CdW5kbGUuY3BwICovOyB9OwpAQCAtNTM4LDYgKzU0MSw5IEBACiAJCQlk
c3RQYXRoID0gVGVzdFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0g
NzsKIAkJCWZpbGVzID0gKAorCQkJCTJFRkYwNkM3MUQ4ODZBNTgwMDA0QkIzMCAvKiBjaGFuZ2Ut
dmlkZW8tc291cmNlLW9uLWVuZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTJFRkYw
NkM1MUQ4ODY3NzYwMDA0QkIzMCAvKiBjaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJMkVGRjA2QzMxRDg4NjIxRTAwMDRCQjMwIC8qIGxh
cmdlLXZpZGVvLW9mZnNjcmVlbi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFMTMx
QzE4MUQ4M0E5OEEwMDFCQTM2QyAvKiB3aWRlLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8u
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRTU0RjQwRDFEN0JDODQyMDA5MjFBREYg
LyogbGFyZ2UtdmlkZW8tbXV0ZXMtb25wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJMkU2OTFBRjMxRDc5RTc1RTAwMTI5NDA3IC8qIGxhcmdlLXZpZGVvLXBsYXlpbmctc2Ny
b2xsLWF3YXkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTc4MCw2ICs3ODYsOSBAQAog
CQkyRTY5MUFGMjFENzlFNzU0MDAxMjk0MDcgLyogbGFyZ2UtdmlkZW8tcGxheWluZy1zY3JvbGwt
YXdheS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLXBsYXlp
bmctc2Nyb2xsLWF3YXkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNzc2
NUNDMTZDNEQ4MEEwMEJBMkJCMSAvKiBtYWluSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gbWFpbklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkU3NzY1Q0UxNkM0RDgxMTAwQkEyQkIxIC8qIG1haW5NYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBtYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyogbGFyZ2UtdmlkZW8tb2Zmc2Ny
ZWVuLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tb2Zmc2Ny
ZWVuLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUZGMDZDNDFEODg2Nzcw
MDAwNEJCMzAgLyogY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1jbGljay5odG1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gImNoYW5nZS12aWRlby1zb3VyY2Utb24tY2xpY2suaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRkYwNkM2MUQ4ODZBNTYwMDA0QkIzMCAvKiBj
aGFuZ2UtdmlkZW8tc291cmNlLW9uLWVuZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gImNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMzNCOUNFMTEyNzdGMjMxMDBGRUZDRTMgLyogUHJldmVudEVtcHR5VXNlckFn
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByZXZlbnRFbXB0
eVVzZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMzQkU1QUY0MTM3
QjVBNkMwMDcwNTgxMyAvKiBNb3VzZU1vdmVBZnRlckNyYXNoLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzM0JFNUFGODEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3Zl
QWZ0ZXJDcmFzaF9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTQ1NSw2ICsxNDY0LDkgQEAKIAkJQTE2RjY2QjgxQzQwRTlFMTAwQkQ0RDI0IC8q
IFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJMkVGRjA2QzYxRDg4NkE1NjAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1zb3VyY2Utb24tZW5k
Lmh0bWwgKi8sCisJCQkJMkVGRjA2QzQxRDg4Njc3MDAwMDRCQjMwIC8qIGNoYW5nZS12aWRlby1z
b3VyY2Utb24tY2xpY2suaHRtbCAqLywKKwkJCQkyRUZGMDZDMjFEODg2MjEyMDAwNEJCMzAgLyog
bGFyZ2UtdmlkZW8tb2Zmc2NyZWVuLmh0bWwgKi8sCiAJCQkJMkUxMzFDMTcxRDgzQTk3RTAwMUJB
MzZDIC8qIHdpZGUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovLAogCQkJCTJF
NTRGNDBDMUQ3QkM4MzkwMDkyMUFERiAvKiBsYXJnZS12aWRlby1tdXRlcy1vbnBsYXlpbmcuaHRt
bCAqLywKIAkJCQkyRTY5MUFGMjFENzlFNzU0MDAxMjk0MDcgLyogbGFyZ2UtdmlkZW8tcGxheWlu
Zy1zY3JvbGwtYXdheS5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvVmlkZW9Db250cm9sc01hbmFnZXIubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQppbmRleCBk
MDdkMmU0OTU4ODYxOWU0ZDI3OTZiMGMxNTBiMmFmNmE5OTEwNzdmLi5iZDMxODYyYWU0MmVjYjQy
Y2E0MWYxMmI2YWQ2Zjg3ZmM5OTIxZmI3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9WaWRlb0NvbnRyb2xzTWFuYWdlci5tbQpA
QCAtMTE5LDYgKzExOSwxOCBAQCAtICh2b2lkKWV4cGVjdENvbnRyb2xzTWFuYWdlcjooQk9PTCll
eHBlY3RDb250cm9sc01hbmFnZXIgYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOgogICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZVdhaXRpbmcpOwogfQogCistICh2b2lkKXdhaXRGb3JNZWRp
YUNvbnRyb2xzVG9TaG93Cit7CisgICAgd2hpbGUgKCFbc2VsZiBfaGFzQWN0aXZlVmlkZW9Gb3JD
b250cm9sc01hbmFnZXJdKQorICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVu
TW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBiZWZvcmVEYXRlOltOU0RhdGUgZGlzdGFudFBhc3Rd
XTsKK30KKworLSAodm9pZCl3YWl0Rm9yTWVkaWFDb250cm9sc1RvSGlkZQoreworICAgIHdoaWxl
IChbc2VsZiBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXJdKQorICAgICAgICBbW05T
UnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRSdW5Mb29wTW9kZSBiZWZv
cmVEYXRlOltOU0RhdGUgZGlzdGFudFBhc3RdXTsKK30KKwogLSAodm9pZClwZXJmb3JtQWZ0ZXJS
ZWNlaXZpbmdNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgYWN0aW9uOihkaXNwYXRjaF9ibG9j
a190KWFjdGlvbgogewogICAgIFJldGFpblB0cjxNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFk
b3B0TlMoW1tNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdFdpdGhNZXNzYWdlOm1lc3NhZ2UgaGFu
ZGxlcjphY3Rpb25dKTsKQEAgLTMxOSw5ICszMzEsMTMgQEAgVEVTVChWaWRlb0NvbnRyb2xzTWFu
YWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJMYXJnZUF1dG9wbGF5aW5nVmlkZW9TZWVrc0FmdGVy
RW4KIHsKICAgICBSZXRhaW5QdHI8VmlkZW9Db250cm9sc01hbmFnZXJUZXN0V2ViVmlldyo+IHdl
YlZpZXcgPSBzZXRVcFdlYlZpZXdGb3JUZXN0aW5nVmlkZW9Db250cm9sc01hbmFnZXIoTlNNYWtl
UmVjdCgwLCAwLCAxMDAsIDEwMCkpOwogCi0gICAgLy8gU2luY2UgdGhlIHZpZGVvIGhhcyBlbmRl
ZCwgdGhlIGV4cGVjdGF0aW9uIGlzIE5PIGV2ZW4gaWYgdGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxs
eSBzZWVrcyB0byB0aGUgYmVnaW5uaW5nLgogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVk
OkAibGFyZ2UtdmlkZW8tc2Vlay1hZnRlci1lbmRpbmciXTsKLSAgICBbd2ViVmlldyBleHBlY3RD
b250cm9sc01hbmFnZXI6Tk8gYWZ0ZXJSZWNlaXZpbmdNZXNzYWdlOkAiZW5kZWQiXTsKKworICAg
IC8vIEltbWVkaWF0ZWx5IGFmdGVyIGVuZGluZywgdGhlIGNvbnRyb2xzIHNob3VsZCBzdGlsbCBi
ZSBwcmVzZW50LgorICAgIFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpZRVMgYWZ0ZXJS
ZWNlaXZpbmdNZXNzYWdlOkAiZW5kZWQiXTsKKworICAgIC8vIEF0IHNvbWUgcG9pbnQgaW4gdGhl
IGZ1dHVyZSwgdGhleSBzaG91bGQgYXV0b21hdGljYWxseSBoaWRlLgorICAgIFt3ZWJWaWV3IHdh
aXRGb3JNZWRpYUNvbnRyb2xzVG9IaWRlXTsKIH0KIAogVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdl
ciwgVmlkZW9Db250cm9sc01hbmFnZXJMYXJnZUF1dG9wbGF5aW5nVmlkZW9TZWVrc0FuZFBsYXlz
QWZ0ZXJFbmRpbmcpCkBAIC0zODUsNiArNDAxLDMzIEBAIFRFU1QoVmlkZW9Db250cm9sc01hbmFn
ZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyVGVhcnNEb3duTWVkaWFDb250cm9sc09uRGVhbGxvYykK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkVGVzdCk7CiB9CiAKK1RFU1Qo
VmlkZW9Db250cm9sc01hbmFnZXIsIFZpZGVvQ29udHJvbHNNYW5hZ2VyRG9lc05vdFNob3dNZWRp
YUNvbnRyb2xzRm9yT2Zmc2NyZWVuVmlkZW8pCit7CisgICAgUmV0YWluUHRyPFZpZGVvQ29udHJv
bHNNYW5hZ2VyVGVzdFdlYlZpZXcqPiB3ZWJWaWV3ID0gc2V0VXBXZWJWaWV3Rm9yVGVzdGluZ1Zp
ZGVvQ29udHJvbHNNYW5hZ2VyKE5TTWFrZVJlY3QoMCwgMCwgMTAyNCwgNzY4KSk7CisKKyAgICBb
d2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImxhcmdlLXZpZGVvLW9mZnNjcmVlbiJdOworICAg
IFt3ZWJWaWV3IGV4cGVjdENvbnRyb2xzTWFuYWdlcjpOTyBhZnRlclJlY2VpdmluZ01lc3NhZ2U6
QCJtb3ZlZCJdOworfQorCitURVNUKFZpZGVvQ29udHJvbHNNYW5hZ2VyLCBWaWRlb0NvbnRyb2xz
TWFuYWdlcktlZXBzQ29udHJvbHNTdGFibGVEdXJpbmdTcmNDaGFuZ2VPbkNsaWNrKQoreworICAg
IFJldGFpblB0cjxWaWRlb0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3Kj4gd2ViVmlldyA9IHNl
dFVwV2ViVmlld0ZvclRlc3RpbmdWaWRlb0NvbnRyb2xzTWFuYWdlcihOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSk7CisKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImNoYW5nZS12
aWRlby1zb3VyY2Utb24tY2xpY2siXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yUGFnZVRvTG9hZFdp
dGhBdXRvcGxheWluZ1ZpZGVvczoxXTsKKyAgICBbd2ViVmlldyBtb3VzZURvd25BdFBvaW50Ok5T
TWFrZVBvaW50KDQwMCwgMzAwKV07CisKKyAgICBbd2ViVmlldyBleHBlY3RDb250cm9sc01hbmFn
ZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpAImNoYW5nZWQiXTsKK30KKworVEVTVChWaWRl
b0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9sc01hbmFnZXJLZWVwc0NvbnRyb2xzU3RhYmxl
RHVyaW5nU3JjQ2hhbmdlT25FbmQpCit7CisgICAgUmV0YWluUHRyPFZpZGVvQ29udHJvbHNNYW5h
Z2VyVGVzdFdlYlZpZXcqPiB3ZWJWaWV3ID0gc2V0VXBXZWJWaWV3Rm9yVGVzdGluZ1ZpZGVvQ29u
dHJvbHNNYW5hZ2VyKE5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApKTsKKworICAgIFt3ZWJWaWV3
IGxvYWRUZXN0UGFnZU5hbWVkOkAiY2hhbmdlLXZpZGVvLXNvdXJjZS1vbi1lbmQiXTsKKyAgICBb
d2ViVmlldyBleHBlY3RDb250cm9sc01hbmFnZXI6WUVTIGFmdGVyUmVjZWl2aW5nTWVzc2FnZTpA
ImNoYW5nZWQiXTsKK30KKwogVEVTVChWaWRlb0NvbnRyb2xzTWFuYWdlciwgVmlkZW9Db250cm9s
c01hbmFnZXJTbWFsbFZpZGVvSW5NZWRpYURvY3VtZW50KQogewogICAgIFJldGFpblB0cjxWaWRl
b0NvbnRyb2xzTWFuYWdlclRlc3RXZWJWaWV3Kj4gd2ViVmlldyA9IHNldFVwV2ViVmlld0ZvclRl
c3RpbmdWaWRlb0NvbnRyb2xzTWFuYWdlcihOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9jaGFuZ2Ut
dmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJDb2NvYS9jaGFuZ2UtdmlkZW8tc291cmNlLW9uLWNsaWNrLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YzhjMWQyODY1MjUzYWU2MmQwMjU2OGQxN2EzYjEwMDg2NDE0NTM4NAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1z
b3VyY2Utb24tY2xpY2suaHRtbApAQCAtMCwwICsxLDMzIEBACis8aGVhZD4KKyAgICA8c3R5bGU+
CisgICAgICAgIHZpZGVvIHsKKyAgICAgICAgICAgIHdpZHRoOiA4MDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogNjAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgICAgZnVuY3Rpb24gY2hhbmdlU291cmNlKCkgewor
ICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidmlkZW8iKTsK
KyAgICAgICAgICAgIHZpZGVvLnNyYyA9ICJsYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCI7Cisg
ICAgICAgICAgICB2aWRlby5wbGF5KCk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJjaGFuZ2Vk
Iik7CisgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5kbGVQbGF5aW5n
KCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy5wbGF5aW5nSGFuZGxlci5wb3N0TWVzc2FnZSgiYXV0b3BsYXllZCIpOworICAgICAgICAgICAg
ICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIDApOwor
ICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0
b3BsYXkgb25wbGF5aW5nPWhhbmRsZVBsYXlpbmcoKSBvbm1vdXNlZG93bj1jaGFuZ2VTb3VyY2Uo
KSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0Ij48L3ZpZGVvPgorPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvY2hhbmdlLXZp
ZGVvLXNvdXJjZS1vbi1lbmQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Utb24tZW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZkY2Jk
YTVjOWUyMjI4MzMxM2I0MGE2NjBiMzkyYjUzNTA5MzY4ZAotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2NoYW5nZS12aWRlby1zb3VyY2Ut
b24tZW5kLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAg
ICB2aWRlbyB7CisgICAgICAgICAgICB3aWR0aDogODAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6
IDYwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCI+CisgICAgICAgIHZhciBoYXNCZWd1blBsYXlpbmdCZWZvcmUgPSBmYWxzZTsK
KworICAgICAgICBmdW5jdGlvbiBjaGFuZ2VTb3VyY2UoKSB7CisgICAgICAgICAgICB2YXIgdmlk
ZW8gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2aWRlbyIpOworICAgICAgICAgICAgdmlkZW8u
c3JjID0gImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IjsKKyAgICAgICAgICAgIHZpZGVvLnBs
YXkoKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMucGxheWluZ0hhbmRsZXIucG9zdE1lc3NhZ2UoImNoYW5nZWQiKTsKKyAgICAgICAgICAgICAg
ICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVBsYXlpbmcoKSB7CisgICAgICAgICAgICBp
ZiAoaGFzQmVndW5QbGF5aW5nQmVmb3JlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAgICAgaGFzQmVndW5QbGF5aW5nQmVmb3JlID0gdHJ1ZTsKKyAgICAgICAgICAgIHZhciB2
aWRlbyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIik7CisgICAgICAgICAgICB2aWRl
by5jdXJyZW50VGltZSA9IHZpZGVvLmR1cmF0aW9uIC0gMC41OworICAgICAgICB9CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gYXV0b3BsYXkgb25wbGF5aW5nPWhh
bmRsZVBsYXlpbmcoKSBzcmM9ImxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IiBvbmVuZGVkPWNo
YW5nZVNvdXJjZSgpPjwvdmlkZW8+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xhcmdlLXZpZGVvLW9mZnNjcmVl
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUwYTY4NWZmNjU5YTk4ZDc3ZTE2NTQxZjFkOTAxMjMxN2I1MmQ1
M2UKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9sYXJnZS12aWRlby1vZmZzY3JlZW4uaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICB2aWRlbyB7Cisg
ICAgICAgICAgICB3aWR0aDogNDgwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMyMHB4OworICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB9CisgICAgICAgIC5vZmZzY3Jl
ZW4geworICAgICAgICAgICAgdG9wOiAtMzIwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIG1vdmVWaWRlb09mZnNjcmVlbigpIHsKKyAg
ICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZpZGVvIikuY2xhc3NMaXN0LmFkZCgi
b2Zmc2NyZWVuIik7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnBsYXlpbmdIYW5kbGVyLnBvc3RNZXNzYWdlKCJtb3ZlZCIpOworICAgICAgICAg
ICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sIDAp
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8g
YXV0b3BsYXkgb25wbGF5aW5nPW1vdmVWaWRlb09mZnNjcmVlbigpPjxzb3VyY2Ugc3JjPSJsYXJn
ZS12aWRlby13aXRoLWF1ZGlvLm1wNCI+PC92aWRlbz4KKzwvYm9keT4KKzxodG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>