<?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>182505</bug_id>
          
          <creation_ts>2018-02-05 13:01:37 -0800</creation_ts>
          <short_desc>Web Inspector: protocol generator should automatically deduce the correct include style to use</short_desc>
          <delta_ts>2018-02-06 15:11:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>182347</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1396481</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2018-02-05 13:01:37 -0800</bug_when>
    <thetext>The builtins generator does this, copying that approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396527</commentid>
    <comment_count>1</comment_count>
      <attachid>333121</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2018-02-05 14:01:43 -0800</bug_when>
    <thetext>Created attachment 333121
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396530</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-05 14:03:14 -0800</bug_when>
    <thetext>This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396531</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-05 14:03:28 -0800</bug_when>
    <thetext>Attachment 333121 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:70:  whitespace before &apos;]&apos;  [pep8/E202] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:68:  [CppFrontendDispatcherHeaderGenerator._generate_secondary_header_includes] Instance of &apos;CppFrontendDispatcherHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:68:  [CppFrontendDispatcherHeaderGenerator._generate_secondary_header_includes] Instance of &apos;CppFrontendDispatcherHeaderGenerator&apos; has no &apos;protocol_name&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:73:  [CppFrontendDispatcherHeaderGenerator._generate_secondary_header_includes] Instance of &apos;CppFrontendDispatcherHeaderGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:48:  whitespace before &apos;}&apos;  [pep8/E202] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:62:  [CppAlternateBackendDispatcherHeaderGenerator._generate_secondary_header_includes] Instance of &apos;CppAlternateBackendDispatcherHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:64:  [CppAlternateBackendDispatcherHeaderGenerator._generate_secondary_header_includes] Instance of &apos;CppAlternateBackendDispatcherHeaderGenerator&apos; has no &apos;protocol_name&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:69:  [CppAlternateBackendDispatcherHeaderGenerator._generate_secondary_header_includes] Instance of &apos;CppAlternateBackendDispatcherHeaderGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:76:  whitespace before &apos;]&apos;  [pep8/E202] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:74:  [CppBackendDispatcherHeaderGenerator._generate_secondary_header_includes] Instance of &apos;CppBackendDispatcherHeaderGenerator&apos; has no &apos;model&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:74:  [CppBackendDispatcherHeaderGenerator._generate_secondary_header_includes] Instance of &apos;CppBackendDispatcherHeaderGenerator&apos; has no &apos;protocol_name&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:79:  [CppBackendDispatcherHeaderGenerator._generate_secondary_header_includes] Instance of &apos;CppBackendDispatcherHeaderGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py:80:  whitespace before &apos;]&apos;  [pep8/E202] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_header.py:83:  [CppProtocolTypesHeaderGenerator._generate_secondary_header_includes] Instance of &apos;CppProtocolTypesHeaderGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:83:  [CppProtocolTypesImplementationGenerator._generate_secondary_header_includes] Instance of &apos;CppProtocolTypesImplementationGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:68:  whitespace before &apos;]&apos;  [pep8/E202] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:71:  [CppFrontendDispatcherImplementationGenerator._generate_secondary_header_includes] Instance of &apos;CppFrontendDispatcherImplementationGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:79:  whitespace before &apos;]&apos;  [pep8/E202] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:82:  [CppBackendDispatcherImplementationGenerator._generate_secondary_header_includes] Instance of &apos;CppBackendDispatcherImplementationGenerator&apos; has no &apos;generate_includes_from_entries&apos; member  [pylint/E1101] [5]
Total errors found: 19 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396624</commentid>
    <comment_count>4</comment_count>
      <attachid>333121</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2018-02-05 17:16:26 -0800</bug_when>
    <thetext>Comment on attachment 333121
Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:82
&gt; +        return self.generate_includes_from_entries(header_includes)

Should this be: return &apos;\n&apos;.join(self.generate_includes_from_entries(header_includes))?

If everyone does the join, maybe build that into the base function to reduce the client duplication?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396956</commentid>
    <comment_count>5</comment_count>
      <attachid>333121</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2018-02-06 14:46:29 -0800</bug_when>
    <thetext>Comment on attachment 333121
Proposed Fix

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

&gt;&gt; Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:82
&gt;&gt; +        return self.generate_includes_from_entries(header_includes)
&gt; 
&gt; Should this be: return &apos;\n&apos;.join(self.generate_includes_from_entries(header_includes))?
&gt; 
&gt; If everyone does the join, maybe build that into the base function to reduce the client duplication?

This is the one counterexample where we need to add the guarded alternate dispatcher includes in the same part of the template, so they aren&apos;t joined until all the lines have been added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396965</commentid>
    <comment_count>6</comment_count>
      <attachid>333121</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-06 15:10:58 -0800</bug_when>
    <thetext>Comment on attachment 333121
Proposed Fix

Clearing flags on attachment: 333121

Committed r228196: &lt;https://trac.webkit.org/changeset/228196&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396966</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-06 15:10:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396967</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-06 15:11:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/37290748&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333121</attachid>
            <date>2018-02-05 14:01:43 -0800</date>
            <delta_ts>2018-02-06 15:10:58 -0800</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-182505-20180205140143.patch</filename>
            <type>text/plain</type>
            <size>58163</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3OTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
OGMxNzQzZTkzN2M1MzgxZTMzOGRmNWQ1NjJkOTRiNzVmNDI5OGUyLi5lYzAzYTQwNTE4MTMzNTBl
Yjc5NWRkZWI3N2U2MjEwNDg0ZDBmNmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OCBAQAorMjAxOC0wMi0wNSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm90b2NvbCBnZW5lcmF0b3Igc2hvdWxkIGF1dG9tYXRp
Y2FsbHkgZGVkdWNlIHRoZSBjb3JyZWN0IGluY2x1ZGUgc3R5bGUgdG8gdXNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI1MDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgdGhlIGdlbmVy
YXRlZCBpbXBvcnRzIHVzZSBhIG1peCBvZiBzeXN0ZW0gaGVhZGVyIGltcG9ydHMgKHBvd2VyZWQg
YnkgZm9yd2FyZGluZyBoZWFkZXJzKQorICAgICAgICBhbmQgZnJhbWV3b3JrLXN0eWxlIGluY2x1
ZGVzLiBTaW5jZSBmb3J3YXJkaW5nIGhlYWRlcnMgYXJlIGdvaW5nIGF3YXksIHRoaXMgcGF0Y2gg
c3RvcHMKKyAgICAgICAgdXNpbmcgc3lzdGVtIGhlYWRlciBpbmNsdWRlcyBmb3IgaGVhZGVycyB0
aGF0IGFyZSBKYXZhU2NyaXB0Q29yZSBwcml2YXRlIGhlYWRlcnMuIEluc3RlYWQsCisgICAgICAg
IHVzZSBlaXRoZXIgYSByZWxhdGl2ZSBpbmNsdWRlIG9yIGEgZnJhbWV3b3JrIGluY2x1ZGUuCisK
KyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9hbHRlcm5h
dGVfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weToKKyAgICAgICAgKENwcEFsdGVybmF0ZUJh
Y2tlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAg
IChDcHBBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRvcik6CisgICAgICAg
IChDcHBBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRvci5fZ2VuZXJhdGVf
c2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcyk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weToKKyAgICAg
ICAgKENwcEJhY2tlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6
CisgICAgICAgIChDcHBCYWNrZW5kRGlzcGF0Y2hlckhlYWRlckdlbmVyYXRvci5fZ2VuZXJhdGVf
c2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcyk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5
OgorICAgICAgICAoQ3BwQmFja2VuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvci5n
ZW5lcmF0ZV9vdXRwdXQpOgorICAgICAgICAoQ3BwQmFja2VuZERpc3BhdGNoZXJJbXBsZW1lbnRh
dGlvbkdlbmVyYXRvci5fZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcyk6CisgICAg
ICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfZnJvbnRlbmRfZGlz
cGF0Y2hlcl9oZWFkZXIucHk6CisgICAgICAgIChDcHBGcm9udGVuZERpc3BhdGNoZXJIZWFkZXJH
ZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAgICAgKENwcEZyb250ZW5kRGlzcGF0Y2hl
ckhlYWRlckdlbmVyYXRvci5fZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfZnJvbnRlbmRf
ZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weToKKyAgICAgICAgKENwcEZyb250ZW5kRGlzcGF0
Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yLmdlbmVyYXRlX291dHB1dCk6CisgICAgICAgIChD
cHBGcm9udGVuZERpc3BhdGNoZXJJbXBsZW1lbnRhdGlvbkdlbmVyYXRvci5fZ2VuZXJhdGVfc2Vj
b25kYXJ5X2hlYWRlcl9pbmNsdWRlcyk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5OgorICAgICAgICAoQ3Bw
UHJvdG9jb2xUeXBlc0hlYWRlckdlbmVyYXRvci5nZW5lcmF0ZV9vdXRwdXQpOgorICAgICAgICAo
Q3BwUHJvdG9jb2xUeXBlc0hlYWRlckdlbmVyYXRvci5fZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRl
cl9pbmNsdWRlcyk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0
ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaW1wbGVtZW50YXRpb24ucHk6CisgICAgICAgIChDcHBQcm90
b2NvbFR5cGVzSW1wbGVtZW50YXRpb25HZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAg
ICAgKENwcFByb3RvY29sVHlwZXNJbXBsZW1lbnRhdGlvbkdlbmVyYXRvci5fZ2VuZXJhdGVfc2Vj
b25kYXJ5X2hlYWRlcl9pbmNsdWRlcyk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHk6CisgICAgICAg
IChPYmpDQmFja2VuZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3IpOgorICAgICAgICBDb252ZXJ0
IGV4aXN0aW5nIGhlYWRlciBsaXN0cyB0byB0aGUgbmV3IGVudHJpZXMgZm9ybWF0LCB3aGljaCBp
bmNsdWRlcyB0aGUKKyAgICAgICAgYWxsb3dhYmxlIHRhcmdldCBmcmFtZXdvcmtzIGFuZCB0aGUg
cmVsYXRpdmUgcGF0aCB0byB0aGUgaGVhZGVyLgorCisgICAgICAgICogaW5zcGVjdG9yL3Njcmlw
dHMvY29kZWdlbi9nZW5lcmF0b3IucHk6CisgICAgICAgIChHZW5lcmF0b3IuZ2VuZXJhdGVfaW5j
bHVkZXNfZnJvbV9lbnRyaWVzKToKKyAgICAgICAgQ29waWVkIGZyb20gdGhlIHNhbWUgaW4gdGhl
IGJ1aWx0aW5zIGNvZGUgZ2VuZXJhdG9yLiBJdCBzdGlsbCB3b3JrcyBncmVhdC4KKworICAgICAg
ICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2FsbC9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRo
LW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24t
cmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0
ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVz
dWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
ZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW4tYXZhaWxhYmlsaXR5
Lmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZhcnlpbmctY29tbWFuZC1zaXplcy5qc29uLXJlc3VsdDoK
KyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2VudW0t
dmFsdWVzLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dl
bmVyaWMvZXhwZWN0ZWQvZXZlbnRzLXdpdGgtb3B0aW9uYWwtcGFyYW1ldGVycy5qc29uLXJlc3Vs
dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2dl
bmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdDoKKyAgICAgICAg
KiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3NhbWUtdHlwZS1pZC1k
aWZmZXJlbnQtZG9tYWluLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvc2hhZG93ZWQtb3B0aW9uYWwtdHlwZS1zZXR0ZXJzLmpz
b24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1hbGlhc2VkLXByaW1pdGl2ZS10eXBlLmpzb24tcmVzdWx0
OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlw
ZS1kZWNsYXJhdGlvbi1hcnJheS10eXBlLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1lbnVtLXR5
cGUuanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJp
Yy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVzdWx0OgorICAg
ICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1yZXF1
aXJpbmctcnVudGltZS1jYXN0cy5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtd2l0aC1vcGVuLXBhcmFtZXRlcnMuanNv
bi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBl
Y3RlZC93b3JrZXItc3VwcG9ydGVkLWRvbWFpbnMuanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvaW9zL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBs
YXRmb3JtLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21h
Yy9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdDoKKyAg
ICAgICAgUmViYXNlbGluZS4KKwogMjAxOC0wMS0zMSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBKU0MgaW5jb3JyZWN0bHkgaW50ZXJwcmV0aW5nIHNjcmlwdCwg
c2V0cyBHbG9iYWwgUHJvcGVydHkgaW5zdGVhZCBvZiBHbG9iYWwgTGV4aWNhbCB2YXJpYWJsZSAo
TGl0ZXJhbFBhcnNlciAvIEpTT05QIHBhdGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYWx0ZXJuYXRlX2Jh
Y2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYWx0ZXJuYXRlX2JhY2tlbmRfZGlzcGF0
Y2hlcl9oZWFkZXIucHkKaW5kZXggODZlODY0OTc0NTM2ZmMwOTg2ZWYxZGU2MzUxMTUxZDA1N2Qy
NTBjZi4uZjZiZjg2ZGE5MmE0YjY1ZTk4ZWIxMDViOWNlMzY5NGQ0ZjE1ZDdkNyAxMDA3NTUKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJh
dGVfY3BwX2FsdGVybmF0ZV9iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9h
bHRlcm5hdGVfYmFja2VuZF9kaXNwYXRjaGVyX2hlYWRlci5weQpAQCAtNDQsMjQgKzQ0LDMwIEBA
IGNsYXNzIENwcEFsdGVybmF0ZUJhY2tlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJhdG9yKENwcEdl
bmVyYXRvcik6CiAgICAgICAgIHJldHVybiAnJXNBbHRlcm5hdGVCYWNrZW5kRGlzcGF0Y2hlcnMu
aCcgJSBzZWxmLnByb3RvY29sX25hbWUoKQogCiAgICAgZGVmIGdlbmVyYXRlX291dHB1dChzZWxm
KToKLSAgICAgICAgaGVhZGVycyA9IFsKLSAgICAgICAgICAgICciJXNQcm90b2NvbFR5cGVzLmgi
JyAlIHNlbGYucHJvdG9jb2xfbmFtZSgpLAotICAgICAgICAgICAgJzxpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRSb3V0ZXIuaD4nLAotICAgICAgICAgICAgJzxKYXZhU2NyaXB0Q29yZS9JbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPicsCi0gICAgICAgIF0KLQotICAgICAgICBoZWFkZXJf
YXJncyA9IHsKLSAgICAgICAgICAgICdpbmNsdWRlcyc6ICdcbicuam9pbihbJyNpbmNsdWRlICcg
KyBoZWFkZXIgZm9yIGhlYWRlciBpbiBoZWFkZXJzXSksCisgICAgICAgIHRlbXBsYXRlX2FyZ3Mg
PSB7CisgICAgICAgICAgICAnaW5jbHVkZXMnOiBzZWxmLl9nZW5lcmF0ZV9zZWNvbmRhcnlfaGVh
ZGVyX2luY2x1ZGVzKCkKICAgICAgICAgfQogCiAgICAgICAgIGRvbWFpbnMgPSBzZWxmLmRvbWFp
bnNfdG9fZ2VuZXJhdGUoKQogICAgICAgICBzZWN0aW9ucyA9IFtdCiAgICAgICAgIHNlY3Rpb25z
LmFwcGVuZChzZWxmLmdlbmVyYXRlX2xpY2Vuc2UoKSkKLSAgICAgICAgc2VjdGlvbnMuYXBwZW5k
KFRlbXBsYXRlKENwcFRlbXBsYXRlcy5BbHRlcm5hdGVEaXNwYXRjaGVyc0hlYWRlclByZWx1ZGUp
LnN1YnN0aXR1dGUoTm9uZSwgKipoZWFkZXJfYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFwcGVu
ZChUZW1wbGF0ZShDcHBUZW1wbGF0ZXMuQWx0ZXJuYXRlRGlzcGF0Y2hlcnNIZWFkZXJQcmVsdWRl
KS5zdWJzdGl0dXRlKE5vbmUsICoqdGVtcGxhdGVfYXJncykpCiAgICAgICAgIHNlY3Rpb25zLmFw
cGVuZCgnXG4nLmpvaW4oZmlsdGVyKE5vbmUsIG1hcChzZWxmLl9nZW5lcmF0ZV9oYW5kbGVyX2Rl
Y2xhcmF0aW9uc19mb3JfZG9tYWluLCBkb21haW5zKSkpKQotICAgICAgICBzZWN0aW9ucy5hcHBl
bmQoVGVtcGxhdGUoQ3BwVGVtcGxhdGVzLkFsdGVybmF0ZURpc3BhdGNoZXJzSGVhZGVyUG9zdGx1
ZGUpLnN1YnN0aXR1dGUoTm9uZSwgKipoZWFkZXJfYXJncykpCisgICAgICAgIHNlY3Rpb25zLmFw
cGVuZChUZW1wbGF0ZShDcHBUZW1wbGF0ZXMuQWx0ZXJuYXRlRGlzcGF0Y2hlcnNIZWFkZXJQb3N0
bHVkZSkuc3Vic3RpdHV0ZShOb25lLCAqKnRlbXBsYXRlX2FyZ3MpKQogICAgICAgICByZXR1cm4g
J1xuXG4nLmpvaW4oc2VjdGlvbnMpCiAKKyAgICAjIFByaXZhdGUgbWV0aG9kcy4KKworICAgIGRl
ZiBfZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcyhzZWxmKToKKyAgICAgICAgdGFy
Z2V0X2ZyYW1ld29ya19uYW1lID0gc2VsZi5tb2RlbCgpLmZyYW1ld29yay5uYW1lCisgICAgICAg
IGhlYWRlcl9pbmNsdWRlcyA9IFsKKyAgICAgICAgICAgIChbdGFyZ2V0X2ZyYW1ld29ya19uYW1l
XSwgKHRhcmdldF9mcmFtZXdvcmtfbmFtZSwgIiVzUHJvdG9jb2xUeXBlcy5oIiAlIHNlbGYucHJv
dG9jb2xfbmFtZSgpKSksCisgICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSJdLCAoIkphdmFT
Y3JpcHRDb3JlIiwgImluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oIikpLAorICAg
ICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiXSwgKCJKYXZhU2NyaXB0Q29yZSIsICJpbnNwZWN0
b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaCIpKSwKKyAgICAgICAgXQorCisgICAgICAg
IHJldHVybiAnXG4nLmpvaW4oc2VsZi5nZW5lcmF0ZV9pbmNsdWRlc19mcm9tX2VudHJpZXMoaGVh
ZGVyX2luY2x1ZGVzKSkKKwogICAgIGRlZiBfZ2VuZXJhdGVfaGFuZGxlcl9kZWNsYXJhdGlvbnNf
Zm9yX2RvbWFpbihzZWxmLCBkb21haW4pOgogICAgICAgICBjb21tYW5kcyA9IHNlbGYuY29tbWFu
ZHNfZm9yX2RvbWFpbihkb21haW4pCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNo
ZXJfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2Nv
ZGVnZW4vZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKaW5kZXggMGZj
ZTExYmIxOGE4NmVmZGJlMDJmODYxYzY4M2I5NDcxNjBmOTQzNS4uMDdkYzg2ZGY4YWM1ZjVjYWQx
MWEzOWQwMTU5NTJhMzM1YjgzNGM2MSAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hl
cl9oZWFkZXIucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKQEAgLTQ5
LDE1ICs0OSw5IEBAIGNsYXNzIENwcEJhY2tlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJhdG9yKENw
cEdlbmVyYXRvcik6CiAgICAgICAgIHJldHVybiBmaWx0ZXIobGFtYmRhIGRvbWFpbjogbGVuKHNl
bGYuY29tbWFuZHNfZm9yX2RvbWFpbihkb21haW4pKSA+IDAsIEdlbmVyYXRvci5kb21haW5zX3Rv
X2dlbmVyYXRlKHNlbGYpKQogCiAgICAgZGVmIGdlbmVyYXRlX291dHB1dChzZWxmKToKLSAgICAg
ICAgaGVhZGVycyA9IFsKLSAgICAgICAgICAgICciJXNQcm90b2NvbE9iamVjdHMuaCInICUgc2Vs
Zi5wcm90b2NvbF9uYW1lKCksCi0gICAgICAgICAgICAnPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci5oPicsCi0gICAgICAgICAgICAnPHd0Zi90ZXh0L1dURlN0cmluZy5oPidd
Ci0KICAgICAgICAgdHlwZWRlZnMgPSBbKCdTdHJpbmcnLCAnRXJyb3JTdHJpbmcnKV0KLQogICAg
ICAgICBoZWFkZXJfYXJncyA9IHsKLSAgICAgICAgICAgICdpbmNsdWRlcyc6ICdcbicuam9pbihb
JyNpbmNsdWRlICcgKyBoZWFkZXIgZm9yIGhlYWRlciBpbiBoZWFkZXJzXSksCisgICAgICAgICAg
ICAnaW5jbHVkZXMnOiBzZWxmLl9nZW5lcmF0ZV9zZWNvbmRhcnlfaGVhZGVyX2luY2x1ZGVzKCks
CiAgICAgICAgICAgICAndHlwZWRlZnMnOiAnXG4nLmpvaW4oWyd0eXBlZGVmICVzICVzOycgJSB0
eXBlZGVmIGZvciB0eXBlZGVmIGluIHR5cGVkZWZzXSksCiAgICAgICAgIH0KIApAQCAtNzUsNiAr
NjksMTUgQEAgY2xhc3MgQ3BwQmFja2VuZERpc3BhdGNoZXJIZWFkZXJHZW5lcmF0b3IoQ3BwR2Vu
ZXJhdG9yKToKIAogICAgICMgUHJpdmF0ZSBtZXRob2RzLgogCisgICAgZGVmIF9nZW5lcmF0ZV9z
ZWNvbmRhcnlfaGVhZGVyX2luY2x1ZGVzKHNlbGYpOgorICAgICAgICBoZWFkZXJfaW5jbHVkZXMg
PSBbCisgICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJLaXQiXSwgKHNlbGYubW9k
ZWwoKS5mcmFtZXdvcmsubmFtZSwgIiVzUHJvdG9jb2xPYmplY3RzLmgiICUgc2VsZi5wcm90b2Nv
bF9uYW1lKCkpKSwKKyAgICAgICAgICAgIChbIkphdmFTY3JpcHRDb3JlIiwgIldlYktpdCJdLCAo
IkphdmFTY3JpcHRDb3JlIiwgImluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5o
IikpLAorICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViS2l0Il0sICgiV1RGIiwg
Ind0Zi90ZXh0L1dURlN0cmluZy5oIikpCisgICAgICAgIF0KKworICAgICAgICByZXR1cm4gJ1xu
Jy5qb2luKHNlbGYuZ2VuZXJhdGVfaW5jbHVkZXNfZnJvbV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRl
cykpCisKICAgICBkZWYgX2dlbmVyYXRlX2FsdGVybmF0ZV9oYW5kbGVyX2ZvcndhcmRfZGVjbGFy
YXRpb25zX2Zvcl9kb21haW5zKHNlbGYsIGRvbWFpbnMpOgogICAgICAgICBpZiBub3QgZG9tYWlu
czoKICAgICAgICAgICAgIHJldHVybiAnJwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2JhY2tlbmRfZGlzcGF0
Y2hlcl9pbXBsZW1lbnRhdGlvbi5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9iYWNrZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50
YXRpb24ucHkKaW5kZXggZjNlYjFkOGFhYjVjNjg1MDlhNjdmNWY4ZTU1MDliYjMyODE0ZWRjNS4u
ZDE3Y2UwMWRmYTljYjVkZjhlMWU5NDBlMGMyYzUzNWVjYjJlYjczMyAxMDA3NTUKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3Bw
X2JhY2tlbmRfZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfYmFja2VuZF9k
aXNwYXRjaGVyX2ltcGxlbWVudGF0aW9uLnB5CkBAIC00OCwxMyArNDgsNyBAQCBjbGFzcyBDcHBC
YWNrZW5kRGlzcGF0Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yKENwcEdlbmVyYXRvcik6CiAg
ICAgICAgIHJldHVybiBmaWx0ZXIobGFtYmRhIGRvbWFpbjogbGVuKHNlbGYuY29tbWFuZHNfZm9y
X2RvbWFpbihkb21haW4pKSA+IDAsIEdlbmVyYXRvci5kb21haW5zX3RvX2dlbmVyYXRlKHNlbGYp
KQogCiAgICAgZGVmIGdlbmVyYXRlX291dHB1dChzZWxmKToKLSAgICAgICAgc2Vjb25kYXJ5X2hl
YWRlcnMgPSBbCi0gICAgICAgICAgICAnPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRl
ci5oPicsCi0gICAgICAgICAgICAnPHd0Zi9KU09OVmFsdWVzLmg+JywKLSAgICAgICAgICAgICc8
d3RmL05ldmVyRGVzdHJveWVkLmg+JywKLSAgICAgICAgICAgICc8d3RmL3RleHQvQ1N0cmluZy5o
PiddCi0KLSAgICAgICAgc2Vjb25kYXJ5X2luY2x1ZGVzID0gWycjaW5jbHVkZSAlcycgJSBoZWFk
ZXIgZm9yIGhlYWRlciBpbiBzZWNvbmRhcnlfaGVhZGVyc10KKyAgICAgICAgc2Vjb25kYXJ5X2lu
Y2x1ZGVzID0gc2VsZi5fZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcygpCiAKICAg
ICAgICAgaWYgc2VsZi5tb2RlbCgpLmZyYW1ld29yay5zZXR0aW5nKCdhbHRlcm5hdGVfZGlzcGF0
Y2hlcnMnLCBGYWxzZSk6CiAgICAgICAgICAgICBzZWNvbmRhcnlfaW5jbHVkZXMuYXBwZW5kKCcn
KQpAQCAtNzcsNiArNzEsMTcgQEAgY2xhc3MgQ3BwQmFja2VuZERpc3BhdGNoZXJJbXBsZW1lbnRh
dGlvbkdlbmVyYXRvcihDcHBHZW5lcmF0b3IpOgogCiAgICAgIyBQcml2YXRlIG1ldGhvZHMuCiAK
KyAgICBkZWYgX2dlbmVyYXRlX3NlY29uZGFyeV9oZWFkZXJfaW5jbHVkZXMoc2VsZik6CisgICAg
ICAgIGhlYWRlcl9pbmNsdWRlcyA9IFsKKyAgICAgICAgICAgIChbIkphdmFTY3JpcHRDb3JlIiwg
IldlYktpdCJdLCAoIkphdmFTY3JpcHRDb3JlIiwgImluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZFJvdXRlci5oIikpLAorICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViS2l0Il0s
ICgiV1RGIiwgInd0Zi9KU09OVmFsdWVzLmgiKSksCisgICAgICAgICAgICAoWyJKYXZhU2NyaXB0
Q29yZSIsICJXZWJLaXQiXSwgKCJXVEYiLCAid3RmL05ldmVyRGVzdHJveWVkLmgiKSksCisgICAg
ICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJLaXQiXSwgKCJXVEYiLCAid3RmL3RleHQv
Q1N0cmluZy5oIikpCisgICAgICAgIF0KKworICAgICAgICByZXR1cm4gc2VsZi5nZW5lcmF0ZV9p
bmNsdWRlc19mcm9tX2VudHJpZXMoaGVhZGVyX2luY2x1ZGVzKQorCisKICAgICBkZWYgX2dlbmVy
YXRlX2hhbmRsZXJfY2xhc3NfZGVzdHJ1Y3Rvcl9mb3JfZG9tYWluKHNlbGYsIGRvbWFpbik6CiAg
ICAgICAgIGRlc3RydWN0b3JfYXJncyA9IHsKICAgICAgICAgICAgICdkb21haW5OYW1lJzogZG9t
YWluLmRvbWFpbl9uYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfZnJvbnRlbmRfZGlzcGF0Y2hlcl9oZWFk
ZXIucHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9n
ZW5lcmF0ZV9jcHBfZnJvbnRlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkKaW5kZXggYjQyYmJhNWVh
ZWJhZDJmNDk4MDExODZiODI3ZWQ4YzA5Y2RlNDI0NC4uNTliZDc2NjYwOTgzMDJmZWEzM2ViNTk1
MzYzMGNiYWYyNjgxNzQyMiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaGVh
ZGVyLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2Rl
Z2VuL2dlbmVyYXRlX2NwcF9mcm9udGVuZF9kaXNwYXRjaGVyX2hlYWRlci5weQpAQCAtNDksMTMg
KzQ5LDggQEAgY2xhc3MgQ3BwRnJvbnRlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJhdG9yKENwcEdl
bmVyYXRvcik6CiAgICAgICAgIHJldHVybiBmaWx0ZXIobGFtYmRhIGRvbWFpbjogbGVuKHNlbGYu
ZXZlbnRzX2Zvcl9kb21haW4oZG9tYWluKSkgPiAwLCBHZW5lcmF0b3IuZG9tYWluc190b19nZW5l
cmF0ZShzZWxmKSkKIAogICAgIGRlZiBnZW5lcmF0ZV9vdXRwdXQoc2VsZik6Ci0gICAgICAgIGhl
YWRlcnMgPSBbCi0gICAgICAgICAgICAnIiVzUHJvdG9jb2xPYmplY3RzLmgiJyAlIHNlbGYucHJv
dG9jb2xfbmFtZSgpLAotICAgICAgICAgICAgJzx3dGYvSlNPTlZhbHVlcy5oPicsCi0gICAgICAg
ICAgICAnPHd0Zi90ZXh0L1dURlN0cmluZy5oPiddCi0KICAgICAgICAgaGVhZGVyX2FyZ3MgPSB7
Ci0gICAgICAgICAgICAnaW5jbHVkZXMnOiAnXG4nLmpvaW4oWycjaW5jbHVkZSAnICsgaGVhZGVy
IGZvciBoZWFkZXIgaW4gaGVhZGVyc10pLAorICAgICAgICAgICAgJ2luY2x1ZGVzJzogc2VsZi5f
Z2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcygpLAogICAgICAgICAgICAgJ3R5cGVk
ZWZzJzogJ2NsYXNzIEZyb250ZW5kUm91dGVyOycsCiAgICAgICAgIH0KIApAQCAtNjgsNiArNjMs
MTUgQEAgY2xhc3MgQ3BwRnJvbnRlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJhdG9yKENwcEdlbmVy
YXRvcik6CiAKICAgICAjIFByaXZhdGUgbWV0aG9kcy4KIAorICAgIGRlZiBfZ2VuZXJhdGVfc2Vj
b25kYXJ5X2hlYWRlcl9pbmNsdWRlcyhzZWxmKToKKyAgICAgICAgaGVhZGVyX2luY2x1ZGVzID0g
WworICAgICAgICAgICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViS2l0Il0sIChzZWxmLm1vZGVs
KCkuZnJhbWV3b3JrLm5hbWUsICIlc1Byb3RvY29sT2JqZWN0cy5oIiAlIHNlbGYucHJvdG9jb2xf
bmFtZSgpKSksCisgICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJLaXQiXSwgKCJX
VEYiLCAid3RmL0pTT05WYWx1ZXMuaCIpKSwKKyAgICAgICAgICAgIChbIkphdmFTY3JpcHRDb3Jl
IiwgIldlYktpdCJdLCAoIldURiIsICJ3dGYvdGV4dC9XVEZTdHJpbmcuaCIpKQorICAgICAgICBd
CisKKyAgICAgICAgcmV0dXJuICdcbicuam9pbihzZWxmLmdlbmVyYXRlX2luY2x1ZGVzX2Zyb21f
ZW50cmllcyhoZWFkZXJfaW5jbHVkZXMpKQorCiAgICAgZGVmIF9nZW5lcmF0ZV9hbm9ueW1vdXNf
ZW51bV9mb3JfcGFyYW1ldGVyKHNlbGYsIHBhcmFtZXRlciwgZXZlbnQpOgogICAgICAgICBlbnVt
X2FyZ3MgPSB7CiAgICAgICAgICAgICAncGFyYW1ldGVyTmFtZSc6IHBhcmFtZXRlci5wYXJhbWV0
ZXJfbmFtZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9mcm9udGVuZF9kaXNwYXRjaGVyX2ltcGxlbWVudGF0
aW9uLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4v
Z2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkKaW5kZXgg
ZmMyYmViZjk3MWJkNDY2NmYwZGUyMmYxODZjZTIwZjU1NDVjZjQ4OS4uODMzMWNmMzYyMDNjYmMy
NDUwOGIzMGUxODUxNzU2ZDZjNTVmNThiMiAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3Bh
dGNoZXJfaW1wbGVtZW50YXRpb24ucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1w
bGVtZW50YXRpb24ucHkKQEAgLTQ4LDE0ICs0OCw5IEBAIGNsYXNzIENwcEZyb250ZW5kRGlzcGF0
Y2hlckltcGxlbWVudGF0aW9uR2VuZXJhdG9yKENwcEdlbmVyYXRvcik6CiAgICAgICAgIHJldHVy
biBmaWx0ZXIobGFtYmRhIGRvbWFpbjogbGVuKHNlbGYuZXZlbnRzX2Zvcl9kb21haW4oZG9tYWlu
KSkgPiAwLCBHZW5lcmF0b3IuZG9tYWluc190b19nZW5lcmF0ZShzZWxmKSkKIAogICAgIGRlZiBn
ZW5lcmF0ZV9vdXRwdXQoc2VsZik6Ci0gICAgICAgIHNlY29uZGFyeV9oZWFkZXJzID0gWwotICAg
ICAgICAgICAgJzxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4nLAotICAgICAg
ICAgICAgJzx3dGYvdGV4dC9DU3RyaW5nLmg+JywKLSAgICAgICAgXQotCiAgICAgICAgIGhlYWRl
cl9hcmdzID0gewogICAgICAgICAgICAgJ3ByaW1hcnlJbmNsdWRlJzogJyIlc0Zyb250ZW5kRGlz
cGF0Y2hlcnMuaCInICUgc2VsZi5wcm90b2NvbF9uYW1lKCksCi0gICAgICAgICAgICAnc2Vjb25k
YXJ5SW5jbHVkZXMnOiAiXG4iLmpvaW4oWycjaW5jbHVkZSAlcycgJSBoZWFkZXIgZm9yIGhlYWRl
ciBpbiBzZWNvbmRhcnlfaGVhZGVyc10pLAorICAgICAgICAgICAgJ3NlY29uZGFyeUluY2x1ZGVz
Jzogc2VsZi5fZ2VuZXJhdGVfc2Vjb25kYXJ5X2hlYWRlcl9pbmNsdWRlcygpLAogICAgICAgICB9
CiAKICAgICAgICAgc2VjdGlvbnMgPSBbXQpAQCAtNjcsNiArNjIsMTQgQEAgY2xhc3MgQ3BwRnJv
bnRlbmREaXNwYXRjaGVySW1wbGVtZW50YXRpb25HZW5lcmF0b3IoQ3BwR2VuZXJhdG9yKToKIAog
ICAgICMgUHJpdmF0ZSBtZXRob2RzLgogCisgICAgZGVmIF9nZW5lcmF0ZV9zZWNvbmRhcnlfaGVh
ZGVyX2luY2x1ZGVzKHNlbGYpOgorICAgICAgICBoZWFkZXJfaW5jbHVkZXMgPSBbCisgICAgICAg
ICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJLaXQiXSwgKCJKYXZhU2NyaXB0Q29yZSIsICJp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaCIpKSwKKyAgICAgICAgICAgIChbIkph
dmFTY3JpcHRDb3JlIiwgIldlYktpdCJdLCAoIldURiIsICJ3dGYvdGV4dC9DU3RyaW5nLmgiKSkK
KyAgICAgICAgXQorCisgICAgICAgIHJldHVybiAnXG4nLmpvaW4oc2VsZi5nZW5lcmF0ZV9pbmNs
dWRlc19mcm9tX2VudHJpZXMoaGVhZGVyX2luY2x1ZGVzKSkKKwogICAgIGRlZiBfZ2VuZXJhdGVf
ZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbnNfZm9yX2RvbWFpbihzZWxmLCBkb21haW4pOgogICAg
ICAgICBpbXBsZW1lbnRhdGlvbnMgPSBbXQogICAgICAgICBldmVudHMgPSBzZWxmLmV2ZW50c19m
b3JfZG9tYWluKGRvbWFpbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19oZWFkZXIu
cHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5l
cmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5CmluZGV4IDVkNDExZDQ5ZjlkMWU5ODg3
NmE2YTlmZTM1YjllZThhNzFkNzVkMWMuLjJhMTU0ZTBhMTBlMjNmODZmZGJjODcxNjI0MTgzMjE2
NDE0OGYwYzQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19oZWFkZXIucHkKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVf
Y3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weQpAQCAtNTAsMTMgKzUwLDggQEAgY2xhc3MgQ3Bw
UHJvdG9jb2xUeXBlc0hlYWRlckdlbmVyYXRvcihDcHBHZW5lcmF0b3IpOgogICAgICAgICBkb21h
aW5zID0gc2VsZi5kb21haW5zX3RvX2dlbmVyYXRlKCkKICAgICAgICAgc2VsZi5jYWxjdWxhdGVf
dHlwZXNfcmVxdWlyaW5nX3NoYXBlX2Fzc2VydGlvbnMoZG9tYWlucykKIAotICAgICAgICBoZWFk
ZXJzID0gc2V0KFsKLSAgICAgICAgICAgICc8aW5zcGVjdG9yL0luc3BlY3RvclByb3RvY29sVHlw
ZXMuaD4nLAotICAgICAgICAgICAgJzx3dGYvQXNzZXJ0aW9ucy5oPicsCi0gICAgICAgIF0pCi0K
ICAgICAgICAgaGVhZGVyX2FyZ3MgPSB7Ci0gICAgICAgICAgICAnaW5jbHVkZXMnOiAnXG4nLmpv
aW4oWycjaW5jbHVkZSAnICsgaGVhZGVyIGZvciBoZWFkZXIgaW4gc29ydGVkKGhlYWRlcnMpXSks
CisgICAgICAgICAgICAnaW5jbHVkZXMnOiBzZWxmLl9nZW5lcmF0ZV9zZWNvbmRhcnlfaGVhZGVy
X2luY2x1ZGVzKCksCiAgICAgICAgICAgICAndHlwZWRlZnMnOiAnJywKICAgICAgICAgfQogCkBA
IC03OSw2ICs3NCwxNCBAQCBjbGFzcyBDcHBQcm90b2NvbFR5cGVzSGVhZGVyR2VuZXJhdG9yKENw
cEdlbmVyYXRvcik6CiAKICAgICAjIEZJWE1FOiBtb3ZlIGJ1aWxkZXJzIG91dCBvZiBjbGFzc2Vz
LCB1bmNvbW1lbnQgZm9yd2FyZCBkZWNsYXJhdGlvbgogCisgICAgZGVmIF9nZW5lcmF0ZV9zZWNv
bmRhcnlfaGVhZGVyX2luY2x1ZGVzKHNlbGYpOgorICAgICAgICBoZWFkZXJfaW5jbHVkZXMgPSBb
CisgICAgICAgICAgICAoWyJKYXZhU2NyaXB0Q29yZSIsICJXZWJLaXQiXSwgKCJKYXZhU2NyaXB0
Q29yZSIsICJpbnNwZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oIikpLAorICAgICAgICAg
ICAgKFsiSmF2YVNjcmlwdENvcmUiLCAiV2ViS2l0Il0sICgiV1RGIiwgInd0Zi9Bc3NlcnRpb25z
LmgiKSkKKyAgICAgICAgXQorCisgICAgICAgIHJldHVybiAnXG4nLmpvaW4oc2VsZi5nZW5lcmF0
ZV9pbmNsdWRlc19mcm9tX2VudHJpZXMoaGVhZGVyX2luY2x1ZGVzKSkKKwogICAgIGRlZiBfZ2Vu
ZXJhdGVfZm9yd2FyZF9kZWNsYXJhdGlvbnMoc2VsZiwgZG9tYWlucyk6CiAgICAgICAgIHNlY3Rp
b25zID0gW10KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9z
Y3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0aW9u
LnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2Vu
ZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0aW9uLnB5CmluZGV4IDM1MzBhZDc3
NGMzMWRjNzY5NzNkOWI2OGRjYjE5MmJmNGYyNmQ0M2EuLjJlYjA3NjJlZmM2Zjg5NjlkMjhhNjU3
N2VhOTZiOTY4M2Q0N2RhNTEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9wcm90b2NvbF90eXBlc19pbXBsZW1l
bnRhdGlvbi5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaW1wbGVtZW50YXRpb24ucHkKQEAg
LTU2LDcgKzU2LDcgQEAgY2xhc3MgQ3BwUHJvdG9jb2xUeXBlc0ltcGxlbWVudGF0aW9uR2VuZXJh
dG9yKENwcEdlbmVyYXRvcik6CiAKICAgICAgICAgaGVhZGVyX2FyZ3MgPSB7CiAgICAgICAgICAg
ICAncHJpbWFyeUluY2x1ZGUnOiAnIiVzUHJvdG9jb2xPYmplY3RzLmgiJyAlIHNlbGYucHJvdG9j
b2xfbmFtZSgpLAotICAgICAgICAgICAgJ3NlY29uZGFyeUluY2x1ZGVzJzogIlxuIi5qb2luKFsn
I2luY2x1ZGUgJXMnICUgaGVhZGVyIGZvciBoZWFkZXIgaW4gc2Vjb25kYXJ5X2hlYWRlcnNdKSwK
KyAgICAgICAgICAgICdzZWNvbmRhcnlJbmNsdWRlcyc6IHNlbGYuX2dlbmVyYXRlX3NlY29uZGFy
eV9oZWFkZXJfaW5jbHVkZXMoKSwKICAgICAgICAgfQogCiAgICAgICAgIHNlY3Rpb25zID0gW10K
QEAgLTc0LDYgKzc0LDE0IEBAIGNsYXNzIENwcFByb3RvY29sVHlwZXNJbXBsZW1lbnRhdGlvbkdl
bmVyYXRvcihDcHBHZW5lcmF0b3IpOgogCiAgICAgIyBQcml2YXRlIG1ldGhvZHMuCiAKKyAgICBk
ZWYgX2dlbmVyYXRlX3NlY29uZGFyeV9oZWFkZXJfaW5jbHVkZXMoc2VsZik6CisgICAgICAgIGhl
YWRlcl9pbmNsdWRlcyA9IFsKKyAgICAgICAgICAgIChbIkphdmFTY3JpcHRDb3JlIiwgIldlYktp
dCJdLCAoIldURiIsICJ3dGYvT3B0aW9uYWwuaCIpKSwKKyAgICAgICAgICAgIChbIkphdmFTY3Jp
cHRDb3JlIiwgIldlYktpdCJdLCAoIldURiIsICJ3dGYvdGV4dC9DU3RyaW5nLmgiKSksCisgICAg
ICAgIF0KKworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuZ2VuZXJhdGVfaW5jbHVkZXNf
ZnJvbV9lbnRyaWVzKGhlYWRlcl9pbmNsdWRlcykpCisKICAgICBkZWYgX2dlbmVyYXRlX2VudW1f
bWFwcGluZyhzZWxmKToKICAgICAgICAgaWYgbm90IHNlbGYuYXNzaWduZWRfZW51bV92YWx1ZXMo
KToKICAgICAgICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rpc3Bh
dGNoZXJfaGVhZGVyLnB5IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19iYWNrZW5kX2Rpc3BhdGNoZXJfaGVhZGVyLnB5CmluZGV4
IDA1MzFlZDUzYmU3ZTkyZjE2MTAwODAwYjU5MWY4MWJmNTdlMGU1MGYuLjAwMzU3NTY3ZThjZDc5
N2YxYjFhOTQ1ZTFhZWJjODY5M2MwNGNkZTIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfYmFja2VuZF9kaXNw
YXRjaGVyX2hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX2JhY2tlbmRfZGlzcGF0Y2hlcl9oZWFkZXIucHkK
QEAgLTY4LDYgKzY4LDggQEAgY2xhc3MgT2JqQ0JhY2tlbmREaXNwYXRjaGVySGVhZGVyR2VuZXJh
dG9yKE9iakNHZW5lcmF0b3IpOgogICAgICAgICBzZWN0aW9ucy5hcHBlbmQoVGVtcGxhdGUoT2Jq
Q1RlbXBsYXRlcy5CYWNrZW5kRGlzcGF0Y2hlckhlYWRlclBvc3RsdWRlKS5zdWJzdGl0dXRlKE5v
bmUsICoqaGVhZGVyX2FyZ3MpKQogICAgICAgICByZXR1cm4gJ1xuXG4nLmpvaW4oc2VjdGlvbnMp
CiAKKyAgICAjIFByaXZhdGUgbWV0aG9kcy4KKwogICAgIGRlZiBfZ2VuZXJhdGVfb2JqY19mb3J3
YXJkX2RlY2xhcmF0aW9ucyhzZWxmKToKICAgICAgICAgbGluZXMgPSBbXQogICAgICAgICBmb3Ig
ZG9tYWluIGluIHNlbGYuZG9tYWluc190b19nZW5lcmF0ZSgpOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdG9yLnB5IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdG9y
LnB5CmluZGV4IGUyMjI5ZDAzNjhiMmYxM2MxMjZkMDAwNjI2NWU0OGRmNTYzMjdhNTEuLmVlZDIx
OGRjMmYwNTNhNjc3NTFjMmM5MzU2MzMxOTVkMzhkYmY4NWIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRvci5weQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0
b3IucHkKQEAgLTExOSw2ICsxMTksMjUgQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgIGRlZiBnZW5l
cmF0ZV9saWNlbnNlKHNlbGYpOgogICAgICAgICByZXR1cm4gVGVtcGxhdGUoVGVtcGxhdGVzLkNv
cHlyaWdodEJsb2NrKS5zdWJzdGl0dXRlKE5vbmUsIGlucHV0RmlsZW5hbWU9b3MucGF0aC5iYXNl
bmFtZShzZWxmLl9pbnB1dF9maWxlcGF0aCkpCiAKKyAgICBkZWYgZ2VuZXJhdGVfaW5jbHVkZXNf
ZnJvbV9lbnRyaWVzKHNlbGYsIGVudHJpZXMpOgorICAgICAgICBpbmNsdWRlcyA9IHNldCgpCisg
ICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgKGFsbG93ZWRfZnJhbWV3
b3JrX25hbWVzLCBkYXRhKSA9IGVudHJ5CisgICAgICAgICAgICAoZnJhbWV3b3JrX25hbWUsIGhl
YWRlcl9wYXRoKSA9IGRhdGEKKworICAgICAgICAgICAgYWxsb3dlZF9mcmFtZXdvcmtzID0gYWxs
b3dlZF9mcmFtZXdvcmtfbmFtZXMgKyBbIlRlc3QiXQorICAgICAgICAgICAgaWYgc2VsZi5tb2Rl
bCgpLmZyYW1ld29yay5uYW1lIG5vdCBpbiBhbGxvd2VkX2ZyYW1ld29ya3M6CisgICAgICAgICAg
ICAgICAgY29udGludWUKKworICAgICAgICAgICAgaWYgZnJhbWV3b3JrX25hbWUgPT0gIldURiI6
CisgICAgICAgICAgICAgICAgaW5jbHVkZXMuYWRkKCIjaW5jbHVkZSA8JXM+IiAlIGhlYWRlcl9w
YXRoKQorICAgICAgICAgICAgZWxpZiBzZWxmLm1vZGVsKCkuZnJhbWV3b3JrLm5hbWUgIT0gZnJh
bWV3b3JrX25hbWU6CisgICAgICAgICAgICAgICAgaW5jbHVkZXMuYWRkKCIjaW5jbHVkZSA8JXMv
JXM+IiAlIChmcmFtZXdvcmtfbmFtZSwgb3MucGF0aC5iYXNlbmFtZShoZWFkZXJfcGF0aCkpKQor
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpbmNsdWRlcy5hZGQoIiNpbmNsdWRl
IFwiJXNcIiIgJSBvcy5wYXRoLmJhc2VuYW1lKGhlYWRlcl9wYXRoKSkKKworICAgICAgICByZXR1
cm4gc29ydGVkKGxpc3QoaW5jbHVkZXMpKQorCiAgICAgIyBUaGVzZSBtZXRob2RzIGFyZSBvdmVy
cmlkZGVuIGJ5IHN1YmNsYXNzZXMuCiAgICAgZGVmIG5vbl9zdXBwbGVtZW50YWxfZG9tYWlucyhz
ZWxmKToKICAgICAgICAgcmV0dXJuIGZpbHRlcihsYW1iZGEgZG9tYWluOiBub3QgZG9tYWluLmlz
X3N1cHBsZW1lbnRhbCwgc2VsZi5tb2RlbCgpLmRvbWFpbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2RlZmlu
aXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2FsbC9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRo
LW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdAppbmRleCAyMzc1MzBlOGFjYWMyMjA0ODk4ZDRiYTAy
MTZmNWViNmM0ZDU2ZTRiLi4xMzExY2NiOTkxNmNkNmZjZGI2ZTliZmFlNDVkNjlkYWMzODEyNTA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvYWxsL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9hbGwv
ZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKQEAgLTcy
LDggKzcyLDggQEAgSW5zcGVjdG9yQmFja2VuZC5hY3RpdmF0ZURvbWFpbigiTmV0d29yayIpOwog
I2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQogCiAjaW5jbHVkZSAi
VGVzdFByb3RvY29sVHlwZXMuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRSb3V0ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91
dGVyLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVi
bGljOgogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xPYmplY3RzLmgiCi0j
aW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0yMDMs
NyArMjAzLDcgQEAgcHJpdmF0ZToKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXN0
QmFja2VuZERpc3BhdGNoZXJzLmgiCiAKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVu
ZFJvdXRlci5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMzUwLDcg
KzM1MCw3IEBAIHByaXZhdGU6CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVzdEZy
b250ZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5k
Um91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5z
cGVjdG9yIHsKQEAgLTQwMCw3ICs0MDAsNyBAQCB2b2lkIE5ldHdvcmtGcm9udGVuZERpc3BhdGNo
ZXI6OnJlc291cmNlTG9hZGVkKCkKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxpbnNwZWN0
b3IvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lu
c3BlY3RvclByb3RvY29sVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBu
YW1lc3BhY2UgSW5zcGVjdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5
bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3luYy1hdHRy
aWJ1dGUuanNvbi1yZXN1bHQKaW5kZXggYzIwZGQwODExNmE2YTQ5YWM2Y2RiMjQwOWRkNDAyOTky
ODQ5YjMwZC4uY2Y2MDM1MDVjNjdhOWQxYWQxZWE2ZjA4NzI4NjU2NWYyNjkzMTlmNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVy
aWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQKQEAgLTc1
LDggKzc1LDggQEAgSW5zcGVjdG9yQmFja2VuZC5hY3RpdmF0ZURvbWFpbigiRGF0YWJhc2UiKTsK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKIAogI2luY2x1ZGUg
IlRlc3RQcm90b2NvbFR5cGVzLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZFJv
dXRlci5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIApAQCAtMTM3LDcgKzEzNyw3IEBAIHB1
YmxpYzoKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgot
I2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMjMy
LDcgKzIzMiw3IEBAIHByaXZhdGU6CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVz
dEJhY2tlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRl
bmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTU2Niw3
ICs1NjYsNyBAQCBjbGFzcyBGcm9udGVuZFJvdXRlcjsKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5z
cGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtNjA4LDcgKzYwOCw3IEBAIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JQ
cm90b2NvbFR5cGVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9j
b2xUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJl
dHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25h
bC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CmluZGV4IDI0MmQ2YWMxYjgzYzU2
MGQ4ZmIzOWZhNzcyNmRmMmNlYWE5M2RiNGYuLjJlNzU4MzgxNzMxYWI4MWM2MDE3ZjgwOGM5YjJh
NTU2NjE4NGZkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0aW9uYWwtY2Fs
bC1yZXR1cm4tcGFyYW1ldGVycy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRo
LW9wdGlvbmFsLWNhbGwtcmV0dXJuLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKQEAgLTcyLDggKzcy
LDggQEAgSW5zcGVjdG9yQmFja2VuZC5hY3RpdmF0ZURvbWFpbigiRGF0YWJhc2UiKTsKICNpZiBF
TkFCTEUoSU5TUEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKIAogI2luY2x1ZGUgIlRlc3RQ
cm90b2NvbFR5cGVzLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91
dGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5o
PgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIApAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgotI2luY2x1
ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMjEzLDcgKzIx
Myw3IEBAIHByaXZhdGU6CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVzdEJhY2tl
bmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Um91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0
ZXIuaD4KICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTQ2Nyw3ICs0Njcs
NyBAQCBjbGFzcyBGcm9udGVuZFJvdXRlcjsKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9y
RnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBJbnNwZWN0b3IgewpAQCAtNTA5LDcgKzUwOSw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JQcm90b2Nv
bFR5cGVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9jb2xUeXBl
cy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2dlbmVyaWMvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1y
ZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2Vu
ZXJpYy9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdApp
bmRleCAxYmM5MDcwNzFjYzRhMWIzZTEwZjc0OGUzYjNhZjA5ZGJhYjZjNGQ3Li5iYTZjNTk2MjFk
ZDBmNWEyNWMyYTkwYWQ4NTk1NDZlNjQ3ZmEwNTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kZWZpbml0
aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kZWZpbml0aW9u
cy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdApAQCAtNjYsOCArNjYsOCBAQAogI2lmIEVO
QUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQogCiAjaW5jbHVkZSAiVGVzdFBy
b3RvY29sVHlwZXMuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0
ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
ci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+
CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCkBAIC0xMjEsNyArMTIxLDcgQEAgcHJpdmF0ZToK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgotI2luY2x1
ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMTY3LDcgKzE2
Nyw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2luY2x1ZGUgPGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lu
c3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CkBAIC0yNjIsNyArMjYyLDcgQEAgY2xhc3MgRnJvbnRlbmRSb3V0ZXI7CiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2luY2x1
ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTMwNCw3ICszMDQsNyBAQCBu
YW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxpbnNwZWN0
b3IvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lu
c3BlY3RvclByb3RvY29sVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBu
YW1lc3BhY2UgSW5zcGVjdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi1hdmFpbGFiaWxp
dHkuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW4tYXZhaWxhYmlsaXR5Lmpzb24tcmVzdWx0Cmlu
ZGV4IDMwNzcxNmJkM2QwODllODUyMDM3NTVjMzA1ZmRiMDkwMDM4YzRlNDUuLjhmMzlkOTI0OTFk
NzEzYjhlNWVjNzc4MmU4M2VmZDZjODY0YWQwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi1h
dmFpbGFiaWxpdHkuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWluLWF2YWlsYWJpbGl0eS5q
c29uLXJlc3VsdApAQCAtNzQsOCArNzQsOCBAQCBJbnNwZWN0b3JCYWNrZW5kLmFjdGl2YXRlRG9t
YWluKCJEb21haW5CIik7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hF
UlMpCiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xUeXBlcy5oIgotI2luY2x1ZGUgPGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0lu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5z
cGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKQEAgLTEz
OCw3ICsxMzgsNyBAQCBwdWJsaWM6CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlRlc3RQcm90
b2NvbE9iamVjdHMuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5z
cGVjdG9yIHsKQEAgLTIzNSw3ICsyMzUsNyBAQCBwcml2YXRlOgogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2luY2x1ZGUgPGluc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CkBAIC00MTksNyArNDE5LDcgQEAgY2xhc3MgRnJvbnRlbmRSb3V0ZXI7CiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2lu
Y2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTQ2MSw3ICs0NjEsNyBA
QCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxpbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0luc3BlY3RvclByb3RvY29sVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgog
CiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbnMtd2l0aC12
YXJ5aW5nLWNvbW1hbmQtc2l6ZXMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9kb21haW5zLXdpdGgtdmFy
eWluZy1jb21tYW5kLXNpemVzLmpzb24tcmVzdWx0CmluZGV4IDM2MzA4MjkwMWFiNmY2N2RhZTQw
ZTE0NWVkZjdlNDVjZDZhZmNjMGUuLjU4Njc0ZDkzYzJmY2FlOWEwYTA0OGJiNDZkYjYzOWJkN2Vh
MWVkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQtc2l6
ZXMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZhcnlpbmctY29tbWFuZC1z
aXplcy5qc29uLXJlc3VsdApAQCAtODAsOCArODAsOCBAQCBJbnNwZWN0b3JCYWNrZW5kLmFjdGl2
YXRlRG9tYWluKCJOZXR3b3JrMyIpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJ
U1BBVENIRVJTKQogCiAjaW5jbHVkZSAiVGVzdFByb3RvY29sVHlwZXMuaCIKLSNpbmNsdWRlIDxp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3Igewog
CkBAIC0xNTAsNyArMTUwLDcgQEAgcHVibGljOgogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJU
ZXN0UHJvdG9jb2xPYmplY3RzLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckJhY2tl
bmREaXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIEluc3BlY3RvciB7CkBAIC0yNTksNyArMjU5LDcgQEAgcHJpdmF0ZToKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgiCiAKLSNpbmNsdWRl
IDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFs
dWVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgpAQCAtNTgxLDcgKzU4MSw3IEBAIGNsYXNzIEZyb250ZW5kUm91dGVyOwog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgi
CiAKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC02MjMsNyAr
NjIzLDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVk
ZSA8aW5zcGVjdG9yL0luc3BlY3RvclByb3RvY29sVHlwZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JbnNwZWN0b3JQcm90b2NvbFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9lbnVtLXZh
bHVlcy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2VudW0tdmFsdWVzLmpzb24tcmVzdWx0CmluZGV4IDQ0
NTk0NjRjMmU3MjI2ZGEzNzE4NWMyZTNmYzc1MDQ1MDNlMTg1NzAuLmQwNTRiODI5YjU3ZWI2NTQ3
M2E1Y2M0NjU2ODg5MzIyZmI3MGFjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2VudW0tdmFsdWVzLmpz
b24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2VudW0tdmFsdWVzLmpzb24tcmVzdWx0CkBAIC04MCw4ICs4
MCw4IEBAIEluc3BlY3RvckJhY2tlbmQuYWN0aXZhdGVEb21haW4oIkV2ZW50RG9tYWluIik7CiAj
aWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCiAKICNpbmNsdWRlICJU
ZXN0UHJvdG9jb2xUeXBlcy5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZFJvdXRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0
ZXIuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBwdWJs
aWM6CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKLSNp
bmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTIxOCw3
ICsyMTgsNyBAQCBwcml2YXRlOgogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RC
YWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5k
Um91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0zNzUsNyAr
Mzc1LDcgQEAgcHJpdmF0ZToKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXN0RnJv
bnRlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRS
b3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewpAQCAtNDI4LDcgKzQyOCw3IEBAIHZvaWQgRXZlbnREb21haW5Gcm9udGVuZERpc3Bh
dGNoZXI6OmV2ZW50V2l0aEVudW1QYXJhbWV0ZXIoUGFyYW1ldGVyIHBhcmFtZXRlcikKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5o
PgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvclByb3RvY29sVHlwZXMuaD4KICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5l
cmljL2V4cGVjdGVkL2V2ZW50cy13aXRoLW9wdGlvbmFsLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9l
eHBlY3RlZC9ldmVudHMtd2l0aC1vcHRpb25hbC1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CmluZGV4
IGQ1MjNiNzIyNGMzNDVhZDNlYTFmOTgxZDFhMTA0MjM1OWZkZWJlOGMuLjFkOTk2NmFhNTE4YTVj
ZmEwZWE3MDUxNDc1MTE5ZDdlZjRkOGJjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2V2ZW50cy13aXRo
LW9wdGlvbmFsLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZXZlbnRzLXdpdGgt
b3B0aW9uYWwtcGFyYW1ldGVycy5qc29uLXJlc3VsdApAQCAtNzIsOCArNzIsOCBAQCBJbnNwZWN0
b3JCYWNrZW5kLmFjdGl2YXRlRG9tYWluKCJEYXRhYmFzZSIpOwogI2lmIEVOQUJMRShJTlNQRUNU
T1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQogCiAjaW5jbHVkZSAiVGVzdFByb3RvY29sVHlwZXMu
aCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgorI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAKIG5hbWVzcGFj
ZSBJbnNwZWN0b3IgewogCkBAIC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgotI2luY2x1ZGUgPGluc3BlY3Rv
ci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMTczLDcgKzE3Myw3IEBAIHR5cGVk
ZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRl
c3RCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250
ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yNzcs
NyArMjc3LDcgQEAgcHJpdmF0ZToKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXN0
RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRl
bmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJ
bnNwZWN0b3IgewpAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgRGF0YWJhc2VGcm9udGVuZERpc3Bh
dGNoZXI6OmRpZEV4ZWN1dGVOb09wdGlvbmFsUGFyYW1ldGVycyhSZWZQdHI8SlNPTjo6QXJyCiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvclByb3RvY29sVHlw
ZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JQcm90b2NvbFR5cGVzLmg+
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMv
Z2VuZXJpYy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVhdHVyZS1ndWFyZHMuanNv
bi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMv
Z2VuZXJpYy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVhdHVyZS1ndWFyZHMuanNv
bi1yZXN1bHQKaW5kZXggMzI5NTI2OTZkMjVhMmRkYmZjODMyMmU5NjRkYjExZDQ2NGUzNTg4Ny4u
MjM1NTMzMGEyOWZkYzE4Mzg4ZjY2ZmIxYjdlMDNjZTE2MTU2ZjY0MSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0
ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0CisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4
cGVjdGVkL2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdApA
QCAtNzUsOCArNzUsOCBAQCBJbnNwZWN0b3JCYWNrZW5kLmFjdGl2YXRlRG9tYWluKCJOZXR3b3Jr
MyIpOwogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQogCiAjaW5j
bHVkZSAiVGVzdFByb3RvY29sVHlwZXMuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250
ZW5kUm91dGVyLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCkBAIC0xMzYsNyArMTM2LDcg
QEAgcHVibGljOgogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xPYmplY3Rz
LmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBA
IC0yMTQsNyArMjE0LDcgQEAgcHJpdmF0ZToKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgiCiAKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JG
cm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAt
MzY3LDcgKzM2Nyw3IEBAIHByaXZhdGU6CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
VGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZy
b250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgSW5zcGVjdG9yIHsKQEAgLTQxOSw3ICs0MTksNyBAQCB2b2lkIE5ldHdvcmszRnJvbnRlbmRE
aXNwYXRjaGVyOjpyZXNvdXJjZUxvYWRlZCgpCiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8
aW5zcGVjdG9yL0luc3BlY3RvclByb3RvY29sVHlwZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9JbnNwZWN0b3JQcm90b2NvbFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMu
aD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9zYW1lLXR5cGUt
aWQtZGlmZmVyZW50LWRvbWFpbi5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3NhbWUtdHlwZS1pZC1kaWZm
ZXJlbnQtZG9tYWluLmpzb24tcmVzdWx0CmluZGV4IDZmOWE3NWVlMTA0NTE3YWQyNmYwOTBkZDBh
MjU2Y2U2MDI2MTgxNGEuLjQ0MTVlOTQ1NjJiYTQwNmQxZTE0MTI1NzJhY2MwMjFjYjllODRjZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL3NhbWUtdHlwZS1pZC1kaWZmZXJlbnQtZG9tYWluLmpzb24tcmVz
dWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9n
ZW5lcmljL2V4cGVjdGVkL3NhbWUtdHlwZS1pZC1kaWZmZXJlbnQtZG9tYWluLmpzb24tcmVzdWx0
CkBAIC02Niw4ICs2Niw4IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFU
Q0hFUlMpCiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xUeXBlcy5oIgotI2luY2x1ZGUgPGluc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKQEAg
LTEyMSw3ICsxMjEsNyBAQCBwcml2YXRlOgogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJUZXN0
UHJvdG9jb2xPYmplY3RzLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERp
c3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IEluc3BlY3RvciB7CkBAIC0xNjcsNyArMTY3LDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJp
bmc7CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVzdEJhY2tlbmREaXNwYXRjaGVy
cy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNs
dWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTI2Miw3ICsyNjIsNyBAQCBjbGFzcyBG
cm9udGVuZFJvdXRlcjsKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXN0RnJvbnRl
bmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Um91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0
ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0
b3IgewpAQCAtMzA0LDcgKzMwNCw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JQcm90b2NvbFR5cGVzLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oPgogI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvc2hhZG93ZWQtb3B0aW9uYWwtdHlwZS1zZXR0ZXJzLmpzb24tcmVzdWx0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0
ZWQvc2hhZG93ZWQtb3B0aW9uYWwtdHlwZS1zZXR0ZXJzLmpzb24tcmVzdWx0CmluZGV4IDRiMzFh
NWRiZjI3YjJiZTI1Zjk4N2ZhOGE0ODcwNjY3MzIxNjQyYmEuLjI4MjNlNzZiNGM1OGVmOWE5OGMx
ZWU1YzAzNTUxZjAyZWMyMWE3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3NoYWRvd2VkLW9wdGlvbmFs
LXR5cGUtc2V0dGVycy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9zaGFkb3dlZC1vcHRpb25hbC10
eXBlLXNldHRlcnMuanNvbi1yZXN1bHQKQEAgLTY2LDggKzY2LDggQEAKICNpZiBFTkFCTEUoSU5T
UEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKIAogI2luY2x1ZGUgIlRlc3RQcm90b2NvbFR5
cGVzLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogCiBuYW1l
c3BhY2UgSW5zcGVjdG9yIHsKIApAQCAtMTIxLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKLSNpbmNsdWRlIDxpbnNw
ZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTE2Nyw3ICsxNjcsNyBAQCB0
eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgiCiAKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JG
cm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAt
MjYyLDcgKzI2Miw3IEBAIGNsYXNzIEZyb250ZW5kUm91dGVyOwogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgiCiAKLSNpbmNsdWRlIDxpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0zMDQsNyArMzA0LDcgQEAgbmFtZXNwYWNl
IEluc3BlY3RvciB7CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3Bl
Y3RvclByb3RvY29sVHlwZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JQ
cm90b2NvbFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNl
IEluc3BlY3RvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWFsaWFzZWQt
cHJpbWl0aXZlLXR5cGUuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWFsaWFz
ZWQtcHJpbWl0aXZlLXR5cGUuanNvbi1yZXN1bHQKaW5kZXggNzYwMDVjZmE4MzM3NTZhYjI0MTFh
NWUyOTIxYjNjZmY0YWIzYjFiNS4uNTE3YTBjODFiNjhjZGM3Yzk0OWRjM2ZkMGIwNzJmY2VjNzE0
MmJlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1hbGlhc2VkLXByaW1pdGl2
ZS10eXBlLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tYWxpYXNlZC1w
cmltaXRpdmUtdHlwZS5qc29uLXJlc3VsdApAQCAtNjYsOCArNjYsOCBAQAogI2lmIEVOQUJMRShJ
TlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQogCiAjaW5jbHVkZSAiVGVzdFByb3RvY29s
VHlwZXMuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAKIG5h
bWVzcGFjZSBJbnNwZWN0b3IgewogCkBAIC0xMjEsNyArMTIxLDcgQEAgcHJpdmF0ZToKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiVGVzdFByb3RvY29sT2JqZWN0cy5oIgotI2luY2x1ZGUgPGlu
c3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMTY3LDcgKzE2Nyw3IEBA
IHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3Rv
ckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBA
IC0yNjIsNyArMjYyLDcgQEAgY2xhc3MgRnJvbnRlbmRSb3V0ZXI7CiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVGVzdEZyb250ZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2luY2x1ZGUgPGlu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTMwNCw3ICszMDQsNyBAQCBuYW1lc3Bh
Y2UgSW5zcGVjdG9yIHsKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5z
cGVjdG9yUHJvdG9jb2xUeXBlcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3Rv
clByb3RvY29sVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3Bh
Y2UgSW5zcGVjdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tYXJyYXkt
dHlwZS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tYXJyYXktdHlwZS5qc29u
LXJlc3VsdAppbmRleCA3ZmU1ODZjMGE1YmU1YmY3Mjc5MGI3ZDJlODdiMTYyMDljZTQ3MDMyLi5j
ZDhkYzQ5ZmNlZDVlNzc4M2E1M2MwM2I5MTNhYWFiNjNjNjFkOGJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC90eXBlLWRlY2xhcmF0aW9uLWFycmF5LXR5cGUuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlw
ZS1kZWNsYXJhdGlvbi1hcnJheS10eXBlLmpzb24tcmVzdWx0CkBAIC03MCw4ICs3MCw4IEBAIElu
c3BlY3RvckJhY2tlbmQuYWN0aXZhdGVEb21haW4oIkRlYnVnZ2VyIik7CiAjaWYgRU5BQkxFKElO
U1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xU
eXBlcy5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KIAogbmFt
ZXNwYWNlIEluc3BlY3RvciB7CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBwcml2YXRlOgogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xPYmplY3RzLmgiCi0jaW5jbHVkZSA8aW5z
cGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0xNzEsNyArMTcxLDcgQEAg
dHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiVGVzdEJhY2tlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9y
RnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAg
LTI2Niw3ICsyNjYsNyBAQCBjbGFzcyBGcm9udGVuZFJvdXRlcjsKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMzA4LDcgKzMwOCw3IEBAIG5hbWVzcGFj
ZSBJbnNwZWN0b3IgewogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNw
ZWN0b3JQcm90b2NvbFR5cGVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9y
UHJvdG9jb2xUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFj
ZSBJbnNwZWN0b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1lbnVtLXR5
cGUuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWVudW0tdHlwZS5qc29uLXJl
c3VsdAppbmRleCAxNzM4YmMyMDdjYjM3NTA1MmQzMzU3M2Y4ZmIxOThlMTI4MmRkOWExLi43MGVl
YTU5MjBmYjgzYWYyNTkxOWM2YjM1NmM2ZmRjNTEzNzk5MDU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90
eXBlLWRlY2xhcmF0aW9uLWVudW0tdHlwZS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLWRl
Y2xhcmF0aW9uLWVudW0tdHlwZS5qc29uLXJlc3VsdApAQCAtNzEsOCArNzEsOCBAQCBJbnNwZWN0
b3JCYWNrZW5kLmFjdGl2YXRlRG9tYWluKCJSdW50aW1lIik7CiAjaWYgRU5BQkxFKElOU1BFQ1RP
Ul9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xUeXBlcy5o
IgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CisjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KIAogbmFtZXNwYWNl
IEluc3BlY3RvciB7CiAKQEAgLTEyNiw3ICsxMjYsNyBAQCBwcml2YXRlOgogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xPYmplY3RzLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9y
L0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0xNzIsNyArMTcyLDcgQEAgdHlwZWRl
ZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVz
dEJhY2tlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRl
bmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTI2Nyw3
ICsyNjcsNyBAQCBjbGFzcyBGcm9udGVuZFJvdXRlcjsKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5z
cGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMzA5LDcgKzMwOSw3IEBAIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JQ
cm90b2NvbFR5cGVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJvdG9j
b2xUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBJbnNw
ZWN0b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5q
c29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tb2JqZWN0LXR5cGUuanNvbi1yZXN1
bHQKaW5kZXggNGE4MmI2NDI3NTU3ODUzZmM1ZWJmN2E2MDE4YzE2ZTMyN2RkYThlYy4uZDQ2Yzdj
M2M0NTE3YTY0NWFjNDQyN2Y5ODIxMGE2MzQxYTA2YzVmNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlw
ZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLWRl
Y2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVzdWx0CkBAIC03Miw4ICs3Miw4IEBAIEluc3Bl
Y3RvckJhY2tlbmQuYWN0aXZhdGVEb21haW4oIkRhdGFiYXNlIik7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xUeXBl
cy5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KIAogbmFtZXNw
YWNlIEluc3BlY3RvciB7CiAKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xPYmplY3RzLmgiCi0jaW5jbHVkZSA8aW5zcGVj
dG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0xNzMsNyArMTczLDcgQEAgdHlw
ZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
VGVzdEJhY2tlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJv
bnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTI2
OCw3ICsyNjgsNyBAQCBjbGFzcyBGcm9udGVuZFJvdXRlcjsKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJUZXN0RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewpAQCAtMzEwLDcgKzMxMCw3IEBAIG5hbWVzcGFjZSBJ
bnNwZWN0b3IgewogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0
b3JQcm90b2NvbFR5cGVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yUHJv
dG9jb2xUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBJ
bnNwZWN0b3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9z
Y3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1yZXF1aXJpbmctcnVudGltZS1jYXN0
cy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtcmVxdWlyaW5nLXJ1bnRpbWUtY2FzdHMuanNvbi1y
ZXN1bHQKaW5kZXggN2QxYmZlZjQ2YTVkOThhNGYwYzBmMWM1M2Q1NTZmNjA0MTAzMTVhMS4uMmQw
MzE1NzAwYTY2MThiOWFiMjg2NmRmMGZhNzMxOWE2ZGY1MTQyNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
dHlwZS1yZXF1aXJpbmctcnVudGltZS1jYXN0cy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBl
LXJlcXVpcmluZy1ydW50aW1lLWNhc3RzLmpzb24tcmVzdWx0CkBAIC03MSw4ICs3MSw4IEBAIElu
c3BlY3RvckJhY2tlbmQuYWN0aXZhdGVEb21haW4oIlRlc3QiKTsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKIAogI2luY2x1ZGUgIlRlc3RQcm90b2NvbFR5cGVz
LmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogCiBuYW1lc3Bh
Y2UgSW5zcGVjdG9yIHsKIApAQCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKLSNpbmNsdWRlIDxpbnNwZWN0
b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTE3Miw3ICsxNzIsNyBAQCB0eXBl
ZGVmIFN0cmluZyBFcnJvclN0cmluZzsKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJU
ZXN0QmFja2VuZERpc3BhdGNoZXJzLmgiCiAKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9u
dGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMjY3
LDcgKzI2Nyw3IEBAIGNsYXNzIEZyb250ZW5kUm91dGVyOwogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgiCiAKLSNpbmNsdWRlIDxpbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9J
bnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0zMDksNyArMzA5LDcgQEAgbmFtZXNwYWNlIElu
c3BlY3RvciB7CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3Rv
clByb3RvY29sVHlwZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JQcm90
b2NvbFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIElu
c3BlY3RvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLXdpdGgtb3Blbi1wYXJhbWV0ZXJzLmpz
b24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS13aXRoLW9wZW4tcGFyYW1ldGVycy5qc29uLXJlc3VsdApp
bmRleCAxMWEyMDhhNTdhMzlhMzEwODFmNzYyNTlmMjg1NWVlNTcyZDFlYzg0Li40ZTliNDc1OThl
MmZiOWQ4MGM3NmNkNmFhNGE5YTMyM2ZkYzBkYmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLXdp
dGgtb3Blbi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtd2l0aC1vcGVu
LXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKQEAgLTY2LDggKzY2LDggQEAKICNpZiBFTkFCTEUoSU5T
UEVDVE9SX0FMVEVSTkFURV9ESVNQQVRDSEVSUykKIAogI2luY2x1ZGUgIlRlc3RQcm90b2NvbFR5
cGVzLmgiCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KKyNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogCiBuYW1l
c3BhY2UgSW5zcGVjdG9yIHsKIApAQCAtMTIxLDcgKzEyMSw3IEBAIHByaXZhdGU6CiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKLSNpbmNsdWRlIDxpbnNw
ZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTE2Nyw3ICsxNjcsNyBAQCB0
eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJUZXN0QmFja2VuZERpc3BhdGNoZXJzLmgiCiAKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JG
cm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAt
MjYyLDcgKzI2Miw3IEBAIGNsYXNzIEZyb250ZW5kUm91dGVyOwogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlRlc3RGcm9udGVuZERpc3BhdGNoZXJzLmgiCiAKLSNpbmNsdWRlIDxpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CkBAIC0zMDQsNyArMzA0LDcgQEAgbmFtZXNwYWNl
IEluc3BlY3RvciB7CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3Bl
Y3RvclByb3RvY29sVHlwZXMuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JQ
cm90b2NvbFR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNl
IEluc3BlY3RvciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC93b3JrZXItc3VwcG9ydGVkLWRvbWFpbnMu
anNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvZ2VuZXJpYy9leHBlY3RlZC93b3JrZXItc3VwcG9ydGVkLWRvbWFpbnMuanNvbi1yZXN1bHQK
aW5kZXggNThmODg1NWMyM2ZmN2NhMWFmYzlmZDUwZDVhMWQ2ODg3NjJkYmM0ZS4uNjQ4NzljMzIx
NTU2MGY4ZDU0NjVlOTUyYTNmZWUzYTlhOTBhZGIyYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvd29ya2Vy
LXN1cHBvcnRlZC1kb21haW5zLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3dvcmtlci1zdXBwb3J0
ZWQtZG9tYWlucy5qc29uLXJlc3VsdApAQCAtNzUsOCArNzUsOCBAQCBJbnNwZWN0b3JCYWNrZW5k
LmFjdGl2YXRlRG9tYWluKCJEb21haW5CIik7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5B
VEVfRElTUEFUQ0hFUlMpCiAKICNpbmNsdWRlICJUZXN0UHJvdG9jb2xUeXBlcy5oIgotI2luY2x1
ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KIAogbmFtZXNwYWNlIEluc3BlY3Rv
ciB7CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBwdWJsaWM6CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBu
YW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTIzNiw3ICsyMzYsNyBAQCBwcml2YXRlOgogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2lu
Y2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL0pT
T05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC00MjAsNyArNDIwLDcgQEAgY2xhc3MgRnJvbnRlbmRSb3V0
ZXI7CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVzdEZyb250ZW5kRGlzcGF0Y2hl
cnMuaCIKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTQ2
Miw3ICs0NjIsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0luc3BlY3RvclByb3RvY29sVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9pb3MvZXhwZWN0ZWQvZGVmaW5p
dGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvaW9zL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgt
bWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0CmluZGV4IDFiYzkwNzA3MWNjNGExYjNlMTBmNzQ4ZTNi
M2FmMDlkYmFiNmM0ZDcuLmJhNmM1OTYyMWRkMGY1YTI1YzJhOTBhZDg1OTU0NmU2NDdmYTA1NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9pb3MvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2lvcy9l
eHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdApAQCAtNjYs
OCArNjYsOCBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1JfQUxURVJOQVRFX0RJU1BBVENIRVJTKQog
CiAjaW5jbHVkZSAiVGVzdFByb3RvY29sVHlwZXMuaCIKLSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRSb3V0ZXIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3Rv
ckZyb250ZW5kUm91dGVyLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCkBAIC0xMjEsNyAr
MTIxLDcgQEAgcHJpdmF0ZToKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiVGVzdFByb3RvY29s
T2JqZWN0cy5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hl
ci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0
b3IgewpAQCAtMTY3LDcgKzE2Nyw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRlc3RCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAot
I2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yNjIsNyArMjYyLDcgQEAgY2xhc3MgRnJvbnRlbmRS
b3V0ZXI7CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVzdEZyb250ZW5kRGlzcGF0
Y2hlcnMuaCIKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFJvdXRlci5o
PgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250ZW5kUm91dGVyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAg
LTMwNCw3ICszMDQsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oPgorI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0luc3BlY3RvclByb3RvY29sVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMvZXhwZWN0ZWQvZGVm
aW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvbWFjL2V4cGVjdGVkL2RlZmluaXRpb25zLXdp
dGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0CmluZGV4IDIzNzUzMGU4YWNhYzIyMDQ4OThkNGJh
MDIxNmY1ZWI2YzRkNTZlNGIuLjEzMTFjY2I5OTE2Y2Q2ZmNkYjZlOWJmYWU0NWQ2OWRhYzM4MTI1
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9tYWMvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1
bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL21h
Yy9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdApAQCAt
NzIsOCArNzIsOCBAQCBJbnNwZWN0b3JCYWNrZW5kLmFjdGl2YXRlRG9tYWluKCJOZXR3b3JrIik7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9BTFRFUk5BVEVfRElTUEFUQ0hFUlMpCiAKICNpbmNsdWRl
ICJUZXN0UHJvdG9jb2xUeXBlcy5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFJvdXRlci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRS
b3V0ZXIuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKQEAgLTEzMSw3ICsxMzEsNyBAQCBw
dWJsaWM6CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlRlc3RQcm90b2NvbE9iamVjdHMuaCIK
LSNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuaD4KKyNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKQEAgLTIw
Myw3ICsyMDMsNyBAQCBwcml2YXRlOgogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRl
c3RCYWNrZW5kRGlzcGF0Y2hlcnMuaCIKIAotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZFJvdXRlci5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckZyb250
ZW5kUm91dGVyLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0zNTAs
NyArMzUwLDcgQEAgcHJpdmF0ZToKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXN0
RnJvbnRlbmREaXNwYXRjaGVycy5oIgogCi0jaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kUm91dGVyLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRl
bmRSb3V0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBJ
bnNwZWN0b3IgewpAQCAtNDAwLDcgKzQwMCw3IEBAIHZvaWQgTmV0d29ya0Zyb250ZW5kRGlzcGF0
Y2hlcjo6cmVzb3VyY2VMb2FkZWQoKQogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPGluc3Bl
Y3Rvci9JbnNwZWN0b3JQcm90b2NvbFR5cGVzLmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAK
IG5hbWVzcGFjZSBJbnNwZWN0b3Igewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>