<?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>168019</bug_id>
          
          <creation_ts>2017-02-08 14:04:30 -0800</creation_ts>
          <short_desc>[Cocoa] Web Inspector: generate an NS_ENUM containing platforms supported by the protocol code generator</short_desc>
          <delta_ts>2017-02-10 09:31:15 -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>
          
          
          <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>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1274552</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-02-08 14:04:30 -0800</bug_when>
    <thetext>This is useful for parsing out the &apos;platform&apos; value programmatically without hardcoding specific protocol level strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274553</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-02-08 14:04:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/28718990&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274622</commentid>
    <comment_count>2</comment_count>
      <attachid>300979</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-02-08 15:52:46 -0800</bug_when>
    <thetext>Created attachment 300979
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274624</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 15:54:48 -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>1274625</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-08 15:54:58 -0800</bug_when>
    <thetext>Attachment 300979 did not pass style-queue:


ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:112:  [ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_for_platforms] Instance of &apos;ObjCProtocolTypeConversionsHeaderGenerator&apos; has no &apos;objc_prefix&apos; member  [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objc_header.py:139:  [ObjCHeaderGenerator._generate_enum_for_platforms] Instance of &apos;ObjCHeaderGenerator&apos; has no &apos;objc_prefix&apos; member  [pylint/E1101] [5]
Total errors found: 2 in 26 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>1275236</commentid>
    <comment_count>5</comment_count>
      <attachid>300979</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-02-09 22:36:03 -0800</bug_when>
    <thetext>Comment on attachment 300979
Proposed Fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275346</commentid>
    <comment_count>6</comment_count>
      <attachid>300979</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-10 09:31:11 -0800</bug_when>
    <thetext>Comment on attachment 300979
Proposed Fix

Clearing flags on attachment: 300979

Committed r212116: &lt;http://trac.webkit.org/changeset/212116&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1275347</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-10 09:31:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300979</attachid>
            <date>2017-02-08 15:52:46 -0800</date>
            <delta_ts>2017-02-10 09:31:11 -0800</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-168019-20170208155022.patch</filename>
            <type>text/plain</type>
            <size>49018</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NDNlNDJhZDA3YTMwMzc5MDhkNTRmNDc1YjAxN2EwODQ0MmIzN2U4Li5iN2U4ZGQ4M2ZjZWM1ZTkw
ZDg0YTU4NTcyZWE1MzY4NzBjM2EwMTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAxNy0wMi0wOCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IGdlbmVyYXRlIGFuIE5TX0VOVU0gY29udGFp
bmluZyBwbGF0Zm9ybXMgc3VwcG9ydGVkIGJ5IHRoZSBwcm90b2NvbCBjb2RlIGdlbmVyYXRvcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MDE5Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODcxODk5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCdzIHVzZWZ1bCB0byBoYXZlIGFuIHN5bWJvbGlj
IHZhbHVlIChub3QgYSBzdHJpbmcpIGZvciBlYWNoIG9mIHRoZSBzdXBwb3J0ZWQgcGxhdGZvcm0g
dmFsdWVzLgorICAgICAgICBHZW5lcmF0ZSB0aGlzIG9uY2UgcGVyIHByb3RvY29sIGZvciB0aGUg
T2JqZWN0aXZlLUMgYmluZGluZ3MuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfaGVhZGVyLnB5Ogor
ICAgICAgICAoT2JqQ0hlYWRlckdlbmVyYXRvci5nZW5lcmF0ZV9vdXRwdXQpOgorICAgICAgICAo
T2JqQ0hlYWRlckdlbmVyYXRvci5fZ2VuZXJhdGVfZW51bV9mb3JfcGxhdGZvcm1zKToKKyAgICAg
ICAgQ3JlYXRlIGFuIE5TX0VOVU0gZm9yIFBsYXRmb3JtIHZhbHVlcyBpbiBQbGF0Zm9ybXMuCisK
KyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfcHJvdG9j
b2xfdHlwZV9jb252ZXJzaW9uc19oZWFkZXIucHk6CisgICAgICAgIChPYmpDUHJvdG9jb2xUeXBl
Q29udmVyc2lvbnNIZWFkZXJHZW5lcmF0b3IuZ2VuZXJhdGVfb3V0cHV0KToKKyAgICAgICAgKE9i
akNQcm90b2NvbFR5cGVDb252ZXJzaW9uc0hlYWRlckdlbmVyYXRvci5fZ2VuZXJhdGVfZW51bV9j
b252ZXJzaW9uX2Zvcl9wbGF0Zm9ybXMpOgorICAgICAgICBBZGQgdHlwZSBjb252ZXJzaW9uL3Bh
cnNpbmcgbWV0aG9kcyBmb3IgdGhlIG5ld2x5IGFkZGVkIGVudW0uCisKKyAgICAgICAgKiBpbnNw
ZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRvci5weToKKyAgICAgICAgKEdlbmVyYXRvci5z
dHlsaXplZF9uYW1lX2Zvcl9lbnVtX3ZhbHVlKToKKyAgICAgICAgKEdlbmVyYXRvci5zdHlsaXpl
ZF9uYW1lX2Zvcl9lbnVtX3ZhbHVlLnJlcGxhY2VDYWxsYmFjayk6CisgICAgICAgIFN1cHBvcnQg
YXJiaXRyYXJ5IHNwZWNpYWwtY2FzZWQgc3Vic3RyaW5ncyBpbiBlbnVtcywgbm90IGp1c3QgYWxs
LWNhcHMuIEFkZCAnSU9TJyBhbmQgJ01hY09TJy4KKworICAgICAgICAqIGluc3BlY3Rvci9zY3Jp
cHRzL2NvZGVnZW4vbW9kZWxzLnB5OgorICAgICAgICAoUGxhdGZvcm1zKToKKyAgICAgICAgVXNl
IGxvd2VyLWNhc2Ugc3RyaW5nIHZhbHVlcyBmb3IgcGxhdGZvcm0gbmFtZXMsIHRvIGF2b2lkIGd1
ZXNzd29yay4KKworICAgICAgICAoUGxhdGZvcm1zLl9fbWV0YWNsYXNzX18pOgorICAgICAgICAo
UGxhdGZvcm1zLl9fbWV0YWNsYXNzX18uX19pdGVyX18pOgorICAgICAgICBNYWtlIGl0IHBvc3Np
YmxlIHRvIGl0ZXJhdGUgb3ZlciBQbGF0Zm9ybSBpbnN0YW5jZXMgb2YgUGxhdGZvcm1zLgorCisg
ICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4cGVjdGVkL2RlZmluaXRpb25z
LXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUu
anNvbi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9l
eHBlY3RlZC9jb21tYW5kcy13aXRoLW9wdGlvbmFsLWNhbGwtcmV0dXJuLXBhcmFtZXRlcnMuanNv
bi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBl
Y3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdDoKKyAgICAgICAg
KiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi1hdmFpbGFi
aWxpdHkuanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2Vu
ZXJpYy9leHBlY3RlZC9kb21haW5zLXdpdGgtdmFyeWluZy1jb21tYW5kLXNpemVzLmpzb24tcmVz
dWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQv
ZW51bS12YWx1ZXMuanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvZ2VuZXJpYy9leHBlY3RlZC9ldmVudHMtd2l0aC1vcHRpb25hbC1wYXJhbWV0ZXJzLmpzb24t
cmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0
ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0OgorICAg
ICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvc2FtZS10eXBl
LWlkLWRpZmZlcmVudC1kb21haW4uanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3Nj
cmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9zaGFkb3dlZC1vcHRpb25hbC10eXBlLXNldHRl
cnMuanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJp
Yy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWFsaWFzZWQtcHJpbWl0aXZlLXR5cGUuanNvbi1y
ZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC90eXBlLWRlY2xhcmF0aW9uLWFycmF5LXR5cGUuanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWVu
dW0tdHlwZS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9n
ZW5lcmljL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tb2JqZWN0LXR5cGUuanNvbi1yZXN1bHQ6
CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBl
LXJlcXVpcmluZy1ydW50aW1lLWNhc3RzLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvd29ya2VyLXN1cHBvcnRlZC1kb21haW5z
Lmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2lvcy9leHBl
Y3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdDoKKyAgICAgICAg
KiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1t
YWMtcGxhdGZvcm0uanNvbi1yZXN1bHQ6CisgICAgICAgIFJlYmFzZWxpbmUgcmVzdWx0cy4KKwog
MjAxNy0wMi0wNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgU2ln
aWxsQ3Jhc2hBbmFseXplcjo6YW5hbHl6ZSgpIHNob3VsZCB1c2UgYSBkby13aGlsZSBsb29wIGlu
c3RlYWQgb2YgYSBsYW1iZGEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmIxNmRkMGRhOTJlYTJmMWY5YTI5MGYx
ODNhZTc1OWQxZjdmMjlkOS4uZWNkY2UyMWZiYmMyMDlmMTA0NDc4MGUyZDlhNTQzNTRmZTQwM2Iw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTAyLTA4ICBCcmlhbiBCdXJnICA8
YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogZ2VuZXJh
dGUgYW4gTlNfRU5VTSBjb250YWluaW5nIHBsYXRmb3JtcyBzdXBwb3J0ZWQgYnkgdGhlIHByb3Rv
Y29sIGNvZGUgZ2VuZXJhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjgwMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NzE4OTkwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNz
L0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uOiBGaXggdGhlIHBsYXRmb3JtIHZhbHVlcyB0byBi
ZSBsb3dlcmNhc2UuCisKIDIwMTctMDItMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEdVTSBpcyBjcmFzaGluZyBpbiBEZWJ1ZyBtb2RlIHdoZW4gYWNjZXNz
IGlzIGdyYW50ZWQvZGVuaWVkIGZvciBhIHBhZ2UgdGhhdCBpcyBnb25lCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9v
YmpjX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9j
b2RlZ2VuL2dlbmVyYXRlX29iamNfaGVhZGVyLnB5CmluZGV4IDJlNTJmZTZlN2M0ZDY0MjQzNzkw
Y2Y1MTU3MDAyYjYyOWNmNGUwZGUuLjgwMWY0MGE4NmIyNjRhYjRmYzg3MjVkMzk4NDVhOTk5M2Fk
YWMyMjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfaGVhZGVyLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfaGVhZGVyLnB5CkBA
IC0zMCw3ICszMCw3IEBAIGltcG9ydCBzdHJpbmcKIGZyb20gc3RyaW5nIGltcG9ydCBUZW1wbGF0
ZQogCiBmcm9tIGdlbmVyYXRvciBpbXBvcnQgR2VuZXJhdG9yLCB1Y2ZpcnN0Ci1mcm9tIG1vZGVs
cyBpbXBvcnQgT2JqZWN0VHlwZSwgRW51bVR5cGUKK2Zyb20gbW9kZWxzIGltcG9ydCBPYmplY3RU
eXBlLCBFbnVtVHlwZSwgUGxhdGZvcm1zCiBmcm9tIG9iamNfZ2VuZXJhdG9yIGltcG9ydCBPYmpD
R2VuZXJhdG9yLCBqb2luX3R5cGVfYW5kX25hbWUKIGZyb20gb2JqY19nZW5lcmF0b3JfdGVtcGxh
dGVzIGltcG9ydCBPYmpDR2VuZXJhdG9yVGVtcGxhdGVzIGFzIE9iakNUZW1wbGF0ZXMKIApAQCAt
NzMsNiArNzMsNyBAQCBjbGFzcyBPYmpDSGVhZGVyR2VuZXJhdG9yKE9iakNHZW5lcmF0b3IpOgog
ICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5lcmF0ZV9saWNlbnNlKCkpCiAgICAgICAg
IHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShPYmpDVGVtcGxhdGVzLkhlYWRlclByZWx1ZGUpLnN1
YnN0aXR1dGUoTm9uZSwgKipoZWFkZXJfYXJncykpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVuZCgn
XG4nLmpvaW4oZmlsdGVyKE5vbmUsIG1hcChzZWxmLl9nZW5lcmF0ZV9mb3J3YXJkX2RlY2xhcmF0
aW9ucywgdHlwZV9kb21haW5zKSkpKQorICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5fZ2Vu
ZXJhdGVfZW51bV9mb3JfcGxhdGZvcm1zKCkpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVuZCgnXG4n
LmpvaW4oZmlsdGVyKE5vbmUsIG1hcChzZWxmLl9nZW5lcmF0ZV9lbnVtcywgdHlwZV9kb21haW5z
KSkpKQogICAgICAgICBzZWN0aW9ucy5hcHBlbmQoJ1xuJy5qb2luKGZpbHRlcihOb25lLCBtYXAo
c2VsZi5fZ2VuZXJhdGVfdHlwZXMsIHR5cGVfZG9tYWlucykpKSkKIApAQCAtMTM0LDYgKzEzNSwx
MSBAQCBjbGFzcyBPYmpDSGVhZGVyR2VuZXJhdG9yKE9iakNHZW5lcmF0b3IpOgogICAgICAgICAg
ICAgICAgIGxpbmVzLmFwcGVuZChzZWxmLl9nZW5lcmF0ZV90eXBlX2ludGVyZmFjZShkb21haW4s
IGRlY2xhcmF0aW9uKSkKICAgICAgICAgcmV0dXJuICdcbicuam9pbihsaW5lcykKIAorICAgIGRl
ZiBfZ2VuZXJhdGVfZW51bV9mb3JfcGxhdGZvcm1zKHNlbGYpOgorICAgICAgICBvYmpjX2VudW1f
bmFtZSA9ICclc1BsYXRmb3JtJyAlIHNlbGYub2JqY19wcmVmaXgoKQorICAgICAgICBlbnVtX3Zh
bHVlcyA9IFtwbGF0Zm9ybS5uYW1lIGZvciBwbGF0Zm9ybSBpbiBQbGF0Zm9ybXNdCisgICAgICAg
IHJldHVybiBzZWxmLl9nZW5lcmF0ZV9lbnVtKG9iamNfZW51bV9uYW1lLCBlbnVtX3ZhbHVlcykK
KwogICAgIGRlZiBfZ2VuZXJhdGVfYW5vbnltb3VzX2VudW1fZm9yX2RlY2xhcmF0aW9uKHNlbGYs
IGRvbWFpbiwgZGVjbGFyYXRpb24pOgogICAgICAgICBvYmpjX2VudW1fbmFtZSA9IHNlbGYub2Jq
Y19lbnVtX25hbWVfZm9yX2Fub255bW91c19lbnVtX2RlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKQog
ICAgICAgICByZXR1cm4gc2VsZi5fZ2VuZXJhdGVfZW51bShvYmpjX2VudW1fbmFtZSwgZGVjbGFy
YXRpb24udHlwZS5lbnVtX3ZhbHVlcygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqY19wcm90b2NvbF90eXBl
X2NvbnZlcnNpb25zX2hlYWRlci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamNfcHJvdG9jb2xfdHlwZV9jb252ZXJzaW9uc19o
ZWFkZXIucHkKaW5kZXggOTdmZTBhNTk0YTJkMDViYWU1NzAxNTcyYjllNzgyOGM3MTU0ZjY4YS4u
ZWYyOTdiODA0NDE4ODIzZTEyNzFjYmI0NzZhMzc2NDBjY2NhM2Q5ZiAxMDA3NTUKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2Jq
Y19wcm90b2NvbF90eXBlX2NvbnZlcnNpb25zX2hlYWRlci5weQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9vYmpjX3Byb3RvY29s
X3R5cGVfY29udmVyc2lvbnNfaGVhZGVyLnB5CkBAIC0zMCw3ICszMCw3IEBAIGltcG9ydCBzdHJp
bmcKIGZyb20gc3RyaW5nIGltcG9ydCBUZW1wbGF0ZQogCiBmcm9tIGdlbmVyYXRvciBpbXBvcnQg
R2VuZXJhdG9yCi1mcm9tIG1vZGVscyBpbXBvcnQgRW51bVR5cGUsIEZyYW1ld29ya3MKK2Zyb20g
bW9kZWxzIGltcG9ydCBFbnVtVHlwZSwgRnJhbWV3b3JrcywgUGxhdGZvcm1zCiBmcm9tIG9iamNf
Z2VuZXJhdG9yIGltcG9ydCBPYmpDR2VuZXJhdG9yCiBmcm9tIG9iamNfZ2VuZXJhdG9yX3RlbXBs
YXRlcyBpbXBvcnQgT2JqQ0dlbmVyYXRvclRlbXBsYXRlcyBhcyBPYmpDVGVtcGxhdGVzCiAKQEAg
LTY5LDYgKzY5LDcgQEAgY2xhc3MgT2JqQ1Byb3RvY29sVHlwZUNvbnZlcnNpb25zSGVhZGVyR2Vu
ZXJhdG9yKE9iakNHZW5lcmF0b3IpOgogICAgICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5nZW5l
cmF0ZV9saWNlbnNlKCkpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShPYmpDVGVt
cGxhdGVzLlR5cGVDb252ZXJzaW9uc0hlYWRlclByZWx1ZGUpLnN1YnN0aXR1dGUoTm9uZSwgKipo
ZWFkZXJfYXJncykpCiAgICAgICAgIHNlY3Rpb25zLmFwcGVuZChUZW1wbGF0ZShPYmpDVGVtcGxh
dGVzLlR5cGVDb252ZXJzaW9uc0hlYWRlclN0YW5kYXJkKS5zdWJzdGl0dXRlKE5vbmUpKQorICAg
ICAgICBzZWN0aW9ucy5hcHBlbmQoc2VsZi5fZ2VuZXJhdGVfZW51bV9jb252ZXJzaW9uX2Zvcl9w
bGF0Zm9ybXMoKSkKICAgICAgICAgc2VjdGlvbnMuZXh0ZW5kKG1hcChzZWxmLl9nZW5lcmF0ZV9l
bnVtX2NvbnZlcnNpb25fZnVuY3Rpb25zLCBkb21haW5zKSkKICAgICAgICAgc2VjdGlvbnMuYXBw
ZW5kKFRlbXBsYXRlKE9iakNUZW1wbGF0ZXMuVHlwZUNvbnZlcnNpb25zSGVhZGVyUG9zdGx1ZGUp
LnN1YnN0aXR1dGUoTm9uZSwgKipoZWFkZXJfYXJncykpCiAgICAgICAgIHJldHVybiAnXG5cbicu
am9pbihzZWN0aW9ucykKQEAgLTEwNyw2ICsxMDgsMTQgQEAgY2xhc3MgT2JqQ1Byb3RvY29sVHlw
ZUNvbnZlcnNpb25zSGVhZGVyR2VuZXJhdG9yKE9iakNHZW5lcmF0b3IpOgogCiAgICAgICAgIHJl
dHVybiAnXG4nLmpvaW4obGluZXMpCiAKKyAgICBkZWYgX2dlbmVyYXRlX2VudW1fY29udmVyc2lv
bl9mb3JfcGxhdGZvcm1zKHNlbGYpOgorICAgICAgICBvYmpjX2VudW1fbmFtZSA9ICclc1BsYXRm
b3JtJyAlIHNlbGYub2JqY19wcmVmaXgoKQorICAgICAgICBlbnVtX3ZhbHVlcyA9IFtwbGF0Zm9y
bS5uYW1lIGZvciBwbGF0Zm9ybSBpbiBQbGF0Zm9ybXNdCisgICAgICAgIGxpbmVzID0gW10KKyAg
ICAgICAgbGluZXMuYXBwZW5kKHNlbGYuX2dlbmVyYXRlX2VudW1fb2JqY190b19wcm90b2NvbF9z
dHJpbmcob2JqY19lbnVtX25hbWUsIGVudW1fdmFsdWVzKSkKKyAgICAgICAgbGluZXMuYXBwZW5k
KHNlbGYuX2dlbmVyYXRlX2VudW1fZnJvbV9wcm90b2NvbF9zdHJpbmcob2JqY19lbnVtX25hbWUs
IGVudW1fdmFsdWVzKSkKKyAgICAgICAgcmV0dXJuICdcblxuJy5qb2luKGxpbmVzKQorCiAgICAg
ZGVmIF9nZW5lcmF0ZV9hbm9ueW1vdXNfZW51bV9jb252ZXJzaW9uX2Zvcl9kZWNsYXJhdGlvbihz
ZWxmLCBkb21haW4sIGRlY2xhcmF0aW9uKToKICAgICAgICAgb2JqY19lbnVtX25hbWUgPSBzZWxm
Lm9iamNfZW51bV9uYW1lX2Zvcl9hbm9ueW1vdXNfZW51bV9kZWNsYXJhdGlvbihkZWNsYXJhdGlv
bikKICAgICAgICAgZW51bV92YWx1ZXMgPSBkZWNsYXJhdGlvbi50eXBlLmVudW1fdmFsdWVzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2Rl
Z2VuL2dlbmVyYXRvci5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9jb2RlZ2VuL2dlbmVyYXRvci5weQppbmRleCBlMTU2YjFkYmYxNDQ4MjU5NTk1YTJjYjg3MTQ0
YjRhMjYzMGI2Mzk0Li4yZDMzYjk0ZWFiYzgxZWE4MTE5MzU2OWU2OGMxN2NjYjE1ZmMzOTM1IDEw
MDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdl
bi9nZW5lcmF0b3IucHkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL2NvZGVnZW4vZ2VuZXJhdG9yLnB5CkBAIC0zOCw3ICszOCw4IEBAIGxvZyA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKCdnbG9iYWwnKQogZGVmIHVjZmlyc3Qoc3RyKToKICAgICByZXR1cm4gc3RyWzox
XS51cHBlcigpICsgc3RyWzE6XQogCi1fQUxXQVlTX1VQUEVSQ0FTRURfRU5VTV9WQUxVRV9TVUJT
VFJJTkdTID0gc2V0KFsnQVBJJywgJ0NTUycsICdET00nLCAnSFRNTCcsICdKSVQnLCAnWEhSJywg
J1hNTCddKQorX0FMV0FZU19TUEVDSUFMQ0FTRURfRU5VTV9WQUxVRV9TVUJTVFJJTkdTID0gc2V0
KFsnQVBJJywgJ0NTUycsICdET00nLCAnSFRNTCcsICdKSVQnLCAnWEhSJywgJ1hNTCcsICdJT1Mn
LCAnTWFjT1MnXSkKK19BTFdBWVNfU1BFQ0lBTENBU0VEX0VOVU1fVkFMVUVfTE9PS1VQX1RBQkxF
ID0gZGljdChbKHMudXBwZXIoKSwgcykgZm9yIHMgaW4gX0FMV0FZU19TUEVDSUFMQ0FTRURfRU5V
TV9WQUxVRV9TVUJTVFJJTkdTXSkKIAogIyBUaGVzZSBvYmplY3RzIGFyZSBidWlsdCBtYW51YWxs
eSBieSBjcmVhdGluZyBhbmQgc2V0dGluZyBJbnNwZWN0b3JWYWx1ZXMuCiAjIEJlZm9yZSBzZW5k
aW5nIHRoZXNlIG92ZXIgdGhlIHByb3RvY29sLCB0aGVpciBzaGFwZXMgYXJlIGNoZWNrZWQgYWdh
aW5zdCB0aGUgc3BlY2lmaWNhdGlvbi4KQEAgLTIzOCwxMCArMjM5LDEwIEBAIGNsYXNzIEdlbmVy
YXRvcjoKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgc3R5bGl6ZWRfbmFtZV9mb3JfZW51
bV92YWx1ZShlbnVtX3ZhbHVlKToKLSAgICAgICAgcmVnZXggPSAnKCVzKScgJSAifCIuam9pbihf
QUxXQVlTX1VQUEVSQ0FTRURfRU5VTV9WQUxVRV9TVUJTVFJJTkdTKQorICAgICAgICByZWdleCA9
ICcoJXMpJyAlICJ8Ii5qb2luKF9BTFdBWVNfU1BFQ0lBTENBU0VEX0VOVU1fVkFMVUVfU1VCU1RS
SU5HUykKIAogICAgICAgICBkZWYgcmVwbGFjZUNhbGxiYWNrKG1hdGNoKToKLSAgICAgICAgICAg
IHJldHVybiBtYXRjaC5ncm91cCgxKS51cHBlcigpCisgICAgICAgICAgICByZXR1cm4gX0FMV0FZ
U19TUEVDSUFMQ0FTRURfRU5VTV9WQUxVRV9MT09LVVBfVEFCTEVbbWF0Y2guZ3JvdXAoMSkudXBw
ZXIoKV0KIAogICAgICAgICAjIFNwbGl0IG9uIGh5cGhlbiwgaW50cm9kdWNlIGNhbWVsY2FzZSwg
YW5kIGZvcmNlIHVwcGVyY2FzaW5nIG9mIGFjcm9ueW1zLgogICAgICAgICBzdWJ3b3JkcyA9IG1h
cCh1Y2ZpcnN0LCBlbnVtX3ZhbHVlLnNwbGl0KCctJykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9tb2RlbHMucHkgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9tb2RlbHMucHkKaW5kZXgg
Mzk0MTlhY2E0OGY1Zjg3YWQ5MjQxMWEzODZhYmQ1ZjdkODI1MDFlZi4uYjI4NmE1YzQwZDRhMzQy
NWJiMDYyMDc3MDU4YzQzMDE2NTdiZWM2OCAxMDA3NTUKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vbW9kZWxzLnB5CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL21vZGVscy5weQpAQCAtMTMyLDEx
ICsxMzIsMTcgQEAgY2xhc3MgUGxhdGZvcm06CiAKIAogY2xhc3MgUGxhdGZvcm1zOgotICAgIEFs
bCA9IFBsYXRmb3JtKCJBbGwiKQorICAgIEFsbCA9IFBsYXRmb3JtKCJhbGwiKQogICAgIEdlbmVy
aWMgPSBQbGF0Zm9ybSgiZ2VuZXJpYyIpCi0gICAgaU9TID0gUGxhdGZvcm0oImlPUyIpCi0gICAg
bWFjT1MgPSBQbGF0Zm9ybSgibWFjT1MiKQotCisgICAgaU9TID0gUGxhdGZvcm0oImlvcyIpCisg
ICAgbWFjT1MgPSBQbGF0Zm9ybSgibWFjb3MiKQorCisgICAgIyBBbGxvdyBpdGVyYXRpb24gb3Zl
ciBhbGwgcGxhdGZvcm1zLiBTZWUgPGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMv
NTQzNDQwMC8+LgorICAgIGNsYXNzIF9fbWV0YWNsYXNzX18odHlwZSk6CisgICAgICAgIGRlZiBf
X2l0ZXJfXyhzZWxmKToKKyAgICAgICAgICAgIGZvciBhdHRyIGluIGRpcihQbGF0Zm9ybXMpOgor
ICAgICAgICAgICAgICAgIGlmIG5vdCBhdHRyLnN0YXJ0c3dpdGgoIl9fIik6CisgICAgICAgICAg
ICAgICAgICAgIHlpZWxkIGdldGF0dHIoUGxhdGZvcm1zLCBhdHRyKQogCiBjbGFzcyBUeXBlUmVm
ZXJlbmNlOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0eXBlX2tpbmQsIHJlZmVyZW5jZWRfdHlw
ZV9uYW1lLCBlbnVtX3ZhbHVlcywgYXJyYXlfaXRlbXMpOgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2FsbC9leHBlY3RlZC9kZWZpbml0
aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9hbGwvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1t
YWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKaW5kZXggNjQ1ODBmY2EyNzc2ODEwN2UzMTM2NTM3Y2Vm
Mjk2YjIxMTg4NmYxNi4uZGY0MGNlYTVkNTc1MmFhMjNjNzUzNDg1MWQ2ZTFlMjhjMmRjYjlhMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2FsbC9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvYWxsL2V4
cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0CkBAIC04OTQs
NiArODk0LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIEBjbGFzcyBUZXN0UHJv
dG9jb2xOZXR3b3JrRXJyb3I7CiAKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90
b2NvbFBsYXRmb3JtKSB7CisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1BbGwsCisgICAgVGVzdFBy
b3RvY29sUGxhdGZvcm1HZW5lcmljLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TLAorICAg
IFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1MsCit9OworCiAKIAogCkBAIC0xMDAxLDYgKzEwMDgs
MzUgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBPYmpDRW51bVR5
cGU+CiBPYmpDRW51bVR5cGUgZnJvbVByb3RvY29sU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUp
OwogCitpbmxpbmUgU3RyaW5nIHRvUHJvdG9jb2xTdHJpbmcoVGVzdFByb3RvY29sUGxhdGZvcm0g
dmFsdWUpCit7CisgICAgc3dpdGNoKHZhbHVlKSB7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0
Zm9ybUFsbDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiYWxsIik7CisgICAgY2FzZSBU
ZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVyaWM6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwo
ImdlbmVyaWMiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TOgorICAgICAgICBy
ZXR1cm4gQVNDSUlMaXRlcmFsKCJpb3MiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3Jt
TWFjT1M6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm1hY29zIik7CisgICAgfQorfQor
Cit0ZW1wbGF0ZTw+CitpbmxpbmUgVGVzdFByb3RvY29sUGxhdGZvcm0gZnJvbVByb3RvY29sU3Ry
aW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlID09ICJhbGwiKQorICAg
ICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1BbGw7CisgICAgaWYgKHZhbHVlID09ICJn
ZW5lcmljIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYzsKKyAg
ICBpZiAodmFsdWUgPT0gImlvcyIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9y
bUlPUzsKKyAgICBpZiAodmFsdWUgPT0gIm1hY29zIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90
b2NvbFBsYXRmb3JtTWFjT1M7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOworfQorCiAKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVj
dG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
dGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29u
LXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9n
ZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0
CmluZGV4IGI5NjE3NWJiYjQxNzA5ZDc0OWNjNjhmMWFkNTY4Nzk1MzBmNTIyMTEuLmYwYWIwOGRl
MmM1NGY0MGNlN2ZlZjUwMTdhYzljYWRiNzkwMmQ0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1h
bmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRz
LXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0CkBAIC0xMjgyLDYgKzEyODIsMTMgQEAg
dXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogQGNsYXNzIFRlc3RQcm90b2NvbERhdGFiYXNl
RXJyb3I7CiAKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFBsYXRmb3Jt
KSB7CisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1BbGwsCisgICAgVGVzdFByb3RvY29sUGxhdGZv
cm1HZW5lcmljLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TLAorICAgIFRlc3RQcm90b2Nv
bFBsYXRmb3JtTWFjT1MsCit9OworCiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQ
cm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9ycykgewogICAgIFRlc3RQcm90b2NvbERhdGFiYXNl
UHJpbWFyeUNvbG9yc1JlZCwKQEAgLTE0MjAsNiArMTQyNywzNSBAQCBuYW1lc3BhY2UgSW5zcGVj
dG9yIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE9iakNFbnVtVHlwZT4KIE9iakNFbnVtVHlwZSBmcm9t
UHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKK2lubGluZSBTdHJpbmcgdG9Q
cm90b2NvbFN0cmluZyhUZXN0UHJvdG9jb2xQbGF0Zm9ybSB2YWx1ZSkKK3sKKyAgICBzd2l0Y2go
dmFsdWUpIHsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOgorICAgICAgICByZXR1
cm4gQVNDSUlMaXRlcmFsKCJhbGwiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtR2Vu
ZXJpYzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZ2VuZXJpYyIpOworICAgIGNhc2Ug
VGVzdFByb3RvY29sUGxhdGZvcm1JT1M6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImlv
cyIpOworICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzoKKyAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgibWFjb3MiKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4KK2lubGluZSBU
ZXN0UHJvdG9jb2xQbGF0Zm9ybSBmcm9tUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0gImFsbCIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9j
b2xQbGF0Zm9ybUFsbDsKKyAgICBpZiAodmFsdWUgPT0gImdlbmVyaWMiKQorICAgICAgICByZXR1
cm4gVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljOworICAgIGlmICh2YWx1ZSA9PSAiaW9zIikK
KyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TOworICAgIGlmICh2YWx1ZSA9
PSAibWFjb3MiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzsKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1B
bGw7Cit9CisKIAogaW5saW5lIFN0cmluZyB0b1Byb3RvY29sU3RyaW5nKFRlc3RQcm90b2NvbERh
dGFiYXNlUHJpbWFyeUNvbG9ycyB2YWx1ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2NvbW1hbmRz
LXdpdGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29uLXJlc3VsdCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVk
L2NvbW1hbmRzLXdpdGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29uLXJlc3Vs
dAppbmRleCAyNTM3ODM1YTA1ODM1MTVjYTM5MTAzZDE3NzlkOTE1NmJmNzdlNDZlLi5jODllNTA0
YWJkNzAzODg3ZjU3Y2ZmYTEyOGUwZGE2N2RkYWU0MjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9jb21t
YW5kcy13aXRoLW9wdGlvbmFsLWNhbGwtcmV0dXJuLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMv
ZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpz
b24tcmVzdWx0CkBAIC0xMTM5LDYgKzExMzksMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3Rv
cjsKIAogQGNsYXNzIFRlc3RQcm90b2NvbERhdGFiYXNlRXJyb3I7CiAKK3R5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFBsYXRmb3JtKSB7CisgICAgVGVzdFByb3RvY29sUGxh
dGZvcm1BbGwsCisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljLAorICAgIFRlc3RQcm90
b2NvbFBsYXRmb3JtSU9TLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1MsCit9OworCiAK
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNv
bG9ycykgewogICAgIFRlc3RQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9yc1JlZCwKQEAgLTEy
NzUsNiArMTI4MiwzNSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIHRlbXBsYXRlPHR5cGVuYW1l
IE9iakNFbnVtVHlwZT4KIE9iakNFbnVtVHlwZSBmcm9tUHJvdG9jb2xTdHJpbmcoY29uc3QgU3Ry
aW5nJiB2YWx1ZSk7CiAKK2lubGluZSBTdHJpbmcgdG9Qcm90b2NvbFN0cmluZyhUZXN0UHJvdG9j
b2xQbGF0Zm9ybSB2YWx1ZSkKK3sKKyAgICBzd2l0Y2godmFsdWUpIHsKKyAgICBjYXNlIFRlc3RQ
cm90b2NvbFBsYXRmb3JtQWxsOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhbGwiKTsK
KyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYzoKKyAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbCgiZ2VuZXJpYyIpOworICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1JT1M6
CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImlvcyIpOworICAgIGNhc2UgVGVzdFByb3Rv
Y29sUGxhdGZvcm1NYWNPUzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibWFjb3MiKTsK
KyAgICB9Cit9CisKK3RlbXBsYXRlPD4KK2lubGluZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybSBmcm9t
UHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0g
ImFsbCIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDsKKyAgICBpZiAo
dmFsdWUgPT0gImdlbmVyaWMiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1H
ZW5lcmljOworICAgIGlmICh2YWx1ZSA9PSAiaW9zIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90
b2NvbFBsYXRmb3JtSU9TOworICAgIGlmICh2YWx1ZSA9PSAibWFjb3MiKQorICAgICAgICByZXR1
cm4gVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1BbGw7Cit9CisKIAogaW5saW5lIFN0cmlu
ZyB0b1Byb3RvY29sU3RyaW5nKFRlc3RQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9ycyB2YWx1
ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpz
b24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1
bHQKaW5kZXggYWUwOWU5NGMzNTZkMTc1ODEyOWNkYTE5NTNhOTgxMDU3ZjEzMDJjMy4uNmVlYmRm
ZjMyZDM3ZmZjY2E3NTMzY2E1YmQ4MmMxZDcyN2JhZGUyYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZGVm
aW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZGVmaW5p
dGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKQEAgLTY0Niw2ICs2NDYsMTMgQEAg
dXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogCiAKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIFRlc3RQcm90b2NvbFBsYXRmb3JtKSB7CisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1BbGws
CisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljLAorICAgIFRlc3RQcm90b2NvbFBsYXRm
b3JtSU9TLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1MsCit9OworCiAKIAogCkBAIC03
MzcsNiArNzQ0LDM1IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogdGVtcGxhdGU8dHlwZW5hbWUg
T2JqQ0VudW1UeXBlPgogT2JqQ0VudW1UeXBlIGZyb21Qcm90b2NvbFN0cmluZyhjb25zdCBTdHJp
bmcmIHZhbHVlKTsKIAoraW5saW5lIFN0cmluZyB0b1Byb3RvY29sU3RyaW5nKFRlc3RQcm90b2Nv
bFBsYXRmb3JtIHZhbHVlKQoreworICAgIHN3aXRjaCh2YWx1ZSkgeworICAgIGNhc2UgVGVzdFBy
b3RvY29sUGxhdGZvcm1BbGw6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImFsbCIpOwor
ICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljOgorICAgICAgICByZXR1cm4gQVND
SUlMaXRlcmFsKCJnZW5lcmljIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUlPUzoK
KyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW9zIik7CisgICAgY2FzZSBUZXN0UHJvdG9j
b2xQbGF0Zm9ybU1hY09TOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJtYWNvcyIpOwor
ICAgIH0KK30KKwordGVtcGxhdGU8PgoraW5saW5lIFRlc3RQcm90b2NvbFBsYXRmb3JtIGZyb21Q
cm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSA9PSAi
YWxsIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOworICAgIGlmICh2
YWx1ZSA9PSAiZ2VuZXJpYyIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdl
bmVyaWM7CisgICAgaWYgKHZhbHVlID09ICJpb3MiKQorICAgICAgICByZXR1cm4gVGVzdFByb3Rv
Y29sUGxhdGZvcm1JT1M7CisgICAgaWYgKHZhbHVlID09ICJtYWNvcyIpCisgICAgICAgIHJldHVy
biBUZXN0UHJvdG9jb2xQbGF0Zm9ybU1hY09TOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
SW5zcGVjdG9yCiAKICMjIyBFbmQgRmlsZTogVGVzdFByb3RvY29sVHlwZUNvbnZlcnNpb25zLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi1hdmFpbGFiaWxpdHkuanNvbi1yZXN1bHQgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9kb21haW4tYXZhaWxhYmlsaXR5Lmpzb24tcmVzdWx0CmluZGV4IGQ3NzA3MzU1N2JmYjgyMDRk
OGU0YTM1ZjI1NThlZjI0M2ZkY2U5YmMuLmMzYTE0M2VmYTFkOGQ5YWUzZmE0YmE5NTBkMzMyYTY4
MGNhOGViNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbi1hdmFpbGFiaWxpdHkuanNvbi1yZXN1
bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dl
bmVyaWMvZXhwZWN0ZWQvZG9tYWluLWF2YWlsYWJpbGl0eS5qc29uLXJlc3VsdApAQCAtODkyLDYg
Kzg5MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiAKIAordHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgVGVzdFByb3RvY29sUGxhdGZvcm0pIHsKKyAgICBUZXN0UHJvdG9jb2xQ
bGF0Zm9ybUFsbCwKKyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVyaWMsCisgICAgVGVzdFBy
b3RvY29sUGxhdGZvcm1JT1MsCisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUywKK307CisK
IAogCiAKQEAgLTk5MSw2ICs5OTgsMzUgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiB0ZW1wbGF0
ZTx0eXBlbmFtZSBPYmpDRW51bVR5cGU+CiBPYmpDRW51bVR5cGUgZnJvbVByb3RvY29sU3RyaW5n
KGNvbnN0IFN0cmluZyYgdmFsdWUpOwogCitpbmxpbmUgU3RyaW5nIHRvUHJvdG9jb2xTdHJpbmco
VGVzdFByb3RvY29sUGxhdGZvcm0gdmFsdWUpCit7CisgICAgc3dpdGNoKHZhbHVlKSB7CisgICAg
Y2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bCgiYWxsIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVyaWM6CisgICAgICAg
IHJldHVybiBBU0NJSUxpdGVyYWwoImdlbmVyaWMiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBs
YXRmb3JtSU9TOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJpb3MiKTsKKyAgICBjYXNl
IFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1M6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwo
Im1hY29zIik7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+CitpbmxpbmUgVGVzdFByb3RvY29sUGxh
dGZvcm0gZnJvbVByb3RvY29sU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYg
KHZhbHVlID09ICJhbGwiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1BbGw7
CisgICAgaWYgKHZhbHVlID09ICJnZW5lcmljIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2Nv
bFBsYXRmb3JtR2VuZXJpYzsKKyAgICBpZiAodmFsdWUgPT0gImlvcyIpCisgICAgICAgIHJldHVy
biBUZXN0UHJvdG9jb2xQbGF0Zm9ybUlPUzsKKyAgICBpZiAodmFsdWUgPT0gIm1hY29zIikKKyAg
ICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1M7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOworfQorCiB9IC8v
IG5hbWVzcGFjZSBJbnNwZWN0b3IKIAogIyMjIEVuZCBGaWxlOiBUZXN0UHJvdG9jb2xUeXBlQ29u
dmVyc2lvbnMuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9z
Y3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZhcnlpbmctY29tbWFu
ZC1zaXplcy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2RvbWFpbnMtd2l0aC12YXJ5aW5nLWNvbW1hbmQt
c2l6ZXMuanNvbi1yZXN1bHQKaW5kZXggNWFlN2FmODY1YTNiZWY5YTExODI1M2ZkZmExZTEyMmVh
ZGJjNWUwMy4uMTNlYWNjM2IxYTNmNjRlNzRmNDcyYjI5ZTA1ODc0NTBiNTNiMWZkYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVy
aWMvZXhwZWN0ZWQvZG9tYWlucy13aXRoLXZhcnlpbmctY29tbWFuZC1zaXplcy5qc29uLXJlc3Vs
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2Vu
ZXJpYy9leHBlY3RlZC9kb21haW5zLXdpdGgtdmFyeWluZy1jb21tYW5kLXNpemVzLmpzb24tcmVz
dWx0CkBAIC0xMTQ5LDYgKzExNDksMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAog
CiAKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFBsYXRmb3JtKSB7Cisg
ICAgVGVzdFByb3RvY29sUGxhdGZvcm1BbGwsCisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1HZW5l
cmljLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TLAorICAgIFRlc3RQcm90b2NvbFBsYXRm
b3JtTWFjT1MsCit9OworCiAKIAogCkBAIC0xMjU0LDYgKzEyNjEsMzUgQEAgbmFtZXNwYWNlIElu
c3BlY3RvciB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBPYmpDRW51bVR5cGU+CiBPYmpDRW51bVR5cGUg
ZnJvbVByb3RvY29sU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpOwogCitpbmxpbmUgU3RyaW5n
IHRvUHJvdG9jb2xTdHJpbmcoVGVzdFByb3RvY29sUGxhdGZvcm0gdmFsdWUpCit7CisgICAgc3dp
dGNoKHZhbHVlKSB7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDoKKyAgICAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgiYWxsIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9y
bUdlbmVyaWM6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImdlbmVyaWMiKTsKKyAgICBj
YXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJpb3MiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1M6CisgICAgICAgIHJl
dHVybiBBU0NJSUxpdGVyYWwoIm1hY29zIik7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+Citpbmxp
bmUgVGVzdFByb3RvY29sUGxhdGZvcm0gZnJvbVByb3RvY29sU3RyaW5nKGNvbnN0IFN0cmluZyYg
dmFsdWUpCit7CisgICAgaWYgKHZhbHVlID09ICJhbGwiKQorICAgICAgICByZXR1cm4gVGVzdFBy
b3RvY29sUGxhdGZvcm1BbGw7CisgICAgaWYgKHZhbHVlID09ICJnZW5lcmljIikKKyAgICAgICAg
cmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYzsKKyAgICBpZiAodmFsdWUgPT0gImlv
cyIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUlPUzsKKyAgICBpZiAodmFs
dWUgPT0gIm1hY29zIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1M7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRm
b3JtQWxsOworfQorCiAKIAogfSAvLyBuYW1lc3BhY2UgSW5zcGVjdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBl
Y3RlZC9lbnVtLXZhbHVlcy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2VudW0tdmFsdWVzLmpzb24tcmVz
dWx0CmluZGV4IDE4ZTU5Y2Y5OWNhMjVmOWIxNTFmMDQ4YjU5ZTZlZDQ5Yjg4NDU4MzUuLjE4NGZk
YTYyZmRiZWYyMDhhNmQyMDY3OTU4YThlNWRiOTVjMzY1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2Vu
dW0tdmFsdWVzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2VudW0tdmFsdWVzLmpzb24tcmVzdWx0
CkBAIC05MjksNiArOTI5LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIAogCit0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBUZXN0UHJvdG9jb2xQbGF0Zm9ybSkgeworICAgIFRl
c3RQcm90b2NvbFBsYXRmb3JtQWxsLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYywK
KyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9ybUlPUywKKyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9ybU1h
Y09TLAorfTsKKwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBUZXN0UHJvdG9jb2xUeXBl
RG9tYWluRW51bSkgewogICAgIFRlc3RQcm90b2NvbFR5cGVEb21haW5FbnVtU2hhcmVkLApAQCAt
MTAzNCw2ICsxMDQxLDM1IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogdGVtcGxhdGU8dHlwZW5h
bWUgT2JqQ0VudW1UeXBlPgogT2JqQ0VudW1UeXBlIGZyb21Qcm90b2NvbFN0cmluZyhjb25zdCBT
dHJpbmcmIHZhbHVlKTsKIAoraW5saW5lIFN0cmluZyB0b1Byb3RvY29sU3RyaW5nKFRlc3RQcm90
b2NvbFBsYXRmb3JtIHZhbHVlKQoreworICAgIHN3aXRjaCh2YWx1ZSkgeworICAgIGNhc2UgVGVz
dFByb3RvY29sUGxhdGZvcm1BbGw6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImFsbCIp
OworICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljOgorICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsKCJnZW5lcmljIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUlP
UzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW9zIik7CisgICAgY2FzZSBUZXN0UHJv
dG9jb2xQbGF0Zm9ybU1hY09TOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJtYWNvcyIp
OworICAgIH0KK30KKwordGVtcGxhdGU8PgoraW5saW5lIFRlc3RQcm90b2NvbFBsYXRmb3JtIGZy
b21Qcm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSA9
PSAiYWxsIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOworICAgIGlm
ICh2YWx1ZSA9PSAiZ2VuZXJpYyIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9y
bUdlbmVyaWM7CisgICAgaWYgKHZhbHVlID09ICJpb3MiKQorICAgICAgICByZXR1cm4gVGVzdFBy
b3RvY29sUGxhdGZvcm1JT1M7CisgICAgaWYgKHZhbHVlID09ICJtYWNvcyIpCisgICAgICAgIHJl
dHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybU1hY09TOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDsKK30KKwogCiBpbmxpbmUgU3Ry
aW5nIHRvUHJvdG9jb2xTdHJpbmcoVGVzdFByb3RvY29sVHlwZURvbWFpbkVudW0gdmFsdWUpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvZ2VuZXJpYy9leHBlY3RlZC9ldmVudHMtd2l0aC1vcHRpb25hbC1wYXJhbWV0ZXJzLmpzb24t
cmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dl
bmVyaWMvZXhwZWN0ZWQvZXZlbnRzLXdpdGgtb3B0aW9uYWwtcGFyYW1ldGVycy5qc29uLXJlc3Vs
dAppbmRleCA5NjAyYTg2M2NlMDkxMmJiYWI0NzA5NjFmNjY0MzVhYTZkYmQ4ZWFlLi5lZTE5YmYz
YWIzNmM1M2E2ZTU3Yzk5NjNhNGNiM2Q5ZWRhNjkyOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9ldmVu
dHMtd2l0aC1vcHRpb25hbC1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2V2ZW50
cy13aXRoLW9wdGlvbmFsLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKQEAgLTg4Miw2ICs4ODIsMTMg
QEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogQGNsYXNzIFRlc3RQcm90b2NvbERhdGFi
YXNlRXJyb3I7CiAKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFBsYXRm
b3JtKSB7CisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1BbGwsCisgICAgVGVzdFByb3RvY29sUGxh
dGZvcm1HZW5lcmljLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TLAorICAgIFRlc3RQcm90
b2NvbFBsYXRmb3JtTWFjT1MsCit9OworCiAKIAogCkBAIC05ODcsNiArOTk0LDM1IEBAIG5hbWVz
cGFjZSBJbnNwZWN0b3IgewogdGVtcGxhdGU8dHlwZW5hbWUgT2JqQ0VudW1UeXBlPgogT2JqQ0Vu
dW1UeXBlIGZyb21Qcm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKTsKIAoraW5saW5l
IFN0cmluZyB0b1Byb3RvY29sU3RyaW5nKFRlc3RQcm90b2NvbFBsYXRmb3JtIHZhbHVlKQorewor
ICAgIHN3aXRjaCh2YWx1ZSkgeworICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1BbGw6Cisg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImFsbCIpOworICAgIGNhc2UgVGVzdFByb3RvY29s
UGxhdGZvcm1HZW5lcmljOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJnZW5lcmljIik7
CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUlPUzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbCgiaW9zIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybU1hY09TOgorICAg
ICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJtYWNvcyIpOworICAgIH0KK30KKwordGVtcGxhdGU8
PgoraW5saW5lIFRlc3RQcm90b2NvbFBsYXRmb3JtIGZyb21Qcm90b2NvbFN0cmluZyhjb25zdCBT
dHJpbmcmIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSA9PSAiYWxsIikKKyAgICAgICAgcmV0dXJu
IFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOworICAgIGlmICh2YWx1ZSA9PSAiZ2VuZXJpYyIpCisg
ICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVyaWM7CisgICAgaWYgKHZhbHVl
ID09ICJpb3MiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1JT1M7CisgICAg
aWYgKHZhbHVlID09ICJtYWNvcyIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9y
bU1hY09TOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBUZXN0UHJvdG9j
b2xQbGF0Zm9ybUFsbDsKK30KKwogCiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVy
aWMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVz
dWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVy
aWMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVz
dWx0CmluZGV4IDNiZDRkMTUwMWY2ZTM1ZTU4ZWE1MzBiYWMxMDY3YWQzNzQwOTMwNmYuLjMzODgz
ZTc0MGEyMmUyZWQ1MjE2Y2VmM2FkOWQyYTQwNGJmZWQyNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL2dl
bmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVhdHVyZS1ndWFyZHMuanNvbi1yZXN1bHQKQEAgLTky
MSw2ICs5MjEsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogQGNsYXNzIFRlc3RQ
cm90b2NvbE5ldHdvcmsyTmV0d29ya0Vycm9yOwogCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBUZXN0UHJvdG9jb2xQbGF0Zm9ybSkgeworICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsLAor
ICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYywKKyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9y
bUlPUywKKyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9ybU1hY09TLAorfTsKKwogCiAKIApAQCAtMTAy
OCw2ICsxMDM1LDM1IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogdGVtcGxhdGU8dHlwZW5hbWUg
T2JqQ0VudW1UeXBlPgogT2JqQ0VudW1UeXBlIGZyb21Qcm90b2NvbFN0cmluZyhjb25zdCBTdHJp
bmcmIHZhbHVlKTsKIAoraW5saW5lIFN0cmluZyB0b1Byb3RvY29sU3RyaW5nKFRlc3RQcm90b2Nv
bFBsYXRmb3JtIHZhbHVlKQoreworICAgIHN3aXRjaCh2YWx1ZSkgeworICAgIGNhc2UgVGVzdFBy
b3RvY29sUGxhdGZvcm1BbGw6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImFsbCIpOwor
ICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljOgorICAgICAgICByZXR1cm4gQVND
SUlMaXRlcmFsKCJnZW5lcmljIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUlPUzoK
KyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW9zIik7CisgICAgY2FzZSBUZXN0UHJvdG9j
b2xQbGF0Zm9ybU1hY09TOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJtYWNvcyIpOwor
ICAgIH0KK30KKwordGVtcGxhdGU8PgoraW5saW5lIFRlc3RQcm90b2NvbFBsYXRmb3JtIGZyb21Q
cm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSA9PSAi
YWxsIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOworICAgIGlmICh2
YWx1ZSA9PSAiZ2VuZXJpYyIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdl
bmVyaWM7CisgICAgaWYgKHZhbHVlID09ICJpb3MiKQorICAgICAgICByZXR1cm4gVGVzdFByb3Rv
Y29sUGxhdGZvcm1JT1M7CisgICAgaWYgKHZhbHVlID09ICJtYWNvcyIpCisgICAgICAgIHJldHVy
biBUZXN0UHJvdG9jb2xQbGF0Zm9ybU1hY09TOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDsKK30KKwogCiAKIH0gLy8gbmFtZXNw
YWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvc2FtZS10eXBlLWlkLWRpZmZlcmVudC1k
b21haW4uanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC9zYW1lLXR5cGUtaWQtZGlmZmVyZW50LWRvbWFpbi5q
c29uLXJlc3VsdAppbmRleCA2ZTdhZDg4ZDU0NzZjYmVjMWMxZThiMzc3OTE4ZGQyY2RhZjVkOTdl
Li42ZDMyMjdkM2MxMDQyNjMxNzI3ZjIxNjc2ZDQxMzgzNThmYTJjY2Q2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBl
Y3RlZC9zYW1lLXR5cGUtaWQtZGlmZmVyZW50LWRvbWFpbi5qc29uLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3Rl
ZC9zYW1lLXR5cGUtaWQtZGlmZmVyZW50LWRvbWFpbi5qc29uLXJlc3VsdApAQCAtNjU2LDYgKzY1
NiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiAKIAordHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgVGVzdFByb3RvY29sUGxhdGZvcm0pIHsKKyAgICBUZXN0UHJvdG9jb2xQbGF0
Zm9ybUFsbCwKKyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVyaWMsCisgICAgVGVzdFByb3Rv
Y29sUGxhdGZvcm1JT1MsCisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUywKK307CisKIAog
CiAKQEAgLTc0Nyw2ICs3NTQsMzUgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiB0ZW1wbGF0ZTx0
eXBlbmFtZSBPYmpDRW51bVR5cGU+CiBPYmpDRW51bVR5cGUgZnJvbVByb3RvY29sU3RyaW5nKGNv
bnN0IFN0cmluZyYgdmFsdWUpOwogCitpbmxpbmUgU3RyaW5nIHRvUHJvdG9jb2xTdHJpbmcoVGVz
dFByb3RvY29sUGxhdGZvcm0gdmFsdWUpCit7CisgICAgc3dpdGNoKHZhbHVlKSB7CisgICAgY2Fz
ZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
YWxsIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVyaWM6CisgICAgICAgIHJl
dHVybiBBU0NJSUxpdGVyYWwoImdlbmVyaWMiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRm
b3JtSU9TOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJpb3MiKTsKKyAgICBjYXNlIFRl
c3RQcm90b2NvbFBsYXRmb3JtTWFjT1M6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm1h
Y29zIik7CisgICAgfQorfQorCit0ZW1wbGF0ZTw+CitpbmxpbmUgVGVzdFByb3RvY29sUGxhdGZv
cm0gZnJvbVByb3RvY29sU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKHZh
bHVlID09ICJhbGwiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1BbGw7Cisg
ICAgaWYgKHZhbHVlID09ICJnZW5lcmljIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBs
YXRmb3JtR2VuZXJpYzsKKyAgICBpZiAodmFsdWUgPT0gImlvcyIpCisgICAgICAgIHJldHVybiBU
ZXN0UHJvdG9jb2xQbGF0Zm9ybUlPUzsKKyAgICBpZiAodmFsdWUgPT0gIm1hY29zIikKKyAgICAg
ICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1M7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOworfQorCiAKIAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMv
Z2VuZXJpYy9leHBlY3RlZC9zaGFkb3dlZC1vcHRpb25hbC10eXBlLXNldHRlcnMuanNvbi1yZXN1
bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJp
Yy9leHBlY3RlZC9zaGFkb3dlZC1vcHRpb25hbC10eXBlLXNldHRlcnMuanNvbi1yZXN1bHQKaW5k
ZXggNGE5NTRhNDBkZDBkMzE0NjRlM2MyYTUxOTQ0NTYxODlhZDljMmYyNy4uNzUxZWY3MzEwZmFi
ODE5YjI1YjVlNzUwZGYxMDEyMDQ2YWYzYzc0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvc2hhZG93ZWQt
b3B0aW9uYWwtdHlwZS1zZXR0ZXJzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3NoYWRvd2VkLW9w
dGlvbmFsLXR5cGUtc2V0dGVycy5qc29uLXJlc3VsdApAQCAtNzc5LDYgKzc3OSwxMyBAQCB1c2lu
ZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBAY2xhc3MgVGVzdFByb3RvY29sUnVudGltZUtleVBh
dGg7CiAKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFBsYXRmb3JtKSB7
CisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1BbGwsCisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1H
ZW5lcmljLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TLAorICAgIFRlc3RQcm90b2NvbFBs
YXRmb3JtTWFjT1MsCit9OworCiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90
b2NvbFJ1bnRpbWVLZXlQYXRoVHlwZSkgewogICAgIFRlc3RQcm90b2NvbFJ1bnRpbWVLZXlQYXRo
VHlwZU51bGwsCkBAIC04ODQsNiArODkxLDM1IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogdGVt
cGxhdGU8dHlwZW5hbWUgT2JqQ0VudW1UeXBlPgogT2JqQ0VudW1UeXBlIGZyb21Qcm90b2NvbFN0
cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKTsKIAoraW5saW5lIFN0cmluZyB0b1Byb3RvY29sU3Ry
aW5nKFRlc3RQcm90b2NvbFBsYXRmb3JtIHZhbHVlKQoreworICAgIHN3aXRjaCh2YWx1ZSkgewor
ICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1BbGw6CisgICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWwoImFsbCIpOworICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljOgorICAg
ICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJnZW5lcmljIik7CisgICAgY2FzZSBUZXN0UHJvdG9j
b2xQbGF0Zm9ybUlPUzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW9zIik7CisgICAg
Y2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybU1hY09TOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRl
cmFsKCJtYWNvcyIpOworICAgIH0KK30KKwordGVtcGxhdGU8PgoraW5saW5lIFRlc3RQcm90b2Nv
bFBsYXRmb3JtIGZyb21Qcm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAg
IGlmICh2YWx1ZSA9PSAiYWxsIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3Jt
QWxsOworICAgIGlmICh2YWx1ZSA9PSAiZ2VuZXJpYyIpCisgICAgICAgIHJldHVybiBUZXN0UHJv
dG9jb2xQbGF0Zm9ybUdlbmVyaWM7CisgICAgaWYgKHZhbHVlID09ICJpb3MiKQorICAgICAgICBy
ZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1JT1M7CisgICAgaWYgKHZhbHVlID09ICJtYWNvcyIp
CisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybU1hY09TOworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDsKK30KKwog
CiBpbmxpbmUgU3RyaW5nIHRvUHJvdG9jb2xTdHJpbmcoVGVzdFByb3RvY29sUnVudGltZUtleVBh
dGhUeXBlIHZhbHVlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1hbGlh
c2VkLXByaW1pdGl2ZS10eXBlLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1h
bGlhc2VkLXByaW1pdGl2ZS10eXBlLmpzb24tcmVzdWx0CmluZGV4IGJiNzc1OTVmNTY4ZDE5ODFh
MzIxNTJiOTE4NTAxMDI2NmM3ZTQ3NWUuLjdlOTg0MzQ0Zjg3MzY2ZmYyOTE2ZDU3Yzg5NTFkMzI2
NjU5NzEzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tYWxpYXNlZC1wcmlt
aXRpdmUtdHlwZS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWFsaWFz
ZWQtcHJpbWl0aXZlLXR5cGUuanNvbi1yZXN1bHQKQEAgLTY1MSw2ICs2NTEsMTMgQEAgdXNpbmcg
bmFtZXNwYWNlIEluc3BlY3RvcjsKIAogCiAKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRl
c3RQcm90b2NvbFBsYXRmb3JtKSB7CisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1BbGwsCisgICAg
VGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9T
LAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1MsCit9OworCiAKIAogCkBAIC03NDIsNiAr
NzQ5LDM1IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogdGVtcGxhdGU8dHlwZW5hbWUgT2JqQ0Vu
dW1UeXBlPgogT2JqQ0VudW1UeXBlIGZyb21Qcm90b2NvbFN0cmluZyhjb25zdCBTdHJpbmcmIHZh
bHVlKTsKIAoraW5saW5lIFN0cmluZyB0b1Byb3RvY29sU3RyaW5nKFRlc3RQcm90b2NvbFBsYXRm
b3JtIHZhbHVlKQoreworICAgIHN3aXRjaCh2YWx1ZSkgeworICAgIGNhc2UgVGVzdFByb3RvY29s
UGxhdGZvcm1BbGw6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImFsbCIpOworICAgIGNh
c2UgVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRl
cmFsKCJnZW5lcmljIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUlPUzoKKyAgICAg
ICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiaW9zIik7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0
Zm9ybU1hY09TOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJtYWNvcyIpOworICAgIH0K
K30KKwordGVtcGxhdGU8PgoraW5saW5lIFRlc3RQcm90b2NvbFBsYXRmb3JtIGZyb21Qcm90b2Nv
bFN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICh2YWx1ZSA9PSAiYWxsIikK
KyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOworICAgIGlmICh2YWx1ZSA9
PSAiZ2VuZXJpYyIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVyaWM7
CisgICAgaWYgKHZhbHVlID09ICJpb3MiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxh
dGZvcm1JT1M7CisgICAgaWYgKHZhbHVlID09ICJtYWNvcyIpCisgICAgICAgIHJldHVybiBUZXN0
UHJvdG9jb2xQbGF0Zm9ybU1hY09TOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDsKK30KKwogCiAKIH0gLy8gbmFtZXNwYWNlIElu
c3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3Jp
cHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1hcnJheS10eXBlLmpz
b24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1hcnJheS10eXBlLmpzb24tcmVzdWx0
CmluZGV4IDI4MmU0MmRiOTA4Mzk3ZmU1MWU3NTc4MGU5NGNhYTMxMjdiODIyNjkuLjJmODExNjgz
YzA4MDk3NzEwNmM3ZDMxYjM4ZDMyYjM4NzhhMzU0MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUt
ZGVjbGFyYXRpb24tYXJyYXktdHlwZS5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLWRlY2xh
cmF0aW9uLWFycmF5LXR5cGUuanNvbi1yZXN1bHQKQEAgLTcyOSw2ICs3MjksMTMgQEAgdXNpbmcg
bmFtZXNwYWNlIEluc3BlY3RvcjsKIAogCiAKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRl
c3RQcm90b2NvbFBsYXRmb3JtKSB7CisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1BbGwsCisgICAg
VGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9T
LAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1MsCit9OworCiAKIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIFRlc3RQcm90b2NvbERlYnVnZ2VyUmVhc29uKSB7CiAgICAgVGVzdFByb3Rv
Y29sRGVidWdnZXJSZWFzb25EaWVkLApAQCAtODI1LDYgKzgzMiwzNSBAQCBuYW1lc3BhY2UgSW5z
cGVjdG9yIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE9iakNFbnVtVHlwZT4KIE9iakNFbnVtVHlwZSBm
cm9tUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKK2lubGluZSBTdHJpbmcg
dG9Qcm90b2NvbFN0cmluZyhUZXN0UHJvdG9jb2xQbGF0Zm9ybSB2YWx1ZSkKK3sKKyAgICBzd2l0
Y2godmFsdWUpIHsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOgorICAgICAgICBy
ZXR1cm4gQVNDSUlMaXRlcmFsKCJhbGwiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3Jt
R2VuZXJpYzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZ2VuZXJpYyIpOworICAgIGNh
c2UgVGVzdFByb3RvY29sUGxhdGZvcm1JT1M6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwo
ImlvcyIpOworICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzoKKyAgICAgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgibWFjb3MiKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4KK2lubGlu
ZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybSBmcm9tUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0gImFsbCIpCisgICAgICAgIHJldHVybiBUZXN0UHJv
dG9jb2xQbGF0Zm9ybUFsbDsKKyAgICBpZiAodmFsdWUgPT0gImdlbmVyaWMiKQorICAgICAgICBy
ZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljOworICAgIGlmICh2YWx1ZSA9PSAiaW9z
IikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TOworICAgIGlmICh2YWx1
ZSA9PSAibWFjb3MiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzsK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZv
cm1BbGw7Cit9CisKIAogaW5saW5lIFN0cmluZyB0b1Byb3RvY29sU3RyaW5nKFRlc3RQcm90b2Nv
bERlYnVnZ2VyUmVhc29uIHZhbHVlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJh
dGlvbi1lbnVtLXR5cGUuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWVudW0t
dHlwZS5qc29uLXJlc3VsdAppbmRleCA4YjY1MmI3NGI1Nzg0YTI1ZmNiOWM4YjYzN2E2ODU4OGM0
MDFhODY4Li5jYzUxMDMzZDY1ZDMxODFjMmIyOTVhOWI3MzgxZTg0N2NiODI2MDg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJp
Yy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLWVudW0tdHlwZS5qc29uLXJlc3VsdAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBl
Y3RlZC90eXBlLWRlY2xhcmF0aW9uLWVudW0tdHlwZS5qc29uLXJlc3VsdApAQCAtNzQ5LDYgKzc0
OSwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiAKIAordHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgVGVzdFByb3RvY29sUGxhdGZvcm0pIHsKKyAgICBUZXN0UHJvdG9jb2xQbGF0
Zm9ybUFsbCwKKyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVyaWMsCisgICAgVGVzdFByb3Rv
Y29sUGxhdGZvcm1JT1MsCisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUywKK307CisKIAog
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgVGVzdFByb3RvY29sUnVudGltZUZhcm1BbmltYWxz
KSB7CiAgICAgVGVzdFByb3RvY29sUnVudGltZUZhcm1BbmltYWxzUGlncywKQEAgLTg1Myw2ICs4
NjAsMzUgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBPYmpDRW51
bVR5cGU+CiBPYmpDRW51bVR5cGUgZnJvbVByb3RvY29sU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFs
dWUpOwogCitpbmxpbmUgU3RyaW5nIHRvUHJvdG9jb2xTdHJpbmcoVGVzdFByb3RvY29sUGxhdGZv
cm0gdmFsdWUpCit7CisgICAgc3dpdGNoKHZhbHVlKSB7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQ
bGF0Zm9ybUFsbDoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiYWxsIik7CisgICAgY2Fz
ZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVyaWM6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVy
YWwoImdlbmVyaWMiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TOgorICAgICAg
ICByZXR1cm4gQVNDSUlMaXRlcmFsKCJpb3MiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRm
b3JtTWFjT1M6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm1hY29zIik7CisgICAgfQor
fQorCit0ZW1wbGF0ZTw+CitpbmxpbmUgVGVzdFByb3RvY29sUGxhdGZvcm0gZnJvbVByb3RvY29s
U3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlID09ICJhbGwiKQor
ICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1BbGw7CisgICAgaWYgKHZhbHVlID09
ICJnZW5lcmljIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYzsK
KyAgICBpZiAodmFsdWUgPT0gImlvcyIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0
Zm9ybUlPUzsKKyAgICBpZiAodmFsdWUgPT0gIm1hY29zIikKKyAgICAgICAgcmV0dXJuIFRlc3RQ
cm90b2NvbFBsYXRmb3JtTWFjT1M7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOworfQorCiAKIGlubGluZSBTdHJpbmcgdG9Qcm90
b2NvbFN0cmluZyhUZXN0UHJvdG9jb2xSdW50aW1lRmFybUFuaW1hbHMgdmFsdWUpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2Vu
ZXJpYy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVzdWx0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhw
ZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5qc29uLXJlc3VsdAppbmRleCAxOGRm
Zjc4ZjE1OGU4YTBhZWY2Yjc5MTY5ZmEwNTljNTQ5ZjRiYjFiLi41YjhjNzZlMzAwYjc0YzZhMmRj
ZmY4YTNkM2M4MGRlODdmMTBkMWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9u
LW9iamVjdC10eXBlLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tb2Jq
ZWN0LXR5cGUuanNvbi1yZXN1bHQKQEAgLTExMjEsNiArMTEyMSwxMyBAQCB1c2luZyBuYW1lc3Bh
Y2UgSW5zcGVjdG9yOwogQGNsYXNzIFRlc3RQcm90b2NvbERhdGFiYXNlRHVtbXlPYmplY3Q7CiBA
Y2xhc3MgVGVzdFByb3RvY29sVGVzdFBhcmFtZXRlckJ1bmRsZTsKIAordHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgVGVzdFByb3RvY29sUGxhdGZvcm0pIHsKKyAgICBUZXN0UHJvdG9jb2xQbGF0
Zm9ybUFsbCwKKyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVyaWMsCisgICAgVGVzdFByb3Rv
Y29sUGxhdGZvcm1JT1MsCisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUywKK307CisKIAog
CiAKQEAgLTEyNzgsNiArMTI4NSwzNSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIHRlbXBsYXRl
PHR5cGVuYW1lIE9iakNFbnVtVHlwZT4KIE9iakNFbnVtVHlwZSBmcm9tUHJvdG9jb2xTdHJpbmco
Y29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKK2lubGluZSBTdHJpbmcgdG9Qcm90b2NvbFN0cmluZyhU
ZXN0UHJvdG9jb2xQbGF0Zm9ybSB2YWx1ZSkKK3sKKyAgICBzd2l0Y2godmFsdWUpIHsKKyAgICBj
YXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFs
KCJhbGwiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYzoKKyAgICAgICAg
cmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZ2VuZXJpYyIpOworICAgIGNhc2UgVGVzdFByb3RvY29sUGxh
dGZvcm1JT1M6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImlvcyIpOworICAgIGNhc2Ug
VGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgi
bWFjb3MiKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4KK2lubGluZSBUZXN0UHJvdG9jb2xQbGF0
Zm9ybSBmcm9tUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAo
dmFsdWUgPT0gImFsbCIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDsK
KyAgICBpZiAodmFsdWUgPT0gImdlbmVyaWMiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29s
UGxhdGZvcm1HZW5lcmljOworICAgIGlmICh2YWx1ZSA9PSAiaW9zIikKKyAgICAgICAgcmV0dXJu
IFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TOworICAgIGlmICh2YWx1ZSA9PSAibWFjb3MiKQorICAg
ICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzsKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1BbGw7Cit9CisKIAogCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtcmVxdWlyaW5nLXJ1bnRpbWUtY2FzdHMuanNvbi1yZXN1
bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2VuZXJp
Yy9leHBlY3RlZC90eXBlLXJlcXVpcmluZy1ydW50aW1lLWNhc3RzLmpzb24tcmVzdWx0CmluZGV4
IDU1ZmY5MzhiMjVhYTBkMWZjMDBhNWVmYzY3MmI0ODBkY2U3NjEwN2QuLjdkYzg5YzM0YzNmOTAz
NjBmYWU5MGRhNjZjODk2OWU5YWVhNmRiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3R5cGUtcmVxdWly
aW5nLXJ1bnRpbWUtY2FzdHMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvdHlwZS1yZXF1aXJpbmct
cnVudGltZS1jYXN0cy5qc29uLXJlc3VsdApAQCAtMTA3OCw2ICsxMDc4LDEzIEBAIHVzaW5nIG5h
bWVzcGFjZSBJbnNwZWN0b3I7CiBAY2xhc3MgVGVzdFByb3RvY29sVGVzdFJlY3Vyc2l2ZU9iamVj
dDE7CiBAY2xhc3MgVGVzdFByb3RvY29sVGVzdFJlY3Vyc2l2ZU9iamVjdDI7CiAKK3R5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFBsYXRmb3JtKSB7CisgICAgVGVzdFByb3Rv
Y29sUGxhdGZvcm1BbGwsCisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljLAorICAgIFRl
c3RQcm90b2NvbFBsYXRmb3JtSU9TLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1MsCit9
OworCiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFRlc3RQcm90b2NvbFRlc3RVbmNhc3Rl
ZEFuaW1hbHMpIHsKICAgICBUZXN0UHJvdG9jb2xUZXN0VW5jYXN0ZWRBbmltYWxzUGlncywKQEAg
LTEyMDcsNiArMTIxNCwzNSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIHRlbXBsYXRlPHR5cGVu
YW1lIE9iakNFbnVtVHlwZT4KIE9iakNFbnVtVHlwZSBmcm9tUHJvdG9jb2xTdHJpbmcoY29uc3Qg
U3RyaW5nJiB2YWx1ZSk7CiAKK2lubGluZSBTdHJpbmcgdG9Qcm90b2NvbFN0cmluZyhUZXN0UHJv
dG9jb2xQbGF0Zm9ybSB2YWx1ZSkKK3sKKyAgICBzd2l0Y2godmFsdWUpIHsKKyAgICBjYXNlIFRl
c3RQcm90b2NvbFBsYXRmb3JtQWxsOgorICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJhbGwi
KTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYzoKKyAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbCgiZ2VuZXJpYyIpOworICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1J
T1M6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImlvcyIpOworICAgIGNhc2UgVGVzdFBy
b3RvY29sUGxhdGZvcm1NYWNPUzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibWFjb3Mi
KTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4KK2lubGluZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybSBm
cm9tUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUg
PT0gImFsbCIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDsKKyAgICBp
ZiAodmFsdWUgPT0gImdlbmVyaWMiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZv
cm1HZW5lcmljOworICAgIGlmICh2YWx1ZSA9PSAiaW9zIikKKyAgICAgICAgcmV0dXJuIFRlc3RQ
cm90b2NvbFBsYXRmb3JtSU9TOworICAgIGlmICh2YWx1ZSA9PSAibWFjb3MiKQorICAgICAgICBy
ZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1BbGw7Cit9CisKIAogaW5saW5lIFN0
cmluZyB0b1Byb3RvY29sU3RyaW5nKFRlc3RQcm90b2NvbFRlc3RVbmNhc3RlZEFuaW1hbHMgdmFs
dWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZ2VuZXJpYy9leHBlY3RlZC93b3JrZXItc3VwcG9ydGVkLWRvbWFpbnMuanNvbi1y
ZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZ2Vu
ZXJpYy9leHBlY3RlZC93b3JrZXItc3VwcG9ydGVkLWRvbWFpbnMuanNvbi1yZXN1bHQKaW5kZXgg
MDYwZWI5MzJhMGQzMTM3N2UzN2ZhNWY3OTQ1YTZmZmRjMzQ1NjhhYS4uZjlhNWRiNTFmMWU2MjM3
YjkxNTBmNGQ1NzkyNWIyYTNkY2RhYjFjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2dlbmVyaWMvZXhwZWN0ZWQvd29ya2VyLXN1cHBv
cnRlZC1kb21haW5zLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy90ZXN0cy9nZW5lcmljL2V4cGVjdGVkL3dvcmtlci1zdXBwb3J0ZWQtZG9t
YWlucy5qc29uLXJlc3VsdApAQCAtODkzLDYgKzg5MywxMyBAQCB1c2luZyBuYW1lc3BhY2UgSW5z
cGVjdG9yOwogCiAKIAordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgVGVzdFByb3RvY29sUGxh
dGZvcm0pIHsKKyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbCwKKyAgICBUZXN0UHJvdG9jb2xQ
bGF0Zm9ybUdlbmVyaWMsCisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1JT1MsCisgICAgVGVzdFBy
b3RvY29sUGxhdGZvcm1NYWNPUywKK307CisKIAogCiAKQEAgLTk5Miw2ICs5OTksMzUgQEAgbmFt
ZXNwYWNlIEluc3BlY3RvciB7CiB0ZW1wbGF0ZTx0eXBlbmFtZSBPYmpDRW51bVR5cGU+CiBPYmpD
RW51bVR5cGUgZnJvbVByb3RvY29sU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpOwogCitpbmxp
bmUgU3RyaW5nIHRvUHJvdG9jb2xTdHJpbmcoVGVzdFByb3RvY29sUGxhdGZvcm0gdmFsdWUpCit7
CisgICAgc3dpdGNoKHZhbHVlKSB7CisgICAgY2FzZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbDoK
KyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiYWxsIik7CisgICAgY2FzZSBUZXN0UHJvdG9j
b2xQbGF0Zm9ybUdlbmVyaWM6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImdlbmVyaWMi
KTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TOgorICAgICAgICByZXR1cm4gQVND
SUlMaXRlcmFsKCJpb3MiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtTWFjT1M6Cisg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoIm1hY29zIik7CisgICAgfQorfQorCit0ZW1wbGF0
ZTw+CitpbmxpbmUgVGVzdFByb3RvY29sUGxhdGZvcm0gZnJvbVByb3RvY29sU3RyaW5nKGNvbnN0
IFN0cmluZyYgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlID09ICJhbGwiKQorICAgICAgICByZXR1
cm4gVGVzdFByb3RvY29sUGxhdGZvcm1BbGw7CisgICAgaWYgKHZhbHVlID09ICJnZW5lcmljIikK
KyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYzsKKyAgICBpZiAodmFs
dWUgPT0gImlvcyIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9ybUlPUzsKKyAg
ICBpZiAodmFsdWUgPT0gIm1hY29zIikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRm
b3JtTWFjT1M7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFRlc3RQcm90
b2NvbFBsYXRmb3JtQWxsOworfQorCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIAogIyMjIEVu
ZCBGaWxlOiBUZXN0UHJvdG9jb2xUeXBlQ29udmVyc2lvbnMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2lvcy9leHBlY3RlZC9kZWZp
bml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9pb3MvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0
aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKaW5kZXggYWUwOWU5NGMzNTZkMTc1ODEyOWNkYTE5
NTNhOTgxMDU3ZjEzMDJjMy4uNmVlYmRmZjMyZDM3ZmZjY2E3NTMzY2E1YmQ4MmMxZDcyN2JhZGUy
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rl
c3RzL2lvcy9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3Vs
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvaW9z
L2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0CkBAIC02
NDYsNiArNjQ2LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIAogCit0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBUZXN0UHJvdG9jb2xQbGF0Zm9ybSkgeworICAgIFRlc3RQcm90
b2NvbFBsYXRmb3JtQWxsLAorICAgIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYywKKyAgICBU
ZXN0UHJvdG9jb2xQbGF0Zm9ybUlPUywKKyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9ybU1hY09TLAor
fTsKKwogCiAKIApAQCAtNzM3LDYgKzc0NCwzNSBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIHRl
bXBsYXRlPHR5cGVuYW1lIE9iakNFbnVtVHlwZT4KIE9iakNFbnVtVHlwZSBmcm9tUHJvdG9jb2xT
dHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKK2lubGluZSBTdHJpbmcgdG9Qcm90b2NvbFN0
cmluZyhUZXN0UHJvdG9jb2xQbGF0Zm9ybSB2YWx1ZSkKK3sKKyAgICBzd2l0Y2godmFsdWUpIHsK
KyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOgorICAgICAgICByZXR1cm4gQVNDSUlM
aXRlcmFsKCJhbGwiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtR2VuZXJpYzoKKyAg
ICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZ2VuZXJpYyIpOworICAgIGNhc2UgVGVzdFByb3Rv
Y29sUGxhdGZvcm1JT1M6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwoImlvcyIpOworICAg
IGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbCgibWFjb3MiKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4KK2lubGluZSBUZXN0UHJvdG9j
b2xQbGF0Zm9ybSBmcm9tUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAg
ICBpZiAodmFsdWUgPT0gImFsbCIpCisgICAgICAgIHJldHVybiBUZXN0UHJvdG9jb2xQbGF0Zm9y
bUFsbDsKKyAgICBpZiAodmFsdWUgPT0gImdlbmVyaWMiKQorICAgICAgICByZXR1cm4gVGVzdFBy
b3RvY29sUGxhdGZvcm1HZW5lcmljOworICAgIGlmICh2YWx1ZSA9PSAiaW9zIikKKyAgICAgICAg
cmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TOworICAgIGlmICh2YWx1ZSA9PSAibWFjb3Mi
KQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzsKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1BbGw7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCiAjIyMgRW5kIEZpbGU6IFRlc3RQcm90b2NvbFR5
cGVDb252ZXJzaW9ucy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvbWFjL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBsYXRm
b3JtLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL21hYy9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJl
c3VsdAppbmRleCA2NDU4MGZjYTI3NzY4MTA3ZTMxMzY1MzdjZWYyOTZiMjExODg2ZjE2Li5kZjQw
Y2VhNWQ1NzUyYWEyM2M3NTM0ODUxZDZlMWUyOGMyZGNiOWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvbWFjL2V4cGVjdGVkL2RlZmlu
aXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9tYWMvZXhwZWN0ZWQvZGVmaW5pdGlvbnMt
d2l0aC1tYWMtcGxhdGZvcm0uanNvbi1yZXN1bHQKQEAgLTg5NCw2ICs4OTQsMTMgQEAgdXNpbmcg
bmFtZXNwYWNlIEluc3BlY3RvcjsKIAogQGNsYXNzIFRlc3RQcm90b2NvbE5ldHdvcmtFcnJvcjsK
IAordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgVGVzdFByb3RvY29sUGxhdGZvcm0pIHsKKyAg
ICBUZXN0UHJvdG9jb2xQbGF0Zm9ybUFsbCwKKyAgICBUZXN0UHJvdG9jb2xQbGF0Zm9ybUdlbmVy
aWMsCisgICAgVGVzdFByb3RvY29sUGxhdGZvcm1JT1MsCisgICAgVGVzdFByb3RvY29sUGxhdGZv
cm1NYWNPUywKK307CisKIAogCiAKQEAgLTEwMDEsNiArMTAwOCwzNSBAQCBuYW1lc3BhY2UgSW5z
cGVjdG9yIHsKIHRlbXBsYXRlPHR5cGVuYW1lIE9iakNFbnVtVHlwZT4KIE9iakNFbnVtVHlwZSBm
cm9tUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAKK2lubGluZSBTdHJpbmcg
dG9Qcm90b2NvbFN0cmluZyhUZXN0UHJvdG9jb2xQbGF0Zm9ybSB2YWx1ZSkKK3sKKyAgICBzd2l0
Y2godmFsdWUpIHsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3JtQWxsOgorICAgICAgICBy
ZXR1cm4gQVNDSUlMaXRlcmFsKCJhbGwiKTsKKyAgICBjYXNlIFRlc3RQcm90b2NvbFBsYXRmb3Jt
R2VuZXJpYzoKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZ2VuZXJpYyIpOworICAgIGNh
c2UgVGVzdFByb3RvY29sUGxhdGZvcm1JT1M6CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWwo
ImlvcyIpOworICAgIGNhc2UgVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzoKKyAgICAgICAgcmV0
dXJuIEFTQ0lJTGl0ZXJhbCgibWFjb3MiKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPD4KK2lubGlu
ZSBUZXN0UHJvdG9jb2xQbGF0Zm9ybSBmcm9tUHJvdG9jb2xTdHJpbmcoY29uc3QgU3RyaW5nJiB2
YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0gImFsbCIpCisgICAgICAgIHJldHVybiBUZXN0UHJv
dG9jb2xQbGF0Zm9ybUFsbDsKKyAgICBpZiAodmFsdWUgPT0gImdlbmVyaWMiKQorICAgICAgICBy
ZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1HZW5lcmljOworICAgIGlmICh2YWx1ZSA9PSAiaW9z
IikKKyAgICAgICAgcmV0dXJuIFRlc3RQcm90b2NvbFBsYXRmb3JtSU9TOworICAgIGlmICh2YWx1
ZSA9PSAibWFjb3MiKQorICAgICAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZvcm1NYWNPUzsK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gVGVzdFByb3RvY29sUGxhdGZv
cm1BbGw7Cit9CisKIAogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbgppbmRleCAxYzcx
OWQ1M2NmZDQ3ZjQ4ZGIyNjk3MTU4YTc3Nzc0ZmJkNGMxMDdjLi5iY2EyN2I4NzUwNmM0MzAyYzlj
NTM2ODVjZDMyNDBlZjBhODc1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCkBAIC0yNDgsNyArMjQ4LDcgQEAKICAgICAg
ICAgewogICAgICAgICAgICAgIm5hbWUiOiAicmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQi
LAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZXMgdGhlIHdpbmRvdyBvZiB0aGUg
c3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgdG8gdGhlIHNwZWNpZmllZCBzaXplLiIsCi0gICAg
ICAgICAgICAicGxhdGZvcm0iOiAibWFjT1MiLAorICAgICAgICAgICAgInBsYXRmb3JtIjogIm1h
Y29zIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0
aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRvIGJlIHJlc2l6ZWQu
IiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2l6ZSIsICIkcmVmIjogIlNpemUiLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIG5ldyBzaXplIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCdzIHdp
bmRvdy4iIH0KQEAgLTI1Nyw3ICsyNTcsNyBAQAogICAgICAgICB7CiAgICAgICAgICAgICAibmFt
ZSI6ICJtb3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQiLAogICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIk1vdmVzIHRoZSB3aW5kb3cgb2YgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0
IHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uIiwKLSAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJt
YWNPUyIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAibWFjb3MiLAogICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6
ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3Ig
dGhlIGJyb3dzaW5nIGNvbnRleHQgdG8gYmUgbW92ZWQuIiB9LAogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAib3JpZ2luIiwgIiRyZWYiOiAiUG9pbnQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIG5l
dyBvcmlnaW4gZm9yIHRoZSBicm93c2luZyBjb250ZXh0J3Mgd2luZG93LiBUaGUgcG9zaXRpb24g
aXMgaW50ZXJwcmV0ZWQgaW4gc2NyZWVuIGNvb3JkaW5hdGUgc3BhY2UsIHJlbGF0aXZlIHRvIHRo
ZSB1cHBlciBsZWZ0IGNvcm5lciBvZiB0aGUgc2NyZWVuLiIgfQpAQCAtMjk5LDcgKzI5OSw3IEBA
CiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogImluc3BlY3RCcm93c2luZ0NvbnRleHQi
LAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkluc3BlY3QgdGhlIHNwZWNpZmllZCBicm93
c2luZyBjb250ZXh0IHVzaW5nIFdlYiBJbnNwZWN0b3IuIiwKLSAgICAgICAgICAgICJwbGF0Zm9y
bSI6ICJtYWNPUyIsCisgICAgICAgICAgICAicGxhdGZvcm0iOiAibWFjb3MiLAogICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAi
JHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRs
ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgaW5zcGVjdGVkLiIgfSwK
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuYWJsZUF1dG9DYXB0dXJpbmciLCAidHlwZSI6
ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRoaXMgb3B0
aW9uIGlzIHByZXNlbnQgYW5kIHNldCB0byB0cnVlLCB0aGUgV2ViIEluc3BlY3RvciB3aWxsIGF1
dG9tYXRpY2FsbHkgc3RhcnQgYSB0aW1lbGluZSByZWNvcmRpbmcgb2YgdGhlIHNwZWNpZmllZCBi
cm93c2luZyBjb250ZXh0IG9uY2UgaXQgaXMgYXR0YWNoZWQuIE5vdGUgdGhhdCB0aGlzIGRpc2Fi
bGVzIHRoZSBkZWJ1Z2dlciBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSByZWNvcmRpbmcuIiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>