<?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>136311</bug_id>
          
          <creation_ts>2014-08-27 14:23:45 -0700</creation_ts>
          <short_desc>Web Replay: only generate EncodingTraits for enums defined in the target framework</short_desc>
          <delta_ts>2015-01-18 23:02:25 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>136312</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1031783</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-08-27 14:23:45 -0700</bug_when>
    <thetext>Currently it will unconditionally generate enum encoding traits if the enum is referenced in the Inputs.json file, even if it&apos;s from a different namespace and also in another framework&apos;s Inputs.json file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061309</commentid>
    <comment_count>1</comment_count>
      <attachid>244639</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-14 14:43:55 -0800</bug_when>
    <thetext>Created attachment 244639
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061430</commentid>
    <comment_count>2</comment_count>
      <attachid>244668</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-14 17:37:46 -0800</bug_when>
    <thetext>Created attachment 244668
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061431</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-14 17:40:17 -0800</bug_when>
    <thetext>This patch modifies the WEB_REPLAY inputs generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-input-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061432</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-14 17:40:27 -0800</bug_when>
    <thetext>Attachment 244668 did not pass style-queue:


ERROR: Source/JavaScriptCore/replay/scripts/CodeGeneratorReplayInputs.py:785:  whitespace before &apos;}&apos;  [pep8/E202] [5]
ERROR: Source/JavaScriptCore/replay/scripts/tests/expected/generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.h:60:  The parameter name &quot;button&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.h:81:  The parameter name &quot;button&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.h:71:  The parameter name &quot;phase&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 4 in 18 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>1062272</commentid>
    <comment_count>5</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-18 23:00:28 -0800</bug_when>
    <thetext>Will fix these in one patch, since enums and inputs require similar filtering.

*** This bug has been marked as a duplicate of bug 136312 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244639</attachid>
            <date>2015-01-14 14:43:55 -0800</date>
            <delta_ts>2015-01-14 17:37:44 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-136311-20150114144327.patch</filename>
            <type>text/plain</type>
            <size>14293</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
MTQ5YWIwNzQyYzlmZGUxODZiNjVkZGRlMTY0N2Y2MWY5NzFjMTc1Li44ZDdmYTdkNjMxMDY5YmFi
ZjhmOTljODNkNzk4MTQyM2JhZmQ4MjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNC0wOC0yNyAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIFJlcGxheTogb25seSBnZW5lcmF0ZSBFbmNvZGluZ1RyYWl0
cyBmb3IgZW51bXMgZGVmaW5lZCBpbiB0aGUgdGFyZ2V0IGZyYW1ld29yaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MzExCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgRW5jb2Rp
bmdUcmFpdHMgZm9yIGVudW1zIHVubGVzcyB0aGV5IGJlbG9uZyB0byB0aGUgdGFyZ2V0IGZyYW1l
d29yay4KKyAgICAgICAgT3RoZXJ3aXNlLCBlbnVtcyB1c2VkIGluIG11bHRpcGxlIGZyYW1ld29y
a3MnIGlucHV0cyBjYW5ub3QgYmUgdW5hbWJpZ3VvdXNseSBlbmNvZGVkL2RlY29kZWQuCisKKyAg
ICAgICAgQWxzbyB1c2UgVHlwZS5lbmNvZGluZ190eXBlX2FyZ3VtZW50IGluIG1vcmUgcGxhY2Vz
LgorCisgICAgICAgICogcmVwbGF5L0pTSW5wdXRzLmpzb246IE1vdmUgdGhlIElucHV0UXVldWUg
ZW51bSB0byBoZXJlLgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBs
YXlJbnB1dHMucHk6IEluY2x1ZGUgV2ViUmVwbGF5SW5wdXRzLmggZm9yIFdlYktpdC4KKyAgICAg
ICAgKEdlbmVyYXRvci5nZW5lcmF0ZV9oZWFkZXIpOiBTZWxlY3RpdmVseSBnZW5lcmF0ZSB0cmFp
dHMgdW5sZXNzIHdlIGFyZSBydW5uaW5nIHRlc3RzLgorICAgICAgICAoR2VuZXJhdG9yLmdlbmVy
YXRlX2ltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRvci5nZW5lcmF0ZV9lbnVtX3Ry
YWl0X2ltcGxlbWVudGF0aW9uKTogYWRkIFdFQkNPUkVfRVhQT1JUIG1hY3JvIHRvIGVudW0gZW5j
b2RpbmcgdHJhaXRzLgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBs
YXlJbnB1dHNUZW1wbGF0ZXMucHk6CisKIDIwMTUtMDEtMDkgIEJyaWFuIEouIEJ1cmcgIDxidXJn
QGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBSZXBsYXk6IGFkZCBzdXBwb3J0IGZv
ciBkaXNwYXRjaGluZyBpbnB1dHMgd2l0aCBQYWdlIG9yIFdlYlBhZ2UgY29udGV4dApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGI3ZWRkYTkzNGU1MTJiMDEwNTU3NTA1MGYwMGEzY2E1ZTVmMjY4ZGMuLjY5ODUzNzNm
N2ZjYmQ4YjUzZjA4ZDdjMmYyNWJhNTNlM2Y4YjRhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxNC0wOC0yNyAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+
CisKKyAgICAgICAgV2ViIFJlcGxheTogb25seSBnZW5lcmF0ZSBFbmNvZGluZ1RyYWl0cyBmb3Ig
ZW51bXMgZGVmaW5lZCBpbiB0aGUgdGFyZ2V0IGZyYW1ld29yaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MzExCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHVwbGljYXRlIHRoZSBkZWZpbml0aW9ucyBm
b3Igc29tZSBlbnVtZXJhdGlvbnMgdXNlZCBpbiBXZWJLaXQgYnV0IG5vdCBpbiBXZWJDb3JlLgor
ICAgICAgICBBZGQgZW51bSBlbmNvZGluZyB0cmFpdHMgc3ltYm9scyB0byB0aGUgZXhwb3J0IGZp
bGUuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBnZW5lcmF0b3IgdGVzdHMuCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiByZXBsYXkvV2ViSW5wdXRzLmpzb246
CisKIDIwMTUtMDEtMTEgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1Pgog
CiAgICAgICAgIFdlYiBSZXBsYXk6IGNhcHR1cmUgYW5kIGRpc3BhdGNoIG5hdmlnYXRpb24gaW5w
dXRzIGZyb20gV2ViUGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxh
eS9KU0lucHV0cy5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9KU0lucHV0cy5q
c29uCmluZGV4IDczOTRkOTQ3MGE4NGIyOWZkZDNkNGI0MWNmM2I5MThkZjM1ZjQzODAuLjg0MTkx
NzA2MGQ3MGM0OTYxMmRmZDQ5YzNkN2JjYzRiNWVjMzQ0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9yZXBsYXkvSlNJbnB1dHMuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcmVwbGF5L0pTSW5wdXRzLmpzb24KQEAgLTMsNiArMywxNSBAQAogICAgICAgICAiR2xv
YmFsIjogWwogICAgICAgICAgICAgeyAibmFtZSI6ICJkb3VibGUiLCAibW9kZSI6ICJTQ0FMQVIi
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIjogInVpbnQ2NF90IiwgIm1vZGUiOiAiU0NBTEFSIiB9
CisgICAgICAgIF0sCisKKyAgICAgICAgIkphdmFTY3JpcHRDb3JlIjogWworICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICJuYW1lIjogIklucHV0UXVldWUiLCAibW9kZSI6ICJTQ0FMQVIi
LCAic3RvcmFnZSI6ICJ1aW50OF90IiwKKyAgICAgICAgICAgICAgICAiZmxhZ3MiOiBbIkVOVU1f
Q0xBU1MiXSwKKyAgICAgICAgICAgICAgICAidmFsdWVzIjogWyJFdmVudExvb3BJbnB1dCIsICJM
b2FkZXJNZW1vaXplZERhdGEiLCAiU2NyaXB0TWVtb2l6ZWREYXRhIiwgIkNvdW50Il0sCisgICAg
ICAgICAgICAgICAgImhlYWRlciI6ICJyZXBsYXkvTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmgiCisg
ICAgICAgICAgICB9CiAgICAgICAgIF0KICAgICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5
SW5wdXRzLnB5CmluZGV4IDNiZGMwNzA3OWViY2EwMDljN2E2N2IxMTIyZTFkODQ2YTA0NzM3MGUu
LjZiZmU3ZTFmMWJhODQxNmFmMmNmN2NkY2RlMzUzNjcxYWEwOGIxZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5w
dXRzLnB5CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yUmVwbGF5SW5wdXRzLnB5CkBAIC01MSw2ICs1MSw5IEBAIEdMT0JBTF9DT05GSUcgPSB7
CiAgICAgICAgIChbIldlYktpdCJdLAogICAgICAgICAgICAgKCJXZWJLaXQiLCAiV2ViUHJvY2Vz
cy9SZXBsYXkvV2ViRXZlbnRMb29wSW5wdXQuaCIpCiAgICAgICAgICksCisgICAgICAgIChbIldl
YktpdCJdLAorICAgICAgICAgICAgKCJXZWJDb3JlIiwgIldlYlJlcGxheUlucHV0cy5oIikKKyAg
ICAgICAgKSwKICAgICAgICAgKFsiV2ViQ29yZSJdLAogICAgICAgICAgICAgKCJXZWJDb3JlIiwg
InJlcGxheS9FdmVudExvb3BJbnB1dC5oIikKICAgICAgICAgKSwKQEAgLTExMiw2ICsxMTUsNyBA
QCBGUkFNRVdPUktfQ09ORklHX01BUCA9IHsKICAgICAiV2ViQ29yZSI6IHsKICAgICAgICAgInBy
ZWZpeCI6ICJXZWIiLAogICAgICAgICAibmFtZXNwYWNlIjogIldlYkNvcmUiLAorICAgICAgICAi
ZXhwb3J0TWFjcm8iOiAiV0VCQ09SRV9FWFBPUlQiCiAgICAgfSwKICAgICAiV2ViS2l0Ijogewog
ICAgICAgICAicHJlZml4IjogIldLIiwKQEAgLTU5NSw2ICs1OTksMTAgQEAgY2xhc3MgR2VuZXJh
dG9yOgogICAgICAgICBpbXBsZW1lbnRhdGlvbl9maWxlLmNsb3NlKCkKIAogICAgIGRlZiBnZW5l
cmF0ZV9oZWFkZXIoc2VsZik6CisgICAgICAgIGVudW1zX3RvX2dlbmVyYXRlID0gc2VsZi5fbW9k
ZWwuZW51bV90eXBlcygpCisgICAgICAgIGlmIHNlbGYudGFyZ2V0X2ZyYW1ld29yayBpcyBub3Qg
RnJhbWV3b3Jrcy5UZXN0OiAgIyBGb3JjZSBnZW5lcmF0aW9uIG9mIGVudW0gdHJhaXRzIGZvciB0
ZXN0aW5nLgorICAgICAgICAgICAgZW51bXNfdG9fZ2VuZXJhdGUgPSBmaWx0ZXIobGFtYmRhIGVu
dW06IGVudW0uZnJhbWV3b3JrIGlzIHNlbGYudGFyZ2V0X2ZyYW1ld29yaywgZW51bXNfdG9fZ2Vu
ZXJhdGUpCisKICAgICAgICAgdGVtcGxhdGVfYXJndW1lbnRzID0gewogICAgICAgICAgICAgJ2xp
Y2Vuc2VCbG9jayc6IHNlbGYuZ2VuZXJhdGVfbGljZW5zZSgpLAogICAgICAgICAgICAgJ2hlYWRl
ckd1YXJkJzogcmUuc3ViKCdbLS4vXScsICdfJywgc2VsZi5vdXRwdXRfZmlsZW5hbWUoKSArICIu
aCIpLApAQCAtNjA3LDEzICs2MTUsMTcgQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgICAgICAgICAg
J2lucHV0Rm9yd2FyZERlY2xhcmF0aW9ucyc6ICJcbiIuam9pbihbd3JhcF93aXRoX2d1YXJkKCJj
bGFzcyAlczsiLCBfaW5wdXQuZ3VhcmQpICUgX2lucHV0Lm5hbWUgZm9yIF9pbnB1dCBpbiBzZWxm
Ll9tb2RlbC5pbnB1dHNdKSwKICAgICAgICAgICAgICdpbnB1dENsYXNzRGVjbGFyYXRpb25zJzog
IlxuXG4iLmpvaW4oW3NlbGYuZ2VuZXJhdGVfY2xhc3NfZGVjbGFyYXRpb24oX2lucHV0KSBmb3Ig
X2lucHV0IGluIHNlbGYuX21vZGVsLmlucHV0c10pLAogICAgICAgICAgICAgJ2lucHV0VHJhaXRE
ZWNsYXJhdGlvbnMnOiAiXG5cbiIuam9pbihbc2VsZi5nZW5lcmF0ZV9pbnB1dF90cmFpdF9kZWNs
YXJhdGlvbihfaW5wdXQpIGZvciBfaW5wdXQgaW4gc2VsZi5fbW9kZWwuaW5wdXRzXSksCi0gICAg
ICAgICAgICAnZW51bVRyYWl0RGVjbGFyYXRpb25zJzogIlxuXG4iLmpvaW4oW3dyYXBfd2l0aF9n
dWFyZChzZWxmLmdlbmVyYXRlX2VudW1fdHJhaXRfZGVjbGFyYXRpb24oX3R5cGUpLCBfdHlwZS5n
dWFyZCkgZm9yIF90eXBlIGluIHNlbGYuX21vZGVsLmVudW1fdHlwZXMoKV0pLAorICAgICAgICAg
ICAgJ2VudW1UcmFpdERlY2xhcmF0aW9ucyc6ICJcblxuIi5qb2luKFt3cmFwX3dpdGhfZ3VhcmQo
c2VsZi5nZW5lcmF0ZV9lbnVtX3RyYWl0X2RlY2xhcmF0aW9uKF90eXBlKSwgX3R5cGUuZ3VhcmQp
IGZvciBfdHlwZSBpbiBlbnVtc190b19nZW5lcmF0ZV0pLAogICAgICAgICAgICAgJ2ZvckVhY2hN
YWNybyc6IHNlbGYuZ2VuZXJhdGVfZm9yX2VhY2hfbWFjcm8oKSwKICAgICAgICAgfQogCiAgICAg
ICAgIHJldHVybiBUZW1wbGF0ZShUZW1wbGF0ZXMuSGVhZGVyU2tlbGV0b24pLnN1YnN0aXR1dGUo
dGVtcGxhdGVfYXJndW1lbnRzKQogCiAgICAgZGVmIGdlbmVyYXRlX2ltcGxlbWVudGF0aW9uKHNl
bGYpOgorICAgICAgICBlbnVtc190b19nZW5lcmF0ZSA9IHNlbGYuX21vZGVsLmVudW1fdHlwZXMo
KQorICAgICAgICBpZiBzZWxmLnRhcmdldF9mcmFtZXdvcmsgaXMgbm90IEZyYW1ld29ya3MuVGVz
dDogICMgRm9yY2UgZ2VuZXJhdGlvbiBvZiBlbnVtIHRyYWl0cyBmb3IgdGVzdGluZy4KKyAgICAg
ICAgICAgIGVudW1zX3RvX2dlbmVyYXRlID0gZmlsdGVyKGxhbWJkYSBlbnVtOiBlbnVtLmZyYW1l
d29yayBpcyBzZWxmLnRhcmdldF9mcmFtZXdvcmssIGVudW1zX3RvX2dlbmVyYXRlKQorCiAgICAg
ICAgIHRlbXBsYXRlX2FyZ3VtZW50cyA9IHsKICAgICAgICAgICAgICdsaWNlbnNlQmxvY2snOiBz
ZWxmLmdlbmVyYXRlX2xpY2Vuc2UoKSwKICAgICAgICAgICAgICdmaWxlbmFtZSc6IHNlbGYub3V0
cHV0X2ZpbGVuYW1lKCksCkBAIC02MjMsNyArNjM1LDcgQEAgY2xhc3MgR2VuZXJhdG9yOgogICAg
ICAgICAgICAgJ2luY2x1ZGVzJzogc2VsZi5nZW5lcmF0ZV9pbmNsdWRlcyhkZWZhdWx0cz1zZWxm
LnNldHRpbmcoJ2ltcGxJbmNsdWRlcycpLCBpbmNsdWRlc19mb3JfdHlwZXM9VHJ1ZSksCiAgICAg
ICAgICAgICAnaW5wdXRDbGFzc0ltcGxlbWVudGF0aW9ucyc6ICJcblxuIi5qb2luKFtzZWxmLmdl
bmVyYXRlX2NsYXNzX2ltcGxlbWVudGF0aW9uKF9pbnB1dCkgZm9yIF9pbnB1dCBpbiBzZWxmLl9t
b2RlbC5pbnB1dHNdKSwKICAgICAgICAgICAgICdpbnB1dFRyYWl0SW1wbGVtZW50YXRpb25zJzog
IlxuXG4iLmpvaW4oW3NlbGYuZ2VuZXJhdGVfaW5wdXRfdHJhaXRfaW1wbGVtZW50YXRpb24oX2lu
cHV0KSBmb3IgX2lucHV0IGluIHNlbGYuX21vZGVsLmlucHV0c10pLAotICAgICAgICAgICAgJ2Vu
dW1UcmFpdEltcGxlbWVudGF0aW9ucyc6ICJcblxuIi5qb2luKFt3cmFwX3dpdGhfZ3VhcmQoc2Vs
Zi5nZW5lcmF0ZV9lbnVtX3RyYWl0X2ltcGxlbWVudGF0aW9uKF90eXBlKSwgX3R5cGUuZ3VhcmQp
IGZvciBfdHlwZSBpbiBzZWxmLl9tb2RlbC5lbnVtX3R5cGVzKCldKSwKKyAgICAgICAgICAgICdl
bnVtVHJhaXRJbXBsZW1lbnRhdGlvbnMnOiAiXG5cbiIuam9pbihbd3JhcF93aXRoX2d1YXJkKHNl
bGYuZ2VuZXJhdGVfZW51bV90cmFpdF9pbXBsZW1lbnRhdGlvbihfdHlwZSksIF90eXBlLmd1YXJk
KSBmb3IgX3R5cGUgaW4gZW51bXNfdG9fZ2VuZXJhdGVdKSwKICAgICAgICAgfQogCiAgICAgICAg
IHJldHVybiBUZW1wbGF0ZShUZW1wbGF0ZXMuSW1wbGVtZW50YXRpb25Ta2VsZXRvbikuc3Vic3Rp
dHV0ZSh0ZW1wbGF0ZV9hcmd1bWVudHMpCkBAIC04MTEsMTAgKzgyMywxNiBAQCBjbGFzcyBHZW5l
cmF0b3I6CiAgICAgICAgIHJldHVybiB3cmFwX3dpdGhfZ3VhcmQoVGVtcGxhdGUoVGVtcGxhdGVz
LklucHV0VHJhaXRzRGVjbGFyYXRpb24pLnN1YnN0aXR1dGUodGVtcGxhdGVfYXJndW1lbnRzKSwg
X2lucHV0Lmd1YXJkKQogCiAgICAgZGVmIGdlbmVyYXRlX2VudW1fdHJhaXRfZGVjbGFyYXRpb24o
c2VsZiwgX3R5cGUpOgorICAgICAgICBkZWNsX3R5cGUgPSBbJ3N0cnVjdCddCisgICAgICAgIGlm
IGxlbihzZWxmLnNldHRpbmcoJ2V4cG9ydE1hY3JvJykpID4gMDoKKyAgICAgICAgICAgIGRlY2xf
dHlwZS5hcHBlbmQoc2VsZi5zZXR0aW5nKCdleHBvcnRNYWNybycpKQorCiAgICAgICAgIHNob3Vs
ZF9xdWFsaWZ5X3R5cGUgPSBfdHlwZS5mcmFtZXdvcmsgIT0gc2VsZi50cmFpdHNfZnJhbWV3b3Jr
CiAgICAgICAgIHRlbXBsYXRlID0gVGVtcGxhdGVzLkVudW1UcmFpdERlY2xhcmF0aW9uIGlmIF90
eXBlLmlzX2VudW0oKSBlbHNlIFRlbXBsYXRlcy5FbnVtQ2xhc3NUcmFpdERlY2xhcmF0aW9uCiAg
ICAgICAgIHRlbXBsYXRlX2FyZ3VtZW50cyA9IHsKLSAgICAgICAgICAgICdlbnVtTmFtZSc6IF90
eXBlLnR5cGVfbmFtZShxdWFsaWZpZWQ9c2hvdWxkX3F1YWxpZnlfdHlwZSksCisgICAgICAgICAg
ICAnZW5jb2RpbmdUeXBlQXJndW1lbnQnOiBfdHlwZS5lbmNvZGluZ190eXBlX2FyZ3VtZW50KHF1
YWxpZmllZD1zaG91bGRfcXVhbGlmeV90eXBlKSwKKyAgICAgICAgICAgICdlbnVtVHlwZSc6IF90
eXBlLnR5cGVfbmFtZShxdWFsaWZpZWQ9c2hvdWxkX3F1YWxpZnlfdHlwZSksCisgICAgICAgICAg
ICAnc3RydWN0T3JDbGFzcyc6ICIgIi5qb2luKGRlY2xfdHlwZSkKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gVGVtcGxhdGUodGVtcGxhdGUpLnN1YnN0aXR1dGUodGVtcGxhdGVfYXJndW1lbnRz
KQogCkBAIC05MDIsNyArOTIwLDggQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgICAgICAgICAgZGVj
b2RlTGluZXMuYXBwZW5kKHdyYXBfd2l0aF9ndWFyZCgiXG4iLmpvaW4oZ3VhcmRlZExpbmVzKSwg
Z3VhcmQpKQogCiAgICAgICAgIHRlbXBsYXRlX2FyZ3VtZW50cyA9IHsKLSAgICAgICAgICAgICdl
bnVtTmFtZSc6IF90eXBlLnR5cGVfbmFtZShxdWFsaWZpZWQ9c2hvdWxkX3F1YWxpZnlfdHlwZSks
CisgICAgICAgICAgICAnZW5jb2RpbmdUeXBlQXJndW1lbnQnOiBfdHlwZS5lbmNvZGluZ190eXBl
X2FyZ3VtZW50KHF1YWxpZmllZD1zaG91bGRfcXVhbGlmeV90eXBlKSwKKyAgICAgICAgICAgICdl
bnVtVHlwZSc6IF90eXBlLnR5cGVfbmFtZShxdWFsaWZpZWQ9c2hvdWxkX3F1YWxpZnlfdHlwZSks
CiAgICAgICAgICAgICAnZW5jb2RlQ2FzZXMnOiAiXG4iLmpvaW4oZW5jb2RlTGluZXMpLAogICAg
ICAgICAgICAgJ2RlY29kZUNhc2VzJzogIlxuIi5qb2luKGRlY29kZUxpbmVzKQogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvQ29kZUdl
bmVyYXRvclJlcGxheUlucHV0c1RlbXBsYXRlcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
ZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5CmluZGV4
IDhkZTdiZjZiMDc0NTZjN2FiOTI1OTMyMTVjMzE1MTdhNmQzYzY1YmIuLmJlMDA5ODFlODRiNThh
ZmE1ZTk3NmZlMWU0ZmExOTZmOWE4ODYzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
UmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5CkBAIC0xMDUsMTkgKzEwNSwxOSBAQCAke2ZvckVhY2hN
YWNyb30KIH07IiIiKQogCiAgICAgRW51bVRyYWl0RGVjbGFyYXRpb24gPSAoCi0gICAgIiIidGVt
cGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8JHtlbnVtTmFtZX0+IHsKLSAgICB0eXBlZGVm
ICR7ZW51bU5hbWV9IERlY29kZWRUeXBlOworICAgICIiInRlbXBsYXRlPD4gJHtzdHJ1Y3RPckNs
YXNzfSBFbmNvZGluZ1RyYWl0czwke2VuY29kaW5nVHlwZUFyZ3VtZW50fT4geworICAgIHR5cGVk
ZWYgJHtlbnVtVHlwZX0gRGVjb2RlZFR5cGU7CiAKLSAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVu
Y29kZVZhbHVlKGNvbnN0ICR7ZW51bU5hbWV9JiB2YWx1ZSk7Ci0gICAgc3RhdGljIGJvb2wgZGVj
b2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgJHtlbnVtTmFtZX0mIHZhbHVlKTsKKyAgICBzdGF0aWMg
RW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0ICR7ZW51bVR5cGV9JiB2YWx1ZSk7CisgICAg
c3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgJHtlbnVtVHlwZX0mIHZhbHVl
KTsKIH07IiIiKQogCiAgICAgRW51bUNsYXNzVHJhaXREZWNsYXJhdGlvbiA9ICgKLSAgICAiIiJ0
ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czwke2VudW1OYW1lfT4gewotICAgIHR5cGVk
ZWYgJHtlbnVtTmFtZX0gRGVjb2RlZFR5cGU7CisgICAgIiIidGVtcGxhdGU8PiAke3N0cnVjdE9y
Q2xhc3N9IEVuY29kaW5nVHJhaXRzPCR7ZW5jb2RpbmdUeXBlQXJndW1lbnR9PiB7CisgICAgdHlw
ZWRlZiAke2VudW1UeXBlfSBEZWNvZGVkVHlwZTsKIAotICAgIHN0YXRpYyBFbmNvZGVkVmFsdWUg
ZW5jb2RlVmFsdWUoY29uc3QgJHtlbnVtTmFtZX0mIHZhbHVlKTsKLSAgICBzdGF0aWMgYm9vbCBk
ZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCAke2VudW1OYW1lfSYgdmFsdWUpOworICAgIHN0YXRp
YyBFbmNvZGVkVmFsdWUgZW5jb2RlVmFsdWUoY29uc3QgJHtlbnVtVHlwZX0mIHZhbHVlKTsKKyAg
ICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCAke2VudW1UeXBlfSYgdmFs
dWUpOwogfTsiIiIpCiAKICAgICBJbnB1dENsYXNzRGVjbGFyYXRpb24gPSAoCkBAIC0xNzEsNyAr
MTcxLDcgQEAgJHtkZWNvZGVTdGVwc30KIH0iIiIpCiAKICAgICBFbnVtQ2xhc3NUcmFpdEltcGxl
bWVudGF0aW9uID0gKAotICAgICIiIkVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czwke2VudW1O
YW1lfT46OmVuY29kZVZhbHVlKGNvbnN0ICR7ZW51bU5hbWV9JiBlbnVtVmFsdWUpCisgICAgIiIi
RW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPCR7ZW5jb2RpbmdUeXBlQXJndW1lbnR9Pjo6ZW5j
b2RlVmFsdWUoY29uc3QgJHtlbnVtVHlwZX0mIGVudW1WYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGVu
dW1WYWx1ZSkgewogJHtlbmNvZGVDYXNlc30KQEAgLTE3OSw3ICsxNzksNyBAQCAke2VuY29kZUNh
c2VzfQogICAgIH0KIH0KIAotYm9vbCBFbmNvZGluZ1RyYWl0czwke2VudW1OYW1lfT46OmRlY29k
ZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCAke2VudW1OYW1lfSYgZW51bVZhbHVl
KQorYm9vbCBFbmNvZGluZ1RyYWl0czwke2VuY29kaW5nVHlwZUFyZ3VtZW50fT46OmRlY29kZVZh
bHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCAke2VudW1UeXBlfSYgZW51bVZhbHVlKQog
ewogICAgIFN0cmluZyBlbnVtU3RyaW5nID0gZW5jb2RlZFZhbHVlLmNvbnZlcnRUbzxTdHJpbmc+
KCk7CiAke2RlY29kZUNhc2VzfQpAQCAtMTk2LDE0ICsxOTYsMTQgQEAgJHtkZWNvZGVDYXNlc30K
ICAgICB9IiIiKQogCiAgICAgRW51bVRyYWl0SW1wbGVtZW50YXRpb24gPSAoCi0gICAgIiIiRW5j
b2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPCR7ZW51bU5hbWV9Pjo6ZW5jb2RlVmFsdWUoY29uc3Qg
JHtlbnVtTmFtZX0mIGVudW1WYWx1ZSkKKyAgICAiIiJFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFp
dHM8JHtlbmNvZGluZ1R5cGVBcmd1bWVudH0+OjplbmNvZGVWYWx1ZShjb25zdCAke2VudW1UeXBl
fSYgZW51bVZhbHVlKQogewogICAgIEVuY29kZWRWYWx1ZSBlbmNvZGVkVmFsdWUgPSBFbmNvZGVk
VmFsdWU6OmNyZWF0ZUFycmF5KCk7CiAke2VuY29kZUNhc2VzfQogICAgIHJldHVybiBlbmNvZGVk
VmFsdWU7CiB9CiAKLWJvb2wgRW5jb2RpbmdUcmFpdHM8JHtlbnVtTmFtZX0+OjpkZWNvZGVWYWx1
ZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgJHtlbnVtTmFtZX0mIGVudW1WYWx1ZSkKK2Jv
b2wgRW5jb2RpbmdUcmFpdHM8JHtlbmNvZGluZ1R5cGVBcmd1bWVudH0+OjpkZWNvZGVWYWx1ZShF
bmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgJHtlbnVtVHlwZX0mIGVudW1WYWx1ZSkKIHsKICAg
ICBWZWN0b3I8U3RyaW5nPiBlbnVtU3RyaW5nczsKICAgICBpZiAoIUVuY29kaW5nVHJhaXRzPFZl
Y3RvcjxTdHJpbmc+Pjo6ZGVjb2RlVmFsdWUoZW5jb2RlZFZhbHVlLCBlbnVtU3RyaW5ncykpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDY2NWY5NDU3YmMzNjA1YmZhODhiMmRhNTVhNDg5MGFhZWQ3
MjNkYTcuLmE2M2RkZjc2OTdiYTc2Nzg3NDdmN2ZkN2VlZGVkZGI0NmZlNTEzZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC0zNTY2LDggKzM1NjYsMTIgQEAgX19aTjNKU0MxMUlucHV0VHJhaXRz
SU43V2ViQ29yZTMyUmVzb3VyY2VMb2FkZXJEaWRSZWNlaXZlUmVzcG9uc2VFRTZkZWNvZGVFUk5T
XzEKIF9fWk4zSlNDMTFJbnB1dFRyYWl0c0lON1dlYkNvcmUzMlJlc291cmNlTG9hZGVyRGlkUmVj
ZWl2ZVJlc3BvbnNlRUU2ZW5jb2RlRVJOU18xMkVuY29kZWRWYWx1ZUVSS1MyXwogX19aTjNKU0Mx
NEVuY29kaW5nVHJhaXRzSU43V2ViQ29yZTE1S2V5cHJlc3NDb21tYW5kRUUxMWRlY29kZVZhbHVl
RVJOU18xMkVuY29kZWRWYWx1ZUVSUzJfCiBfX1pOM0pTQzE0RW5jb2RpbmdUcmFpdHNJTjdXZWJD
b3JlMTVLZXlwcmVzc0NvbW1hbmRFRTExZW5jb2RlVmFsdWVFUktTMl8KK19fWk4zSlNDMTRFbmNv
ZGluZ1RyYWl0c0lON1dlYkNvcmUxNVNjcm9sbERpcmVjdGlvbkVFMTFkZWNvZGVWYWx1ZUVSTlNf
MTJFbmNvZGVkVmFsdWVFUlMyXworX19aTjNKU0MxNEVuY29kaW5nVHJhaXRzSU43V2ViQ29yZTE1
U2Nyb2xsRGlyZWN0aW9uRUUxMWVuY29kZVZhbHVlRVJLUzJfCiBfX1pOM0pTQzE0RW5jb2RpbmdU
cmFpdHNJTjdXZWJDb3JlMTZGcmFtZUxvYWRSZXF1ZXN0RUUxMWRlY29kZVZhbHVlRVJOU18xMkVu
Y29kZWRWYWx1ZUVSTlN0M19fMTEwdW5pcXVlX3B0cklTMl9OUzZfMTRkZWZhdWx0X2RlbGV0ZUlT
Ml9FRUVFCiBfX1pOM0pTQzE0RW5jb2RpbmdUcmFpdHNJTjdXZWJDb3JlMTZGcmFtZUxvYWRSZXF1
ZXN0RUUxMWVuY29kZVZhbHVlRVJLUzJfCitfX1pOM0pTQzE0RW5jb2RpbmdUcmFpdHNJTjdXZWJD
b3JlMTdTY3JvbGxHcmFudWxhcml0eUVFMTFkZWNvZGVWYWx1ZUVSTlNfMTJFbmNvZGVkVmFsdWVF
UlMyXworX19aTjNKU0MxNEVuY29kaW5nVHJhaXRzSU43V2ViQ29yZTE3U2Nyb2xsR3JhbnVsYXJp
dHlFRTExZW5jb2RlVmFsdWVFUktTMl8KIF9fWk4zSlNDMTRFbmNvZGluZ1RyYWl0c0lON1dlYkNv
cmU4SW50UG9pbnRFRTExZGVjb2RlVmFsdWVFUk5TXzEyRW5jb2RlZFZhbHVlRVJTMl8KIF9fWk4z
SlNDMTRFbmNvZGluZ1RyYWl0c0lON1dlYkNvcmU4SW50UG9pbnRFRTExZW5jb2RlVmFsdWVFUktT
Ml8KIF9fWk4zSlNDMTRFbmNvZGluZ1RyYWl0c0lON1dlYkNvcmU5RmxvYXRTaXplRUUxMWRlY29k
ZVZhbHVlRVJOU18xMkVuY29kZWRWYWx1ZUVSUzJfCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZXBsYXkvV2ViSW5wdXRzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvV2ViSW5wdXRz
Lmpzb24KaW5kZXggZDRmM2IzNDk0ZmQ0Nzk5MzQ3YTdhNGI1OTZjNDVjYThkM2Y5YzJhNi4uMTli
Y2JkZTA0NWJlMzI5ZWFjNjIzMWIyZTg2M2I1ODUxNWQyMTYwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVwbGF5L1dlYklucHV0cy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxh
eS9XZWJJbnB1dHMuanNvbgpAQCAtODYsNiArODYsMzUgQEAKICAgICAgICAgICAgICAgICAiaGVh
ZGVyIjogInBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZS5oIgogICAgICAgICAgICAg
fSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJTY3JvbGxEaXJlY3Rp
b24iLCAibW9kZSI6ICJTQ0FMQVIiLCAic3RvcmFnZSI6ICJ1aW50OF90IiwKKyAgICAgICAgICAg
ICAgICAiZmxhZ3MiOiBbIkVOVU0iXSwKKyAgICAgICAgICAgICAgICAidmFsdWVzIjogWyJTY3Jv
bGxVcCIsICJTY3JvbGxEb3duIiwgIlNjcm9sbExlZnQiLCAiU2Nyb2xsUmlnaHQiXSwKKyAgICAg
ICAgICAgICAgICAiaGVhZGVyIjogInBsYXRmb3JtL1Njcm9sbFR5cGVzLmgiCisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogIlNjcm9sbEdyYW51
bGFyaXR5IiwgIm1vZGUiOiAiU0NBTEFSIiwgInN0b3JhZ2UiOiAidWludDhfdCIsCisgICAgICAg
ICAgICAgICAgImZsYWdzIjogWyJFTlVNIl0sCisgICAgICAgICAgICAgICAgInZhbHVlcyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgIlNjcm9sbEJ5TGluZSIsCisgICAgICAgICAgICAgICAgICAg
ICJTY3JvbGxCeVBhZ2UiLAorICAgICAgICAgICAgICAgICAgICAiU2Nyb2xsQnlEb2N1bWVudCIs
CisgICAgICAgICAgICAgICAgICAgICJTY3JvbGxCeVBpeGVsIiwKKyAgICAgICAgICAgICAgICAg
ICAgIlNjcm9sbEJ5UHJlY2lzZVBpeGVsIgorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgImhlYWRlciI6ICJwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oIgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJTY3JvbGxMb2dpY2FsRGly
ZWN0aW9uIiwgIm1vZGUiOiAiU0NBTEFSIiwgInN0b3JhZ2UiOiAidWludDhfdCIsCisgICAgICAg
ICAgICAgICAgImZsYWdzIjogWyJFTlVNIl0sCisgICAgICAgICAgICAgICAgInZhbHVlcyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgIlNjcm9sbEJsb2NrRGlyZWN0aW9uQmFja3dhcmQiLAorICAg
ICAgICAgICAgICAgICAgICAiU2Nyb2xsQmxvY2tEaXJlY3Rpb25Gb3J3YXJkIiwKKyAgICAgICAg
ICAgICAgICAgICAgIlNjcm9sbElubGluZURpcmVjdGlvbkJhY2t3YXJkIiwKKyAgICAgICAgICAg
ICAgICAgICAgIlNjcm9sbElubGluZURpcmVjdGlvbkZvcndhcmQiCisgICAgICAgICAgICAgICAg
XSwKKyAgICAgICAgICAgICAgICAiaGVhZGVyIjogInBsYXRmb3JtL1Njcm9sbFR5cGVzLmgiCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogIlNl
Y3VyaXR5T3JpZ2luIiwgIm1vZGUiOiAiU0hBUkVEIiwKICAgICAgICAgICAgICAgICAiaGVhZGVy
IjogInBhZ2UvU2VjdXJpdHlPcmlnaW4uaCIKICAgICAgICAgICAgIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244668</attachid>
            <date>2015-01-14 17:37:46 -0800</date>
            <delta_ts>2015-01-18 23:02:25 -0800</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-136311-20150114173718.patch</filename>
            <type>text/plain</type>
            <size>58582</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
NWUyYjc4Yjg5NmE4YmFhZTlhNDE0NGJkZmY3M2UzYjNmZmZlYTkwLi5kZjQ3ZGE5YmRhZDNiMzI0
MWYyNjliMGRhMGUwOGQxZTdiOTA0NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAxNS0wMS0xNCAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIFJlcGxheTogb25seSBnZW5lcmF0ZSBFbmNvZGluZ1RyYWl0
cyBmb3IgZW51bXMgZGVmaW5lZCBpbiB0aGUgdGFyZ2V0IGZyYW1ld29yaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MzExCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgZ2VuZXJhdGUgRW5jb2Rp
bmdUcmFpdHMgZm9yIGVudW1zIHVubGVzcyB0aGV5IGJlbG9uZyB0byB0aGUgdGFyZ2V0IGZyYW1l
d29yay4KKyAgICAgICAgT3RoZXJ3aXNlLCBlbnVtcyB1c2VkIGluIG11bHRpcGxlIGZyYW1ld29y
a3MnIGlucHV0cyBjYW5ub3QgYmUgdW5hbWJpZ3VvdXNseSBlbmNvZGVkL2RlY29kZWQKKyAgICAg
ICAgYmVjYXVzZSB0aGV5IHdpbGwgaGF2ZSBtb3JlIHRoYW4gb25lIGdlbmVyYXRlZCBpbXBsZW1l
bnRhdGlvbi4KKworICAgICAgICBGb3Igbm93LCBzb21lIHR5cGUgZGVmaW5pdGlvbnMgd2lsbCBi
ZSBkdXBsaWNhdGVkIGJldHdlZW4gSlNPTiBzcGVjaWZpY2F0aW9uIGZpbGVzLgorICAgICAgICBU
aGlzIHdpbGwgYmUgZml4ZWQgaW4gYSBmb2xsb3ctdXAgYnVnIHRoYXQgdGVhY2hlcyB0aGUgZ2Vu
ZXJhdG9yIGFib3V0IHN1cHBsZW1lbnRhbCBzcGVjaWZpY2F0aW9ucy4KKworICAgICAgICBVc2Ug
VHlwZS5lbmNvZGluZ190eXBlX2FyZ3VtZW50IGluIG1vcmUgcGxhY2VzLCBhbmQgYWRkIHRoZSBl
eHBvcnQgbWFjcm8gZm9yIFdlYkNvcmUuCisKKyAgICAgICAgQWRqdXN0IHNvbWUgdGVzdHMgc28g
dGhhdCBlbnVtIGNvdmVyYWdlIGlzIHByZXNlcnZlZCBieSBtb3ZpbmcgdGhlIGVudW0gdHlwZXMg
aW50byAiVGVzdCIKKyAgICAgICAgKHRoZSB0YXJnZXQgZnJhbWV3b3JrIGZvciB0ZXN0cykuIAor
CisgICAgICAgICogcmVwbGF5L0pTSW5wdXRzLmpzb246IENvcHkgdGhlIElucHV0UXVldWUgZW51
bSB0byBoZXJlLiBJdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBXZWJJbnB1dHMuanNvbgorICAgICAg
ICBpbiBhIGZ1dHVyZSBwYXRjaCB3aGVuIHN1cHBsZW1lbnRhbCBpbnB1dCBzcGVjaWZpY2F0aW9u
cyBjYW4gYmUgcmVhZCBieSB0aGUgZ2VuZXJhdG9yLgorICAgICAgICAqIHJlcGxheS9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHk6CisgICAgICAgIChHZW5lcmF0b3IuZ2VuZXJh
dGVfaGVhZGVyKTogU2VsZWN0aXZlbHkgZ2VuZXJhdGUgdHJhaXRzLgorICAgICAgICAoR2VuZXJh
dG9yLmdlbmVyYXRlX2ltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRvci5nZW5lcmF0
ZV9lbnVtX3RyYWl0X2ltcGxlbWVudGF0aW9uKTogYWRkIFdFQkNPUkVfRVhQT1JUIG1hY3JvIHRv
IGVudW0gZW5jb2RpbmcgdHJhaXRzLgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JSZXBsYXlJbnB1dHNUZW1wbGF0ZXMucHk6CisgICAgICAgICogcmVwbGF5L3NjcmlwdHMv
dGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGluZy1oZWxwZXJzLXdpdGgtZ3VhcmRl
ZC12YWx1ZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcDoKKyAgICAgICAgKiByZXBsYXkvc2Ny
aXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMtd2l0aC1n
dWFyZGVkLXZhbHVlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaDoKKyAgICAgICAgKiByZXBsYXkv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMuanNv
bi1UZXN0UmVwbGF5SW5wdXRzLmNwcDoKKyAgICAgICAgKiByZXBsYXkvc2NyaXB0cy90ZXN0cy9l
eHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMuanNvbi1UZXN0UmVwbGF5SW5w
dXRzLmg6CisgICAgICAgICogcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUt
ZW51bS13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHA6CisgICAgICAgICogcmVw
bGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS13aXRoLWd1YXJkLmpzb24t
VGVzdFJlcGxheUlucHV0cy5oOgorICAgICAgICAqIHJlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVj
dGVkL2dlbmVyYXRlLWVudW1zLXdpdGgtc2FtZS1iYXNlLW5hbWUuanNvbi1UZXN0UmVwbGF5SW5w
dXRzLmNwcDoKKyAgICAgICAgKiByZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0
ZS1lbnVtcy13aXRoLXNhbWUtYmFzZS1uYW1lLmpzb24tVGVzdFJlcGxheUlucHV0cy5oOgorICAg
ICAgICAqIHJlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0LXdpdGgt
Z3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmg6CisgICAgICAgICogcmVwbGF5L3NjcmlwdHMv
dGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0aC12ZWN0b3ItbWVtYmVycy5qc29uLVRl
c3RSZXBsYXlJbnB1dHMuaDoKKyAgICAgICAgKiByZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3Rl
ZC9nZW5lcmF0ZS1pbnB1dHMtd2l0aC1mbGFncy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaDoKKyAg
ICAgICAgKiByZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1tZW1vaXplZC10
eXBlLW1vZGVzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oOgorICAgICAgICAqIHJlcGxheS9zY3Jp
cHRzL3Rlc3RzL2dlbmVyYXRlLWVudW0tZW5jb2RpbmctaGVscGVycy5qc29uOgorICAgICAgICAq
IHJlcGxheS9zY3JpcHRzL3Rlc3RzL2dlbmVyYXRlLWVudW0td2l0aC1ndWFyZC5qc29uOiBJbmNs
dWRlIGVudW1zIHRoYXQgYXJlIGFuZCBhcmUgbm90IGdlbmVyYXRlZC4KKyAgICAgICAgKiByZXBs
YXkvc2NyaXB0cy90ZXN0cy9nZW5lcmF0ZS1lbnVtcy13aXRoLXNhbWUtYmFzZS1uYW1lLmpzb246
CisKIDIwMTUtMDEtMTQgIE1hdHRoZXcgTWlybWFuICA8bW1pcm1hbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlZCBhY2NpZGVudGFsIGNvbW1pdCBvZiAiaW52YWxpZF9hcnJheS5qcyIgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0pTSW5wdXRzLmpzb24gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L0pTSW5wdXRzLmpzb24KaW5kZXggNzM5NGQ5NDcw
YTg0YjI5ZmRkM2Q0YjQxY2YzYjkxOGRmMzVmNDM4MC4uODQxOTE3MDYwZDcwYzQ5NjEyZGZkNDlj
M2Q3YmNjNGI1ZWMzNDQyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxh
eS9KU0lucHV0cy5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvSlNJbnB1
dHMuanNvbgpAQCAtMyw2ICszLDE1IEBACiAgICAgICAgICJHbG9iYWwiOiBbCiAgICAgICAgICAg
ICB7ICJuYW1lIjogImRvdWJsZSIsICJtb2RlIjogIlNDQUxBUiIgfSwKICAgICAgICAgICAgIHsg
Im5hbWUiOiAidWludDY0X3QiLCAibW9kZSI6ICJTQ0FMQVIiIH0KKyAgICAgICAgXSwKKworICAg
ICAgICAiSmF2YVNjcmlwdENvcmUiOiBbCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
Im5hbWUiOiAiSW5wdXRRdWV1ZSIsICJtb2RlIjogIlNDQUxBUiIsICJzdG9yYWdlIjogInVpbnQ4
X3QiLAorICAgICAgICAgICAgICAgICJmbGFncyI6IFsiRU5VTV9DTEFTUyJdLAorICAgICAgICAg
ICAgICAgICJ2YWx1ZXMiOiBbIkV2ZW50TG9vcElucHV0IiwgIkxvYWRlck1lbW9pemVkRGF0YSIs
ICJTY3JpcHRNZW1vaXplZERhdGEiLCAiQ291bnQiXSwKKyAgICAgICAgICAgICAgICAiaGVhZGVy
IjogInJlcGxheS9Ob25kZXRlcm1pbmlzdGljSW5wdXQuaCIKKyAgICAgICAgICAgIH0KICAgICAg
ICAgXQogICAgIH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3JlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkKaW5kZXggNjVm
NTQ5YWViMzc3ZjJlY2VhYWJkOTU5Mzc3MTAyZmZiMTViNjNhNS4uZTQwNzlhMDMwODI5YjI3ZDg3
ZWNiNmFiNzllOTZiNGJkODYyZDMyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3JlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL0NvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMu
cHkKQEAgLTEwOSwxMSArMTA5LDEzIEBAIEZSQU1FV09SS19DT05GSUdfTUFQID0gewogICAgICJX
ZWJDb3JlIjogewogICAgICAgICAicHJlZml4IjogIldlYiIsCiAgICAgICAgICJuYW1lc3BhY2Ui
OiAiV2ViQ29yZSIsCisgICAgICAgICJleHBvcnRNYWNybyI6ICJXRUJDT1JFX0VYUE9SVCIKICAg
ICB9LAogICAgICMgVXNlZCBmb3IgYmluZGluZ3MgdGVzdHMuCiAgICAgIlRlc3QiOiB7CiAgICAg
ICAgICJwcmVmaXgiOiAiVGVzdCIsCiAgICAgICAgICJuYW1lc3BhY2UiOiAiVGVzdCIsCisgICAg
ICAgICJleHBvcnRNYWNybyI6ICJURVNUX0VYUE9SVF9NQUNSTyIKICAgICB9CiB9CiAKQEAgLTU4
NCw2ICs1ODYsOCBAQCBjbGFzcyBHZW5lcmF0b3I6CiAgICAgICAgIGltcGxlbWVudGF0aW9uX2Zp
bGUuY2xvc2UoKQogCiAgICAgZGVmIGdlbmVyYXRlX2hlYWRlcihzZWxmKToKKyAgICAgICAgZW51
bXNfdG9fZ2VuZXJhdGUgPSBmaWx0ZXIobGFtYmRhIGVudW06IGVudW0uZnJhbWV3b3JrIGlzIHNl
bGYudGFyZ2V0X2ZyYW1ld29yaywgc2VsZi5fbW9kZWwuZW51bV90eXBlcygpKQorCiAgICAgICAg
IHRlbXBsYXRlX2FyZ3VtZW50cyA9IHsKICAgICAgICAgICAgICdsaWNlbnNlQmxvY2snOiBzZWxm
LmdlbmVyYXRlX2xpY2Vuc2UoKSwKICAgICAgICAgICAgICdoZWFkZXJHdWFyZCc6IHJlLnN1Yign
Wy0uL10nLCAnXycsIHNlbGYub3V0cHV0X2ZpbGVuYW1lKCkgKyAiLmgiKSwKQEAgLTU5NiwxMyAr
NjAwLDE1IEBAIGNsYXNzIEdlbmVyYXRvcjoKICAgICAgICAgICAgICdpbnB1dEZvcndhcmREZWNs
YXJhdGlvbnMnOiAiXG4iLmpvaW4oW3dyYXBfd2l0aF9ndWFyZCgiY2xhc3MgJXM7IiwgX2lucHV0
Lmd1YXJkKSAlIF9pbnB1dC5uYW1lIGZvciBfaW5wdXQgaW4gc2VsZi5fbW9kZWwuaW5wdXRzXSks
CiAgICAgICAgICAgICAnaW5wdXRDbGFzc0RlY2xhcmF0aW9ucyc6ICJcblxuIi5qb2luKFtzZWxm
LmdlbmVyYXRlX2NsYXNzX2RlY2xhcmF0aW9uKF9pbnB1dCkgZm9yIF9pbnB1dCBpbiBzZWxmLl9t
b2RlbC5pbnB1dHNdKSwKICAgICAgICAgICAgICdpbnB1dFRyYWl0RGVjbGFyYXRpb25zJzogIlxu
XG4iLmpvaW4oW3NlbGYuZ2VuZXJhdGVfaW5wdXRfdHJhaXRfZGVjbGFyYXRpb24oX2lucHV0KSBm
b3IgX2lucHV0IGluIHNlbGYuX21vZGVsLmlucHV0c10pLAotICAgICAgICAgICAgJ2VudW1UcmFp
dERlY2xhcmF0aW9ucyc6ICJcblxuIi5qb2luKFt3cmFwX3dpdGhfZ3VhcmQoc2VsZi5nZW5lcmF0
ZV9lbnVtX3RyYWl0X2RlY2xhcmF0aW9uKF90eXBlKSwgX3R5cGUuZ3VhcmQpIGZvciBfdHlwZSBp
biBzZWxmLl9tb2RlbC5lbnVtX3R5cGVzKCldKSwKKyAgICAgICAgICAgICdlbnVtVHJhaXREZWNs
YXJhdGlvbnMnOiAiXG5cbiIuam9pbihbd3JhcF93aXRoX2d1YXJkKHNlbGYuZ2VuZXJhdGVfZW51
bV90cmFpdF9kZWNsYXJhdGlvbihfdHlwZSksIF90eXBlLmd1YXJkKSBmb3IgX3R5cGUgaW4gZW51
bXNfdG9fZ2VuZXJhdGVdKSwKICAgICAgICAgICAgICdmb3JFYWNoTWFjcm8nOiBzZWxmLmdlbmVy
YXRlX2Zvcl9lYWNoX21hY3JvKCksCiAgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gVGVtcGxh
dGUoVGVtcGxhdGVzLkhlYWRlclNrZWxldG9uKS5zdWJzdGl0dXRlKHRlbXBsYXRlX2FyZ3VtZW50
cykKIAogICAgIGRlZiBnZW5lcmF0ZV9pbXBsZW1lbnRhdGlvbihzZWxmKToKKyAgICAgICAgZW51
bXNfdG9fZ2VuZXJhdGUgPSBmaWx0ZXIobGFtYmRhIGVudW06IGVudW0uZnJhbWV3b3JrIGlzIHNl
bGYudGFyZ2V0X2ZyYW1ld29yaywgc2VsZi5fbW9kZWwuZW51bV90eXBlcygpKQorCiAgICAgICAg
IHRlbXBsYXRlX2FyZ3VtZW50cyA9IHsKICAgICAgICAgICAgICdsaWNlbnNlQmxvY2snOiBzZWxm
LmdlbmVyYXRlX2xpY2Vuc2UoKSwKICAgICAgICAgICAgICdmaWxlbmFtZSc6IHNlbGYub3V0cHV0
X2ZpbGVuYW1lKCksCkBAIC02MTIsNyArNjE4LDcgQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgICAg
ICAgICAgJ2luY2x1ZGVzJzogc2VsZi5nZW5lcmF0ZV9pbmNsdWRlcyhkZWZhdWx0cz1zZWxmLnNl
dHRpbmcoJ2ltcGxJbmNsdWRlcycpLCBpbmNsdWRlc19mb3JfdHlwZXM9VHJ1ZSksCiAgICAgICAg
ICAgICAnaW5wdXRDbGFzc0ltcGxlbWVudGF0aW9ucyc6ICJcblxuIi5qb2luKFtzZWxmLmdlbmVy
YXRlX2NsYXNzX2ltcGxlbWVudGF0aW9uKF9pbnB1dCkgZm9yIF9pbnB1dCBpbiBzZWxmLl9tb2Rl
bC5pbnB1dHNdKSwKICAgICAgICAgICAgICdpbnB1dFRyYWl0SW1wbGVtZW50YXRpb25zJzogIlxu
XG4iLmpvaW4oW3NlbGYuZ2VuZXJhdGVfaW5wdXRfdHJhaXRfaW1wbGVtZW50YXRpb24oX2lucHV0
KSBmb3IgX2lucHV0IGluIHNlbGYuX21vZGVsLmlucHV0c10pLAotICAgICAgICAgICAgJ2VudW1U
cmFpdEltcGxlbWVudGF0aW9ucyc6ICJcblxuIi5qb2luKFt3cmFwX3dpdGhfZ3VhcmQoc2VsZi5n
ZW5lcmF0ZV9lbnVtX3RyYWl0X2ltcGxlbWVudGF0aW9uKF90eXBlKSwgX3R5cGUuZ3VhcmQpIGZv
ciBfdHlwZSBpbiBzZWxmLl9tb2RlbC5lbnVtX3R5cGVzKCldKSwKKyAgICAgICAgICAgICdlbnVt
VHJhaXRJbXBsZW1lbnRhdGlvbnMnOiAiXG5cbiIuam9pbihbd3JhcF93aXRoX2d1YXJkKHNlbGYu
Z2VuZXJhdGVfZW51bV90cmFpdF9pbXBsZW1lbnRhdGlvbihfdHlwZSksIF90eXBlLmd1YXJkKSBm
b3IgX3R5cGUgaW4gZW51bXNfdG9fZ2VuZXJhdGVdKSwKICAgICAgICAgfQogCiAgICAgICAgIHJl
dHVybiBUZW1wbGF0ZShUZW1wbGF0ZXMuSW1wbGVtZW50YXRpb25Ta2VsZXRvbikuc3Vic3RpdHV0
ZSh0ZW1wbGF0ZV9hcmd1bWVudHMpCkBAIC03NjcsMTAgKzc3MywxNiBAQCBjbGFzcyBHZW5lcmF0
b3I6CiAgICAgICAgIHJldHVybiB3cmFwX3dpdGhfZ3VhcmQoVGVtcGxhdGUoVGVtcGxhdGVzLklu
cHV0VHJhaXRzRGVjbGFyYXRpb24pLnN1YnN0aXR1dGUodGVtcGxhdGVfYXJndW1lbnRzKSwgX2lu
cHV0Lmd1YXJkKQogCiAgICAgZGVmIGdlbmVyYXRlX2VudW1fdHJhaXRfZGVjbGFyYXRpb24oc2Vs
ZiwgX3R5cGUpOgorICAgICAgICBkZWNsX3R5cGUgPSBbJ3N0cnVjdCddCisgICAgICAgIGlmIGxl
bihzZWxmLnNldHRpbmcoJ2V4cG9ydE1hY3JvJykpID4gMDoKKyAgICAgICAgICAgIGRlY2xfdHlw
ZS5hcHBlbmQoc2VsZi5zZXR0aW5nKCdleHBvcnRNYWNybycpKQorCiAgICAgICAgIHNob3VsZF9x
dWFsaWZ5X3R5cGUgPSBfdHlwZS5mcmFtZXdvcmsgIT0gc2VsZi50cmFpdHNfZnJhbWV3b3JrCiAg
ICAgICAgIHRlbXBsYXRlID0gVGVtcGxhdGVzLkVudW1UcmFpdERlY2xhcmF0aW9uIGlmIF90eXBl
LmlzX2VudW0oKSBlbHNlIFRlbXBsYXRlcy5FbnVtQ2xhc3NUcmFpdERlY2xhcmF0aW9uCiAgICAg
ICAgIHRlbXBsYXRlX2FyZ3VtZW50cyA9IHsKLSAgICAgICAgICAgICdlbnVtTmFtZSc6IF90eXBl
LnR5cGVfbmFtZShxdWFsaWZpZWQ9c2hvdWxkX3F1YWxpZnlfdHlwZSksCisgICAgICAgICAgICAn
ZW5jb2RpbmdUeXBlQXJndW1lbnQnOiBfdHlwZS5lbmNvZGluZ190eXBlX2FyZ3VtZW50KHF1YWxp
ZmllZD1zaG91bGRfcXVhbGlmeV90eXBlKSwKKyAgICAgICAgICAgICdlbnVtVHlwZSc6IF90eXBl
LnR5cGVfbmFtZShxdWFsaWZpZWQ9c2hvdWxkX3F1YWxpZnlfdHlwZSksCisgICAgICAgICAgICAn
c3RydWN0T3JDbGFzcyc6ICIgIi5qb2luKGRlY2xfdHlwZSkKICAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gVGVtcGxhdGUodGVtcGxhdGUpLnN1YnN0aXR1dGUodGVtcGxhdGVfYXJndW1lbnRzKQog
CkBAIC04NTgsNyArODcwLDggQEAgY2xhc3MgR2VuZXJhdG9yOgogICAgICAgICAgICAgZGVjb2Rl
TGluZXMuYXBwZW5kKHdyYXBfd2l0aF9ndWFyZCgiXG4iLmpvaW4oZ3VhcmRlZExpbmVzKSwgZ3Vh
cmQpKQogCiAgICAgICAgIHRlbXBsYXRlX2FyZ3VtZW50cyA9IHsKLSAgICAgICAgICAgICdlbnVt
TmFtZSc6IF90eXBlLnR5cGVfbmFtZShxdWFsaWZpZWQ9c2hvdWxkX3F1YWxpZnlfdHlwZSksCisg
ICAgICAgICAgICAnZW5jb2RpbmdUeXBlQXJndW1lbnQnOiBfdHlwZS5lbmNvZGluZ190eXBlX2Fy
Z3VtZW50KHF1YWxpZmllZD1zaG91bGRfcXVhbGlmeV90eXBlKSwKKyAgICAgICAgICAgICdlbnVt
VHlwZSc6IF90eXBlLnR5cGVfbmFtZShxdWFsaWZpZWQ9c2hvdWxkX3F1YWxpZnlfdHlwZSksCiAg
ICAgICAgICAgICAnZW5jb2RlQ2FzZXMnOiAiXG4iLmpvaW4oZW5jb2RlTGluZXMpLAogICAgICAg
ICAgICAgJ2RlY29kZUNhc2VzJzogIlxuIi5qb2luKGRlY29kZUxpbmVzKQogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvQ29kZUdlbmVy
YXRvclJlcGxheUlucHV0c1RlbXBsYXRlcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBs
YXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5CmluZGV4IDhk
ZTdiZjZiMDc0NTZjN2FiOTI1OTMyMTVjMzE1MTdhNmQzYzY1YmIuLmJlMDA5ODFlODRiNThhZmE1
ZTk3NmZlMWU0ZmExOTZmOWE4ODYzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzVGVtcGxhdGVzLnB5Cisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy9Db2RlR2VuZXJhdG9yUmVw
bGF5SW5wdXRzVGVtcGxhdGVzLnB5CkBAIC0xMDUsMTkgKzEwNSwxOSBAQCAke2ZvckVhY2hNYWNy
b30KIH07IiIiKQogCiAgICAgRW51bVRyYWl0RGVjbGFyYXRpb24gPSAoCi0gICAgIiIidGVtcGxh
dGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8JHtlbnVtTmFtZX0+IHsKLSAgICB0eXBlZGVmICR7
ZW51bU5hbWV9IERlY29kZWRUeXBlOworICAgICIiInRlbXBsYXRlPD4gJHtzdHJ1Y3RPckNsYXNz
fSBFbmNvZGluZ1RyYWl0czwke2VuY29kaW5nVHlwZUFyZ3VtZW50fT4geworICAgIHR5cGVkZWYg
JHtlbnVtVHlwZX0gRGVjb2RlZFR5cGU7CiAKLSAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29k
ZVZhbHVlKGNvbnN0ICR7ZW51bU5hbWV9JiB2YWx1ZSk7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2Rl
VmFsdWUoRW5jb2RlZFZhbHVlJiwgJHtlbnVtTmFtZX0mIHZhbHVlKTsKKyAgICBzdGF0aWMgRW5j
b2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0ICR7ZW51bVR5cGV9JiB2YWx1ZSk7CisgICAgc3Rh
dGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgJHtlbnVtVHlwZX0mIHZhbHVlKTsK
IH07IiIiKQogCiAgICAgRW51bUNsYXNzVHJhaXREZWNsYXJhdGlvbiA9ICgKLSAgICAiIiJ0ZW1w
bGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czwke2VudW1OYW1lfT4gewotICAgIHR5cGVkZWYg
JHtlbnVtTmFtZX0gRGVjb2RlZFR5cGU7CisgICAgIiIidGVtcGxhdGU8PiAke3N0cnVjdE9yQ2xh
c3N9IEVuY29kaW5nVHJhaXRzPCR7ZW5jb2RpbmdUeXBlQXJndW1lbnR9PiB7CisgICAgdHlwZWRl
ZiAke2VudW1UeXBlfSBEZWNvZGVkVHlwZTsKIAotICAgIHN0YXRpYyBFbmNvZGVkVmFsdWUgZW5j
b2RlVmFsdWUoY29uc3QgJHtlbnVtTmFtZX0mIHZhbHVlKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNv
ZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCAke2VudW1OYW1lfSYgdmFsdWUpOworICAgIHN0YXRpYyBF
bmNvZGVkVmFsdWUgZW5jb2RlVmFsdWUoY29uc3QgJHtlbnVtVHlwZX0mIHZhbHVlKTsKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCAke2VudW1UeXBlfSYgdmFsdWUp
OwogfTsiIiIpCiAKICAgICBJbnB1dENsYXNzRGVjbGFyYXRpb24gPSAoCkBAIC0xNzEsNyArMTcx
LDcgQEAgJHtkZWNvZGVTdGVwc30KIH0iIiIpCiAKICAgICBFbnVtQ2xhc3NUcmFpdEltcGxlbWVu
dGF0aW9uID0gKAotICAgICIiIkVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czwke2VudW1OYW1l
fT46OmVuY29kZVZhbHVlKGNvbnN0ICR7ZW51bU5hbWV9JiBlbnVtVmFsdWUpCisgICAgIiIiRW5j
b2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPCR7ZW5jb2RpbmdUeXBlQXJndW1lbnR9Pjo6ZW5jb2Rl
VmFsdWUoY29uc3QgJHtlbnVtVHlwZX0mIGVudW1WYWx1ZSkKIHsKICAgICBzd2l0Y2ggKGVudW1W
YWx1ZSkgewogJHtlbmNvZGVDYXNlc30KQEAgLTE3OSw3ICsxNzksNyBAQCAke2VuY29kZUNhc2Vz
fQogICAgIH0KIH0KIAotYm9vbCBFbmNvZGluZ1RyYWl0czwke2VudW1OYW1lfT46OmRlY29kZVZh
bHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCAke2VudW1OYW1lfSYgZW51bVZhbHVlKQor
Ym9vbCBFbmNvZGluZ1RyYWl0czwke2VuY29kaW5nVHlwZUFyZ3VtZW50fT46OmRlY29kZVZhbHVl
KEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCAke2VudW1UeXBlfSYgZW51bVZhbHVlKQogewog
ICAgIFN0cmluZyBlbnVtU3RyaW5nID0gZW5jb2RlZFZhbHVlLmNvbnZlcnRUbzxTdHJpbmc+KCk7
CiAke2RlY29kZUNhc2VzfQpAQCAtMTk2LDE0ICsxOTYsMTQgQEAgJHtkZWNvZGVDYXNlc30KICAg
ICB9IiIiKQogCiAgICAgRW51bVRyYWl0SW1wbGVtZW50YXRpb24gPSAoCi0gICAgIiIiRW5jb2Rl
ZFZhbHVlIEVuY29kaW5nVHJhaXRzPCR7ZW51bU5hbWV9Pjo6ZW5jb2RlVmFsdWUoY29uc3QgJHtl
bnVtTmFtZX0mIGVudW1WYWx1ZSkKKyAgICAiIiJFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8
JHtlbmNvZGluZ1R5cGVBcmd1bWVudH0+OjplbmNvZGVWYWx1ZShjb25zdCAke2VudW1UeXBlfSYg
ZW51bVZhbHVlKQogewogICAgIEVuY29kZWRWYWx1ZSBlbmNvZGVkVmFsdWUgPSBFbmNvZGVkVmFs
dWU6OmNyZWF0ZUFycmF5KCk7CiAke2VuY29kZUNhc2VzfQogICAgIHJldHVybiBlbmNvZGVkVmFs
dWU7CiB9CiAKLWJvb2wgRW5jb2RpbmdUcmFpdHM8JHtlbnVtTmFtZX0+OjpkZWNvZGVWYWx1ZShF
bmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgJHtlbnVtTmFtZX0mIGVudW1WYWx1ZSkKK2Jvb2wg
RW5jb2RpbmdUcmFpdHM8JHtlbmNvZGluZ1R5cGVBcmd1bWVudH0+OjpkZWNvZGVWYWx1ZShFbmNv
ZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgJHtlbnVtVHlwZX0mIGVudW1WYWx1ZSkKIHsKICAgICBW
ZWN0b3I8U3RyaW5nPiBlbnVtU3RyaW5nczsKICAgICBpZiAoIUVuY29kaW5nVHJhaXRzPFZlY3Rv
cjxTdHJpbmc+Pjo6ZGVjb2RlVmFsdWUoZW5jb2RlZFZhbHVlLCBlbnVtU3RyaW5ncykpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0
ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGluZy1oZWxwZXJzLXdpdGgtZ3VhcmRlZC12YWx1ZXMuanNv
bi1UZXN0UmVwbGF5SW5wdXRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2Ny
aXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMtd2l0aC1n
dWFyZGVkLXZhbHVlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwCmluZGV4IDMwODM3ZWQ0MmM4
ZTcwY2FhZTk3Mzk4YmEzMDlkNzlhYjg5NjNhZWIuLmQ1YjE1ODU1YjZlMjc4ODA3ZTQ0ODMwZjlj
YzFhMmJmNzNjNjUyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMtd2l0
aC1ndWFyZGVkLXZhbHVlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVt
LWVuY29kaW5nLWhlbHBlcnMtd2l0aC1ndWFyZGVkLXZhbHVlcy5qc29uLVRlc3RSZXBsYXlJbnB1
dHMuY3BwCkBAIC02OCw4MCArNjgsNyBAQCBib29sIElucHV0VHJhaXRzPFRlc3Q6OlNhdmVkTW91
c2VCdXR0b24+OjpkZWNvZGUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIHN0ZAogICAgIGlu
cHV0ID0gc3RkOjptYWtlX3VuaXF1ZTxUZXN0OjpTYXZlZE1vdXNlQnV0dG9uPihidXR0b24pOwog
ICAgIHJldHVybiB0cnVlOwogfQotRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6
Ok1vdXNlQnV0dG9uPjo6ZW5jb2RlVmFsdWUoY29uc3QgV2ViQ29yZTo6TW91c2VCdXR0b24mIGVu
dW1WYWx1ZSkKLXsKLSAgICBFbmNvZGVkVmFsdWUgZW5jb2RlZFZhbHVlID0gRW5jb2RlZFZhbHVl
OjpjcmVhdGVBcnJheSgpOwotICAgIGlmIChlbnVtVmFsdWUgJiBXZWJDb3JlOjpOb0J1dHRvbikg
ewotICAgICAgICBlbmNvZGVkVmFsdWUuYXBwZW5kPFN0cmluZz4oQVNDSUlMaXRlcmFsKCJOb0J1
dHRvbiIpKTsKLSAgICAgICAgaWYgKGVudW1WYWx1ZSA9PSBXZWJDb3JlOjpOb0J1dHRvbikKLSAg
ICAgICAgICAgIHJldHVybiBlbmNvZGVkVmFsdWU7Ci0gICAgfQotICAgIGlmIChlbnVtVmFsdWUg
JiBXZWJDb3JlOjpMZWZ0QnV0dG9uKSB7Ci0gICAgICAgIGVuY29kZWRWYWx1ZS5hcHBlbmQ8U3Ry
aW5nPihBU0NJSUxpdGVyYWwoIkxlZnRCdXR0b24iKSk7Ci0gICAgICAgIGlmIChlbnVtVmFsdWUg
PT0gV2ViQ29yZTo6TGVmdEJ1dHRvbikKLSAgICAgICAgICAgIHJldHVybiBlbmNvZGVkVmFsdWU7
Ci0gICAgfQotICAgIGlmIChlbnVtVmFsdWUgJiBXZWJDb3JlOjpNaWRkbGVCdXR0b24pIHsKLSAg
ICAgICAgZW5jb2RlZFZhbHVlLmFwcGVuZDxTdHJpbmc+KEFTQ0lJTGl0ZXJhbCgiTWlkZGxlQnV0
dG9uIikpOwotICAgICAgICBpZiAoZW51bVZhbHVlID09IFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbikK
LSAgICAgICAgICAgIHJldHVybiBlbmNvZGVkVmFsdWU7Ci0gICAgfQotICAgIGlmIChlbnVtVmFs
dWUgJiBXZWJDb3JlOjpSaWdodEJ1dHRvbikgewotICAgICAgICBlbmNvZGVkVmFsdWUuYXBwZW5k
PFN0cmluZz4oQVNDSUlMaXRlcmFsKCJSaWdodEJ1dHRvbiIpKTsKLSAgICAgICAgaWYgKGVudW1W
YWx1ZSA9PSBXZWJDb3JlOjpSaWdodEJ1dHRvbikKLSAgICAgICAgICAgIHJldHVybiBlbmNvZGVk
VmFsdWU7Ci0gICAgfQotI2lmIEVOQUJMRShTSURFX0JVVFRPTlMpCi0gICAgaWYgKGVudW1WYWx1
ZSAmIFdlYkNvcmU6OkxlZnRTaWRlQnV0dG9uKSB7Ci0gICAgICAgIGVuY29kZWRWYWx1ZS5hcHBl
bmQ8U3RyaW5nPihBU0NJSUxpdGVyYWwoIkxlZnRTaWRlQnV0dG9uIikpOwotICAgICAgICBpZiAo
ZW51bVZhbHVlID09IFdlYkNvcmU6OkxlZnRTaWRlQnV0dG9uKQotICAgICAgICAgICAgcmV0dXJu
IGVuY29kZWRWYWx1ZTsKLSAgICB9Ci0gICAgaWYgKGVudW1WYWx1ZSAmIFdlYkNvcmU6OlJpZ2h0
U2lkZUJ1dHRvbikgewotICAgICAgICBlbmNvZGVkVmFsdWUuYXBwZW5kPFN0cmluZz4oQVNDSUlM
aXRlcmFsKCJSaWdodFNpZGVCdXR0b24iKSk7Ci0gICAgICAgIGlmIChlbnVtVmFsdWUgPT0gV2Vi
Q29yZTo6UmlnaHRTaWRlQnV0dG9uKQotICAgICAgICAgICAgcmV0dXJuIGVuY29kZWRWYWx1ZTsK
LSAgICB9Ci0jZW5kaWYgLy8gRU5BQkxFKFNJREVfQlVUVE9OUykKLSNpZiBQTEFURk9STShXSU5E
T1dTKQotICAgIGlmIChlbnVtVmFsdWUgJiBXZWJDb3JlOjpXaW5kb3dzQnV0dG9uKSB7Ci0gICAg
ICAgIGVuY29kZWRWYWx1ZS5hcHBlbmQ8U3RyaW5nPihBU0NJSUxpdGVyYWwoIldpbmRvd3NCdXR0
b24iKSk7Ci0gICAgICAgIGlmIChlbnVtVmFsdWUgPT0gV2ViQ29yZTo6V2luZG93c0J1dHRvbikK
LSAgICAgICAgICAgIHJldHVybiBlbmNvZGVkVmFsdWU7Ci0gICAgfQotI2VuZGlmIC8vIFBMQVRG
T1JNKFdJTkRPV1MpCi0gICAgcmV0dXJuIGVuY29kZWRWYWx1ZTsKLX0KLQotYm9vbCBFbmNvZGlu
Z1RyYWl0czxXZWJDb3JlOjpNb3VzZUJ1dHRvbj46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYg
ZW5jb2RlZFZhbHVlLCBXZWJDb3JlOjpNb3VzZUJ1dHRvbiYgZW51bVZhbHVlKQotewotICAgIFZl
Y3RvcjxTdHJpbmc+IGVudW1TdHJpbmdzOwotICAgIGlmICghRW5jb2RpbmdUcmFpdHM8VmVjdG9y
PFN0cmluZz4+OjpkZWNvZGVWYWx1ZShlbmNvZGVkVmFsdWUsIGVudW1TdHJpbmdzKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZm9yIChjb25zdCBTdHJpbmcmIGVudW1TdHJpbmcgOiBl
bnVtU3RyaW5ncykgewotICAgICAgICBpZiAoZW51bVN0cmluZyA9PSAiTm9CdXR0b24iKQotICAg
ICAgICAgICAgZW51bVZhbHVlID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6TW91c2VCdXR0b24+KGVu
dW1WYWx1ZSB8IFdlYkNvcmU6Ok5vQnV0dG9uKTsKLSAgICAgICAgZWxzZSBpZiAoZW51bVN0cmlu
ZyA9PSAiTGVmdEJ1dHRvbiIpCi0gICAgICAgICAgICBlbnVtVmFsdWUgPSBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpNb3VzZUJ1dHRvbj4oZW51bVZhbHVlIHwgV2ViQ29yZTo6TGVmdEJ1dHRvbik7Ci0g
ICAgICAgIGVsc2UgaWYgKGVudW1TdHJpbmcgPT0gIk1pZGRsZUJ1dHRvbiIpCi0gICAgICAgICAg
ICBlbnVtVmFsdWUgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpNb3VzZUJ1dHRvbj4oZW51bVZhbHVl
IHwgV2ViQ29yZTo6TWlkZGxlQnV0dG9uKTsKLSAgICAgICAgZWxzZSBpZiAoZW51bVN0cmluZyA9
PSAiUmlnaHRCdXR0b24iKQotICAgICAgICAgICAgZW51bVZhbHVlID0gc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6TW91c2VCdXR0b24+KGVudW1WYWx1ZSB8IFdlYkNvcmU6OlJpZ2h0QnV0dG9uKTsKLSNp
ZiBFTkFCTEUoU0lERV9CVVRUT05TKQotICAgICAgICBpZiAoZW51bVN0cmluZyA9PSAiTGVmdFNp
ZGVCdXR0b24iKQotICAgICAgICAgICAgZW51bVZhbHVlID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
TW91c2VCdXR0b24+KGVudW1WYWx1ZSB8IFdlYkNvcmU6OkxlZnRTaWRlQnV0dG9uKTsKLSAgICAg
ICAgZWxzZSBpZiAoZW51bVN0cmluZyA9PSAiUmlnaHRTaWRlQnV0dG9uIikKLSAgICAgICAgICAg
IGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Ok1vdXNlQnV0dG9uPihlbnVtVmFsdWUg
fCBXZWJDb3JlOjpSaWdodFNpZGVCdXR0b24pOwotI2VuZGlmIC8vIEVOQUJMRShTSURFX0JVVFRP
TlMpCi0jaWYgUExBVEZPUk0oV0lORE9XUykKLSAgICAgICAgaWYgKGVudW1TdHJpbmcgPT0gIldp
bmRvd3NCdXR0b24iKQotICAgICAgICAgICAgZW51bVZhbHVlID0gc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6TW91c2VCdXR0b24+KGVudW1WYWx1ZSB8IFdlYkNvcmU6OldpbmRvd3NCdXR0b24pOwotI2Vu
ZGlmIC8vIFBMQVRGT1JNKFdJTkRPV1MpCi0gICAgfQogCi0gICAgcmV0dXJuIHRydWU7Ci19CiB9
IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUkVQTEFZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVk
L2dlbmVyYXRlLWVudW0tZW5jb2RpbmctaGVscGVycy13aXRoLWd1YXJkZWQtdmFsdWVzLmpzb24t
VGVzdFJlcGxheUlucHV0cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRz
L3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0tZW5jb2RpbmctaGVscGVycy13aXRoLWd1YXJk
ZWQtdmFsdWVzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCmluZGV4IDE2YzZkNTM1MGE2Yjk2YTli
ZmQ1MDk2NDBkODFiMzIxNzVmMTA4OTYuLmM2MTQ2NGUyNDYxM2RiN2FiMDQ3OWE0ZTIwNDkzM2Q4
ODBkMGU3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0
cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMtd2l0aC1ndWFy
ZGVkLXZhbHVlcy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGlu
Zy1oZWxwZXJzLXdpdGgtZ3VhcmRlZC12YWx1ZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKQEAg
LTQ0LDI1ICs0NCwyMCBAQCBjbGFzcyBTYXZlZE1vdXNlQnV0dG9uOwogfSAvLyBuYW1lc3BhY2Ug
VGVzdAogCiBuYW1lc3BhY2UgSlNDIHsKLXRlbXBsYXRlPD4gc3RydWN0IElucHV0VHJhaXRzPFRl
c3Q6OlNhdmVkTW91c2VCdXR0b24+IHsKK3RlbXBsYXRlPD4gc3RydWN0IFRFU1RfRVhQT1JUX01B
Q1JPIElucHV0VHJhaXRzPFRlc3Q6OlNhdmVkTW91c2VCdXR0b24+IHsKICAgICBzdGF0aWMgSW5w
dXRRdWV1ZSBxdWV1ZSgpIHsgcmV0dXJuIElucHV0UXVldWU6OlNjcmlwdE1lbW9pemVkRGF0YTsg
fQogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIHR5cGUoKTsKIAogICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShKU0M6OkVuY29kZWRWYWx1ZSYsIGNvbnN0IFRlc3Q6OlNhdmVkTW91c2VCdXR0b24mKTsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSlNDOjpFbmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1ZV9w
dHI8VGVzdDo6U2F2ZWRNb3VzZUJ1dHRvbj4mKTsKIH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBFbmNv
ZGluZ1RyYWl0czxXZWJDb3JlOjpNb3VzZUJ1dHRvbj4gewotICAgIHR5cGVkZWYgV2ViQ29yZTo6
TW91c2VCdXR0b24gRGVjb2RlZFR5cGU7CiAKLSAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29k
ZVZhbHVlKGNvbnN0IFdlYkNvcmU6Ok1vdXNlQnV0dG9uJiB2YWx1ZSk7Ci0gICAgc3RhdGljIGJv
b2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgV2ViQ29yZTo6TW91c2VCdXR0b24mIHZhbHVl
KTsKLX07CiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNwYWNlIFRlc3QgewogY2xhc3MgU2F2
ZWRNb3VzZUJ1dHRvbiA6IHB1YmxpYyBOb25kZXRlcm1pbmlzdGljSW5wdXQ8U2F2ZWRNb3VzZUJ1
dHRvbj4gewogcHVibGljOgotICAgIFNhdmVkTW91c2VCdXR0b24oTW91c2VCdXR0b24gYnV0dG9u
KTsKKyAgICBURVNUX0VYUE9SVF9NQUNSTyBTYXZlZE1vdXNlQnV0dG9uKE1vdXNlQnV0dG9uIGJ1
dHRvbik7CiAgICAgdmlydHVhbCB+U2F2ZWRNb3VzZUJ1dHRvbigpOwogCiAgICAgTW91c2VCdXR0
b24gYnV0dG9uKCkgY29uc3QgeyByZXR1cm4gbV9idXR0b247IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1l
bnVtLWVuY29kaW5nLWhlbHBlcnMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVt
LWVuY29kaW5nLWhlbHBlcnMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcAppbmRleCBkOWYyYzFk
M2M1YzI3ODlkNWJjMGQzNGU0N2JjMWE5MzI0ZWQ5ZGNhLi4wMmRmNTcyNDQ5OTU3YzVmMzBjMTc4
MGIyZDBkM2YyNDBhMzJhOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVw
bGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS1lbmNvZGluZy1oZWxwZXJz
Lmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Jl
cGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0tZW5jb2RpbmctaGVscGVy
cy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3BwCkBAIC0zMiw5ICszMiw5IEBACiAKICNpZiBFTkFC
TEUoV0VCX1JFUExBWSkKICNpbmNsdWRlICJJbnRlcm5hbE5hbWVzcGFjZUltcGxJbmNsdWRlRHVt
bXkuaCIKKyNpbmNsdWRlICJOb25kZXRlcm1pbmlzdGljSW5wdXQuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlIDxwbGF0Zm9ybS9FeHRlcm5hbE5hbWVzcGFjZUlt
cGxJbmNsdWRlRHVtbXkuaD4KLSNpbmNsdWRlIDxwbGF0Zm9ybS9QbGF0Zm9ybU1vdXNlRXZlbnQu
aD4KLSNpbmNsdWRlIDxyZXBsYXkvTm9uZGV0ZXJtaW5pc3RpY0lucHV0Lmg+CiAKIG5hbWVzcGFj
ZSBUZXN0IHsKIFNhdmVkTW91c2VCdXR0b246OlNhdmVkTW91c2VCdXR0b24oTW91c2VCdXR0b24g
YnV0dG9uKQpAQCAtNTcsNzMgKzU3LDczIEBAIGNvbnN0IFN0cmluZyYgSW5wdXRUcmFpdHM8VGVz
dDo6U2F2ZWRNb3VzZUJ1dHRvbj46OnR5cGUoKQogCiB2b2lkIElucHV0VHJhaXRzPFRlc3Q6OlNh
dmVkTW91c2VCdXR0b24+OjplbmNvZGUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIGNvbnN0
IFRlc3Q6OlNhdmVkTW91c2VCdXR0b24mIGlucHV0KQogewotICAgIGVuY29kZWRWYWx1ZS5wdXQ8
V2ViQ29yZTo6TW91c2VCdXR0b24+KEFTQ0lJTGl0ZXJhbCgiYnV0dG9uIiksIGlucHV0LmJ1dHRv
bigpKTsKKyAgICBlbmNvZGVkVmFsdWUucHV0PFRlc3Q6Ok1vdXNlQnV0dG9uPihBU0NJSUxpdGVy
YWwoImJ1dHRvbiIpLCBpbnB1dC5idXR0b24oKSk7CiB9CiAKIGJvb2wgSW5wdXRUcmFpdHM8VGVz
dDo6U2F2ZWRNb3VzZUJ1dHRvbj46OmRlY29kZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwg
c3RkOjp1bmlxdWVfcHRyPFRlc3Q6OlNhdmVkTW91c2VCdXR0b24+JiBpbnB1dCkKIHsKLSAgICBX
ZWJDb3JlOjpNb3VzZUJ1dHRvbiBidXR0b247Ci0gICAgaWYgKCFlbmNvZGVkVmFsdWUuZ2V0PFdl
YkNvcmU6Ok1vdXNlQnV0dG9uPihBU0NJSUxpdGVyYWwoImJ1dHRvbiIpLCBidXR0b24pKQorICAg
IFRlc3Q6Ok1vdXNlQnV0dG9uIGJ1dHRvbjsKKyAgICBpZiAoIWVuY29kZWRWYWx1ZS5nZXQ8VGVz
dDo6TW91c2VCdXR0b24+KEFTQ0lJTGl0ZXJhbCgiYnV0dG9uIiksIGJ1dHRvbikpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlucHV0ID0gc3RkOjptYWtlX3VuaXF1ZTxUZXN0OjpTYXZl
ZE1vdXNlQnV0dG9uPihidXR0b24pOwogICAgIHJldHVybiB0cnVlOwogfQotRW5jb2RlZFZhbHVl
IEVuY29kaW5nVHJhaXRzPElucHV0UXVldWU+OjplbmNvZGVWYWx1ZShjb25zdCBJbnB1dFF1ZXVl
JiBlbnVtVmFsdWUpCitFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8VGVzdDo6SW5wdXRRdWV1
ZT46OmVuY29kZVZhbHVlKGNvbnN0IFRlc3Q6OklucHV0UXVldWUmIGVudW1WYWx1ZSkKIHsKICAg
ICBzd2l0Y2ggKGVudW1WYWx1ZSkgewotICAgIGNhc2UgSW5wdXRRdWV1ZTo6RXZlbnRMb29wSW5w
dXQ6IHJldHVybiBFbmNvZGVkVmFsdWU6OmNyZWF0ZVN0cmluZygiRXZlbnRMb29wSW5wdXQiKTsK
LSAgICBjYXNlIElucHV0UXVldWU6OkxvYWRlck1lbW9pemVkRGF0YTogcmV0dXJuIEVuY29kZWRW
YWx1ZTo6Y3JlYXRlU3RyaW5nKCJMb2FkZXJNZW1vaXplZERhdGEiKTsKLSAgICBjYXNlIElucHV0
UXVldWU6OlNjcmlwdE1lbW9pemVkRGF0YTogcmV0dXJuIEVuY29kZWRWYWx1ZTo6Y3JlYXRlU3Ry
aW5nKCJTY3JpcHRNZW1vaXplZERhdGEiKTsKKyAgICBjYXNlIFRlc3Q6OklucHV0UXVldWU6OkV2
ZW50TG9vcElucHV0OiByZXR1cm4gRW5jb2RlZFZhbHVlOjpjcmVhdGVTdHJpbmcoIkV2ZW50TG9v
cElucHV0Iik7CisgICAgY2FzZSBUZXN0OjpJbnB1dFF1ZXVlOjpMb2FkZXJNZW1vaXplZERhdGE6
IHJldHVybiBFbmNvZGVkVmFsdWU6OmNyZWF0ZVN0cmluZygiTG9hZGVyTWVtb2l6ZWREYXRhIik7
CisgICAgY2FzZSBUZXN0OjpJbnB1dFF1ZXVlOjpTY3JpcHRNZW1vaXplZERhdGE6IHJldHVybiBF
bmNvZGVkVmFsdWU6OmNyZWF0ZVN0cmluZygiU2NyaXB0TWVtb2l6ZWREYXRhIik7CiAgICAgZGVm
YXVsdDogQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBFbmNvZGVkVmFsdWU6OmNyZWF0ZVN0
cmluZygiRXJyb3IhIik7CiAgICAgfQogfQogCi1ib29sIEVuY29kaW5nVHJhaXRzPElucHV0UXVl
dWU+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgSW5wdXRRdWV1ZSYg
ZW51bVZhbHVlKQorYm9vbCBFbmNvZGluZ1RyYWl0czxUZXN0OjpJbnB1dFF1ZXVlPjo6ZGVjb2Rl
VmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIFRlc3Q6OklucHV0UXVldWUmIGVudW1W
YWx1ZSkKIHsKICAgICBTdHJpbmcgZW51bVN0cmluZyA9IGVuY29kZWRWYWx1ZS5jb252ZXJ0VG88
U3RyaW5nPigpOwogICAgIGlmIChlbnVtU3RyaW5nID09ICJFdmVudExvb3BJbnB1dCIpIHsKLSAg
ICAgICAgZW51bVZhbHVlID0gSW5wdXRRdWV1ZTo6RXZlbnRMb29wSW5wdXQ7CisgICAgICAgIGVu
dW1WYWx1ZSA9IFRlc3Q6OklucHV0UXVldWU6OkV2ZW50TG9vcElucHV0OwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAgICAgaWYgKGVudW1TdHJpbmcgPT0gIkxvYWRlck1lbW9pemVkRGF0
YSIpIHsKLSAgICAgICAgZW51bVZhbHVlID0gSW5wdXRRdWV1ZTo6TG9hZGVyTWVtb2l6ZWREYXRh
OworICAgICAgICBlbnVtVmFsdWUgPSBUZXN0OjpJbnB1dFF1ZXVlOjpMb2FkZXJNZW1vaXplZERh
dGE7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBpZiAoZW51bVN0cmluZyA9PSAi
U2NyaXB0TWVtb2l6ZWREYXRhIikgewotICAgICAgICBlbnVtVmFsdWUgPSBJbnB1dFF1ZXVlOjpT
Y3JpcHRNZW1vaXplZERhdGE7CisgICAgICAgIGVudW1WYWx1ZSA9IFRlc3Q6OklucHV0UXVldWU6
OlNjcmlwdE1lbW9pemVkRGF0YTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6Ok1v
dXNlQnV0dG9uPjo6ZW5jb2RlVmFsdWUoY29uc3QgV2ViQ29yZTo6TW91c2VCdXR0b24mIGVudW1W
YWx1ZSkKK0VuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxUZXN0OjpNb3VzZUJ1dHRvbj46OmVu
Y29kZVZhbHVlKGNvbnN0IFRlc3Q6Ok1vdXNlQnV0dG9uJiBlbnVtVmFsdWUpCiB7CiAgICAgRW5j
b2RlZFZhbHVlIGVuY29kZWRWYWx1ZSA9IEVuY29kZWRWYWx1ZTo6Y3JlYXRlQXJyYXkoKTsKLSAg
ICBpZiAoZW51bVZhbHVlICYgV2ViQ29yZTo6Tm9CdXR0b24pIHsKKyAgICBpZiAoZW51bVZhbHVl
ICYgVGVzdDo6Tm9CdXR0b24pIHsKICAgICAgICAgZW5jb2RlZFZhbHVlLmFwcGVuZDxTdHJpbmc+
KEFTQ0lJTGl0ZXJhbCgiTm9CdXR0b24iKSk7Ci0gICAgICAgIGlmIChlbnVtVmFsdWUgPT0gV2Vi
Q29yZTo6Tm9CdXR0b24pCisgICAgICAgIGlmIChlbnVtVmFsdWUgPT0gVGVzdDo6Tm9CdXR0b24p
CiAgICAgICAgICAgICByZXR1cm4gZW5jb2RlZFZhbHVlOwogICAgIH0KLSAgICBpZiAoZW51bVZh
bHVlICYgV2ViQ29yZTo6TGVmdEJ1dHRvbikgeworICAgIGlmIChlbnVtVmFsdWUgJiBUZXN0OjpM
ZWZ0QnV0dG9uKSB7CiAgICAgICAgIGVuY29kZWRWYWx1ZS5hcHBlbmQ8U3RyaW5nPihBU0NJSUxp
dGVyYWwoIkxlZnRCdXR0b24iKSk7Ci0gICAgICAgIGlmIChlbnVtVmFsdWUgPT0gV2ViQ29yZTo6
TGVmdEJ1dHRvbikKKyAgICAgICAgaWYgKGVudW1WYWx1ZSA9PSBUZXN0OjpMZWZ0QnV0dG9uKQog
ICAgICAgICAgICAgcmV0dXJuIGVuY29kZWRWYWx1ZTsKICAgICB9Ci0gICAgaWYgKGVudW1WYWx1
ZSAmIFdlYkNvcmU6Ok1pZGRsZUJ1dHRvbikgeworICAgIGlmIChlbnVtVmFsdWUgJiBUZXN0OjpN
aWRkbGVCdXR0b24pIHsKICAgICAgICAgZW5jb2RlZFZhbHVlLmFwcGVuZDxTdHJpbmc+KEFTQ0lJ
TGl0ZXJhbCgiTWlkZGxlQnV0dG9uIikpOwotICAgICAgICBpZiAoZW51bVZhbHVlID09IFdlYkNv
cmU6Ok1pZGRsZUJ1dHRvbikKKyAgICAgICAgaWYgKGVudW1WYWx1ZSA9PSBUZXN0OjpNaWRkbGVC
dXR0b24pCiAgICAgICAgICAgICByZXR1cm4gZW5jb2RlZFZhbHVlOwogICAgIH0KLSAgICBpZiAo
ZW51bVZhbHVlICYgV2ViQ29yZTo6UmlnaHRCdXR0b24pIHsKKyAgICBpZiAoZW51bVZhbHVlICYg
VGVzdDo6UmlnaHRCdXR0b24pIHsKICAgICAgICAgZW5jb2RlZFZhbHVlLmFwcGVuZDxTdHJpbmc+
KEFTQ0lJTGl0ZXJhbCgiUmlnaHRCdXR0b24iKSk7Ci0gICAgICAgIGlmIChlbnVtVmFsdWUgPT0g
V2ViQ29yZTo6UmlnaHRCdXR0b24pCisgICAgICAgIGlmIChlbnVtVmFsdWUgPT0gVGVzdDo6Umln
aHRCdXR0b24pCiAgICAgICAgICAgICByZXR1cm4gZW5jb2RlZFZhbHVlOwogICAgIH0KICAgICBy
ZXR1cm4gZW5jb2RlZFZhbHVlOwogfQogCi1ib29sIEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6Ok1v
dXNlQnV0dG9uPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIFdlYkNv
cmU6Ok1vdXNlQnV0dG9uJiBlbnVtVmFsdWUpCitib29sIEVuY29kaW5nVHJhaXRzPFRlc3Q6Ok1v
dXNlQnV0dG9uPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIFRlc3Q6
Ok1vdXNlQnV0dG9uJiBlbnVtVmFsdWUpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZW51bVN0cmlu
Z3M7CiAgICAgaWYgKCFFbmNvZGluZ1RyYWl0czxWZWN0b3I8U3RyaW5nPj46OmRlY29kZVZhbHVl
KGVuY29kZWRWYWx1ZSwgZW51bVN0cmluZ3MpKQpAQCAtMTMxLDQ1ICsxMzEsNDUgQEAgYm9vbCBF
bmNvZGluZ1RyYWl0czxXZWJDb3JlOjpNb3VzZUJ1dHRvbj46OmRlY29kZVZhbHVlKEVuY29kZWRW
YWx1ZSYgZW5jb2RlZFZhbHUKIAogICAgIGZvciAoY29uc3QgU3RyaW5nJiBlbnVtU3RyaW5nIDog
ZW51bVN0cmluZ3MpIHsKICAgICAgICAgaWYgKGVudW1TdHJpbmcgPT0gIk5vQnV0dG9uIikKLSAg
ICAgICAgICAgIGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Ok1vdXNlQnV0dG9uPihl
bnVtVmFsdWUgfCBXZWJDb3JlOjpOb0J1dHRvbik7CisgICAgICAgICAgICBlbnVtVmFsdWUgPSBz
dGF0aWNfY2FzdDxUZXN0OjpNb3VzZUJ1dHRvbj4oZW51bVZhbHVlIHwgVGVzdDo6Tm9CdXR0b24p
OwogICAgICAgICBlbHNlIGlmIChlbnVtU3RyaW5nID09ICJMZWZ0QnV0dG9uIikKLSAgICAgICAg
ICAgIGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Ok1vdXNlQnV0dG9uPihlbnVtVmFs
dWUgfCBXZWJDb3JlOjpMZWZ0QnV0dG9uKTsKKyAgICAgICAgICAgIGVudW1WYWx1ZSA9IHN0YXRp
Y19jYXN0PFRlc3Q6Ok1vdXNlQnV0dG9uPihlbnVtVmFsdWUgfCBUZXN0OjpMZWZ0QnV0dG9uKTsK
ICAgICAgICAgZWxzZSBpZiAoZW51bVN0cmluZyA9PSAiTWlkZGxlQnV0dG9uIikKLSAgICAgICAg
ICAgIGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Ok1vdXNlQnV0dG9uPihlbnVtVmFs
dWUgfCBXZWJDb3JlOjpNaWRkbGVCdXR0b24pOworICAgICAgICAgICAgZW51bVZhbHVlID0gc3Rh
dGljX2Nhc3Q8VGVzdDo6TW91c2VCdXR0b24+KGVudW1WYWx1ZSB8IFRlc3Q6Ok1pZGRsZUJ1dHRv
bik7CiAgICAgICAgIGVsc2UgaWYgKGVudW1TdHJpbmcgPT0gIlJpZ2h0QnV0dG9uIikKLSAgICAg
ICAgICAgIGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6Ok1vdXNlQnV0dG9uPihlbnVt
VmFsdWUgfCBXZWJDb3JlOjpSaWdodEJ1dHRvbik7CisgICAgICAgICAgICBlbnVtVmFsdWUgPSBz
dGF0aWNfY2FzdDxUZXN0OjpNb3VzZUJ1dHRvbj4oZW51bVZhbHVlIHwgVGVzdDo6UmlnaHRCdXR0
b24pOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwogfQogCi1FbmNvZGVkVmFsdWUgRW5jb2Rp
bmdUcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VHlwZT46OmVuY29kZVZhbHVlKGNvbnN0
IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlR5cGUmIGVudW1WYWx1ZSkKK0VuY29kZWRWYWx1ZSBF
bmNvZGluZ1RyYWl0czxUZXN0OjpQbGF0Zm9ybUV2ZW50OjpUeXBlPjo6ZW5jb2RlVmFsdWUoY29u
c3QgVGVzdDo6UGxhdGZvcm1FdmVudDo6VHlwZSYgZW51bVZhbHVlKQogewogICAgIEVuY29kZWRW
YWx1ZSBlbmNvZGVkVmFsdWUgPSBFbmNvZGVkVmFsdWU6OmNyZWF0ZUFycmF5KCk7Ci0gICAgaWYg
KGVudW1WYWx1ZSAmIFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1vdXNlKSB7CisgICAgaWYgKGVu
dW1WYWx1ZSAmIFRlc3Q6OlBsYXRmb3JtRXZlbnQ6Ok1vdXNlKSB7CiAgICAgICAgIGVuY29kZWRW
YWx1ZS5hcHBlbmQ8U3RyaW5nPihBU0NJSUxpdGVyYWwoIk1vdXNlIikpOwotICAgICAgICBpZiAo
ZW51bVZhbHVlID09IFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1vdXNlKQorICAgICAgICBpZiAo
ZW51bVZhbHVlID09IFRlc3Q6OlBsYXRmb3JtRXZlbnQ6Ok1vdXNlKQogICAgICAgICAgICAgcmV0
dXJuIGVuY29kZWRWYWx1ZTsKICAgICB9Ci0gICAgaWYgKGVudW1WYWx1ZSAmIFdlYkNvcmU6OlBs
YXRmb3JtRXZlbnQ6OktleSkgeworICAgIGlmIChlbnVtVmFsdWUgJiBUZXN0OjpQbGF0Zm9ybUV2
ZW50OjpLZXkpIHsKICAgICAgICAgZW5jb2RlZFZhbHVlLmFwcGVuZDxTdHJpbmc+KEFTQ0lJTGl0
ZXJhbCgiS2V5IikpOwotICAgICAgICBpZiAoZW51bVZhbHVlID09IFdlYkNvcmU6OlBsYXRmb3Jt
RXZlbnQ6OktleSkKKyAgICAgICAgaWYgKGVudW1WYWx1ZSA9PSBUZXN0OjpQbGF0Zm9ybUV2ZW50
OjpLZXkpCiAgICAgICAgICAgICByZXR1cm4gZW5jb2RlZFZhbHVlOwogICAgIH0KLSAgICBpZiAo
ZW51bVZhbHVlICYgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VG91Y2gpIHsKKyAgICBpZiAoZW51
bVZhbHVlICYgVGVzdDo6UGxhdGZvcm1FdmVudDo6VG91Y2gpIHsKICAgICAgICAgZW5jb2RlZFZh
bHVlLmFwcGVuZDxTdHJpbmc+KEFTQ0lJTGl0ZXJhbCgiVG91Y2giKSk7Ci0gICAgICAgIGlmIChl
bnVtVmFsdWUgPT0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VG91Y2gpCisgICAgICAgIGlmIChl
bnVtVmFsdWUgPT0gVGVzdDo6UGxhdGZvcm1FdmVudDo6VG91Y2gpCiAgICAgICAgICAgICByZXR1
cm4gZW5jb2RlZFZhbHVlOwogICAgIH0KLSAgICBpZiAoZW51bVZhbHVlICYgV2ViQ29yZTo6UGxh
dGZvcm1FdmVudDo6V2hlZWwpIHsKKyAgICBpZiAoZW51bVZhbHVlICYgVGVzdDo6UGxhdGZvcm1F
dmVudDo6V2hlZWwpIHsKICAgICAgICAgZW5jb2RlZFZhbHVlLmFwcGVuZDxTdHJpbmc+KEFTQ0lJ
TGl0ZXJhbCgiV2hlZWwiKSk7Ci0gICAgICAgIGlmIChlbnVtVmFsdWUgPT0gV2ViQ29yZTo6UGxh
dGZvcm1FdmVudDo6V2hlZWwpCisgICAgICAgIGlmIChlbnVtVmFsdWUgPT0gVGVzdDo6UGxhdGZv
cm1FdmVudDo6V2hlZWwpCiAgICAgICAgICAgICByZXR1cm4gZW5jb2RlZFZhbHVlOwogICAgIH0K
ICAgICByZXR1cm4gZW5jb2RlZFZhbHVlOwogfQogCi1ib29sIEVuY29kaW5nVHJhaXRzPFdlYkNv
cmU6OlBsYXRmb3JtRXZlbnQ6OlR5cGU+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29k
ZWRWYWx1ZSwgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VHlwZSYgZW51bVZhbHVlKQorYm9vbCBF
bmNvZGluZ1RyYWl0czxUZXN0OjpQbGF0Zm9ybUV2ZW50OjpUeXBlPjo6ZGVjb2RlVmFsdWUoRW5j
b2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIFRlc3Q6OlBsYXRmb3JtRXZlbnQ6OlR5cGUmIGVudW1W
YWx1ZSkKIHsKICAgICBWZWN0b3I8U3RyaW5nPiBlbnVtU3RyaW5nczsKICAgICBpZiAoIUVuY29k
aW5nVHJhaXRzPFZlY3RvcjxTdHJpbmc+Pjo6ZGVjb2RlVmFsdWUoZW5jb2RlZFZhbHVlLCBlbnVt
U3RyaW5ncykpCkBAIC0xNzcsMTMgKzE3NywxMyBAQCBib29sIEVuY29kaW5nVHJhaXRzPFdlYkNv
cmU6OlBsYXRmb3JtRXZlbnQ6OlR5cGU+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuYwog
CiAgICAgZm9yIChjb25zdCBTdHJpbmcmIGVudW1TdHJpbmcgOiBlbnVtU3RyaW5ncykgewogICAg
ICAgICBpZiAoZW51bVN0cmluZyA9PSAiTW91c2UiKQotICAgICAgICAgICAgZW51bVZhbHVlID0g
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VHlwZT4oZW51bVZhbHVlIHwgV2Vi
Q29yZTo6UGxhdGZvcm1FdmVudDo6TW91c2UpOworICAgICAgICAgICAgZW51bVZhbHVlID0gc3Rh
dGljX2Nhc3Q8VGVzdDo6UGxhdGZvcm1FdmVudDo6VHlwZT4oZW51bVZhbHVlIHwgVGVzdDo6UGxh
dGZvcm1FdmVudDo6TW91c2UpOwogICAgICAgICBlbHNlIGlmIChlbnVtU3RyaW5nID09ICJLZXki
KQotICAgICAgICAgICAgZW51bVZhbHVlID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6UGxhdGZvcm1F
dmVudDo6VHlwZT4oZW51bVZhbHVlIHwgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6S2V5KTsKKyAg
ICAgICAgICAgIGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PFRlc3Q6OlBsYXRmb3JtRXZlbnQ6OlR5
cGU+KGVudW1WYWx1ZSB8IFRlc3Q6OlBsYXRmb3JtRXZlbnQ6OktleSk7CiAgICAgICAgIGVsc2Ug
aWYgKGVudW1TdHJpbmcgPT0gIlRvdWNoIikKLSAgICAgICAgICAgIGVudW1WYWx1ZSA9IHN0YXRp
Y19jYXN0PFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6OlR5cGU+KGVudW1WYWx1ZSB8IFdlYkNvcmU6
OlBsYXRmb3JtRXZlbnQ6OlRvdWNoKTsKKyAgICAgICAgICAgIGVudW1WYWx1ZSA9IHN0YXRpY19j
YXN0PFRlc3Q6OlBsYXRmb3JtRXZlbnQ6OlR5cGU+KGVudW1WYWx1ZSB8IFRlc3Q6OlBsYXRmb3Jt
RXZlbnQ6OlRvdWNoKTsKICAgICAgICAgZWxzZSBpZiAoZW51bVN0cmluZyA9PSAiV2hlZWwiKQot
ICAgICAgICAgICAgZW51bVZhbHVlID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6UGxhdGZvcm1FdmVu
dDo6VHlwZT4oZW51bVZhbHVlIHwgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6V2hlZWwpOworICAg
ICAgICAgICAgZW51bVZhbHVlID0gc3RhdGljX2Nhc3Q8VGVzdDo6UGxhdGZvcm1FdmVudDo6VHlw
ZT4oZW51bVZhbHVlIHwgVGVzdDo6UGxhdGZvcm1FdmVudDo6V2hlZWwpOwogICAgIH0KIAogICAg
IHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9z
Y3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0tZW5jb2RpbmctaGVscGVycy5qc29u
LVRlc3RSZXBsYXlJbnB1dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0
cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMuanNvbi1UZXN0
UmVwbGF5SW5wdXRzLmgKaW5kZXggMzk0ZWZiMzUxYjZiNGY5N2MxMTZiNThiYmQ5NDUzZDE5M2Ix
ZTQ2Mi4uNDBjM2ViNzNjZjQ3NTcwOTkyMzdhYzZiMWU1YjM4ZjQyZDM2MGUzYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dl
bmVyYXRlLWVudW0tZW5jb2RpbmctaGVscGVycy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2Vu
ZXJhdGUtZW51bS1lbmNvZGluZy1oZWxwZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCkBAIC0z
MiwxNCArMzIsMTEgQEAKIAogI2lmIEVOQUJMRShXRUJfUkVQTEFZKQogI2luY2x1ZGUgIkludGVy
bmFsTmFtZXNwYWNlSGVhZGVySW5jbHVkZUR1bW15LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1FdmVu
dC5oIgogI2luY2x1ZGUgPHBsYXRmb3JtL0V4dGVybmFsTmFtZXNwYWNlSGVhZGVySW5jbHVkZUR1
bW15Lmg+Ci0jaW5jbHVkZSA8cGxhdGZvcm0vUGxhdGZvcm1FdmVudC5oPgogCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7CituYW1lc3BhY2UgVGVzdCB7CiBlbnVtIE1vdXNlQnV0dG9uIDogdW5zaWduZWQ7
Ci19Ci0KLW5hbWVzcGFjZSBKU0MgewogZW51bSBjbGFzcyBJbnB1dFF1ZXVlOwogfQogCkBAIC00
OSwzOSArNDYsMzkgQEAgY2xhc3MgU2F2ZWRNb3VzZUJ1dHRvbjsKIH0gLy8gbmFtZXNwYWNlIFRl
c3QKIAogbmFtZXNwYWNlIEpTQyB7Ci10ZW1wbGF0ZTw+IHN0cnVjdCBJbnB1dFRyYWl0czxUZXN0
OjpTYXZlZE1vdXNlQnV0dG9uPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBURVNUX0VYUE9SVF9NQUNS
TyBJbnB1dFRyYWl0czxUZXN0OjpTYXZlZE1vdXNlQnV0dG9uPiB7CiAgICAgc3RhdGljIElucHV0
UXVldWUgcXVldWUoKSB7IHJldHVybiBJbnB1dFF1ZXVlOjpTY3JpcHRNZW1vaXplZERhdGE7IH0K
ICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiB0eXBlKCk7CiAKICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoSlNDOjpFbmNvZGVkVmFsdWUmLCBjb25zdCBUZXN0OjpTYXZlZE1vdXNlQnV0dG9uJik7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEpTQzo6RW5jb2RlZFZhbHVlJiwgc3RkOjp1bmlxdWVfcHRy
PFRlc3Q6OlNhdmVkTW91c2VCdXR0b24+Jik7CiB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2Rp
bmdUcmFpdHM8SW5wdXRRdWV1ZT4gewotICAgIHR5cGVkZWYgSW5wdXRRdWV1ZSBEZWNvZGVkVHlw
ZTsKK3RlbXBsYXRlPD4gc3RydWN0IFRFU1RfRVhQT1JUX01BQ1JPIEVuY29kaW5nVHJhaXRzPFRl
c3Q6OklucHV0UXVldWU+IHsKKyAgICB0eXBlZGVmIFRlc3Q6OklucHV0UXVldWUgRGVjb2RlZFR5
cGU7CiAKLSAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IElucHV0UXVl
dWUmIHZhbHVlKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBJ
bnB1dFF1ZXVlJiB2YWx1ZSk7CisgICAgc3RhdGljIEVuY29kZWRWYWx1ZSBlbmNvZGVWYWx1ZShj
b25zdCBUZXN0OjpJbnB1dFF1ZXVlJiB2YWx1ZSk7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFs
dWUoRW5jb2RlZFZhbHVlJiwgVGVzdDo6SW5wdXRRdWV1ZSYgdmFsdWUpOwogfTsKIAotdGVtcGxh
dGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6TW91c2VCdXR0b24+IHsKLSAgICB0
eXBlZGVmIFdlYkNvcmU6Ok1vdXNlQnV0dG9uIERlY29kZWRUeXBlOwordGVtcGxhdGU8PiBzdHJ1
Y3QgVEVTVF9FWFBPUlRfTUFDUk8gRW5jb2RpbmdUcmFpdHM8VGVzdDo6TW91c2VCdXR0b24+IHsK
KyAgICB0eXBlZGVmIFRlc3Q6Ok1vdXNlQnV0dG9uIERlY29kZWRUeXBlOwogCi0gICAgc3RhdGlj
IEVuY29kZWRWYWx1ZSBlbmNvZGVWYWx1ZShjb25zdCBXZWJDb3JlOjpNb3VzZUJ1dHRvbiYgdmFs
dWUpOwotICAgIHN0YXRpYyBib29sIGRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYsIFdlYkNvcmU6
Ok1vdXNlQnV0dG9uJiB2YWx1ZSk7CisgICAgc3RhdGljIEVuY29kZWRWYWx1ZSBlbmNvZGVWYWx1
ZShjb25zdCBUZXN0OjpNb3VzZUJ1dHRvbiYgdmFsdWUpOworICAgIHN0YXRpYyBib29sIGRlY29k
ZVZhbHVlKEVuY29kZWRWYWx1ZSYsIFRlc3Q6Ok1vdXNlQnV0dG9uJiB2YWx1ZSk7CiB9OwogCi10
ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpU
eXBlPiB7Ci0gICAgdHlwZWRlZiBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpUeXBlIERlY29kZWRU
eXBlOwordGVtcGxhdGU8PiBzdHJ1Y3QgVEVTVF9FWFBPUlRfTUFDUk8gRW5jb2RpbmdUcmFpdHM8
VGVzdDo6UGxhdGZvcm1FdmVudDo6VHlwZT4geworICAgIHR5cGVkZWYgVGVzdDo6UGxhdGZvcm1F
dmVudDo6VHlwZSBEZWNvZGVkVHlwZTsKIAotICAgIHN0YXRpYyBFbmNvZGVkVmFsdWUgZW5jb2Rl
VmFsdWUoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6VHlwZSYgdmFsdWUpOwotICAgIHN0
YXRpYyBib29sIGRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYsIFdlYkNvcmU6OlBsYXRmb3JtRXZl
bnQ6OlR5cGUmIHZhbHVlKTsKKyAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNv
bnN0IFRlc3Q6OlBsYXRmb3JtRXZlbnQ6OlR5cGUmIHZhbHVlKTsKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBUZXN0OjpQbGF0Zm9ybUV2ZW50OjpUeXBlJiB2YWx1
ZSk7CiB9OwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKIG5hbWVzcGFjZSBUZXN0IHsKIGNsYXNzIFNh
dmVkTW91c2VCdXR0b24gOiBwdWJsaWMgTm9uZGV0ZXJtaW5pc3RpY0lucHV0PFNhdmVkTW91c2VC
dXR0b24+IHsKIHB1YmxpYzoKLSAgICBTYXZlZE1vdXNlQnV0dG9uKE1vdXNlQnV0dG9uIGJ1dHRv
bik7CisgICAgVEVTVF9FWFBPUlRfTUFDUk8gU2F2ZWRNb3VzZUJ1dHRvbihNb3VzZUJ1dHRvbiBi
dXR0b24pOwogICAgIHZpcnR1YWwgflNhdmVkTW91c2VCdXR0b24oKTsKIAogICAgIE1vdXNlQnV0
dG9uIGJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIG1fYnV0dG9uOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUt
ZW51bS13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS13aXRo
LWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5jcHAKaW5kZXggZGY1NzE3MTIyZGU3ZTQ4OWQ4
Y2ZmNDM5NDBkMmExYmIxNGIzMDllMC4uMGFhNzgyMDU5NmM4MDkyMDA0YmNhZTNmYzQ4NDJkYTAx
NTliZTcyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRz
L3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0td2l0aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJ
bnB1dHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0
cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtLXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRz
LmNwcApAQCAtMzIsMTMgKzMyLDE1IEBACiAKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKICNpbmNs
dWRlICJJbnRlcm5hbE5hbWVzcGFjZUltcGxJbmNsdWRlRHVtbXkuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlIDxwbGF0Zm9ybS9FeHRlcm5hbE5hbWVzcGFjZUlt
cGxJbmNsdWRlRHVtbXkuaD4KICNpbmNsdWRlIDxwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQu
aD4KIAogbmFtZXNwYWNlIFRlc3QgewotSGFuZGxlV2hlZWxFdmVudDo6SGFuZGxlV2hlZWxFdmVu
dChzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1XaGVlbEV2ZW50PiBwbGF0Zm9ybUV2ZW50KQorSGFu
ZGxlV2hlZWxFdmVudDo6SGFuZGxlV2hlZWxFdmVudChzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1X
aGVlbEV2ZW50PiBwbGF0Zm9ybUV2ZW50LCBQbGF0Zm9ybVdoZWVsUGhhc2UgcGhhc2UpCiAgICAg
OiBFdmVudExvb3BJbnB1dDxIYW5kbGVXaGVlbEV2ZW50PigpCiAgICAgLCBtX3BsYXRmb3JtRXZl
bnQoV1RGOjptb3ZlKHBsYXRmb3JtRXZlbnQpKQorICAgICwgbV9waGFzZShwaGFzZSkKIHsKIH0K
IApAQCAtNTcsNiArNTksNyBAQCBjb25zdCBTdHJpbmcmIElucHV0VHJhaXRzPFRlc3Q6OkhhbmRs
ZVdoZWVsRXZlbnQ+Ojp0eXBlKCkKIHZvaWQgSW5wdXRUcmFpdHM8VGVzdDo6SGFuZGxlV2hlZWxF
dmVudD46OmVuY29kZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgY29uc3QgVGVzdDo6SGFu
ZGxlV2hlZWxFdmVudCYgaW5wdXQpCiB7CiAgICAgZW5jb2RlZFZhbHVlLnB1dDxXZWJDb3JlOjpQ
bGF0Zm9ybVdoZWVsRXZlbnQ+KEFTQ0lJTGl0ZXJhbCgicGxhdGZvcm1FdmVudCIpLCBpbnB1dC5w
bGF0Zm9ybUV2ZW50KCkpOworICAgIGVuY29kZWRWYWx1ZS5wdXQ8VGVzdDo6UGxhdGZvcm1XaGVl
bFBoYXNlPihBU0NJSUxpdGVyYWwoInBoYXNlIiksIGlucHV0LnBoYXNlKCkpOwogfQogCiBib29s
IElucHV0VHJhaXRzPFRlc3Q6OkhhbmRsZVdoZWVsRXZlbnQ+OjpkZWNvZGUoRW5jb2RlZFZhbHVl
JiBlbmNvZGVkVmFsdWUsIHN0ZDo6dW5pcXVlX3B0cjxUZXN0OjpIYW5kbGVXaGVlbEV2ZW50PiYg
aW5wdXQpCkBAIC02NSwyMiArNjgsMjYgQEAgYm9vbCBJbnB1dFRyYWl0czxUZXN0OjpIYW5kbGVX
aGVlbEV2ZW50Pjo6ZGVjb2RlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCBzdGQKICAgICBp
ZiAoIWVuY29kZWRWYWx1ZS5nZXQ8V2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50PihBU0NJSUxp
dGVyYWwoInBsYXRmb3JtRXZlbnQiKSwgcGxhdGZvcm1FdmVudCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlucHV0ID0gc3RkOjptYWtlX3VuaXF1ZTxUZXN0OjpIYW5kbGVXaGVlbEV2
ZW50PihXVEY6Om1vdmUocGxhdGZvcm1FdmVudCkpOworICAgIFRlc3Q6OlBsYXRmb3JtV2hlZWxQ
aGFzZSBwaGFzZTsKKyAgICBpZiAoIWVuY29kZWRWYWx1ZS5nZXQ8VGVzdDo6UGxhdGZvcm1XaGVl
bFBoYXNlPihBU0NJSUxpdGVyYWwoInBoYXNlIiksIHBoYXNlKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaW5wdXQgPSBzdGQ6Om1ha2VfdW5pcXVlPFRlc3Q6OkhhbmRsZVdoZWVsRXZl
bnQ+KFdURjo6bW92ZShwbGF0Zm9ybUV2ZW50KSwgcGhhc2UpOwogICAgIHJldHVybiB0cnVlOwog
fQogI2lmIEVOQUJMRShEVU1NWV9GRUFUVVJFKQotRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRz
PFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudFBoYXNlPjo6ZW5jb2RlVmFsdWUoY29uc3QgV2Vi
Q29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UmIGVudW1WYWx1ZSkKK0VuY29kZWRWYWx1ZSBF
bmNvZGluZ1RyYWl0czxUZXN0OjpQbGF0Zm9ybVdoZWVsUGhhc2U+OjplbmNvZGVWYWx1ZShjb25z
dCBUZXN0OjpQbGF0Zm9ybVdoZWVsUGhhc2UmIGVudW1WYWx1ZSkKIHsKICAgICBFbmNvZGVkVmFs
dWUgZW5jb2RlZFZhbHVlID0gRW5jb2RlZFZhbHVlOjpjcmVhdGVBcnJheSgpOwotICAgIGlmIChl
bnVtVmFsdWUgJiBXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpIHsKKyAgICBp
ZiAoZW51bVZhbHVlICYgVGVzdDo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKSB7CiAgICAg
ICAgIGVuY29kZWRWYWx1ZS5hcHBlbmQ8U3RyaW5nPihBU0NJSUxpdGVyYWwoIlBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlTm9uZSIpKTsKLSAgICAgICAgaWYgKGVudW1WYWx1ZSA9PSBXZWJDb3JlOjpQ
bGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpCisgICAgICAgIGlmIChlbnVtVmFsdWUgPT0gVGVz
dDo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKQogICAgICAgICAgICAgcmV0dXJuIGVuY29k
ZWRWYWx1ZTsKICAgICB9CiAgICAgcmV0dXJuIGVuY29kZWRWYWx1ZTsKIH0KIAotYm9vbCBFbmNv
ZGluZ1RyYWl0czxXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZT46OmRlY29kZVZhbHVl
KEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCBXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZSYgZW51bVZhbHVlKQorYm9vbCBFbmNvZGluZ1RyYWl0czxUZXN0OjpQbGF0Zm9ybVdoZWVs
UGhhc2U+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgVGVzdDo6UGxh
dGZvcm1XaGVlbFBoYXNlJiBlbnVtVmFsdWUpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gZW51bVN0
cmluZ3M7CiAgICAgaWYgKCFFbmNvZGluZ1RyYWl0czxWZWN0b3I8U3RyaW5nPj46OmRlY29kZVZh
bHVlKGVuY29kZWRWYWx1ZSwgZW51bVN0cmluZ3MpKQpAQCAtODgsNyArOTUsNyBAQCBib29sIEVu
Y29kaW5nVHJhaXRzPFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudFBoYXNlPjo6ZGVjb2RlVmFs
dWUoRW5jb2RlZFZhbHVlJgogCiAgICAgZm9yIChjb25zdCBTdHJpbmcmIGVudW1TdHJpbmcgOiBl
bnVtU3RyaW5ncykgewogICAgICAgICBpZiAoZW51bVN0cmluZyA9PSAiUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2VOb25lIikKLSAgICAgICAgICAgIGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PFdlYkNv
cmU6OlBsYXRmb3JtV2hlZWxFdmVudFBoYXNlPihlbnVtVmFsdWUgfCBXZWJDb3JlOjpQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZU5vbmUpOworICAgICAgICAgICAgZW51bVZhbHVlID0gc3RhdGljX2Nh
c3Q8VGVzdDo6UGxhdGZvcm1XaGVlbFBoYXNlPihlbnVtVmFsdWUgfCBUZXN0OjpQbGF0Zm9ybVdo
ZWVsRXZlbnRQaGFzZU5vbmUpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dl
bmVyYXRlLWVudW0td2l0aC1ndWFyZC5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVt
LXdpdGgtZ3VhcmQuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKaW5kZXggMzcxMjljNGI1Mzk0MmQ2
NWEzZTc1YWYyNGNmYTQwZTUwMWE1MmU3NS4uYzAzNjg4ODA5MjIxN2Y4ZTdhNDk3MzRlZTFlNzNl
MWEyMWNkMDUzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3Jp
cHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW0td2l0aC1ndWFyZC5qc29uLVRlc3RSZXBs
YXlJbnB1dHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVz
dHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZW51bS13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0
cy5oCkBAIC0zNCw5ICszNCwxMiBAQAogI2luY2x1ZGUgIkludGVybmFsTmFtZXNwYWNlSGVhZGVy
SW5jbHVkZUR1bW15LmgiCiAjaW5jbHVkZSA8cGxhdGZvcm0vRXh0ZXJuYWxOYW1lc3BhY2VIZWFk
ZXJJbmNsdWRlRHVtbXkuaD4KIAorbmFtZXNwYWNlIFRlc3QgeworZW51bSBQbGF0Zm9ybVdoZWVs
UGhhc2UgOiB1aW50NjRfdDsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUGxhdGZv
cm1XaGVlbEV2ZW50OwotZW51bSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSA6IHVpbnQ2NF90Owog
fQogCiAKQEAgLTQ1LDcgKzQ4LDcgQEAgY2xhc3MgSGFuZGxlV2hlZWxFdmVudDsKIH0gLy8gbmFt
ZXNwYWNlIFRlc3QKIAogbmFtZXNwYWNlIEpTQyB7Ci10ZW1wbGF0ZTw+IHN0cnVjdCBJbnB1dFRy
YWl0czxUZXN0OjpIYW5kbGVXaGVlbEV2ZW50PiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBURVNUX0VY
UE9SVF9NQUNSTyBJbnB1dFRyYWl0czxUZXN0OjpIYW5kbGVXaGVlbEV2ZW50PiB7CiAgICAgc3Rh
dGljIElucHV0UXVldWUgcXVldWUoKSB7IHJldHVybiBJbnB1dFF1ZXVlOjpFdmVudExvb3BJbnB1
dDsgfQogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIHR5cGUoKTsKIApAQCAtNTMsMTEgKzU2LDEx
IEBAIHRlbXBsYXRlPD4gc3RydWN0IElucHV0VHJhaXRzPFRlc3Q6OkhhbmRsZVdoZWVsRXZlbnQ+
IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSlNDOjpFbmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1
ZV9wdHI8VGVzdDo6SGFuZGxlV2hlZWxFdmVudD4mKTsKIH07CiAjaWYgRU5BQkxFKERVTU1ZX0ZF
QVRVUkUpCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxXZWJDb3JlOjpQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZT4gewotICAgIHR5cGVkZWYgV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2UgRGVjb2RlZFR5cGU7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBURVNUX0VYUE9SVF9NQUNS
TyBFbmNvZGluZ1RyYWl0czxUZXN0OjpQbGF0Zm9ybVdoZWVsUGhhc2U+IHsKKyAgICB0eXBlZGVm
IFRlc3Q6OlBsYXRmb3JtV2hlZWxQaGFzZSBEZWNvZGVkVHlwZTsKIAotICAgIHN0YXRpYyBFbmNv
ZGVkVmFsdWUgZW5jb2RlVmFsdWUoY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2UmIHZhbHVlKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmLCBX
ZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSYgdmFsdWUpOworICAgIHN0YXRpYyBFbmNv
ZGVkVmFsdWUgZW5jb2RlVmFsdWUoY29uc3QgVGVzdDo6UGxhdGZvcm1XaGVlbFBoYXNlJiB2YWx1
ZSk7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgVGVzdDo6UGxh
dGZvcm1XaGVlbFBoYXNlJiB2YWx1ZSk7CiB9OwogI2VuZGlmIC8vIEVOQUJMRShEVU1NWV9GRUFU
VVJFKQogfSAvLyBuYW1lc3BhY2UgSlNDCkBAIC02NSwxNCArNjgsMTYgQEAgdGVtcGxhdGU8PiBz
dHJ1Y3QgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U+IHsK
IG5hbWVzcGFjZSBUZXN0IHsKIGNsYXNzIEhhbmRsZVdoZWVsRXZlbnQgOiBwdWJsaWMgRXZlbnRM
b29wSW5wdXQ8SGFuZGxlV2hlZWxFdmVudD4gewogcHVibGljOgotICAgIEhhbmRsZVdoZWVsRXZl
bnQoc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtV2hlZWxFdmVudD4gcGxhdGZvcm1FdmVudCk7Cisg
ICAgVEVTVF9FWFBPUlRfTUFDUk8gSGFuZGxlV2hlZWxFdmVudChzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1XaGVlbEV2ZW50PiBwbGF0Zm9ybUV2ZW50LCBQbGF0Zm9ybVdoZWVsUGhhc2UgcGhhc2Up
OwogICAgIHZpcnR1YWwgfkhhbmRsZVdoZWVsRXZlbnQoKTsKIAogICAgIC8vIEV2ZW50TG9vcElu
cHV0IEFQSQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaChSZXBsYXlDb250cm9sbGVyJikgb3Zl
cnJpZGUgZmluYWw7CiAgICAgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBwbGF0Zm9ybUV2ZW50
KCkgY29uc3QgeyByZXR1cm4gKm1fcGxhdGZvcm1FdmVudDsgfQorICAgIFBsYXRmb3JtV2hlZWxQ
aGFzZSBwaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGhhc2U7IH0KIHByaXZhdGU6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFBsYXRmb3JtV2hlZWxFdmVudD4gbV9wbGF0Zm9ybUV2ZW50OworICAgIFBs
YXRmb3JtV2hlZWxQaGFzZSBtX3BoYXNlOwogfTsKIH0gLy8gbmFtZXNwYWNlIFRlc3QKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVj
dGVkL2dlbmVyYXRlLWVudW1zLXdpdGgtc2FtZS1iYXNlLW5hbWUuanNvbi1UZXN0UmVwbGF5SW5w
dXRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBl
Y3RlZC9nZW5lcmF0ZS1lbnVtcy13aXRoLXNhbWUtYmFzZS1uYW1lLmpzb24tVGVzdFJlcGxheUlu
cHV0cy5jcHAKaW5kZXggYjdiYWI4YjRkODllY2IxY2MxZGE1MTJiNzc3MTVlZTMwNWVkOGRkMC4u
YTE5NjQ0ZmZhMDVmYjVkYTlkNjg4M2FkMDQ5ZmU0NjVjMTAyMWRmZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRl
LWVudW1zLXdpdGgtc2FtZS1iYXNlLW5hbWUuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2Vu
ZXJhdGUtZW51bXMtd2l0aC1zYW1lLWJhc2UtbmFtZS5qc29uLVRlc3RSZXBsYXlJbnB1dHMuY3Bw
CkBAIC02MCw4ICs2MCw4IEBAIHZvaWQgSW5wdXRUcmFpdHM8VGVzdDo6Rm9ybUNvbWJvPjo6ZW5j
b2RlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCBjb25zdCBUZXN0CiB7CiAgICAgZW5jb2Rl
ZFZhbHVlLnB1dDxQbGF0Zm9ybUV2ZW50MTo6VHlwZT4oQVNDSUlMaXRlcmFsKCJldmVudFR5cGUx
IiksIGlucHV0LmV2ZW50VHlwZTEoKSk7CiAgICAgZW5jb2RlZFZhbHVlLnB1dDxQbGF0Zm9ybUV2
ZW50Mjo6VHlwZT4oQVNDSUlMaXRlcmFsKCJldmVudFR5cGUyIiksIGlucHV0LmV2ZW50VHlwZTIo
KSk7Ci0gICAgZW5jb2RlZFZhbHVlLnB1dDxXZWJDb3JlOjpGb3JtRGF0YTE6OlR5cGU+KEFTQ0lJ
TGl0ZXJhbCgiZm9ybVR5cGUxIiksIGlucHV0LmZvcm1UeXBlMSgpKTsKLSAgICBlbmNvZGVkVmFs
dWUucHV0PFdlYkNvcmU6OkZvcm1EYXRhMjo6VHlwZT4oQVNDSUlMaXRlcmFsKCJmb3JtVHlwZTIi
KSwgaW5wdXQuZm9ybVR5cGUyKCkpOworICAgIGVuY29kZWRWYWx1ZS5wdXQ8VGVzdDo6Rm9ybURh
dGExOjpUeXBlPihBU0NJSUxpdGVyYWwoImZvcm1UeXBlMSIpLCBpbnB1dC5mb3JtVHlwZTEoKSk7
CisgICAgZW5jb2RlZFZhbHVlLnB1dDxUZXN0OjpGb3JtRGF0YTI6OlR5cGU+KEFTQ0lJTGl0ZXJh
bCgiZm9ybVR5cGUyIiksIGlucHV0LmZvcm1UeXBlMigpKTsKIH0KIAogYm9vbCBJbnB1dFRyYWl0
czxUZXN0OjpGb3JtQ29tYm8+OjpkZWNvZGUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIHN0
ZDo6dW5pcXVlX3B0cjxUZXN0OjpGb3JtQ29tYm8+JiBpbnB1dCkKQEAgLTc0LDM0ICs3NCwzNCBA
QCBib29sIElucHV0VHJhaXRzPFRlc3Q6OkZvcm1Db21ibz46OmRlY29kZShFbmNvZGVkVmFsdWUm
IGVuY29kZWRWYWx1ZSwgc3RkOjp1bmlxdQogICAgIGlmICghZW5jb2RlZFZhbHVlLmdldDxQbGF0
Zm9ybUV2ZW50Mjo6VHlwZT4oQVNDSUlMaXRlcmFsKCJldmVudFR5cGUyIiksIGV2ZW50VHlwZTIp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBXZWJDb3JlOjpGb3JtRGF0YTE6OlR5cGUg
Zm9ybVR5cGUxOwotICAgIGlmICghZW5jb2RlZFZhbHVlLmdldDxXZWJDb3JlOjpGb3JtRGF0YTE6
OlR5cGU+KEFTQ0lJTGl0ZXJhbCgiZm9ybVR5cGUxIiksIGZvcm1UeXBlMSkpCisgICAgVGVzdDo6
Rm9ybURhdGExOjpUeXBlIGZvcm1UeXBlMTsKKyAgICBpZiAoIWVuY29kZWRWYWx1ZS5nZXQ8VGVz
dDo6Rm9ybURhdGExOjpUeXBlPihBU0NJSUxpdGVyYWwoImZvcm1UeXBlMSIpLCBmb3JtVHlwZTEp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBXZWJDb3JlOjpGb3JtRGF0YTI6OlR5cGUg
Zm9ybVR5cGUyOwotICAgIGlmICghZW5jb2RlZFZhbHVlLmdldDxXZWJDb3JlOjpGb3JtRGF0YTI6
OlR5cGU+KEFTQ0lJTGl0ZXJhbCgiZm9ybVR5cGUyIiksIGZvcm1UeXBlMikpCisgICAgVGVzdDo6
Rm9ybURhdGEyOjpUeXBlIGZvcm1UeXBlMjsKKyAgICBpZiAoIWVuY29kZWRWYWx1ZS5nZXQ8VGVz
dDo6Rm9ybURhdGEyOjpUeXBlPihBU0NJSUxpdGVyYWwoImZvcm1UeXBlMiIpLCBmb3JtVHlwZTIp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpbnB1dCA9IHN0ZDo6bWFrZV91bmlxdWU8
VGVzdDo6Rm9ybUNvbWJvPihldmVudFR5cGUxLCBldmVudFR5cGUyLCBmb3JtVHlwZTEsIGZvcm1U
eXBlMik7CiAgICAgcmV0dXJuIHRydWU7CiB9Ci1FbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8
V2ViQ29yZTo6Rm9ybURhdGExOjpUeXBlPjo6ZW5jb2RlVmFsdWUoY29uc3QgV2ViQ29yZTo6Rm9y
bURhdGExOjpUeXBlJiBlbnVtVmFsdWUpCitFbmNvZGVkVmFsdWUgRW5jb2RpbmdUcmFpdHM8VGVz
dDo6Rm9ybURhdGExOjpUeXBlPjo6ZW5jb2RlVmFsdWUoY29uc3QgVGVzdDo6Rm9ybURhdGExOjpU
eXBlJiBlbnVtVmFsdWUpCiB7CiAgICAgRW5jb2RlZFZhbHVlIGVuY29kZWRWYWx1ZSA9IEVuY29k
ZWRWYWx1ZTo6Y3JlYXRlQXJyYXkoKTsKLSAgICBpZiAoZW51bVZhbHVlICYgV2ViQ29yZTo6Rm9y
bURhdGExOjpUZXh0KSB7CisgICAgaWYgKGVudW1WYWx1ZSAmIFRlc3Q6OkZvcm1EYXRhMTo6VGV4
dCkgewogICAgICAgICBlbmNvZGVkVmFsdWUuYXBwZW5kPFN0cmluZz4oQVNDSUlMaXRlcmFsKCJU
ZXh0IikpOwotICAgICAgICBpZiAoZW51bVZhbHVlID09IFdlYkNvcmU6OkZvcm1EYXRhMTo6VGV4
dCkKKyAgICAgICAgaWYgKGVudW1WYWx1ZSA9PSBUZXN0OjpGb3JtRGF0YTE6OlRleHQpCiAgICAg
ICAgICAgICByZXR1cm4gZW5jb2RlZFZhbHVlOwogICAgIH0KLSAgICBpZiAoZW51bVZhbHVlICYg
V2ViQ29yZTo6Rm9ybURhdGExOjpCbG9iKSB7CisgICAgaWYgKGVudW1WYWx1ZSAmIFRlc3Q6OkZv
cm1EYXRhMTo6QmxvYikgewogICAgICAgICBlbmNvZGVkVmFsdWUuYXBwZW5kPFN0cmluZz4oQVND
SUlMaXRlcmFsKCJCbG9iIikpOwotICAgICAgICBpZiAoZW51bVZhbHVlID09IFdlYkNvcmU6OkZv
cm1EYXRhMTo6QmxvYikKKyAgICAgICAgaWYgKGVudW1WYWx1ZSA9PSBUZXN0OjpGb3JtRGF0YTE6
OkJsb2IpCiAgICAgICAgICAgICByZXR1cm4gZW5jb2RlZFZhbHVlOwogICAgIH0KICAgICByZXR1
cm4gZW5jb2RlZFZhbHVlOwogfQogCi1ib29sIEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6OkZvcm1E
YXRhMTo6VHlwZT46OmRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYgZW5jb2RlZFZhbHVlLCBXZWJD
b3JlOjpGb3JtRGF0YTE6OlR5cGUmIGVudW1WYWx1ZSkKK2Jvb2wgRW5jb2RpbmdUcmFpdHM8VGVz
dDo6Rm9ybURhdGExOjpUeXBlPjo6ZGVjb2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFs
dWUsIFRlc3Q6OkZvcm1EYXRhMTo6VHlwZSYgZW51bVZhbHVlKQogewogICAgIFZlY3RvcjxTdHJp
bmc+IGVudW1TdHJpbmdzOwogICAgIGlmICghRW5jb2RpbmdUcmFpdHM8VmVjdG9yPFN0cmluZz4+
OjpkZWNvZGVWYWx1ZShlbmNvZGVkVmFsdWUsIGVudW1TdHJpbmdzKSkKQEAgLTEwOSw4NyArMTA5
LDMyIEBAIGJvb2wgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6Rm9ybURhdGExOjpUeXBlPjo6ZGVj
b2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkCiAKICAgICBmb3IgKGNvbnN0IFN0cmluZyYg
ZW51bVN0cmluZyA6IGVudW1TdHJpbmdzKSB7CiAgICAgICAgIGlmIChlbnVtU3RyaW5nID09ICJU
ZXh0IikKLSAgICAgICAgICAgIGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkZvcm1E
YXRhMTo6VHlwZT4oZW51bVZhbHVlIHwgV2ViQ29yZTo6Rm9ybURhdGExOjpUZXh0KTsKKyAgICAg
ICAgICAgIGVudW1WYWx1ZSA9IHN0YXRpY19jYXN0PFRlc3Q6OkZvcm1EYXRhMTo6VHlwZT4oZW51
bVZhbHVlIHwgVGVzdDo6Rm9ybURhdGExOjpUZXh0KTsKICAgICAgICAgZWxzZSBpZiAoZW51bVN0
cmluZyA9PSAiQmxvYiIpCi0gICAgICAgICAgICBlbnVtVmFsdWUgPSBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpGb3JtRGF0YTE6OlR5cGU+KGVudW1WYWx1ZSB8IFdlYkNvcmU6OkZvcm1EYXRhMTo6Qmxv
Yik7CisgICAgICAgICAgICBlbnVtVmFsdWUgPSBzdGF0aWNfY2FzdDxUZXN0OjpGb3JtRGF0YTE6
OlR5cGU+KGVudW1WYWx1ZSB8IFRlc3Q6OkZvcm1EYXRhMTo6QmxvYik7CiAgICAgfQogCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLUVuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxXZWJDb3JlOjpG
b3JtRGF0YTI6OlR5cGU+OjplbmNvZGVWYWx1ZShjb25zdCBXZWJDb3JlOjpGb3JtRGF0YTI6OlR5
cGUmIGVudW1WYWx1ZSkKK0VuY29kZWRWYWx1ZSBFbmNvZGluZ1RyYWl0czxUZXN0OjpGb3JtRGF0
YTI6OlR5cGU+OjplbmNvZGVWYWx1ZShjb25zdCBUZXN0OjpGb3JtRGF0YTI6OlR5cGUmIGVudW1W
YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGVudW1WYWx1ZSkgewotICAgIGNhc2UgV2ViQ29yZTo6Rm9y
bURhdGEyOjpUeXBlOjpUZXh0OiByZXR1cm4gRW5jb2RlZFZhbHVlOjpjcmVhdGVTdHJpbmcoIlRl
eHQiKTsKLSAgICBjYXNlIFdlYkNvcmU6OkZvcm1EYXRhMjo6VHlwZTo6QmxvYjogcmV0dXJuIEVu
Y29kZWRWYWx1ZTo6Y3JlYXRlU3RyaW5nKCJCbG9iIik7CisgICAgY2FzZSBUZXN0OjpGb3JtRGF0
YTI6OlR5cGU6OlRleHQ6IHJldHVybiBFbmNvZGVkVmFsdWU6OmNyZWF0ZVN0cmluZygiVGV4dCIp
OworICAgIGNhc2UgVGVzdDo6Rm9ybURhdGEyOjpUeXBlOjpCbG9iOiByZXR1cm4gRW5jb2RlZFZh
bHVlOjpjcmVhdGVTdHJpbmcoIkJsb2IiKTsKICAgICBkZWZhdWx0OiBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsgcmV0dXJuIEVuY29kZWRWYWx1ZTo6Y3JlYXRlU3RyaW5nKCJFcnJvciEiKTsKICAgICB9
CiB9CiAKLWJvb2wgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6Rm9ybURhdGEyOjpUeXBlPjo6ZGVj
b2RlVmFsdWUoRW5jb2RlZFZhbHVlJiBlbmNvZGVkVmFsdWUsIFdlYkNvcmU6OkZvcm1EYXRhMjo6
VHlwZSYgZW51bVZhbHVlKQorYm9vbCBFbmNvZGluZ1RyYWl0czxUZXN0OjpGb3JtRGF0YTI6OlR5
cGU+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgVGVzdDo6Rm9ybURh
dGEyOjpUeXBlJiBlbnVtVmFsdWUpCiB7CiAgICAgU3RyaW5nIGVudW1TdHJpbmcgPSBlbmNvZGVk
VmFsdWUuY29udmVydFRvPFN0cmluZz4oKTsKICAgICBpZiAoZW51bVN0cmluZyA9PSAiVGV4dCIp
IHsKLSAgICAgICAgZW51bVZhbHVlID0gV2ViQ29yZTo6Rm9ybURhdGEyOjpUeXBlOjpUZXh0Owor
ICAgICAgICBlbnVtVmFsdWUgPSBUZXN0OjpGb3JtRGF0YTI6OlR5cGU6OlRleHQ7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KICAgICBpZiAoZW51bVN0cmluZyA9PSAiQmxvYiIpIHsKLSAg
ICAgICAgZW51bVZhbHVlID0gV2ViQ29yZTo6Rm9ybURhdGEyOjpUeXBlOjpCbG9iOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1FbmNvZGVkVmFs
dWUgRW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1FdmVudDE6OlR5cGU+OjplbmNvZGVWYWx1ZShjb25z
dCBQbGF0Zm9ybUV2ZW50MTo6VHlwZSYgZW51bVZhbHVlKQotewotICAgIEVuY29kZWRWYWx1ZSBl
bmNvZGVkVmFsdWUgPSBFbmNvZGVkVmFsdWU6OmNyZWF0ZUFycmF5KCk7Ci0gICAgaWYgKGVudW1W
YWx1ZSAmIFBsYXRmb3JtRXZlbnQxOjpNb3VzZSkgewotICAgICAgICBlbmNvZGVkVmFsdWUuYXBw
ZW5kPFN0cmluZz4oQVNDSUlMaXRlcmFsKCJNb3VzZSIpKTsKLSAgICAgICAgaWYgKGVudW1WYWx1
ZSA9PSBQbGF0Zm9ybUV2ZW50MTo6TW91c2UpCi0gICAgICAgICAgICByZXR1cm4gZW5jb2RlZFZh
bHVlOwotICAgIH0KLSAgICBpZiAoZW51bVZhbHVlICYgUGxhdGZvcm1FdmVudDE6OktleWJvYXJk
KSB7Ci0gICAgICAgIGVuY29kZWRWYWx1ZS5hcHBlbmQ8U3RyaW5nPihBU0NJSUxpdGVyYWwoIktl
eWJvYXJkIikpOwotICAgICAgICBpZiAoZW51bVZhbHVlID09IFBsYXRmb3JtRXZlbnQxOjpLZXli
b2FyZCkKLSAgICAgICAgICAgIHJldHVybiBlbmNvZGVkVmFsdWU7Ci0gICAgfQotICAgIHJldHVy
biBlbmNvZGVkVmFsdWU7Ci19Ci0KLWJvb2wgRW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1FdmVudDE6
OlR5cGU+OjpkZWNvZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1F
dmVudDE6OlR5cGUmIGVudW1WYWx1ZSkKLXsKLSAgICBWZWN0b3I8U3RyaW5nPiBlbnVtU3RyaW5n
czsKLSAgICBpZiAoIUVuY29kaW5nVHJhaXRzPFZlY3RvcjxTdHJpbmc+Pjo6ZGVjb2RlVmFsdWUo
ZW5jb2RlZFZhbHVlLCBlbnVtU3RyaW5ncykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGZvciAoY29uc3QgU3RyaW5nJiBlbnVtU3RyaW5nIDogZW51bVN0cmluZ3MpIHsKLSAgICAgICAg
aWYgKGVudW1TdHJpbmcgPT0gIk1vdXNlIikKLSAgICAgICAgICAgIGVudW1WYWx1ZSA9IHN0YXRp
Y19jYXN0PFBsYXRmb3JtRXZlbnQxOjpUeXBlPihlbnVtVmFsdWUgfCBQbGF0Zm9ybUV2ZW50MTo6
TW91c2UpOwotICAgICAgICBlbHNlIGlmIChlbnVtU3RyaW5nID09ICJLZXlib2FyZCIpCi0gICAg
ICAgICAgICBlbnVtVmFsdWUgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybUV2ZW50MTo6VHlwZT4oZW51
bVZhbHVlIHwgUGxhdGZvcm1FdmVudDE6OktleWJvYXJkKTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQotRW5jb2RlZFZhbHVlIEVuY29kaW5nVHJhaXRzPFBsYXRmb3JtRXZlbnQyOjpU
eXBlPjo6ZW5jb2RlVmFsdWUoY29uc3QgUGxhdGZvcm1FdmVudDI6OlR5cGUmIGVudW1WYWx1ZSkK
LXsKLSAgICBzd2l0Y2ggKGVudW1WYWx1ZSkgewotICAgIGNhc2UgUGxhdGZvcm1FdmVudDI6OlR5
cGU6Ok1vdXNlOiByZXR1cm4gRW5jb2RlZFZhbHVlOjpjcmVhdGVTdHJpbmcoIk1vdXNlIik7Ci0g
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50Mjo6VHlwZTo6S2V5Ym9hcmQ6IHJldHVybiBFbmNvZGVkVmFs
dWU6OmNyZWF0ZVN0cmluZygiS2V5Ym9hcmQiKTsKLSAgICBkZWZhdWx0OiBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsgcmV0dXJuIEVuY29kZWRWYWx1ZTo6Y3JlYXRlU3RyaW5nKCJFcnJvciEiKTsKLSAg
ICB9Ci19Ci0KLWJvb2wgRW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1FdmVudDI6OlR5cGU+OjpkZWNv
ZGVWYWx1ZShFbmNvZGVkVmFsdWUmIGVuY29kZWRWYWx1ZSwgUGxhdGZvcm1FdmVudDI6OlR5cGUm
IGVudW1WYWx1ZSkKLXsKLSAgICBTdHJpbmcgZW51bVN0cmluZyA9IGVuY29kZWRWYWx1ZS5jb252
ZXJ0VG88U3RyaW5nPigpOwotICAgIGlmIChlbnVtU3RyaW5nID09ICJNb3VzZSIpIHsKLSAgICAg
ICAgZW51bVZhbHVlID0gUGxhdGZvcm1FdmVudDI6OlR5cGU6Ok1vdXNlOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKGVudW1TdHJpbmcgPT0gIktleWJvYXJkIikgewotICAg
ICAgICBlbnVtVmFsdWUgPSBQbGF0Zm9ybUV2ZW50Mjo6VHlwZTo6S2V5Ym9hcmQ7CisgICAgICAg
IGVudW1WYWx1ZSA9IFRlc3Q6OkZvcm1EYXRhMjo6VHlwZTo6QmxvYjsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1lbnVtcy13
aXRoLXNhbWUtYmFzZS1uYW1lLmpzb24tVGVzdFJlcGxheUlucHV0cy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW1zLXdp
dGgtc2FtZS1iYXNlLW5hbWUuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKaW5kZXggNmM5M2FkN2U0
Y2FkNTUxNDBiYzVmYzdhYjNlZDBmZDJlMTcxZDEwMy4uMmUxZDFjODFjZjY0NzQwNGY5ZDAwMmUx
NDZjMzAzZjg5YzkzZjdlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxh
eS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW1zLXdpdGgtc2FtZS1iYXNlLW5h
bWUuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Jl
cGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWVudW1zLXdpdGgtc2FtZS1iYXNl
LW5hbWUuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKQEAgLTMxLDEwICszMSwxMCBAQAogI2RlZmlu
ZSBnZW5lcmF0ZV9lbnVtc193aXRoX3NhbWVfYmFzZV9uYW1lX2pzb25fVGVzdFJlcGxheUlucHV0
c19oCiAKICNpZiBFTkFCTEUoV0VCX1JFUExBWSkKKyNpbmNsdWRlICJGb3JtRGF0YTEuaCIKKyNp
bmNsdWRlICJGb3JtRGF0YTIuaCIKICNpbmNsdWRlICJJbnRlcm5hbE5hbWVzcGFjZUhlYWRlcklu
Y2x1ZGVEdW1teS5oIgogI2luY2x1ZGUgPHBsYXRmb3JtL0V4dGVybmFsTmFtZXNwYWNlSGVhZGVy
SW5jbHVkZUR1bW15Lmg+Ci0jaW5jbHVkZSA8cmVwbGF5L0Zvcm1EYXRhMS5oPgotI2luY2x1ZGUg
PHJlcGxheS9Gb3JtRGF0YTIuaD4KICNpbmNsdWRlIDxyZXBsYXkvUGxhdGZvcm1FdmVudC5oPgog
CiAKQEAgLTQ0LDQ2ICs0NCwzMiBAQCBjbGFzcyBGb3JtQ29tYm87CiB9IC8vIG5hbWVzcGFjZSBU
ZXN0CiAKIG5hbWVzcGFjZSBKU0MgewotdGVtcGxhdGU8PiBzdHJ1Y3QgSW5wdXRUcmFpdHM8VGVz
dDo6Rm9ybUNvbWJvPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBURVNUX0VYUE9SVF9NQUNSTyBJbnB1
dFRyYWl0czxUZXN0OjpGb3JtQ29tYm8+IHsKICAgICBzdGF0aWMgSW5wdXRRdWV1ZSBxdWV1ZSgp
IHsgcmV0dXJuIElucHV0UXVldWU6OlNjcmlwdE1lbW9pemVkRGF0YTsgfQogICAgIHN0YXRpYyBj
b25zdCBTdHJpbmcmIHR5cGUoKTsKIAogICAgIHN0YXRpYyB2b2lkIGVuY29kZShKU0M6OkVuY29k
ZWRWYWx1ZSYsIGNvbnN0IFRlc3Q6OkZvcm1Db21ibyYpOwogICAgIHN0YXRpYyBib29sIGRlY29k
ZShKU0M6OkVuY29kZWRWYWx1ZSYsIHN0ZDo6dW5pcXVlX3B0cjxUZXN0OjpGb3JtQ29tYm8+Jik7
CiB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgRW5jb2RpbmdUcmFpdHM8V2ViQ29yZTo6Rm9ybURhdGEx
OjpUeXBlPiB7Ci0gICAgdHlwZWRlZiBXZWJDb3JlOjpGb3JtRGF0YTE6OlR5cGUgRGVjb2RlZFR5
cGU7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBURVNUX0VYUE9SVF9NQUNSTyBFbmNvZGluZ1RyYWl0czxU
ZXN0OjpGb3JtRGF0YTE6OlR5cGU+IHsKKyAgICB0eXBlZGVmIFRlc3Q6OkZvcm1EYXRhMTo6VHlw
ZSBEZWNvZGVkVHlwZTsKIAotICAgIHN0YXRpYyBFbmNvZGVkVmFsdWUgZW5jb2RlVmFsdWUoY29u
c3QgV2ViQ29yZTo6Rm9ybURhdGExOjpUeXBlJiB2YWx1ZSk7Ci0gICAgc3RhdGljIGJvb2wgZGVj
b2RlVmFsdWUoRW5jb2RlZFZhbHVlJiwgV2ViQ29yZTo6Rm9ybURhdGExOjpUeXBlJiB2YWx1ZSk7
CisgICAgc3RhdGljIEVuY29kZWRWYWx1ZSBlbmNvZGVWYWx1ZShjb25zdCBUZXN0OjpGb3JtRGF0
YTE6OlR5cGUmIHZhbHVlKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGVWYWx1ZShFbmNvZGVkVmFs
dWUmLCBUZXN0OjpGb3JtRGF0YTE6OlR5cGUmIHZhbHVlKTsKIH07CiAKLXRlbXBsYXRlPD4gc3Ry
dWN0IEVuY29kaW5nVHJhaXRzPFdlYkNvcmU6OkZvcm1EYXRhMjo6VHlwZT4gewotICAgIHR5cGVk
ZWYgV2ViQ29yZTo6Rm9ybURhdGEyOjpUeXBlIERlY29kZWRUeXBlOwordGVtcGxhdGU8PiBzdHJ1
Y3QgVEVTVF9FWFBPUlRfTUFDUk8gRW5jb2RpbmdUcmFpdHM8VGVzdDo6Rm9ybURhdGEyOjpUeXBl
PiB7CisgICAgdHlwZWRlZiBUZXN0OjpGb3JtRGF0YTI6OlR5cGUgRGVjb2RlZFR5cGU7CiAKLSAg
ICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFdlYkNvcmU6OkZvcm1EYXRh
Mjo6VHlwZSYgdmFsdWUpOwotICAgIHN0YXRpYyBib29sIGRlY29kZVZhbHVlKEVuY29kZWRWYWx1
ZSYsIFdlYkNvcmU6OkZvcm1EYXRhMjo6VHlwZSYgdmFsdWUpOwotfTsKLQotdGVtcGxhdGU8PiBz
dHJ1Y3QgRW5jb2RpbmdUcmFpdHM8UGxhdGZvcm1FdmVudDE6OlR5cGU+IHsKLSAgICB0eXBlZGVm
IFBsYXRmb3JtRXZlbnQxOjpUeXBlIERlY29kZWRUeXBlOwotCi0gICAgc3RhdGljIEVuY29kZWRW
YWx1ZSBlbmNvZGVWYWx1ZShjb25zdCBQbGF0Zm9ybUV2ZW50MTo6VHlwZSYgdmFsdWUpOwotICAg
IHN0YXRpYyBib29sIGRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYsIFBsYXRmb3JtRXZlbnQxOjpU
eXBlJiB2YWx1ZSk7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbmNvZGluZ1RyYWl0czxQbGF0
Zm9ybUV2ZW50Mjo6VHlwZT4gewotICAgIHR5cGVkZWYgUGxhdGZvcm1FdmVudDI6OlR5cGUgRGVj
b2RlZFR5cGU7Ci0KLSAgICBzdGF0aWMgRW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFBs
YXRmb3JtRXZlbnQyOjpUeXBlJiB2YWx1ZSk7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlVmFsdWUo
RW5jb2RlZFZhbHVlJiwgUGxhdGZvcm1FdmVudDI6OlR5cGUmIHZhbHVlKTsKKyAgICBzdGF0aWMg
RW5jb2RlZFZhbHVlIGVuY29kZVZhbHVlKGNvbnN0IFRlc3Q6OkZvcm1EYXRhMjo6VHlwZSYgdmFs
dWUpOworICAgIHN0YXRpYyBib29sIGRlY29kZVZhbHVlKEVuY29kZWRWYWx1ZSYsIFRlc3Q6OkZv
cm1EYXRhMjo6VHlwZSYgdmFsdWUpOwogfTsKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiBuYW1lc3Bh
Y2UgVGVzdCB7CiBjbGFzcyBGb3JtQ29tYm8gOiBwdWJsaWMgTm9uZGV0ZXJtaW5pc3RpY0lucHV0
PEZvcm1Db21ibz4gewogcHVibGljOgotICAgIEZvcm1Db21ibyhQbGF0Zm9ybUV2ZW50MTo6VHlw
ZSBldmVudFR5cGUxLCBQbGF0Zm9ybUV2ZW50Mjo6VHlwZSBldmVudFR5cGUyLCBGb3JtRGF0YTE6
OlR5cGUgZm9ybVR5cGUxLCBGb3JtRGF0YTI6OlR5cGUgZm9ybVR5cGUyKTsKKyAgICBURVNUX0VY
UE9SVF9NQUNSTyBGb3JtQ29tYm8oUGxhdGZvcm1FdmVudDE6OlR5cGUgZXZlbnRUeXBlMSwgUGxh
dGZvcm1FdmVudDI6OlR5cGUgZXZlbnRUeXBlMiwgRm9ybURhdGExOjpUeXBlIGZvcm1UeXBlMSwg
Rm9ybURhdGEyOjpUeXBlIGZvcm1UeXBlMik7CiAgICAgdmlydHVhbCB+Rm9ybUNvbWJvKCk7CiAK
ICAgICBQbGF0Zm9ybUV2ZW50MTo6VHlwZSBldmVudFR5cGUxKCkgY29uc3QgeyByZXR1cm4gbV9l
dmVudFR5cGUxOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3Nj
cmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0aC1ndWFyZC5qc29uLVRlc3RS
ZXBsYXlJbnB1dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0
cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0
cy5oCmluZGV4IDRmMTQ1YjY4MmExZTliNDYxYzI0YWQ3NjYxNzRmMjNlM2ZjYjI4YWIuLjY0MTI1
M2VjMjJhYzdjZjg1Y2VjNTQ5ZGE4N2U3YWU2OWMzMTc0NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1
dC13aXRoLWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRo
LWd1YXJkLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIFNl
dFJhbmRvbVNlZWQ7CiAKIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShEVU1NWV9GRUFUVVJF
KQotdGVtcGxhdGU8PiBzdHJ1Y3QgSW5wdXRUcmFpdHM8VGVzdDo6R2V0Q3VycmVudFRpbWU+IHsK
K3RlbXBsYXRlPD4gc3RydWN0IFRFU1RfRVhQT1JUX01BQ1JPIElucHV0VHJhaXRzPFRlc3Q6Okdl
dEN1cnJlbnRUaW1lPiB7CiAgICAgc3RhdGljIElucHV0UXVldWUgcXVldWUoKSB7IHJldHVybiBJ
bnB1dFF1ZXVlOjpTY3JpcHRNZW1vaXplZERhdGE7IH0KICAgICBzdGF0aWMgY29uc3QgU3RyaW5n
JiB0eXBlKCk7CiAKQEAgLTU0LDcgKzU0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSW5wdXRUcmFp
dHM8VGVzdDo6R2V0Q3VycmVudFRpbWU+IHsKIH07CiAjZW5kaWYgLy8gRU5BQkxFKERVTU1ZX0ZF
QVRVUkUpCiAKLXRlbXBsYXRlPD4gc3RydWN0IElucHV0VHJhaXRzPFRlc3Q6OlNldFJhbmRvbVNl
ZWQ+IHsKK3RlbXBsYXRlPD4gc3RydWN0IFRFU1RfRVhQT1JUX01BQ1JPIElucHV0VHJhaXRzPFRl
c3Q6OlNldFJhbmRvbVNlZWQ+IHsKICAgICBzdGF0aWMgSW5wdXRRdWV1ZSBxdWV1ZSgpIHsgcmV0
dXJuIElucHV0UXVldWU6OlNjcmlwdE1lbW9pemVkRGF0YTsgfQogICAgIHN0YXRpYyBjb25zdCBT
dHJpbmcmIHR5cGUoKTsKIApAQCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgVGVzdCB7CiAjaWYg
RU5BQkxFKERVTU1ZX0ZFQVRVUkUpCiBjbGFzcyBHZXRDdXJyZW50VGltZSA6IHB1YmxpYyBOb25k
ZXRlcm1pbmlzdGljSW5wdXQ8R2V0Q3VycmVudFRpbWU+IHsKIHB1YmxpYzoKLSAgICBHZXRDdXJy
ZW50VGltZShkb3VibGUgY3VycmVudFRpbWUpOworICAgIFRFU1RfRVhQT1JUX01BQ1JPIEdldEN1
cnJlbnRUaW1lKGRvdWJsZSBjdXJyZW50VGltZSk7CiAgICAgdmlydHVhbCB+R2V0Q3VycmVudFRp
bWUoKTsKIAogICAgIGRvdWJsZSBjdXJyZW50VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVu
dFRpbWU7IH0KQEAgLTc5LDcgKzc5LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgU2V0UmFuZG9tU2Vl
ZCA6IHB1YmxpYyBOb25kZXRlcm1pbmlzdGljSW5wdXQ8U2V0UmFuZG9tU2VlZD4gewogcHVibGlj
OgotICAgIFNldFJhbmRvbVNlZWQodWludDY0X3QgcmFuZG9tU2VlZCk7CisgICAgVEVTVF9FWFBP
UlRfTUFDUk8gU2V0UmFuZG9tU2VlZCh1aW50NjRfdCByYW5kb21TZWVkKTsKICAgICB2aXJ0dWFs
IH5TZXRSYW5kb21TZWVkKCk7CiAKICAgICB1aW50NjRfdCByYW5kb21TZWVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9yYW5kb21TZWVkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtaW5wdXQtd2l0aC12ZWN0b3It
bWVtYmVycy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
ZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRoLXZlY3Rvci1t
ZW1iZXJzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oCmluZGV4IGEyNzFlY2I5MjNhZTVmNzg1OGIx
MDNjNjZhYTkwNTQxZGYxNDI1NmUuLjFjZTM5M2JkNjI4MWU2OWZlMjAwYzNhNjAwNDM1NDMwYmU1
YjU0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90
ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRoLXZlY3Rvci1tZW1iZXJzLmpzb24tVGVz
dFJlcGxheUlucHV0cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0
cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1pbnB1dC13aXRoLXZlY3Rvci1tZW1iZXJzLmpzb24t
VGVzdFJlcGxheUlucHV0cy5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFNhdmVkSGlzdG9yeTsK
IH0gLy8gbmFtZXNwYWNlIFRlc3QKIAogbmFtZXNwYWNlIEpTQyB7Ci10ZW1wbGF0ZTw+IHN0cnVj
dCBJbnB1dFRyYWl0czxUZXN0OjpBcnJheU9mVGhpbmdzPiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBU
RVNUX0VYUE9SVF9NQUNSTyBJbnB1dFRyYWl0czxUZXN0OjpBcnJheU9mVGhpbmdzPiB7CiAgICAg
c3RhdGljIElucHV0UXVldWUgcXVldWUoKSB7IHJldHVybiBJbnB1dFF1ZXVlOjpTY3JpcHRNZW1v
aXplZERhdGE7IH0KICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiB0eXBlKCk7CiAKQEAgLTU0LDcg
KzU0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSW5wdXRUcmFpdHM8VGVzdDo6QXJyYXlPZlRoaW5n
cz4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShKU0M6OkVuY29kZWRWYWx1ZSYsIHN0ZDo6dW5p
cXVlX3B0cjxUZXN0OjpBcnJheU9mVGhpbmdzPiYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3Qg
SW5wdXRUcmFpdHM8VGVzdDo6U2F2ZWRIaXN0b3J5PiB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBURVNU
X0VYUE9SVF9NQUNSTyBJbnB1dFRyYWl0czxUZXN0OjpTYXZlZEhpc3Rvcnk+IHsKICAgICBzdGF0
aWMgSW5wdXRRdWV1ZSBxdWV1ZSgpIHsgcmV0dXJuIElucHV0UXVldWU6OlNjcmlwdE1lbW9pemVk
RGF0YTsgfQogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIHR5cGUoKTsKIApAQCAtNjcsNyArNjcs
NyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBJbnB1dFRyYWl0czxUZXN0OjpTYXZlZEhpc3Rvcnk+IHsK
IG5hbWVzcGFjZSBUZXN0IHsKIGNsYXNzIEFycmF5T2ZUaGluZ3MgOiBwdWJsaWMgTm9uZGV0ZXJt
aW5pc3RpY0lucHV0PEFycmF5T2ZUaGluZ3M+IHsKIHB1YmxpYzoKLSAgICBBcnJheU9mVGhpbmdz
KFZlY3Rvcjxkb3VibGU+JiBkb3VibGVzLCBWZWN0b3I8SlNUaGluZz4mIGpzdGhpbmdzLCBWZWN0
b3I8V2ViVGhpbmc+JiB3ZWJ0aGluZ3MpOworICAgIFRFU1RfRVhQT1JUX01BQ1JPIEFycmF5T2ZU
aGluZ3MoVmVjdG9yPGRvdWJsZT4mIGRvdWJsZXMsIFZlY3RvcjxKU1RoaW5nPiYganN0aGluZ3Ms
IFZlY3RvcjxXZWJUaGluZz4mIHdlYnRoaW5ncyk7CiAgICAgdmlydHVhbCB+QXJyYXlPZlRoaW5n
cygpOwogCiAgICAgY29uc3QgVmVjdG9yPGRvdWJsZT4mIGRvdWJsZXMoKSBjb25zdCB7IHJldHVy
biBtX2RvdWJsZXM7IH0KQEAgLTgxLDcgKzgxLDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgU2F2ZWRI
aXN0b3J5IDogcHVibGljIE5vbmRldGVybWluaXN0aWNJbnB1dDxTYXZlZEhpc3Rvcnk+IHsKIHB1
YmxpYzoKLSAgICBTYXZlZEhpc3RvcnkoVmVjdG9yPFJlZlB0cjxIaXN0b3J5SXRlbT4+JiBlbnRy
aWVzKTsKKyAgICBURVNUX0VYUE9SVF9NQUNSTyBTYXZlZEhpc3RvcnkoVmVjdG9yPFJlZlB0cjxI
aXN0b3J5SXRlbT4+JiBlbnRyaWVzKTsKICAgICB2aXJ0dWFsIH5TYXZlZEhpc3RvcnkoKTsKIAog
ICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8SGlzdG9yeUl0ZW0+PiYgZW50cmllcygpIGNvbnN0IHsg
cmV0dXJuIG1fZW50cmllczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Jl
cGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0cy13aXRoLWZsYWdzLmpz
b24tVGVzdFJlcGxheUlucHV0cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3Jp
cHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWlucHV0cy13aXRoLWZsYWdzLmpzb24tVGVzdFJl
cGxheUlucHV0cy5oCmluZGV4IDhmNGRlMWIxMzhkMmFkN2NjYzRmZWU2MzM5ZjIyNWRmZGMwOGU1
NmQuLjQxMDBiMGY3YmY3NDM1NjMwODhjMTAyMWE1NzhiMDNjZGRiYjljY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5l
cmF0ZS1pbnB1dHMtd2l0aC1mbGFncy5qc29uLVRlc3RSZXBsYXlJbnB1dHMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUt
aW5wdXRzLXdpdGgtZmxhZ3MuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKQEAgLTQyLDcgKzQyLDcg
QEAgY2xhc3MgU2NhbGFySW5wdXQyOwogfSAvLyBuYW1lc3BhY2UgVGVzdAogCiBuYW1lc3BhY2Ug
SlNDIHsKLXRlbXBsYXRlPD4gc3RydWN0IElucHV0VHJhaXRzPFRlc3Q6OlNjYWxhcklucHV0MT4g
ewordGVtcGxhdGU8PiBzdHJ1Y3QgVEVTVF9FWFBPUlRfTUFDUk8gSW5wdXRUcmFpdHM8VGVzdDo6
U2NhbGFySW5wdXQxPiB7CiAgICAgc3RhdGljIElucHV0UXVldWUgcXVldWUoKSB7IHJldHVybiBJ
bnB1dFF1ZXVlOjpTY3JpcHRNZW1vaXplZERhdGE7IH0KICAgICBzdGF0aWMgY29uc3QgU3RyaW5n
JiB0eXBlKCk7CiAKQEAgLTUwLDcgKzUwLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSW5wdXRUcmFp
dHM8VGVzdDo6U2NhbGFySW5wdXQxPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEpTQzo6RW5j
b2RlZFZhbHVlJiwgc3RkOjp1bmlxdWVfcHRyPFRlc3Q6OlNjYWxhcklucHV0MT4mKTsKIH07CiAK
LXRlbXBsYXRlPD4gc3RydWN0IElucHV0VHJhaXRzPFRlc3Q6OlNjYWxhcklucHV0Mj4gewordGVt
cGxhdGU8PiBzdHJ1Y3QgVEVTVF9FWFBPUlRfTUFDUk8gSW5wdXRUcmFpdHM8VGVzdDo6U2NhbGFy
SW5wdXQyPiB7CiAgICAgc3RhdGljIElucHV0UXVldWUgcXVldWUoKSB7IHJldHVybiBJbnB1dFF1
ZXVlOjpTY3JpcHRNZW1vaXplZERhdGE7IH0KICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiB0eXBl
KCk7CiAKQEAgLTYzLDcgKzYzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSW5wdXRUcmFpdHM8VGVz
dDo6U2NhbGFySW5wdXQyPiB7CiBuYW1lc3BhY2UgVGVzdCB7CiBjbGFzcyBTY2FsYXJJbnB1dDEg
OiBwdWJsaWMgTm9uZGV0ZXJtaW5pc3RpY0lucHV0PFNjYWxhcklucHV0MT4gewogcHVibGljOgot
ICAgIFNjYWxhcklucHV0MShTY2FsYXJUeXBlIGRhdGEpOworICAgIFRFU1RfRVhQT1JUX01BQ1JP
IFNjYWxhcklucHV0MShTY2FsYXJUeXBlIGRhdGEpOwogICAgIHZpcnR1YWwgflNjYWxhcklucHV0
MSgpOwogCiAgICAgU2NhbGFyVHlwZSBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9CkBA
IC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIFNjYWxhcklucHV0MiA6IHB1YmxpYyBO
b25kZXRlcm1pbmlzdGljSW5wdXQ8U2NhbGFySW5wdXQyPiB7CiBwdWJsaWM6Ci0gICAgU2NhbGFy
SW5wdXQyKFNjYWxhclR5cGUgZGF0YSk7CisgICAgVEVTVF9FWFBPUlRfTUFDUk8gU2NhbGFySW5w
dXQyKFNjYWxhclR5cGUgZGF0YSk7CiAgICAgdmlydHVhbCB+U2NhbGFySW5wdXQyKCk7CiAKICAg
ICBTY2FsYXJUeXBlIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5l
cmF0ZS1tZW1vaXplZC10eXBlLW1vZGVzLmpzb24tVGVzdFJlcGxheUlucHV0cy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLW1l
bW9pemVkLXR5cGUtbW9kZXMuanNvbi1UZXN0UmVwbGF5SW5wdXRzLmgKaW5kZXggNDNjMzlmY2Uw
MTA2Y2FjOGNhMTUyNDliZGZmZmQyMjA1MDkzN2VjOC4uN2M4YTMwZGM0M2UwZjVjYjFjMGE4YzA2
MmE4YmZjNTY3NGQwOTIyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxh
eS9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLW1lbW9pemVkLXR5cGUtbW9kZXMuanNv
bi1UZXN0UmVwbGF5SW5wdXRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9z
Y3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLW1lbW9pemVkLXR5cGUtbW9kZXMuanNvbi1U
ZXN0UmVwbGF5SW5wdXRzLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgTWFwSW5wdXQ7CiB9IC8v
IG5hbWVzcGFjZSBUZXN0CiAKIG5hbWVzcGFjZSBKU0MgewotdGVtcGxhdGU8PiBzdHJ1Y3QgSW5w
dXRUcmFpdHM8VGVzdDo6U2NhbGFySW5wdXQ+IHsKK3RlbXBsYXRlPD4gc3RydWN0IFRFU1RfRVhQ
T1JUX01BQ1JPIElucHV0VHJhaXRzPFRlc3Q6OlNjYWxhcklucHV0PiB7CiAgICAgc3RhdGljIElu
cHV0UXVldWUgcXVldWUoKSB7IHJldHVybiBJbnB1dFF1ZXVlOjpTY3JpcHRNZW1vaXplZERhdGE7
IH0KICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiB0eXBlKCk7CiAKQEAgLTUwLDcgKzUwLDcgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgSW5wdXRUcmFpdHM8VGVzdDo6U2NhbGFySW5wdXQ+IHsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoSlNDOjpFbmNvZGVkVmFsdWUmLCBzdGQ6OnVuaXF1ZV9wdHI8VGVz
dDo6U2NhbGFySW5wdXQ+Jik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBJbnB1dFRyYWl0czxU
ZXN0OjpNYXBJbnB1dD4gewordGVtcGxhdGU8PiBzdHJ1Y3QgVEVTVF9FWFBPUlRfTUFDUk8gSW5w
dXRUcmFpdHM8VGVzdDo6TWFwSW5wdXQ+IHsKICAgICBzdGF0aWMgSW5wdXRRdWV1ZSBxdWV1ZSgp
IHsgcmV0dXJuIElucHV0UXVldWU6OlNjcmlwdE1lbW9pemVkRGF0YTsgfQogICAgIHN0YXRpYyBj
b25zdCBTdHJpbmcmIHR5cGUoKTsKIApAQCAtNjMsNyArNjMsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBJbnB1dFRyYWl0czxUZXN0OjpNYXBJbnB1dD4gewogbmFtZXNwYWNlIFRlc3QgewogY2xhc3Mg
U2NhbGFySW5wdXQgOiBwdWJsaWMgTm9uZGV0ZXJtaW5pc3RpY0lucHV0PFNjYWxhcklucHV0PiB7
CiBwdWJsaWM6Ci0gICAgU2NhbGFySW5wdXQoU2NhbGFyVHlwZSBkYXRhKTsKKyAgICBURVNUX0VY
UE9SVF9NQUNSTyBTY2FsYXJJbnB1dChTY2FsYXJUeXBlIGRhdGEpOwogICAgIHZpcnR1YWwgflNj
YWxhcklucHV0KCk7CiAKICAgICBTY2FsYXJUeXBlIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2Rh
dGE7IH0KQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWFwSW5wdXQgOiBwdWJs
aWMgTm9uZGV0ZXJtaW5pc3RpY0lucHV0PE1hcElucHV0PiB7CiBwdWJsaWM6Ci0gICAgTWFwSW5w
dXQoc3RkOjp1bmlxdWVfcHRyPE1hcFR5cGU+IGRhdGEpOworICAgIFRFU1RfRVhQT1JUX01BQ1JP
IE1hcElucHV0KHN0ZDo6dW5pcXVlX3B0cjxNYXBUeXBlPiBkYXRhKTsKICAgICB2aXJ0dWFsIH5N
YXBJbnB1dCgpOwogCiAgICAgY29uc3QgTWFwVHlwZSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuICpt
X2RhdGE7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0
cy90ZXN0cy9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhlbHBlcnMuanNvbiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9nZW5lcmF0ZS1lbnVtLWVuY29kaW5nLWhl
bHBlcnMuanNvbgppbmRleCA4ZGYxNzcyMDE0MWIzM2ViZDg4OGNlMTAwMTY4NmQ5N2Y1MTkwMjE4
Li5hZGZiZGZjYzMwNGNiYTI1MjVhMWIzNGFkZWJhNjFhZTc3NzlhOWVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3NjcmlwdHMvdGVzdHMvZ2VuZXJhdGUtZW51bS1l
bmNvZGluZy1oZWxwZXJzLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9z
Y3JpcHRzL3Rlc3RzL2dlbmVyYXRlLWVudW0tZW5jb2RpbmctaGVscGVycy5qc29uCkBAIC0xLDE0
ICsxLDEyIEBACiB7CiAgICAgInR5cGVzIjogewotICAgICAgICAiSmF2YVNjcmlwdENvcmUiOiBb
CisgICAgICAgICJUZXN0IjogWwogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1l
IjogIklucHV0UXVldWUiLCAibW9kZSI6ICJTQ0FMQVIiLAogICAgICAgICAgICAgICAgICJmbGFn
cyI6IFsiRU5VTV9DTEFTUyJdLAogICAgICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIkV2ZW50TG9v
cElucHV0IiwgIkxvYWRlck1lbW9pemVkRGF0YSIsICJTY3JpcHRNZW1vaXplZERhdGEiXSwKICAg
ICAgICAgICAgICAgICAiaGVhZGVyIjogInJlcGxheS9Ob25kZXRlcm1pbmlzdGljSW5wdXQuaCIK
LSAgICAgICAgICAgIH0KLSAgICAgICAgXSwKLSAgICAgICAgIldlYkNvcmUiOiBbCisgICAgICAg
ICAgICB9LAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogIk1vdXNlQnV0
dG9uIiwgIm1vZGUiOiAiU0NBTEFSIiwgInN0b3JhZ2UiOiAidW5zaWduZWQiLAogICAgICAgICAg
ICAgICAgICJmbGFncyI6IFsiRU5VTSJdLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2dlbmVyYXRlLWVudW0td2l0aC1ndWFyZC5qc29uIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2dlbmVyYXRlLWVudW0t
d2l0aC1ndWFyZC5qc29uCmluZGV4IDY4MGUzMjBkZDY2MTcyMzdmMDExOGVhNjE4OTQyMGIwN2Jm
MzM3NDYuLjQ1ZGRjY2NlYWQzMGRmNDJmOTdhYjliMTUwYWNmYjQ5ODgwZGJkZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9nZW5lcmF0ZS1l
bnVtLXdpdGgtZ3VhcmQuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3Nj
cmlwdHMvdGVzdHMvZ2VuZXJhdGUtZW51bS13aXRoLWd1YXJkLmpzb24KQEAgLTcsOSArNywxMSBA
QAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogIlBsYXRmb3JtV2hlZWxF
dmVudCIsICJtb2RlIjogIk9XTkVEIiwKICAgICAgICAgICAgICAgICAiaGVhZGVyIjogInBsYXRm
b3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oIgotICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0K
KyAgICAgICAgXSwKKyAgICAgICAgIlRlc3QiOiBbCiAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgIm5hbWUiOiAiUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UiLCAibW9kZSI6ICJTQ0FMQVIi
LCAic3RvcmFnZSI6ICJ1aW50NjRfdCIsCisgICAgICAgICAgICAgICAgIm5hbWUiOiAiUGxhdGZv
cm1XaGVlbFBoYXNlIiwgIm1vZGUiOiAiU0NBTEFSIiwgInN0b3JhZ2UiOiAidWludDY0X3QiLAog
ICAgICAgICAgICAgICAgICJmbGFncyI6IFsiRU5VTSJdLAogICAgICAgICAgICAgICAgICJndWFy
ZCI6ICJFTkFCTEUoRFVNTVlfRkVBVFVSRSkiLAogICAgICAgICAgICAgICAgICJ2YWx1ZXMiOiBb
IlBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSJdLApAQCAtMjQsNyArMjYsOCBAQAogICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIiIsCiAgICAgICAgICAgICAicXVldWUiOiAiRVZFTlRfTE9P
UCIsCiAgICAgICAgICAgICAibWVtYmVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InBsYXRmb3JtRXZlbnQiLCAidHlwZSI6ICJQbGF0Zm9ybVdoZWVsRXZlbnQiIH0KKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInBsYXRmb3JtRXZlbnQiLCAidHlwZSI6ICJQbGF0Zm9ybVdoZWVs
RXZlbnQiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwaGFzZSIsICJ0eXBlIjogIlBs
YXRmb3JtV2hlZWxQaGFzZSIgfQogICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgXQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2dlbmVy
YXRlLWVudW1zLXdpdGgtc2FtZS1iYXNlLW5hbWUuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9yZXBsYXkvc2NyaXB0cy90ZXN0cy9nZW5lcmF0ZS1lbnVtcy13aXRoLXNhbWUtYmFzZS1uYW1l
Lmpzb24KaW5kZXggZDc3YmRiNjAyZDk4YTJkMjU5YWI3YjMwNDJlZjFiNWRhY2JjM2IzZS4uNGM0
NTIzMDE0YzBlODBmNTRmZjVhZTYzYTMwOGYxYmNjNTQwNWE5MSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3JlcGxheS9zY3JpcHRzL3Rlc3RzL2dlbmVyYXRlLWVudW1zLXdpdGgt
c2FtZS1iYXNlLW5hbWUuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcmVwbGF5L3Nj
cmlwdHMvdGVzdHMvZ2VuZXJhdGUtZW51bXMtd2l0aC1zYW1lLWJhc2UtbmFtZS5qc29uCkBAIC0x
Niw3ICsxNiw3IEBACiAgICAgICAgICAgICAgICAgImhlYWRlciI6ICJyZXBsYXkvUGxhdGZvcm1F
dmVudC5oIgogICAgICAgICAgICAgfQogICAgICAgICBdLAotICAgICAgICAiV2ViQ29yZSI6IFsK
KyAgICAgICAgIlRlc3QiOiBbCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUi
OiAiVHlwZSIsICJtb2RlIjogIlNDQUxBUiIsICJzdG9yYWdlIjogInVpbnQ2NF90IiwKICAgICAg
ICAgICAgICAgICAiZW5jbG9zaW5nX2NsYXNzIjogIkZvcm1EYXRhMSIsCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>