<?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>168583</bug_id>
          
          <creation_ts>2017-02-19 21:44:09 -0800</creation_ts>
          <short_desc>Add plumbing to the UI process for TextIndicatorData when computing the drag image</short_desc>
          <delta_ts>2017-03-13 19:02:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>168600</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1278839</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-19 21:44:09 -0800</bug_when>
    <thetext>Work towards &lt;rdar://problem/30313681&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278852</commentid>
    <comment_count>1</comment_count>
      <attachid>302117</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-19 22:38:18 -0800</bug_when>
    <thetext>Created attachment 302117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279022</commentid>
    <comment_count>2</comment_count>
      <attachid>302164</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-20 12:26:14 -0800</bug_when>
    <thetext>Created attachment 302164
Attempt to fix win/GTK builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279030</commentid>
    <comment_count>3</comment_count>
      <attachid>302166</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-20 12:45:43 -0800</bug_when>
    <thetext>Created attachment 302166
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279042</commentid>
    <comment_count>4</comment_count>
      <attachid>302166</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-20 13:23:04 -0800</bug_when>
    <thetext>Comment on attachment 302166
Patch for landing

Clearing flags on attachment: 302166

Committed r212669: &lt;http://trac.webkit.org/changeset/212669&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302117</attachid>
            <date>2017-02-19 22:38:18 -0800</date>
            <delta_ts>2017-02-20 10:32:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168583-20170219223535.patch</filename>
            <type>text/plain</type>
            <size>37513</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU4OTM1NTE0NzRlNDAy
N2UwNDgxNDczMTQyN2Y2ODk3MDc5ZDRhNi4uYmRhMjFjMWY4ZWQ3ZDI0YjIxYzZiMmUxMDRiNzRh
ZjdmZGIxY2UzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTAyLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwbHVtYmlu
ZyB0byB0aGUgVUkgcHJvY2VzcyBmb3IgVGV4dEluZGljYXRvckRhdGEgd2hlbiBjb21wdXRpbmcg
dGhlIGRyYWcgaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2ODU4MworICAgICAgICBXb3JrIHRvd2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMwMzEz
NjgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZHMgc29tZSBhZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBkcmFnIGltYWdlIGNyZWF0aW9uIGZ1bmN0
aW9ucyB0byBhbGxvdyBwbGF0Zm9ybXMgdG8gc3BlY2lmeSBUZXh0SW5kaWNhdG9yRGF0YQorICAg
ICAgICBmb3IgYSBsaW5rIG9yIHNlbGVjdGlvbi1iYXNlZCBEcmFnSW1hZ2UuIFRoaXMgVGV4dElu
ZGljYXRvckRhdGEgaXMgYW4gb3B0aW9uYWwgbWVtYmVyIG9mIHRoZSBEcmFnSW1hZ2UsIGFuZCBp
cworICAgICAgICBwcm9wYWdhdGVkIHRvIHRoZSBVSSBwcm9jZXNzIHZpYSBTZXREcmFnSW1hZ2Ug
aW4gdGhlIFdlYkRyYWdDbGllbnQuCisKKyAgICAgICAgQWRkaXRpb25hbGx5IHJlbmFtZXMgaGFz
RGF0YUludGVyYWN0aW9uQXRQb3NpdGlvbiB0byBoYXNTZWxlY3Rpb25BdFBvc2l0aW9uIHRvIGJl
dHRlciByZWZsZWN0IGl0cyBwdXJwb3NlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgc2luY2Ug
dGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGFnZS9EcmFnQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKToK
KyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aGFzU2Vs
ZWN0aW9uQXRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoYXNEYXRhSW50ZXJh
Y3Rpb25BdFBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJh
Z0ltYWdlRm9yU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURyYWdJbWFnZUZv
ckxpbmspOgorICAgICAgICAoV2ViQ29yZTo6bV9pbmRpY2F0b3JEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdJbWFnZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1h
Z2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayk6CisKIDIwMTctMDItMTYgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXhlcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCAzM2M0YzM4OWY5ODI2YjQ0MTc0N2I5MmRlNDBlYWRjOGU5M2JhYjc0
Li5iYWJmOWQ4ODRmY2M2Yzg1MjNlODY1MzU2MTgzNjBjMzVhNDQzNDk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMDItMTkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHBsdW1iaW5nIHRvIHRoZSBVSSBwcm9jZXNz
IGZvciBUZXh0SW5kaWNhdG9yRGF0YSB3aGVuIGNvbXB1dGluZyB0aGUgZHJhZyBpbWFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NTgzCisgICAg
ICAgIFdvcmsgdG93YXJkcyA8cmRhcjovL3Byb2JsZW0vMzAzMTM2ODE+CisKKyAgICAgICAgQWNj
b3VudHMgZm9yIGNoYW5nZXMgaW4gV2ViQ29yZSAtLSBzZWUgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJI
VE1MVmlldyBfc2VsZWN0aW9uRHJhZ2dpbmdJbWFnZV0pOgorICAgICAgICAoLVtXZWJIVE1MVmll
dyBzZWxlY3Rpb25JbWFnZUZvcmNpbmdCbGFja1RleHQ6c2VsZWN0aW9uSW1hZ2VGb3JjaW5nQmxh
Y2tUZXh0Ol0pOgorCiAyMDE3LTAyLTE2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21h
aWwuY29tPgogCiAgICAgICAgIFtKU0NdIERyb3AgUGFzc1JlZlB0ciBpbiBpbnNwZWN0b3IvCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggNmY0MWI1M2FhOGZjODU0MzQ1ZTUyOTQxZTdmZjY0YjU4MWVmNDkyMi4uY2Fm
ZGVhNjA0MGNiYmI1YzRhMDEyZGRiNjdkZDY3NjcyY2E5Y2QzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDU3IEBACisyMDE3LTAyLTE5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBwbHVtYmluZyB0byB0aGUgVUkgcHJvY2VzcyBmb3IgVGV4dElu
ZGljYXRvckRhdGEgd2hlbiBjb21wdXRpbmcgdGhlIGRyYWcgaW1hZ2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4MworICAgICAgICBXb3JrIHRv
d2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMwMzEzNjgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZXMgdGhlIFNldERyYWdJbWFnZSBJUEMgbWVz
c2FnZSB0byBzZW5kIFRleHRJbmRpY2F0b3JEYXRhIG92ZXIgdG8gdGhlIFVJIHByb2Nlc3MuIEFs
c28gY2hhbmdlcyB0aGUgYm9vbGVhbgorICAgICAgICBpc0xpbmsgcGFyYW1ldGVyIHRvIGJlIGEg
RHJhZ1NvdXJjZUFjdGlvbiBpbnN0ZWFkLCBsZWF2aW5nIGl0IHVwIHRvIHRoZSByZWNlaXZpbmcg
ZW5kIChpbiB0aGUgVUkgcHJvY2VzcykgdG8KKyAgICAgICAgc3BlY2lhbCBjYXNlIGxpbmtzLgor
CisgICAgICAgIEFkZGl0aW9uYWxseSwgcmVuYW1lcyBoYXNEYXRhSW50ZXJhY3Rpb25BdFBvc2l0
aW9uIHRvIGhhc1NlbGVjdGlvbkF0UG9zaXRpb24gdG8gYmV0dGVyIHJlZmxlY3QgaXRzIHB1cnBv
c2UuCisKKyAgICAgICAgVGhlc2UgY2hhbmdlcyBhcmUgb25seSBpbmZyYXN0cnVjdHVyYWwgc2hv
dWxkIG5vdCBhbHRlciBhbnkgYmVoYXZpb3JzLgorCisgICAgICAgICogU2hhcmVkL2lvcy9JbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9pb3MvSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6OkludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11
bGF0ZURhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVkXSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbnRlcmVkOl0pOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uVXBkYXRlZDpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb246XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbmRlZDpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblNlc3Npb25EaWRFbmQ6d2l0
aE9wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZUZhaWxlZERhdGFJ
bnRlcmFjdGlvbldpdGhJbmRleDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZVdp
bGxCZWdpbkRhdGFJbnRlcmFjdGlvbldpdGhJbmRleDp3aXRoU2Vzc2lvbjpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9zaW11bGF0ZWRJdGVtc0ZvckRhdGFJbnRlcmFjdGlvbldpdGhJbmRleDpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Rlc3RpbmdEZWxlZ2F0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpzZXREcmFnSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQb2ludDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBwb2ludElzSW5EYXRhSW50ZXJhY3Rpb25Db250ZW50Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9kYXRhSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplcl0pOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IHBvaW50SXNJbkFzc2lzdGVkTm9kZTpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNldERyYWdJ
bWFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0
UG9zaXRpb25JbmZvcm1hdGlvbik6CisKIDIwMTctMDItMTcgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMl0gQWN0aW9uIHNoZWV0IHNob3VsZCBu
b3QgZGlzbWlzcyB3aGVuIGEgRERBY3Rpb24gd2l0aCB1c2VyIGludGVyZmFjZSBpcyBiZWluZyBw
cmVzZW50ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZDE2NzIy
MWMxNzMzNGQwMWNmMjhiOWJkY2VlYjk1OTExMDA3ZjlhOC4uOTVjYmVmZTI1YjRmNTMyZGM5Yjc4
MzBkY2JhY2QwNTI2OThhZDA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFn
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5j
cHAKQEAgLTg1MSw3ICs4NTEsMTAgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZy
YW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAgICAgICAg
fQogICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJj
ZUFjdGlvblNlbGVjdGlvbiwgZHJhZ09yaWdpbiwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgaWYg
KCFkcmFnSW1hZ2UpIHsKLSAgICAgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IGRpc3Nv
bHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24oc3JjKSwg
RHJhZ0ltYWdlQWxwaGEpIH07CisgICAgICAgICAgICBUZXh0SW5kaWNhdG9yRGF0YSB0ZXh0SW5k
aWNhdG9yOworICAgICAgICAgICAgZHJhZ0ltYWdlID0gRHJhZ0ltYWdlIHsgZGlzc29sdmVEcmFn
SW1hZ2VUb0ZyYWN0aW9uKGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbihzcmMsIHRleHRJbmRp
Y2F0b3IpLCBEcmFnSW1hZ2VBbHBoYSkgfTsKKyAgICAgICAgICAgIGlmICh0ZXh0SW5kaWNhdG9y
LmNvbnRlbnRJbWFnZSkKKyAgICAgICAgICAgICAgICBkcmFnSW1hZ2Uuc2V0SW5kaWNhdG9yRGF0
YSh0ZXh0SW5kaWNhdG9yKTsKICAgICAgICAgICAgIGRyYWdMb2MgPSBkcmFnTG9jRm9yU2VsZWN0
aW9uRHJhZyhzcmMpOwogICAgICAgICAgICAgbV9kcmFnT2Zmc2V0ID0gSW50UG9pbnQoZHJhZ09y
aWdpbi54KCkgLSBkcmFnTG9jLngoKSwgZHJhZ09yaWdpbi55KCkgLSBkcmFnTG9jLnkoKSk7CiAg
ICAgICAgIH0KQEAgLTkyMCwxMSArOTIzLDE0IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnN0YXJ0
RHJhZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3BlcmF0aW9uCiAK
ICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VB
Y3Rpb25MaW5rLCBkcmFnT3JpZ2luLCBkYXRhVHJhbnNmZXIpOwogICAgICAgICBpZiAoIWRyYWdJ
bWFnZSkgewotICAgICAgICAgICAgZHJhZ0ltYWdlID0gRHJhZ0ltYWdlIHsgY3JlYXRlRHJhZ0lt
YWdlRm9yTGluayhsaW5rVVJMLCBoaXRUZXN0UmVzdWx0LnRleHRDb250ZW50KCksIHNyYy5zZXR0
aW5ncygpLmZvbnRSZW5kZXJpbmdNb2RlKCkpIH07CisgICAgICAgICAgICBUZXh0SW5kaWNhdG9y
RGF0YSB0ZXh0SW5kaWNhdG9yOworICAgICAgICAgICAgZHJhZ0ltYWdlID0gRHJhZ0ltYWdlIHsg
Y3JlYXRlRHJhZ0ltYWdlRm9yTGluayhlbGVtZW50LCBsaW5rVVJMLCBoaXRUZXN0UmVzdWx0LnRl
eHRDb250ZW50KCksIHRleHRJbmRpY2F0b3IsIHNyYy5zZXR0aW5ncygpLmZvbnRSZW5kZXJpbmdN
b2RlKCksIG1fcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSB9OwogICAgICAgICAgICAgSW50U2l6
ZSBzaXplID0gZHJhZ0ltYWdlU2l6ZShkcmFnSW1hZ2UuZ2V0KCkpOwogICAgICAgICAgICAgbV9k
cmFnT2Zmc2V0ID0gSW50UG9pbnQoLXNpemUud2lkdGgoKSAvIDIsIC1MaW5rRHJhZ0JvcmRlcklu
c2V0KTsKICAgICAgICAgICAgIGRyYWdMb2MgPSBJbnRQb2ludChtb3VzZURyYWdnZWRQb2ludC54
KCkgKyBtX2RyYWdPZmZzZXQueCgpLCBtb3VzZURyYWdnZWRQb2ludC55KCkgKyBtX2RyYWdPZmZz
ZXQueSgpKTsKICAgICAgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IHBsYXRmb3JtQWRq
dXN0RHJhZ0ltYWdlRm9yRGV2aWNlU2NhbGVGYWN0b3IoZHJhZ0ltYWdlLmdldCgpLCBtX3BhZ2Uu
ZGV2aWNlU2NhbGVGYWN0b3IoKSkgfTsKKyAgICAgICAgICAgIGlmICh0ZXh0SW5kaWNhdG9yLmNv
bnRlbnRJbWFnZSkKKyAgICAgICAgICAgICAgICBkcmFnSW1hZ2Uuc2V0SW5kaWNhdG9yRGF0YSh0
ZXh0SW5kaWNhdG9yKTsKICAgICAgICAgfQogICAgICAgICBkb1N5c3RlbURyYWcoV1RGTW92ZShk
cmFnSW1hZ2UpLCBkcmFnTG9jLCBtb3VzZURyYWdnZWRQb2ludCwgeyB9LCBkYXRhVHJhbnNmZXIs
IHNyYywgRHJhZ1NvdXJjZUFjdGlvbkxpbmspOwogCkBAIC05NDIsNyArOTQ4LDEwIEBAIGJvb2wg
RHJhZ0NvbnRyb2xsZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0
YXRlLCBEcmFnT3BlcmF0aW9uCiAgICAgICAgIG1fY2xpZW50LndpbGxQZXJmb3JtRHJhZ1NvdXJj
ZUFjdGlvbihEcmFnU291cmNlQWN0aW9uQXR0YWNobWVudCwgZHJhZ09yaWdpbiwgZGF0YVRyYW5z
ZmVyKTsKICAgICAgICAgCiAgICAgICAgIGlmICghZHJhZ0ltYWdlKSB7Ci0gICAgICAgICAgICBk
cmFnSW1hZ2UgPSBEcmFnSW1hZ2UgeyBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oY3JlYXRl
RHJhZ0ltYWdlRm9yU2VsZWN0aW9uKHNyYyksIERyYWdJbWFnZUFscGhhKSB9OworICAgICAgICAg
ICAgVGV4dEluZGljYXRvckRhdGEgdGV4dEluZGljYXRvcjsKKyAgICAgICAgICAgIGRyYWdJbWFn
ZSA9IERyYWdJbWFnZSB7IGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihjcmVhdGVEcmFnSW1h
Z2VGb3JTZWxlY3Rpb24oc3JjLCB0ZXh0SW5kaWNhdG9yKSwgRHJhZ0ltYWdlQWxwaGEpIH07Cisg
ICAgICAgICAgICBpZiAodGV4dEluZGljYXRvci5jb250ZW50SW1hZ2UpCisgICAgICAgICAgICAg
ICAgZHJhZ0ltYWdlLnNldEluZGljYXRvckRhdGEodGV4dEluZGljYXRvcik7CiAgICAgICAgICAg
ICBkcmFnTG9jID0gZHJhZ0xvY0ZvclNlbGVjdGlvbkRyYWcoc3JjKTsKICAgICAgICAgICAgIG1f
ZHJhZ09mZnNldCA9IEludFBvaW50KGRyYWdPcmlnaW4ueCgpIC0gZHJhZ0xvYy54KCksIGRyYWdP
cmlnaW4ueSgpIC0gZHJhZ0xvYy55KCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRl
eCAyZjc4ZTZkNDMxMzA3ZTQ5NzNhNGYxNDAyZGQ5OWEyZDg0YWNhMzNlLi41NjcwNDQ3OWVkZGNh
ODZlNjIwYjdkODU2YjkwODAwMDQ4ZjlhMDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIxOTEs
NyArMjE5MSw3IEBAIHZvaWQgUGFnZTo6YWNjZXNzaWJpbGl0eVNldHRpbmdzRGlkQ2hhbmdlKCkK
IAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogCi1ib29sIFBhZ2U6Omhhc0RhdGFJbnRl
cmFjdGlvbkF0UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pIGNvbnN0Citib29s
IFBhZ2U6Omhhc1NlbGVjdGlvbkF0UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24p
IGNvbnN0CiB7CiAgICAgYXV0byBjdXJyZW50U2VsZWN0aW9uID0gbV9tYWluRnJhbWUtPnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpOwogICAgIGlmICghY3VycmVudFNlbGVjdGlvbi5pc1JhbmdlKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCmluZGV4IDRlMThmZGJkMjU3N2NiNWUzYWMyODU4M2E1ZjBhOTdjN2E1YTdj
MDYuLmI5NWE1OGVhZTM5YjNkZGMzZWU3YTcyNmEyOTE4ZmJiY2IyOWRlNjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCkBAIC01NzEsNyArNTcxLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNVdGlsaXR5UGFnZSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNVdGlsaXR5UGFnZTsgfQogCiAjaWYgRU5BQkxFKERBVEFfSU5U
RVJBQ1RJT04pCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNEYXRhSW50ZXJhY3Rpb25BdFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGhhc1NlbGVjdGlvbkF0UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwogI2VuZGlm
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcAppbmRleCBjNzIw
M2ExM2Q5NDBmNDZhOGFjZTc0MzEwNjg5MDA1M2U3ZDI0ZDJkLi5iOGI0NTkwZjFhNzQ0N2Q1MWIz
MzViNTc5MmZjZTQyZjc0NTk0NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EcmFnSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlRl
eHRJbmRpY2F0b3IuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjIsNyArMTIzLDcg
QEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvck5vZGUoRnJhbWUmIGZyYW1lLCBOb2Rl
JiBub2RlKQogCiAjaWYgIUVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogCi1EcmFnSW1hZ2VSZWYg
Y3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgYm9vbCBmb3JjZUJsYWNr
VGV4dCkKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24oRnJhbWUmIGZy
YW1lLCBUZXh0SW5kaWNhdG9yRGF0YSYsIGJvb2wgZm9yY2VCbGFja1RleHQpCiB7CiAgICAgU25h
cHNob3RPcHRpb25zIG9wdGlvbnMgPSBmb3JjZUJsYWNrVGV4dCA/IFNuYXBzaG90T3B0aW9uc0Zv
cmNlQmxhY2tUZXh0IDogU25hcHNob3RPcHRpb25zTm9uZTsKICAgICByZXR1cm4gY3JlYXRlRHJh
Z0ltYWdlRnJvbVNuYXBzaG90KHNuYXBzaG90U2VsZWN0aW9uKGZyYW1lLCBvcHRpb25zKSwgbnVs
bHB0cik7CkBAIC0yMTksNyArMjIwLDcgQEAgRHJhZ0ltYWdlUmVmIHBsYXRmb3JtQWRqdXN0RHJh
Z0ltYWdlRm9yRGV2aWNlU2NhbGVGYWN0b3IoRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG8KICNlbmRp
ZgogCiAjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0lOKQotRHJhZ0ltYWdlUmVm
IGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJMJiwgY29uc3QgU3RyaW5nJiwgRm9udFJlbmRlcmlu
Z01vZGUpCitEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGluayhFbGVtZW50JiwgVVJM
JiwgY29uc3QgU3RyaW5nJiwgRm9udFJlbmRlcmluZ01vZGUsIGZsb2F0KQogewogICAgIHJldHVy
biBudWxscHRyOwogfQpAQCAtMjM4LDYgKzIzOSw3IEBAIERyYWdJbWFnZTo6RHJhZ0ltYWdlKERy
YWdJbWFnZVJlZiBkcmFnSW1hZ2VSZWYpCiBEcmFnSW1hZ2U6OkRyYWdJbWFnZShEcmFnSW1hZ2Um
JiBvdGhlcikKICAgICA6IG1fZHJhZ0ltYWdlUmVmIHsgc3RkOjpleGNoYW5nZShvdGhlci5tX2Ry
YWdJbWFnZVJlZiwgbnVsbHB0cikgfQogeworICAgIG1faW5kaWNhdG9yRGF0YSA9IG90aGVyLm1f
aW5kaWNhdG9yRGF0YTsKIH0KIAogRHJhZ0ltYWdlJiBEcmFnSW1hZ2U6Om9wZXJhdG9yPShEcmFn
SW1hZ2UmJiBvdGhlcikKQEAgLTI0Niw2ICsyNDgsNyBAQCBEcmFnSW1hZ2UmIERyYWdJbWFnZTo6
b3BlcmF0b3I9KERyYWdJbWFnZSYmIG90aGVyKQogICAgICAgICBkZWxldGVEcmFnSW1hZ2UobV9k
cmFnSW1hZ2VSZWYpOwogCiAgICAgbV9kcmFnSW1hZ2VSZWYgPSBzdGQ6OmV4Y2hhbmdlKG90aGVy
Lm1fZHJhZ0ltYWdlUmVmLCBudWxscHRyKTsKKyAgICBtX2luZGljYXRvckRhdGEgPSBvdGhlci5t
X2luZGljYXRvckRhdGE7CiAKICAgICByZXR1cm4gKnRoaXM7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdJbWFnZS5oCmluZGV4IGIzMGYzNGY2NmIzZjNhZjlhODY0NzYzMDZiMWI1M2FiMzFhN2Y4
OGYuLmUzMjU1ZDE5YWQyYWViMjYxYzM3NzQzNTBjOTAwODMxMjU4NzUyOWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RyYWdJbWFnZS5oCkBAIC0yOSw3ICsyOSw5IEBACiAjaW5jbHVkZSAiSW1hZ2VP
cmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3Mu
aCIKKyNpbmNsdWRlICJUZXh0SW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKICNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CkBAIC00OCw2ICs1MCw3IEBAIHR5cGVkZWYgc3RydWN0IEhCSVRN
QVBfXyogSEJJVE1BUDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBFbGVtZW50Owog
Y2xhc3MgRnJhbWU7CiBjbGFzcyBJbWFnZTsKIGNsYXNzIEludFJlY3Q7CkBAIC04MywxMCArODYs
MTAgQEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIEltYWdl
T3JpZW50YXRpb25EZXNjcmlwdGlvbik7CiBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNv
bkZvckNhY2hlZEltYWdlRmlsZW5hbWUoY29uc3QgU3RyaW5nJik7CiAKIFdFQkNPUkVfRVhQT1JU
IERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JOb2RlKEZyYW1lJiwgTm9kZSYpOwotV0VC
Q09SRV9FWFBPUlQgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbihGcmFt
ZSYsIGJvb2wgZm9yY2VCbGFja1RleHQgPSBmYWxzZSk7CitXRUJDT1JFX0VYUE9SVCBEcmFnSW1h
Z2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKEZyYW1lJiwgVGV4dEluZGljYXRvckRh
dGEmLCBib29sIGZvcmNlQmxhY2tUZXh0ID0gZmFsc2UpOwogV0VCQ09SRV9FWFBPUlQgRHJhZ0lt
YWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvclJhbmdlKEZyYW1lJiwgUmFuZ2UmLCBib29sIGZvcmNl
QmxhY2tUZXh0ID0gZmFsc2UpOwogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckltYWdl
KEZyYW1lJiwgTm9kZSYsIEludFJlY3QmIGltYWdlUmVjdCwgSW50UmVjdCYgZWxlbWVudFJlY3Qp
OwotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJMJiwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgRm9udFJlbmRlcmluZ01vZGUpOworRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFn
ZUZvckxpbmsoRWxlbWVudCYsIFVSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIFRleHRJbmRpY2F0
b3JEYXRhJiwgRm9udFJlbmRlcmluZ01vZGUsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKIHZv
aWQgZGVsZXRlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZik7CiAKIGNsYXNzIERyYWdJbWFnZSBmaW5h
bCB7CkBAIC05OCwxMSArMTAxLDE2IEBAIHB1YmxpYzoKIAogICAgIERyYWdJbWFnZSYgb3BlcmF0
b3I9KERyYWdJbWFnZSYmKTsKIAorICAgIHZvaWQgc2V0SW5kaWNhdG9yRGF0YShjb25zdCBUZXh0
SW5kaWNhdG9yRGF0YSYgZGF0YSkgeyBtX2luZGljYXRvckRhdGEgPSBkYXRhOyB9CisgICAgYm9v
bCBoYXNJbmRpY2F0b3JEYXRhKCkgY29uc3QgeyByZXR1cm4gISFtX2luZGljYXRvckRhdGE7IH0K
KyAgICBzdGQ6Om9wdGlvbmFsPFRleHRJbmRpY2F0b3JEYXRhPiBpbmRpY2F0b3JEYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9pbmRpY2F0b3JEYXRhOyB9CisKICAgICBleHBsaWNpdCBvcGVyYXRvciBi
b29sKCkgY29uc3QgeyByZXR1cm4gISFtX2RyYWdJbWFnZVJlZjsgfQogICAgIERyYWdJbWFnZVJl
ZiBnZXQoKSBjb25zdCB7IHJldHVybiBtX2RyYWdJbWFnZVJlZjsgfQogCiBwcml2YXRlOgogICAg
IERyYWdJbWFnZVJlZiBtX2RyYWdJbWFnZVJlZjsKKyAgICBzdGQ6Om9wdGlvbmFsPFRleHRJbmRp
Y2F0b3JEYXRhPiBtX2luZGljYXRvckRhdGE7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5tbQppbmRleCAwZTlkY2ExYmE2YzlhNjhhOGE5MGJmNTUx
YTRiNGZiYzc0OGU1YWNhLi4yYThkZmQzZjVlN2E5ZTQxMDBlODg4NWY0MzRkOTdiZDc5YTc3YjMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTMw
LDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiQml0bWFwSW1hZ2UuaCIKICNpbXBvcnQgIkNvcmVHcmFw
aGljc1NQSS5oIgorI2ltcG9ydCAiRWxlbWVudC5oIgogI2ltcG9ydCAiRm9udENhc2NhZGUuaCIK
ICNpbXBvcnQgIkZvbnREZXNjcmlwdGlvbi5oIgogI2ltcG9ydCAiRm9udFNlbGVjdG9yLmgiCkBA
IC0zNyw2ICszOCw3IEBACiAjaW1wb3J0ICJJbWFnZS5oIgogI2ltcG9ydCAiVVJMLmgiCiAjaW1w
b3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIKKyNpbXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKICNpbXBv
cnQgIlRleHRSdW4uaCIKICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC0yNjUs
NyArMjY3LDcgQEAgc3RhdGljIHZvaWQgZHJhd0RvdWJsZWRBdFBvaW50KE5TU3RyaW5nICpzdHJp
bmcsIE5TUG9pbnQgdGV4dFBvaW50LCBOU0NvbG9yICp0b3AKICAgICAgICAgZHJhd0F0UG9pbnQo
c3RyaW5nLCB0ZXh0UG9pbnQsIGZvbnQsIHRvcENvbG9yKTsKIH0KIAotRHJhZ0ltYWdlUmVmIGNy
ZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZvbnRS
ZW5kZXJpbmdNb2RlKQorRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoRWxlbWVu
dCYsIFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBUZXh0SW5kaWNhdG9yRGF0YSYsIEZv
bnRSZW5kZXJpbmdNb2RlLCBmbG9hdCkKIHsKICAgICBOU1N0cmluZyAqbGFiZWwgPSBuc1N0cmlu
Z05pbElmRW1wdHkodGl0bGUpOwogICAgIE5TVVJMICpjb2NvYVVSTCA9IHVybDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDg0NTc2NTZhNmFjNjQ0NDdjNjBk
NWQ3ZDNiYTkyYWFkMmQxOTAzM2YuLjQ5OWM1Yzc1ZWM3ZmMyOGNkMTc3OTliYmMzZDU4Y2M0ZDQy
MzFjMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMjM4
OSw3ICsyMzg5LDggQEAgc3RhdGljIGJvb2wgbW91c2VFdmVudElzUGFydE9mQ2xpY2tPckRyYWco
TlNFdmVudCAqZXZlbnQpCiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7
CiAKLSAgICBhdXRvIGRyYWdJbWFnZSA9IGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbigqY29y
ZUZyYW1lKTsKKyAgICBUZXh0SW5kaWNhdG9yRGF0YSB0ZXh0SW5kaWNhdG9yOworICAgIGF1dG8g
ZHJhZ0ltYWdlID0gY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCpjb3JlRnJhbWUsIHRleHRJ
bmRpY2F0b3IpOwogICAgIFtkcmFnSW1hZ2UgX3dlYl9kaXNzb2x2ZVRvRnJhY3Rpb246V2ViRHJh
Z0ltYWdlQWxwaGFdOwogCiAgICAgcmV0dXJuIGRyYWdJbWFnZS5hdXRvcmVsZWFzZSgpOwpAQCAt
NzMzNyw3ICs3MzM4LDggQEAgc3RhdGljIENHSW1hZ2VSZWYgc2VsZWN0aW9uSW1hZ2UoRnJhbWUq
IGZyYW1lLCBib29sIGZvcmNlQmxhY2tUZXh0KQogI2lmIFBMQVRGT1JNKElPUykKICAgICByZXR1
cm4gc2VsZWN0aW9uSW1hZ2UoY29yZUZyYW1lLCBmb3JjZUJsYWNrVGV4dCk7CiAjZWxzZQotICAg
IHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24oKmNvcmVGcmFtZSwgZm9yY2VCbGFj
a1RleHQpLmF1dG9yZWxlYXNlKCk7CisgICAgVGV4dEluZGljYXRvckRhdGEgdGV4dEluZGljYXRv
cjsKKyAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCpjb3JlRnJhbWUsIHRl
eHRJbmRpY2F0b3IsIGZvcmNlQmxhY2tUZXh0KS5hdXRvcmVsZWFzZSgpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24uaAppbmRleCA4YmVjZTFiNzA1ZWFlYmYyZDJkNzM3ZTRlNjYz
OGRkZjYxNzc2MWE3Li43MmE0NGJmZTNjOWM4YWQ1MjkwNzVkMDQyMTg5MTM2Y2E5ODlhYjFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBAIC00Miw3ICs0Miw3IEBAIHN0cnVjdCBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAKICAgICBib29sIG5vZGVBdFBvc2l0aW9uSXNB
c3Npc3RlZE5vZGUgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAg
IGJvb2wgaGFzRGF0YUludGVyYWN0aW9uQXRQb3NpdGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBo
YXNTZWxlY3Rpb25BdFBvc2l0aW9uIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgaXNTZWxl
Y3RhYmxlIHsgZmFsc2UgfTsKICAgICBib29sIGlzTmVhck1hcmtlZFRleHQgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KaW5kZXggMTYzZWRhNTYzNmZlOGFkOTQ3MTI1OWY0NWFi
YzQyMmM1Zjg1NWVlZS4uNzBhMmViNzQwYTBjNDU0ZGY2NjhiZjI4MWI2NTJiYjQzNjUwY2ZjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0ludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAKICAgICBlbmNvZGVyIDw8IG5vZGVBdFBvc2l0aW9uSXNBc3Npc3RlZE5vZGU7CiAj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgZW5jb2RlciA8PCBoYXNEYXRhSW50ZXJh
Y3Rpb25BdFBvc2l0aW9uOworICAgIGVuY29kZXIgPDwgaGFzU2VsZWN0aW9uQXRQb3NpdGlvbjsK
ICNlbmRpZgogICAgIGVuY29kZXIgPDwgaXNTZWxlY3RhYmxlOwogICAgIGVuY29kZXIgPDwgaXNO
ZWFyTWFya2VkVGV4dDsKQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgSW50ZXJhY3Rpb24K
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaGFzRGF0YUludGVyYWN0aW9uQXRQb3NpdGlv
bikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaGFzU2VsZWN0aW9uQXRQb3NpdGlv
bikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDY4NDY4OTE4M2ZlMGI0ZjAw
NTcyYTA2MWRiY2FkMGNmYjYzNWFiODcuLjQ0NTM0MWYzYmY2NmI3NWYzY2QxZTI2NTg5ZGEyNzY0
MGMxZmViZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCkBAIC01MTc0LDY3ICs1MTc0LDM5IEBAIHN0YXRpYyBXZWJDb3JlOjpVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbihVSVNl
CiAKIC0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZWQKIHsK
LSNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBbX2NvbnRlbnRWaWV3IF9zaW11bGF0
ZURhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVkOl90ZXN0aW5nRGVsZWdhdGUuZGF0YUlu
dGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXJdOwotI2VuZGlmCiB9CiAKIC0gKHZvaWQpX3NpbXVs
YXRlRGF0YUludGVyYWN0aW9uRW50ZXJlZDooaWQpaW5mbwogewotI2lmIEVOQUJMRShEQVRBX0lO
VEVSQUNUSU9OKQotICAgIFtfY29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW50
ZXJlZDppbmZvXTsKLSNlbmRpZgogfQogCiAtICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlv
blVwZGF0ZWQ6KGlkKWluZm8KIHsKLSNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBb
X2NvbnRlbnRWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0ZWQ6aW5mb107Ci0jZW5k
aWYKIH0KIAogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25QZXJmb3JtT3BlcmF0aW9u
OihpZClpbmZvCiB7Ci0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgW19jb250ZW50
VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25QZXJmb3JtT3BlcmF0aW9uOmluZm9dOwotI2Vu
ZGlmCiB9CiAKIC0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW5kZWQ6KGlkKWluZm8K
IHsKLSNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBbX2NvbnRlbnRWaWV3IF9zaW11
bGF0ZURhdGFJbnRlcmFjdGlvbkVuZGVkOmluZm9dOwotI2VuZGlmCiB9CiAKIC0gKHZvaWQpX3Np
bXVsYXRlRGF0YUludGVyYWN0aW9uU2Vzc2lvbkRpZEVuZDooaWQpc2Vzc2lvbiB3aXRoT3BlcmF0
aW9uOihOU1VJbnRlZ2VyKW9wZXJhdGlvbgogewotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQotICAgIFtfY29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uU2Vzc2lvbkRpZEVu
ZDpzZXNzaW9uIHdpdGhPcGVyYXRpb246b3BlcmF0aW9uXTsKLSNlbmRpZgogfQogCiAtICh2b2lk
KV9zaW11bGF0ZUZhaWxlZERhdGFJbnRlcmFjdGlvbldpdGhJbmRleDooTlNJbnRlZ2VyKXNvdXJj
ZUluZGV4CiB7Ci0jaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgW19jb250ZW50Vmll
dyBfc2ltdWxhdGVGYWlsZWREYXRhSW50ZXJhY3Rpb25XaXRoSW5kZXg6c291cmNlSW5kZXhdOwot
I2VuZGlmCiB9CiAKIC0gKHZvaWQpX3NpbXVsYXRlV2lsbEJlZ2luRGF0YUludGVyYWN0aW9uV2l0
aEluZGV4OihOU0ludGVnZXIpc291cmNlSW5kZXggd2l0aFNlc3Npb246KGlkKXNlc3Npb24KIHsK
LSNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBbX2NvbnRlbnRWaWV3IF9zaW11bGF0
ZVdpbGxCZWdpbkRhdGFJbnRlcmFjdGlvbldpdGhJbmRleDpzb3VyY2VJbmRleCB3aXRoU2Vzc2lv
bjpzZXNzaW9uXTsKLSNlbmRpZgogfQogCiAtIChOU0FycmF5ICopX3NpbXVsYXRlZEl0ZW1zRm9y
RGF0YUludGVyYWN0aW9uV2l0aEluZGV4OihOU0ludGVnZXIpc291cmNlSW5kZXgKIHsKLSNpZiBF
TkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICByZXR1cm4gW19jb250ZW50VmlldyBfc2ltdWxh
dGVkSXRlbXNGb3JEYXRhSW50ZXJhY3Rpb25XaXRoSW5kZXg6c291cmNlSW5kZXhdOwotI2Vsc2UK
ICAgICByZXR1cm4gQFsgXTsKLSNlbmRpZgogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Rlc3RpbmdEZWxlZ2F0ZS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXN0aW5nRGVsZWdhdGUuaAppbmRleCBm
MzdmOWFmNGQ2ZjM3ODRjZDU3YWFlZGRmOTk2MDZjOTgzNDRjNDFhLi5iNDliYzNiMmM0NzNlYzU4
NjcyMGI0NjA4ZDkxZTg0MjQ4NTUxNzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Rlc3RpbmdEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGVzdGluZ0RlbGVnYXRlLmgKQEAgLTMxLDIyICszMSwx
MyBAQAogCiBAY2xhc3MgV0tXZWJWaWV3OwogCi0jaWYgVEFSR0VUX09TX0lQSE9ORQotQGNsYXNz
IFVJR2VzdHVyZVJlY29nbml6ZXI7Ci1AY2xhc3MgVUlMb25nUHJlc3NHZXN0dXJlUmVjb2duaXpl
cjsKLSNlbmRpZgotCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAcHJvdG9jb2wgX1dLVGVz
dGluZ0RlbGVnYXRlIDxOU09iamVjdD4KIEBvcHRpb25hbAogCiAjaWYgVEFSR0VUX09TX0lQSE9O
RQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSUxvbmdQcmVzc0dlc3R1cmVSZWNv
Z25pemVyICpkYXRhSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplcjsKLS0gKHZvaWQpd2ViVmll
d0RpZFNlbmREYXRhSW50ZXJhY3Rpb25TdGFydFJlcXVlc3Q6KFdLV2ViVmlldyAqKXdlYlZpZXc7
Ci0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVjZWl2ZURhdGFJbnRl
cmFjdGlvblN0YXJ0UmVzcG9uc2U6KEJPT0wpc3RhcnRlZDsKIC0gKHZvaWQpd2ViVmlld0RpZFBl
cmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOihXS1dlYlZpZXcgKil3ZWJW
aWV3OwotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGJlZ2luRGF0YUludGVy
YWN0aW9uV2l0aFNvdXJjZUluZGV4OihOU0ludGVnZXIpc291cmNlSW5kZXggZ2VzdHVyZVJlY29n
bml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcjsKICNlbmRpZiAv
LyBUQVJHRVRfT1NfUEhPTkUKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgKaW5kZXggNGE1NzJkZjBiZDMwZjNiMDQ1ZWY1NTA1YTg5ZjM1OTVkYjUwZWZiOC4uYTUxM2Zl
ZmM2MDk4ZWUxMTliZmIwOThkY2YwZWMyNWNiMWU5MzQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCkBAIC0xNzQsNyArMTc0LDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuUmVj
ZWl2ZWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBl
eGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
Y2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2UsIGJv
b2wgaXNMaW5rRHJhZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXREcmFnSW1hZ2UoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJp
dG1hcD4gZHJhZ0ltYWdlLCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5SW5w
dXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpID0gMDsKQEAgLTM4NCw3ICszODQs
NyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgdmlydHVhbCB2
b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9v
bCBzdGFydGVkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0RGF0YUludGVyYWN0aW9uV2l0
aEltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hh
cmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBh
bmNob3JQb2ludCwgYm9vbCBpc0xpbmspID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnREYXRh
SW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0
aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBh
bmNob3JQb2ludCwgdWludDY0X3QgYWN0aW9uKSA9IDA7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3M2E3ZmU4Y2NlYjU5MDk3MjNiMTcz
NzQ5ZmNkZTc3NGE2OGE3NjNjLi5mMDQ0MmE0ZWNkOTYyMzY2ZWE4YmQ0NTU1NTgwNThiMGU1YjZm
MDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC04MzcsNyAr
ODM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZHJhZ0VuZGVkKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uLCB1aW50NjRfdCBvcGVyYXRpb24pOwogICAgIHZvaWQgZHJhZ0NhbmNlbGxlZCgpOwogI2lm
IFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGRy
YWdJbWFnZUhhbmRsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgZHJhZ0ltYWdlQW5jaG9y
LCBib29sIGlzTGlua0RyYWcpOworICAgIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
IGRyYWdJbWFnZUhhbmRsZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0
YT4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGRyYWdJbWFnZUFuY2hvciwgdWludDY0X3Qg
YWN0aW9uKTsKICAgICB2b2lkIHNldFByb21pc2VkRGF0YUZvckltYWdlKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBpbWFnZUhhbmRsZSwg
dWludDY0X3QgaW1hZ2VTaXplLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcm
IGV4dGVuc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB2aXNpYmxlVVJMLCBjb25zdCBTaGFy
ZWRNZW1vcnk6OkhhbmRsZSYgYXJjaGl2ZUhhbmRsZSwgdWludDY0X3QgYXJjaGl2ZVNpemUpOwog
I2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBhM2YwZTQ3ZjdkYWYwMzMyNGRj
NDg4ZmIwYzFmNTE4NjRmODUyNzUwLi5hOGQ5MTQyNmRhZGE4MTczNGM3ZjYwOWJlMTBkMWY2Yjk0
MTJkODdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KQEAgLTMwOCw3ICszMDgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIERpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBkcmFnT3BlcmF0
aW9uLCBib29sIG1vdXNlSXNPdmVyRmlsZUlucHV0LCB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zVG9C
ZUFjY2VwdGVkKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi0gICAgU2V0RHJhZ0ltYWdlKFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9u
LCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGRyYWdJbWFnZSwgV2ViQ29yZTo6Rmxv
YXRQb2ludCBkcmFnSW1hZ2VBbmNob3IsIGJvb2wgbGlua0RyYWcpCisgICAgU2V0RHJhZ0ltYWdl
KFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlIGRyYWdJbWFnZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGF0YT4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6RmxvYXRQb2ludCBkcmFnSW1hZ2VBbmNob3Is
IHVpbnQ2NF90IGFjdGlvbikKICAgICBTZXRQcm9taXNlZERhdGFGb3JJbWFnZShTdHJpbmcgcGFz
dGVib2FyZE5hbWUsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaW1hZ2VIYW5kbGUsIHVp
bnQ2NF90IGltYWdlU2l6ZSwgU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgZXh0ZW5zaW9uLCBTdHJp
bmcgdGl0bGUsIFN0cmluZyB1cmwsIFN0cmluZyB2aXNpYmxlVVJMLCBXZWJLaXQ6OlNoYXJlZE1l
bW9yeTo6SGFuZGxlIGFyY2hpdmVIYW5kbGUsIHVpbnQ2NF90IGFyY2hpdmVTaXplKQogI2lmIEVO
QUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgU2V0UHJvbWlzZWREYXRhRm9yQXR0YWNobWVu
dChTdHJpbmcgcGFzdGVib2FyZE5hbWUsIFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGV4dGVuc2lv
biwgU3RyaW5nIHRpdGxlLCBTdHJpbmcgdXJsLCBTdHJpbmcgdmlzaWJsZVVSTCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBlOTE2
MTdiZWRkMGNjMmFkZTUyMDM2NDMxMTJlZjc2ZTI3NmM4NTcwLi40N2E5Zjk0NmJjOGMwYWFmZTc3
ZTIwMmI0NmY2NDBkNzE2ZDNkN2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBleGVjdXRlVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsK
ICAgICB2b2lkIGFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW5SZWNlaXZlZChjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmKSBvdmVycmlkZTsKICAgICBib29sIGV4ZWN1dGVTYXZlZENvbW1hbmRC
eVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0
RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1Jl
ZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRyYWdJbWFnZSwgYm9vbCBpc0xpbmtEcmFnKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50
UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2UsIFdlYkNvcmU6
OkRyYWdTb3VyY2VBY3Rpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlU2VjdXJlSW5wdXRT
dGF0ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVzZXRTZWN1cmVJbnB1dFN0YXRlKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9u
KCkgb3ZlcnJpZGU7CkBAIC0yMDQsNyArMjA0LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoREFU
QV9JTlRFUkFDVElPTikKICAgICB2b2lkIGRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9s
bGVyT3BlcmF0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRIYW5kbGVTdGFydERhdGFJbnRl
cmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKSBvdmVycmlkZTsKLSAgICB2b2lkIHN0YXJ0RGF0
YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3Np
dGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBpc0xpbmspIG92ZXJyaWRlOworICAgIHZv
aWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+LCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBhbmNob3JQb2ludCwgdWludDY0X3QgYWN0aW9uKSBvdmVycmlkZTsKICNlbmRp
ZgogCiAgICAgV0tDb250ZW50VmlldyAqbV9jb250ZW50VmlldzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDNjMGQ3Yjg5OWIy
NDRkNzY4N2JlYjdiZWQ5NzZiYzRmZGFjMGFjMzIuLjgwNDlmMTVmMWMyZjdiOGJkNzE3MzM1MmYz
Y2M1ZjM5Mjc4Y2M5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMzUzLDcgKzM1Myw3IEBAIGJvb2wgUGFnZUNsaWVudElt
cGw6OmV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYpCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXREcmFnSW1hZ2UoY29uc3Qg
SW50UG9pbnQmLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4sIGJvb2wpCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpzZXREcmFnSW1hZ2UoY29uc3QgSW50UG9pbnQmLCBQYXNzUmVmUHRyPFNoYXJl
YWJsZUJpdG1hcD4sIERyYWdTb3VyY2VBY3Rpb24pCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KQEAgLTc3Myw5ICs3NzMsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRIYW5kbGVTdGFy
dERhdGFJbnRlcmFjdGlvblJlcXVlc3QoYm9vbCBzdGFydGVkKQogICAgIFttX2NvbnRlbnRWaWV3
IF9kaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3Q6c3RhcnRlZF07CiB9CiAKLXZv
aWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKGNvbnN0IElu
dFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgYm9vbCBpc0xpbmspCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBJbnRQb2lu
dCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZSwg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4gaW5kaWNhdG9yRGF0YSwg
Y29uc3QgRmxvYXRQb2ludCYgYW5jaG9yUG9pbnQsIHVpbnQ2NF90IGFjdGlvbikKIHsKLSAgICBb
bV9jb250ZW50VmlldyBfc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6U2hhcmVhYmxlQml0
bWFwOjpjcmVhdGUoaW1hZ2UpLT5tYWtlQ0dJbWFnZUNvcHkoKSBhdENsaWVudFBvc2l0aW9uOkNH
UG9pbnRNYWtlKGNsaWVudFBvc2l0aW9uLngoKSwgY2xpZW50UG9zaXRpb24ueSgpKSBhbmNob3JQ
b2ludDphbmNob3JQb2ludCBpc0xpbms6aXNMaW5rXTsKKyAgICBbbV9jb250ZW50VmlldyBfc3Rh
cnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6U2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaW1hZ2Up
LT5tYWtlQ0dJbWFnZUNvcHkoKSB3aXRoSW5kaWNhdG9yRGF0YTppbmRpY2F0b3JEYXRhIGF0Q2xp
ZW50UG9zaXRpb246Q0dQb2ludE1ha2UoY2xpZW50UG9zaXRpb24ueCgpLCBjbGllbnRQb3NpdGlv
bi55KCkpIGFuY2hvclBvaW50OmFuY2hvclBvaW50IGFjdGlvbjphY3Rpb25dOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCmluZGV4IGJkY2QwNGM5ZjEzY2M2MDZmNzI4ZjMwYTQyZWY3MTk2Nzdh
OTVmM2IuLmI2YmZjNmQ0ZTkxNDBiYmE1NTIxM2Y1NTI3NzJmMjM0ODVlZmUxZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaApAQCAtMjcwLDcgKzI3MCw3IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7
CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAtICh2b2lkKV9kaWRQZXJmb3JtRGF0YUlu
dGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbjsKIC0gKHZvaWQpX2RpZEhhbmRsZVN0YXJ0RGF0
YUludGVyYWN0aW9uUmVxdWVzdDooQk9PTClzdGFydGVkOwotLSAodm9pZClfc3RhcnREYXRhSW50
ZXJhY3Rpb25XaXRoSW1hZ2U6KFJldGFpblB0cjxDR0ltYWdlUmVmPilpbWFnZSBhdENsaWVudFBv
c2l0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGFuY2hvclBvaW50OihDR1BvaW50KWFuY2hv
clBvaW50IGlzTGluazooQk9PTClpc0xpbms7CistICh2b2lkKV9zdGFydERhdGFJbnRlcmFjdGlv
bldpdGhJbWFnZTooUmV0YWluUHRyPENHSW1hZ2VSZWY+KWltYWdlIHdpdGhJbmRpY2F0b3JEYXRh
OihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPilpbmRpY2F0b3JEYXRh
IGF0Q2xpZW50UG9zaXRpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gYW5jaG9yUG9pbnQ6KENH
UG9pbnQpYW5jaG9yUG9pbnQgYWN0aW9uOih1aW50NjRfdClhY3Rpb247CiAtICh2b2lkKV9zaW11
bGF0ZURhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVkOihVSUxvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOwogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbnRlcmVkOihpZClpbmZv
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlRGF0
YUludGVyYWN0aW9uVXBkYXRlZDooaWQpaW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDY5YTk1N2ZiNWI0YTIyNDdmYjY1NDY3NzU2MDI2
N2ZiZTQ2N2NmODguLmY5NTdjNmM1YjJjNTdiMDBmMTA2Y2I4MjBlNTk2NWYwODE2MGE4NmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCkBAIC0xNDQxLDcgKzE0NDEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
aXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpi
LCBVSQogICAgIFtzZWxmIGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVl
c3RdOwogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgaWYgKF9wb3NpdGlvbklu
Zm9ybWF0aW9uLmhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb24pIHsKKyAgICBpZiAoX3Bvc2l0
aW9uSW5mb3JtYXRpb24uaGFzU2VsZWN0aW9uQXRQb3NpdGlvbikgewogICAgICAgICAvLyBJZiB0
aGUgcG9zaXRpb24gbWlnaHQgaW5pdGlhdGUgYSBkYXRhIGludGVyYWN0aW9uLCB3ZSBkb24ndCB3
YW50IHRvIGNvbnNpZGVyIHRoZSBjb250ZW50IGF0IHRoaXMgcG9zaXRpb24gdG8gYmUgc2VsZWN0
YWJsZS4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbmFtZWQgdG8gc29tZXRo
aW5nIG1vcmUgcHJlY2lzZSwgc3VjaCBhcyB0ZXh0U2VsZWN0aW9uU2hvdWxkUmVjb2duaXplR2Vz
dHVyZUF0UG9pbnQ6CiAgICAgICAgIHJldHVybiBOTzsKQEAgLTE0NjEsMTQgKzE0NjEsMTEgQEAg
c3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlH
ZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNJ
bWFnZSB8fCBfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmspCiAgICAgICAgIHJldHVybiBZRVM7
CiAKLSAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb24uaGFzRGF0YUludGVyYWN0aW9uQXRQ
b3NpdGlvbjsKKyAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb24uaGFzU2VsZWN0aW9uQXRQ
b3NpdGlvbjsKIH0KIAogLSAoVUlMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciAqKV9kYXRhSW50
ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplcgogewotICAgIGlmIChbX3dlYlZpZXcuX3Rlc3RpbmdE
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRhdGFJbnRlcmFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyKV0pCi0gICAgICAgIHJldHVybiBfd2ViVmlldy5fdGVzdGluZ0RlbGVnYXRl
LmRhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyOwotCiAgICAgcmV0dXJuIF9kYXRhSW50
ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKTsKIH0KIApAQCAtMTQ4Nyw3ICsxNDg0LDcg
QEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwg
VUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICBbc2VsZiBlbnN1cmVQb3NpdGlvbkluZm9y
bWF0aW9uSXNVcFRvRGF0ZTpyZXF1ZXN0XTsKIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQotICAgIGlmIChfcG9zaXRpb25JbmZvcm1hdGlvbi5oYXNEYXRhSW50ZXJhY3Rpb25BdFBvc2l0
aW9uKSB7CisgICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmhhc1NlbGVjdGlvbkF0UG9zaXRp
b24pIHsKICAgICAgICAgLy8gSWYgdGhlIHBvc2l0aW9uIG1pZ2h0IGluaXRpYXRlIGRhdGEgaW50
ZXJhY3Rpb24sIHdlIGRvbid0IHdhbnQgdG8gY2hhbmdlIHRoZSBzZWxlY3Rpb24uCiAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRvIHNvbWV0aGluZyBtb3JlIHByZWNp
c2UsIHN1Y2ggYXMgdGV4dEludGVyYWN0aW9uU2hvdWxkUmVjb2duaXplR2VzdHVyZUF0UG9pbnQ6
CiAgICAgICAgIHJldHVybiBOTzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGwuaAppbmRleCBlNzMyMmJlMzQzYzE3ODVhMGUzOWE2ZGE4NDVjNTlkOWUyNTRk
MGQ2Li4zZWEzMmRjMDA4ZmNmYWExZDY1MmM5NzNmMTM3MjYwMTY1OTM3YzlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC05NSw3ICs5NSw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5VbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJl
ZG8pIG92ZXJyaWRlOwogICAgIHZvaWQgZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5k
b09yUmVkbykgb3ZlcnJpZGU7CiAgICAgYm9vbCBleGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3Rv
cihjb25zdCBTdHJpbmcmIHNlbGVjdG9yKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldERyYWdJbWFn
ZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hh
cmVhYmxlQml0bWFwPiBkcmFnSW1hZ2UsIGJvb2wgaXNMaW5rRHJhZykgb3ZlcnJpZGU7CisgICAg
dm9pZCBzZXREcmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9u
LCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdlLCBXZWJDb3JlOjpEcmFnU291
cmNlQWN0aW9uKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFByb21pc2VkRGF0YUZvckltYWdlKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVm
ZmVyPiBpbWFnZUJ1ZmZlciwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBl
eHRlbnNpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsCiAgICAgICAgIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIHZpc2libGVVcmwsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVm
ZmVyPiBhcmNoaXZlQnVmZmVyKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0K
aW5kZXggYjA2Zjc0YjkxMjJlMzk5M2RmNGQ5NzhjY2ViN2M0M2YwMGNmOTRhNy4uZGUyYTI3N2E5
YTI0NTU1ODc1MDY4NTk0OTQ3NTIxNDA4OGQ3OTk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC0zMzcsNyArMzM3LDcgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyB1
bmRvT3JSZWRvKQogICAgIHJldHVybiAodW5kb09yUmVkbyA9PSBXZWJQYWdlUHJveHk6OlVuZG8p
ID8gW1ttX3ZpZXcgdW5kb01hbmFnZXJdIHVuZG9dIDogW1ttX3ZpZXcgdW5kb01hbmFnZXJdIHJl
ZG9dOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXREcmFnSW1hZ2UoY29uc3QgSW50UG9p
bnQmIGNsaWVudFBvc2l0aW9uLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdl
LCBib29sIGlzTGlua0RyYWcpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXREcmFnSW1hZ2UoY29u
c3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4g
ZHJhZ0ltYWdlLCBEcmFnU291cmNlQWN0aW9uIGFjdGlvbikKIHsKICAgICBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gZHJhZ0NHSW1hZ2UgPSBkcmFnSW1hZ2UtPm1ha2VDR0ltYWdlKCk7CiAgICAgUmV0
YWluUHRyPE5TSW1hZ2U+IGRyYWdOU0ltYWdlID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGlu
aXRXaXRoQ0dJbWFnZTpkcmFnQ0dJbWFnZS5nZXQoKSBzaXplOmRyYWdJbWFnZS0+c2l6ZSgpXSk7
CkBAIC0zNDUsNyArMzQ1LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKGNv
bnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGEKICAgICBzaXplLnNj
YWxlKDEuMCAvIG1faW1wbC0+cGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwogICAgIFtkcmFn
TlNJbWFnZSBzZXRTaXplOnNpemVdOwogCi0gICAgbV9pbXBsLT5kcmFnSW1hZ2VGb3JWaWV3KG1f
dmlldywgZHJhZ05TSW1hZ2UuZ2V0KCksIGNsaWVudFBvc2l0aW9uLCBpc0xpbmtEcmFnKTsKKyAg
ICBtX2ltcGwtPmRyYWdJbWFnZUZvclZpZXcobV92aWV3LCBkcmFnTlNJbWFnZS5nZXQoKSwgY2xp
ZW50UG9zaXRpb24sIGFjdGlvbiA9PSBEcmFnU291cmNlQWN0aW9uTGluayk7CiB9CiAKIHZvaWQg
UGFnZUNsaWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBpbWFnZUJ1ZmZlciwgY29uc3Qg
U3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBleHRlbnNpb24sIGNvbnN0IFN0cmluZyYg
dGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHZpc2libGVVUkwsIFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBhcmNoaXZlQnVmZmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCA4OTc2ODljZDg5NjU2YWRjNjFl
N2UxMzdkODdkMjFjNmZhZmE2NTI1Li40MGI4NjhhZmZmMGEwMjgzOTFhYzFiM2FiMmJiY2Q4OTE4
MGJhM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQ
cm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94
eU1hYy5tbQpAQCAtMjY5LDEwICsyNjksMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcGxhY2VT
ZWxlY3Rpb25XaXRoUGFzdGVib2FyZERhdGEoY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGUKICNl
bmRpZgogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRE
cmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBjb25zdCBGbG9hdFBvaW50
JiwgYm9vbCBpc0xpbmtEcmFnKQordm9pZCBXZWJQYWdlUHJveHk6OnNldERyYWdJbWFnZShjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiBkcmFnSW1hZ2VIYW5kbGUsIHN0ZDo6b3B0aW9uYWw8VGV4dEluZGljYXRvckRh
dGE+LCBjb25zdCBGbG9hdFBvaW50JiwgdWludDY0X3QgYWN0aW9uKQogewogICAgIGlmIChhdXRv
IGRyYWdJbWFnZSA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGRyYWdJbWFnZUhhbmRsZSkpCi0g
ICAgICAgIG1fcGFnZUNsaWVudC5zZXREcmFnSW1hZ2UoY2xpZW50UG9zaXRpb24sIFdURk1vdmUo
ZHJhZ0ltYWdlKSwgaXNMaW5rRHJhZyk7CisgICAgICAgIG1fcGFnZUNsaWVudC5zZXREcmFnSW1h
Z2UoY2xpZW50UG9zaXRpb24sIFdURk1vdmUoZHJhZ0ltYWdlKSwgc3RhdGljX2Nhc3Q8RHJhZ1Nv
dXJjZUFjdGlvbj4oYWN0aW9uKSk7CiAKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkU3RhcnREcmFnKCksIG1fcGFnZUlEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xp
ZW50TWFjLm1tCmluZGV4IDI0NTNjOTA1NTdhODFjYmM0NDNhY2QxN2IwMDUwMmZiYTBhOTVlYjAu
LmQ1ZjY5ZDYxYjNlM2M0Mjg3ZjE0MzkzZGQwMTI4MDdiNTlhZTNmMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRHJhZ0NsaWVudE1hYy5tbQpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIFdlYkRyYWdDbGllbnQ6
OnN0YXJ0RHJhZyhEcmFnSW1hZ2UgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBwb2ludCwgY29uc3Qg
SW50UAogICAgIG1fcGFnZS0+d2lsbFN0YXJ0RHJhZygpOwogCiAgICAgLy8gRklYTUU6IFNlZW1z
IHRoaXMgbWVzc2FnZSBzaG91bGQgYmUgbmFtZWQgU3RhcnREcmFnLCBub3QgU2V0RHJhZ0ltYWdl
LgotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXREcmFnSW1hZ2Uo
ZnJhbWUudmlldygpLT5jb250ZW50c1RvV2luZG93KHBvaW50KSwgaGFuZGxlLCB7IH0sIGRyYWdT
b3VyY2VBY3Rpb24gPT0gRHJhZ1NvdXJjZUFjdGlvbkxpbmspKTsKKyAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0RHJhZ0ltYWdlKGZyYW1lLnZpZXcoKS0+Y29udGVu
dHNUb1dpbmRvdyhwb2ludCksIGhhbmRsZSwgc3RkOjpudWxsb3B0LCB7IH0sIGRyYWdTb3VyY2VB
Y3Rpb24pKTsKIH0KIAogc3RhdGljIFdlYkNvcmU6OkNhY2hlZEltYWdlKiBjYWNoZWRJbWFnZShF
bGVtZW50JiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGU3Njk1MDIyYzYzYWJlMmRhZmRiNjA4YmE0ZjE1
MTgxMzg3MTcwZjkuLjY2YjkyYTFlNjQ3YWYxOTQyY2Y1MDU0NTg0N2NlYmIzMTMwYTFmYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KQEAgLTI1NDksNyArMjU0OSw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0UG9zaXRpb25JbmZv
cm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYgcmVxdWVzCiAgICAg
fQogCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgaW5mby5oYXNEYXRhSW50ZXJh
Y3Rpb25BdFBvc2l0aW9uID0gbV9wYWdlLT5oYXNEYXRhSW50ZXJhY3Rpb25BdFBvc2l0aW9uKGFk
anVzdGVkUG9pbnQpOworICAgIGluZm8uaGFzU2VsZWN0aW9uQXRQb3NpdGlvbiA9IG1fcGFnZS0+
aGFzU2VsZWN0aW9uQXRQb3NpdGlvbihhZGp1c3RlZFBvaW50KTsKICNlbmRpZgogICAgIGluZm8u
YWRqdXN0ZWRQb2ludEZvck5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyA9IGFkanVzdGVkUG9p
bnQ7CiB9Cg==
</data>
<flag name="review"
          id="323852"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302164</attachid>
            <date>2017-02-20 12:26:14 -0800</date>
            <delta_ts>2017-02-20 12:26:37 -0800</delta_ts>
            <desc>Attempt to fix win/GTK builds</desc>
            <filename>bug-168583-20170220122331.patch</filename>
            <type>text/plain</type>
            <size>39639</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAwYzdiMzA2NGIxYTJk
NTMxYzdlZTI0ODY0ZmMzNGY1NDdjNTI1ZC4uNjM0MTc0YWY1OGM3NmRhM2IyYmZlZGVjOGU0YWRj
ZDU1MWZmMzFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE3LTAyLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwbHVtYmlu
ZyB0byB0aGUgVUkgcHJvY2VzcyBmb3IgVGV4dEluZGljYXRvckRhdGEgd2hlbiBjb21wdXRpbmcg
dGhlIGRyYWcgaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2ODU4MworICAgICAgICBXb3JrIHRvd2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMwMzEz
NjgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkcyBz
b21lIGFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIGRyYWcgaW1hZ2UgY3JlYXRpb24gZnVuY3Rpb25z
IHRvIGFsbG93IHBsYXRmb3JtcyB0byBzcGVjaWZ5IFRleHRJbmRpY2F0b3JEYXRhCisgICAgICAg
IGZvciBhIGxpbmsgb3Igc2VsZWN0aW9uLWJhc2VkIERyYWdJbWFnZS4gVGhpcyBUZXh0SW5kaWNh
dG9yRGF0YSBpcyBhbiBvcHRpb25hbCBtZW1iZXIgb2YgdGhlIERyYWdJbWFnZSwgYW5kIGlzCisg
ICAgICAgIHByb3BhZ2F0ZWQgdG8gdGhlIFVJIHByb2Nlc3MgdmlhIFNldERyYWdJbWFnZSBpbiB0
aGUgV2ViRHJhZ0NsaWVudC4KKworICAgICAgICBBZGRpdGlvbmFsbHkgcmVuYW1lcyBoYXNEYXRh
SW50ZXJhY3Rpb25BdFBvc2l0aW9uIHRvIGhhc1NlbGVjdGlvbkF0UG9zaXRpb24gdG8gYmV0dGVy
IHJlZmxlY3QgaXRzIHB1cnBvc2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBzaW5jZSB0aGVy
ZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpzdGFydERyYWcpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoYXNTZWxlY3Rp
b25BdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omhhc0RhdGFJbnRlcmFjdGlv
bkF0UG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL0RyYWdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1h
Z2VGb3JTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGlu
ayk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnSW1hZ2U6Om9wZXJhdG9yPSk6CisgICAgICAgICog
cGxhdGZvcm0vRHJhZ0ltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlRHJhZ0ltYWdlRm9yTGluayk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdp
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKToKKwogMjAx
Ny0wMi0xNyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIG5ldyBkcmFnIGNvZGUgcGF0aCBhbmQgdXNlIGl0IGZvciBkcmFnZ2luZyBwbGFpbiB0
ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTU4YzcwOGVjZDg0YTRjODg2NjFjYmEwZGY2YTJjZThm
MTY0ODYzNi4uN2YxNTNlYzg4Yjc3YjBlNzk4NzlhZTFlOGEzMDJiMDg5ZjczYzBlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTAyLTE5ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwbHVtYmluZyB0byB0aGUgVUkg
cHJvY2VzcyBmb3IgVGV4dEluZGljYXRvckRhdGEgd2hlbiBjb21wdXRpbmcgdGhlIGRyYWcgaW1h
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4
MworICAgICAgICBXb3JrIHRvd2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMwMzEzNjgxPgorCisgICAg
ICAgIEFjY291bnRzIGZvciBjaGFuZ2VzIGluIFdlYkNvcmUgLS0gc2VlIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBfc2VsZWN0aW9uRHJhZ2dpbmdJbWFnZV0pOgorICAgICAgICAoLVtXZWJIVE1M
VmlldyBzZWxlY3Rpb25JbWFnZUZvcmNpbmdCbGFja1RleHQ6c2VsZWN0aW9uSW1hZ2VGb3JjaW5n
QmxhY2tUZXh0Ol0pOgorCiAyMDE3LTAyLTE3ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbmV3IGRyYWcgY29kZSBwYXRoIGFuZCB1c2UgaXQg
Zm9yIGRyYWdnaW5nIHBsYWluIHRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2NDI1NTc3OWM4YjdkMjNjNjRh
MTlkNTNmNDI1MTlmZjRjMmQxNmU2Li5iNTdlMzgxZDVhYWQ2NjAzYmIxZmFhMDAyMmUxNWRiMDRh
MTk5MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTctMDItMTkgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHBsdW1iaW5nIHRv
IHRoZSBVSSBwcm9jZXNzIGZvciBUZXh0SW5kaWNhdG9yRGF0YSB3aGVuIGNvbXB1dGluZyB0aGUg
ZHJhZyBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY4NTgzCisgICAgICAgIFdvcmsgdG93YXJkcyA8cmRhcjovL3Byb2JsZW0vMzAzMTM2ODE+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBDaGFuZ2VzIHRo
ZSBTZXREcmFnSW1hZ2UgSVBDIG1lc3NhZ2UgdG8gc2VuZCBUZXh0SW5kaWNhdG9yRGF0YSBvdmVy
IHRvIHRoZSBVSSBwcm9jZXNzLiBBbHNvIGNoYW5nZXMgdGhlIGJvb2xlYW4KKyAgICAgICAgaXNM
aW5rIHBhcmFtZXRlciB0byBiZSBhIERyYWdTb3VyY2VBY3Rpb24gaW5zdGVhZCwgbGVhdmluZyBp
dCB1cCB0byB0aGUgcmVjZWl2aW5nIGVuZCAoaW4gdGhlIFVJIHByb2Nlc3MpIHRvCisgICAgICAg
IHNwZWNpYWwgY2FzZSBsaW5rcy4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHJlbmFtZXMgaGFz
RGF0YUludGVyYWN0aW9uQXRQb3NpdGlvbiB0byBoYXNTZWxlY3Rpb25BdFBvc2l0aW9uIHRvIGJl
dHRlciByZWZsZWN0IGl0cyBwdXJwb3NlLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgYXJlIG9u
bHkgaW5mcmFzdHJ1Y3R1cmFsIHNob3VsZCBub3QgYWx0ZXIgYW55IGJlaGF2aW9ycy4KKworICAg
ICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaDoKKyAg
ICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tOgor
ICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRl
Y29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXpl
ZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW50ZXJl
ZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0
ZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25QZXJm
b3JtT3BlcmF0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NpbXVsYXRlRGF0YUludGVy
YWN0aW9uRW5kZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVEYXRhSW50ZXJh
Y3Rpb25TZXNzaW9uRGlkRW5kOndpdGhPcGVyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfc2ltdWxhdGVGYWlsZWREYXRhSW50ZXJhY3Rpb25XaXRoSW5kZXg6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc2ltdWxhdGVXaWxsQmVnaW5EYXRhSW50ZXJhY3Rpb25XaXRoSW5kZXg6d2l0
aFNlc3Npb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVkSXRlbXNGb3JEYXRh
SW50ZXJhY3Rpb25XaXRoSW5kZXg6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tUZXN0aW5nRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aElt
YWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcG9pbnRJc0luRGF0YUludGVyYWN0aW9uQ29udGVu
dDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwb2ludElzSW5Bc3Npc3RlZE5v
ZGU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpzZXREcmFnSW1hZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldERyYWdJ
bWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0Ns
aWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmdldFBvc2l0aW9uSW5mb3JtYXRpb24pOgorCiAyMDE3LTAyLTIw
ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyMTI2MzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCmluZGV4IGJkYWRkNzMyMTYxM2MxYWI3NjQzZjEwZjNjOGJlMmM5MjllOGFlYzUuLmE0NWNm
YmYwZGIwYjQ2ZDEyY2UwZjQ2ZjQxNTBiMzBkYzhjNzQ5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC04NzUsNyArODc1LDEwIEBAIGJvb2wgRHJhZ0NvbnRyb2xs
ZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3Bl
cmF0aW9uCiAgICAgICAgIH0KICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnU291cmNl
QWN0aW9uKERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24sIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zl
cik7CiAgICAgICAgIGlmICghZHJhZ0ltYWdlKSB7Ci0gICAgICAgICAgICBkcmFnSW1hZ2UgPSBE
cmFnSW1hZ2UgeyBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oY3JlYXRlRHJhZ0ltYWdlRm9y
U2VsZWN0aW9uKHNyYyksIERyYWdJbWFnZUFscGhhKSB9OworICAgICAgICAgICAgVGV4dEluZGlj
YXRvckRhdGEgdGV4dEluZGljYXRvcjsKKyAgICAgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFn
ZSB7IGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rp
b24oc3JjLCB0ZXh0SW5kaWNhdG9yKSwgRHJhZ0ltYWdlQWxwaGEpIH07CisgICAgICAgICAgICBp
ZiAodGV4dEluZGljYXRvci5jb250ZW50SW1hZ2UpCisgICAgICAgICAgICAgICAgZHJhZ0ltYWdl
LnNldEluZGljYXRvckRhdGEodGV4dEluZGljYXRvcik7CiAgICAgICAgICAgICBkcmFnTG9jID0g
ZHJhZ0xvY0ZvclNlbGVjdGlvbkRyYWcoc3JjKTsKICAgICAgICAgICAgIGRyYWdJbWFnZUFuY2hv
clBvaW50ID0gZHJhZ0ltYWdlQW5jaG9yUG9pbnRGb3JTZWxlY3Rpb25EcmFnKHNyYywgbW91c2VE
cmFnZ2VkUG9pbnQpOwogICAgICAgICAgICAgbV9kcmFnT2Zmc2V0ID0gSW50UG9pbnQoZHJhZ09y
aWdpbi54KCkgLSBkcmFnTG9jLngoKSwgZHJhZ09yaWdpbi55KCkgLSBkcmFnTG9jLnkoKSk7CkBA
IC05NTYsMTEgKzk1OSwxNCBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUm
IHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogCiAgICAgICAgIG1f
Y2xpZW50LndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uTGluaywg
ZHJhZ09yaWdpbiwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgaWYgKCFkcmFnSW1hZ2UpIHsKLSAg
ICAgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IGNyZWF0ZURyYWdJbWFnZUZvckxpbmso
bGlua1VSTCwgaGl0VGVzdFJlc3VsdC50ZXh0Q29udGVudCgpLCBzcmMuc2V0dGluZ3MoKS5mb250
UmVuZGVyaW5nTW9kZSgpKSB9OworICAgICAgICAgICAgVGV4dEluZGljYXRvckRhdGEgdGV4dElu
ZGljYXRvcjsKKyAgICAgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IGNyZWF0ZURyYWdJ
bWFnZUZvckxpbmsoZWxlbWVudCwgbGlua1VSTCwgaGl0VGVzdFJlc3VsdC50ZXh0Q29udGVudCgp
LCB0ZXh0SW5kaWNhdG9yLCBzcmMuc2V0dGluZ3MoKS5mb250UmVuZGVyaW5nTW9kZSgpLCBtX3Bh
Z2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkgfTsKICAgICAgICAgICAgIEludFNpemUgc2l6ZSA9IGRy
YWdJbWFnZVNpemUoZHJhZ0ltYWdlLmdldCgpKTsKICAgICAgICAgICAgIG1fZHJhZ09mZnNldCA9
IEludFBvaW50KC1zaXplLndpZHRoKCkgLyAyLCAtTGlua0RyYWdCb3JkZXJJbnNldCk7CiAgICAg
ICAgICAgICBkcmFnTG9jID0gSW50UG9pbnQobW91c2VEcmFnZ2VkUG9pbnQueCgpICsgbV9kcmFn
T2Zmc2V0LngoKSwgbW91c2VEcmFnZ2VkUG9pbnQueSgpICsgbV9kcmFnT2Zmc2V0LnkoKSk7CiAg
ICAgICAgICAgICBkcmFnSW1hZ2UgPSBEcmFnSW1hZ2UgeyBwbGF0Zm9ybUFkanVzdERyYWdJbWFn
ZUZvckRldmljZVNjYWxlRmFjdG9yKGRyYWdJbWFnZS5nZXQoKSwgbV9wYWdlLmRldmljZVNjYWxl
RmFjdG9yKCkpIH07CisgICAgICAgICAgICBpZiAodGV4dEluZGljYXRvci5jb250ZW50SW1hZ2Up
CisgICAgICAgICAgICAgICAgZHJhZ0ltYWdlLnNldEluZGljYXRvckRhdGEodGV4dEluZGljYXRv
cik7CiAgICAgICAgIH0KICAgICAgICAgZG9TeXN0ZW1EcmFnKFdURk1vdmUoZHJhZ0ltYWdlKSwg
ZHJhZ0xvYywgbW91c2VEcmFnZ2VkUG9pbnQsIHsgfSwgZGF0YVRyYW5zZmVyLCBzcmMsIERyYWdT
b3VyY2VBY3Rpb25MaW5rKTsKIApAQCAtOTc4LDcgKzk4NCwxMCBAQCBib29sIERyYWdDb250cm9s
bGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09w
ZXJhdGlvbgogICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJh
Z1NvdXJjZUFjdGlvbkF0dGFjaG1lbnQsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlcik7CiAgICAg
ICAgIAogICAgICAgICBpZiAoIWRyYWdJbWFnZSkgewotICAgICAgICAgICAgZHJhZ0ltYWdlID0g
RHJhZ0ltYWdlIHsgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKGNyZWF0ZURyYWdJbWFnZUZv
clNlbGVjdGlvbihzcmMpLCBEcmFnSW1hZ2VBbHBoYSkgfTsKKyAgICAgICAgICAgIFRleHRJbmRp
Y2F0b3JEYXRhIHRleHRJbmRpY2F0b3I7CisgICAgICAgICAgICBkcmFnSW1hZ2UgPSBEcmFnSW1h
Z2UgeyBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0
aW9uKHNyYywgdGV4dEluZGljYXRvciksIERyYWdJbWFnZUFscGhhKSB9OworICAgICAgICAgICAg
aWYgKHRleHRJbmRpY2F0b3IuY29udGVudEltYWdlKQorICAgICAgICAgICAgICAgIGRyYWdJbWFn
ZS5zZXRJbmRpY2F0b3JEYXRhKHRleHRJbmRpY2F0b3IpOwogICAgICAgICAgICAgZHJhZ0xvYyA9
IGRyYWdMb2NGb3JTZWxlY3Rpb25EcmFnKHNyYyk7CiAgICAgICAgICAgICBtX2RyYWdPZmZzZXQg
PSBJbnRQb2ludChkcmFnT3JpZ2luLngoKSAtIGRyYWdMb2MueCgpLCBkcmFnT3JpZ2luLnkoKSAt
IGRyYWdMb2MueSgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMmY3OGU2ZDQz
MTMwN2U0OTczYTRmMTQwMmRkOTlhMmQ4NGFjYTMzZS4uNTY3MDQ0NzllZGRjYTg2ZTYyMGI3ZDg1
NmI5MDgwMDA0OGY5YTA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yMTkxLDcgKzIxOTEsNyBA
QCB2b2lkIFBhZ2U6OmFjY2Vzc2liaWxpdHlTZXR0aW5nc0RpZENoYW5nZSgpCiAKICNpZiBFTkFC
TEUoREFUQV9JTlRFUkFDVElPTikKIAotYm9vbCBQYWdlOjpoYXNEYXRhSW50ZXJhY3Rpb25BdFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKSBjb25zdAorYm9vbCBQYWdlOjpoYXNT
ZWxlY3Rpb25BdFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKSBjb25zdAogewog
ICAgIGF1dG8gY3VycmVudFNlbGVjdGlvbiA9IG1fbWFpbkZyYW1lLT5zZWxlY3Rpb24oKS5zZWxl
Y3Rpb24oKTsKICAgICBpZiAoIWN1cnJlbnRTZWxlY3Rpb24uaXNSYW5nZSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAppbmRleCA0ZTE4ZmRiZDI1NzdjYjVlM2FjMjg1ODNhNWYwYTk3YzdhNWE3YzA2Li5iOTVhNThl
YWUzOWIzZGRjM2VlN2E3MjZhMjkxOGZiYmNiMjlkZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNTcx
LDcgKzU3MSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25zdCB7IHJl
dHVybiBtX2lzVXRpbGl0eVBhZ2U7IH0KIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzRGF0YUludGVyYWN0aW9uQXRQb3NpdGlvbihjb25z
dCBGbG9hdFBvaW50JikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNTZWxlY3Rp
b25BdFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICNlbmRpZgogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAKaW5kZXggYzcyMDNhMTNkOTQwZjQ2
YThhY2U3NDMxMDY4OTAwNTNlN2QyNGQyZC4uYjhiNDU5MGYxYTc0NDdkNTFiMzM1YjU3OTJmY2U0
MmY3NDU5NDUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlck9i
amVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJUZXh0SW5kaWNhdG9y
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTIyLDcgKzEyMyw3IEBAIERyYWdJbWFn
ZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JOb2RlKEZyYW1lJiBmcmFtZSwgTm9kZSYgbm9kZSkKIAog
I2lmICFFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJ
bWFnZUZvclNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIGJvb2wgZm9yY2VCbGFja1RleHQpCitEcmFn
SW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgVGV4dElu
ZGljYXRvckRhdGEmLCBib29sIGZvcmNlQmxhY2tUZXh0KQogewogICAgIFNuYXBzaG90T3B0aW9u
cyBvcHRpb25zID0gZm9yY2VCbGFja1RleHQgPyBTbmFwc2hvdE9wdGlvbnNGb3JjZUJsYWNrVGV4
dCA6IFNuYXBzaG90T3B0aW9uc05vbmU7CiAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21T
bmFwc2hvdChzbmFwc2hvdFNlbGVjdGlvbihmcmFtZSwgb3B0aW9ucyksIG51bGxwdHIpOwpAQCAt
MjE5LDcgKzIyMCw3IEBAIERyYWdJbWFnZVJlZiBwbGF0Zm9ybUFkanVzdERyYWdJbWFnZUZvckRl
dmljZVNjYWxlRmFjdG9yKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvCiAjZW5kaWYKIAogI2lmICFQ
TEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdJTikKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFn
SW1hZ2VGb3JMaW5rKFVSTCYsIGNvbnN0IFN0cmluZyYsIEZvbnRSZW5kZXJpbmdNb2RlKQorRHJh
Z0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoRWxlbWVudCYsIFVSTCYsIGNvbnN0IFN0
cmluZyYsIEZvbnRSZW5kZXJpbmdNb2RlLCBmbG9hdCkKIHsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KQEAgLTIzOCw2ICsyMzksNyBAQCBEcmFnSW1hZ2U6OkRyYWdJbWFnZShEcmFnSW1hZ2VSZWYg
ZHJhZ0ltYWdlUmVmKQogRHJhZ0ltYWdlOjpEcmFnSW1hZ2UoRHJhZ0ltYWdlJiYgb3RoZXIpCiAg
ICAgOiBtX2RyYWdJbWFnZVJlZiB7IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9kcmFnSW1hZ2VSZWYs
IG51bGxwdHIpIH0KIHsKKyAgICBtX2luZGljYXRvckRhdGEgPSBvdGhlci5tX2luZGljYXRvckRh
dGE7CiB9CiAKIERyYWdJbWFnZSYgRHJhZ0ltYWdlOjpvcGVyYXRvcj0oRHJhZ0ltYWdlJiYgb3Ro
ZXIpCkBAIC0yNDYsNiArMjQ4LDcgQEAgRHJhZ0ltYWdlJiBEcmFnSW1hZ2U6Om9wZXJhdG9yPShE
cmFnSW1hZ2UmJiBvdGhlcikKICAgICAgICAgZGVsZXRlRHJhZ0ltYWdlKG1fZHJhZ0ltYWdlUmVm
KTsKIAogICAgIG1fZHJhZ0ltYWdlUmVmID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2RyYWdJbWFn
ZVJlZiwgbnVsbHB0cik7CisgICAgbV9pbmRpY2F0b3JEYXRhID0gb3RoZXIubV9pbmRpY2F0b3JE
YXRhOwogCiAgICAgcmV0dXJuICp0aGlzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2Uu
aAppbmRleCBiMzBmMzRmNjZiM2YzYWY5YTg2NDc2MzA2YjFiNTNhYjMxYTdmODhmLi5lMzI1NWQx
OWFkMmFlYjI2MWMzNzc0MzUwYzkwMDgzMTI1ODc1MjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
cmFnSW1hZ2UuaApAQCAtMjksNyArMjksOSBAQAogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24u
aCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCisjaW5jbHVk
ZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8
d3RmL09wdGlvbmFsLmg+CiAKICNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgpAQCAtNDgsNiArNTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRN
QVA7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1l
OwogY2xhc3MgSW1hZ2U7CiBjbGFzcyBJbnRSZWN0OwpAQCAtODMsMTAgKzg2LDEwIEBAIERyYWdJ
bWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9yaWVudGF0aW9u
RGVzY3JpcHRpb24pOwogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJ
bWFnZUZpbGVuYW1lKGNvbnN0IFN0cmluZyYpOwogCiBXRUJDT1JFX0VYUE9SVCBEcmFnSW1hZ2VS
ZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTm9kZShGcmFtZSYsIE5vZGUmKTsKLVdFQkNPUkVfRVhQT1JU
IERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24oRnJhbWUmLCBib29sIGZv
cmNlQmxhY2tUZXh0ID0gZmFsc2UpOworV0VCQ09SRV9FWFBPUlQgRHJhZ0ltYWdlUmVmIGNyZWF0
ZURyYWdJbWFnZUZvclNlbGVjdGlvbihGcmFtZSYsIFRleHRJbmRpY2F0b3JEYXRhJiwgYm9vbCBm
b3JjZUJsYWNrVGV4dCA9IGZhbHNlKTsKIFdFQkNPUkVfRVhQT1JUIERyYWdJbWFnZVJlZiBjcmVh
dGVEcmFnSW1hZ2VGb3JSYW5nZShGcmFtZSYsIFJhbmdlJiwgYm9vbCBmb3JjZUJsYWNrVGV4dCA9
IGZhbHNlKTsKIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JJbWFnZShGcmFtZSYsIE5v
ZGUmLCBJbnRSZWN0JiBpbWFnZVJlY3QsIEludFJlY3QmIGVsZW1lbnRSZWN0KTsKLURyYWdJbWFn
ZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKFVSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZv
bnRSZW5kZXJpbmdNb2RlKTsKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKEVs
ZW1lbnQmLCBVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBUZXh0SW5kaWNhdG9yRGF0YSYsIEZv
bnRSZW5kZXJpbmdNb2RlLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CiB2b2lkIGRlbGV0ZURy
YWdJbWFnZShEcmFnSW1hZ2VSZWYpOwogCiBjbGFzcyBEcmFnSW1hZ2UgZmluYWwgewpAQCAtOTgs
MTEgKzEwMSwxNiBAQCBwdWJsaWM6CiAKICAgICBEcmFnSW1hZ2UmIG9wZXJhdG9yPShEcmFnSW1h
Z2UmJik7CiAKKyAgICB2b2lkIHNldEluZGljYXRvckRhdGEoY29uc3QgVGV4dEluZGljYXRvckRh
dGEmIGRhdGEpIHsgbV9pbmRpY2F0b3JEYXRhID0gZGF0YTsgfQorICAgIGJvb2wgaGFzSW5kaWNh
dG9yRGF0YSgpIGNvbnN0IHsgcmV0dXJuICEhbV9pbmRpY2F0b3JEYXRhOyB9CisgICAgc3RkOjpv
cHRpb25hbDxUZXh0SW5kaWNhdG9yRGF0YT4gaW5kaWNhdG9yRGF0YSgpIGNvbnN0IHsgcmV0dXJu
IG1faW5kaWNhdG9yRGF0YTsgfQorCiAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0
IHsgcmV0dXJuICEhbV9kcmFnSW1hZ2VSZWY7IH0KICAgICBEcmFnSW1hZ2VSZWYgZ2V0KCkgY29u
c3QgeyByZXR1cm4gbV9kcmFnSW1hZ2VSZWY7IH0KIAogcHJpdmF0ZToKICAgICBEcmFnSW1hZ2VS
ZWYgbV9kcmFnSW1hZ2VSZWY7CisgICAgc3RkOjpvcHRpb25hbDxUZXh0SW5kaWNhdG9yRGF0YT4g
bV9pbmRpY2F0b3JEYXRhOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0RyYWdJbWFnZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
RHJhZ0ltYWdlR3RrLmNwcAppbmRleCBjOTlmOGFjMDQ2Nzk1ODFjOWI0OTlhMWMxNjE0NzdjN2U0
YWUxNjc4Li5kNDFhNGU1NjkyMzVmNGQ4MjJhZTgyY2I4Yjg3ODU5MTZkZGQ5Mzc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3RrLmNwcApAQCAtMTksNyArMTks
MTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKIAorI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIlRleHRGbGFn
cy5oIgorI2luY2x1ZGUgIlRleHRJbmRpY2F0b3IuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNs
dWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPGdkay9nZGsuaD4KIApAQCAtODgsNCArOTIsOSBAQCBE
cmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlRmlsZW5hbWUoY29u
c3QgU3RyaW5nJikKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorRHJhZ0ltYWdlUmVmIGNyZWF0
ZURyYWdJbWFnZUZvckxpbmsoRWxlbWVudCYsIFVSTCYsIGNvbnN0IFN0cmluZyYsIFRleHRJbmRp
Y2F0b3JEYXRhJiwgRm9udFJlbmRlcmluZ01vZGUsIGZsb2F0KQoreworICAgIHJldHVybiBudWxs
cHRyOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJh
Z0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5t
bQppbmRleCAwZTlkY2ExYmE2YzlhNjhhOGE5MGJmNTUxYTRiNGZiYzc0OGU1YWNhLi4yYThkZmQz
ZjVlN2E5ZTQxMDBlODg4NWY0MzRkOTdiZDc5YTc3YjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAi
Qml0bWFwSW1hZ2UuaCIKICNpbXBvcnQgIkNvcmVHcmFwaGljc1NQSS5oIgorI2ltcG9ydCAiRWxl
bWVudC5oIgogI2ltcG9ydCAiRm9udENhc2NhZGUuaCIKICNpbXBvcnQgIkZvbnREZXNjcmlwdGlv
bi5oIgogI2ltcG9ydCAiRm9udFNlbGVjdG9yLmgiCkBAIC0zNyw2ICszOCw3IEBACiAjaW1wb3J0
ICJJbWFnZS5oIgogI2ltcG9ydCAiVVJMLmgiCiAjaW1wb3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIK
KyNpbXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKICNpbXBvcnQgIlRleHRSdW4uaCIKICNpbXBvcnQg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC0yNjUsNyArMjY3LDcgQEAgc3RhdGljIHZvaWQg
ZHJhd0RvdWJsZWRBdFBvaW50KE5TU3RyaW5nICpzdHJpbmcsIE5TUG9pbnQgdGV4dFBvaW50LCBO
U0NvbG9yICp0b3AKICAgICAgICAgZHJhd0F0UG9pbnQoc3RyaW5nLCB0ZXh0UG9pbnQsIGZvbnQs
IHRvcENvbG9yKTsKIH0KIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZvbnRSZW5kZXJpbmdNb2RlKQorRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoRWxlbWVudCYsIFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBUZXh0SW5kaWNhdG9yRGF0YSYsIEZvbnRSZW5kZXJpbmdNb2RlLCBmbG9hdCkK
IHsKICAgICBOU1N0cmluZyAqbGFiZWwgPSBuc1N0cmluZ05pbElmRW1wdHkodGl0bGUpOwogICAg
IE5TVVJMICpjb2NvYVVSTCA9IHVybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Ry
YWdJbWFnZVdpbi5jcHAKaW5kZXggOTg5YTBiNTQ2MTM4ODY1OGZkNmRkMTgyZTViMjk1NzcyZWI4
NTBiMy4uMWFiYzAwODVlZjYxMWE1MmM0MTZjYTk1N2U4OTBkNjczYzMzMjZmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdpbi5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKIAorI2luY2x1
ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGbG9hdFJvdW5kZWRSZWN0LmgiCiAjaW5jbHVkZSAi
Rm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKQEAgLTM1LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIlN0
cmluZ1RydW5jYXRvci5oIgorI2luY2x1ZGUgIlRleHRJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJU
ZXh0UnVuLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVRleHRSZW5kZXJlci5oIgogI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KQEAgLTExOSw3ICsxMjEsNyBAQCBzdGF0aWMgRm9udENhc2NhZGUgZHJh
Z0xhYmVsRm9udChpbnQgc2l6ZSwgYm9vbCBib2xkLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJp
bgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VG
b3JMaW5rKFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGluTGFiZWwsIEZvbnRSZW5kZXJpbmdNb2Rl
IGZvbnRSZW5kZXJpbmdNb2RlKQorRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmso
RWxlbWVudCYsIFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGluTGFiZWwsIFRleHRJbmRpY2F0b3JE
YXRhJiwgRm9udFJlbmRlcmluZ01vZGUgZm9udFJlbmRlcmluZ01vZGUsIGZsb2F0KQogewogICAg
IC8vIFRoaXMgaXMgbW9yZSBvciBsZXNzIGFuIGV4YWN0IG1hdGNoIGZvciB0aGUgTWFjIE9TIFgg
Y29kZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggZGVl
MDMyNDk1ZTY4ODM5MDc2MjA2MzY1NmI3ZDJmYjlkY2UxODNjYy4uYTAyNGRmYjllNTIyMmM3ZjE0
YmQ3Y2I0ODljNDA2YTlkNjYyMTdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCkBAIC0yMzg5LDcgKzIzODksOCBAQCBzdGF0aWMgYm9vbCBtb3VzZUV2ZW50SXNQ
YXJ0T2ZDbGlja09yRHJhZyhOU0V2ZW50ICpldmVudCkKICAgICBpZiAoIWNvcmVGcmFtZSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKIAotICAgIGF1dG8gZHJhZ0ltYWdlID0gY3JlYXRlRHJhZ0ltYWdl
Rm9yU2VsZWN0aW9uKCpjb3JlRnJhbWUpOworICAgIFRleHRJbmRpY2F0b3JEYXRhIHRleHRJbmRp
Y2F0b3I7CisgICAgYXV0byBkcmFnSW1hZ2UgPSBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24o
KmNvcmVGcmFtZSwgdGV4dEluZGljYXRvcik7CiAgICAgW2RyYWdJbWFnZSBfd2ViX2Rpc3NvbHZl
VG9GcmFjdGlvbjpXZWJEcmFnSW1hZ2VBbHBoYV07CiAKICAgICByZXR1cm4gZHJhZ0ltYWdlLmF1
dG9yZWxlYXNlKCk7CkBAIC03MzczLDcgKzczNzQsOCBAQCBzdGF0aWMgQ0dJbWFnZVJlZiBzZWxl
Y3Rpb25JbWFnZShGcmFtZSogZnJhbWUsIGJvb2wgZm9yY2VCbGFja1RleHQpCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIHJldHVybiBzZWxlY3Rpb25JbWFnZShjb3JlRnJhbWUsIGZvcmNlQmxhY2tU
ZXh0KTsKICNlbHNlCi0gICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbigqY29y
ZUZyYW1lLCBmb3JjZUJsYWNrVGV4dCkuYXV0b3JlbGVhc2UoKTsKKyAgICBUZXh0SW5kaWNhdG9y
RGF0YSB0ZXh0SW5kaWNhdG9yOworICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rp
b24oKmNvcmVGcmFtZSwgdGV4dEluZGljYXRvciwgZm9yY2VCbGFja1RleHQpLmF1dG9yZWxlYXNl
KCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9J
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCmluZGV4IDhiZWNlMWI3MDVl
YWViZjJkMmQ3MzdlNGU2NjM4ZGRmNjE3NzYxYTcuLjcyYTQ0YmZlM2M5YzhhZDUyOTA3NWQwNDIx
ODkxMzZjYTk4OWFiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKQEAgLTQyLDcgKzQyLDcg
QEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIHsKIAogICAgIGJvb2wg
bm9kZUF0UG9zaXRpb25Jc0Fzc2lzdGVkTm9kZSB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKERBVEFf
SU5URVJBQ1RJT04pCi0gICAgYm9vbCBoYXNEYXRhSW50ZXJhY3Rpb25BdFBvc2l0aW9uIHsgZmFs
c2UgfTsKKyAgICBib29sIGhhc1NlbGVjdGlvbkF0UG9zaXRpb24geyBmYWxzZSB9OwogI2VuZGlm
CiAgICAgYm9vbCBpc1NlbGVjdGFibGUgeyBmYWxzZSB9OwogICAgIGJvb2wgaXNOZWFyTWFya2Vk
VGV4dCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0lu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQppbmRleCAxNjNlZGE1NjM2
ZmU4YWQ5NDcxMjU5ZjQ1YWJjNDIyYzVmODU1ZWVlLi43MGEyZWI3NDBhMGM0NTRkZjY2OGJmMjgx
YjY1MmJiNDM2NTBjZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0lu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KQEAgLTQ0LDcgKzQ0
LDcgQEAgdm9pZCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogICAgIGVuY29kZXIgPDwgbm9kZUF0UG9zaXRpb25J
c0Fzc2lzdGVkTm9kZTsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBlbmNvZGVy
IDw8IGhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb247CisgICAgZW5jb2RlciA8PCBoYXNTZWxl
Y3Rpb25BdFBvc2l0aW9uOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBpc1NlbGVjdGFibGU7CiAg
ICAgZW5jb2RlciA8PCBpc05lYXJNYXJrZWRUZXh0OwpAQCAtOTIsNyArOTIsNyBAQCBib29sIElu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBJbnRlcmFjdGlvbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUoREFU
QV9JTlRFUkFDVElPTikKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5oYXNEYXRhSW50
ZXJhY3Rpb25BdFBvc2l0aW9uKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5oYXNT
ZWxlY3Rpb25BdFBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXgg
Njg0Njg5MTgzZmUwYjRmMDA1NzJhMDYxZGJjYWQwY2ZiNjM1YWI4Ny4uNDQ1MzQxZjNiZjY2Yjc1
ZjNjZDFlMjY1ODlkYTI3NjQwYzFmZWJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTUxNzQsNjcgKzUxNzQsMzkgQEAgc3RhdGlj
IFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdG9Vc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uKFVJU2UKIAogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25HZXN0
dXJlUmVjb2duaXplZAogewotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIFtfY29u
dGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZWQ6X3Rlc3Rp
bmdEZWxlZ2F0ZS5kYXRhSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplcl07Ci0jZW5kaWYKIH0K
IAogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbnRlcmVkOihpZClpbmZvCiB7Ci0j
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgW19jb250ZW50VmlldyBfc2ltdWxhdGVE
YXRhSW50ZXJhY3Rpb25FbnRlcmVkOmluZm9dOwotI2VuZGlmCiB9CiAKIC0gKHZvaWQpX3NpbXVs
YXRlRGF0YUludGVyYWN0aW9uVXBkYXRlZDooaWQpaW5mbwogewotI2lmIEVOQUJMRShEQVRBX0lO
VEVSQUNUSU9OKQotICAgIFtfY29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uVXBk
YXRlZDppbmZvXTsKLSNlbmRpZgogfQogCiAtICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlv
blBlcmZvcm1PcGVyYXRpb246KGlkKWluZm8KIHsKLSNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKLSAgICBbX2NvbnRlbnRWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVy
YXRpb246aW5mb107Ci0jZW5kaWYKIH0KIAogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rp
b25FbmRlZDooaWQpaW5mbwogewotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIFtf
Y29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW5kZWQ6aW5mb107Ci0jZW5kaWYK
IH0KIAogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25TZXNzaW9uRGlkRW5kOihpZClz
ZXNzaW9uIHdpdGhPcGVyYXRpb246KE5TVUludGVnZXIpb3BlcmF0aW9uCiB7Ci0jaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pCi0gICAgW19jb250ZW50VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJh
Y3Rpb25TZXNzaW9uRGlkRW5kOnNlc3Npb24gd2l0aE9wZXJhdGlvbjpvcGVyYXRpb25dOwotI2Vu
ZGlmCiB9CiAKIC0gKHZvaWQpX3NpbXVsYXRlRmFpbGVkRGF0YUludGVyYWN0aW9uV2l0aEluZGV4
OihOU0ludGVnZXIpc291cmNlSW5kZXgKIHsKLSNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
LSAgICBbX2NvbnRlbnRWaWV3IF9zaW11bGF0ZUZhaWxlZERhdGFJbnRlcmFjdGlvbldpdGhJbmRl
eDpzb3VyY2VJbmRleF07Ci0jZW5kaWYKIH0KIAogLSAodm9pZClfc2ltdWxhdGVXaWxsQmVnaW5E
YXRhSW50ZXJhY3Rpb25XaXRoSW5kZXg6KE5TSW50ZWdlcilzb3VyY2VJbmRleCB3aXRoU2Vzc2lv
bjooaWQpc2Vzc2lvbgogewotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIFtfY29u
dGVudFZpZXcgX3NpbXVsYXRlV2lsbEJlZ2luRGF0YUludGVyYWN0aW9uV2l0aEluZGV4OnNvdXJj
ZUluZGV4IHdpdGhTZXNzaW9uOnNlc3Npb25dOwotI2VuZGlmCiB9CiAKIC0gKE5TQXJyYXkgKilf
c2ltdWxhdGVkSXRlbXNGb3JEYXRhSW50ZXJhY3Rpb25XaXRoSW5kZXg6KE5TSW50ZWdlcilzb3Vy
Y2VJbmRleAogewotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIHJldHVybiBbX2Nv
bnRlbnRWaWV3IF9zaW11bGF0ZWRJdGVtc0ZvckRhdGFJbnRlcmFjdGlvbldpdGhJbmRleDpzb3Vy
Y2VJbmRleF07Ci0jZWxzZQogICAgIHJldHVybiBAWyBdOwotI2VuZGlmCiB9CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGVzdGluZ0Rl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Rlc3RpbmdE
ZWxlZ2F0ZS5oCmluZGV4IGYzN2Y5YWY0ZDZmMzc4NGNkNTdhYWVkZGY5OTYwNmM5ODM0NGM0MWEu
LmI0OWJjM2IyYzQ3M2VjNTg2NzIwYjQ2MDhkOTFlODQyNDg1NTE3ODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGVzdGluZ0RlbGVnYXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXN0aW5nRGVsZWdhdGUu
aApAQCAtMzEsMjIgKzMxLDEzIEBACiAKIEBjbGFzcyBXS1dlYlZpZXc7CiAKLSNpZiBUQVJHRVRf
T1NfSVBIT05FCi1AY2xhc3MgVUlHZXN0dXJlUmVjb2duaXplcjsKLUBjbGFzcyBVSUxvbmdQcmVz
c0dlc3R1cmVSZWNvZ25pemVyOwotI2VuZGlmCi0KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
IEBwcm90b2NvbCBfV0tUZXN0aW5nRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9wdGlvbmFsCiAKICNp
ZiBUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJTG9u
Z1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgKmRhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
OwotLSAodm9pZCl3ZWJWaWV3RGlkU2VuZERhdGFJbnRlcmFjdGlvblN0YXJ0UmVxdWVzdDooV0tX
ZWJWaWV3ICopd2ViVmlldzsKLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
aWRSZWNlaXZlRGF0YUludGVyYWN0aW9uU3RhcnRSZXNwb25zZTooQk9PTClzdGFydGVkOwogLSAo
dm9pZCl3ZWJWaWV3RGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb246
KFdLV2ViVmlldyAqKXdlYlZpZXc7Ci0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgYmVnaW5EYXRhSW50ZXJhY3Rpb25XaXRoU291cmNlSW5kZXg6KE5TSW50ZWdlcilzb3VyY2VJ
bmRleCBnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNv
Z25pemVyOwogI2VuZGlmIC8vIFRBUkdFVF9PU19QSE9ORQogCiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBhNTQ2N2Y5NGI4YThmZGNjZmIyY2RjYmEzMTA1Y2Zi
YTFjMzU2MWUzLi41YjJiMzNmNjAxY2YyOGM0NDM4ZjBjMWEwY2FlNDAyYTI5MWZmZDQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTE3MCw3ICsxNzAsNyBAQCBwdWJs
aWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlX
ZWJQcm9jZXNzVG9rZW5SZWNlaXZlZChjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmlu
ZyYgc2VsZWN0b3IpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRt
YXA+IGRyYWdJbWFnZSwgYm9vbCBpc0xpbmtEcmFnKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIFBhc3NS
ZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2UsIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rp
b24pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRTZWN1cmVJbnB1dFN0YXRlKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCkgPSAw
OwpAQCAtMzgwLDcgKzM4MCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJP
cGVyYXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEhhbmRsZVN0YXJ0RGF0YUludGVy
YWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRE
YXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBv
c2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29sIGlzTGluaykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFn
ZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4sIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCB1aW50NjRfdCBhY3Rpb24pID0gMDsKICNlbmRp
ZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDBhMjkw
ZmMyZWNmZmVlZjExN2U5NTI4ODhlOGE1NmI5NTA5Y2UzZmEuLjIxYWJiOWNmMGRmYzRiNGJjZjI3
YjkzYWE4MGIxZjIyNDY3OWZlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTgzMiw3ICs4MzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmFnRW5kZWQoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IG9wZXJhdGlvbik7CiAgICAgdm9pZCBkcmFn
Q2FuY2VsbGVkKCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBzZXREcmFnSW1hZ2Uo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBkcmFnSW1hZ2VBbmNob3IsIGJvb2wgaXNMaW5rRHJhZyk7CisgICAgdm9pZCBzZXREcmFnSW1h
Z2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JEYXRhPiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgZHJhZ0ltYWdl
QW5jaG9yLCB1aW50NjRfdCBhY3Rpb24pOwogICAgIHZvaWQgc2V0UHJvbWlzZWREYXRhRm9ySW1h
Z2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5k
bGUmIGltYWdlSGFuZGxlLCB1aW50NjRfdCBpbWFnZVNpemUsIGNvbnN0IFN0cmluZyYgZmlsZW5h
bWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHZpc2li
bGVVUkwsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBhcmNoaXZlSGFuZGxlLCB1aW50NjRf
dCBhcmNoaXZlU2l6ZSk7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGFj
NDYzMTRiMWMxZmQ3ZTc5ZmVhYzY5OGU4N2NiMjFjYzI5NTQzNWQuLjVhMTRhYzhjNjU4MmQzNGU0
ZjE2MjNiOWUwOTE4NjM0OWUxNWE4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzAyLDcgKzMwMiw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVp
bnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJGaWxlSW5wdXQsIHVuc2lnbmVk
IG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQpCiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBTZXREcmFnSW1hZ2UoV2ViQ29yZTo6SW50UG9p
bnQgY2xpZW50UG9zaXRpb24sIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgZHJhZ0lt
YWdlLCBXZWJDb3JlOjpGbG9hdFBvaW50IGRyYWdJbWFnZUFuY2hvciwgYm9vbCBsaW5rRHJhZykK
KyAgICBTZXREcmFnSW1hZ2UoV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYktp
dDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgZHJhZ0ltYWdlLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpGbG9hdFBvaW50
IGRyYWdJbWFnZUFuY2hvciwgdWludDY0X3QgYWN0aW9uKQogICAgIFNldFByb21pc2VkRGF0YUZv
ckltYWdlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRs
ZSBpbWFnZUhhbmRsZSwgdWludDY0X3QgaW1hZ2VTaXplLCBTdHJpbmcgZmlsZW5hbWUsIFN0cmlu
ZyBleHRlbnNpb24sIFN0cmluZyB0aXRsZSwgU3RyaW5nIHVybCwgU3RyaW5nIHZpc2libGVVUkws
IFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgYXJjaGl2ZUhhbmRsZSwgdWludDY0X3QgYXJj
aGl2ZVNpemUpCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBTZXRQcm9taXNl
ZERhdGFGb3JBdHRhY2htZW50KFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIGZpbGVuYW1l
LCBTdHJpbmcgZXh0ZW5zaW9uLCBTdHJpbmcgdGl0bGUsIFN0cmluZyB1cmwsIFN0cmluZyB2aXNp
YmxlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCmluZGV4IGU5MTYxN2JlZGQwY2MyYWRlNTIwMzY0MzExMmVmNzZlMjc2Yzg1NzAuLjQ3
YTlmOTQ2YmM4YzBhYWZlNzdlMjAyYjQ2ZjY0MGQ3MTZkM2Q3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTc4LDcgKzc4LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGV4ZWN1dGVVbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9P
clJlZG8pIG92ZXJyaWRlOwogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlblJl
Y2VpdmVkKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpIG92ZXJyaWRlOwogICAgIGJvb2wgZXhl
Y3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3Rvcikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzZXREcmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVu
dFBvc2l0aW9uLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdlLCBib29sIGlz
TGlua0RyYWcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRy
YWdJbWFnZSwgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1
cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXNldFNlY3VyZUlu
cHV0U3RhdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlz
Y2FyZGVkQ29tcG9zaXRpb24oKSBvdmVycmlkZTsKQEAgLTIwNCw3ICsyMDQsNyBAQCBwcml2YXRl
OgogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZvaWQgZGlkUGVyZm9ybURhdGFJ
bnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEhh
bmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpIG92ZXJyaWRlOwot
ICAgIHZvaWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1h
Z2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29sIGlzTGluaykg
b3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlJiBpbWFnZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4s
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCB1aW50NjRfdCBhY3Rpb24p
IG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBXS0NvbnRlbnRWaWV3ICptX2NvbnRlbnRWaWV3Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
aW5kZXggM2MwZDdiODk5YjI0NGQ3Njg3YmViN2JlZDk3NmJjNGZkYWMwYWMzMi4uODA0OWYxNWYx
YzJmN2I4YmQ3MTczMzUyZjNjYzVmMzkyNzhjYzljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC0zNTMsNyArMzUzLDcgQEAg
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoY29uc3Qg
U3RyaW5nJikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNl
dERyYWdJbWFnZShjb25zdCBJbnRQb2ludCYsIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiwg
Ym9vbCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldERyYWdJbWFnZShjb25zdCBJbnRQb2ludCYs
IFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiwgRHJhZ1NvdXJjZUFjdGlvbikKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtNzczLDkgKzc3Myw5IEBAIHZvaWQgUGFnZUNsaWVudElt
cGw6OmRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCiAg
ICAgW21fY29udGVudFZpZXcgX2RpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdDpz
dGFydGVkXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnREYXRhSW50ZXJhY3Rpb25X
aXRoSW1hZ2UoY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29s
IGlzTGluaykKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aElt
YWdlKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmIGltYWdlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRh
PiBpbmRpY2F0b3JEYXRhLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgdWludDY0X3Qg
YWN0aW9uKQogewotICAgIFttX2NvbnRlbnRWaWV3IF9zdGFydERhdGFJbnRlcmFjdGlvbldpdGhJ
bWFnZTpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZSktPm1ha2VDR0ltYWdlQ29weSgpIGF0
Q2xpZW50UG9zaXRpb246Q0dQb2ludE1ha2UoY2xpZW50UG9zaXRpb24ueCgpLCBjbGllbnRQb3Np
dGlvbi55KCkpIGFuY2hvclBvaW50OmFuY2hvclBvaW50IGlzTGluazppc0xpbmtdOworICAgIFtt
X2NvbnRlbnRWaWV3IF9zdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZTpTaGFyZWFibGVCaXRt
YXA6OmNyZWF0ZShpbWFnZSktPm1ha2VDR0ltYWdlQ29weSgpIHdpdGhJbmRpY2F0b3JEYXRhOmlu
ZGljYXRvckRhdGEgYXRDbGllbnRQb3NpdGlvbjpDR1BvaW50TWFrZShjbGllbnRQb3NpdGlvbi54
KCksIGNsaWVudFBvc2l0aW9uLnkoKSkgYW5jaG9yUG9pbnQ6YW5jaG9yUG9pbnQgYWN0aW9uOmFj
dGlvbl07CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggYmRjZDA0YzlmMTNjYzYwNmY3
MjhmMzBhNDJlZjcxOTY3N2E5NWYzYi4uYjZiZmM2ZDRlOTE0MGJiYTU1MjEzZjU1Mjc3MmYyMzQ4
NWVmZTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0yNzAsNyArMjcwLDcgQEAgc3RydWN0IFdLQXV0
b0NvcnJlY3Rpb25EYXRhIHsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKIC0gKHZvaWQp
X2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOwogLSAodm9pZClf
ZGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0OihCT09MKXN0YXJ0ZWQ7Ci0tICh2
b2lkKV9zdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZTooUmV0YWluUHRyPENHSW1hZ2VSZWY+
KWltYWdlIGF0Q2xpZW50UG9zaXRpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gYW5jaG9yUG9p
bnQ6KENHUG9pbnQpYW5jaG9yUG9pbnQgaXNMaW5rOihCT09MKWlzTGluazsKKy0gKHZvaWQpX3N0
YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlOihSZXRhaW5QdHI8Q0dJbWFnZVJlZj4paW1hZ2Ug
d2l0aEluZGljYXRvckRhdGE6KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRh
dGE+KWluZGljYXRvckRhdGEgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlv
biBhbmNob3JQb2ludDooQ0dQb2ludClhbmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlv
bjsKIC0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZWQ6KFVJ
TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlv
bkVudGVyZWQ6KGlkKWluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogLSAo
dm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25VcGRhdGVkOihpZClpbmZvIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNjlhOTU3ZmI1YjRh
MjI0N2ZiNjU0Njc3NTYwMjY3ZmJlNDY3Y2Y4OC4uZjk1N2M2YzViMmM1N2IwMGYxMDZjYjgyMGU1
OTY1ZjA4MTYwYTg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE0NDEsNyArMTQ0MSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2Vz
dHVyZVJlY29nbml6ZXIgKmIsIFVJCiAgICAgW3NlbGYgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlv
bklzVXBUb0RhdGU6cmVxdWVzdF07CiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAg
ICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uaGFzRGF0YUludGVyYWN0aW9uQXRQb3NpdGlvbikg
eworICAgIGlmIChfcG9zaXRpb25JbmZvcm1hdGlvbi5oYXNTZWxlY3Rpb25BdFBvc2l0aW9uKSB7
CiAgICAgICAgIC8vIElmIHRoZSBwb3NpdGlvbiBtaWdodCBpbml0aWF0ZSBhIGRhdGEgaW50ZXJh
Y3Rpb24sIHdlIGRvbid0IHdhbnQgdG8gY29uc2lkZXIgdGhlIGNvbnRlbnQgYXQgdGhpcyBwb3Np
dGlvbiB0byBiZSBzZWxlY3RhYmxlLgogICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUg
cmVuYW1lZCB0byBzb21ldGhpbmcgbW9yZSBwcmVjaXNlLCBzdWNoIGFzIHRleHRTZWxlY3Rpb25T
aG91bGRSZWNvZ25pemVHZXN0dXJlQXRQb2ludDoKICAgICAgICAgcmV0dXJuIE5POwpAQCAtMTQ2
MSwxNCArMTQ2MSwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVS
ZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogICAgIGlmIChfcG9zaXRp
b25JbmZvcm1hdGlvbi5pc0ltYWdlIHx8IF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluaykKICAg
ICAgICAgcmV0dXJuIFlFUzsKIAotICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5oYXNE
YXRhSW50ZXJhY3Rpb25BdFBvc2l0aW9uOworICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlv
bi5oYXNTZWxlY3Rpb25BdFBvc2l0aW9uOwogfQogCiAtIChVSUxvbmdQcmVzc0dlc3R1cmVSZWNv
Z25pemVyICopX2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyCiB7Ci0gICAgaWYgKFtf
d2ViVmlldy5fdGVzdGluZ0RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGF0
YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpXSkKLSAgICAgICAgcmV0dXJuIF93ZWJWaWV3
Ll90ZXN0aW5nRGVsZWdhdGUuZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXI7Ci0KICAg
ICByZXR1cm4gX2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpOwogfQogCkBA
IC0xNDg3LDcgKzE0ODQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1
cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogICAgIFtzZWxmIGVu
c3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVlc3RdOwogCiAjaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pCi0gICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmhhc0RhdGFJ
bnRlcmFjdGlvbkF0UG9zaXRpb24pIHsKKyAgICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uaGFz
U2VsZWN0aW9uQXRQb3NpdGlvbikgewogICAgICAgICAvLyBJZiB0aGUgcG9zaXRpb24gbWlnaHQg
aW5pdGlhdGUgZGF0YSBpbnRlcmFjdGlvbiwgd2UgZG9uJ3Qgd2FudCB0byBjaGFuZ2UgdGhlIHNl
bGVjdGlvbi4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbmFtZWQgdG8gc29t
ZXRoaW5nIG1vcmUgcHJlY2lzZSwgc3VjaCBhcyB0ZXh0SW50ZXJhY3Rpb25TaG91bGRSZWNvZ25p
emVHZXN0dXJlQXRQb2ludDoKICAgICAgICAgcmV0dXJuIE5POwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IGU3MzIyYmUzNDNjMTc4NWEwZTM5
YTZkYTg0NWM1OWQ5ZTI1NGQwZDYuLjNlYTMyZGMwMDhmY2ZhYTFkNjUyYzk3M2YxMzcyNjAxNjU5
MzdjOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
LmgKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGNhblVuZG9SZWRvKFdlYlBh
Z2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CiAgICAgdm9pZCBleGVjdXRlVW5kb1JlZG8o
V2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKICAgICBib29sIGV4ZWN1dGVTYXZl
ZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpIG92ZXJyaWRlOwotICAg
IHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlv
biwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRyYWdJbWFnZSwgYm9vbCBpc0xpbmtEcmFn
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2Us
IFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UHJvbWlz
ZWREYXRhRm9ySW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGltYWdlQnVmZmVyLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1l
LCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwKICAgICAgICAg
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdmlzaWJsZVVybCwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXIpIG92ZXJyaWRlOwogI2lmIEVOQUJM
RShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5tbQppbmRleCBiMDZmNzRiOTEyMmUzOTkzZGY0ZDk3OGNjZWI3YzQzZjAw
Y2Y5NGE3Li5kZTJhMjc3YTlhMjQ1NTU4NzUwNjg1OTQ5NDc1MjE0MDg4ZDc5OTQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTMzNyw3
ICszMzcsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpleGVjdXRlVW5kb1JlZG8oV2ViUGFnZVBy
b3h5OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pCiAgICAgcmV0dXJuICh1bmRvT3JSZWRvID09IFdl
YlBhZ2VQcm94eTo6VW5kbykgPyBbW21fdmlldyB1bmRvTWFuYWdlcl0gdW5kb10gOiBbW21fdmll
dyB1bmRvTWFuYWdlcl0gcmVkb107CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNldERyYWdJ
bWFnZShjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hhcmVhYmxl
Qml0bWFwPiBkcmFnSW1hZ2UsIGJvb2wgaXNMaW5rRHJhZykKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OnNldERyYWdJbWFnZShjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8
U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2UsIERyYWdTb3VyY2VBY3Rpb24gYWN0aW9uKQogewog
ICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBkcmFnQ0dJbWFnZSA9IGRyYWdJbWFnZS0+bWFrZUNH
SW1hZ2UoKTsKICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gZHJhZ05TSW1hZ2UgPSBhZG9wdE5TKFtb
TlNJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmRyYWdDR0ltYWdlLmdldCgpIHNpemU6ZHJh
Z0ltYWdlLT5zaXplKCldKTsKQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpzZXREcmFnSW1hZ2UoY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBQYXNzUmVmUHRy
PFNoYQogICAgIHNpemUuc2NhbGUoMS4wIC8gbV9pbXBsLT5wYWdlKCkuZGV2aWNlU2NhbGVGYWN0
b3IoKSk7CiAgICAgW2RyYWdOU0ltYWdlIHNldFNpemU6c2l6ZV07CiAKLSAgICBtX2ltcGwtPmRy
YWdJbWFnZUZvclZpZXcobV92aWV3LCBkcmFnTlNJbWFnZS5nZXQoKSwgY2xpZW50UG9zaXRpb24s
IGlzTGlua0RyYWcpOworICAgIG1faW1wbC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3ZpZXcsIGRyYWdO
U0ltYWdlLmdldCgpLCBjbGllbnRQb3NpdGlvbiwgYWN0aW9uID09IERyYWdTb3VyY2VBY3Rpb25M
aW5rKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2Uo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGlt
YWdlQnVmZmVyLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lv
biwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYg
dmlzaWJsZVVSTCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IDg5
NzY4OWNkODk2NTZhZGM2MWU3ZTEzN2Q4N2QyMWM2ZmFmYTY1MjUuLjQwYjg2OGFmZmYwYTAyODM5
MWFjMWIzYWIyYmJjZDg5MTgwYmEzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC0yNjksMTAgKzI2OSwxMCBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0YShjb25zdCBWZWN0b3I8
U3RyaW5nPiYgdHlwZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9pZCBX
ZWJQYWdlUHJveHk6OnNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50
UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBkcmFnSW1hZ2VIYW5kbGUs
IGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIGlzTGlua0RyYWcpCit2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29u
c3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGRyYWdJbWFnZUhhbmRsZSwgc3RkOjpvcHRpb25h
bDxUZXh0SW5kaWNhdG9yRGF0YT4sIGNvbnN0IEZsb2F0UG9pbnQmLCB1aW50NjRfdCBhY3Rpb24p
CiB7CiAgICAgaWYgKGF1dG8gZHJhZ0ltYWdlID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoZHJh
Z0ltYWdlSGFuZGxlKSkKLSAgICAgICAgbV9wYWdlQ2xpZW50LnNldERyYWdJbWFnZShjbGllbnRQ
b3NpdGlvbiwgV1RGTW92ZShkcmFnSW1hZ2UpLCBpc0xpbmtEcmFnKTsKKyAgICAgICAgbV9wYWdl
Q2xpZW50LnNldERyYWdJbWFnZShjbGllbnRQb3NpdGlvbiwgV1RGTW92ZShkcmFnSW1hZ2UpLCBz
dGF0aWNfY2FzdDxEcmFnU291cmNlQWN0aW9uPihhY3Rpb24pKTsKIAogICAgIHByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRTdGFydERyYWcoKSwgbV9wYWdlSUQpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RHJhZ0NsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXggMjQ1M2M5MDU1N2E4MWNiYzQ0M2FjZDE3
YjAwNTAyZmJhMGE5NWViMC4uZDVmNjlkNjFiM2UzYzQyODdmMTQzOTNkZDAxMjgwN2I1OWFlM2Yw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRHJhZ0NsaWVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC05Myw3ICs5Myw3IEBAIHZv
aWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZSBpbWFnZSwgY29uc3QgSW50UG9p
bnQmIHBvaW50LCBjb25zdCBJbnRQCiAgICAgbV9wYWdlLT53aWxsU3RhcnREcmFnKCk7CiAKICAg
ICAvLyBGSVhNRTogU2VlbXMgdGhpcyBtZXNzYWdlIHNob3VsZCBiZSBuYW1lZCBTdGFydERyYWcs
IG5vdCBTZXREcmFnSW1hZ2UuCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlNldERyYWdJbWFnZShmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQpLCBo
YW5kbGUsIHsgfSwgZHJhZ1NvdXJjZUFjdGlvbiA9PSBEcmFnU291cmNlQWN0aW9uTGluaykpOwor
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXREcmFnSW1hZ2UoZnJh
bWUudmlldygpLT5jb250ZW50c1RvV2luZG93KHBvaW50KSwgaGFuZGxlLCBzdGQ6Om51bGxvcHQs
IHsgfSwgZHJhZ1NvdXJjZUFjdGlvbikpOwogfQogCiBzdGF0aWMgV2ViQ29yZTo6Q2FjaGVkSW1h
Z2UqIGNhY2hlZEltYWdlKEVsZW1lbnQmIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTc2OTUwMjJjNjNh
YmUyZGFmZGI2MDhiYTRmMTUxODEzODcxNzBmOS4uNjZiOTJhMWU2NDdhZjE5NDJjZjUwNTQ1ODQ3
Y2ViYjMxMzBhMWZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjU0OSw3ICsyNTQ5LDcgQEAgdm9pZCBXZWJQYWdl
OjpnZXRQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0JiByZXF1ZXMKICAgICB9CiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBp
bmZvLmhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb24gPSBtX3BhZ2UtPmhhc0RhdGFJbnRlcmFj
dGlvbkF0UG9zaXRpb24oYWRqdXN0ZWRQb2ludCk7CisgICAgaW5mby5oYXNTZWxlY3Rpb25BdFBv
c2l0aW9uID0gbV9wYWdlLT5oYXNTZWxlY3Rpb25BdFBvc2l0aW9uKGFkanVzdGVkUG9pbnQpOwog
I2VuZGlmCiAgICAgaW5mby5hZGp1c3RlZFBvaW50Rm9yTm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZl
bnRzID0gYWRqdXN0ZWRQb2ludDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302166</attachid>
            <date>2017-02-20 12:45:43 -0800</date>
            <delta_ts>2017-02-20 13:23:04 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-168583-20170220124300.patch</filename>
            <type>text/plain</type>
            <size>39639</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNjYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAwYzdiMzA2NGIxYTJk
NTMxYzdlZTI0ODY0ZmMzNGY1NDdjNTI1ZC4uNjM0MTc0YWY1OGM3NmRhM2IyYmZlZGVjOGU0YWRj
ZDU1MWZmMzFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE3LTAyLTE5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwbHVtYmlu
ZyB0byB0aGUgVUkgcHJvY2VzcyBmb3IgVGV4dEluZGljYXRvckRhdGEgd2hlbiBjb21wdXRpbmcg
dGhlIGRyYWcgaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2ODU4MworICAgICAgICBXb3JrIHRvd2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMwMzEz
NjgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkcyBz
b21lIGFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIGRyYWcgaW1hZ2UgY3JlYXRpb24gZnVuY3Rpb25z
IHRvIGFsbG93IHBsYXRmb3JtcyB0byBzcGVjaWZ5IFRleHRJbmRpY2F0b3JEYXRhCisgICAgICAg
IGZvciBhIGxpbmsgb3Igc2VsZWN0aW9uLWJhc2VkIERyYWdJbWFnZS4gVGhpcyBUZXh0SW5kaWNh
dG9yRGF0YSBpcyBhbiBvcHRpb25hbCBtZW1iZXIgb2YgdGhlIERyYWdJbWFnZSwgYW5kIGlzCisg
ICAgICAgIHByb3BhZ2F0ZWQgdG8gdGhlIFVJIHByb2Nlc3MgdmlhIFNldERyYWdJbWFnZSBpbiB0
aGUgV2ViRHJhZ0NsaWVudC4KKworICAgICAgICBBZGRpdGlvbmFsbHkgcmVuYW1lcyBoYXNEYXRh
SW50ZXJhY3Rpb25BdFBvc2l0aW9uIHRvIGhhc1NlbGVjdGlvbkF0UG9zaXRpb24gdG8gYmV0dGVy
IHJlZmxlY3QgaXRzIHB1cnBvc2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBzaW5jZSB0aGVy
ZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpzdGFydERyYWcpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoYXNTZWxlY3Rp
b25BdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omhhc0RhdGFJbnRlcmFjdGlv
bkF0UG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL0RyYWdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1h
Z2VGb3JTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRHJhZ0ltYWdlRm9yTGlu
ayk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnSW1hZ2U6Om9wZXJhdG9yPSk6CisgICAgICAgICog
cGxhdGZvcm0vRHJhZ0ltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0RyYWdJbWFnZUd0
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlRHJhZ0ltYWdlRm9yTGluayk6CisgICAgICAgICogcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdp
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKToKKwogMjAx
Ny0wMi0xNyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIG5ldyBkcmFnIGNvZGUgcGF0aCBhbmQgdXNlIGl0IGZvciBkcmFnZ2luZyBwbGFpbiB0
ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTU4YzcwOGVjZDg0YTRjODg2NjFjYmEwZGY2YTJjZThm
MTY0ODYzNi4uN2YxNTNlYzg4Yjc3YjBlNzk4NzlhZTFlOGEzMDJiMDg5ZjczYzBlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTAyLTE5ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwbHVtYmluZyB0byB0aGUgVUkg
cHJvY2VzcyBmb3IgVGV4dEluZGljYXRvckRhdGEgd2hlbiBjb21wdXRpbmcgdGhlIGRyYWcgaW1h
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODU4
MworICAgICAgICBXb3JrIHRvd2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzMwMzEzNjgxPgorCisgICAg
ICAgIEFjY291bnRzIGZvciBjaGFuZ2VzIGluIFdlYkNvcmUgLS0gc2VlIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBfc2VsZWN0aW9uRHJhZ2dpbmdJbWFnZV0pOgorICAgICAgICAoLVtXZWJIVE1M
VmlldyBzZWxlY3Rpb25JbWFnZUZvcmNpbmdCbGFja1RleHQ6c2VsZWN0aW9uSW1hZ2VGb3JjaW5n
QmxhY2tUZXh0Ol0pOgorCiAyMDE3LTAyLTE3ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbmV3IGRyYWcgY29kZSBwYXRoIGFuZCB1c2UgaXQg
Zm9yIGRyYWdnaW5nIHBsYWluIHRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2NDI1NTc3OWM4YjdkMjNjNjRh
MTlkNTNmNDI1MTlmZjRjMmQxNmU2Li5iNTdlMzgxZDVhYWQ2NjAzYmIxZmFhMDAyMmUxNWRiMDRh
MTk5MjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTctMDItMTkgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHBsdW1iaW5nIHRv
IHRoZSBVSSBwcm9jZXNzIGZvciBUZXh0SW5kaWNhdG9yRGF0YSB3aGVuIGNvbXB1dGluZyB0aGUg
ZHJhZyBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTY4NTgzCisgICAgICAgIFdvcmsgdG93YXJkcyA8cmRhcjovL3Byb2JsZW0vMzAzMTM2ODE+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBDaGFuZ2VzIHRo
ZSBTZXREcmFnSW1hZ2UgSVBDIG1lc3NhZ2UgdG8gc2VuZCBUZXh0SW5kaWNhdG9yRGF0YSBvdmVy
IHRvIHRoZSBVSSBwcm9jZXNzLiBBbHNvIGNoYW5nZXMgdGhlIGJvb2xlYW4KKyAgICAgICAgaXNM
aW5rIHBhcmFtZXRlciB0byBiZSBhIERyYWdTb3VyY2VBY3Rpb24gaW5zdGVhZCwgbGVhdmluZyBp
dCB1cCB0byB0aGUgcmVjZWl2aW5nIGVuZCAoaW4gdGhlIFVJIHByb2Nlc3MpIHRvCisgICAgICAg
IHNwZWNpYWwgY2FzZSBsaW5rcy4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHJlbmFtZXMgaGFz
RGF0YUludGVyYWN0aW9uQXRQb3NpdGlvbiB0byBoYXNTZWxlY3Rpb25BdFBvc2l0aW9uIHRvIGJl
dHRlciByZWZsZWN0IGl0cyBwdXJwb3NlLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgYXJlIG9u
bHkgaW5mcmFzdHJ1Y3R1cmFsIHNob3VsZCBub3QgYWx0ZXIgYW55IGJlaGF2aW9ycy4KKworICAg
ICAgICAqIFNoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaDoKKyAg
ICAgICAgKiBTaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tOgor
ICAgICAgICAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRl
Y29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXpl
ZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW50ZXJl
ZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblVwZGF0
ZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25QZXJm
b3JtT3BlcmF0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NpbXVsYXRlRGF0YUludGVy
YWN0aW9uRW5kZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVEYXRhSW50ZXJh
Y3Rpb25TZXNzaW9uRGlkRW5kOndpdGhPcGVyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfc2ltdWxhdGVGYWlsZWREYXRhSW50ZXJhY3Rpb25XaXRoSW5kZXg6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfc2ltdWxhdGVXaWxsQmVnaW5EYXRhSW50ZXJhY3Rpb25XaXRoSW5kZXg6d2l0
aFNlc3Npb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2ltdWxhdGVkSXRlbXNGb3JEYXRh
SW50ZXJhY3Rpb25XaXRoSW5kZXg6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tUZXN0aW5nRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aElt
YWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcG9pbnRJc0luRGF0YUludGVyYWN0aW9uQ29udGVu
dDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwb2ludElzSW5Bc3Npc3RlZE5v
ZGU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpzZXREcmFnSW1hZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2Vi
UGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldERyYWdJ
bWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0Ns
aWVudE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmdldFBvc2l0aW9uSW5mb3JtYXRpb24pOgorCiAyMDE3LTAyLTIw
ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyMTI2MzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCmluZGV4IGJkYWRkNzMyMTYxM2MxYWI3NjQzZjEwZjNjOGJlMmM5MjllOGFlYzUuLmE0NWNm
YmYwZGIwYjQ2ZDEyY2UwZjQ2ZjQxNTBiMzBkYzhjNzQ5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC04NzUsNyArODc1LDEwIEBAIGJvb2wgRHJhZ0NvbnRyb2xs
ZXI6OnN0YXJ0RHJhZyhGcmFtZSYgc3JjLCBjb25zdCBEcmFnU3RhdGUmIHN0YXRlLCBEcmFnT3Bl
cmF0aW9uCiAgICAgICAgIH0KICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnU291cmNl
QWN0aW9uKERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24sIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zl
cik7CiAgICAgICAgIGlmICghZHJhZ0ltYWdlKSB7Ci0gICAgICAgICAgICBkcmFnSW1hZ2UgPSBE
cmFnSW1hZ2UgeyBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oY3JlYXRlRHJhZ0ltYWdlRm9y
U2VsZWN0aW9uKHNyYyksIERyYWdJbWFnZUFscGhhKSB9OworICAgICAgICAgICAgVGV4dEluZGlj
YXRvckRhdGEgdGV4dEluZGljYXRvcjsKKyAgICAgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFn
ZSB7IGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rp
b24oc3JjLCB0ZXh0SW5kaWNhdG9yKSwgRHJhZ0ltYWdlQWxwaGEpIH07CisgICAgICAgICAgICBp
ZiAodGV4dEluZGljYXRvci5jb250ZW50SW1hZ2UpCisgICAgICAgICAgICAgICAgZHJhZ0ltYWdl
LnNldEluZGljYXRvckRhdGEodGV4dEluZGljYXRvcik7CiAgICAgICAgICAgICBkcmFnTG9jID0g
ZHJhZ0xvY0ZvclNlbGVjdGlvbkRyYWcoc3JjKTsKICAgICAgICAgICAgIGRyYWdJbWFnZUFuY2hv
clBvaW50ID0gZHJhZ0ltYWdlQW5jaG9yUG9pbnRGb3JTZWxlY3Rpb25EcmFnKHNyYywgbW91c2VE
cmFnZ2VkUG9pbnQpOwogICAgICAgICAgICAgbV9kcmFnT2Zmc2V0ID0gSW50UG9pbnQoZHJhZ09y
aWdpbi54KCkgLSBkcmFnTG9jLngoKSwgZHJhZ09yaWdpbi55KCkgLSBkcmFnTG9jLnkoKSk7CkBA
IC05NTYsMTEgKzk1OSwxNCBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUm
IHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogCiAgICAgICAgIG1f
Y2xpZW50LndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uTGluaywg
ZHJhZ09yaWdpbiwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgaWYgKCFkcmFnSW1hZ2UpIHsKLSAg
ICAgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IGNyZWF0ZURyYWdJbWFnZUZvckxpbmso
bGlua1VSTCwgaGl0VGVzdFJlc3VsdC50ZXh0Q29udGVudCgpLCBzcmMuc2V0dGluZ3MoKS5mb250
UmVuZGVyaW5nTW9kZSgpKSB9OworICAgICAgICAgICAgVGV4dEluZGljYXRvckRhdGEgdGV4dElu
ZGljYXRvcjsKKyAgICAgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IGNyZWF0ZURyYWdJ
bWFnZUZvckxpbmsoZWxlbWVudCwgbGlua1VSTCwgaGl0VGVzdFJlc3VsdC50ZXh0Q29udGVudCgp
LCB0ZXh0SW5kaWNhdG9yLCBzcmMuc2V0dGluZ3MoKS5mb250UmVuZGVyaW5nTW9kZSgpLCBtX3Bh
Z2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkgfTsKICAgICAgICAgICAgIEludFNpemUgc2l6ZSA9IGRy
YWdJbWFnZVNpemUoZHJhZ0ltYWdlLmdldCgpKTsKICAgICAgICAgICAgIG1fZHJhZ09mZnNldCA9
IEludFBvaW50KC1zaXplLndpZHRoKCkgLyAyLCAtTGlua0RyYWdCb3JkZXJJbnNldCk7CiAgICAg
ICAgICAgICBkcmFnTG9jID0gSW50UG9pbnQobW91c2VEcmFnZ2VkUG9pbnQueCgpICsgbV9kcmFn
T2Zmc2V0LngoKSwgbW91c2VEcmFnZ2VkUG9pbnQueSgpICsgbV9kcmFnT2Zmc2V0LnkoKSk7CiAg
ICAgICAgICAgICBkcmFnSW1hZ2UgPSBEcmFnSW1hZ2UgeyBwbGF0Zm9ybUFkanVzdERyYWdJbWFn
ZUZvckRldmljZVNjYWxlRmFjdG9yKGRyYWdJbWFnZS5nZXQoKSwgbV9wYWdlLmRldmljZVNjYWxl
RmFjdG9yKCkpIH07CisgICAgICAgICAgICBpZiAodGV4dEluZGljYXRvci5jb250ZW50SW1hZ2Up
CisgICAgICAgICAgICAgICAgZHJhZ0ltYWdlLnNldEluZGljYXRvckRhdGEodGV4dEluZGljYXRv
cik7CiAgICAgICAgIH0KICAgICAgICAgZG9TeXN0ZW1EcmFnKFdURk1vdmUoZHJhZ0ltYWdlKSwg
ZHJhZ0xvYywgbW91c2VEcmFnZ2VkUG9pbnQsIHsgfSwgZGF0YVRyYW5zZmVyLCBzcmMsIERyYWdT
b3VyY2VBY3Rpb25MaW5rKTsKIApAQCAtOTc4LDcgKzk4NCwxMCBAQCBib29sIERyYWdDb250cm9s
bGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09w
ZXJhdGlvbgogICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24oRHJh
Z1NvdXJjZUFjdGlvbkF0dGFjaG1lbnQsIGRyYWdPcmlnaW4sIGRhdGFUcmFuc2Zlcik7CiAgICAg
ICAgIAogICAgICAgICBpZiAoIWRyYWdJbWFnZSkgewotICAgICAgICAgICAgZHJhZ0ltYWdlID0g
RHJhZ0ltYWdlIHsgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKGNyZWF0ZURyYWdJbWFnZUZv
clNlbGVjdGlvbihzcmMpLCBEcmFnSW1hZ2VBbHBoYSkgfTsKKyAgICAgICAgICAgIFRleHRJbmRp
Y2F0b3JEYXRhIHRleHRJbmRpY2F0b3I7CisgICAgICAgICAgICBkcmFnSW1hZ2UgPSBEcmFnSW1h
Z2UgeyBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0
aW9uKHNyYywgdGV4dEluZGljYXRvciksIERyYWdJbWFnZUFscGhhKSB9OworICAgICAgICAgICAg
aWYgKHRleHRJbmRpY2F0b3IuY29udGVudEltYWdlKQorICAgICAgICAgICAgICAgIGRyYWdJbWFn
ZS5zZXRJbmRpY2F0b3JEYXRhKHRleHRJbmRpY2F0b3IpOwogICAgICAgICAgICAgZHJhZ0xvYyA9
IGRyYWdMb2NGb3JTZWxlY3Rpb25EcmFnKHNyYyk7CiAgICAgICAgICAgICBtX2RyYWdPZmZzZXQg
PSBJbnRQb2ludChkcmFnT3JpZ2luLngoKSAtIGRyYWdMb2MueCgpLCBkcmFnT3JpZ2luLnkoKSAt
IGRyYWdMb2MueSgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMmY3OGU2ZDQz
MTMwN2U0OTczYTRmMTQwMmRkOTlhMmQ4NGFjYTMzZS4uNTY3MDQ0NzllZGRjYTg2ZTYyMGI3ZDg1
NmI5MDgwMDA0OGY5YTA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yMTkxLDcgKzIxOTEsNyBA
QCB2b2lkIFBhZ2U6OmFjY2Vzc2liaWxpdHlTZXR0aW5nc0RpZENoYW5nZSgpCiAKICNpZiBFTkFC
TEUoREFUQV9JTlRFUkFDVElPTikKIAotYm9vbCBQYWdlOjpoYXNEYXRhSW50ZXJhY3Rpb25BdFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKSBjb25zdAorYm9vbCBQYWdlOjpoYXNT
ZWxlY3Rpb25BdFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKSBjb25zdAogewog
ICAgIGF1dG8gY3VycmVudFNlbGVjdGlvbiA9IG1fbWFpbkZyYW1lLT5zZWxlY3Rpb24oKS5zZWxl
Y3Rpb24oKTsKICAgICBpZiAoIWN1cnJlbnRTZWxlY3Rpb24uaXNSYW5nZSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAppbmRleCA0ZTE4ZmRiZDI1NzdjYjVlM2FjMjg1ODNhNWYwYTk3YzdhNWE3YzA2Li5iOTVhNThl
YWUzOWIzZGRjM2VlN2E3MjZhMjkxOGZiYmNiMjlkZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNTcx
LDcgKzU3MSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzVXRpbGl0eVBhZ2UoKSBjb25zdCB7IHJl
dHVybiBtX2lzVXRpbGl0eVBhZ2U7IH0KIAogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzRGF0YUludGVyYWN0aW9uQXRQb3NpdGlvbihjb25z
dCBGbG9hdFBvaW50JikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNTZWxlY3Rp
b25BdFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICNlbmRpZgogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAKaW5kZXggYzcyMDNhMTNkOTQwZjQ2
YThhY2U3NDMxMDY4OTAwNTNlN2QyNGQyZC4uYjhiNDU5MGYxYTc0NDdkNTFiMzM1YjU3OTJmY2U0
MmY3NDU5NDUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlck9i
amVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJUZXh0SW5kaWNhdG9y
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTIyLDcgKzEyMyw3IEBAIERyYWdJbWFn
ZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JOb2RlKEZyYW1lJiBmcmFtZSwgTm9kZSYgbm9kZSkKIAog
I2lmICFFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJ
bWFnZUZvclNlbGVjdGlvbihGcmFtZSYgZnJhbWUsIGJvb2wgZm9yY2VCbGFja1RleHQpCitEcmFn
SW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yU2VsZWN0aW9uKEZyYW1lJiBmcmFtZSwgVGV4dElu
ZGljYXRvckRhdGEmLCBib29sIGZvcmNlQmxhY2tUZXh0KQogewogICAgIFNuYXBzaG90T3B0aW9u
cyBvcHRpb25zID0gZm9yY2VCbGFja1RleHQgPyBTbmFwc2hvdE9wdGlvbnNGb3JjZUJsYWNrVGV4
dCA6IFNuYXBzaG90T3B0aW9uc05vbmU7CiAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21T
bmFwc2hvdChzbmFwc2hvdFNlbGVjdGlvbihmcmFtZSwgb3B0aW9ucyksIG51bGxwdHIpOwpAQCAt
MjE5LDcgKzIyMCw3IEBAIERyYWdJbWFnZVJlZiBwbGF0Zm9ybUFkanVzdERyYWdJbWFnZUZvckRl
dmljZVNjYWxlRmFjdG9yKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvCiAjZW5kaWYKIAogI2lmICFQ
TEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdJTikKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFn
SW1hZ2VGb3JMaW5rKFVSTCYsIGNvbnN0IFN0cmluZyYsIEZvbnRSZW5kZXJpbmdNb2RlKQorRHJh
Z0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoRWxlbWVudCYsIFVSTCYsIGNvbnN0IFN0
cmluZyYsIEZvbnRSZW5kZXJpbmdNb2RlLCBmbG9hdCkKIHsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KQEAgLTIzOCw2ICsyMzksNyBAQCBEcmFnSW1hZ2U6OkRyYWdJbWFnZShEcmFnSW1hZ2VSZWYg
ZHJhZ0ltYWdlUmVmKQogRHJhZ0ltYWdlOjpEcmFnSW1hZ2UoRHJhZ0ltYWdlJiYgb3RoZXIpCiAg
ICAgOiBtX2RyYWdJbWFnZVJlZiB7IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9kcmFnSW1hZ2VSZWYs
IG51bGxwdHIpIH0KIHsKKyAgICBtX2luZGljYXRvckRhdGEgPSBvdGhlci5tX2luZGljYXRvckRh
dGE7CiB9CiAKIERyYWdJbWFnZSYgRHJhZ0ltYWdlOjpvcGVyYXRvcj0oRHJhZ0ltYWdlJiYgb3Ro
ZXIpCkBAIC0yNDYsNiArMjQ4LDcgQEAgRHJhZ0ltYWdlJiBEcmFnSW1hZ2U6Om9wZXJhdG9yPShE
cmFnSW1hZ2UmJiBvdGhlcikKICAgICAgICAgZGVsZXRlRHJhZ0ltYWdlKG1fZHJhZ0ltYWdlUmVm
KTsKIAogICAgIG1fZHJhZ0ltYWdlUmVmID0gc3RkOjpleGNoYW5nZShvdGhlci5tX2RyYWdJbWFn
ZVJlZiwgbnVsbHB0cik7CisgICAgbV9pbmRpY2F0b3JEYXRhID0gb3RoZXIubV9pbmRpY2F0b3JE
YXRhOwogCiAgICAgcmV0dXJuICp0aGlzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2Uu
aAppbmRleCBiMzBmMzRmNjZiM2YzYWY5YTg2NDc2MzA2YjFiNTNhYjMxYTdmODhmLi5lMzI1NWQx
OWFkMmFlYjI2MWMzNzc0MzUwYzkwMDgzMTI1ODc1MjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9E
cmFnSW1hZ2UuaApAQCAtMjksNyArMjksOSBAQAogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24u
aCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCisjaW5jbHVk
ZSAiVGV4dEluZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8
d3RmL09wdGlvbmFsLmg+CiAKICNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgpAQCAtNDgsNiArNTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRN
QVA7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1l
OwogY2xhc3MgSW1hZ2U7CiBjbGFzcyBJbnRSZWN0OwpAQCAtODMsMTAgKzg2LDEwIEBAIERyYWdJ
bWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9yaWVudGF0aW9u
RGVzY3JpcHRpb24pOwogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUljb25Gb3JDYWNoZWRJ
bWFnZUZpbGVuYW1lKGNvbnN0IFN0cmluZyYpOwogCiBXRUJDT1JFX0VYUE9SVCBEcmFnSW1hZ2VS
ZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTm9kZShGcmFtZSYsIE5vZGUmKTsKLVdFQkNPUkVfRVhQT1JU
IERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24oRnJhbWUmLCBib29sIGZv
cmNlQmxhY2tUZXh0ID0gZmFsc2UpOworV0VCQ09SRV9FWFBPUlQgRHJhZ0ltYWdlUmVmIGNyZWF0
ZURyYWdJbWFnZUZvclNlbGVjdGlvbihGcmFtZSYsIFRleHRJbmRpY2F0b3JEYXRhJiwgYm9vbCBm
b3JjZUJsYWNrVGV4dCA9IGZhbHNlKTsKIFdFQkNPUkVfRVhQT1JUIERyYWdJbWFnZVJlZiBjcmVh
dGVEcmFnSW1hZ2VGb3JSYW5nZShGcmFtZSYsIFJhbmdlJiwgYm9vbCBmb3JjZUJsYWNrVGV4dCA9
IGZhbHNlKTsKIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JJbWFnZShGcmFtZSYsIE5v
ZGUmLCBJbnRSZWN0JiBpbWFnZVJlY3QsIEludFJlY3QmIGVsZW1lbnRSZWN0KTsKLURyYWdJbWFn
ZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKFVSTCYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZv
bnRSZW5kZXJpbmdNb2RlKTsKK0RyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKEVs
ZW1lbnQmLCBVUkwmLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBUZXh0SW5kaWNhdG9yRGF0YSYsIEZv
bnRSZW5kZXJpbmdNb2RlLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CiB2b2lkIGRlbGV0ZURy
YWdJbWFnZShEcmFnSW1hZ2VSZWYpOwogCiBjbGFzcyBEcmFnSW1hZ2UgZmluYWwgewpAQCAtOTgs
MTEgKzEwMSwxNiBAQCBwdWJsaWM6CiAKICAgICBEcmFnSW1hZ2UmIG9wZXJhdG9yPShEcmFnSW1h
Z2UmJik7CiAKKyAgICB2b2lkIHNldEluZGljYXRvckRhdGEoY29uc3QgVGV4dEluZGljYXRvckRh
dGEmIGRhdGEpIHsgbV9pbmRpY2F0b3JEYXRhID0gZGF0YTsgfQorICAgIGJvb2wgaGFzSW5kaWNh
dG9yRGF0YSgpIGNvbnN0IHsgcmV0dXJuICEhbV9pbmRpY2F0b3JEYXRhOyB9CisgICAgc3RkOjpv
cHRpb25hbDxUZXh0SW5kaWNhdG9yRGF0YT4gaW5kaWNhdG9yRGF0YSgpIGNvbnN0IHsgcmV0dXJu
IG1faW5kaWNhdG9yRGF0YTsgfQorCiAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0
IHsgcmV0dXJuICEhbV9kcmFnSW1hZ2VSZWY7IH0KICAgICBEcmFnSW1hZ2VSZWYgZ2V0KCkgY29u
c3QgeyByZXR1cm4gbV9kcmFnSW1hZ2VSZWY7IH0KIAogcHJpdmF0ZToKICAgICBEcmFnSW1hZ2VS
ZWYgbV9kcmFnSW1hZ2VSZWY7CisgICAgc3RkOjpvcHRpb25hbDxUZXh0SW5kaWNhdG9yRGF0YT4g
bV9pbmRpY2F0b3JEYXRhOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0RyYWdJbWFnZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
RHJhZ0ltYWdlR3RrLmNwcAppbmRleCBjOTlmOGFjMDQ2Nzk1ODFjOWI0OTlhMWMxNjE0NzdjN2U0
YWUxNjc4Li5kNDFhNGU1NjkyMzVmNGQ4MjJhZTgyY2I4Yjg3ODU5MTZkZGQ5Mzc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJhZ0ltYWdlR3RrLmNwcApAQCAtMTksNyArMTks
MTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKIAorI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgorI2luY2x1ZGUgIlRleHRGbGFn
cy5oIgorI2luY2x1ZGUgIlRleHRJbmRpY2F0b3IuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNs
dWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPGdkay9nZGsuaD4KIApAQCAtODgsNCArOTIsOSBAQCBE
cmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlRmlsZW5hbWUoY29u
c3QgU3RyaW5nJikKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorRHJhZ0ltYWdlUmVmIGNyZWF0
ZURyYWdJbWFnZUZvckxpbmsoRWxlbWVudCYsIFVSTCYsIGNvbnN0IFN0cmluZyYsIFRleHRJbmRp
Y2F0b3JEYXRhJiwgRm9udFJlbmRlcmluZ01vZGUsIGZsb2F0KQoreworICAgIHJldHVybiBudWxs
cHRyOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJh
Z0ltYWdlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdJbWFnZU1hYy5t
bQppbmRleCAwZTlkY2ExYmE2YzlhNjhhOGE5MGJmNTUxYTRiNGZiYzc0OGU1YWNhLi4yYThkZmQz
ZjVlN2E5ZTQxMDBlODg4NWY0MzRkOTdiZDc5YTc3YjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0ltYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9EcmFnSW1hZ2VNYWMubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAi
Qml0bWFwSW1hZ2UuaCIKICNpbXBvcnQgIkNvcmVHcmFwaGljc1NQSS5oIgorI2ltcG9ydCAiRWxl
bWVudC5oIgogI2ltcG9ydCAiRm9udENhc2NhZGUuaCIKICNpbXBvcnQgIkZvbnREZXNjcmlwdGlv
bi5oIgogI2ltcG9ydCAiRm9udFNlbGVjdG9yLmgiCkBAIC0zNyw2ICszOCw3IEBACiAjaW1wb3J0
ICJJbWFnZS5oIgogI2ltcG9ydCAiVVJMLmgiCiAjaW1wb3J0ICJTdHJpbmdUcnVuY2F0b3IuaCIK
KyNpbXBvcnQgIlRleHRJbmRpY2F0b3IuaCIKICNpbXBvcnQgIlRleHRSdW4uaCIKICNpbXBvcnQg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC0yNjUsNyArMjY3LDcgQEAgc3RhdGljIHZvaWQg
ZHJhd0RvdWJsZWRBdFBvaW50KE5TU3RyaW5nICpzdHJpbmcsIE5TUG9pbnQgdGV4dFBvaW50LCBO
U0NvbG9yICp0b3AKICAgICAgICAgZHJhd0F0UG9pbnQoc3RyaW5nLCB0ZXh0UG9pbnQsIGZvbnQs
IHRvcENvbG9yKTsKIH0KIAotRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUsIEZvbnRSZW5kZXJpbmdNb2RlKQorRHJhZ0ltYWdl
UmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoRWxlbWVudCYsIFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBUZXh0SW5kaWNhdG9yRGF0YSYsIEZvbnRSZW5kZXJpbmdNb2RlLCBmbG9hdCkK
IHsKICAgICBOU1N0cmluZyAqbGFiZWwgPSBuc1N0cmluZ05pbElmRW1wdHkodGl0bGUpOwogICAg
IE5TVVJMICpjb2NvYVVSTCA9IHVybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Ry
YWdJbWFnZVdpbi5jcHAKaW5kZXggOTg5YTBiNTQ2MTM4ODY1OGZkNmRkMTgyZTViMjk1NzcyZWI4
NTBiMy4uMWFiYzAwODVlZjYxMWE1MmM0MTZjYTk1N2U4OTBkNjczYzMzMjZmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdpbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdpbi5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEcmFnSW1hZ2UuaCIKIAorI2luY2x1
ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJGbG9hdFJvdW5kZWRSZWN0LmgiCiAjaW5jbHVkZSAi
Rm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKQEAgLTM1LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIlN0
cmluZ1RydW5jYXRvci5oIgorI2luY2x1ZGUgIlRleHRJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJU
ZXh0UnVuLmgiCiAjaW5jbHVkZSAiV2ViQ29yZVRleHRSZW5kZXJlci5oIgogI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KQEAgLTExOSw3ICsxMjEsNyBAQCBzdGF0aWMgRm9udENhc2NhZGUgZHJh
Z0xhYmVsRm9udChpbnQgc2l6ZSwgYm9vbCBib2xkLCBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJp
bgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLURyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VG
b3JMaW5rKFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGluTGFiZWwsIEZvbnRSZW5kZXJpbmdNb2Rl
IGZvbnRSZW5kZXJpbmdNb2RlKQorRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmso
RWxlbWVudCYsIFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGluTGFiZWwsIFRleHRJbmRpY2F0b3JE
YXRhJiwgRm9udFJlbmRlcmluZ01vZGUgZm9udFJlbmRlcmluZ01vZGUsIGZsb2F0KQogewogICAg
IC8vIFRoaXMgaXMgbW9yZSBvciBsZXNzIGFuIGV4YWN0IG1hdGNoIGZvciB0aGUgTWFjIE9TIFgg
Y29kZS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggZGVl
MDMyNDk1ZTY4ODM5MDc2MjA2MzY1NmI3ZDJmYjlkY2UxODNjYy4uYTAyNGRmYjllNTIyMmM3ZjE0
YmQ3Y2I0ODljNDA2YTlkNjYyMTdiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCkBAIC0yMzg5LDcgKzIzODksOCBAQCBzdGF0aWMgYm9vbCBtb3VzZUV2ZW50SXNQ
YXJ0T2ZDbGlja09yRHJhZyhOU0V2ZW50ICpldmVudCkKICAgICBpZiAoIWNvcmVGcmFtZSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKIAotICAgIGF1dG8gZHJhZ0ltYWdlID0gY3JlYXRlRHJhZ0ltYWdl
Rm9yU2VsZWN0aW9uKCpjb3JlRnJhbWUpOworICAgIFRleHRJbmRpY2F0b3JEYXRhIHRleHRJbmRp
Y2F0b3I7CisgICAgYXV0byBkcmFnSW1hZ2UgPSBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rpb24o
KmNvcmVGcmFtZSwgdGV4dEluZGljYXRvcik7CiAgICAgW2RyYWdJbWFnZSBfd2ViX2Rpc3NvbHZl
VG9GcmFjdGlvbjpXZWJEcmFnSW1hZ2VBbHBoYV07CiAKICAgICByZXR1cm4gZHJhZ0ltYWdlLmF1
dG9yZWxlYXNlKCk7CkBAIC03MzczLDcgKzczNzQsOCBAQCBzdGF0aWMgQ0dJbWFnZVJlZiBzZWxl
Y3Rpb25JbWFnZShGcmFtZSogZnJhbWUsIGJvb2wgZm9yY2VCbGFja1RleHQpCiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgIHJldHVybiBzZWxlY3Rpb25JbWFnZShjb3JlRnJhbWUsIGZvcmNlQmxhY2tU
ZXh0KTsKICNlbHNlCi0gICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZvclNlbGVjdGlvbigqY29y
ZUZyYW1lLCBmb3JjZUJsYWNrVGV4dCkuYXV0b3JlbGVhc2UoKTsKKyAgICBUZXh0SW5kaWNhdG9y
RGF0YSB0ZXh0SW5kaWNhdG9yOworICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGb3JTZWxlY3Rp
b24oKmNvcmVGcmFtZSwgdGV4dEluZGljYXRvciwgZm9yY2VCbGFja1RleHQpLmF1dG9yZWxlYXNl
KCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9J
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCmluZGV4IDhiZWNlMWI3MDVl
YWViZjJkMmQ3MzdlNGU2NjM4ZGRmNjE3NzYxYTcuLjcyYTQ0YmZlM2M5YzhhZDUyOTA3NWQwNDIx
ODkxMzZjYTk4OWFiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKQEAgLTQyLDcgKzQyLDcg
QEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIHsKIAogICAgIGJvb2wg
bm9kZUF0UG9zaXRpb25Jc0Fzc2lzdGVkTm9kZSB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKERBVEFf
SU5URVJBQ1RJT04pCi0gICAgYm9vbCBoYXNEYXRhSW50ZXJhY3Rpb25BdFBvc2l0aW9uIHsgZmFs
c2UgfTsKKyAgICBib29sIGhhc1NlbGVjdGlvbkF0UG9zaXRpb24geyBmYWxzZSB9OwogI2VuZGlm
CiAgICAgYm9vbCBpc1NlbGVjdGFibGUgeyBmYWxzZSB9OwogICAgIGJvb2wgaXNOZWFyTWFya2Vk
VGV4dCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0lu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQppbmRleCAxNjNlZGE1NjM2
ZmU4YWQ5NDcxMjU5ZjQ1YWJjNDIyYzVmODU1ZWVlLi43MGEyZWI3NDBhMGM0NTRkZjY2OGJmMjgx
YjY1MmJiNDM2NTBjZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0lu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KQEAgLTQ0LDcgKzQ0
LDcgQEAgdm9pZCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogICAgIGVuY29kZXIgPDwgbm9kZUF0UG9zaXRpb25J
c0Fzc2lzdGVkTm9kZTsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBlbmNvZGVy
IDw8IGhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb247CisgICAgZW5jb2RlciA8PCBoYXNTZWxl
Y3Rpb25BdFBvc2l0aW9uOwogI2VuZGlmCiAgICAgZW5jb2RlciA8PCBpc1NlbGVjdGFibGU7CiAg
ICAgZW5jb2RlciA8PCBpc05lYXJNYXJrZWRUZXh0OwpAQCAtOTIsNyArOTIsNyBAQCBib29sIElu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBJbnRlcmFjdGlvbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBFTkFCTEUoREFU
QV9JTlRFUkFDVElPTikKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5oYXNEYXRhSW50
ZXJhY3Rpb25BdFBvc2l0aW9uKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5oYXNT
ZWxlY3Rpb25BdFBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXgg
Njg0Njg5MTgzZmUwYjRmMDA1NzJhMDYxZGJjYWQwY2ZiNjM1YWI4Ny4uNDQ1MzQxZjNiZjY2Yjc1
ZjNjZDFlMjY1ODlkYTI3NjQwYzFmZWJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTUxNzQsNjcgKzUxNzQsMzkgQEAgc3RhdGlj
IFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdG9Vc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uKFVJU2UKIAogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25HZXN0
dXJlUmVjb2duaXplZAogewotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIFtfY29u
dGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZWQ6X3Rlc3Rp
bmdEZWxlZ2F0ZS5kYXRhSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplcl07Ci0jZW5kaWYKIH0K
IAogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25FbnRlcmVkOihpZClpbmZvCiB7Ci0j
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCi0gICAgW19jb250ZW50VmlldyBfc2ltdWxhdGVE
YXRhSW50ZXJhY3Rpb25FbnRlcmVkOmluZm9dOwotI2VuZGlmCiB9CiAKIC0gKHZvaWQpX3NpbXVs
YXRlRGF0YUludGVyYWN0aW9uVXBkYXRlZDooaWQpaW5mbwogewotI2lmIEVOQUJMRShEQVRBX0lO
VEVSQUNUSU9OKQotICAgIFtfY29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uVXBk
YXRlZDppbmZvXTsKLSNlbmRpZgogfQogCiAtICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlv
blBlcmZvcm1PcGVyYXRpb246KGlkKWluZm8KIHsKLSNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKLSAgICBbX2NvbnRlbnRWaWV3IF9zaW11bGF0ZURhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVy
YXRpb246aW5mb107Ci0jZW5kaWYKIH0KIAogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rp
b25FbmRlZDooaWQpaW5mbwogewotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIFtf
Y29udGVudFZpZXcgX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uRW5kZWQ6aW5mb107Ci0jZW5kaWYK
IH0KIAogLSAodm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25TZXNzaW9uRGlkRW5kOihpZClz
ZXNzaW9uIHdpdGhPcGVyYXRpb246KE5TVUludGVnZXIpb3BlcmF0aW9uCiB7Ci0jaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pCi0gICAgW19jb250ZW50VmlldyBfc2ltdWxhdGVEYXRhSW50ZXJh
Y3Rpb25TZXNzaW9uRGlkRW5kOnNlc3Npb24gd2l0aE9wZXJhdGlvbjpvcGVyYXRpb25dOwotI2Vu
ZGlmCiB9CiAKIC0gKHZvaWQpX3NpbXVsYXRlRmFpbGVkRGF0YUludGVyYWN0aW9uV2l0aEluZGV4
OihOU0ludGVnZXIpc291cmNlSW5kZXgKIHsKLSNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
LSAgICBbX2NvbnRlbnRWaWV3IF9zaW11bGF0ZUZhaWxlZERhdGFJbnRlcmFjdGlvbldpdGhJbmRl
eDpzb3VyY2VJbmRleF07Ci0jZW5kaWYKIH0KIAogLSAodm9pZClfc2ltdWxhdGVXaWxsQmVnaW5E
YXRhSW50ZXJhY3Rpb25XaXRoSW5kZXg6KE5TSW50ZWdlcilzb3VyY2VJbmRleCB3aXRoU2Vzc2lv
bjooaWQpc2Vzc2lvbgogewotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIFtfY29u
dGVudFZpZXcgX3NpbXVsYXRlV2lsbEJlZ2luRGF0YUludGVyYWN0aW9uV2l0aEluZGV4OnNvdXJj
ZUluZGV4IHdpdGhTZXNzaW9uOnNlc3Npb25dOwotI2VuZGlmCiB9CiAKIC0gKE5TQXJyYXkgKilf
c2ltdWxhdGVkSXRlbXNGb3JEYXRhSW50ZXJhY3Rpb25XaXRoSW5kZXg6KE5TSW50ZWdlcilzb3Vy
Y2VJbmRleAogewotI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQotICAgIHJldHVybiBbX2Nv
bnRlbnRWaWV3IF9zaW11bGF0ZWRJdGVtc0ZvckRhdGFJbnRlcmFjdGlvbldpdGhJbmRleDpzb3Vy
Y2VJbmRleF07Ci0jZWxzZQogICAgIHJldHVybiBAWyBdOwotI2VuZGlmCiB9CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGVzdGluZ0Rl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Rlc3RpbmdE
ZWxlZ2F0ZS5oCmluZGV4IGYzN2Y5YWY0ZDZmMzc4NGNkNTdhYWVkZGY5OTYwNmM5ODM0NGM0MWEu
LmI0OWJjM2IyYzQ3M2VjNTg2NzIwYjQ2MDhkOTFlODQyNDg1NTE3ODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGVzdGluZ0RlbGVnYXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXN0aW5nRGVsZWdhdGUu
aApAQCAtMzEsMjIgKzMxLDEzIEBACiAKIEBjbGFzcyBXS1dlYlZpZXc7CiAKLSNpZiBUQVJHRVRf
T1NfSVBIT05FCi1AY2xhc3MgVUlHZXN0dXJlUmVjb2duaXplcjsKLUBjbGFzcyBVSUxvbmdQcmVz
c0dlc3R1cmVSZWNvZ25pemVyOwotI2VuZGlmCi0KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
IEBwcm90b2NvbCBfV0tUZXN0aW5nRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9wdGlvbmFsCiAKICNp
ZiBUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJTG9u
Z1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgKmRhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
OwotLSAodm9pZCl3ZWJWaWV3RGlkU2VuZERhdGFJbnRlcmFjdGlvblN0YXJ0UmVxdWVzdDooV0tX
ZWJWaWV3ICopd2ViVmlldzsKLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
aWRSZWNlaXZlRGF0YUludGVyYWN0aW9uU3RhcnRSZXNwb25zZTooQk9PTClzdGFydGVkOwogLSAo
dm9pZCl3ZWJWaWV3RGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb246
KFdLV2ViVmlldyAqKXdlYlZpZXc7Ci0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgYmVnaW5EYXRhSW50ZXJhY3Rpb25XaXRoU291cmNlSW5kZXg6KE5TSW50ZWdlcilzb3VyY2VJ
bmRleCBnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNv
Z25pemVyOwogI2VuZGlmIC8vIFRBUkdFVF9PU19QSE9ORQogCiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBhNTQ2N2Y5NGI4YThmZGNjZmIyY2RjYmEzMTA1Y2Zi
YTFjMzU2MWUzLi41YjJiMzNmNjAxY2YyOGM0NDM4ZjBjMWEwY2FlNDAyYTI5MWZmZDQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTE3MCw3ICsxNzAsNyBAQCBwdWJs
aWM6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc2liaWxpdHlX
ZWJQcm9jZXNzVG9rZW5SZWNlaXZlZChjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmlu
ZyYgc2VsZWN0b3IpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRt
YXA+IGRyYWdJbWFnZSwgYm9vbCBpc0xpbmtEcmFnKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIFBhc3NS
ZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2UsIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rp
b24pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRTZWN1cmVJbnB1dFN0YXRlKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCkgPSAw
OwpAQCAtMzgwLDcgKzM4MCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJP
cGVyYXRpb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEhhbmRsZVN0YXJ0RGF0YUludGVy
YWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRE
YXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBv
c2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29sIGlzTGluaykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFn
ZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4sIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCB1aW50NjRfdCBhY3Rpb24pID0gMDsKICNlbmRp
ZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDBhMjkw
ZmMyZWNmZmVlZjExN2U5NTI4ODhlOGE1NmI5NTA5Y2UzZmEuLjIxYWJiOWNmMGRmYzRiNGJjZjI3
YjkzYWE4MGIxZjIyNDY3OWZlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTgzMiw3ICs4MzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmFnRW5kZWQoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IG9wZXJhdGlvbik7CiAgICAgdm9pZCBkcmFn
Q2FuY2VsbGVkKCk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBzZXREcmFnSW1hZ2Uo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBkcmFnSW1hZ2VBbmNob3IsIGJvb2wgaXNMaW5rRHJhZyk7CisgICAgdm9pZCBzZXREcmFnSW1h
Z2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JEYXRhPiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgZHJhZ0ltYWdl
QW5jaG9yLCB1aW50NjRfdCBhY3Rpb24pOwogICAgIHZvaWQgc2V0UHJvbWlzZWREYXRhRm9ySW1h
Z2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5k
bGUmIGltYWdlSGFuZGxlLCB1aW50NjRfdCBpbWFnZVNpemUsIGNvbnN0IFN0cmluZyYgZmlsZW5h
bWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHZpc2li
bGVVUkwsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiBhcmNoaXZlSGFuZGxlLCB1aW50NjRf
dCBhcmNoaXZlU2l6ZSk7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGFj
NDYzMTRiMWMxZmQ3ZTc5ZmVhYzY5OGU4N2NiMjFjYzI5NTQzNWQuLjVhMTRhYzhjNjU4MmQzNGU0
ZjE2MjNiOWUwOTE4NjM0OWUxNWE4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzAyLDcgKzMwMiw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVp
bnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJGaWxlSW5wdXQsIHVuc2lnbmVk
IG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQpCiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBTZXREcmFnSW1hZ2UoV2ViQ29yZTo6SW50UG9p
bnQgY2xpZW50UG9zaXRpb24sIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgZHJhZ0lt
YWdlLCBXZWJDb3JlOjpGbG9hdFBvaW50IGRyYWdJbWFnZUFuY2hvciwgYm9vbCBsaW5rRHJhZykK
KyAgICBTZXREcmFnSW1hZ2UoV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYktp
dDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgZHJhZ0ltYWdlLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEYXRhPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpGbG9hdFBvaW50
IGRyYWdJbWFnZUFuY2hvciwgdWludDY0X3QgYWN0aW9uKQogICAgIFNldFByb21pc2VkRGF0YUZv
ckltYWdlKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRs
ZSBpbWFnZUhhbmRsZSwgdWludDY0X3QgaW1hZ2VTaXplLCBTdHJpbmcgZmlsZW5hbWUsIFN0cmlu
ZyBleHRlbnNpb24sIFN0cmluZyB0aXRsZSwgU3RyaW5nIHVybCwgU3RyaW5nIHZpc2libGVVUkws
IFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgYXJjaGl2ZUhhbmRsZSwgdWludDY0X3QgYXJj
aGl2ZVNpemUpCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBTZXRQcm9taXNl
ZERhdGFGb3JBdHRhY2htZW50KFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nIGZpbGVuYW1l
LCBTdHJpbmcgZXh0ZW5zaW9uLCBTdHJpbmcgdGl0bGUsIFN0cmluZyB1cmwsIFN0cmluZyB2aXNp
YmxlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCmluZGV4IGU5MTYxN2JlZGQwY2MyYWRlNTIwMzY0MzExMmVmNzZlMjc2Yzg1NzAuLjQ3
YTlmOTQ2YmM4YzBhYWZlNzdlMjAyYjQ2ZjY0MGQ3MTZkM2Q3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTc4LDcgKzc4LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGV4ZWN1dGVVbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9P
clJlZG8pIG92ZXJyaWRlOwogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlblJl
Y2VpdmVkKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpIG92ZXJyaWRlOwogICAgIGJvb2wgZXhl
Y3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3Rvcikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzZXREcmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVu
dFBvc2l0aW9uLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdlLCBib29sIGlz
TGlua0RyYWcpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRy
YWdJbWFnZSwgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1
cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXNldFNlY3VyZUlu
cHV0U3RhdGUoKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlz
Y2FyZGVkQ29tcG9zaXRpb24oKSBvdmVycmlkZTsKQEAgLTIwNCw3ICsyMDQsNyBAQCBwcml2YXRl
OgogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAgIHZvaWQgZGlkUGVyZm9ybURhdGFJ
bnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb24oKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEhh
bmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpIG92ZXJyaWRlOwot
ICAgIHZvaWQgc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1h
Z2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29sIGlzTGluaykg
b3ZlcnJpZGU7CisgICAgdm9pZCBzdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZShjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6
SGFuZGxlJiBpbWFnZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4s
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCB1aW50NjRfdCBhY3Rpb24p
IG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBXS0NvbnRlbnRWaWV3ICptX2NvbnRlbnRWaWV3Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0K
aW5kZXggM2MwZDdiODk5YjI0NGQ3Njg3YmViN2JlZDk3NmJjNGZkYWMwYWMzMi4uODA0OWYxNWYx
YzJmN2I4YmQ3MTczMzUyZjNjYzVmMzkyNzhjYzljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC0zNTMsNyArMzUzLDcgQEAg
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoY29uc3Qg
U3RyaW5nJikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNl
dERyYWdJbWFnZShjb25zdCBJbnRQb2ludCYsIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiwg
Ym9vbCkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldERyYWdJbWFnZShjb25zdCBJbnRQb2ludCYs
IFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiwgRHJhZ1NvdXJjZUFjdGlvbikKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtNzczLDkgKzc3Myw5IEBAIHZvaWQgUGFnZUNsaWVudElt
cGw6OmRpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdChib29sIHN0YXJ0ZWQpCiAg
ICAgW21fY29udGVudFZpZXcgX2RpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdDpz
dGFydGVkXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnREYXRhSW50ZXJhY3Rpb25X
aXRoSW1hZ2UoY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGFuY2hvclBvaW50LCBib29s
IGlzTGluaykKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0RGF0YUludGVyYWN0aW9uV2l0aElt
YWdlKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmIGltYWdlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRh
PiBpbmRpY2F0b3JEYXRhLCBjb25zdCBGbG9hdFBvaW50JiBhbmNob3JQb2ludCwgdWludDY0X3Qg
YWN0aW9uKQogewotICAgIFttX2NvbnRlbnRWaWV3IF9zdGFydERhdGFJbnRlcmFjdGlvbldpdGhJ
bWFnZTpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZSktPm1ha2VDR0ltYWdlQ29weSgpIGF0
Q2xpZW50UG9zaXRpb246Q0dQb2ludE1ha2UoY2xpZW50UG9zaXRpb24ueCgpLCBjbGllbnRQb3Np
dGlvbi55KCkpIGFuY2hvclBvaW50OmFuY2hvclBvaW50IGlzTGluazppc0xpbmtdOworICAgIFtt
X2NvbnRlbnRWaWV3IF9zdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZTpTaGFyZWFibGVCaXRt
YXA6OmNyZWF0ZShpbWFnZSktPm1ha2VDR0ltYWdlQ29weSgpIHdpdGhJbmRpY2F0b3JEYXRhOmlu
ZGljYXRvckRhdGEgYXRDbGllbnRQb3NpdGlvbjpDR1BvaW50TWFrZShjbGllbnRQb3NpdGlvbi54
KCksIGNsaWVudFBvc2l0aW9uLnkoKSkgYW5jaG9yUG9pbnQ6YW5jaG9yUG9pbnQgYWN0aW9uOmFj
dGlvbl07CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggYmRjZDA0YzlmMTNjYzYwNmY3
MjhmMzBhNDJlZjcxOTY3N2E5NWYzYi4uYjZiZmM2ZDRlOTE0MGJiYTU1MjEzZjU1Mjc3MmYyMzQ4
NWVmZTFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0yNzAsNyArMjcwLDcgQEAgc3RydWN0IFdLQXV0
b0NvcnJlY3Rpb25EYXRhIHsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKIC0gKHZvaWQp
X2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOwogLSAodm9pZClf
ZGlkSGFuZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0OihCT09MKXN0YXJ0ZWQ7Ci0tICh2
b2lkKV9zdGFydERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZTooUmV0YWluUHRyPENHSW1hZ2VSZWY+
KWltYWdlIGF0Q2xpZW50UG9zaXRpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gYW5jaG9yUG9p
bnQ6KENHUG9pbnQpYW5jaG9yUG9pbnQgaXNMaW5rOihCT09MKWlzTGluazsKKy0gKHZvaWQpX3N0
YXJ0RGF0YUludGVyYWN0aW9uV2l0aEltYWdlOihSZXRhaW5QdHI8Q0dJbWFnZVJlZj4paW1hZ2Ug
d2l0aEluZGljYXRvckRhdGE6KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRh
dGE+KWluZGljYXRvckRhdGEgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlv
biBhbmNob3JQb2ludDooQ0dQb2ludClhbmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlv
bjsKIC0gKHZvaWQpX3NpbXVsYXRlRGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZWQ6KFVJ
TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zaW11bGF0ZURhdGFJbnRlcmFjdGlv
bkVudGVyZWQ6KGlkKWluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogLSAo
dm9pZClfc2ltdWxhdGVEYXRhSW50ZXJhY3Rpb25VcGRhdGVkOihpZClpbmZvIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNjlhOTU3ZmI1YjRh
MjI0N2ZiNjU0Njc3NTYwMjY3ZmJlNDY3Y2Y4OC4uZjk1N2M2YzViMmM1N2IwMGYxMDZjYjgyMGU1
OTY1ZjA4MTYwYTg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE0NDEsNyArMTQ0MSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2Vz
dHVyZVJlY29nbml6ZXIgKmIsIFVJCiAgICAgW3NlbGYgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlv
bklzVXBUb0RhdGU6cmVxdWVzdF07CiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAg
ICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uaGFzRGF0YUludGVyYWN0aW9uQXRQb3NpdGlvbikg
eworICAgIGlmIChfcG9zaXRpb25JbmZvcm1hdGlvbi5oYXNTZWxlY3Rpb25BdFBvc2l0aW9uKSB7
CiAgICAgICAgIC8vIElmIHRoZSBwb3NpdGlvbiBtaWdodCBpbml0aWF0ZSBhIGRhdGEgaW50ZXJh
Y3Rpb24sIHdlIGRvbid0IHdhbnQgdG8gY29uc2lkZXIgdGhlIGNvbnRlbnQgYXQgdGhpcyBwb3Np
dGlvbiB0byBiZSBzZWxlY3RhYmxlLgogICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUg
cmVuYW1lZCB0byBzb21ldGhpbmcgbW9yZSBwcmVjaXNlLCBzdWNoIGFzIHRleHRTZWxlY3Rpb25T
aG91bGRSZWNvZ25pemVHZXN0dXJlQXRQb2ludDoKICAgICAgICAgcmV0dXJuIE5POwpAQCAtMTQ2
MSwxNCArMTQ2MSwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVS
ZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogICAgIGlmIChfcG9zaXRp
b25JbmZvcm1hdGlvbi5pc0ltYWdlIHx8IF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzTGluaykKICAg
ICAgICAgcmV0dXJuIFlFUzsKIAotICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5oYXNE
YXRhSW50ZXJhY3Rpb25BdFBvc2l0aW9uOworICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlv
bi5oYXNTZWxlY3Rpb25BdFBvc2l0aW9uOwogfQogCiAtIChVSUxvbmdQcmVzc0dlc3R1cmVSZWNv
Z25pemVyICopX2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyCiB7Ci0gICAgaWYgKFtf
d2ViVmlldy5fdGVzdGluZ0RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZGF0
YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpXSkKLSAgICAgICAgcmV0dXJuIF93ZWJWaWV3
Ll90ZXN0aW5nRGVsZWdhdGUuZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXI7Ci0KICAg
ICByZXR1cm4gX2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpOwogfQogCkBA
IC0xNDg3LDcgKzE0ODQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1
cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogICAgIFtzZWxmIGVu
c3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVlc3RdOwogCiAjaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pCi0gICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmhhc0RhdGFJ
bnRlcmFjdGlvbkF0UG9zaXRpb24pIHsKKyAgICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uaGFz
U2VsZWN0aW9uQXRQb3NpdGlvbikgewogICAgICAgICAvLyBJZiB0aGUgcG9zaXRpb24gbWlnaHQg
aW5pdGlhdGUgZGF0YSBpbnRlcmFjdGlvbiwgd2UgZG9uJ3Qgd2FudCB0byBjaGFuZ2UgdGhlIHNl
bGVjdGlvbi4KICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbmFtZWQgdG8gc29t
ZXRoaW5nIG1vcmUgcHJlY2lzZSwgc3VjaCBhcyB0ZXh0SW50ZXJhY3Rpb25TaG91bGRSZWNvZ25p
emVHZXN0dXJlQXRQb2ludDoKICAgICAgICAgcmV0dXJuIE5POwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IGU3MzIyYmUzNDNjMTc4NWEwZTM5
YTZkYTg0NWM1OWQ5ZTI1NGQwZDYuLjNlYTMyZGMwMDhmY2ZhYTFkNjUyYzk3M2YxMzcyNjAxNjU5
MzdjOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
LmgKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGNhblVuZG9SZWRvKFdlYlBh
Z2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CiAgICAgdm9pZCBleGVjdXRlVW5kb1JlZG8o
V2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKICAgICBib29sIGV4ZWN1dGVTYXZl
ZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpIG92ZXJyaWRlOwotICAg
IHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlv
biwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRyYWdJbWFnZSwgYm9vbCBpc0xpbmtEcmFn
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2Us
IFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UHJvbWlz
ZWREYXRhRm9ySW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGltYWdlQnVmZmVyLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1l
LCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwKICAgICAgICAg
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdmlzaWJsZVVybCwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXIpIG92ZXJyaWRlOwogI2lmIEVOQUJM
RShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5tbQppbmRleCBiMDZmNzRiOTEyMmUzOTkzZGY0ZDk3OGNjZWI3YzQzZjAw
Y2Y5NGE3Li5kZTJhMjc3YTlhMjQ1NTU4NzUwNjg1OTQ5NDc1MjE0MDg4ZDc5OTQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTMzNyw3
ICszMzcsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpleGVjdXRlVW5kb1JlZG8oV2ViUGFnZVBy
b3h5OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pCiAgICAgcmV0dXJuICh1bmRvT3JSZWRvID09IFdl
YlBhZ2VQcm94eTo6VW5kbykgPyBbW21fdmlldyB1bmRvTWFuYWdlcl0gdW5kb10gOiBbW21fdmll
dyB1bmRvTWFuYWdlcl0gcmVkb107CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnNldERyYWdJ
bWFnZShjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hhcmVhYmxl
Qml0bWFwPiBkcmFnSW1hZ2UsIGJvb2wgaXNMaW5rRHJhZykKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OnNldERyYWdJbWFnZShjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8
U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2UsIERyYWdTb3VyY2VBY3Rpb24gYWN0aW9uKQogewog
ICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBkcmFnQ0dJbWFnZSA9IGRyYWdJbWFnZS0+bWFrZUNH
SW1hZ2UoKTsKICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gZHJhZ05TSW1hZ2UgPSBhZG9wdE5TKFtb
TlNJbWFnZSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmRyYWdDR0ltYWdlLmdldCgpIHNpemU6ZHJh
Z0ltYWdlLT5zaXplKCldKTsKQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpzZXREcmFnSW1hZ2UoY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBQYXNzUmVmUHRy
PFNoYQogICAgIHNpemUuc2NhbGUoMS4wIC8gbV9pbXBsLT5wYWdlKCkuZGV2aWNlU2NhbGVGYWN0
b3IoKSk7CiAgICAgW2RyYWdOU0ltYWdlIHNldFNpemU6c2l6ZV07CiAKLSAgICBtX2ltcGwtPmRy
YWdJbWFnZUZvclZpZXcobV92aWV3LCBkcmFnTlNJbWFnZS5nZXQoKSwgY2xpZW50UG9zaXRpb24s
IGlzTGlua0RyYWcpOworICAgIG1faW1wbC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3ZpZXcsIGRyYWdO
U0ltYWdlLmdldCgpLCBjbGllbnRQb3NpdGlvbiwgYWN0aW9uID09IERyYWdTb3VyY2VBY3Rpb25M
aW5rKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2Uo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGlt
YWdlQnVmZmVyLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lv
biwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYg
dmlzaWJsZVVSTCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IDg5
NzY4OWNkODk2NTZhZGM2MWU3ZTEzN2Q4N2QyMWM2ZmFmYTY1MjUuLjQwYjg2OGFmZmYwYTAyODM5
MWFjMWIzYWIyYmJjZDg5MTgwYmEzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC0yNjksMTAgKzI2OSwxMCBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVwbGFjZVNlbGVjdGlvbldpdGhQYXN0ZWJvYXJkRGF0YShjb25zdCBWZWN0b3I8
U3RyaW5nPiYgdHlwZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotdm9pZCBX
ZWJQYWdlUHJveHk6OnNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50
UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBkcmFnSW1hZ2VIYW5kbGUs
IGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIGlzTGlua0RyYWcpCit2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29u
c3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGRyYWdJbWFnZUhhbmRsZSwgc3RkOjpvcHRpb25h
bDxUZXh0SW5kaWNhdG9yRGF0YT4sIGNvbnN0IEZsb2F0UG9pbnQmLCB1aW50NjRfdCBhY3Rpb24p
CiB7CiAgICAgaWYgKGF1dG8gZHJhZ0ltYWdlID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoZHJh
Z0ltYWdlSGFuZGxlKSkKLSAgICAgICAgbV9wYWdlQ2xpZW50LnNldERyYWdJbWFnZShjbGllbnRQ
b3NpdGlvbiwgV1RGTW92ZShkcmFnSW1hZ2UpLCBpc0xpbmtEcmFnKTsKKyAgICAgICAgbV9wYWdl
Q2xpZW50LnNldERyYWdJbWFnZShjbGllbnRQb3NpdGlvbiwgV1RGTW92ZShkcmFnSW1hZ2UpLCBz
dGF0aWNfY2FzdDxEcmFnU291cmNlQWN0aW9uPihhY3Rpb24pKTsKIAogICAgIHByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRTdGFydERyYWcoKSwgbV9wYWdlSUQpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2Vi
RHJhZ0NsaWVudE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0KaW5kZXggMjQ1M2M5MDU1N2E4MWNiYzQ0M2FjZDE3
YjAwNTAyZmJhMGE5NWViMC4uZDVmNjlkNjFiM2UzYzQyODdmMTQzOTNkZDAxMjgwN2I1OWFlM2Yw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9t
YWMvV2ViRHJhZ0NsaWVudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xpZW50TWFjLm1tCkBAIC05Myw3ICs5Myw3IEBAIHZv
aWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZSBpbWFnZSwgY29uc3QgSW50UG9p
bnQmIHBvaW50LCBjb25zdCBJbnRQCiAgICAgbV9wYWdlLT53aWxsU3RhcnREcmFnKCk7CiAKICAg
ICAvLyBGSVhNRTogU2VlbXMgdGhpcyBtZXNzYWdlIHNob3VsZCBiZSBuYW1lZCBTdGFydERyYWcs
IG5vdCBTZXREcmFnSW1hZ2UuCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlNldERyYWdJbWFnZShmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQpLCBo
YW5kbGUsIHsgfSwgZHJhZ1NvdXJjZUFjdGlvbiA9PSBEcmFnU291cmNlQWN0aW9uTGluaykpOwor
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXREcmFnSW1hZ2UoZnJh
bWUudmlldygpLT5jb250ZW50c1RvV2luZG93KHBvaW50KSwgaGFuZGxlLCBzdGQ6Om51bGxvcHQs
IHsgfSwgZHJhZ1NvdXJjZUFjdGlvbikpOwogfQogCiBzdGF0aWMgV2ViQ29yZTo6Q2FjaGVkSW1h
Z2UqIGNhY2hlZEltYWdlKEVsZW1lbnQmIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTc2OTUwMjJjNjNh
YmUyZGFmZGI2MDhiYTRmMTUxODEzODcxNzBmOS4uNjZiOTJhMWU2NDdhZjE5NDJjZjUwNTQ1ODQ3
Y2ViYjMxMzBhMWZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjU0OSw3ICsyNTQ5LDcgQEAgdm9pZCBXZWJQYWdl
OjpnZXRQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0JiByZXF1ZXMKICAgICB9CiAKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKLSAgICBp
bmZvLmhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb24gPSBtX3BhZ2UtPmhhc0RhdGFJbnRlcmFj
dGlvbkF0UG9zaXRpb24oYWRqdXN0ZWRQb2ludCk7CisgICAgaW5mby5oYXNTZWxlY3Rpb25BdFBv
c2l0aW9uID0gbV9wYWdlLT5oYXNTZWxlY3Rpb25BdFBvc2l0aW9uKGFkanVzdGVkUG9pbnQpOwog
I2VuZGlmCiAgICAgaW5mby5hZGp1c3RlZFBvaW50Rm9yTm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZl
bnRzID0gYWRqdXN0ZWRQb2ludDsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>