<?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>122290</bug_id>
          
          <creation_ts>2013-10-03 11:29:46 -0700</creation_ts>
          <short_desc>Remove the last remnants of Qt from WebKit2</short_desc>
          <delta_ts>2013-10-03 11:45:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>935880</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-03 11:29:46 -0700</bug_when>
    <thetext>Remove the last remnants of Qt from WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935882</commentid>
    <comment_count>1</comment_count>
      <attachid>213283</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-03 11:31:00 -0700</bug_when>
    <thetext>Created attachment 213283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935894</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-10-03 11:45:45 -0700</bug_when>
    <thetext>Committed r156847: &lt;http://trac.webkit.org/changeset/156847&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213283</attachid>
            <date>2013-10-03 11:31:00 -0700</date>
            <delta_ts>2013-10-03 11:36:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122290-20131003113101.patch</filename>
            <type>text/plain</type>
            <size>65559</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2ODQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmMyMGViMWJlMjI0YjVl
YjJiNjlkYWFmYjVjZDI5NTU5Yjg2Zjg2NC4uZjNkNjBlZjY5MjMyYjA1ODliN2VkYTI3ZTQ5MmU5
ZjdlY2VmNzZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDc2IEBACiAyMDEzLTEwLTAzICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVtb3ZlIHRoZSBs
YXN0IHJlbW5hbnRzIG9mIFF0IGZyb20gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMjkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9QbGF0Zm9ybVByb2Nlc3NJZGVudGlm
aWVyLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAg
ICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChXZWJLaXQ6OnRvSW1wbCk6CisgICAgICAgICog
U2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
OjpEb3dubG9hZCk6CisgICAgICAgICogU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oOgorICAg
ICAgICAqIFNoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBT
aGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAgICAgICAqIFNoYXJlZC9FZGl0
b3JTdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvclN0YXRlOjplbmNvZGUpOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvRWRp
dG9yU3RhdGUuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yU3RhdGU6OkVkaXRvclN0YXRlKToK
KyAgICAgICAgKiBTaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oOgorICAgICAgICAqIFNoYXJlZC9O
YXRpdmVXZWJLZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYk1vdXNl
RXZlbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oOgorICAgICAg
ICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
bGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlBsYXRmb3Jt
UG9wdXBNZW51RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvUGxhdGZvcm1Qb3B1cE1l
bnVEYXRhLmg6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oOgorICAgICAgICAq
IFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6
OmRvd25sb2FkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZWRpdG9yU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpzaG93UG9wdXBNZW51KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUG9wdXBNZW51UHJveHkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnN1cHBvcnRzR2xvYmFsU2VsZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkRmFs
bEJhY2spOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51OjpkaWRDaGFuZ2VTZWxlY3RlZElu
ZGV4KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmVkaXRv
clN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVy
QWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Oldl
YlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBjb25maWcuaDoK
KworMjAxMy0xMC0wMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCiAg
ICAgICAgIFJlbW92ZSBRdCBmaWxlcyBmcm9tIFdlYktpdDIuCiAKICAgICAgICAgUnViYmVyLXN0
b21wZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL1BsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L1BsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaAppbmRleCBkZWFmYTljOGZkY2VlNzI4ZDU1ODQw
MzFhNzE3NDg4NGM1ODQ4MDA5Li40YjUxNTUzOWQ1MGNjMGJkYTY4ZjIxYWExNGQ4NGVlNDJkMDkz
Njk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9QbGF0Zm9ybVByb2Nlc3NJ
ZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUGxhdGZvcm1Qcm9jZXNz
SWRlbnRpZmllci5oCkBAIC0yNywxMSArMjcsNyBAQAogI2lmbmRlZiBQbGF0Zm9ybVByb2Nlc3NJ
ZGVudGlmaWVyX2gKICNkZWZpbmUgUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllcl9oCiAKLSNpZiBQ
TEFURk9STShRVCkKLVFUX0JFR0lOX05BTUVTUEFDRQotY2xhc3MgUVByb2Nlc3M7Ci1RVF9FTkRf
TkFNRVNQQUNFCi0jZWxpZiBQTEFURk9STShFRkwpCisjaWYgUExBVEZPUk0oRUZMKQogI2luY2x1
ZGUgPHVuaXN0ZC5oPgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S1NoYXJlZEFQSUNhc3QuaAppbmRleCBhM2UxODEzMjkwZWNhNjQ2OGM2ZDgzYjgzNjNhMTQ0M2M2
NmJmZjYwLi44MGFlYTg4YzdlMmYxNmU0ODM2YzM1YTkyYzBlZDYzYzE3ZTFjYTViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC0zMzksNyAr
MzM5LDcgQEAgaW5saW5lIFdLQ29udGV4dE1lbnVJdGVtVGFnIHRvQVBJKFdlYkNvcmU6OkNvbnRl
eHRNZW51QWN0aW9uIGFjdGlvbikKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRlbVRh
Z0Rvd25sb2FkSW1hZ2VUb0Rpc2s7CiAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1U
YWdDb3B5SW1hZ2VUb0NsaXBib2FyZDoKICAgICAgICAgcmV0dXJuIGtXS0NvbnRleHRNZW51SXRl
bVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkOwotI2lmIFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShRVCkKKyNpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykK
ICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJv
YXJkOgogICAgICAgICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9D
bGlwYm9hcmQ7CiAjZW5kaWYKQEAgLTM1OSw3ICszNTksNyBAQCBpbmxpbmUgV0tDb250ZXh0TWVu
dUl0ZW1UYWcgdG9BUEkoV2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uKQogICAgICAg
ICByZXR1cm4ga1dLQ29udGV4dE1lbnVJdGVtVGFnQ3V0OwogICAgIGNhc2UgV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtVGFnUGFzdGU6CiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0TWVudUl0ZW1U
YWdQYXN0ZTsKLSNpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
UVQpCisjaWYgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCiAgICAgY2FzZSBXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW1UYWdTZWxlY3RBbGw6CiAgICAgICAgIHJldHVybiBrV0tDb250ZXh0
TWVudUl0ZW1UYWdTZWxlY3RBbGw7CiAjZW5kaWYKQEAgLTUzNCw3ICs1MzQsNyBAQCBpbmxpbmUg
V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24gdG9JbXBsKFdLQ29udGV4dE1lbnVJdGVtVGFnIHRh
ZykKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkOgog
ICAgICAgICByZXR1cm4gV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlw
Ym9hcmQ7CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRv
dzoKLSNpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpCisj
aWYgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCiAgICAgY2FzZSBrV0tDb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZDoKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkOwogI2VuZGlmCkBAIC01
NTMsNyArNTUzLDcgQEAgaW5saW5lIFdlYkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIHRvSW1wbChX
S0NvbnRleHRNZW51SXRlbVRhZyB0YWcpCiAgICAgICAgIHJldHVybiBXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW1UYWdDdXQ7CiAgICAgY2FzZSBrV0tDb250ZXh0TWVudUl0ZW1UYWdQYXN0ZToKICAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlOwotI2lmIFBMQVRG
T1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkKKyNpZiBQTEFURk9STShF
RkwpIHx8IFBMQVRGT1JNKEdUSykKICAgICBjYXNlIGtXS0NvbnRleHRNZW51SXRlbVRhZ1NlbGVj
dEFsbDoKICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ1NlbGVjdEFs
bDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9E
b3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkLmNw
cAppbmRleCA4Nzk3NTJjZjBjMjgyNTczZGU5ODk2MTFlODI4MTBjOGZkNTAyNTA0Li42ZjE3ZTYw
NzA0Yjc3ZGQyMzVlZGYxNDI5OTI4YzM0NjE5ZDdjMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkLmNwcApAQCAtNDYsOSArNDYsNiBAQCBEb3dubG9hZDo6
RG93bmxvYWQoRG93bmxvYWRNYW5hZ2VyJiBkb3dubG9hZE1hbmFnZXIsIHVpbnQ2NF90IGRvd25s
b2FkSUQsIGNvbnN0CiAjaWYgVVNFKENGTkVUV09SSykKICAgICAsIG1fYWxsb3dPdmVyd3JpdGUo
ZmFsc2UpCiAjZW5kaWYKLSNpZiBQTEFURk9STShRVCkKLSAgICAsIG1fcXREb3dubG9hZGVyKDAp
Ci0jZW5kaWYKIHsKICAgICBBU1NFUlQobV9kb3dubG9hZElEKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCmluZGV4IDA1MWIyMzIzYTRlMzU2MDU5OWNmMDc4
YWVmM2M1OTc5YTZmY2RjNDYuLmY2N2E3YjU4NzViYzQ4M2EyYzgwZjkxZDE4OTE2YzJlNGM4NjNi
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkLmgKQEAgLTY1
LDEwICs2NSw2IEBAIGNsYXNzIERvd25sb2FkTWFuYWdlcjsKIGNsYXNzIFNhbmRib3hFeHRlbnNp
b247CiBjbGFzcyBXZWJQYWdlOwogCi0jaWYgUExBVEZPUk0oUVQpCi1jbGFzcyBRdEZpbGVEb3du
bG9hZGVyOwotI2VuZGlmCi0KIGNsYXNzIERvd25sb2FkIDogcHVibGljIENvcmVJUEM6Ok1lc3Nh
Z2VTZW5kZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERvd25sb2FkKTsKIHB1YmxpYzoK
QEAgLTk0LDEwICs5MCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENhbmNlbChjb25zdCBDb3Jl
SVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhKTsKICAgICB2b2lkIGRpZERlY2lkZURlc3Rp
bmF0aW9uKGNvbnN0IFN0cmluZyYsIGJvb2wgYWxsb3dPdmVyd3JpdGUpOwogCi0jaWYgUExBVEZP
Uk0oUVQpCi0gICAgdm9pZCBzdGFydFRyYW5zZmVyKGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb24p
OwotI2VuZGlmCi0KICNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIGNvbnN0IFN0cmluZyYgZGVzdGlu
YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uOyB9CiAgICAgRG93bmxvYWRBdXRo
ZW50aWNhdGlvbkNsaWVudCogYXV0aGVudGljYXRpb25DbGllbnQoKTsKQEAgLTEzOCw5ICsxMzAs
NiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDRlVSTERvd25sb2FkUmVmPiBtX2Rvd25sb2Fk
OwogICAgIFJlZlB0cjxEb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50PiBtX2F1dGhlbnRpY2F0
aW9uQ2xpZW50OwogI2VuZGlmCi0jaWYgUExBVEZPUk0oUVQpCi0gICAgUXRGaWxlRG93bmxvYWRl
ciogbV9xdERvd25sb2FkZXI7Ci0jZW5kaWYKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KEVGTCkKICAgICBPd25QdHI8V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ+IG1fZG93bmxv
YWRDbGllbnQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlSGFuZGxlPiBtX3Jlc291cmNl
SGFuZGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3du
bG9hZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hbmFnZXIuY3BwCmluZGV4IDk2MDU2MGIwMzk2MjU4NGVmMzdjYzQ2OGNjMTllOTM1M2Q0ZDdh
NDQuLjA2YWZlZWNkY2E5N2U1OGU1M2M5YjQ0ZWY2YjAxMDVmNWY1YTU4MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKQEAg
LTkzLDEzICs5Myw0IEBAIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgRG93bmxvYWRNYW5hZ2VyOjpk
b3dubG9hZHNBdXRoZW50aWNhdGlvbk1hbmFnZXIoKQogICAgIHJldHVybiBtX2NsaWVudC0+ZG93
bmxvYWRzQXV0aGVudGljYXRpb25NYW5hZ2VyKCk7CiB9CiAKLSNpZiBQTEFURk9STShRVCkKLXZv
aWQgRG93bmxvYWRNYW5hZ2VyOjpzdGFydFRyYW5zZmVyKHVpbnQ2NF90IGRvd25sb2FkSUQsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb24pCi17Ci0gICAgQVNTRVJUKG1fZG93bmxvYWRzLmNvbnRh
aW5zKGRvd25sb2FkSUQpKTsKLSAgICBEb3dubG9hZCogZG93bmxvYWQgPSBtX2Rvd25sb2Fkcy5n
ZXQoZG93bmxvYWRJRCk7Ci0gICAgZG93bmxvYWQtPnN0YXJ0VHJhbnNmZXIoZGVzdGluYXRpb24p
OwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKaW5kZXggYmE0M2Y5YTAyMWI4
YzQ3ZDdjOGEyMzUyNGExZDk3ZjhmMjRlZGRkZC4uY2E3ZWU4YTIxMzgxOWIzYTJkYWQ1ZTRmYmVi
ZGQ1MTFiYWU4YmIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fk
cy9Eb3dubG9hZE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRz
L0Rvd25sb2FkTWFuYWdlci5oCkBAIC03NywxMCArNzcsNiBAQCBwdWJsaWM6CiAgICAgQ29yZUlQ
Qzo6Q29ubmVjdGlvbiogZG93bmxvYWRQcm94eUNvbm5lY3Rpb24oKTsKICAgICBBdXRoZW50aWNh
dGlvbk1hbmFnZXImIGRvd25sb2Fkc0F1dGhlbnRpY2F0aW9uTWFuYWdlcigpOwogCi0jaWYgUExB
VEZPUk0oUVQpCi0gICAgdm9pZCBzdGFydFRyYW5zZmVyKHVpbnQ2NF90IGRvd25sb2FkSUQsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb24pOwotI2VuZGlmCi0KIHByaXZhdGU6CiAgICAgQ2xpZW50
KiBtX2NsaWVudDsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBEb3dubG9hZCo+IG1fZG93bmxvYWRz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKaW5kZXggNDBhNDc3NjIwYjY4YmJl
ZDMwNTRhMDVhMTU1NTcyOTNmZWI2NTAyNi4uMTFlODhiNWRhOThkNGEzNDA0ODBmMTg3NGM5YTNj
N2NmNjk0NWRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCkBAIC00Miwx
NyArNDIsNyBAQCB2b2lkIEVkaXRvclN0YXRlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgaXNJblBsdWdpbjsKICAgICBlbmNv
ZGVyIDw8IGhhc0NvbXBvc2l0aW9uOwogCi0jaWYgUExBVEZPUk0oUVQpCi0gICAgZW5jb2RlciA8
PCBjdXJzb3JQb3NpdGlvbjsKLSAgICBlbmNvZGVyIDw8IGFuY2hvclBvc2l0aW9uOwotICAgIGVu
Y29kZXIgPDwgZWRpdG9yUmVjdDsKLSAgICBlbmNvZGVyIDw8IGNvbXBvc2l0aW9uUmVjdDsKLSAg
ICBlbmNvZGVyIDw8IGlucHV0TWV0aG9kSGludHM7Ci0gICAgZW5jb2RlciA8PCBzZWxlY3RlZFRl
eHQ7Ci0gICAgZW5jb2RlciA8PCBzdXJyb3VuZGluZ1RleHQ7Ci0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKFFUKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKQogICAgIGVuY29kZXIg
PDwgY3Vyc29yUmVjdDsKICNlbmRpZgogfQpAQCAtODMsMzAgKzczLDcgQEAgYm9vbCBFZGl0b3JT
dGF0ZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgRWRpdG9yU3Rh
dGUmIHJlc3VsdCkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5oYXNDb21wb3NpdGlv
bikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JNKFFUKQotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LmN1cnNvclBvc2l0aW9uKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYW5jaG9yUG9zaXRpb24pKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5l
ZGl0b3JSZWN0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQuY29tcG9zaXRpb25SZWN0KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaW5wdXRNZXRob2RIaW50cykpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNlbGVjdGVk
VGV4dCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LnN1cnJvdW5kaW5nVGV4dCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuY3Vyc29yUmVjdCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRv
clN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuaAppbmRleCA4YjM0
MmNlODM1NzE0YzllY2Y1Y2IzMGI0OTUyMWQ0ZDRkNjQyNmM0Li5mNTA3YmU5NmExMWE0MjY3YzE3
ZmU1YTMwNjMxMDIwNWQ3NWYxYzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RWRpdG9yU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuaApA
QCAtNDIsMTEgKzQyLDYgQEAgc3RydWN0IEVkaXRvclN0YXRlIHsKICAgICAgICAgLCBpc0luUGFz
c3dvcmRGaWVsZChmYWxzZSkKICAgICAgICAgLCBpc0luUGx1Z2luKGZhbHNlKQogICAgICAgICAs
IGhhc0NvbXBvc2l0aW9uKGZhbHNlKQotI2lmIFBMQVRGT1JNKFFUKQotICAgICAgICAsIGN1cnNv
clBvc2l0aW9uKDApCi0gICAgICAgICwgYW5jaG9yUG9zaXRpb24oMCkKLSAgICAgICAgLCBpbnB1
dE1ldGhvZEhpbnRzKDApCi0jZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC01OSwyMiArNTQsOCBA
QCBzdHJ1Y3QgRWRpdG9yU3RhdGUgewogICAgIGJvb2wgaXNJblBhc3N3b3JkRmllbGQ7CiAgICAg
Ym9vbCBpc0luUGx1Z2luOwogICAgIGJvb2wgaGFzQ29tcG9zaXRpb247Ci0jaWYgUExBVEZPUk0o
UVQpCi0gICAgLy8gVGhlIGFuY2hvciwgY3Vyc29yIHJlcHJlc2VudCBlaXRoZXIgdGhlIHNlbGVj
dGlvbiBvciBjb21wb3NpdGlvbiwgZGVwZW5kaW5nCi0gICAgLy8gd2hldGhlciBhIGNvbXBvc2l0
aW9uIGV4aXN0cyBvciBub3QuCi0gICAgdW5zaWduZWQgY3Vyc29yUG9zaXRpb247Ci0gICAgdW5z
aWduZWQgYW5jaG9yUG9zaXRpb247Ci0KLSAgICBXZWJDb3JlOjpJbnRSZWN0IGVkaXRvclJlY3Q7
Ci0gICAgV2ViQ29yZTo6SW50UmVjdCBjb21wb3NpdGlvblJlY3Q7Ci0KLSAgICB1aW50NjRfdCBp
bnB1dE1ldGhvZEhpbnRzOwotCi0gICAgV1RGOjpTdHJpbmcgc2VsZWN0ZWRUZXh0OwotICAgIFdU
Rjo6U3RyaW5nIHN1cnJvdW5kaW5nVGV4dDsKLSNlbmRpZgogCi0jaWYgUExBVEZPUk0oUVQpIHx8
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspCiAgICAgV2ViQ29yZTo6SW50UmVjdCBj
dXJzb3JSZWN0OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9M
YXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4
dC5oCmluZGV4IDliOGM2NjMxNTc3NzY4ODk3ZjMwZjJhYmFkOGI5YmI4ODQ4ZDZmZjIuLjAzYjFk
Njg5MGJjYjBjODYzMGE5MjY5M2Y2MjQwY2U0MjhjNTg0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0xheWVyVHJlZUNvbnRleHQuaApAQCAtNTQsOCArNTQsNiBAQCBwdWJsaWM6CiAKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgdWludDMyX3QgY29udGV4dElEOwotI2VsaWYgUExBVEZPUk0oUVQp
Ci0gICAgdWludDMyX3QgY29vcmRpbmF0ZWRMYXllcklEOwogI2VsaWYgUExBVEZPUk0oR1RLKQog
ICAgIHVpbnQ2NF90IHdpbmRvd0hhbmRsZTsKICNlbGlmIFBMQVRGT1JNKEVGTCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCmluZGV4IDk1ZDc2YWJk
MDhiNzk2MDI1NmU2YThlY2RjZGQ2ZDJkMzg1NTE1NzcuLjFhMmRlNDg1NzM4YmI1ZjYxZTdkNzFm
NDY1MDFlM2VlNWI0YTEzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRp
dmVXZWJLZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaApAQCAtMzMsOCArMzMsNiBAQAogI2lmIFBMQVRGT1JNKE1BQykKICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiBPQkpDX0NMQVNTIE5TVmlldzsKLSNlbGlmIFBMQVRG
T1JNKFFUKQotI2luY2x1ZGUgPFFLZXlFdmVudD4KICNlbGlmIFBMQVRGT1JNKEdUSykKICNpbmNs
dWRlIDxHT3duUHRyR3RrLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db21wb3NpdGlvblJlc3VsdHMu
aD4KQEAgLTUwLDggKzQ4LDYgQEAgY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCA6IHB1Ymxp
YyBXZWJLZXlib2FyZEV2ZW50IHsKIHB1YmxpYzoKICNpZiBVU0UoQVBQS0lUKQogICAgIE5hdGl2
ZVdlYktleWJvYXJkRXZlbnQoTlNFdmVudCAqLCBOU1ZpZXcgKik7Ci0jZWxpZiBQTEFURk9STShR
VCkKLSAgICBleHBsaWNpdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KFFLZXlFdmVudCopOwogI2Vs
aWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudCYpOwogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoR2RrRXZlbnQq
LCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblJlc3VsdHMmLCBXZWJDb3JlOjpHdGtJbnB1dE1l
dGhvZEZpbHRlcjo6RXZlbnRGYWtlZEZvckNvbXBvc2l0aW9uKTsKQEAgLTYyLDggKzU4LDYgQEAg
cHVibGljOgogCiAjaWYgVVNFKEFQUEtJVCkKICAgICBOU0V2ZW50ICpuYXRpdmVFdmVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KLSNlbGlmIFBMQVRGT1JNKFFUKQot
ICAgIGNvbnN0IFFLZXlFdmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAmbV9uYXRp
dmVFdmVudDsgfQogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEdka0V2ZW50KiBuYXRpdmVFdmVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KICAgICBjb25zdCBXZWJD
b3JlOjpDb21wb3NpdGlvblJlc3VsdHMmIGNvbXBvc2l0aW9uUmVzdWx0cygpIGNvbnN0ICB7IHJl
dHVybiBtX2NvbXBvc2l0aW9uUmVzdWx0czsgfQpAQCAtNzYsOCArNzAsNiBAQCBwdWJsaWM6CiBw
cml2YXRlOgogI2lmIFVTRShBUFBLSVQpCiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+IG1fbmF0aXZl
RXZlbnQ7Ci0jZWxpZiBQTEFURk9STShRVCkKLSAgICBRS2V5RXZlbnQgbV9uYXRpdmVFdmVudDsK
ICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBHT3duUHRyPEdka0V2ZW50PiBtX25hdGl2ZUV2ZW50
OwogICAgIFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyBtX2NvbXBvc2l0aW9uUmVzdWx0czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCmluZGV4IGRkZTVi
MzYyZTNkMjUxZWZjZjYxNTZkZDg1ZTRkNDIwNDk2OTllOGUuLjNjYzdlNGY2Mjg2YmM0MGZlNmJj
NGZkZTJjYzU3NGYzZGYxMDc0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
YXRpdmVXZWJNb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdl
Yk1vdXNlRXZlbnQuaApAQCAtMzEsOCArMzEsNiBAQAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CiBPQkpDX0NMQVNTIE5TVmlldzsKLSNlbGlmIFBMQVRGT1JN
KFFUKQotI2luY2x1ZGUgPHFldmVudC5oPgogI2VsaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUg
PEdPd25QdHJHdGsuaD4KIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwpAQCAtNDcs
OCArNDUsNiBAQCBjbGFzcyBOYXRpdmVXZWJNb3VzZUV2ZW50IDogcHVibGljIFdlYk1vdXNlRXZl
bnQgewogcHVibGljOgogI2lmIFVTRShBUFBLSVQpCiAgICAgTmF0aXZlV2ViTW91c2VFdmVudChO
U0V2ZW50ICosIE5TVmlldyAqKTsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIGV4cGxpY2l0IE5h
dGl2ZVdlYk1vdXNlRXZlbnQoUU1vdXNlRXZlbnQqLCBjb25zdCBRVHJhbnNmb3JtJiBmcm9tSXRl
bVRyYW5zZm9ybSwgaW50IGV2ZW50Q2xpY2tDb3VudCk7CiAjZWxpZiBQTEFURk9STShHVEspCiAg
ICAgTmF0aXZlV2ViTW91c2VFdmVudChjb25zdCBOYXRpdmVXZWJNb3VzZUV2ZW50Jik7CiAgICAg
TmF0aXZlV2ViTW91c2VFdmVudChHZGtFdmVudCosIGludCk7CkBAIC02MCw4ICs1Niw2IEBAIHB1
YmxpYzoKIAogI2lmIFVTRShBUFBLSVQpCiAgICAgTlNFdmVudCogbmF0aXZlRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9Ci0jZWxpZiBQTEFURk9STShRVCkKLSAg
ICBjb25zdCBRTW91c2VFdmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2
ZUV2ZW50OyB9CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgY29uc3QgR2RrRXZlbnQqIG5hdGl2
ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQoKTsgfQogI2VsaWYgUExB
VEZPUk0oRUZMKQpAQCAtNzEsOCArNjUsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogI2lmIFVTRShB
UFBLSVQpCiAgICAgUmV0YWluUHRyPE5TRXZlbnQ+IG1fbmF0aXZlRXZlbnQ7Ci0jZWxpZiBQTEFU
Rk9STShRVCkKLSAgICBRTW91c2VFdmVudCogbV9uYXRpdmVFdmVudDsKICNlbGlmIFBMQVRGT1JN
KEdUSykKICAgICBHT3duUHRyPEdka0V2ZW50PiBtX25hdGl2ZUV2ZW50OwogI2VsaWYgUExBVEZP
Uk0oRUZMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVs
RXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKaW5k
ZXggZmFlOWU5NmJlMmQ2ZDZiNjRhNGE1OGJjZGMwYzhjYzYwNjExNTUyNi4uMGVkYjNkZDk2NTZm
YTEwM2YyZmU1NTg2MzFiNTAxZTFkNDU3MWJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmF0aXZlV2ViV2hlZWxFdmVudC5oCkBAIC0zMSw4ICszMSw2IEBACiAjaWYgUExBVEZPUk0oTUFD
KQogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIE9CSkNfQ0xBU1MgTlNWaWV3OwotI2VsaWYg
UExBVEZPUk0oUVQpCi0jaW5jbHVkZSA8cWV2ZW50Lmg+CiAjZWxpZiBQTEFURk9STShHVEspCiAj
aW5jbHVkZSA8R093blB0ckd0ay5oPgogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7
CkBAIC00Nyw4ICs0NSw2IEBAIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQgOiBwdWJsaWMgV2Vi
V2hlZWxFdmVudCB7CiBwdWJsaWM6CiAjaWYgVVNFKEFQUEtJVCkKICAgICBOYXRpdmVXZWJXaGVl
bEV2ZW50KE5TRXZlbnQgKiwgTlNWaWV3ICopOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgZXhw
bGljaXQgTmF0aXZlV2ViV2hlZWxFdmVudChRV2hlZWxFdmVudCosIGNvbnN0IFFUcmFuc2Zvcm0m
IGZyb21JdGVtVHJhbnNmb3JtKTsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBOYXRpdmVXZWJX
aGVlbEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKTsKICAgICBOYXRpdmVXZWJXaGVl
bEV2ZW50KEdka0V2ZW50Kik7CkBAIC01OCw4ICs1NCw2IEBAIHB1YmxpYzoKIAogI2lmIFVTRShB
UFBLSVQpCiAgICAgTlNFdmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2
ZUV2ZW50LmdldCgpOyB9Ci0jZWxpZiBQTEFURk9STShRVCkKLSAgICBjb25zdCBRV2hlZWxFdmVu
dCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50OyB9CiAjZWxpZiBQ
TEFURk9STShHVEspCiAgICAgY29uc3QgR2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQoKTsgfQogI2VsaWYgUExBVEZPUk0oRUZMKQpAQCAtNjks
OCArNjMsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogI2lmIFVTRShBUFBLSVQpCiAgICAgUmV0YWlu
UHRyPE5TRXZlbnQ+IG1fbmF0aXZlRXZlbnQ7Ci0jZWxpZiBQTEFURk9STShRVCkKLSAgICBRV2hl
ZWxFdmVudCogbV9uYXRpdmVFdmVudDsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBHT3duUHRy
PEdka0V2ZW50PiBtX25hdGl2ZUV2ZW50OwogI2VsaWYgUExBVEZPUk0oRUZMKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAppbmRleCAxNTUwMzkz
ZjM0ODk2ODQ1YWNkYWFmYzBlY2I4ODg4YTc2YzJjMzEwLi5lODU3YjY0MjI0NjllY2NkY2M1ZTUz
NzVjMTU5YTkzNDFjOWU3MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxh
dGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZv
cm1Qb3B1cE1lbnVEYXRhLmNwcApAQCAtMzEsOSArMzEsNiBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6UGxhdGZvcm1Qb3B1cE1lbnVEYXRhKCkKLSNpZiBQ
TEFURk9STShRVCkKLSAgICA6IG11bHRpcGxlU2VsZWN0aW9ucyhmYWxzZSkKLSNlbmRpZgogewog
fQogCkBAIC00Miw4ICszOSw2IEBAIHZvaWQgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjplbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBlbmNvZGVyIDw8IGZvbnRJbmZvOwogICAgIGVuY29kZXIgPDwgc2hvdWxkUG9wT3Zl
cjsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIGVuY29kZXIgPDwgbXVsdGlwbGVTZWxlY3Rpb25z
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7CiAjZW5kaWYKQEAgLTU2LDkgKzUx
LDYgQEAgYm9vbCBQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFBsYXRmb3JtUG8KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZGF0YS5zaG91bGRQb3BPdmVyKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRh
Lm11bHRpcGxlU2VsZWN0aW9ucykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKICNlbHNlCiAgICAg
VU5VU0VEX1BBUkFNKGRlY29kZXIpOwogICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuaAppbmRleCA3MGIzZjg3M2Qz
YmZjMTNkM2FlMzc0YzBhMmJmYWE4YjE2OGQ4ZWVmLi4wZDQyZTY4NGE5NzkxNzc0YjNiOTk5MTM2
ZGE0MDEwZGY1Njc5ZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZv
cm1Qb3B1cE1lbnVEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9w
dXBNZW51RGF0YS5oCkBAIC00Niw4ICs0Niw2IEBAIHN0cnVjdCBQbGF0Zm9ybVBvcHVwTWVudURh
dGEgewogI2lmIFBMQVRGT1JNKE1BQykKICAgICBGb250SW5mbyBmb250SW5mbzsKICAgICBib29s
IHNob3VsZFBvcE92ZXI7Ci0jZWxpZiBQTEFURk9STShRVCkKLSAgICBib29sIG11bHRpcGxlU2Vs
ZWN0aW9uczsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1NoYXJlYWJsZUJpdG1hcC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1h
cC5oCmluZGV4IDdiNGNjMTVhM2ZjNjA1Y2I5NGQwZTg4MGZhYzY0YzYwZTg3MDczMjguLjNhNWQz
YmQyOTExYjE5YjIyN2YzNmY2YTdjOWM4NTExNmZkNzRlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2hhcmVhYmxlQml0bWFwLmgKQEAgLTQxLDE1ICs0MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWZQdHJDYWlyby5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShRVCkKLSNpbmNsdWRlIDxR
SW1hZ2U+Ci0jaWZkZWYgUV9XU19YMTEKLS8vIEF2b2lkIGFtYmlndWl0eSBjYXVzZWQgYnkgdGhl
IFJlZ2lvbiB0eXBlZGVmIGZyb20gcXdpbmRvd2RlZnMuaC4KLW5hbWVzcGFjZSBXZWJDb3JlIHsg
Y2xhc3MgUmVnaW9uOyB9Ci1uYW1lc3BhY2UgV2ViS2l0IHsgdXNpbmcgV2ViQ29yZTo6UmVnaW9u
OyB9Ci0jZW5kaWYKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSW1h
Z2U7CiAgICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwpAQCAtMTI5LDExICsxMjAsNiBAQCBwdWJs
aWM6CiAgICAgLy8gVGhpcyBjcmVhdGVzIGEgQml0bWFwSW1hZ2UgdGhhdCBkaXJlY3RseSByZWZl
cmVuY2VzIHRoZSBzaGFyZWQgYml0bWFwIGRhdGEuCiAgICAgLy8gVGhpcyBpcyBvbmx5IHNhZmUg
dG8gdXNlIHdoZW4gd2Uga25vdyB0aGF0IHRoZSBjb250ZW50cyBvZiB0aGUgc2hhcmVhYmxlIGJp
dG1hcCB3b24ndCBjaGFuZ2UuCiAgICAgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0
ZUNhaXJvU3VyZmFjZSgpOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgLy8gVGhpcyBjcmVhdGVz
IGEgUUltYWdlIHRoYXQgZGlyZWN0bHkgcmVmZXJlbmNlcyB0aGUgc2hhcmVkIGJpdG1hcCBkYXRh
LgotICAgIC8vIFRoaXMgaXMgb25seSBzYWZlIHRvIHVzZSB3aGVuIHdlIGtub3cgdGhhdCB0aGUg
Y29udGVudHMgb2YgdGhlIHNoYXJlYWJsZSBiaXRtYXAgd29uJ3QgY2hhbmdlLgotICAgIFFJbWFn
ZSBjcmVhdGVRSW1hZ2UoKTsKLSAgICBzdGF0aWMgdm9pZCByZWxlYXNlU2hhcmVkTWVtb3J5RGF0
YSh2b2lkKiB0eXBlbGVzc0JpdG1hcCk7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCmluZGV4IDc0NzY1MTExNDc5OTEzNmM0
ZDZhMDIxMWQwOWJmZjNkY2E4NDhiOTcuLjYyYTk2MDc0NTEwM2M2NTI3NTc5Y2EwNTU5Y2M1MWVk
YWIwMGMzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUu
aApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICNkZWZpbmUgREVGQVVMVF9X
RUJLSVRfVEFCU1RPTElOS1NfRU5BQkxFRCBmYWxzZQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoU01P
T1RIX1NDUk9MTElORykgJiYgIVBMQVRGT1JNKFFUKQorI2lmIEVOQUJMRShTTU9PVEhfU0NST0xM
SU5HKQogI2RlZmluZSBERUZBVUxUX1dFQktJVF9TQ1JPTExfQU5JTUFUT1JfRU5BQkxFRCB0cnVl
CiAjZWxzZQogI2RlZmluZSBERUZBVUxUX1dFQktJVF9TQ1JPTExfQU5JTUFUT1JfRU5BQkxFRCBm
YWxzZQpAQCAtMjAzLDcgKzIwMyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIG1hY3JvKFBp
Y3RvZ3JhcGhGb250RmFtaWx5LCBwaWN0b2dyYXBoRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcs
ICJBcHBsZSBDb2xvciBFbW9qaSIpIFwKICAgICBcCiAKLSNlbGlmIFBMQVRGT1JNKFFUKSB8fCBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oRUZMKQogCiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9GT05UX0ZBTUlMWV9QUkVGRVJF
TkNFKG1hY3JvKSBcCiAgICAgbWFjcm8oU3RhbmRhcmRGb250RmFtaWx5LCBzdGFuZGFyZEZvbnRG
YW1pbHksIFN0cmluZywgU3RyaW5nLCAiVGltZXMiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAppbmRleCAxMDcwZWI2NGRl
NmUwOTkzOTkxNzY4OGJhMGUwNzAwMTMyYmYyMWE4Li5jYjYzMjczMjNiNDRiZTFmNWI2MzUwODQ5
N2RjZmI0NjUxMGZmNjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAKQEAgLTIwNiwxNiArMjA2LDUgQEAgdm9pZCBEb3du
bG9hZFByb3h5OjpkaWRDYW5jZWwoY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1l
RGF0YSkKICAgICBtX2Rvd25sb2FkUHJveHlNYXAuZG93bmxvYWRGaW5pc2hlZCh0aGlzKTsKIH0K
IAotI2lmIFBMQVRGT1JNKFFUKQotdm9pZCBEb3dubG9hZFByb3h5OjpzdGFydFRyYW5zZmVyKGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUpCi17Ci0gICAgaWYgKCFtX3dlYkNvbnRleHQpCi0gICAgICAg
IHJldHVybjsKLQotICAgIC8vIEZJWE1FIChNdWx0aS1XZWJQcm9jZXNzKTogPHJkYXI6Ly9wcm9i
bGVtLzEyMjM5NDgzPiBEb3dubG9hZHMgc2hvdWxkbid0IGJlIGhhbmRsZWQgaW4gdGhlIHdlYiBw
cm9jZXNzLgotICAgIG1fd2ViQ29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzOjpTdGFydFRyYW5zZmVyKG1fZG93bmxvYWRJRCwgZmlsZW5hbWUpKTsKLX0KLSNl
bmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaAppbmRleCAzNmM4ZDdjN2Q2MzY3Yjgy
MmIyNTc3NmM4OTY5MzE3MTFkYjdjMzU3Li4yMGE3MzIzNjQ2NGRkNGY4YTcyNTE0ZGE3NjRjMTlm
NTRkZGZjZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHkuaApAQCAtNjMsMTAgKzYzLDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
UmVjZWl2ZURvd25sb2FkUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBz
dGQ6OnVuaXF1ZV9wdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAKLSNpZiBQTEFURk9S
TShRVCkKLSAgICB2b2lkIHN0YXJ0VHJhbnNmZXIoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSk7Ci0j
ZW5kaWYKLQogcHJpdmF0ZToKICAgICBleHBsaWNpdCBEb3dubG9hZFByb3h5KERvd25sb2FkUHJv
eHlNYXAmLCBXZWJDb250ZXh0Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CmluZGV4IDNjNTZkNmI3ZTAxZGNkNWVjMjNkMDVjOWYxODU4MDYwNzcwZDVmZGIuLjFkNjU2ZTc3
YzI1OWJiYzlmYTU0ZTBlNTE5Y2NjYjBmYTc0MjdkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaApAQCAtMTI0LDI2ICsxMjQsMjAgQEAgcHVibGljOgogI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluZFpvb21hYmxlQXJlYShj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSA9IDA7CiAj
ZW5kaWYKLSNpZiBQTEFURk9STShRVCkKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXV0aGVudGlj
YXRpb25SZXF1aXJlZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgU3RyaW5n
JiByZWFsbSwgY29uc3QgU3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFt
ZSwgU3RyaW5nJiBwYXNzd29yZCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVDZXJ0aWZp
Y2F0ZVZlcmlmaWNhdGlvblJlcXVlc3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgYm9vbCYgaWdu
b3JlRXJyb3JzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVByb3h5QXV0aGVudGljYXRp
b25SZXF1aXJlZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgdWludDE2X3QgcG9ydCwg
Y29uc3QgU3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5n
JiBwYXNzd29yZCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpID0gMDsKLSNlbmRpZiAvLyBQTEFURk9STShRVCkuCi0KLSNpZiBQTEFURk9STShR
VCkgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCisKKyNpZiBQTEFURk9STShFRkwp
IHx8IFBMQVRGT1JNKEdUSykKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4dElucHV0U3RhdGUo
KSA9IDA7Ci0jZW5kaWYgLy8gUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVE9G
Uk0oR1RLKQorI2VuZGlmIC8vIFBMQVRGT1JNKEVGTCkgfHwgUExBVE9GUk0oR1RLKQogCi0jaWYg
UExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRG
T1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVEb3dubG9h
ZFJlcXVlc3QoRG93bmxvYWRQcm94eSopID0gMDsKLSNlbmRpZiAvLyBQTEFURk9STShRVCkgfHwg
UExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCisjZW5kaWYgLy8gUExBVEZPUk0oRUZMKSB8
fCBQTEFURk9STShHVEspCiAKLSNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKQorI2lm
IFBMQVRGT1JNKEVGTCkKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKSA9IDA7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKSB8
fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dERyYWcoY29uc3QgV2ViQ29yZTo6RHJhZ0RhdGEmLCBQYXNzUmVmUHRyPFNoYXJlYWJsZUJpdG1h
cD4gZHJhZ0ltYWdlKSA9IDA7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKaW5kZXggNmM1OWRjZTYz
ZjE5NDc5NTM2OTY2OTVhNzU2YmRiNjA4OTBhOGNiYy4uN2FkMTcyYTQwN2IyYTY2NjNkMjcxNzZj
OTNhZWIwZWRjODJhNGE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCkBAIC0xOTAsOCArMTkwLDYgQEAgdm9p
ZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIq
LCBDb3JlSVBDOjpDb25uZWN0aW8KICAgICBtX2Nvbm5lY3Rpb24gPSBDb3JlSVBDOjpDb25uZWN0
aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCB0aGlzLCBS
dW5Mb29wOjptYWluKCkpOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBtX2Nvbm5lY3Rpb24tPnNl
dFNob3VsZENsb3NlQ29ubmVjdGlvbk9uTWFjaEV4Y2VwdGlvbnMoKTsKLSNlbGlmIFBMQVRGT1JN
KFFUKQotICAgIG1fY29ubmVjdGlvbi0+c2V0U2hvdWxkQ2xvc2VDb25uZWN0aW9uT25Qcm9jZXNz
VGVybWluYXRpb24ocHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAjZW5kaWYKIAogICAgIG1fY29ubmVj
dGlvbi0+b3BlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4
IDc3YTlmMDhjNDkzNWMzZTQzNTkzOGExZjU2MmNhMGI1ODhmN2NiZDQuLmM2ODFiOTAzZTQyNWU0
NDk2MTg5MTBlMmYzOGEyOTU0Yzk3ZDQyOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAKQEAgLTcyNSwxMSArNzI1LDYgQEAgRG93bmxvYWRQcm94eSogV2ViQ29udGV4
dDo6ZG93bmxvYWQoV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSwgY29uc3QgUmVzb3VyY2UK
ICAgICB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKQotICAgIEFTU0VSVChpbml0aWF0aW5n
UGFnZSk7IC8vIE91ciBkZXNpZ24gZG9lcyBub3Qgc3VwcHBvcnQgZG93bmxvYWRzIHdpdGhvdXQg
YSBXZWJQYWdlLgotICAgIGluaXRpYXRpbmdQYWdlLT5oYW5kbGVEb3dubG9hZFJlcXVlc3QoZG93
bmxvYWRQcm94eSk7Ci0jZW5kaWYKLQogICAgIG1fcHJvY2Vzc2VzWzBdLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpEb3dubG9hZFJlcXVlc3QoZG93bmxvYWRQcm94eS0+ZG93bmxvYWRJRCgp
LCBpbml0aWF0aW5nUGFnZUlELCByZXF1ZXN0KSwgMCk7CiAgICAgcmV0dXJuIGRvd25sb2FkUHJv
eHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkuaAppbmRleCAwODViZDBhOTZkNWM0MGVlN2I1NmJkNmNiMmJmMjliYmJlYWRl
MmUxLi5iMzcyNTcwNzg4OGUyOTQxYzM5YWQwZDg4YmM2NGIzOTA2YTkyYzMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgK
QEAgLTQxLDE2ICs0MSwxMiBAQCBjbGFzcyBJbnRSZWN0OwogT0JKQ19DTEFTUyBXS1ZpZXc7CiAj
ZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlld0Jhc2UgV2Vi
S2l0V2ViVmlld0Jhc2U7Ci0jZWxpZiBQTEFURk9STShRVCkKLWNsYXNzIFFRdWlja1dlYlZpZXc7
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQog
dHlwZWRlZiBXS1ZpZXcgUGxhdGZvcm1XZWJWaWV3OwotI2VsaWYgUExBVEZPUk0oUVQpCi10eXBl
ZGVmIFFRdWlja1dlYlZpZXcgUGxhdGZvcm1XZWJWaWV3OwogI2VsaWYgUExBVEZPUk0oR1RLKQog
dHlwZWRlZiBXZWJLaXRXZWJWaWV3QmFzZSBQbGF0Zm9ybVdlYlZpZXc7CiAjZWxpZiBQTEFURk9S
TShFRkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGIw
NjYyZWRkMjRiNDQwMmU3YjExMWRjMTJjNTMwNGZiOGY2ZDRlNTIuLmY1ZTdkMzU4NWQ1N2E2ZTg3
YTk1OGI1YzJlNmRkNzI2Y2I1ODM4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC05NywxMCArOTcsNiBAQAogI2luY2x1ZGUgIkNvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdFByb3h5TWVzc2FnZXMuaCIKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oUVQpCi0j
aW5jbHVkZSAiQXJndW1lbnRDb2RlcnNRdC5oIgotI2VuZGlmCi0KICNpZiBQTEFURk9STShHVEsp
CiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNHdGsuaCIKICNlbmRpZgpAQCAtMTIyNyw3ICsxMjIz
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFn
Q29udHJvbGxlckFjdGlvbiBhY3Rpb24sIERyYWcKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAg
ICAgICAgcmV0dXJuOwotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspCisjaWYgUExB
VEZPUk0oR1RLKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UGVyZm9y
bURyYWdDb250cm9sbGVyQWN0aW9uKGFjdGlvbiwgKmRyYWdEYXRhKSwgbV9wYWdlSUQpOwogI2Vs
c2UKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBlcmZvcm1EcmFnQ29u
dHJvbGxlckFjdGlvbihhY3Rpb24sIGRyYWdEYXRhLT5jbGllbnRQb3NpdGlvbigpLCBkcmFnRGF0
YS0+Z2xvYmFsUG9zaXRpb24oKSwgZHJhZ0RhdGEtPmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFz
aygpLCBkcmFnU3RvcmFnZU5hbWUsIGRyYWdEYXRhLT5mbGFncygpLCBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlLCBzYW5kYm94RXh0ZW5zaW9uc0ZvclVwbG9hZCksIG1fcGFnZUlEKTsKQEAgLTEyMzks
NyArMTIzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJB
Y3Rpb24oV2ViQ29yZTo6RHJhZ1Nlc3Npb24gZHJhZ1Nlc3NpCiAgICAgbV9jdXJyZW50RHJhZ1Nl
c3Npb24gPSBkcmFnU2Vzc2lvbjsKIH0KIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKQogdm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0RHJhZyhjb25z
dCBEcmFnRGF0YSYgZHJhZ0RhdGEsIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBkcmFn
SW1hZ2VIYW5kbGUpCiB7CiAgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gZHJhZ0ltYWdlID0g
MDsKQEAgLTE0NzksMTMgKzE0NzUsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlR2VzdHVy
ZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCi0jaWYgUExBVEZPUk0oUVQpCi12b2lkIFdlYlBhZ2VQcm94eTo6aGFu
ZGxlUG90ZW50aWFsQWN0aXZhdGlvbihjb25zdCBJbnRQb2ludCYgdG91Y2hQb2ludCwgY29uc3Qg
SW50U2l6ZSYgdG91Y2hBcmVhKQotewotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6SGlnaGxpZ2h0UG90ZW50aWFsQWN0aXZhdGlvbih0b3VjaFBvaW50LCB0b3VjaEFyZWEp
LCBtX3BhZ2VJRCk7Ci19Ci0jZW5kaWYKLQogdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNo
RXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKCFpc1Zh
bGlkKCkpCkBAIC0xNTQ2LDcgKzE1MzUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQ
b2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBXZWJGcmFtZVByb3h5KiBmcgogICAg
ICAgICAvLyBDcmVhdGUgYSBkb3dubG9hZCBwcm94eS4KICAgICAgICAgRG93bmxvYWRQcm94eSog
ZG93bmxvYWQgPSBtX3Byb2Nlc3MtPmNvbnRleHQoKS0+Y3JlYXRlRG93bmxvYWRQcm94eSgpOwog
ICAgICAgICBkb3dubG9hZElEID0gZG93bmxvYWQtPmRvd25sb2FkSUQoKTsKLSNpZiBQTEFURk9S
TShRVCkgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oRUZM
KSB8fCBQTEFURk9STShHVEspCiAgICAgICAgIC8vIE91ciBkZXNpZ24gZG9lcyBub3Qgc3VwcHBv
cnQgZG93bmxvYWRzIHdpdGhvdXQgYSBXZWJQYWdlLgogICAgICAgICBoYW5kbGVEb3dubG9hZFJl
cXVlc3QoZG93bmxvYWQpOwogI2VuZGlmCkBAIC0yODk5LDE0ICsyODg4LDE0IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wgbWF5U3RhcnRNZWRp
YSkKICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1heVN0YXJ0TWVk
aWFXaGVuSW5XaW5kb3cobWF5U3RhcnRNZWRpYSksIG1fcGFnZUlEKTsKIH0KIAotI2lmIFBMQVRG
T1JNKFFUKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShF
RkwpIHx8IFBMQVRGT1JNKEdUSykKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVEb3dubG9hZFJl
cXVlc3QoRG93bmxvYWRQcm94eSogZG93bmxvYWQpCiB7CiAgICAgbV9wYWdlQ2xpZW50LT5oYW5k
bGVEb3dubG9hZFJlcXVlc3QoZG93bmxvYWQpOwogfQotI2VuZGlmIC8vIFBMQVRGT1JNKFFUKSB8
fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykKKyNlbmRpZiAvLyBQTEFURk9STShFRkwp
IHx8IFBMQVRGT1JNKEdUSykKIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpCisj
aWYgUExBVEZPUk0oRUZMKQogdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZUNvbnRlbnRzU2l6
ZShjb25zdCBJbnRTaXplJiBzaXplKQogewogICAgIG1fcGFnZUNsaWVudC0+ZGlkQ2hhbmdlQ29u
dGVudHNTaXplKHNpemUpOwpAQCAtMzA1NSw3ICszMDQ0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmVkaXRvclN0YXRlQ2hhbmdlZChjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9yU3RhdGUpCiAgICAg
ICAgIGNhbmNlbENvbXBvc2l0aW9uKCk7CiAgICAgICAgIG1fcGFnZUNsaWVudC0+bm90aWZ5SW5w
dXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpOwogICAgIH0KLSNlbGlmIFBMQVRG
T1JNKFFUKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JN
KEVGTCkgfHwgUExBVEZPUk0oR1RLKQogICAgIG1fcGFnZUNsaWVudC0+dXBkYXRlVGV4dElucHV0
U3RhdGUoKTsKICNlbmRpZgogfQpAQCAtMzE4MiwxMCArMzE3MSw5IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIHVpbnQ2NF90IHRleHREaXJl
Y3Rpb24sIGNvCiAKICAgICBwcm90ZWN0ZWRBY3RpdmVQb3B1cE1lbnUtPnNob3dQb3B1cE1lbnUo
cmVjdCwgc3RhdGljX2Nhc3Q8VGV4dERpcmVjdGlvbj4odGV4dERpcmVjdGlvbiksIG1fcGFnZVNj
YWxlRmFjdG9yLCBpdGVtcywgZGF0YSwgc2VsZWN0ZWRJbmRleCk7CiAKLSAgICAvLyBTaW5jZSBR
dCBhbmQgRWZsIGRvZXNuJ3QgdXNlIGEgbmVzdGVkIG1haW5sb29wIHRvIHNob3cgdGhlIHBvcHVw
IGFuZCBnZXQgdGhlIGFuc3dlciwgd2UgbmVlZCB0byBrZWVwIHRoZSBjbGllbnQgcG9pbnRlciB2
YWxpZC4KLSNpZiAhUExBVEZPUk0oUVQpCisgICAgLy8gU2luY2UgRWZsIGRvZXNuJ3QgdXNlIGEg
bmVzdGVkIG1haW5sb29wIHRvIHNob3cgdGhlIHBvcHVwIGFuZCBnZXQgdGhlIGFuc3dlciwgd2Ug
bmVlZCB0byBrZWVwIHRoZSBjbGllbnQgcG9pbnRlciB2YWxpZC4KKyAgICAvLyBGSVhNRTogVGhl
IGFib3ZlIGNvbW1lbnQgZG9lc24ndCBtYWtlIGFueSBzZW5zZSBzaW5jZSB0aGlzIGNvZGUgaXMg
Y29tcGlsZWQgb3V0IGZvciBFRkwuCiAgICAgcHJvdGVjdGVkQWN0aXZlUG9wdXBNZW51LT5pbnZh
bGlkYXRlKCk7Ci0jZW5kaWYKICAgICBwcm90ZWN0ZWRBY3RpdmVQb3B1cE1lbnUgPSAwOwogI2Vu
ZGlmCiB9CkBAIC00NDExLDcgKzQzOTksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2
ZVVSSVJlcXVlc3QoU3RyaW5nIHVyaVN0cmluZywgdWludDY0X3QgcmVxdWVzdElEKQogfQogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdU
SykKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQs
IFZlY3RvcjxDb21wb3NpdGlvblVuZGVybGluZT4gdW5kZXJsaW5lcywgdWludDY0X3Qgc2VsZWN0
aW9uU3RhcnQsIHVpbnQ2NF90IHNlbGVjdGlvbkVuZCwgdWludDY0X3QgcmVwbGFjZW1lbnRSYW5n
ZVN0YXJ0LCB1aW50NjRfdCByZXBsYWNlbWVudFJhbmdlRW5kKQogewogICAgIC8vIEZJWE1FOiBX
ZSBuZWVkIHRvIGZpbmQgb3V0IGhvdyB0byBwcm9wZXIgaGFuZGxlIHRoZSBjcmFzaGVzIGNhc2Uu
CkBAIC00NDM2LDcgKzQ0MjQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2FuY2VsQ29tcG9zaXRp
b24oKQogCiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDYW5jZWxDb21w
b3NpdGlvbigpLCBtX3BhZ2VJRCk7CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oUVQpIHx8IFBMQVRG
T1JNKEdUSykKKyNlbmRpZiAvLyBQTEFURk9STShHVEspCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRNYWluRnJhbWVJblZpZXdTb3VyY2VNb2RlKGJvb2wgbWFpbkZyYW1lSW5WaWV3U291cmNlTW9k
ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5OWUzNGFm
M2Y2ZGI0NWJkODZhYzAwNjg3MmVjNGQ5YTA1MjE1MDFkLi41ODRjYzA3OGZlNzk1OTNmN2VhMjQ3
YzZhODA2Yjc1MDYxMDc0NmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC04NiwxMCArODYsNiBAQAogI2luY2x1ZGUgPEV2YXMuaD4KICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oUVQpCi0jaW5jbHVkZSAiUXROZXR3b3JrUmVxdWVzdERhdGEuaCIKLSNlbmRpZgot
CiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAgICAgY2xhc3MgQXJndW1lbnREZWNvZGVyOwogICAgIGNs
YXNzIENvbm5lY3Rpb247CkBAIC0xMTEsMTAgKzEwNyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiB9CiAKLSNpZiBQTEFURk9STShRVCkKLWNsYXNz
IFFRdWlja05ldHdvcmtSZXBseTsKLSNlbmRpZgotCiAjaWYgVVNFKEFQUEtJVCkKICNpZmRlZiBf
X09CSkNfXwogQGNsYXNzIFdLVmlldzsKQEAgLTM2NSwxOSArMzU3LDExIEBAIHB1YmxpYzoKICNp
ZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkgCiAgICAgdm9pZCBkaWRSZW5kZXJGcmFtZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGNvdmVyZWRSZWN0KTsKICNlbmRpZgotI2lmIFBMQVRGT1JNKFFUKQotICAgIHZvaWQgcmVnaXN0
ZXJBcHBsaWNhdGlvblNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7Ci0gICAgdm9pZCByZXNv
bHZlQXBwbGljYXRpb25TY2hlbWVSZXF1ZXN0KFF0TmV0d29ya1JlcXVlc3REYXRhKTsKLSAgICB2
b2lkIHNlbmRBcHBsaWNhdGlvblNjaGVtZVJlcGx5KGNvbnN0IFFRdWlja05ldHdvcmtSZXBseSop
OwotICAgIHZvaWQgYXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBo
b3N0bmFtZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgY29uc3QgU3RyaW5nJiBwcmVmaWxsZWRVc2Vy
bmFtZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29yZCk7Ci0gICAgdm9pZCBjZXJ0
aWZpY2F0ZVZlcmlmaWNhdGlvblJlcXVlc3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgYm9vbCYg
aWdub3JlRXJyb3JzKTsKLSAgICB2b2lkIHByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVl
c3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgdWludDE2X3QgcG9ydCwgY29uc3QgU3RyaW5nJiBw
cmVmaWxsZWRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29yZCk7Ci0j
ZW5kaWYgLy8gUExBVEZPUk0oUVQpLgogI2lmIFBMQVRGT1JNKEVGTCkKICAgICB2b2lkIHNldFRo
ZW1lUGF0aChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBM
QVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCBzZXRDb21wb3NpdGlvbihj
b25zdCBTdHJpbmcmIHRleHQsIFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4g
dW5kZXJsaW5lcywgdWludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIHVpbnQ2NF90IHNlbGVjdGlvbkVu
ZCwgdWludDY0X3QgcmVwbGFjZW1lbnRSYW5nZVN0YXJ0LCB1aW50NjRfdCByZXBsYWNlbWVudFJh
bmdlRW5kKTsKICAgICB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmIGNvbXBv
c2l0aW9uU3RyaW5nLCBpbnQ2NF90IHNlbGVjdGlvblN0YXJ0LCBpbnQ2NF90IHNlbGVjdGlvbkxl
bmd0aCk7CiAgICAgdm9pZCBjYW5jZWxDb21wb3NpdGlvbigpOwpAQCAtNDM5LDkgKzQyMyw2IEBA
IHB1YmxpYzoKICNlbmRpZgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgdm9pZCBoYW5k
bGVUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmKTsKLSNpZiBQTEFURk9STShR
VCkKLSAgICB2b2lkIGhhbmRsZVBvdGVudGlhbEFjdGl2YXRpb24oY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHRvdWNoUG9pbnQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvdWNoQXJlYSk7Ci0j
ZW5kaWYKICNlbmRpZgogCiAgICAgdm9pZCBzY3JvbGxCeShXZWJDb3JlOjpTY3JvbGxEaXJlY3Rp
b24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKQEAgLTYwMSw3ICs1ODIsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRQcm9taXNlZERhdGEoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGltYWdlSGFuZGxlLCB1aW50NjRfdCBpbWFn
ZVNpemUsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBjb25zdCBTdHJpbmcmIHZpc2libGVVUkwsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFu
ZGxlJiBhcmNoaXZlSGFuZGxlLCB1aW50NjRfdCBhcmNoaXZlU2l6ZSk7CiAjZW5kaWYKLSNpZiBQ
TEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykKICAgICB2b2lk
IHN0YXJ0RHJhZyhjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYsIGNvbnN0IFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiBkcmFnSW1hZ2UpOwogI2VuZGlmCiAjZW5kaWYKQEAgLTY2NCw3ICs2NDUsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBmaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9S
TShFRkwpIHx8IFBMQVRGT1JNKEdUSykKICAgICB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChE
b3dubG9hZFByb3h5Kik7CiAjZW5kaWYKIApAQCAtNzkzLDEwICs3NzQsNiBAQCBwcml2YXRlOgog
I2lmIFBMQVRGT1JNKEdUSykKICAgICB2aXJ0dWFsIHZvaWQgZmFpbGVkVG9TaG93UG9wdXBNZW51
KCk7CiAjZW5kaWYKLSNpZiBQTEFURk9STShRVCkKLSAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlU2Vs
ZWN0ZWRJbmRleChpbnQzMl90IG5ld1NlbGVjdGVkSW5kZXgpOwotICAgIHZpcnR1YWwgdm9pZCBj
bG9zZVBvcHVwTWVudSgpOwotI2VuZGlmCiAKICAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0
ZWQgV2ViUGFnZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIHZvaWQgZGlkUmVjZWl2ZVdl
YlBhZ2VQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CkBAIC04OTAsNyArODY3LDcgQEAgcHJpdmF0ZToKICNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCiAgICAgdm9pZCBkaWRGaW5kWm9vbWFibGVBcmVhKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogI2VuZGlmCi0jaWYgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9STShFRkwpCiAgICAgdm9pZCBkaWRD
aGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogI2VuZGlmCiAKQEAg
LTkwNSw5ICs4ODIsNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGVkaXRvclN0YXRl
Q2hhbmdlZChjb25zdCBFZGl0b3JTdGF0ZSYpOwotI2lmIFBMQVRGT1JNKFFUKQotICAgIHZvaWQg
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKLSNlbmRpZgogCiAgICAgLy8gQmFjay9Gb3J3YXJk
IGxpc3QgbWFuYWdlbWVudAogICAgIHZvaWQgYmFja0ZvcndhcmRBZGRJdGVtKHVpbnQ2NF90IGl0
ZW1JRCk7CkBAIC0xMjcyLDEwICsxMjQ2LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbGFzdFNl
bnRDbGlwc1RvRXhwb3NlZFJlY3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKQotICAgIFdU
Rjo6SGFzaFNldDxSZWZQdHI8UXRSZWZDb3VudGVkTmV0d29ya1JlcXVlc3REYXRhPj4gbV9hcHBs
aWNhdGlvblNjaGVtZVJlcXVlc3RzOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoUEFHRV9WSVNJQklM
SVRZX0FQSSkKICAgICBXZWJDb3JlOjpQYWdlVmlzaWJpbGl0eVN0YXRlIG1fdmlzaWJpbGl0eVN0
YXRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCA5YmI5ZDU1NjA5OGM4YzMxZDg4ZDFjMDg0M2FiMTE1ZTRmZWEw
ZTBmLi5hOTg1MzhiZTEyNDM5Y2U3MjJjZTQ5YzNkNzU1ODQyNmM0NjdiN2NkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTgw
LDEzICs4MCw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQogICAgIERpZEZpbmRab29tYWJsZUFyZWEoV2ViQ29yZTo6SW50UG9pbnQg
dGFyZ2V0LCBXZWJDb3JlOjpJbnRSZWN0IGFyZWEpCiAjZW5kaWYKLSNpZiBQTEFURk9STShRVCkK
LSAgICBBdXRoZW50aWNhdGlvblJlcXVpcmVkUmVxdWVzdChXVEY6OlN0cmluZyBob3N0bmFtZSwg
V1RGOjpTdHJpbmcgcmVhbG0sIFdURjo6U3RyaW5nIHByZWZpbGxlZFVzZXJuYW1lKSAtPiAoV1RG
OjpTdHJpbmcgdXNlcm5hbWUsIFdURjo6U3RyaW5nIHBhc3N3b3JkKQotICAgIENlcnRpZmljYXRl
VmVyaWZpY2F0aW9uUmVxdWVzdChXVEY6OlN0cmluZyBob3N0bmFtZSkgLT4gKGJvb2wgaWdub3Jl
RXJyb3JzKQotICAgIFByb3h5QXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoV1RGOjpTdHJp
bmcgaG9zdG5hbWUsIHVpbnQxNl90IHBvcnQsIFdURjo6U3RyaW5nIHByZWZpbGxlZFVzZXJuYW1l
KSAtPiAoV1RGOjpTdHJpbmcgdXNlcm5hbWUsIFdURjo6U3RyaW5nIHBhc3N3b3JkKQotI2VuZGlm
CiAKLSNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oRUZMKQorI2lmIFBMQVRGT1JNKEVGTCkK
ICAgICBEaWRDaGFuZ2VDb250ZW50c1NpemUoV2ViQ29yZTo6SW50U2l6ZSBuZXdTaXplKQogI2Vu
ZGlmCiAKQEAgLTEzNSwxMCArMTMwLDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAog
ICAgIEZyYW1lRGlkQmVjb21lRnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCB2YWx1ZSkK
IAotI2lmIFBMQVRGT1JNKFFUKQotICAgIFJlc29sdmVBcHBsaWNhdGlvblNjaGVtZVJlcXVlc3Qo
V2ViS2l0OjpRdE5ldHdvcmtSZXF1ZXN0RGF0YSByZXF1ZXN0KQotI2VuZGlmCi0KICAgICAjIEZv
cm1zIG1lc3NhZ2VzCiAgICAgV2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3Qgc291cmNlRnJhbWVJRCwgV1RGOjpWZWN0b3I8c3RkOjpwYWlyPFdURjo6U3RyaW5nLCBXVEY6
OlN0cmluZz4+IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgVmFyaWFkaWMKIApAQCAt
MTg1LDkgKzE3Niw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICAjIEVkaXRv
ciBub3RpZmljYXRpb25zCiAgICAgRWRpdG9yU3RhdGVDaGFuZ2VkKFdlYktpdDo6RWRpdG9yU3Rh
dGUgZWRpdG9yU3RhdGUpCi0jaWYgUExBVEZPUk0oUVQpCi0gICAgV2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKQotI2VuZGlmCisKICAgICAjIEZpbmQgbWVzc2FnZXMKICAgICBEaWRDb3VudFN0cmlu
Z01hdGNoZXMoV1RGOjpTdHJpbmcgc3RyaW5nLCB1aW50MzJfdCBtYXRjaENvdW50KQogICAgIFNl
dEZpbmRJbmRpY2F0b3IoV2ViQ29yZTo6RmxvYXRSZWN0IHNlbGVjdGlvblJlY3QsIFZlY3RvcjxX
ZWJDb3JlOjpGbG9hdFJlY3Q+IHRleHRSZWN0cywgZmxvYXQgY29udGVudEltYWdlU2NhbGVGYWN0
b3IsIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgY29udGVudEltYWdlSGFuZGxlLCBi
b29sIGZhZGVPdXQsIGJvb2wgYW5pbWF0ZSkKQEAgLTI0NCw3ICsyMzMsNyBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogICAgIFNldERyYWdJbWFnZShXZWJDb3JlOjpJbnRQb2ludCBjbGll
bnRQb3NpdGlvbiwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBkcmFnSW1hZ2UsIGJv
b2wgbGlua0RyYWcpCiAgICAgU2V0UHJvbWlzZWREYXRhKFdURjo6U3RyaW5nIHBhc3RlYm9hcmRO
YW1lLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGltYWdlSGFuZGxlLCB1aW50NjRfdCBp
bWFnZVNpemUsIFdURjo6U3RyaW5nIGZpbGVuYW1lLCBXVEY6OlN0cmluZyBleHRlbnNpb24sIFdU
Rjo6U3RyaW5nIHRpdGxlLCBXVEY6OlN0cmluZyB1cmwsIFdURjo6U3RyaW5nIHZpc2libGVVUkws
IFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgYXJjaGl2ZUhhbmRsZSwgdWludDY0X3QgYXJj
aGl2ZVNpemUpCiAjZW5kaWYKLSNpZiAoUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykpICYm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCisjaWYgUExBVEZPUk0oR1RLKSAmJiBFTkFCTEUoRFJBR19T
VVBQT1JUKQogICAgIFN0YXJ0RHJhZyhXZWJDb3JlOjpEcmFnRGF0YSBkcmFnRGF0YSwgV2ViS2l0
OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBkcmFnSW1hZ2UpCiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9wdXBNZW51UHJveHkuaAppbmRleCAxY2FmOGRkNjRiZTYz
MzllMzdkY2Q1ZTUwMzZjNmFmZWZhMDAyZjRjLi40YzVjOGUwYzA2YjY3ODJmMzc3MzFlYzE4NzJj
YzM0YTc3NWFhMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9w
dXBNZW51UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9wdXBNZW51
UHJveHkuaApAQCAtNTYsMTAgKzU2LDYgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKEdUSykKICAg
ICAgICAgdmlydHVhbCB2b2lkIGZhaWxlZFRvU2hvd1BvcHVwTWVudSgpID0gMDsKICNlbmRpZgot
I2lmIFBMQVRGT1JNKFFUKQotICAgICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlU2VsZWN0ZWRJbmRl
eChpbnQzMl90IG5ld1NlbGVjdGVkSW5kZXgpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNs
b3NlUG9wdXBNZW51KCkgPSAwOwotI2VuZGlmCiAgICAgfTsKIAogICAgIHZpcnR1YWwgfldlYlBv
cHVwTWVudVByb3h5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCAwNGI0ZDQ0NDlhNGYwMjg2NDAw
ZDZlNjMwYTIxYzYxM2UzZTFmMjA1Li5mNTJlOWIzYTg4Y2M4MGRiNzNmYzRkYTAyZDIzZGNmYjM5
NTc3NDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC0zNSwxMCArMzUsNiBAQAogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNp
ZiBQTEFURk9STShRVCkKLSNpbmNsdWRlIDxRTGlicmFyeT4KLSNlbmRpZgotCiAjaWYgUExBVEZP
Uk0oR1RLKQogdHlwZWRlZiBzdHJ1Y3QgX0dNb2R1bGUgR01vZHVsZTsKICNlbmRpZgpAQCAtNjAs
OCArNTYsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogI2lmIFBMQVRGT1JNKE1BQykKIHR5cGVk
ZWYgTlNCdW5kbGUgKlBsYXRmb3JtQnVuZGxlOwotI2VsaWYgUExBVEZPUk0oUVQpCi10eXBlZGVm
IFFMaWJyYXJ5IFBsYXRmb3JtQnVuZGxlOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiA6
OkdNb2R1bGUqIFBsYXRmb3JtQnVuZGxlOwogI2VsaWYgUExBVEZPUk0oRUZMKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0Ns
aWVudC5jcHAKaW5kZXggOWI2Y2Q4NWYzY2QwOGFiOTQzNjdkMDI3MzM4YmE2OTk5OGYxZGY2Yy4u
NzE4Y2JiMTFhYjE0NjcyMjVlMzIzYTUxMDFlNWU5N2M3MTBlYjYyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGll
bnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIERyYWdTb3VyY2VBY3Rpb24gV2ViRHJhZ0NsaWVudDo6
ZHJhZ1NvdXJjZUFjdGlvbk1hc2tGb3JQb2ludChjb25zdCBJbnRQb2ludCYgLyp3CiAgICAgcmV0
dXJuIERyYWdTb3VyY2VBY3Rpb25Bbnk7CiB9CiAKLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExB
VEZPUk0oUVQpICYmICFQTEFURk9STShHVEspCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRG
T1JNKEdUSykKIHZvaWQgV2ViRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiwgY29u
c3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIENsaXBib2FyZCosIEZyYW1lKiwgYm9vbCkK
IHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCBkNjVjYjI0NDA3MWFhNjRmNDRhYjI4
ZjUyNTdkYTNiY2JmYWM2YmM4Li5jODIwMzI1Y2RhNjU3ZGZlNWExZjBmNGQ4ODI1YWFhM2UyYjA5
NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC01MSwxMiArNTEsNiBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJUeXBpbmdHZXN0
dXJlSW5kaWNhdG9yLmg+CiAKLSNpZiBQTEFURk9STShRVCkKLSNpbmNsdWRlIDxRQ2xpcGJvYXJk
PgotI2luY2x1ZGUgPFFHdWlBcHBsaWNhdGlvbj4KLSNpbmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9h
cmQuaD4KLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKQEAgLTE5NywyMiArMTkxLDExIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKEZyYW1lKiBmcmFtZSkKIAogICAgIG1fcGFnZS0+
ZGlkQ2hhbmdlU2VsZWN0aW9uKCk7CiAKLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFU
KQorI2lmIFBMQVRGT1JNKEdUSykKICAgICB1cGRhdGVHbG9iYWxTZWxlY3Rpb24oZnJhbWUpOwog
I2VuZGlmCiB9CiAKLSNpZiBQTEFURk9STShRVCkKLQotLy8gRklYTUU6IFVzZSB0aGlzIGZ1bmN0
aW9uIGZvciBvdGhlciBYMTEtYmFzZWQgcGxhdGZvcm1zIHRoYXQgbmVlZCB0byBtYW51YWxseSB1
cGRhdGUgdGhlIGdsb2JhbCBzZWxlY3Rpb24uCi12b2lkIFdlYkVkaXRvckNsaWVudDo6dXBkYXRl
R2xvYmFsU2VsZWN0aW9uKEZyYW1lKiBmcmFtZSkKLXsKLSAgICBpZiAoc3VwcG9ydHNHbG9iYWxT
ZWxlY3Rpb24oKSAmJiBmcmFtZS0+c2VsZWN0aW9uKCkuaXNSYW5nZSgpKQotICAgICAgICBQYXN0
ZWJvYXJkOjpjcmVhdGVGb3JHbG9iYWxTZWxlY3Rpb24oKS0+d3JpdGVTZWxlY3Rpb24oZnJhbWUt
PnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIGZyYW1lLT5lZGl0b3IoKS5j
YW5TbWFydENvcHlPckRlbGV0ZSgpLCBmcmFtZSk7Ci19Ci0KLSNlbmRpZgotCiB2b2lkIFdlYkVk
aXRvckNsaWVudDo6ZGlkRW5kRWRpdGluZygpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIFdlYlZpZXdEaWRFbmRFZGl0aW5nTm90aWZpY2F0aW9uLCAoQVNDSUlMaXRlcmFsKCJX
ZWJWaWV3RGlkRW5kRWRpdGluZ05vdGlmaWNhdGlvbiIpKSk7CkBAIC01MDQsMTEgKzQ4Nyw2IEBA
IHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXVEY6OlBhc3NS
ZWZQdHI8VGV4dENoZWNraW5nUmVxdWVzCiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpCiB7Ci0jaWYgUExBVEZPUk0oUVQpCi0gICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkpOwotI2Vs
c2UKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViRWRpdG9yQ2xp
ZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCkBAIC01MTgsOSArNDk2LDcgQEAgdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIAogYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OnN1cHBvcnRzR2xvYmFsU2VsZWN0aW9uKCkKIHsKLSNpZiBQTEFURk9STShRVCkg
JiYgIWRlZmluZWQoUVRfTk9fQ0xJUEJPQVJEKQotICAgIHJldHVybiBxQXBwLT5jbGlwYm9hcmQo
KS0+c3VwcG9ydHNTZWxlY3Rpb24oKTsKLSNlbGlmIFBMQVRGT1JNKEdUSykgJiYgUExBVEZPUk0o
WDExKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgUExBVEZPUk0oWDExKQogICAgIHJldHVybiB0cnVl
OwogI2Vsc2UKICAgICAvLyBGSVhNRTogUmV0dXJuIHRydWUgb24gb3RoZXIgWDExIHBsYXRmb3Jt
cyB3aGVuIHRoZXkgc3VwcG9ydCBnbG9iYWwgc2VsZWN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
aW5kZXggZTRhZWFmZWMwZjg1MDZjYmVkMWUyZjhkNmFkMTVkODg3MmRhY2E1Yi4uZjE3MWJlMmMx
MTU2MWE0OTgwM2NlMDBjZDMzOTI1YmY4ZDhjNmI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBA
IC0xMjcsOCArMTI3LDYgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShHVEspCiAgICAgYm9vbCBl
eGVjdXRlUGVuZGluZ0VkaXRvckNvbW1hbmRzKFdlYkNvcmU6OkZyYW1lKiwgVmVjdG9yPFdURjo6
U3RyaW5nPiwgYm9vbCk7CiAgICAgdm9pZCBnZXRFZGl0b3JDb21tYW5kc0ZvcktleUV2ZW50KGNv
bnN0IFdlYkNvcmU6OktleWJvYXJkRXZlbnQqLCBWZWN0b3I8V1RGOjpTdHJpbmc+Jik7Ci0jZW5k
aWYKLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKQogICAgIHZvaWQgdXBkYXRlR2xv
YmFsU2VsZWN0aW9uKFdlYkNvcmU6OkZyYW1lKik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAppbmRleCBiYWYzN2JjMDJhYzg0MThlY2QxODgwZTZkOTlhNGE4MTQw
NjZiM2QwLi5hOGRiNjA3ZmFiNDNkZmM2NzdhMDYxMzE2MDY4YTFhZGIwMDIwN2ZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTA1NywxMyArMTA1Nyw2IEBAIGJvb2wg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEZhbGxCYWNrKGNvbnN0IFJlc291cmNlRXJyb3Im
IGVycm9yKQogICAgIGlmIChlcnJvci5lcnJvckNvZGUoKSA9PSBwbHVnaW5XaWxsSGFuZGxlTG9h
ZEVycm9yLmVycm9yQ29kZSgpICYmIGVycm9yLmRvbWFpbigpID09IHBsdWdpbldpbGxIYW5kbGVM
b2FkRXJyb3IuZG9tYWluKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotI2lmIFBMQVRGT1JN
KFFUKQotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgUmVzb3VyY2VFcnJvciwgZXJyb3JJ
bnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZSwgKHRoaXMtPmludGVycnVwdGVkRm9yUG9saWN5Q2hh
bmdlRXJyb3IoUmVzb3VyY2VSZXF1ZXN0KCkpKSk7Ci0KLSAgICBpZiAoZXJyb3IuZXJyb3JDb2Rl
KCkgPT0gZXJyb3JJbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZS5lcnJvckNvZGUoKSAmJiBlcnJv
ci5kb21haW4oKSA9PSBlcnJvckludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlLmRvbWFpbigpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLQogICAgIHJldHVybiB0cnVlOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBv
cHVwTWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlBvcHVwTWVudS5jcHAKaW5kZXggMjhhZmEyOGNmYmQ4OGVkNzZiZGZiZDUxNjA1ZThmMGQwZjE2
OGM0Mi4uYjYyZDhkMjQ5ZjEyMDkzMDJmZTQwNWZhMTdlYmY0YzRiZmEzN2RiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9w
dXBNZW51LmNwcApAQCAtNTksMTQgKzU5LDkgQEAgdm9pZCBXZWJQb3B1cE1lbnU6OmRpZENoYW5n
ZVNlbGVjdGVkSW5kZXgoaW50IG5ld0luZGV4KQogICAgIGlmICghbV9wb3B1cENsaWVudCkKICAg
ICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oUVQpCi0gICAgaWYgKG5ld0luZGV4ID49IDAp
Ci0gICAgICAgIG1fcG9wdXBDbGllbnQtPmxpc3RCb3hTZWxlY3RJdGVtKG5ld0luZGV4LCBtX3Bv
cHVwQ2xpZW50LT5tdWx0aXBsZSgpLCBmYWxzZSk7Ci0jZWxzZQogICAgIG1fcG9wdXBDbGllbnQt
PnBvcHVwRGlkSGlkZSgpOwogICAgIGlmIChuZXdJbmRleCA+PSAwKQogICAgICAgICBtX3BvcHVw
Q2xpZW50LT52YWx1ZUNoYW5nZWQobmV3SW5kZXgpOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViUG9w
dXBNZW51OjpzZXRUZXh0Rm9ySW5kZXgoaW50IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmgKaW5kZXggNjMx
OWI5ZDU1NGRjM2ZjMjNmMTg5YzRmOTZhNjI0YWFhYTEyNGMxZi4uZDRjMGY5NzJjZmY2Njc0ZjUx
OTAxNmY3NDJhYjZmNmNjZjYwNmFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oCkBAIC00OCw3ICs0OCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tUGFnZSgpIHsgbV9wYWdlID0gMDsgfQog
ICAgIHZvaWQgZGlkQ2hhbmdlU2VsZWN0ZWRJbmRleChpbnQgbmV3SW5kZXgpOwogICAgIHZvaWQg
c2V0VGV4dEZvckluZGV4KGludCBuZXdJbmRleCk7Ci0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShRVCkKKyNpZiBQTEFURk9STShHVEspCiAgICAgV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50
KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX3BvcHVwQ2xpZW50OyB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDRjZjA4
OTg3MjUwZjA0YWNlZmM2ZWMzNTU5OTA3M2E0OTg2YjYwMTkuLmNlNGVmNjYzNDJjZmZmMjFhMTJk
NjE0NDI4MmRmMWUzMGFmMzZjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3MCwxNSArMTcwLDYgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oUVQpCi0jaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgSEFWRShRVFNFTlNPUlMpCi0jaW5jbHVkZSAiRGV2
aWNlTW90aW9uQ2xpZW50UXQuaCIKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudFF0
LmgiCi0jZW5kaWYKLSNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCi0jaW5jbHVkZSA8UU1pbWVE
YXRhPgotI2VuZGlmCi0KICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgog
I2luY2x1ZGUgIkRhdGFPYmplY3RHdGsuaCIKQEAgLTI1OCwxMSArMjQ5LDYgQEAgV2ViUGFnZTo6
V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCiAgICAgLCBtX3NldENhblN0YXJ0TWVkaWFUaW1lcihSdW5Mb29wOjptYWlu
KCksIHRoaXMsICZXZWJQYWdlOjpzZXRDYW5TdGFydE1lZGlhVGltZXJGaXJlZCkKICAgICAsIG1f
c2VuZERpZFVwZGF0ZUluV2luZG93U3RhdGVUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZX
ZWJQYWdlOjpkaWRVcGRhdGVJbldpbmRvd1N0YXRlVGltZXJGaXJlZCkKICAgICAsIG1fZmluZENv
bnRyb2xsZXIodGhpcykKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotI2lmIFBMQVRGT1JNKFFU
KQotICAgICwgbV90YXBIaWdobGlnaHRDb250cm9sbGVyKHRoaXMpCi0jZW5kaWYKLSNlbmRpZgog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgICwgbV9hY3RpdmVDb2xvckNob29zZXIo
MCkKICNlbmRpZgpAQCAtMzM1LDEwICszMjEsNiBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICNp
ZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgV2ViQ29yZTo6cHJvdmlkZUdlb2xvY2F0aW9uVG8o
bV9wYWdlLmdldCgpLCBuZXcgV2ViR2VvbG9jYXRpb25DbGllbnQodGhpcykpOwogI2VuZGlmCi0j
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oUVQpICYmIEhBVkUoUVRT
RU5TT1JTKQotICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VNb3Rpb25UbyhtX3BhZ2UuZ2V0KCks
IG5ldyBEZXZpY2VNb3Rpb25DbGllbnRRdCk7Ci0gICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9y
aWVudGF0aW9uVG8obV9wYWdlLmdldCgpLCBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRRdCk7
Ci0jZW5kaWYKICNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQogICAgIFdlYkNvcmU6OnByb3ZpZGVO
ZXR3b3JrSW5mb1RvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYk5ldHdvcmtJbmZvQ2xpZW50KHRoaXMp
KTsKICNlbmRpZgpAQCAtNjIyLDcxICs2MDQsNiBAQCBFZGl0b3JTdGF0ZSBXZWJQYWdlOjplZGl0
b3JTdGF0ZSgpIGNvbnN0CiAgICAgcmVzdWx0Lmhhc0NvbXBvc2l0aW9uID0gZnJhbWUuZWRpdG9y
KCkuaGFzQ29tcG9zaXRpb24oKTsKICAgICByZXN1bHQuc2hvdWxkSWdub3JlQ29tcG9zaXRpb25T
ZWxlY3Rpb25DaGFuZ2UgPSBmcmFtZS5lZGl0b3IoKS5pZ25vcmVDb21wb3NpdGlvblNlbGVjdGlv
bkNoYW5nZSgpOwogCi0jaWYgUExBVEZPUk0oUVQpCi0gICAgc2l6ZV90IGxvY2F0aW9uID0gMDsK
LSAgICBzaXplX3QgbGVuZ3RoID0gMDsKLQotICAgIEVsZW1lbnQqIHNlbGVjdGlvblJvb3QgPSBm
cmFtZS5zZWxlY3Rpb24oKS5yb290RWRpdGFibGVFbGVtZW50UmVzcGVjdGluZ1NoYWRvd1RyZWUo
KTsKLSAgICBFbGVtZW50KiBzY29wZSA9IHNlbGVjdGlvblJvb3QgPyBzZWxlY3Rpb25Sb290IDog
ZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCk7Ci0KLSAgICBpZiAoIXNjb3BlKQot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotCi0gICAgaWYgKGlzSFRNTElucHV0RWxlbWVudChzY29w
ZSkpIHsKLSAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSB0b0hUTUxJbnB1dEVsZW1l
bnQoc2NvcGUpOwotICAgICAgICBpZiAoaW5wdXQtPmlzVGVsZXBob25lRmllbGQoKSkKLSAgICAg
ICAgICAgIHJlc3VsdC5pbnB1dE1ldGhvZEhpbnRzIHw9IFF0OjpJbWhEaWFsYWJsZUNoYXJhY3Rl
cnNPbmx5OwotICAgICAgICBlbHNlIGlmIChpbnB1dC0+aXNOdW1iZXJGaWVsZCgpKQotICAgICAg
ICAgICAgcmVzdWx0LmlucHV0TWV0aG9kSGludHMgfD0gUXQ6OkltaERpZ2l0c09ubHk7Ci0gICAg
ICAgIGVsc2UgaWYgKGlucHV0LT5pc0VtYWlsRmllbGQoKSkgewotICAgICAgICAgICAgcmVzdWx0
LmlucHV0TWV0aG9kSGludHMgfD0gUXQ6OkltaEVtYWlsQ2hhcmFjdGVyc09ubHk7Ci0gICAgICAg
ICAgICByZXN1bHQuaW5wdXRNZXRob2RIaW50cyB8PSBRdDo6SW1oTm9BdXRvVXBwZXJjYXNlOwot
ICAgICAgICB9IGVsc2UgaWYgKGlucHV0LT5pc1VSTEZpZWxkKCkpIHsKLSAgICAgICAgICAgIHJl
c3VsdC5pbnB1dE1ldGhvZEhpbnRzIHw9IFF0OjpJbWhVcmxDaGFyYWN0ZXJzT25seTsKLSAgICAg
ICAgICAgIHJlc3VsdC5pbnB1dE1ldGhvZEhpbnRzIHw9IFF0OjpJbWhOb0F1dG9VcHBlcmNhc2U7
Ci0gICAgICAgIH0gZWxzZSBpZiAoaW5wdXQtPmlzUGFzc3dvcmRGaWVsZCgpKSB7Ci0gICAgICAg
ICAgICAvLyBTZXQgSW1oSGlkZGVuVGV4dCBmbGFnIGZvciBwYXNzd29yZCBmaWVsZHMuIFRoZSBR
dCBwbGF0Zm9ybQotICAgICAgICAgICAgLy8gaXMgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5n
IHdoaWNoIHdpZGdldCB3aWxsIHJlY2VpdmUgaW5wdXQKLSAgICAgICAgICAgIC8vIG1ldGhvZCBl
dmVudHMgZm9yIHBhc3N3b3JkIGZpZWxkcy4KLSAgICAgICAgICAgIHJlc3VsdC5pbnB1dE1ldGhv
ZEhpbnRzIHw9IFF0OjpJbWhIaWRkZW5UZXh0OwotICAgICAgICAgICAgcmVzdWx0LmlucHV0TWV0
aG9kSGludHMgfD0gUXQ6OkltaE5vQXV0b1VwcGVyY2FzZTsKLSAgICAgICAgICAgIHJlc3VsdC5p
bnB1dE1ldGhvZEhpbnRzIHw9IFF0OjpJbWhOb1ByZWRpY3RpdmVUZXh0OwotICAgICAgICAgICAg
cmVzdWx0LmlucHV0TWV0aG9kSGludHMgfD0gUXQ6OkltaFNlbnNpdGl2ZURhdGE7Ci0gICAgICAg
IH0KLSAgICB9Ci0KLSAgICBpZiAoc2VsZWN0aW9uUm9vdCkKLSAgICAgICAgcmVzdWx0LmVkaXRv
clJlY3QgPSBmcmFtZS52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3coc2VsZWN0aW9uUm9vdC0+cGl4
ZWxTbmFwcGVkQm91bmRpbmdCb3goKSk7Ci0KLSAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlOwotICAg
IGlmIChyZXN1bHQuaGFzQ29tcG9zaXRpb24gJiYgKHJhbmdlID0gZnJhbWUuZWRpdG9yKCkuY29t
cG9zaXRpb25SYW5nZSgpKSkgewotICAgICAgICBmcmFtZS5lZGl0b3IoKS5nZXRDb21wb3NpdGlv
blNlbGVjdGlvbihyZXN1bHQuYW5jaG9yUG9zaXRpb24sIHJlc3VsdC5jdXJzb3JQb3NpdGlvbik7
Ci0KLSAgICAgICAgcmVzdWx0LmNvbXBvc2l0aW9uUmVjdCA9IGZyYW1lLnZpZXcoKS0+Y29udGVu
dHNUb1dpbmRvdyhyYW5nZS0+Ym91bmRpbmdCb3goKSk7Ci0gICAgfQotCi0gICAgaWYgKCFyZXN1
bHQuaGFzQ29tcG9zaXRpb24gJiYgIXJlc3VsdC5zZWxlY3Rpb25Jc05vbmUgJiYgKHJhbmdlID0g
ZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuZmlyc3RSYW5nZSgpKSkgewotICAgICAgICBU
ZXh0SXRlcmF0b3I6OmdldExvY2F0aW9uQW5kTGVuZ3RoRnJvbVJhbmdlKHNjb3BlLCByYW5nZS5n
ZXQoKSwgbG9jYXRpb24sIGxlbmd0aCk7Ci0gICAgICAgIGJvb2wgYmFzZUlzRmlyc3QgPSBmcmFt
ZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5pc0Jhc2VGaXJzdCgpOwotCi0gICAgICAgIHJlc3Vs
dC5jdXJzb3JQb3NpdGlvbiA9IChiYXNlSXNGaXJzdCkgPyBsb2NhdGlvbiArIGxlbmd0aCA6IGxv
Y2F0aW9uOwotICAgICAgICByZXN1bHQuYW5jaG9yUG9zaXRpb24gPSAoYmFzZUlzRmlyc3QpID8g
bG9jYXRpb24gOiBsb2NhdGlvbiArIGxlbmd0aDsKLSAgICAgICAgcmVzdWx0LnNlbGVjdGVkVGV4
dCA9IHJhbmdlLT50ZXh0KCk7Ci0gICAgfQotCi0gICAgaWYgKHJhbmdlKQotICAgICAgICByZXN1
bHQuY3Vyc29yUmVjdCA9IGZyYW1lLnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhmcmFtZS5lZGl0
b3IoKS5maXJzdFJlY3RGb3JSYW5nZShyYW5nZS5nZXQoKSkpOwotCi0gICAgLy8gRklYTUU6IFdl
IHNob3VsZCBvbmx5IHRyYW5zZmVyIGlubmVyVGV4dCB3aGVuIGl0IGNoYW5nZXMgYW5kIGRvIHRo
aXMgb24gdGhlIFVJIHNpZGUuCi0gICAgaWYgKHJlc3VsdC5pc0NvbnRlbnRFZGl0YWJsZSAmJiAh
cmVzdWx0LmlzSW5QYXNzd29yZEZpZWxkKSB7Ci0gICAgICAgIHJlc3VsdC5zdXJyb3VuZGluZ1Rl
eHQgPSBzY29wZS0+aW5uZXJUZXh0KCk7Ci0gICAgICAgIGlmIChyZXN1bHQuaGFzQ29tcG9zaXRp
b24pIHsKLSAgICAgICAgICAgIC8vIFRoZSBhbmNob3IgaXMgYWx3YXlzIHRoZSBsZWZ0IHBvc2l0
aW9uIHdoZW4gdGhleSByZXByZXNlbnQgYSBjb21wb3NpdGlvbi4KLSAgICAgICAgICAgIHJlc3Vs
dC5zdXJyb3VuZGluZ1RleHQucmVtb3ZlKHJlc3VsdC5hbmNob3JQb3NpdGlvbiwgcmVzdWx0LmN1
cnNvclBvc2l0aW9uIC0gcmVzdWx0LmFuY2hvclBvc2l0aW9uKTsKLSAgICAgICAgfQotICAgIH0K
LSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHJlc3VsdC5jdXJzb3JSZWN0ID0gZnJh
bWUuc2VsZWN0aW9uKCkuYWJzb2x1dGVDYXJldEJvdW5kcygpOwogI2VuZGlmCkBAIC0xOTA0LDUy
ICsxODIxLDYgQEAgdm9pZCBXZWJQYWdlOjpyZXN0b3JlU2Vzc2lvbkFuZE5hdmlnYXRlVG9DdXJy
ZW50SXRlbShjb25zdCBTZXNzaW9uU3RhdGUmIHNlc3Npb24KIH0KIAogI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCi0jaWYgUExBVEZPUk0oUVQpCi12b2lkIFdlYlBhZ2U6OmhpZ2hsaWdodFBvdGVu
dGlhbEFjdGl2YXRpb24oY29uc3QgSW50UG9pbnQmIHBvaW50LCBjb25zdCBJbnRTaXplJiBhcmVh
KQotewotICAgIGlmIChwb2ludCA9PSBJbnRQb2ludDo6emVybygpKSB7Ci0gICAgICAgIC8vIEFu
IGVtcHR5IHBvaW50IGRlYWN0aXZhdGVzIHRoZSBoaWdobGlnaHRpbmcuCi0gICAgICAgIHRhcEhp
Z2hsaWdodENvbnRyb2xsZXIoKS5oaWRlSGlnaGxpZ2h0KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgRnJhbWUqIG1haW5mcmFtZSA9ICZtX3BhZ2UtPm1haW5GcmFtZSgpOwotICAgICAgICBOb2Rl
KiBhY3RpdmF0aW9uTm9kZSA9IDA7Ci0gICAgICAgIE5vZGUqIGFkanVzdGVkTm9kZSA9IDA7Ci0g
ICAgICAgIEludFBvaW50IGFkanVzdGVkUG9pbnQ7Ci0KLSNpZiBFTkFCTEUoVE9VQ0hfQURKVVNU
TUVOVCkKLSAgICAgICAgaWYgKCFtYWluZnJhbWUtPmV2ZW50SGFuZGxlcigpLmJlc3RDbGlja2Fi
bGVOb2RlRm9yVG91Y2hQb2ludChwb2ludCwgSW50U2l6ZShhcmVhLndpZHRoKCkgLyAyLCBhcmVh
LmhlaWdodCgpIC8gMiksIGFkanVzdGVkUG9pbnQsIGFkanVzdGVkTm9kZSkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSNlbHNlCi0gICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gbWFpbmZy
YW1lLT5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChtYWluZnJhbWUtPnZpZXco
KS0+d2luZG93VG9Db250ZW50cyhwb2ludCksIEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhp
dFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xpcHBpbmcgfCBI
aXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFkb3dDb250ZW50KTsKLSAgICAgICAgYWRqdXN0ZWRO
b2RlID0gcmVzdWx0LmlubmVyTm9kZSgpOwotI2VuZGlmCi0gICAgICAgIC8vIEZpbmQgdGhlIG5v
ZGUgdG8gaGlnaGxpZ2h0LiBUaGlzIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgbm9kZSByZXNwb25k
aW5nIHRoZSB0YXAgZ2VzdHVyZSwgYmVjYXVzZSBtYW55Ci0gICAgICAgIC8vIHBhZ2VzIGhhcyBh
IGdsb2JhbCBjbGljayBoYW5kbGVyIGFuZCB3ZSBkbyBub3Qgd2FudCB0byBoaWdobGlnaHQgdGhl
IGJvZHkuCi0gICAgICAgIGZvciAoTm9kZSogbm9kZSA9IGFkanVzdGVkTm9kZTsgbm9kZTsgbm9k
ZSA9IG5vZGUtPnBhcmVudE9yU2hhZG93SG9zdE5vZGUoKSkgewotICAgICAgICAgICAgaWYgKG5v
ZGUtPmlzRG9jdW1lbnROb2RlKCkgfHwgbm9kZS0+aXNGcmFtZU93bmVyRWxlbWVudCgpKQotICAg
ICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAvLyBXZSBhbHdheXMgaGlnaGxpZ2h0
IGZvY3VzYWJsZSAoZm9ybS1lbGVtZW50cyksIGltYWdlIGxpbmtzIG9yIGNvbnRlbnQtZWRpdGFi
bGUgZWxlbWVudHMuCi0gICAgICAgICAgICBpZiAoKG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0
b0VsZW1lbnQobm9kZSktPmlzTW91c2VGb2N1c2FibGUoKSkgfHwgbm9kZS0+aXNMaW5rKCkgfHwg
bm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKLSAgICAgICAgICAgICAgICBhY3RpdmF0aW9uTm9k
ZSA9IG5vZGU7Ci0gICAgICAgICAgICBlbHNlIGlmIChub2RlLT53aWxsUmVzcG9uZFRvTW91c2VD
bGlja0V2ZW50cygpKSB7Ci0gICAgICAgICAgICAgICAgLy8gSGlnaGxpZ2h0IGVsZW1lbnRzIHdp
dGggZGVmYXVsdCBtb3VzZS1jbGljayBoYW5kbGVycywgYnV0IGhpZ2hsaWdodCBvbmx5IGlubGlu
ZSBlbGVtZW50cyB3aXRoCi0gICAgICAgICAgICAgICAgLy8gc2NyaXB0ZWQgZXZlbnQtaGFuZGxl
cnMuCi0gICAgICAgICAgICAgICAgaWYgKCFub2RlLT5Ob2RlOjp3aWxsUmVzcG9uZFRvTW91c2VD
bGlja0V2ZW50cygpIHx8IChub2RlLT5yZW5kZXJlcigpICYmIG5vZGUtPnJlbmRlcmVyKCktPmlz
SW5saW5lKCkpKQotICAgICAgICAgICAgICAgICAgICBhY3RpdmF0aW9uTm9kZSA9IG5vZGU7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChhY3RpdmF0aW9uTm9kZSkKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChhY3RpdmF0aW9uTm9kZSkK
LSAgICAgICAgICAgIHRhcEhpZ2hsaWdodENvbnRyb2xsZXIoKS5oaWdobGlnaHQoYWN0aXZhdGlv
bk5vZGUpOwotICAgIH0KLX0KLSNlbmRpZgotCiBzdGF0aWMgYm9vbCBoYW5kbGVUb3VjaEV2ZW50
KGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIFBhZ2UqIHBhZ2UpCiB7CiAgICAgaWYg
KCFwYWdlLT5tYWluRnJhbWUoKS52aWV3KCkpCkBAIC0yNjY3LDE4ICsyNTM4LDEzIEBAIGJvb2wg
V2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0KQog
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIAotI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9S
TShHVEspCisjaWYgUExBVEZPUk0oR1RLKQogdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRy
b2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSBkcmFnRGF0YSkK
IHsKICAgICBpZiAoIW1fcGFnZSkgewogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihXZWJDb3JlOjpEcmFnU2Vzc2lvbigp
KSk7Ci0jaWYgUExBVEZPUk0oUVQpCi0gICAgICAgIFFNaW1lRGF0YSogZGF0YSA9IGNvbnN0X2Nh
c3Q8UU1pbWVEYXRhKj4oZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpOwotICAgICAgICBkZWxldGUg
ZGF0YTsKLSNlbGlmIFBMQVRGT1JNKEdUSykKICAgICAgICAgRGF0YU9iamVjdEd0ayogZGF0YSA9
IGNvbnN0X2Nhc3Q8RGF0YU9iamVjdEd0ayo+KGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKTsKICAg
ICAgICAgZGF0YS0+ZGVyZWYoKTsKLSNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0yNzA0LDEzICsyNTcwLDggQEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJB
Y3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSBkcmEKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogICAgIC8vIERyYWdEYXRhIGRvZXMgbm90IGRlbGV0
ZSBpdHMgcGxhdGZvcm1EYXRhIHNvIHdlIG5lZWQgdG8gZG8gdGhhdCBoZXJlLgotI2lmIFBMQVRG
T1JNKFFUKQotICAgIFFNaW1lRGF0YSogZGF0YSA9IGNvbnN0X2Nhc3Q8UU1pbWVEYXRhKj4oZHJh
Z0RhdGEucGxhdGZvcm1EYXRhKCkpOwotICAgIGRlbGV0ZSBkYXRhOwotI2VsaWYgUExBVEZPUk0o
R1RLKQogICAgIERhdGFPYmplY3RHdGsqIGRhdGEgPSBjb25zdF9jYXN0PERhdGFPYmplY3RHdGsq
PihkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKSk7CiAgICAgZGF0YS0+ZGVyZWYoKTsKLSNlbmRpZgog
fQogCiAjZWxzZQpAQCAtMzgwNiw3ICszNjY3LDcgQEAgYm9vbCBXZWJQYWdlOjpjYW5QbHVnaW5I
YW5kbGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICNlbmRpZgog
fQogCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEsp
CiBzdGF0aWMgRnJhbWUqIHRhcmdldEZyYW1lRm9yRWRpdGluZyhXZWJQYWdlKiBwYWdlKQogewog
ICAgIEZyYW1lJiB0YXJnZXRGcmFtZSA9IHBhZ2UtPmNvcmVQYWdlKCktPmZvY3VzQ29udHJvbGxl
cigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggOGNkYWZjNDRmYjQ2ZDUxODE4MDA4MGNhZjMyZjgyZjQ1ZjNj
YmM0My4uMGZiMWZlOTJmYmYzODkzYWVmMDNjMzkwMzRmMjIxMWZlNTJkYWZkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02NywxNiArNjcsNiBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAotI2lmIFBMQVRGT1JNKFFUKQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzUXQuaCIKLSNp
bmNsdWRlICJRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiUXROZXR3b3JrUmVw
bHkuaCIKLSNpbmNsdWRlICJRdE5ldHdvcmtSZXBseURhdGEuaCIKLSNpbmNsdWRlICJRdE5ldHdv
cmtSZXF1ZXN0RGF0YS5oIgotI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+Ci0jaW5jbHVkZSA8UU5l
dHdvcmtSZXF1ZXN0PgotI2VuZGlmCi0KICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpICYmIChQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkpCiAjaW5jbHVkZSAiV2ViUGFnZUFjY2Vzc2liaWxp
dHlPYmplY3QuaCIKICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CkBAIC0zOTEsOSAr
MzgxLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBXZWJFdmVudCogY3VycmVudEV2ZW50
KCk7CiAKICAgICBGaW5kQ29udHJvbGxlciYgZmluZENvbnRyb2xsZXIoKSB7IHJldHVybiBtX2Zp
bmRDb250cm9sbGVyOyB9Ci0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgUExBVEZPUk0oUVQp
Ci0gICAgVGFwSGlnaGxpZ2h0Q29udHJvbGxlciYgdGFwSGlnaGxpZ2h0Q29udHJvbGxlcigpIHsg
cmV0dXJuIG1fdGFwSGlnaGxpZ2h0Q29udHJvbGxlcjsgfQotI2VuZGlmCiAKICNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIGdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQpAQCAtNDUwLDcgKzQzNyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNvbW1pdFBhZ2VUcmFuc2l0aW9uVmlld3BvcnQoKTsKICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspCiAgICAgdm9p
ZCBzZXRDb21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIFZlY3RvcjxXZWJDb3JlOjpDb21w
b3NpdGlvblVuZGVybGluZT4gdW5kZXJsaW5lcywgdWludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIHVp
bnQ2NF90IHNlbGVjdGlvbkVuZCwgdWludDY0X3QgcmVwbGFjZW1lbnRSYW5nZVN0YXJ0LCB1aW50
NjRfdCByZXBsYWNlbWVudFJhbmdlRW5kKTsKICAgICB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihj
b25zdCBTdHJpbmcmIHRleHQsIGludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIGludDY0X3Qgc2VsZWN0
aW9uTGVuZ3RoKTsKICAgICB2b2lkIGNhbmNlbENvbXBvc2l0aW9uKCk7CkBAIC01MjQsNyArNTEx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJTZWxlY3Rpb24oKTsKIAogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCi0jaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspCiAgICAgdm9pZCBwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3Qg
YWN0aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSk7CiAjZWxzZQogICAgIHZvaWQgcGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50
UG9zaXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9uLCB1aW50NjRfdCBkcmFn
Z2luZ1NvdXJjZU9wZXJhdGlvbk1hc2ssIGNvbnN0IFdURjo6U3RyaW5nJiBkcmFnU3RvcmFnZU5h
bWUsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCBjb25z
dCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYpOwpAQCAtNTgyLDEyICs1NjksNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBjb250ZXh0TWVudVNob3dpbmcoKSB7IG1faXNTaG93aW5nQ29udGV4
dE1lbnUgPSB0cnVlOyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFFUKQotICAgIHZvaWQgcmVn
aXN0ZXJBcHBsaWNhdGlvblNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7Ci0gICAgdm9pZCBh
cHBsaWNhdGlvblNjaGVtZVJlcGx5KGNvbnN0IFF0TmV0d29ya1JlcGx5RGF0YSYpOwotICAgIHZv
aWQgcmVjZWl2ZWRBcHBsaWNhdGlvblNjaGVtZVJlcXVlc3QoY29uc3QgUU5ldHdvcmtSZXF1ZXN0
JiwgUXROZXR3b3JrUmVwbHkqKTsKLSAgICB2b2lkIHNldFVzZXJTY3JpcHRzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+Jik7Ci0jZW5kaWYKICAgICB2b2lkIHdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxF
dmVudCYpOwogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKICAgICB2b2lkIGdlc3R1cmVFdmVu
dChjb25zdCBXZWJHZXN0dXJlRXZlbnQmKTsKQEAgLTcyMSw5ICs3MDIsNiBAQCBwcml2YXRlOgog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgdm9pZCB0b3VjaEV2ZW50KGNvbnN0IFdlYlRv
dWNoRXZlbnQmKTsKICAgICB2b2lkIHRvdWNoRXZlbnRTeW5jRm9yVGVzdGluZyhjb25zdCBXZWJU
b3VjaEV2ZW50JiwgYm9vbCYgaGFuZGxlZCk7Ci0jaWYgUExBVEZPUk0oUVQpCi0gICAgdm9pZCBo
aWdobGlnaHRQb3RlbnRpYWxBY3RpdmF0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgYXJlYSk7Ci0jZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShD
T05URVhUX01FTlVTKQogICAgIHZvaWQgY29udGV4dE1lbnVIaWRkZW4oKSB7IG1faXNTaG93aW5n
Q29udGV4dE1lbnUgPSBmYWxzZTsgfQpAQCAtODA2LDEwICs3ODQsNiBAQCBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKEdUSykKICAgICB2b2lkIGZhaWxlZFRvU2hvd1BvcHVwTWVudSgpOwogI2VuZGlm
Ci0jaWYgUExBVEZPUk0oUVQpCi0gICAgdm9pZCBoaWRlUG9wdXBNZW51KCk7Ci0gICAgdm9pZCBz
ZWxlY3RlZEluZGV4KGludDMyX3QgbmV3SW5kZXgpOwotI2VuZGlmCiAKICAgICB2b2lkIGRpZENo
b29zZUZpbGVzRm9yT3BlblBhbmVsKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgdm9pZCBk
aWRDYW5jZWxGb3JPcGVuUGFuZWwoKTsKQEAgLTk1Niw5ICs5MzAsNiBAQCBwcml2YXRlOgogICAg
IEluamVjdGVkQnVuZGxlUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50IG1fbG9nRGlhZ25vc3Rp
Y01lc3NhZ2VDbGllbnQ7CiAKICAgICBGaW5kQ29udHJvbGxlciBtX2ZpbmRDb250cm9sbGVyOwot
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmIFBMQVRGT1JNKFFUKQotICAgIFRhcEhpZ2hsaWdo
dENvbnRyb2xsZXIgbV90YXBIaWdobGlnaHRDb250cm9sbGVyOwotI2VuZGlmCiAgICAgUGFnZU92
ZXJsYXlMaXN0IG1fcGFnZU92ZXJsYXlzOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKQEAgLTEw
MTUsOSArOTg2LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fd2lsbEdvVG9CYWNrRm9y
d2FyZEl0ZW1DYWxsYmFja0VuYWJsZWQ7CiAgICAgCi0jaWYgUExBVEZPUk0oUVQpCi0gICAgSGFz
aE1hcDxTdHJpbmcsIFF0TmV0d29ya1JlcGx5Kj4gbV9hcHBsaWNhdGlvblNjaGVtZVJlcGxpZXM7
Ci0jZW5kaWYKICNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKICAgICBXZWJDb3JlOjpQ
YWdlVmlzaWJpbGl0eVN0YXRlIG1fdmlzaWJpbGl0eVN0YXRlOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IGUwMmY0MmE4MTNjOWFlYmQzZThiNDJhMWJjMDZmMWY1Y2ZmMmYyMDIuLjZlZTdmMDM1MjMx
MTM4NDc3MTc2N2JiYjIxYzRjMGM4ODBkNzMyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00Myw5ICs0Myw2
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFRvdWNoRXZlbnQo
V2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2ZW50KQogICAgIFRvdWNoRXZlbnRTeW5jRm9yVGVzdGlu
ZyhXZWJLaXQ6OldlYlRvdWNoRXZlbnQgZXZlbnQpIC0+IChib29sIGhhbmRsZWQpCiAjZW5kaWYK
LSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiBQTEFURk9STShRVCkKLSAgICBIaWdobGlnaHRQ
b3RlbnRpYWxBY3RpdmF0aW9uKFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBXZWJDb3JlOjpJbnRT
aXplIGFyZWEpCi0jZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIERp
ZEVuZENvbG9yUGlja2VyKCkKQEAgLTc3LDExICs3NCw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogICAgIFJlbG9hZChib29sIHJlbG9hZEZyb21PcmlnaW4sIFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAg
U3RvcExvYWRpbmcoKQogCi0jaWYgUExBVEZPUk0oUVQpCi0gICAgQXBwbGljYXRpb25TY2hlbWVS
ZXBseShXZWJLaXQ6OlF0TmV0d29ya1JlcGx5RGF0YSByZXBseSkKLSAgICBSZWdpc3RlckFwcGxp
Y2F0aW9uU2NoZW1lKFdURjo6U3RyaW5nIHNjaGVtZSkKLSNlbmRpZgotCiAgICAgU3RvcExvYWRp
bmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIAogICAgIFJlc3RvcmVTZXNzaW9uKFdlYktp
dDo6U2Vzc2lvblN0YXRlIHN0YXRlKQpAQCAtMTYzLDEwICsxNTUsMTAgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgQ291bnRTdHJpbmdNYXRjaGVzKFdURjo6U3Ry
aW5nIHN0cmluZywgdWludDMyX3QgZmluZE9wdGlvbnMsIHVuc2lnbmVkIG1heE1hdGNoQ291bnQp
CiAKICAgICAjIERyYWcgYW5kIGRyb3AuCi0jaWYgKFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShH
VEspKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKICAgICBQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3Qg
YWN0aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSBkcmFnRGF0YSkKICNlbmRpZgotI2lmICFQTEFURk9S
TShRVCkgJiYgIVBMQVRGT1JNKEdUSykgJiYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNpZiAhUExB
VEZPUk0oR1RLKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIFBlcmZvcm1EcmFnQ29udHJv
bGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0
aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3QgZHJhZ2dpbmdT
b3VyY2VPcGVyYXRpb25NYXNrLCBXVEY6OlN0cmluZyBkcmFnU3RvcmFnZU5hbWUsIHVpbnQzMl90
IGZsYWdzLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5IHNhbmRib3hFeHRl
bnNpb25zRm9yVXBsb2FkKQogI2VuZGlmCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKQEAgLTE3
OSwxMSArMTcxLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIEZhaWxlZFRvU2hvd1BvcHVwTWVudSgpCiAjZW5kaWYKLSNpZiBQ
TEFURk9STShRVCkKLSAgICBIaWRlUG9wdXBNZW51KCkKLSAgICBTZWxlY3RlZEluZGV4KGludDMy
X3QgbmV3SW5kZXgpCi0jZW5kaWYKLSAgICAKKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQog
ICAgICMgQ29udGV4dCBtZW51LgogICAgIERpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1l
bnUoV2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1EYXRhIG1lbnVJdGVtKQpAQCAtMjUzLDcgKzI0
MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIENvbW1pdFBh
Z2VUcmFuc2l0aW9uVmlld3BvcnQoKQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShRVCkgfHwgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykKICAgICBTZXRDb21wb3NpdGlvbihXVEY6OlN0
cmluZyB0ZXh0LCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4gdW5k
ZXJsaW5lcywgdWludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIHVpbnQ2NF90IHNlbGVjdGlvbkVuZCwg
dWludDY0X3QgcmVwbGFjZW1lbnRSYW5nZVN0YXJ0LCB1aW50NjRfdCByZXBsYWNlbWVudFJhbmdl
RW5kKQogICAgIENvbmZpcm1Db21wb3NpdGlvbihXVEY6OlN0cmluZyB0ZXh0LCBpbnQ2NF90IHNl
bGVjdGlvblN0YXJ0LCBpbnQ2NF90IHNlbGVjdGlvbkxlbmd0aCkKICAgICBDYW5jZWxDb21wb3Np
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAzN2E4
YjQxNGRkMDc5MzM2MmRkYmM4OGZiYzU4MzEwMjJhZjlkYjA5Li5iYjhmMmRiYTg5NDU3ZWY2OTc0
YjlmNjE1MDU2ZjE0NTI3ZTUxNWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTE1Niw5ICsxNTYsNiBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAg
ICAsIG1fY2xlYXJSZXNvdXJjZUNhY2hlc0Rpc3BhdGNoR3JvdXAoMCkKICNlbmRpZgogICAgICwg
bV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKGZhbHNlKQotI2lmIFBMQVRGT1JNKFFUKQotICAg
ICwgbV9uZXR3b3JrQWNjZXNzTWFuYWdlcigwKQotI2VuZGlmCiAgICAgLCBtX3RleHRDaGVja2Vy
U3RhdGUoKQogICAgICwgbV9pY29uRGF0YWJhc2VQcm94eShuZXcgV2ViSWNvbkRhdGFiYXNlUHJv
eHkodGhpcykpCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKQEAgLTEwMzcsMTMgKzEwMzQs
NiBAQCB2b2lkIFdlYlByb2Nlc3M6OmNhbmNlbERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQp
CiAgICAgZG93bmxvYWRNYW5hZ2VyKCkuY2FuY2VsRG93bmxvYWQoZG93bmxvYWRJRCk7CiB9CiAK
LSNpZiBQTEFURk9STShRVCkKLXZvaWQgV2ViUHJvY2Vzczo6c3RhcnRUcmFuc2Zlcih1aW50NjRf
dCBkb3dubG9hZElELCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uKQotewotICAgIGRvd25sb2Fk
TWFuYWdlcigpLnN0YXJ0VHJhbnNmZXIoZG93bmxvYWRJRCwgZGVzdGluYXRpb24pOwotfQotI2Vu
ZGlmCi0KIHZvaWQgV2ViUHJvY2Vzczo6c2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxh
ZykKIHsKICAgICBXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZh
Y2VBY2Nlc3NpYmlsaXR5KGZsYWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAppbmRleCA2ZDQ3M2MzZTRkNTdhOTUzYTc5YTk4Mzg4ODNkNzY4NDc4NGQzYTIyLi5iZDg4MjAx
MjE4OWUxM2ZlYjJkM2VjOTA5MWE5MDA0YmI5ZDk2ZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaApAQCAtNDMsMTIgKzQzLDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9taWNTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAK
LSNpZiBQTEFURk9STShRVCkKLVFUX0JFR0lOX05BTUVTUEFDRQotY2xhc3MgUU5ldHdvcmtBY2Nl
c3NNYW5hZ2VyOwotUVRfRU5EX05BTUVTUEFDRQotI2VuZGlmCi0KICNpZiBQTEFURk9STShNQUMp
CiAjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNlbmRpZgpAQCAtMTM5LDEwICsxMzMs
NiBAQCBwdWJsaWM6CiAgICAgY29uc3QgVGV4dENoZWNrZXJTdGF0ZSYgdGV4dENoZWNrZXJTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dENoZWNrZXJTdGF0ZTsgfQogICAgIERvd25sb2FkTWFu
YWdlciYgZG93bmxvYWRNYW5hZ2VyKCk7CiAKLSNpZiBQTEFURk9STShRVCkKLSAgICBRTmV0d29y
a0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkgeyByZXR1cm4gbV9uZXR3b3Jr
QWNjZXNzTWFuYWdlcjsgfQotI2VuZGlmCi0KICAgICB2b2lkIGNsZWFyUmVzb3VyY2VDYWNoZXMo
UmVzb3VyY2VDYWNoZXNUb0NsZWFyID0gQWxsUmVzb3VyY2VDYWNoZXMpOwogICAgIAogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtMjE1LDkgKzIwNSw2IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCB1aW50NjRfdCBp
bml0aWF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2
b2lkIGNhbmNlbERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQpOwotI2lmIFBMQVRGT1JNKFFU
KQotICAgIHZvaWQgc3RhcnRUcmFuc2Zlcih1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uKTsKLSNlbmRpZgogCiAgICAgdm9pZCBzZXRUZXh0Q2hlY2tlclN0YXRl
KGNvbnN0IFRleHRDaGVja2VyU3RhdGUmKTsKICAgICAKQEAgLTI4NCwxMCArMjcxLDYgQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwogCi0jaWYgUExB
VEZPUk0oUVQpCi0gICAgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBtX25ldHdvcmtBY2Nlc3NNYW5h
Z2VyOwotI2VuZGlmCi0KICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJGcmFtZSo+IG1fZnJhbWVN
YXA7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIE93blB0cjxXZWJQcm9jZXNz
U3VwcGxlbWVudD4sIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgppbmRleCA5ODEyNjg0Njc4MGZiZTYyZjY2YTc3N2RlZDdlZTJiY2FmZmYxNTAzLi41OWJjZTYz
NjI2ODBjNmIyNjExYzBlM2U2N2E0OTk1YmJjZDQ3YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC02Niw5ICs2Niw2IEBAIG1l
c3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgICMgdHdvIG1lc3NhZ2Vz
LgogICAgIERvd25sb2FkUmVxdWVzdCh1aW50NjRfdCBkb3dubG9hZElELCB1aW50NjRfdCBpbml0
aWF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCkKICAgICBDYW5j
ZWxEb3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElEKQotI2lmIFBMQVRGT1JNKFFUKQotICAgIFN0
YXJ0VHJhbnNmZXIodWludDY0X3QgZG93bmxvYWRJRCwgV1RGOjpTdHJpbmcgZGVzdGluYXRpb24p
Ci0jZW5kaWYKIAogICAgIFNldFRleHRDaGVja2VyU3RhdGUoV2ViS2l0OjpUZXh0Q2hlY2tlclN0
YXRlIHRleHRDaGVja2VyU3RhdGUpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL2NvbmZp
Zy5oIGIvU291cmNlL1dlYktpdDIvY29uZmlnLmgKaW5kZXggZWY0MWRjMjY1NDZhODlhYjM1ZmEw
ZWE4OWMwZTMwMmQ4NGE0NTc3Zi4uZTgzMDY1OTkwMzNlZTViZmI2YWUwNTU4NmMzOGI4YzI0NGU3
MzA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvY29uZmlnLmgKKysrIGIvU291cmNlL1dl
YktpdDIvY29uZmlnLmgKQEAgLTY5LDkgKzY5LDcgQEAgc3RhdGljIGNvbnN0IHR5cGUmIG5hbWUo
KSBcCiAjZGVmaW5lIF9XSU5TT0NLQVBJXyAvKiBQcmV2ZW50IGluY2x1c2lvbiBvZiB3aW5zb2Nr
LmggaW4gd2luZG93cy5oICovCiAjZW5kaWYKIAotI2lmICFQTEFURk9STShRVCkKICNpbmNsdWRl
IDxXZWJDb3JlL2NvbmZpZy5oPgotI2VuZGlmCiAjaW5jbHVkZSA8d2luZG93cy5oPgogCiAjaWYg
VVNFKENHKQpAQCAtOTUsOCArOTMsNiBAQCBzdGF0aWMgY29uc3QgdHlwZSYgbmFtZSgpIFwKICNk
ZWZpbmUgUExVR0lOX0FSQ0hJVEVDVFVSRV9NQUMgMQogI2VsaWYgKFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oRUZMKSkgJiYgKE9TKFVOSVgpICYmICFPUyhNQUNfT1NfWCkpICYmIFBMQVRGT1JN
KFgxMSkKICNkZWZpbmUgUExVR0lOX0FSQ0hJVEVDVFVSRV9YMTEgMQotI2VsaWYgUExBVEZPUk0o
UVQpCi0vLyBRdCBoYW5kbGVzIHRoaXMgZmVhdHVyZXMucHJmCiAjZWxzZQogI2RlZmluZSBQTFVH
SU5fQVJDSElURUNUVVJFX1VOU1VQUE9SVEVEIDEKICNlbmRpZgpAQCAtMTA1LDcgKzEwMSw3IEBA
IHN0YXRpYyBjb25zdCB0eXBlJiBuYW1lKCkgXAogI2RlZmluZSBQTFVHSU5fQVJDSElURUNUVVJF
KEFSQ0gpIChkZWZpbmVkIFBMVUdJTl9BUkNISVRFQ1RVUkVfIyNBUkNIICYmIFBMVUdJTl9BUkNI
SVRFQ1RVUkVfIyNBUkNIKQogCiAjaWZuZGVmIEVOQUJMRV9JTlNQRUNUT1JfU0VSVkVSCi0jaWYg
RU5BQkxFKElOU1BFQ1RPUikgJiYgKFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKEVGTCkpCisjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgKFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oRUZMKSkKICNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9TRVJWRVIgMQogI2VuZGlm
CiAjZW5kaWYK
</data>
<flag name="review"
          id="235626"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>