<?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>184450</bug_id>
          
          <creation_ts>2018-04-10 08:59:12 -0700</creation_ts>
          <short_desc>[GLIB] Handle strings containing null characters</short_desc>
          <delta_ts>2018-04-12 00:00:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1413274</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-10 08:59:12 -0700</bug_when>
    <thetext>We should be able to evaluate scripts containing null characters and to handle strings that contains them too. In JavaScript strings are not null-terminated, they can contain null characters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413276</commentid>
    <comment_count>1</comment_count>
      <attachid>337608</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-10 09:07:19 -0700</bug_when>
    <thetext>Created attachment 337608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413325</commentid>
    <comment_count>2</comment_count>
      <attachid>337608</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-10 10:56:21 -0700</bug_when>
    <thetext>Comment on attachment 337608
Patch

EWS are all red</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413606</commentid>
    <comment_count>3</comment_count>
      <attachid>337683</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-11 00:19:21 -0700</bug_when>
    <thetext>Created attachment 337683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413747</commentid>
    <comment_count>4</comment_count>
      <attachid>337683</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-04-11 10:59:50 -0700</bug_when>
    <thetext>Comment on attachment 337683
Patch

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

&gt; Source/JavaScriptCore/API/glib/JSCContext.cpp:670
&gt; + * @length: length of @code, or -1 if @code is a nul-terminated string

I think we usually write &quot;null-terminated.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413949</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-04-11 23:59:51 -0700</bug_when>
    <thetext>Committed r230558: &lt;https://trac.webkit.org/changeset/230558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1413951</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-12 00:00:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/39373359&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337608</attachid>
            <date>2018-04-10 09:07:19 -0700</date>
            <delta_ts>2018-04-11 00:19:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>jsc-strings.diff</filename>
            <type>text/plain</type>
            <size>77513</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5jcHAKaW5kZXggMDdh
NzlhZDk5ZTYuLjk4MWRjODViMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL09wYXF1ZUpTU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09w
YXF1ZUpTU3RyaW5nLmNwcApAQCAtNDIsNiArNDIsMTQgQEAgUmVmUHRyPE9wYXF1ZUpTU3RyaW5n
PiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHJldHVy
biBhZG9wdFJlZihuZXcgT3BhcXVlSlNTdHJpbmcoc3RyaW5nKSk7CiB9CiAKK1JlZlB0cjxPcGFx
dWVKU1N0cmluZz4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShTdHJpbmcmJiBzdHJpbmcpCit7Cisg
ICAgaWYgKHN0cmluZy5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE9wYXF1ZUpTU3RyaW5nKFdURk1vdmUoc3RyaW5nKSkpOworfQor
CiBPcGFxdWVKU1N0cmluZzo6fk9wYXF1ZUpTU3RyaW5nKCkKIHsKICAgICAvLyBtX2NoYXJhY3Rl
cnMgaXMgcHV0IGluIGEgbG9jYWwgaGVyZSB0byBhdm9pZCBhbiBleHRyYSBhdG9taWMgbG9hZC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuaAppbmRleCAyMDgxMzFi
M2I0MS4uZWFhNTUwZjc5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
T3BhcXVlSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpT
U3RyaW5nLmgKQEAgLTUyLDYgKzUyLDcgQEAgc3RydWN0IE9wYXF1ZUpTU3RyaW5nIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPE9wYXF1ZUpTU3RyaW5nPiB7CiAgICAgfQogCiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZlB0cjxPcGFxdWVKU1N0cmluZz4gY3JlYXRlKGNvbnN0
IFN0cmluZyYpOworICAgIHN0YXRpYyBSZWZQdHI8T3BhcXVlSlNTdHJpbmc+IGNyZWF0ZShTdHJp
bmcmJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+T3BhcXVlSlNTdHJpbmcoKTsKIApAQCAt
ODEsNiArODIsMTIgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCisgICAgZXhwbGljaXQgT3Bh
cXVlSlNTdHJpbmcoU3RyaW5nJiYgc3RyaW5nKQorICAgICAgICA6IG1fc3RyaW5nKFdURk1vdmUo
c3RyaW5nKSkKKyAgICAgICAgLCBtX2NoYXJhY3RlcnMobV9zdHJpbmcuaW1wbCgpICYmIG1fc3Ry
aW5nLmlzOEJpdCgpID8gbnVsbHB0ciA6IGNvbnN0X2Nhc3Q8VUNoYXIqPihtX3N0cmluZy5jaGFy
YWN0ZXJzMTYoKSkpCisgICAgeworICAgIH0KKwogICAgIE9wYXF1ZUpTU3RyaW5nKGNvbnN0IExD
aGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgICAgIDogbV9zdHJpbmcoY2hh
cmFjdGVycywgbGVuZ3RoKQogICAgICAgICAsIG1fY2hhcmFjdGVycyhudWxscHRyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuY3BwCmluZGV4IDg3ZjY4YTg4
MjVmLi41YWYxODI3YjFlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9n
bGliL0pTQ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9K
U0NDb250ZXh0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkpTQ1ZpcnR1YWxNYWNo
aW5lUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkpTQ1dyYXBwZXJNYXAuaCIKICNpbmNsdWRlICJKU1Jl
dGFpblB0ci5oIgorI2luY2x1ZGUgIk9wYXF1ZUpTU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL2ds
aWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+CiAKQEAgLTY2
NiwyMCArNjY3LDIyIEBAIEpTQ0NvbnRleHQqIGpzY19jb250ZXh0X2dldF9jdXJyZW50KCkKICAq
IGpzY19jb250ZXh0X2V2YWx1YXRlOgogICogQGNvbnRleHQ6IGEgI0pTQ0NvbnRleHQKICAqIEBj
b2RlOiBhIEphdmFTY3JpcHQgc2NyaXB0IHRvIGV2YWx1YXRlCisgKiBAbGVuZ3RoOiBsZW5ndGgg
b2YgQGNvZGUsIG9yIC0xIGlmIEBjb2RlIGlzIGEgbnVsLXRlcm1pbmF0ZWQgc3RyaW5nCiAgKgog
ICogRXZhbHVhdGUgQGNvZGUgaW4gQGNvbnRleHQuCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVy
IGZ1bGwpOiBhICNKU0NWYWx1ZSByZXByZXNlbnRpbmcgdGhlIGxhc3QgdmFsdWUgZ2VuZXJhdGVk
IGJ5IHRoZSBzY3JpcHQuCiAgKi8KLUpTQ1ZhbHVlKiBqc2NfY29udGV4dF9ldmFsdWF0ZShKU0ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBjb2RlKQorSlNDVmFsdWUqIGpzY19jb250ZXh0
X2V2YWx1YXRlKEpTQ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIGNvZGUsIGdzc2l6ZSBs
ZW5ndGgpCiB7Ci0gICAgcmV0dXJuIGpzY19jb250ZXh0X2V2YWx1YXRlX3dpdGhfc291cmNlX3Vy
aShjb250ZXh0LCBjb2RlLCBudWxscHRyKTsKKyAgICByZXR1cm4ganNjX2NvbnRleHRfZXZhbHVh
dGVfd2l0aF9zb3VyY2VfdXJpKGNvbnRleHQsIGNvZGUsIGxlbmd0aCwgbnVsbHB0cik7CiB9CiAK
IC8qKgogICoganNjX2NvbnRleHRfZXZhbHVhdGVfd2l0aF9zb3VyY2VfdXJpOgogICogQGNvbnRl
eHQ6IGEgI0pTQ0NvbnRleHQKICAqIEBjb2RlOiBhIEphdmFTY3JpcHQgc2NyaXB0IHRvIGV2YWx1
YXRlCisgKiBAbGVuZ3RoOiBsZW5ndGggb2YgQGNvZGUsIG9yIC0xIGlmIEBjb2RlIGlzIGEgbnVs
LXRlcm1pbmF0ZWQgc3RyaW5nCiAgKiBAdXJpOiB0aGUgc291cmNlIFVSSQogICoKICAqIEV2YWx1
YXRlIEBjb2RlIGluIEBjb250ZXh0IHVzaW5nIEB1cmkgYXMgdGhlIHNvdXJjZSBVUkkuIFRoaXMg
aXMgZXhhY3RseSB0aGUgc2FtZSBhcwpAQCAtNjg4LDE0ICs2OTEsMTcgQEAgSlNDVmFsdWUqIGpz
Y19jb250ZXh0X2V2YWx1YXRlKEpTQ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIGNvZGUp
CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBhICNKU0NWYWx1ZSByZXByZXNlbnRp
bmcgdGhlIGxhc3QgdmFsdWUgZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQuCiAgKi8KLUpTQ1ZhbHVl
KiBqc2NfY29udGV4dF9ldmFsdWF0ZV93aXRoX3NvdXJjZV91cmkoSlNDQ29udGV4dCogY29udGV4
dCwgY29uc3QgY2hhciogY29kZSwgY29uc3QgY2hhciogdXJpKQorSlNDVmFsdWUqIGpzY19jb250
ZXh0X2V2YWx1YXRlX3dpdGhfc291cmNlX3VyaShKU0NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBj
aGFyKiBjb2RlLCBnc3NpemUgbGVuZ3RoLCBjb25zdCBjaGFyKiB1cmkpCiB7CiAgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoSlNDX0lTX0NPTlRFWFQoY29udGV4dCksIG51bGxwdHIpOwogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKGNvZGUsIG51bGxwdHIpOwogCi0gICAgSlNWYWx1ZVJlZiBleGNl
cHRpb24gPSBudWxscHRyOwotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBzY3JpcHRKUyhB
ZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29kZSkpOworICAgIGlmIChsZW5n
dGggPCAwKQorICAgICAgICBsZW5ndGggPSBzdHJsZW4oY29kZSk7CisgICAgYXV0byBzY3JpcHQg
PSBTdHJpbmc6OmZyb21VVEY4KGNvZGUsIGxlbmd0aCk7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IHNjcmlwdEpTKEFkb3B0LCBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKFdURk1vdmUoc2Ny
aXB0KSkubGVha1JlZigpKTsKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gc291cmNlVVJJ
ID0gdXJpID8gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcodXJpKSkgOiBudWxs
cHRyOworICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gbnVsbHB0cjsKICAgICBKU1ZhbHVlUmVm
IHJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dC0+cHJpdi0+anNDb250ZXh0LmdldCgp
LCBzY3JpcHRKUy5nZXQoKSwgbnVsbHB0ciwgc291cmNlVVJJLmdldCgpLCAxLCAmZXhjZXB0aW9u
KTsKICAgICBpZiAoanNjQ29udGV4dEhhbmRsZUV4Y2VwdGlvbklmTmVlZGVkKGNvbnRleHQsIGV4
Y2VwdGlvbikpCiAgICAgICAgIHJldHVybiBqc2NfdmFsdWVfbmV3X3VuZGVmaW5lZChjb250ZXh0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dC5oCmluZGV4IGQ1
NzRmZDM1OGQ2Li5lMjE1ZGE3M2QyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9nbGliL0pTQ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNDQ29udGV4dC5oCkBAIC0xMDEsMTEgKzEwMSwxMyBAQCBqc2NfY29udGV4dF9nZXRfY3Vy
cmVudCAgICAgICAgICAgICAgKHZvaWQpOwogCiBKU0NfQVBJIEpTQ1ZhbHVlICoKIGpzY19jb250
ZXh0X2V2YWx1YXRlICAgICAgICAgICAgICAgICAoSlNDQ29udGV4dCAgICAgICAgICpjb250ZXh0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAg
ICAgKmNvZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyICAgICAgICAgKmNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdzc2l6ZSAgICAgICAgICAgICAgbGVuZ3RoKTsKIAogSlNDX0FQSSBKU0NWYWx1ZSAqCiBqc2Nf
Y29udGV4dF9ldmFsdWF0ZV93aXRoX3NvdXJjZV91cmkgKEpTQ0NvbnRleHQgICAgICAgICAqY29u
dGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAg
ICAgICAgICpjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc3Np
emUgICAgICAgICAgICAgIGxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAgICAgICAgICp1cmkpOwogCiBKU0NfQVBJIHZvaWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUuY3BwCmluZGV4IDg0MDUyNTY3YmZhLi5j
NmU3MTU4YTM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pT
Q1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUu
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUg
IkpTQ1ZhbHVlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkpTUmV0YWluUHRyLmgiCisjaW5jbHVkZSAi
T3BhcXVlSlNTdHJpbmcuaCIKICNpbmNsdWRlIDxnb2JqZWN0L2d2YWx1ZWNvbGxlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVl
UHRyLmg+CkBAIC0zMjcsOSArMzI4LDEwIEBAIGdib29sZWFuIGpzY192YWx1ZV90b19ib29sZWFu
KEpTQ1ZhbHVlKiB2YWx1ZSkKIC8qKgogICoganNjX3ZhbHVlX25ld19zdHJpbmc6CiAgKiBAY29u
dGV4dDogYSAjSlNDQ29udGV4dAotICogQHN0cmluZzogKG51bGxhYmxlKTogYSBzdHJpbmcKKyAq
IEBzdHJpbmc6IChudWxsYWJsZSk6IGEgbnVsbC10ZXJtaW5hdGVkIHN0cmluZwogICoKLSAqIENy
ZWF0ZSBhIG5ldyAjSlNDVmFsdWUgZnJvbSBAc3RyaW5nLgorICogQ3JlYXRlIGEgbmV3ICNKU0NW
YWx1ZSBmcm9tIEBzdHJpbmcuIElmIHlvdSBuZWVkIHRvIGNyZWF0ZSBhICNKU0NWYWx1ZSBmcm9t
IGEKKyAqIHN0cmluZyBjb250YWluaW5nIG51bGwgY2hhcmFjdGVycywgdXNlIGpzY192YWx1ZV9u
ZXdfc3RyaW5nX2Zyb21fYnl0ZXMoKSBpbnN0ZWFkLgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogYSAjSlNDVmFsdWUuCiAgKi8KQEAgLTM0Niw2ICszNDgsMjkgQEAgSlNDVmFsdWUq
IGpzY192YWx1ZV9uZXdfc3RyaW5nKEpTQ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIHN0
cmluZykKICAgICByZXR1cm4ganNjQ29udGV4dEdldE9yQ3JlYXRlVmFsdWUoY29udGV4dCwganNT
dHJpbmdWYWx1ZSkubGVha1JlZigpOwogfQogCisvKioKKyAqIGpzY192YWx1ZV9uZXdfc3RyaW5n
X2Zyb21fYnl0ZXM6CisgKiBAY29udGV4dDogYSAjSlNDQ29udGV4dAorICogQGJ5dGVzOiAobnVs
bGFibGUpOiBhICNHQnl0ZXMKKyAqCisgKiBDcmVhdGUgYSBuZXcgI0pTQ1ZhbHVlIGZyb20gQGJ5
dGVzLgorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogYSAjSlNDVmFsdWUuCisgKi8K
K0pTQ1ZhbHVlKiBqc2NfdmFsdWVfbmV3X3N0cmluZ19mcm9tX2J5dGVzKEpTQ0NvbnRleHQqIGNv
bnRleHQsIEdCeXRlcyogYnl0ZXMpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoSlNDX0lT
X0NPTlRFWFQoY29udGV4dCksIG51bGxwdHIpOworCisgICAgaWYgKCFieXRlcykKKyAgICAgICAg
cmV0dXJuIGpzY192YWx1ZV9uZXdfc3RyaW5nKGNvbnRleHQsIG51bGxwdHIpOworCisgICAgZ3Np
emUgZGF0YVNpemU7CisgICAgY29uc3QgYXV0byogZGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIqPihnX2J5dGVzX2dldF9kYXRhKGJ5dGVzLCAmZGF0YVNpemUpKTsKKyAgICBhdXRvIHN0cmlu
ZyA9IFN0cmluZzo6ZnJvbVVURjgoZGF0YSwgZGF0YVNpemUpOworICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBqc1N0cmluZyhBZG9wdCwgT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShXVEZNb3Zl
KHN0cmluZykpLmxlYWtSZWYoKSk7CisgICAgcmV0dXJuIGpzY0NvbnRleHRHZXRPckNyZWF0ZVZh
bHVlKGNvbnRleHQsIEpTVmFsdWVNYWtlU3RyaW5nKGpzY0NvbnRleHRHZXRKU0NvbnRleHQoY29u
dGV4dCksIGpzU3RyaW5nLmdldCgpKSkubGVha1JlZigpOworfQorCiAvKioKICAqIGpzY192YWx1
ZV9pc19zdHJpbmc6CiAgKiBAdmFsdWU6IGEgI0pTQ1ZhbHVlCkBAIC0zNjYsOSArMzkxLDEwIEBA
IGdib29sZWFuIGpzY192YWx1ZV9pc19zdHJpbmcoSlNDVmFsdWUqIHZhbHVlKQogICoganNjX3Zh
bHVlX3RvX3N0cmluZzoKICAqIEB2YWx1ZTogYSAjSlNDVmFsdWUKICAqCi0gKiBDb252ZXJ0IEB2
YWx1ZSB0byBhIHN0cmluZworICogQ29udmVydCBAdmFsdWUgdG8gYSBzdHJpbmcuIFVzZSBqc2Nf
dmFsdWVfdG9fc3RyaW5nX2FzX2J5dGVzKCkgaW5zdGVhZCwgaWYgeW91IG5lZWQgdG8KKyAqIGhh
bmRsZSBzdHJpbmdzIGNvbnRhaW5pbmcgbnVsbCBjaGFyYWN0ZXJzLgogICoKLSAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogYSBzdHJpbmcgcmVzdWx0IG9mIHRoZSBjb252ZXJzaW9uLgorICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBhIG51bC10ZXJtaW5hdGVkIHN0cmluZyByZXN1bHQg
b2YgdGhlIGNvbnZlcnNpb24uCiAgKi8KIGNoYXIqIGpzY192YWx1ZV90b19zdHJpbmcoSlNDVmFs
dWUqIHZhbHVlKQogewpAQCAtMzgwLDEyICs0MDYsNTYgQEAgY2hhcioganNjX3ZhbHVlX3RvX3N0
cmluZyhKU0NWYWx1ZSogdmFsdWUpCiAgICAgaWYgKGpzY0NvbnRleHRIYW5kbGVFeGNlcHRpb25J
Zk5lZWRlZChwcml2LT5jb250ZXh0LmdldCgpLCBleGNlcHRpb24pKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAorICAgIGlmICghanNTdHJpbmcpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CiAgICAgc2l6ZV90IG1heFNpemUgPSBKU1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUo
anNTdHJpbmcuZ2V0KCkpOwogICAgIGF1dG8qIHN0cmluZyA9IHN0YXRpY19jYXN0PGNoYXIqPihn
X21hbGxvYyhtYXhTaXplKSk7Ci0gICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhqc1N0cmluZy5n
ZXQoKSwgc3RyaW5nLCBtYXhTaXplKTsKKyAgICBpZiAoIUpTU3RyaW5nR2V0VVRGOENTdHJpbmco
anNTdHJpbmcuZ2V0KCksIHN0cmluZywgbWF4U2l6ZSkpIHsKKyAgICAgICAgZ19mcmVlKHN0cmlu
Zyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIHJldHVybiBzdHJpbmc7
CiB9CiAKKy8qKgorICoganNjX3ZhbHVlX3RvX3N0cmluZ19hc19ieXRlczoKKyAqIEB2YWx1ZTog
YSAjSlNDVmFsdWUKKyAqCisgKiBDb252ZXJ0IEB2YWx1ZSB0byBhIHN0cmluZyBhbmQgcmV0dXJu
IHRoZSByZXN1bHRzIGFzICNHQnl0ZXMuIFRoaXMgaXMgbmVlZGVkCisgKiB0byBoYW5kbGUgc3Ry
aW5ncyB3aXRoIG51bGwgY2hhcmFjdGVycy4KKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVs
bCk6IGEgI0dCeXRlcyB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIGNvbnZlcnNpb24uCisgKi8KK0dC
eXRlcyoganNjX3ZhbHVlX3RvX3N0cmluZ19hc19ieXRlcyhKU0NWYWx1ZSogdmFsdWUpCit7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoSlNDX0lTX1ZBTFVFKHZhbHVlKSwgbnVsbHB0cik7CisK
KyAgICBKU0NWYWx1ZVByaXZhdGUqIHByaXYgPSB2YWx1ZS0+cHJpdjsKKyAgICBKU1ZhbHVlUmVm
IGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzU3Ry
aW5nKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGpzY0NvbnRleHRHZXRKU0NvbnRleHQocHJp
di0+Y29udGV4dC5nZXQoKSksIHByaXYtPmpzVmFsdWUsICZleGNlcHRpb24pKTsKKyAgICBpZiAo
anNjQ29udGV4dEhhbmRsZUV4Y2VwdGlvbklmTmVlZGVkKHByaXYtPmNvbnRleHQuZ2V0KCksIGV4
Y2VwdGlvbikpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCFqc1N0cmluZykK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBzaXplX3QgbWF4U2l6ZSA9IEpTU3RyaW5n
R2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShqc1N0cmluZy5nZXQoKSk7CisgICAgaWYgKG1heFNp
emUgPT0gMSkKKyAgICAgICAgcmV0dXJuIGdfYnl0ZXNfbmV3X3N0YXRpYygiIiwgMCk7CisKKyAg
ICBhdXRvKiBzdHJpbmcgPSBzdGF0aWNfY2FzdDxjaGFyKj4oZmFzdE1hbGxvYyhtYXhTaXplKSk7
CisgICAgYXV0byBzdHJpbmdTaXplID0gSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhqc1N0cmluZy5n
ZXQoKSwgc3RyaW5nLCBtYXhTaXplKTsKKyAgICBpZiAoIXN0cmluZ1NpemUpIHsKKyAgICAgICAg
ZmFzdEZyZWUoc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAg
Ly8gSWdub3JlIHRoZSBudWxsIGNoYXJhY3RlciBhZGRlZCBieSBKU1N0cmluZ0dldFVURjhDU3Ry
aW5nLgorICAgIHJldHVybiBnX2J5dGVzX25ld193aXRoX2ZyZWVfZnVuYyhzdHJpbmcsIHN0cmlu
Z1NpemUgLSAxLCBmYXN0RnJlZSwgc3RyaW5nKTsKK30KKwogLyoqCiAgKiBqc2NfdmFsdWVfbmV3
X2FycmF5OgogICogQGNvbnRleHQ6IGEgI0pTQ0NvbnRleHQKQEAgLTU0MSw3ICs2MTEsNyBAQCBn
Ym9vbGVhbiBqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKEpTQ1ZhbHVlKiB2YWx1ZSwg
Y29uc3QgY2hhciogbmFtZSkKICAgICBKU0NWYWx1ZVByaXZhdGUqIHByaXYgPSB2YWx1ZS0+cHJp
djsKICAgICAvLyBXZSB1c2UgZXZhbHVhdGUgaGVyZSBhbmQgbm90IGdldF92YWx1ZSBiZWNhdXNl
IGNsYXNzZXMgYXJlIG5vdCBuZWNlc3NhcmlseSBhIHByb3BlcnR5IG9mIHRoZSBnbG9iYWwgb2Jq
ZWN0LgogICAgIC8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82
LjAvaW5kZXguaHRtbCNzZWMtZ2xvYmFsLWVudmlyb25tZW50LXJlY29yZHMKLSAgICBHUmVmUHRy
PEpTQ1ZhbHVlPiBjb25zdHJ1Y3RvciA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShw
cml2LT5jb250ZXh0LmdldCgpLCBuYW1lKSk7CisgICAgR1JlZlB0cjxKU0NWYWx1ZT4gY29uc3Ry
dWN0b3IgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUocHJpdi0+Y29udGV4dC5nZXQo
KSwgbmFtZSwgLTEpKTsKICAgICBhdXRvKiBqc0NvbnRleHQgPSBqc2NDb250ZXh0R2V0SlNDb250
ZXh0KHByaXYtPmNvbnRleHQuZ2V0KCkpOwogCiAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ1Zh
bHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUuaAppbmRleCAx
MGVkOTY2NDA2NC4uYzYzNTlmOTY4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvZ2xpYi9KU0NWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xp
Yi9KU0NWYWx1ZS5oCkBAIC0xMDgsMTIgKzEwOCwxOSBAQCBKU0NfQVBJIEpTQ1ZhbHVlICoKIGpz
Y192YWx1ZV9uZXdfc3RyaW5nICAgICAgICAgICAgICAgICAgICAgIChKU0NDb250ZXh0ICAgICAg
ICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICAgICAgICAgICAqc3RyaW5nKTsKIAorSlNDX0FQSSBKU0NWYWx1ZSAqCitq
c2NfdmFsdWVfbmV3X3N0cmluZ19mcm9tX2J5dGVzICAgICAgICAgICAoSlNDQ29udGV4dCAgICAg
ICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0J5dGVzICAgICAgICAgICAgICAgKmJ5dGVzKTsKKwogSlNDX0FQSSBnYm9vbGVhbgoganNj
X3ZhbHVlX2lzX3N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgKEpTQ1ZhbHVlICAgICAgICAg
ICAgICp2YWx1ZSk7CiAKIEpTQ19BUEkgY2hhciAqCiBqc2NfdmFsdWVfdG9fc3RyaW5nICAgICAg
ICAgICAgICAgICAgICAgICAoSlNDVmFsdWUgICAgICAgICAgICAgKnZhbHVlKTsKIAorSlNDX0FQ
SSBHQnl0ZXMgKgoranNjX3ZhbHVlX3RvX3N0cmluZ19hc19ieXRlcyAgICAgICAgICAgICAgKEpT
Q1ZhbHVlICAgICAgICAgICAgICp2YWx1ZSk7CisKIEpTQ19BUEkgSlNDVmFsdWUgKgoganNjX3Zh
bHVlX25ld19hcnJheSAgICAgICAgICAgICAgICAgICAgICAgKEpTQ0NvbnRleHQgICAgICAgICAg
ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdU
eXBlICAgICAgICAgICAgICAgICBmaXJzdF9pdGVtX3R5cGUsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvZG9jcy9qc2MtZ2xpYi00LjAtc2VjdGlvbnMudHh0IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL2RvY3MvanNjLWdsaWItNC4wLXNlY3Rpb25z
LnR4dAppbmRleCBjMmUzZTNlNzlhYS4uMTBkNzI5MmVmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9kb2NzL2pzYy1nbGliLTQuMC1zZWN0aW9ucy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL2RvY3MvanNjLWdsaWItNC4wLXNlY3Rp
b25zLnR4dApAQCAtNzMsOCArNzMsMTAgQEAganNjX3ZhbHVlX25ld19ib29sZWFuCiBqc2NfdmFs
dWVfaXNfYm9vbGVhbgoganNjX3ZhbHVlX3RvX2Jvb2xlYW4KIGpzY192YWx1ZV9uZXdfc3RyaW5n
Citqc2NfdmFsdWVfbmV3X3N0cmluZ19mcm9tX2J5dGVzCiBqc2NfdmFsdWVfaXNfc3RyaW5nCiBq
c2NfdmFsdWVfdG9fc3RyaW5nCitqc2NfdmFsdWVfdG9fc3RyaW5nX2FzX2J5dGVzCiBqc2NfdmFs
dWVfbmV3X2FycmF5CiBqc2NfdmFsdWVfbmV3X2FycmF5X2Zyb21fZ2FycmF5CiBqc2NfdmFsdWVf
aXNfYXJyYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGZhNWY2NTVlNGU5Li42MWY2MjQ4
YjIyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTgtMDQt
MTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtHTElCXSBIYW5kbGUgc3RyaW5ncyBjb250YWluaW5nIG51bGwgY2hhcmFjdGVycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NDUwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugc2hvdWxkIGJlIGFi
bGUgdG8gZXZhbHVhdGUgc2NyaXB0cyBjb250YWluaW5nIG51bGwgY2hhcmFjdGVycyBhbmQgdG8g
aGFuZGxlIHN0cmluZ3MgdGhhdCBjb250YWlucyB0aGVtCisgICAgICAgIHRvby4gSW4gSmF2YVNj
cmlwdCBzdHJpbmdzIGFyZSBub3QgbnVsbC10ZXJtaW5hdGVkLCB0aGV5IGNhbiBjb250YWluIG51
bGwgY2hhcmFjdGVycy4gVGhpcyBwYXRjaCBhZGRzIGEgbGVuZ3RoCisgICAgICAgIHBhcmFtZXRl
ciB0byBqc2NfY29udGV4dF92YWx1YXRlKCkgdG8gcGFzcyB0aGUgc2NyaXB0IGxlbmd0aCAob3Ig
LTEgaWYgaXQncyBudWxsIHRlcm1pbmF0ZWQpLCBhbmQgbmV3IGZ1bmN0aW9ucworICAgICAgICBq
c2NfdmFsdWVfbmV3X3N0cmluZ19mcm9tX2J5dGVzKCkgYW5kIGpzY192YWx1ZV90b19zdHJpbmdf
YXNfYnl0ZXMoKSB1c2luZyBHQnl0ZXMgdG8gc3RvcmUgc3RyaW5ncyB0aGF0IG1pZ2h0CisgICAg
ICAgIGNvbnRhaW4gbnVsbCBjaGFyYWN0ZXJzLgorCisgICAgICAgICogQVBJL09wYXF1ZUpTU3Ry
aW5nLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTU3RyaW5nOjpjcmVhdGUpOiBBZGQgYSBjcmVhdGUg
Y29uc3RydWN0b3IgdGhhdCB0YWtlcyB0aGUgU3RyaW5nLgorICAgICAgICAqIEFQSS9PcGFxdWVK
U1N0cmluZy5oOgorICAgICAgICAoT3BhcXVlSlNTdHJpbmc6Ok9wYXF1ZUpTU3RyaW5nKTogQWRk
IGEgY29uc3RydWN0b3IgdGhhdCB0YWtlcyB0aGUgU3RyaW5nLgorICAgICAgICAqIEFQSS9nbGli
L0pTQ0NvbnRleHQuY3BwOgorICAgICAgICAoanNjX2NvbnRleHRfZXZhbHVhdGUpOiBBZGQgbGVu
Z3RoIHBhcmFtZXRlci4KKyAgICAgICAgKGpzY19jb250ZXh0X2V2YWx1YXRlX3dpdGhfc291cmNl
X3VyaSk6IERpdHRvLgorICAgICAgICAqIEFQSS9nbGliL0pTQ0NvbnRleHQuaDoKKyAgICAgICAg
KiBBUEkvZ2xpYi9KU0NWYWx1ZS5jcHA6CisgICAgICAgIChqc2NfdmFsdWVfbmV3X3N0cmluZ19m
cm9tX2J5dGVzKToKKyAgICAgICAgKGpzY192YWx1ZV90b19zdHJpbmcpOgorICAgICAgICAoanNj
X3ZhbHVlX3RvX3N0cmluZ19hc19ieXRlcyk6CisgICAgICAgIChqc2NfdmFsdWVfb2JqZWN0X2lz
X2luc3RhbmNlX29mKTogUGFzcyBsZW5ndGggdG8gZXZhbHVhdGUuCisgICAgICAgICogQVBJL2ds
aWIvSlNDVmFsdWUuaDoKKyAgICAgICAgKiBBUEkvZ2xpYi9kb2NzL2pzYy1nbGliLTQuMC1zZWN0
aW9ucy50eHQ6CisKIDIwMTgtMDQtMDkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBFeGVjdXRpbmcga25vd24gZWRnZSB0eXBlcyBtYXkgcmV2ZWFsIGEgY29udHJh
ZGljdGlvbiBjYXVzaW5nIHVzIHRvIGVtaXQgYW4gZXhpdCBhdCBhIG5vZGUgdGhhdCBpcyBub3Qg
YWxsb3dlZCB0byBleGl0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggNmMwMDM5MDQ3MWIuLjVlMDkwYjg3MTcwIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTgtMDQt
MTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtHTElCXSBIYW5kbGUgc3RyaW5ncyBjb250YWluaW5nIG51bGwgY2hhcmFjdGVycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NDUwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgY2FzZSBm
b3Igc3RyaW5ncyB3aXRoIG51bGwgY2hhcmFjdGVycyBhbmQgdXBkYXRlIGFsbCBjYWxscyB0byBl
dmFsdWF0ZSB0byBwYXNzIHRoZSBzY3JpcHQgbGVuZ3RoLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3Jt
V1BFLmNtYWtlOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUv
Z2xpYi9UZXN0SlNDLmNwcDoKKyAgICAgICAgKHRlc3RKU0NCYXNpYyk6CisgICAgICAgICh0ZXN0
SlNDRnVuY3Rpb24pOgorICAgICAgICAodGVzdEpTQ09iamVjdCk6CisgICAgICAgICh0ZXN0SlND
Q2xhc3MpOgorICAgICAgICAodGVzdEpTQ1Byb3RvdHlwZXMpOgorICAgICAgICAodGVzdEpTQ0V4
Y2VwdGlvbnMpOgorICAgICAgICAodGVzdEpTQ1Byb21pc2VzKToKKyAgICAgICAgKHRlc3RKU0NH
YXJiYWdlQ29sbGVjdG9yKToKKyAgICAgICAgKHRlc3RKU0NXZWFrVmFsdWUpOgorICAgICAgICAo
dGVzdHNKU0NWaXJ0dWFsTWFjaGluZSk6CisgICAgICAgICh0ZXN0c0pTQ0F1dG9jbGVhbnVwcyk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9nbGliL3Njcmlw
dC5qczogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0RP
TUVsZW1lbnRUZXN0LmNwcDoKKyAgICAgICAgKERPTUVsZW1lbnRUZXN0Ojp0ZXN0QXV0b0ZpbGwp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9FZGl0b3JUZXN0LmNw
cDoKKyAgICAgICAgKFdlYktpdFdlYkVkaXRvclRlc3Q6OnRlc3RTZWxlY3Rpb25DaGFuZ2VkKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcDoK
KyAgICAgICAgKFdlYktpdEZyYW1lVGVzdDo6dGVzdEphdmFTY3JpcHRWYWx1ZXMpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcDoK
KyAgICAgICAgKGNvbnNvbGVNZXNzYWdlU2VudENhbGxiYWNrKToKKyAgICAgICAgKG1ldGhvZENh
bGxDYWxsYmFjayk6CisKIDIwMTgtMDQtMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIyMjc3Mik6IFtHVEtdW1dQRV0g
V2ViUHJvY2VzcyBmcm9tIFdlYktpdEd0aysgMi4xOS45eCBTSUdTRVZzIGluIFdlYktpdDo6V2Vi
UHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgYXQgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOjExMjcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3Jt
R1RLLmNtYWtlCmluZGV4IDNmNmJiOTgzZWYzLi4yNzQxMDM1OTQ0ZSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xMTksNiArMTE5LDcgQEAgbGlzdChBUFBFTkQgVGVz
dFdURl9TT1VSQ0VTCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dsaWIvV29y
a1F1ZXVlR0xpYi5jcHAKICkKIAorYWRkX2RlZmluaXRpb25zKC1EV0VCS0lUX1NSQ19ESVI9IiR7
Q01BS0VfU09VUkNFX0RJUn0iKQogYWRkX2V4ZWN1dGFibGUoVGVzdEpTQyAke1RFU1RXRUJLSVRB
UElfRElSfS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9nbGliL1Rlc3RKU0MuY3BwKQogdGFyZ2V0X2xp
bmtfbGlicmFyaWVzKFRlc3RKU0MKICAgICAke0dMSUJfTElCUkFSSUVTfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggYWYzZjJjMTI3ZTkuLjg1Y2RmMGY5OTRkIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV1BFLmNtYWtlCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTg3LDYgKzg3LDkgQEAgYWRkX3Rl
c3QoVGVzdFdlYktpdCAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9X
ZWJLaXQvVGVzdFdlYktpdCkKIHNldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RXZWJLaXQgUFJPUEVS
VElFUyBUSU1FT1VUIDYwKQogc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFRlc3RXZWJLaXQgUFJPUEVS
VElFUyBSVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VU
UFVUX0RJUkVDVE9SWX0vV2ViS2l0KQogCisjIFRlc3RKU0MKKworYWRkX2RlZmluaXRpb25zKC1E
V0VCS0lUX1NSQ19ESVI9IiR7Q01BS0VfU09VUkNFX0RJUn0iKQogYWRkX2V4ZWN1dGFibGUoVGVz
dEpTQyAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9nbGliL1Rlc3RK
U0MuY3BwKQogdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFRlc3RKU0MKICAgICAke0dMSUJfTElCUkFS
SUVTfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29y
ZS9nbGliL1Rlc3RKU0MuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0
Q29yZS9nbGliL1Rlc3RKU0MuY3BwCmluZGV4IDcyOWZkNmNmMjI1Li4zZDBhZTc5NDViNSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9nbGliL1Rl
c3RKU0MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUv
Z2xpYi9UZXN0SlNDLmNwcApAQCAtMTQwLDExICsxNDAsMTEgQEAgc3RhdGljIHZvaWQgdGVzdEpT
Q0Jhc2ljKCkKICAgICAgICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMih2YWx1
ZTEuZ2V0KCkpLCA9PSwgMjUpOwogICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4
dC5nZXQoKSwgInZhbHVlMSIsIHZhbHVlMS5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NW
YWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0
KCksICJ2YWx1ZTEiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0
R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAidmFsdWUxIiwgLTEpKTsK
ICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKHJlc3VsdC5nZXQoKSA9PSB2YWx1ZTEuZ2V0KCkpOwogCi0gICAgICAgIHJlc3VsdCA9IGFk
b3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0Mi5nZXQoKSwgInZhbHVlMSIpKTsK
KyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQy
LmdldCgpLCAidmFsdWUxIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0
KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9nZXRfY29udGV4dChyZXN1bHQu
Z2V0KCkpID09IGNvbnRleHQyLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFs
dWVfaXNfdW5kZWZpbmVkKHJlc3VsdC5nZXQoKSkpOwpAQCAtMTU1LDcgKzE1NSw3IEBAIHN0YXRp
YyB2b2lkIHRlc3RKU0NCYXNpYygpCiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lz
X3VuZGVmaW5lZChyZXN1bHQuZ2V0KCkpKTsKIAogICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFs
dWUoY29udGV4dDMuZ2V0KCksICJ2YWx1ZTEiLCB2YWx1ZTEuZ2V0KCkpOwotICAgICAgICByZXN1
bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dDMuZ2V0KCksICJ2YWx1
ZTEiKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShj
b250ZXh0My5nZXQoKSwgInZhbHVlMSIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVz
dWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfZ2V0X2NvbnRleHQo
cmVzdWx0LmdldCgpKSA9PSBjb250ZXh0My5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X2ZhbHNl
KHJlc3VsdC5nZXQoKSA9PSB2YWx1ZTEuZ2V0KCkpOwpAQCAtMTY5LDE4ICsxNjksMTggQEAgc3Rh
dGljIHZvaWQgdGVzdEpTQ0Jhc2ljKCkKICAgICAgICAgY2hlY2tlci53YXRjaChjb250ZXh0Lmdl
dCgpKTsKICAgICAgICAgRXhjZXB0aW9uSGFuZGxlciBleGNlcHRpb25IYW5kbGVyKGNvbnRleHQu
Z2V0KCkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiMiArIDIiKSk7CisgICAgICAgIEdS
ZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShj
b250ZXh0LmdldCgpLCAiMiArIDIiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3Vs
dC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2dldF9jb250ZXh0KHJl
c3VsdC5nZXQoKSkgPT0gY29udGV4dC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNj
X3ZhbHVlX2lzX251bWJlcihyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21waW50
KGpzY192YWx1ZV90b19pbnQzMihyZXN1bHQuZ2V0KCkpLCA9PSwgNCk7CiAKLSAgICAgICAgR1Jl
ZlB0cjxKU0NWYWx1ZT4gcmVzdWx0MiA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShj
b250ZXh0LmdldCgpLCAiMiArIDIiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3Vs
dDIgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgIjIgKyAy
IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQyLmdldCgpKTsKICAgICAgICAg
Z19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfZ2V0X2NvbnRleHQocmVzdWx0Mi5nZXQoKSkgPT0gY29u
dGV4dC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUocmVzdWx0LmdldCgpID09IHJlc3Vs
dDIuZ2V0KCkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdDMgPSBhZG9wdEdS
ZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgIjMgKyAxIikpOworICAgICAg
ICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQzID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1
YXRlKGNvbnRleHQuZ2V0KCksICIzICsgMSIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2go
cmVzdWx0My5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2dldF9jb250
ZXh0KHJlc3VsdDMuZ2V0KCkpID09IGNvbnRleHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKHJlc3VsdC5nZXQoKSA9PSByZXN1bHQzLmdldCgpKTsKQEAgLTE4OSw3ICsxODksNyBAQCBz
dGF0aWMgdm9pZCB0ZXN0SlNDQmFzaWMoKQogICAgICAgICByZXN1bHQgPSBudWxscHRyOwogICAg
ICAgICByZXN1bHQyID0gbnVsbHB0cjsKICAgICAgICAgcmVzdWx0MyA9IG51bGxwdHI7Ci0gICAg
ICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdDQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoY29udGV4dC5nZXQoKSwgIjIgKyAyIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVl
PiByZXN1bHQ0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCks
ICIyICsgMiIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0NC5nZXQoKSk7CiAg
ICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2dldF9jb250ZXh0KHJlc3VsdDQuZ2V0KCkp
ID09IGNvbnRleHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19u
dW1iZXIocmVzdWx0NC5nZXQoKSkpOwpAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyB2b2lkIHRl
c3RKU0NCYXNpYygpCiAgICAgICAgIGNoZWNrZXIud2F0Y2goY29udGV4dC5nZXQoKSk7CiAgICAg
ICAgIEV4Y2VwdGlvbkhhbmRsZXIgZXhjZXB0aW9uSGFuZGxlcihjb250ZXh0LmdldCgpKTsKIAot
ICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRf
ZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgIjIgKyAyIikpOworICAgICAgICBHUmVmUHRyPEpTQ1Zh
bHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQo
KSwgIjIgKyAyIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwog
ICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9nZXRfY29udGV4dChyZXN1bHQuZ2V0KCkp
ID09IGNvbnRleHQuZ2V0KCkpOwogICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4
dC5nZXQoKSwgImZvdXIiLCByZXN1bHQuZ2V0KCkpOwpAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRp
YyB2b2lkIHRlc3RKU0NCYXNpYygpCiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVf
dG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgNCk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUocmVz
dWx0LmdldCgpID09IHZhbHVlLmdldCgpKTsKIAotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZm91ciIpKTsKKyAgICAgICAgdmFs
dWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImZvdXIi
LCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19h
c3NlcnRfdHJ1ZShyZXN1bHQuZ2V0KCkgPT0gdmFsdWUuZ2V0KCkpOwogICAgIH0KQEAgLTIyNiw3
ICsyMjYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDQmFzaWMoKQogICAgICAgICBjaGVja2VyLndh
dGNoKGNvbnRleHQuZ2V0KCkpOwogICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGV4Y2VwdGlvbkhh
bmRsZXIoY29udGV4dC5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0
ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJ0d28gPSAy
OyBmb3VyID0gdHdvICsgdHdvIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQg
PSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgInR3byA9IDI7
IGZvdXIgPSB0d28gKyB0d28iLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5n
ZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2dldF9jb250ZXh0KHJlc3Vs
dC5nZXQoKSkgPT0gY29udGV4dC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3Zh
bHVlX2lzX251bWJlcihyZXN1bHQuZ2V0KCkpKTsKQEAgLTI0MiwxMCArMjQyLDUzIEBAIHN0YXRp
YyB2b2lkIHRlc3RKU0NCYXNpYygpCiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0KCkp
OwogICAgICAgICBnX2Fzc2VydF90cnVlKHJlc3VsdC5nZXQoKSA9PSB2YWx1ZS5nZXQoKSk7CiAK
LSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0MiA9IGFkb3B0R1JlZihqc2NfY29udGV4
dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZml2ZSA9IDQiKSk7CisgICAgICAgIEdSZWZQdHI8
SlNDVmFsdWU+IHJlc3VsdDIgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4
dC5nZXQoKSwgImZpdmUgPSA0IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQy
LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShyZXN1bHQyLmdldCgpID09IHZhbHVlLmdl
dCgpKTsKICAgICB9CisKKyAgICB7CisgICAgICAgIExlYWtDaGVja2VyIGNoZWNrZXI7CisgICAg
ICAgIEdSZWZQdHI8SlNDQ29udGV4dD4gY29udGV4dCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9u
ZXcoKSk7CisgICAgICAgIGNoZWNrZXIud2F0Y2goY29udGV4dC5nZXQoKSk7CisgICAgICAgIEV4
Y2VwdGlvbkhhbmRsZXIgZXhjZXB0aW9uSGFuZGxlcihjb250ZXh0LmdldCgpKTsKKworICAgICAg
ICBHVW5pcXVlUHRyPGNoYXI+IHNjcmlwdEZpbGUoZ19idWlsZF9maWxlbmFtZShXRUJLSVRfU1JD
X0RJUiwgIlRvb2xzIiwgIlRlc3RXZWJLaXRBUEkiLCAiVGVzdHMiLCAiSmF2YVNjcmlwdENvcmUi
LCAiZ2xpYiIsICJzY3JpcHQuanMiLCBudWxscHRyKSk7CisgICAgICAgIEdVbmlxdWVPdXRQdHI8
Y2hhcj4gY29udGVudHM7CisgICAgICAgIGdzaXplIGNvbnRlbnRzU2l6ZTsKKyAgICAgICAgZ19h
c3NlcnRfdHJ1ZShnX2ZpbGVfZ2V0X2NvbnRlbnRzKHNjcmlwdEZpbGUuZ2V0KCksICZjb250ZW50
cy5vdXRQdHIoKSwgJmNvbnRlbnRzU2l6ZSwgbnVsbHB0cikpOworICAgICAgICBHUmVmUHRyPEpT
Q1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5n
ZXQoKSwgY29udGVudHMuZ2V0KCksIGNvbnRlbnRzU2l6ZSkpOworICAgICAgICBjaGVja2VyLndh
dGNoKHJlc3VsdC5nZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX3Vu
ZGVmaW5lZChyZXN1bHQuZ2V0KCkpKTsKKworICAgICAgICBHU3RyaW5nKiBleHBlY3RlZCA9IGdf
c3RyaW5nX25ldygiU3RyaW5nIik7CisgICAgICAgIGV4cGVjdGVkID0gZ19zdHJpbmdfYXBwZW5k
X2MoZXhwZWN0ZWQsICdcMCcpOworICAgICAgICBleHBlY3RlZCA9IGdfc3RyaW5nX2FwcGVuZChl
eHBlY3RlZCwgIldpdGgiKTsKKyAgICAgICAgZXhwZWN0ZWQgPSBnX3N0cmluZ19hcHBlbmRfYyhl
eHBlY3RlZCwgJ1wwJyk7CisgICAgICAgIGV4cGVjdGVkID0gZ19zdHJpbmdfYXBwZW5kKGV4cGVj
dGVkLCAiTnVsbCIpOworICAgICAgICBHUmVmUHRyPEdCeXRlcz4gZXhwZWN0ZWRCeXRlcyA9IGFk
b3B0R1JlZihnX3N0cmluZ19mcmVlX3RvX2J5dGVzKGV4cGVjdGVkKSk7CisKKyAgICAgICAgR1Jl
ZlB0cjxKU0NWYWx1ZT4gdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgInRlc3RTdHJpbmdXaXRoTnVsbCgpIiwgLTEpKTsKKyAgICAgICAgY2hlY2tl
ci53YXRjaCh2YWx1ZS5nZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lz
X3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHZhbHVlU3Ry
aW5nKGpzY192YWx1ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnRf
Y21wc3RyKHZhbHVlU3RyaW5nLmdldCgpLCA9PSwgIlN0cmluZyIpOworICAgICAgICBHUmVmUHRy
PEdCeXRlcz4gdmFsdWVCeXRlcyA9IGFkb3B0R1JlZihqc2NfdmFsdWVfdG9fc3RyaW5nX2FzX2J5
dGVzKHZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoZ19ieXRlc19lcXVhbCh2
YWx1ZUJ5dGVzLmdldCgpLCBleHBlY3RlZEJ5dGVzLmdldCgpKSk7CisKKyAgICAgICAgdmFsdWUg
PSBhZG9wdEdSZWYoanNjX3ZhbHVlX25ld19zdHJpbmdfZnJvbV9ieXRlcyhjb250ZXh0LmdldCgp
LCBleHBlY3RlZEJ5dGVzLmdldCgpKSk7CisgICAgICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0
KCkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19zdHJpbmcodmFsdWUuZ2V0
KCkpKTsKKyAgICAgICAgdmFsdWVTdHJpbmcucmVzZXQoanNjX3ZhbHVlX3RvX3N0cmluZyh2YWx1
ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF9jbXBzdHIodmFsdWVTdHJpbmcuZ2V0KCksID09
LCAiU3RyaW5nIik7CisgICAgICAgIHZhbHVlQnl0ZXMgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX3Rv
X3N0cmluZ19hc19ieXRlcyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGdf
Ynl0ZXNfZXF1YWwodmFsdWVCeXRlcy5nZXQoKSwgZXhwZWN0ZWRCeXRlcy5nZXQoKSkpOworCisg
ICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCAicyIsIHZhbHVlLmdl
dCgpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2dldF92YWx1ZShj
b250ZXh0LmdldCgpLCAicyIpKTsKKyAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkp
OworICAgICAgICBnX2Fzc2VydF90cnVlKHJlc3VsdC5nZXQoKSA9PSB2YWx1ZS5nZXQoKSk7Cisg
ICAgfQogfQogCiBzdGF0aWMgdm9pZCB0ZXN0SlNDVHlwZXMoKQpAQCAtNTMwLDcgKzU3Myw3IEBA
IHN0YXRpYyB2b2lkIHRlc3RKU0NGdW5jdGlvbigpCiAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+
IGZ1bmN0aW9uID0gYWRvcHRHUmVmKGpzY192YWx1ZV9uZXdfZnVuY3Rpb24oY29udGV4dC5nZXQo
KSwgImZvbyIsIEdfQ0FMTEJBQ0soZm9vKSwgbnVsbHB0ciwgbnVsbHB0ciwgIEdfVFlQRV9JTlQs
IDEsIEdfVFlQRV9JTlQpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChmdW5jdGlvbi5nZXQoKSk7
CiAgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCAiZm9vIiwgZnVu
Y3Rpb24uZ2V0KCkpOwotICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdS
ZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImZvbygyMDApIikpOworICAg
ICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoY29udGV4dC5nZXQoKSwgImZvbygyMDApIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53
YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19u
dW1iZXIocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVf
dG9faW50MzIocmVzdWx0LmdldCgpKSwgPT0sIDQwMCk7CkBAIC01NDYsMTAgKzU4OSwxMCBAQCBz
dGF0aWMgdm9pZCB0ZXN0SlNDRnVuY3Rpb24oKQogICAgICAgICBjaGVja2VyLndhdGNoKGNvbnRl
eHQuZ2V0KCkpOwogICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGV4Y2VwdGlvbkhhbmRsZXIoY29u
dGV4dC5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZnVuY3Rpb24gPSBhZG9w
dEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImZvbyA9IGZ1bmN0aW9u
KG4pIHsgcmV0dXJuIG4gKiAyOyB9IikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBmdW5j
dGlvbiA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZm9v
ID0gZnVuY3Rpb24obikgeyByZXR1cm4gbiAqIDI7IH0iLCAtMSkpOwogICAgICAgICBjaGVja2Vy
LndhdGNoKGZ1bmN0aW9uLmdldCgpKTsKIAotICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1
bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImZvbygy
MDApIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNj
X2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImZvbygyMDApIiwgLTEpKTsKICAgICAg
ICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpz
Y192YWx1ZV9pc19udW1iZXIocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGlu
dChqc2NfdmFsdWVfdG9faW50MzIocmVzdWx0LmdldCgpKSwgPT0sIDQwMCk7CkBAIC01NjgsMTQg
KzYxMSwxNCBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDRnVuY3Rpb24oKQogICAgICAgICBHUmVmUHRy
PEpTQ1ZhbHVlPiBmdW5jdGlvbiA9IGFkb3B0R1JlZihqc2NfdmFsdWVfbmV3X2Z1bmN0aW9uKGNv
bnRleHQuZ2V0KCksICJjYWxsYmFjayIsIEdfQ0FMTEJBQ0soY2FsbGJhY2spLCBudWxscHRyLCBu
dWxscHRyLCBHX1RZUEVfTk9ORSwgMSwgSlNDX1RZUEVfVkFMVUUpKTsKICAgICAgICAgY2hlY2tl
ci53YXRjaChmdW5jdGlvbi5nZXQoKSk7CiAgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShj
b250ZXh0LmdldCgpLCAiY2FsbGJhY2siLCBmdW5jdGlvbi5nZXQoKSk7Ci0gICAgICAgIEdSZWZQ
dHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAidmFyIHJlc3VsdCA9IDA7IGNhbGxiYWNrKGZ1bmN0aW9uKG4peyByZXN1bHQg
PSBuICogMjsgfSk7IHJlc3VsdCIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0
ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJ2YXIgcmVz
dWx0ID0gMDsgY2FsbGJhY2soZnVuY3Rpb24obil7IHJlc3VsdCA9IG4gKiAyOyB9KTsgcmVzdWx0
IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBn
X2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0LmdldCgpKSk7CiAgICAgICAg
IGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIocmVzdWx0LmdldCgpKSwgPT0sIDQw
MCk7CiAKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNv
bnRleHQuZ2V0KCksICJyZXN1bHQgPSAwIikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYo
anNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgInJlc3VsdCA9IDAiLCAtMSkpOwog
ICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7Ci0gICAgICAgIHJlc3VsdCA9IGFk
b3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAicmVzdWx0IikpOwor
ICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5n
ZXQoKSwgInJlc3VsdCIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgp
KTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHJlc3VsdC5nZXQo
KSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBpbnQoanNjX3ZhbHVlX3RvX2ludDMyKHJlc3VsdC5n
ZXQoKSksID09LCAwKTsKQEAgLTU4NCw3ICs2MjcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDRnVu
Y3Rpb24oKQogICAgICAgICBjaGVja2VyLndhdGNoKGRibC5nZXQoKSk7CiAgICAgICAgIEdSZWZQ
dHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9mdW5jdGlvbl9jYWxsKGZ1
bmN0aW9uLmdldCgpLCBKU0NfVFlQRV9WQUxVRSwgZGJsLmdldCgpLCBHX1RZUEVfTk9ORSkpOwog
ICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKLSAgICAgICAgcmVzdWx0ID0gYWRv
cHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJyZXN1bHQiKSk7Cisg
ICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0Lmdl
dCgpLCAicmVzdWx0IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkp
OwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0LmdldCgp
KSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIocmVzdWx0Lmdl
dCgpKSwgPT0sIDQwMCk7CkBAIC02MDEsNyArNjQ0LDcgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0Z1
bmN0aW9uKCkKICAgICAgICAgICAgICIgICAgdmFyIHJlc3VsdCA9IDA7XG4iCiAgICAgICAgICAg
ICAiICAgIGZvciAodmFyIGkgaW4gYXJyYXkpIHsgcmVzdWx0ICs9IGFycmF5W2ldOyB9XG4iCiAg
ICAgICAgICAgICAiICAgIHJldHVybiByZXN1bHQ7XG4iCi0gICAgICAgICAgICAifSIpKTsKKyAg
ICAgICAgICAgICJ9IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChmdW5jdGlvbi5nZXQo
KSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChmdW5jdGlvbi5n
ZXQoKSkpOwogCkBAIC02MzMsNyArNjc2LDcgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0Z1bmN0aW9u
KCkKICAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZnVuY3Rpb24gPSBhZG9wdEdSZWYoanNjX3Zh
bHVlX25ld19mdW5jdGlvbihjb250ZXh0LmdldCgpLCAic3VtRnVuY3Rpb24iLCBHX0NBTExCQUNL
KHN1bUZ1bmN0aW9uKSwgbnVsbHB0ciwgbnVsbHB0ciwgR19UWVBFX0lOVCwgMSwgR19UWVBFX1BU
Ul9BUlJBWSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKGZ1bmN0aW9uLmdldCgpKTsKICAgICAg
ICAganNjX2NvbnRleHRfc2V0X3ZhbHVlKGNvbnRleHQuZ2V0KCksICJzdW1GdW5jdGlvbiIsIGZ1
bmN0aW9uLmdldCgpKTsKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gdmFsdWUgPSBhZG9wdEdS
ZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgInN1bUZ1bmN0aW9uKFsyLDQs
Nl0pIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB2YWx1ZSA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAic3VtRnVuY3Rpb24oWzIsNCw2XSkiLCAt
MSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3Nl
cnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNz
ZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgMTIpOwpAQCAt
NjU4LDcgKzcwMSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NPYmplY3QoKQogICAgICAgICBjaGVj
a2VyLndhdGNoKGNvbnRleHQuZ2V0KCkpOwogICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGV4Y2Vw
dGlvbkhhbmRsZXIoY29udGV4dC5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4g
Zm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJjbGFz
cyBGb28geyBmb28obikgeyByZXR1cm4gbiAqIDI7IH0gfTsgZm9vID0gbmV3IEZvbzsiKSk7Cisg
ICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZvbyA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFs
dWF0ZShjb250ZXh0LmdldCgpLCAiY2xhc3MgRm9vIHsgZm9vKG4pIHsgcmV0dXJuIG4gKiAyOyB9
IH07IGZvbyA9IG5ldyBGb287IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChmb28uZ2V0
KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19vYmplY3QoZm9vLmdldCgp
KSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0YW5jZV9v
Zihmb28uZ2V0KCksICJGb28iKSk7CkBAIC02NzUsNyArNzE4LDcgQEAgc3RhdGljIHZvaWQgdGVz
dEpTQ09iamVjdCgpCiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX3VuZGVmaW5l
ZChyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfZGlkX3Rocm93KGV4Y2VwdGlvbkhh
bmRsZXIsIGRpZFRocm93KTsKIAotICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBjb25zdHJ1Y3Rv
ciA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiRm9vIikp
OworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBjb25zdHJ1Y3RvciA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiRm9vIiwgLTEpKTsKICAgICAgICAgY2hl
Y2tlci53YXRjaChjb25zdHJ1Y3Rvci5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNj
X3ZhbHVlX2lzX2NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yLmdldCgpKSk7CiAKQEAgLTY5MCwxMiAr
NzMzLDEyIEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NPYmplY3QoKQogICAgICAgICBnX2Fzc2VydF9j
bXBpbnQoanNjX3ZhbHVlX3RvX2ludDMyKHJlc3VsdC5nZXQoKSksID09LCA2MDApOwogCiAgICAg
ICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCAiZm9vMiIsIGZvby5nZXQo
KSk7Ci0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiZm9vMiBpbnN0YW5jZW9mIEZvbyIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRv
cHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmb28yIGluc3RhbmNl
b2YgRm9vIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAg
ICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwog
ICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQoKSkp
OwogCi0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiZm9vMi5mb28oNTAwKSIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmb28yLmZvbyg1MDApIiwgLTEp
KTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2Vy
dF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNz
ZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIocmVzdWx0LmdldCgpKSwgPT0sIDEwMDApOwpA
QCAtNzE4LDI2ICs3NjEsMjYgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ09iamVjdCgpCiAgICAgICAg
IGpzY192YWx1ZV9vYmplY3RfZGVmaW5lX3Byb3BlcnR5X2RhdGEob2JqZWN0LmdldCgpLCAidmFs
Iiwgc3RhdGljX2Nhc3Q8SlNDVmFsdWVQcm9wZXJ0eUZsYWdzPigwKSwgcHJvcGVydHkuZ2V0KCkp
OwogICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwgImYiLCBvYmpl
Y3QuZ2V0KCkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLnZhbDsiKSk7CisgICAgICAg
IEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRl
KGNvbnRleHQuZ2V0KCksICJmLnZhbDsiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZh
bHVlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZh
bHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIo
dmFsdWUuZ2V0KCkpLCA9PSwgMjUpOwogCiAgICAgICAgIGJvb2wgZGlkVGhyb3cgPSBmYWxzZTsK
ICAgICAgICAgZ19hc3NlcnRfdGhyb3dfYmVnaW4oZXhjZXB0aW9uSGFuZGxlciwgZGlkVGhyb3cp
OwotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0
LmdldCgpLCAiJ3VzZSBzdHJpY3QnOyBmLnZhbCA9IDMyOyIpKTsKKyAgICAgICAgdmFsdWUgPSBh
ZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgIid1c2Ugc3RyaWN0
JzsgZi52YWwgPSAzMjsiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgp
KTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfdW5kZWZpbmVkKHZhbHVlLmdl
dCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2RpZF90aHJvdyhleGNlcHRpb25IYW5kbGVyLCBkaWRU
aHJvdyk7CiAKLSAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUo
Y29udGV4dC5nZXQoKSwgImYucHJvcGVydHlJc0VudW1lcmFibGUoJ3ZhbCcpOyIpKTsKKyAgICAg
ICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwg
ImYucHJvcGVydHlJc0VudW1lcmFibGUoJ3ZhbCcpOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIu
d2F0Y2godmFsdWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19i
b29sZWFuKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX3Rv
X2Jvb2xlYW4odmFsdWUuZ2V0KCkpID09IEZBTFNFKTsKIAotICAgICAgICB2YWx1ZSA9IGFkb3B0
R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZGVsZXRlIGYudmFsOyIp
KTsKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4
dC5nZXQoKSwgImRlbGV0ZSBmLnZhbDsiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZh
bHVlLmdldCgpKTsKLSAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVh
dGUoY29udGV4dC5nZXQoKSwgImYudmFsOyIpKTsKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYo
anNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYudmFsOyIsIC0xKSk7CiAgICAg
ICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpz
Y192YWx1ZV9pc19udW1iZXIodmFsdWUuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21waW50
KGpzY192YWx1ZV90b19pbnQzMih2YWx1ZS5nZXQoKSksID09LCAyNSk7CkBAIC03NTEsMTkgKzc5
NCwxOSBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDT2JqZWN0KCkKICAgICAgICAgcHJvcGVydHkgPSBh
ZG9wdEdSZWYoanNjX3ZhbHVlX25ld19udW1iZXIoY29udGV4dC5nZXQoKSwgMzIpKTsKICAgICAg
ICAgY2hlY2tlci53YXRjaChwcm9wZXJ0eS5nZXQoKSk7CiAgICAgICAgIGpzY192YWx1ZV9vYmpl
Y3RfZGVmaW5lX3Byb3BlcnR5X2RhdGEob2JqZWN0LmdldCgpLCAidmFsMiIsIHN0YXRpY19jYXN0
PEpTQ1ZhbHVlUHJvcGVydHlGbGFncz4oSlNDX1ZBTFVFX1BST1BFUlRZX0VOVU1FUkFCTEUgfCBK
U0NfVkFMVUVfUFJPUEVSVFlfV1JJVEFCTEUpLCBwcm9wZXJ0eS5nZXQoKSk7Ci0gICAgICAgIHZh
bHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLnZh
bDI7IikpOworICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShj
b250ZXh0LmdldCgpLCAiZi52YWwyOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFs
dWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIodmFs
dWUuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMih2
YWx1ZS5nZXQoKSksID09LCAzMik7CiAKLSAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2Nv
bnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgIid1c2Ugc3RyaWN0JzsgZi52YWwyID0gNDU7
IikpOworICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiJ3VzZSBzdHJpY3QnOyBmLnZhbDIgPSA0NTsiLCAtMSkpOwogICAgICAgICBj
aGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKLSAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNj
X2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYudmFsMjsiKSk7CisgICAgICAgIHZh
bHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLnZh
bDI7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaCh2YWx1ZS5nZXQoKSk7CiAgICAgICAg
IGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251bWJlcih2YWx1ZS5nZXQoKSkpOwogICAgICAg
ICBnX2Fzc2VydF9jbXBpbnQoanNjX3ZhbHVlX3RvX2ludDMyKHZhbHVlLmdldCgpKSwgPT0sIDQ1
KTsKIAotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiZi5wcm9wZXJ0eUlzRW51bWVyYWJsZSgndmFsMicpOyIpKTsKKyAgICAgICAg
dmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYu
cHJvcGVydHlJc0VudW1lcmFibGUoJ3ZhbDInKTsiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndh
dGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfYm9v
bGVhbih2YWx1ZS5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19i
b29sZWFuKHZhbHVlLmdldCgpKSA9PSBUUlVFKTsKQEAgLTc3MSw3ICs4MTQsNyBAQCBzdGF0aWMg
dm9pZCB0ZXN0SlNDT2JqZWN0KCkKICAgICAgICAgcHJvcGVydHkgPSBhZG9wdEdSZWYoanNjX3Zh
bHVlX25ld19udW1iZXIoY29udGV4dC5nZXQoKSwgMTI1KSk7CiAgICAgICAgIGNoZWNrZXIud2F0
Y2gocHJvcGVydHkuZ2V0KCkpOwogICAgICAgICBqc2NfdmFsdWVfb2JqZWN0X2RlZmluZV9wcm9w
ZXJ0eV9kYXRhKG9iamVjdC5nZXQoKSwgInZhbDMiLCBzdGF0aWNfY2FzdDxKU0NWYWx1ZVByb3Bl
cnR5RmxhZ3M+KEpTQ19WQUxVRV9QUk9QRVJUWV9DT05GSUdVUkFCTEUgfCBKU0NfVkFMVUVfUFJP
UEVSVFlfV1JJVEFCTEUpLCBwcm9wZXJ0eS5nZXQoKSk7Ci0gICAgICAgIHZhbHVlID0gYWRvcHRH
UmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLnZhbDM7IikpOworICAg
ICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgp
LCAiZi52YWwzOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0KCkpOwog
ICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIodmFsdWUuZ2V0KCkpKTsK
ICAgICAgICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMih2YWx1ZS5nZXQoKSks
ID09LCAxMjUpOwpAQCAtNzc5LDE0ICs4MjIsMTQgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ09iamVj
dCgpCiAgICAgICAgIHByb3BlcnR5ID0gYWRvcHRHUmVmKGpzY192YWx1ZV9uZXdfbnVtYmVyKGNv
bnRleHQuZ2V0KCksIDE1MCkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHByb3BlcnR5LmdldCgp
KTsKICAgICAgICAganNjX3ZhbHVlX29iamVjdF9kZWZpbmVfcHJvcGVydHlfZGF0YShvYmplY3Qu
Z2V0KCksICJ2YWwzIiwgc3RhdGljX2Nhc3Q8SlNDVmFsdWVQcm9wZXJ0eUZsYWdzPihKU0NfVkFM
VUVfUFJPUEVSVFlfQ09ORklHVVJBQkxFKSwgcHJvcGVydHkuZ2V0KCkpOwotICAgICAgICB2YWx1
ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi52YWwz
OyIpKTsKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgImYudmFsMzsiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVl
LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVl
LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIodmFs
dWUuZ2V0KCkpLCA9PSwgMTUwKTsKIAotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZGVsZXRlIGYudmFsMzsiKSk7CisgICAgICAg
IHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJk
ZWxldGUgZi52YWwzOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0KCkp
OwotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0
LmdldCgpLCAiZi52YWwzOyIpKTsKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRl
eHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYudmFsMzsiLCAtMSkpOwogICAgICAgICBjaGVj
a2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVf
aXNfdW5kZWZpbmVkKHZhbHVlLmdldCgpKSk7CiAKQEAgLTk0NCwxMSArOTg3LDExIEBAIHN0YXRp
YyB2b2lkIHRlc3RKU0NDbGFzcygpCiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lz
X2NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yLmdldCgpKSk7CiAgICAgICAgIGpzY19jb250ZXh0X3Nl
dF92YWx1ZShjb250ZXh0LmdldCgpLCBqc2NfY2xhc3NfZ2V0X25hbWUoanNjQ2xhc3MpLCBjb25z
dHJ1Y3Rvci5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZm9vID0gYWRvcHRH
UmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmID0gbmV3IEZvbygpOyIp
KTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0
X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmID0gbmV3IEZvbygpOyIsIC0xKSk7CiAgICAgICAg
IGNoZWNrZXIud2F0Y2goZm9vLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFs
dWVfaXNfb2JqZWN0KGZvby5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1
ZV9vYmplY3RfaXNfaW5zdGFuY2Vfb2YoZm9vLmdldCgpLCBqc2NfY2xhc3NfZ2V0X25hbWUoanNj
Q2xhc3MpKSk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiBpbnN0YW5jZW9mIEZvbzsiKSk7
CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4
dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiBpbnN0YW5jZW9mIEZvbzsiLCAtMSkpOwogICAg
ICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUo
anNjX3ZhbHVlX2lzX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3Ry
dWUoanNjX3ZhbHVlX3RvX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CkBAIC05NTksMTkgKzEwMDIs
MTkgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0NsYXNzKCkKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShq
c2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGlu
dChqc2NfdmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgMCk7CiAKLSAgICAgICAgR1Jl
ZlB0cjxKU0NWYWx1ZT4gdmFsdWUyID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNv
bnRleHQuZ2V0KCksICJmLmdldEZvbygpIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB2
YWx1ZTIgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYu
Z2V0Rm9vKCkiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlMi5nZXQoKSk7CiAg
ICAgICAgIGdfYXNzZXJ0X3RydWUodmFsdWUuZ2V0KCkgPT0gdmFsdWUyLmdldCgpKTsKIAogICAg
ICAgICBqc2NfY2xhc3NfYWRkX21ldGhvZChqc2NDbGFzcywgInNldEZvbyIsIEdfQ0FMTEJBQ0so
c2V0Rm9vKSwgbnVsbHB0ciwgbnVsbHB0ciwgR19UWVBFX05PTkUsIDEsIEdfVFlQRV9JTlQpOwog
ICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9pbnZva2VfbWV0aG9k
KGZvby5nZXQoKSwgInNldEZvbyIsIEdfVFlQRV9JTlQsIDI1LCBHX1RZUEVfTk9ORSkpOwogICAg
ICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7Ci0gICAgICAgIHZhbHVlID0gYWRvcHRH
UmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLmdldEZvbygpIikpOwor
ICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0Lmdl
dCgpLCAiZi5nZXRGb28oKSIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0
KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIodmFsdWUuZ2V0
KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMih2YWx1ZS5n
ZXQoKSksID09LCAyNSk7CiAKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0
X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLnNldEZvbyg0NSkiKSk7CisgICAgICAgIHJlc3Vs
dCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5zZXRG
b28oNDUpIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAg
ICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2ludm9rZV9tZXRob2QoZm9v
LmdldCgpLCAiZ2V0Rm9vIiwgR19UWVBFX05PTkUpKTsKICAgICAgICAgY2hlY2tlci53YXRjaCh2
YWx1ZS5nZXQoKSk7CkBAIC05ODMsMjggKzEwMjYsMjggQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0Ns
YXNzKCkKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfY29uc3RydWN0b3IoY29u
c3RydWN0b3IyLmdldCgpKSk7CiAgICAgICAgIGpzY192YWx1ZV9vYmplY3Rfc2V0X3Byb3BlcnR5
KGNvbnN0cnVjdG9yLmdldCgpLCAiQ3JlYXRlV2l0aEZvbyIsIGNvbnN0cnVjdG9yMi5nZXQoKSk7
CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZm9vMiA9IGFkb3B0R1JlZihqc2NfY29udGV4
dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIgPSBuZXcgRm9vLkNyZWF0ZVdpdGhGb28oNDIp
OyIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZm9vMiA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIgPSBuZXcgRm9vLkNyZWF0ZVdpdGhGb28o
NDIpOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2goZm9vMi5nZXQoKSk7CiAgICAgICAg
IGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChmb28yLmdldCgpKSk7CiAgICAgICAg
IGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0YW5jZV9vZihmb28yLmdldCgp
LCBqc2NfY2xhc3NfZ2V0X25hbWUoanNjQ2xhc3MpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2ZhbHNl
KGZvby5nZXQoKSA9PSBmb28yLmdldCgpKTsKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpz
Y19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMiBpbnN0YW5jZW9mIEZvbzsiKSk7
CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0
LmdldCgpLCAiZjIgaW5zdGFuY2VvZiBGb287IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRj
aChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19ib29s
ZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19i
b29sZWFuKHJlc3VsdC5nZXQoKSkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2Nv
bnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYyIGluc3RhbmNlb2YgRm9vLkNyZWF0ZVdp
dGhGb287IikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVh
dGUoY29udGV4dC5nZXQoKSwgImYyIGluc3RhbmNlb2YgRm9vLkNyZWF0ZVdpdGhGb287IiwgLTEp
KTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2Vy
dF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fz
c2VydF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogCiAgICAgICAg
IGpzY19jbGFzc19hZGRfcHJvcGVydHkoanNjQ2xhc3MsICJmb28iLCBHX1RZUEVfSU5ULCBHX0NB
TExCQUNLKGdldEZvbyksIEdfQ0FMTEJBQ0soc2V0Rm9vKSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0g
ICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0
KCksICJmMi5mb28iKSk7CisgICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2
YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMi5mb28iLCAtMSkpOwogICAgICAgICBjaGVja2VyLndh
dGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVt
YmVyKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9f
aW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgNDIpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYo
anNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYyLmZvbyA9IDUyIikpOworICAg
ICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQo
KSwgImYyLmZvbyA9IDUyIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0
KCkpOwotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiZjIuZm9vIikpOworICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIuZm9vIiwgLTEpKTsKICAgICAgICAgY2hl
Y2tlci53YXRjaCh2YWx1ZS5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVl
X2lzX251bWJlcih2YWx1ZS5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBpbnQoanNjX3Zh
bHVlX3RvX2ludDMyKHZhbHVlLmdldCgpKSwgPT0sIDUyKTsKQEAgLTEwNDMsNyArMTA4Niw3IEBA
IHN0YXRpYyB2b2lkIHRlc3RKU0NDbGFzcygpCiAgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1
ZShjb250ZXh0LmdldCgpLCBqc2NfY2xhc3NfZ2V0X25hbWUoanNjQ2xhc3MpLCBjb25zdHJ1Y3Rv
ci5nZXQoKSk7CiAgICAgICAgIGpzY19jbGFzc19hZGRfcHJvcGVydHkoanNjQ2xhc3MsICJzaWJs
aW5nIiwgR19UWVBFX1BPSU5URVIsIEdfQ0FMTEJBQ0soZ2V0U2libGluZyksIEdfQ0FMTEJBQ0so
c2V0U2libGluZyksIG51bGxwdHIsIG51bGxwdHIpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFs
dWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgp
LCAiZjEgPSBuZXcgRm9vKCk7IGYyID0gbmV3IEZvbygpOyBmMi5zaWJsaW5nID0gZjEiKSk7Cisg
ICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9l
dmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjEgPSBuZXcgRm9vKCk7IGYyID0gbmV3IEZvbygpOyBm
Mi5zaWJsaW5nID0gZjEiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQo
KSk7CiAKICAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZjEgPSBhZG9wdEdSZWYoanNjX2NvbnRl
eHRfZ2V0X3ZhbHVlKGNvbnRleHQuZ2V0KCksICJmMSIpKTsKQEAgLTEwNTMsMTIgKzEwOTYsMTIg
QEAgc3RhdGljIHZvaWQgdGVzdEpTQ0NsYXNzKCkKICAgICAgICAgY2hlY2tlci53YXRjaChmMi5n
ZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChmMi5nZXQo
KSkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY19j
b250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMi5zaWJsaW5nIikpOworICAgICAgICBH
UmVmUHRyPEpTQ1ZhbHVlPiB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShj
b250ZXh0LmdldCgpLCAiZjIuc2libGluZyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2go
dmFsdWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKHZhbHVlLmdldCgpID09IGYxLmdl
dCgpKTsKIAogICAgICAgICBqc2NfdmFsdWVfb2JqZWN0X3NldF9wcm9wZXJ0eShmMS5nZXQoKSwg
InNpYmxpbmciLCBmMi5nZXQoKSk7Ci0gICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250
ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMS5zaWJsaW5nIikpOworICAgICAgICB2YWx1
ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjEuc2li
bGluZyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0KCkpOwogICAgICAg
ICBnX2Fzc2VydF90cnVlKHZhbHVlLmdldCgpID09IGYyLmdldCgpKTsKICAgICB9CkBAIC0xMDg1
LDE4ICsxMTI4LDE4IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NDbGFzcygpCiAgICAgICAgIGdfYXNz
ZXJ0X3RydWUoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0YW5jZV9vZihmb28uZ2V0KCksIGpzY19j
bGFzc19nZXRfbmFtZShqc2NDbGFzcykpKTsKIAogICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFs
dWUoY29udGV4dC5nZXQoKSwgImYiLCBmb28uZ2V0KCkpOwotICAgICAgICBHUmVmUHRyPEpTQ1Zh
bHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQo
KSwgImYgaW5zdGFuY2VvZiBGb287IikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1
bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYgaW5z
dGFuY2VvZiBGb287IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkp
OwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQo
KSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5n
ZXQoKSkpOwogCi0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0
ZShjb250ZXh0LmdldCgpLCAiZi5mb28iKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5mb28iLCAtMSkpOwogICAgICAg
ICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNj
X3ZhbHVlX2lzX251bWJlcihyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21waW50
KGpzY192YWx1ZV90b19pbnQzMihyZXN1bHQuZ2V0KCkpLCA9PSwgMjUpOwogCiAgICAgICAgIHNl
dEZvbyhmLCA0Mik7Ci0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFs
dWF0ZShjb250ZXh0LmdldCgpLCAiZi5mb28iKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1Jl
Zihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5mb28iLCAtMSkpOwogICAg
ICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUo
anNjX3ZhbHVlX2lzX251bWJlcihyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21w
aW50KGpzY192YWx1ZV90b19pbnQzMihyZXN1bHQuZ2V0KCkpLCA9PSwgNDIpOwpAQCAtMTExOCwy
MyArMTE2MSwyMyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDQ2xhc3MoKQogICAgICAgICBnX2Fzc2Vy
dF9mYWxzZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKGZvby5nZXQoKSwganNjX2Ns
YXNzX2dldF9uYW1lKGJhekNsYXNzKSkpOwogCiAgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1
ZShjb250ZXh0LmdldCgpLCAiYnoiLCBiYXouZ2V0KCkpOwotICAgICAgICByZXN1bHQgPSBhZG9w
dEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImJ6IGluc3RhbmNlb2Yg
QmF6OyIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRl
KGNvbnRleHQuZ2V0KCksICJieiBpbnN0YW5jZW9mIEJhejsiLCAtMSkpOwogICAgICAgICBjaGVj
a2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVl
X2lzX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3Zh
bHVlX3RvX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CiAKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRH
UmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJieiBpbnN0YW5jZW9mIEZv
bzsiKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShj
b250ZXh0LmdldCgpLCAiYnogaW5zdGFuY2VvZiBGb287IiwgLTEpKTsKICAgICAgICAgY2hlY2tl
ci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9p
c19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9mYWxzZShqc2NfdmFs
dWVfdG9fYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsKIAotICAgICAgICByZXN1bHQgPSBhZG9wdEdS
ZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYgaW5zdGFuY2VvZiBCYXo7
IikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgImYgaW5zdGFuY2VvZiBCYXo7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53
YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19i
b29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9mYWxzZShqc2NfdmFsdWVf
dG9fYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsKIAogICAgICAgICBqc2NfdmFsdWVfb2JqZWN0X3Nl
dF9wcm9wZXJ0eShiYXouZ2V0KCksICJmb28iLCBmb28uZ2V0KCkpOwotICAgICAgICByZXN1bHQg
PSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImJ6LmZvbyIp
KTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRl
eHQuZ2V0KCksICJiei5mb28iLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5n
ZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUocmVzdWx0LmdldCgpID09IGZvby5nZXQoKSk7
CiAgICAgfQpAQCAtMTE2Miw3ICsxMjA1LDcgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0NsYXNzKCkK
IAogICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwgImYxIiwgZm9v
LmdldCgpKTsKICAgICAgICAganNjX2NvbnRleHRfc2V0X3ZhbHVlKGNvbnRleHQuZ2V0KCksICJm
MiIsIGZvby5nZXQoKSk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0
R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjEgPT09IGYyOyIpKTsK
KyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0
X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMSA9PT0gZjI7IiwgLTEpKTsKICAgICAgICAgY2hl
Y2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1
ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192
YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwpAQCAtMTE3MCw3ICsxMjEzLDcgQEAgc3Rh
dGljIHZvaWQgdGVzdEpTQ0NsYXNzKCkKICAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcHJvcGVy
dHkgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX25ld19udW1iZXIoY29udGV4dC5nZXQoKSwgNTApKTsK
ICAgICAgICAgY2hlY2tlci53YXRjaChwcm9wZXJ0eS5nZXQoKSk7CiAgICAgICAgIGpzY192YWx1
ZV9vYmplY3Rfc2V0X3Byb3BlcnR5KGZvby5nZXQoKSwgIm4iLCBwcm9wZXJ0eS5nZXQoKSk7Ci0g
ICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0Lmdl
dCgpLCAiZjEubiIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2
YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMS5uIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRj
aChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1i
ZXIocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9f
aW50MzIocmVzdWx0LmdldCgpKSwgPT0sIDUwKTsKQEAgLTExOTEsNyArMTIzNCw3IEBAIHN0YXRp
YyB2b2lkIHRlc3RKU0NDbGFzcygpCiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lz
X2NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yLmdldCgpKSk7CiAgICAgICAgIGpzY19jb250ZXh0X3Nl
dF92YWx1ZShjb250ZXh0LmdldCgpLCBqc2NfY2xhc3NfZ2V0X25hbWUoanNjQ2xhc3MpLCBjb25z
dHJ1Y3Rvci5nZXQoKSk7CiAgICAgICAgIGpzY19jbGFzc19hZGRfcHJvcGVydHkoanNjQ2xhc3Ms
ICJmb28iLCBHX1RZUEVfSU5ULCBHX0NBTExCQUNLKGdldEZvbyksIEdfQ0FMTEJBQ0soc2V0Rm9v
KSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZvbyA9IGFk
b3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28o
KTsiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZvbyA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28oKTsiLCAtMSkpOwogICAg
ICAgICBjaGVja2VyLndhdGNoKGZvby5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNj
X3ZhbHVlX2lzX29iamVjdChmb28uZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2Nf
dmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKGZvby5nZXQoKSwganNjX2NsYXNzX2dldF9uYW1l
KGpzY0NsYXNzKSkpOwpAQCAtMTIwMCwxMyArMTI0MywxMyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlND
Q2xhc3MoKQogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAganNj
X3ZhbHVlX29iamVjdF9zZXRfcHJvcGVydHkoZm9vLmdldCgpLCAiZm9vIiwgdmFsdWUuZ2V0KCkp
OwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5fX2xvb2t1cEdldHRlcl9fKCdmb28nKS5j
YWxsKGYpIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYo
anNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYuX19sb29rdXBHZXR0ZXJfXygn
Zm9vJykuY2FsbChmKSIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgp
KTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZSh2YWx1ZS5nZXQoKSA9PSByZXN1bHQuZ2V0KCkpOwog
CiAgICAgICAgIGJvb2wgZGlkVGhyb3cgPSBmYWxzZTsKICAgICAgICAgZ19hc3NlcnRfdGhyb3df
YmVnaW4oZXhjZXB0aW9uSGFuZGxlciwgZGlkVGhyb3cpOwotICAgICAgICByZXN1bHQgPSBhZG9w
dEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYuX19sb29rdXBHZXR0
ZXJfXygnZm9vJykuY2FsbCh7fSkiKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5fX2xvb2t1cEdldHRlcl9fKCdmb28n
KS5jYWxsKHt9KSIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsK
ICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfdW5kZWZpbmVkKHJlc3VsdC5nZXQo
KSkpOwogICAgICAgICBnX2Fzc2VydF9kaWRfdGhyb3coZXhjZXB0aW9uSGFuZGxlciwgZGlkVGhy
b3cpOwpAQCAtMTIyOCw3ICsxMjcxLDcgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0NsYXNzKCkKICAg
ICAgICAganNjX2NvbnRleHRfc2V0X3ZhbHVlKGNvbnRleHQuZ2V0KCksIGpzY19jbGFzc19nZXRf
bmFtZShqc2NDbGFzcyksIGNvbnN0cnVjdG9yLmdldCgpKTsKICAgICAgICAgYm9vbCBkaWRUaHJv
dyA9IGZhbHNlOwogICAgICAgICBnX2Fzc2VydF90aHJvd19iZWdpbihleGNlcHRpb25IYW5kbGVy
LCBkaWRUaHJvdyk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZvbyA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28oKTsiKSk7Cisg
ICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZvbyA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFs
dWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28oKTsiLCAtMSkpOwogICAgICAgICBjaGVj
a2VyLndhdGNoKGZvby5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lz
X3VuZGVmaW5lZChmb28uZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfZGlkX3Rocm93KGV4Y2Vw
dGlvbkhhbmRsZXIsIGRpZFRocm93KTsKQEAgLTEyNTcsMTUgKzEzMDAsMTUgQEAgc3RhdGljIHZv
aWQgdGVzdEpTQ0NsYXNzKCkKIAogICAgICAgICBib29sIGRpZFRocm93ID0gZmFsc2U7CiAgICAg
ICAgIGdfYXNzZXJ0X3Rocm93X2JlZ2luKGV4Y2VwdGlvbkhhbmRsZXIsIGRpZFRocm93KTsKLSAg
ICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1
YXRlKGNvbnRleHQuZ2V0KCksICJmID0gbmV3IEZvbygpOyIpKTsKKyAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4gZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0
KCksICJmID0gbmV3IEZvbygpOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2goZm9vLmdl
dCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfdW5kZWZpbmVkKGZvby5n
ZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9kaWRfdGhyb3coZXhjZXB0aW9uSGFuZGxlciwgZGlk
VGhyb3cpOwogCi0gICAgICAgIGZvbyA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShj
b250ZXh0LmdldCgpLCAiZiA9IG5ldyB3ay5Gb28oKTsiKSk7CisgICAgICAgIGZvbyA9IGFkb3B0
R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyB3ay5Gb28o
KTsiLCAtMSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19vYmplY3QoZm9v
LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0
YW5jZV9vZihmb28uZ2V0KCksICJ3ay5Gb28iKSk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+
IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAi
ZiBpbnN0YW5jZW9mIHdrLkZvbzsiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3Vs
dCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiBpbnN0
YW5jZW9mIHdrLkZvbzsiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQo
KSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX2Jvb2xlYW4ocmVzdWx0Lmdl
dCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX3RvX2Jvb2xlYW4ocmVzdWx0
LmdldCgpKSk7CkBAIC0xMjc2LDI2ICsxMzE5LDI2IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NDbGFz
cygpCiAgICAgICAgIGpzY192YWx1ZV9vYmplY3Rfc2V0X3Byb3BlcnR5KGNvbnN0cnVjdG9yLmdl
dCgpLCAiQ3JlYXRlV2l0aEZvbyIsIGNvbnN0cnVjdG9yMi5nZXQoKSk7CiAKICAgICAgICAgZ19h
c3NlcnRfdGhyb3dfYmVnaW4oZXhjZXB0aW9uSGFuZGxlciwgZGlkVGhyb3cpOwotICAgICAgICBH
UmVmUHRyPEpTQ1ZhbHVlPiBmb28yID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNv
bnRleHQuZ2V0KCksICJmMiA9IG5ldyBGb28uQ3JlYXRlV2l0aEZvbyg0Mik7IikpOworICAgICAg
ICBHUmVmUHRyPEpTQ1ZhbHVlPiBmb28yID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRl
KGNvbnRleHQuZ2V0KCksICJmMiA9IG5ldyBGb28uQ3JlYXRlV2l0aEZvbyg0Mik7IiwgLTEpKTsK
ICAgICAgICAgY2hlY2tlci53YXRjaChmb28yLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1
ZShqc2NfdmFsdWVfaXNfdW5kZWZpbmVkKGZvbzIuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRf
ZGlkX3Rocm93KGV4Y2VwdGlvbkhhbmRsZXIsIGRpZFRocm93KTsKIAotICAgICAgICBmb28yID0g
YWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMiA9IG5ldyB3
ay5Gb28uQ3JlYXRlV2l0aEZvbyg0Mik7IikpOworICAgICAgICBmb28yID0gYWRvcHRHUmVmKGpz
Y19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMiA9IG5ldyB3ay5Gb28uQ3JlYXRl
V2l0aEZvbyg0Mik7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChmb28yLmdldCgpKTsK
ICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfb2JqZWN0KGZvbzIuZ2V0KCkpKTsK
ICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKGZv
bzIuZ2V0KCksICJ3ay5Gb28iKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX29i
amVjdF9pc19pbnN0YW5jZV9vZihmb28yLmdldCgpLCAid2suRm9vLkNyZWF0ZVdpdGhGb28iKSk7
CiAgICAgICAgIGdfYXNzZXJ0X2ZhbHNlKGZvby5nZXQoKSA9PSBmb28yLmdldCgpKTsKLSAgICAg
ICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCks
ICJmMiBpbnN0YW5jZW9mIHdrLkZvbzsiKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIgaW5zdGFuY2VvZiB3ay5Gb287
IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBn
X2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAg
ICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwotICAg
ICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQo
KSwgImYyIGluc3RhbmNlb2Ygd2suRm9vLkNyZWF0ZVdpdGhGb287IikpOworICAgICAgICByZXN1
bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYyIGlu
c3RhbmNlb2Ygd2suRm9vLkNyZWF0ZVdpdGhGb287IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53
YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19i
b29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90
b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNj
X2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYyLmZvbyIpKTsKKyAgICAgICAgcmVz
dWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMi5m
b28iLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAg
IGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251bWJlcihyZXN1bHQuZ2V0KCkpKTsKICAgICAg
ICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMihyZXN1bHQuZ2V0KCkpLCA9PSwg
NDIpOwpAQCAtMTMwNywxNSArMTM1MCwxNSBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDQ2xhc3MoKQog
ICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9vYmplY3RfaXNfaW5zdGFuY2Vfb2YoZm9v
My5nZXQoKSwgIndrLkZvby5DcmVhdGVXaXRoRm9vIikpOwogICAgICAgICBnX2Fzc2VydF9mYWxz
ZShmb28yLmdldCgpID09IGZvbzMuZ2V0KCkpOwogICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFs
dWUoY29udGV4dC5nZXQoKSwgImYzIiwgZm9vMy5nZXQoKSk7Ci0gICAgICAgIHJlc3VsdCA9IGFk
b3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjMgaW5zdGFuY2Vv
ZiB3ay5Gb287IikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoY29udGV4dC5nZXQoKSwgImYzIGluc3RhbmNlb2Ygd2suRm9vOyIsIC0xKSk7CiAgICAg
ICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShq
c2NfdmFsdWVfaXNfYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1
ZShqc2NfdmFsdWVfdG9fYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsKLSAgICAgICAgcmVzdWx0ID0g
YWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMyBpbnN0YW5j
ZW9mIHdrLkZvby5DcmVhdGVXaXRoRm9vOyIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMyBpbnN0YW5jZW9mIHdrLkZv
by5DcmVhdGVXaXRoRm9vOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0Lmdl
dCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfYm9vbGVhbihyZXN1bHQu
Z2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfdG9fYm9vbGVhbihyZXN1
bHQuZ2V0KCkpKTsKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1
YXRlKGNvbnRleHQuZ2V0KCksICJmMy5mb28iKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1Jl
Zihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjMuZm9vIiwgLTEpKTsKICAg
ICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVl
KGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2Nt
cGludChqc2NfdmFsdWVfdG9faW50MzIocmVzdWx0LmdldCgpKSwgPT0sIDYyKTsKQEAgLTEzNzQs
MTggKzE0MTcsMTggQEAgc3RhdGljIHZvaWQgdGVzdEpTQ1Byb3RvdHlwZXMoKQogICAgICAgICBq
c2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwganNjX2NsYXNzX2dldF9uYW1lKGJh
ckNsYXNzKSwgYmFyQ29uc3RydWN0b3IuZ2V0KCkpOwogICAgICAgICBqc2NfY2xhc3NfYWRkX3By
b3BlcnR5KGJhckNsYXNzLCAiYmFyIiwgR19UWVBFX0lOVCwgR19DQUxMQkFDSyhnZXRCYXIpLCBH
X0NBTExCQUNLKHNldEJhciksIG51bGxwdHIsIG51bGxwdHIpOwogCi0gICAgICAgIEdSZWZQdHI8
SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0
LmdldCgpLCAiZiA9IG5ldyBGb28oKTsgYiA9IG5ldyBCYXIoKTsiKSk7CisgICAgICAgIEdSZWZQ
dHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28oKTsgYiA9IG5ldyBCYXIoKTsiLCAtMSkpOwogICAgICAg
ICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRH
UmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLl9fcHJvdG9fXyA9PSBG
b28ucHJvdG90eXBlIikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRf
ZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYuX19wcm90b19fID09IEZvby5wcm90b3R5cGUiLCAt
MSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNz
ZXJ0X3RydWUoanNjX3ZhbHVlX2lzX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdf
YXNzZXJ0X3RydWUoanNjX3ZhbHVlX3RvX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7Ci0gICAgICAg
IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAi
Yi5fX3Byb3RvX18gPT0gQmFyLnByb3RvdHlwZSIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRH
UmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJiLl9fcHJvdG9fXyA9PSBC
YXIucHJvdG90eXBlIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkp
OwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQo
KSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5n
ZXQoKSkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUo
Y29udGV4dC5nZXQoKSwgImIuX19wcm90b19fLl9fcHJvdG9fXyA9PSBGb28ucHJvdG90eXBlIikp
OworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4
dC5nZXQoKSwgImIuX19wcm90b19fLl9fcHJvdG9fXyA9PSBGb28ucHJvdG90eXBlIiwgLTEpKTsK
ICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2Vy
dF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwpAQCAtMTM5NSwxMSAr
MTQzOCwxMSBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDUHJvdG90eXBlcygpCiAgICAgICAgIGdfYXNz
ZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChmb28uZ2V0KCkpKTsKICAgICAgICAgZ19hc3Nl
cnRfdHJ1ZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKGZvby5nZXQoKSwganNjX2Ns
YXNzX2dldF9uYW1lKGZvb0NsYXNzKSkpOwogICAgICAgICBnX2Fzc2VydF9mYWxzZShqc2NfdmFs
dWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKGZvby5nZXQoKSwganNjX2NsYXNzX2dldF9uYW1lKGJh
ckNsYXNzKSkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVh
dGUoY29udGV4dC5nZXQoKSwgImYgaW5zdGFuY2VvZiBGb28iKSk7CisgICAgICAgIHJlc3VsdCA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiBpbnN0YW5j
ZW9mIEZvbyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsKICAg
ICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsK
ICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfdG9fYm9vbGVhbihyZXN1bHQuZ2V0KCkp
KTsKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRl
eHQuZ2V0KCksICJmIGluc3RhbmNlb2YgQmFyIikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdS
ZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYgaW5zdGFuY2VvZiBCYXIi
LCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdf
YXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CiAgICAgICAg
IGdfYXNzZXJ0X2ZhbHNlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwpAQCAt
MTQxMCwzMCArMTQ1MywzMCBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDUHJvdG90eXBlcygpCiAgICAg
ICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0YW5jZV9vZihiYXIuZ2V0
KCksIGpzY19jbGFzc19nZXRfbmFtZShiYXJDbGFzcykpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1
ZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKGJhci5nZXQoKSwganNjX2NsYXNzX2dl
dF9uYW1lKGZvb0NsYXNzKSkpOwogCi0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiYiBpbnN0YW5jZW9mIEJhciIpKTsKKyAgICAg
ICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCks
ICJiIGluc3RhbmNlb2YgQmFyIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQu
Z2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3Vs
dC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJl
c3VsdC5nZXQoKSkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoY29udGV4dC5nZXQoKSwgImIgaW5zdGFuY2VvZiBGb28iKSk7CisgICAgICAgIHJlc3Vs
dCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiYiBpbnN0
YW5jZW9mIEZvbyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsK
ICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfYm9vbGVhbihyZXN1bHQuZ2V0KCkp
KTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfdG9fYm9vbGVhbihyZXN1bHQuZ2V0
KCkpKTsKIAotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUo
Y29udGV4dC5nZXQoKSwgImIuYmFyID0gMjU7IGIuZm9vID0gNDI7IikpOworICAgICAgICByZXN1
bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImIuYmFy
ID0gMjU7IGIuZm9vID0gNDI7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQu
Z2V0KCkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpz
Y19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJiLmJhciIpKTsKKyAgICAgICAgR1Jl
ZlB0cjxKU0NWYWx1ZT4gdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgImIuYmFyIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaCh2YWx1ZS5n
ZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251bWJlcih2YWx1ZS5n
ZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBpbnQoanNjX3ZhbHVlX3RvX2ludDMyKHZhbHVl
LmdldCgpKSwgPT0sIDI1KTsKLSAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRf
ZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImIuZm9vIikpOworICAgICAgICB2YWx1ZSA9IGFkb3B0
R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiYi5mb28iLCAtMSkpOwog
ICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1
ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2Nt
cGludChqc2NfdmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgNDIpOwogCi0gICAgICAg
IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAi
Yi5tdWx0aXBseSgyKSIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0
X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJiLm11bHRpcGx5KDIpIiwgLTEpKTsKICAgICAgICAg
Y2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiYi5mb28iKSk7CisgICAgICAgIHZh
bHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJiLmZv
byIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0KCkpOwogICAgICAgICBn
X2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIodmFsdWUuZ2V0KCkpKTsKICAgICAgICAg
Z19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMih2YWx1ZS5nZXQoKSksID09LCA4NCk7
CkBAIC0xNDUzLDcgKzE0OTYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDRXhjZXB0aW9ucygpCiAg
ICAgICAgIGNoZWNrZXIud2F0Y2goY29udGV4dC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X2Zh
bHNlKGpzY19jb250ZXh0X2dldF9leGNlcHRpb24oY29udGV4dC5nZXQoKSkpOwogCi0gICAgICAg
IEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0
ZShjb250ZXh0LmdldCgpLCAiZm9vIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1
bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImZvbyIs
IC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsKICAgICAgICAgLy8g
QnkgZGVmYXVsdCBleGNlcHRpb25zIGFyZSBub3QgY2F1Z2h0LgogICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV9pc191bmRlZmluZWQocmVzdWx0LmdldCgpKSk7CkBAIC0xNDcxLDcgKzE1
MTQsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDRXhjZXB0aW9ucygpCiAgICAgICAgIGNoZWNrZXIu
d2F0Y2goY29udGV4dC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X2ZhbHNlKGpzY19jb250ZXh0
X2dldF9leGNlcHRpb24oY29udGV4dC5nZXQoKSkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFs
dWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgp
LCAiZiA9IDI1O1xuZm9vOyIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0g
YWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmID0gMjU7XG5m
b287IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogCiAgICAg
ICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX3VuZGVmaW5lZChyZXN1bHQuZ2V0KCkpKTsK
QEAgLTE0ODcsNyArMTUzMCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NFeGNlcHRpb25zKCkKICAg
ICAgICAgY2hlY2tlci53YXRjaChjb250ZXh0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfZmFs
c2UoanNjX2NvbnRleHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKSk7CiAKLSAgICAgICAg
R1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRl
X3dpdGhfc291cmNlX3VyaShjb250ZXh0LmdldCgpLCAiZm9vIiwgImZpbGU6Ly8vZm9vL3Njcmlw
dC5qcyIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpz
Y19jb250ZXh0X2V2YWx1YXRlX3dpdGhfc291cmNlX3VyaShjb250ZXh0LmdldCgpLCAiZm9vIiwg
LTEsICJmaWxlOi8vL2Zvby9zY3JpcHQuanMiKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVz
dWx0LmdldCgpKTsKIAogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc191bmRlZmlu
ZWQocmVzdWx0LmdldCgpKSk7CkBAIC0xNTA3LDE0ICsxNTUwLDE0IEBAIHN0YXRpYyB2b2lkIHRl
c3RKU0NFeGNlcHRpb25zKCkKICAgICAgICAgY2hlY2tlci53YXRjaChmdW5jdGlvbi5nZXQoKSk7
CiAgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCAiY3JlYXRlRXJy
b3IiLCBmdW5jdGlvbi5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0
ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJ2YXIgcmVz
dWx0OyB0cnkgeyBjcmVhdGVFcnJvcigpOyB9IGNhdGNoIChlKSB7IHJlc3VsdCA9ICdDYXVnaHQg
ZXhjZXB0aW9uJzsgfSIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRv
cHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJ2YXIgcmVzdWx0OyB0
cnkgeyBjcmVhdGVFcnJvcigpOyB9IGNhdGNoIChlKSB7IHJlc3VsdCA9ICdDYXVnaHQgZXhjZXB0
aW9uJzsgfSIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsKICAg
ICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfc3RyaW5nKHJlc3VsdC5nZXQoKSkpOwog
ICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHJlc3VsdFN0cmluZyhqc2NfdmFsdWVfdG9fc3RyaW5n
KHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBzdHIocmVzdWx0U3RyaW5nLmdl
dCgpLCA9PSwgIkNhdWdodCBleGNlcHRpb24iKTsKICAgICAgICAgZ19hc3NlcnRfZmFsc2UoanNj
X2NvbnRleHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKSk7CiAKLSAgICAgICAgcmVzdWx0
ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJ2YXIgcmVz
dWx0OyBjcmVhdGVFcnJvcigpOyByZXN1bHQgPSAnTm8gZXhjZXB0aW9uJzsiKSk7CisgICAgICAg
IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAi
dmFyIHJlc3VsdDsgY3JlYXRlRXJyb3IoKTsgcmVzdWx0ID0gJ05vIGV4Y2VwdGlvbic7IiwgLTEp
KTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2Vy
dF90cnVlKGpzY192YWx1ZV9pc191bmRlZmluZWQocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGF1
dG8qIGV4Y2VwdGlvbiA9IGpzY19jb250ZXh0X2dldF9leGNlcHRpb24oY29udGV4dC5nZXQoKSk7
CkBAIC0xNTQ4LDcgKzE1OTEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDRXhjZXB0aW9ucygpCiAg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxUZXN0Kj4odXNlckRhdGEpLT53YXNEZWxldGVkID0gdHJ1
ZTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRv
cHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmb28iKSk7CisgICAg
ICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFs
dWF0ZShjb250ZXh0LmdldCgpLCAiZm9vIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChy
ZXN1bHQuZ2V0KCkpOwogICAgICAgICAvLyBFeGNlcHRpb24gd2FzIGNhdWdodCBieSB0aGUgdXNl
ciBoYW5kbGVyLgogICAgICAgICBnX2Fzc2VydF9mYWxzZShqc2NfY29udGV4dF9nZXRfZXhjZXB0
aW9uKGNvbnRleHQuZ2V0KCkpKTsKQEAgLTE1NzUsNyArMTYxOCw3IEBAIHN0YXRpYyB2b2lkIHRl
c3RKU0NFeGNlcHRpb25zKCkKICAgICAgICAgICAgIHN0YXRpY19jYXN0PFRlc3QqPih1c2VyRGF0
YSktPndhc0RlbGV0ZWQgPSB0cnVlOwogICAgICAgICB9KTsKIAotICAgICAgICByZXN1bHQgPSBh
ZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImZvbyIpKTsKKyAg
ICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0
KCksICJmb28iLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAg
ICAgICAgIC8vIEV4Y2VwdGlvbiB3YXMgaGFuZGxlZCBieSB0aGUgdXNlciBoYW5kbGVyLCBidXQg
bm90IGNhdWdodC4KICAgICAgICAgYXV0byogZXhjZXB0aW9uID0ganNjX2NvbnRleHRfZ2V0X2V4
Y2VwdGlvbihjb250ZXh0LmdldCgpKTsKQEAgLTE2MDEsMTMgKzE2NDQsMTMgQEAgc3RhdGljIHZv
aWQgdGVzdEpTQ1Byb21pc2VzKCkKICAgICAgICAgY2hlY2tlci53YXRjaChwcm9taXNlLmdldCgp
KTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfZnVuY3Rpb24ocHJvbWlzZS5n
ZXQoKSkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAidHlwZW9mIFByb21pc2UiKSk7Cisg
ICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9l
dmFsdWF0ZShjb250ZXh0LmdldCgpLCAidHlwZW9mIFByb21pc2UiLCAtMSkpOwogICAgICAgICBj
aGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3Zh
bHVlX2lzX3N0cmluZyhyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBy
ZXN1bHRTdHJpbmcoanNjX3ZhbHVlX3RvX3N0cmluZyhyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAg
Z19hc3NlcnRfY21wc3RyKHJlc3VsdFN0cmluZy5nZXQoKSwgPT0sICJmdW5jdGlvbiIpOwogCi0g
ICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0Lmdl
dCgpLCAicmVzdWx0ID0gMDsgUHJvbWlzZS5yZXNvbHZlKDQyKS50aGVuKGZ1bmN0aW9uICh2YWx1
ZSkgeyByZXN1bHQgPSB2YWx1ZTsgfSk7IikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYo
anNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgInJlc3VsdCA9IDA7IFByb21pc2Uu
cmVzb2x2ZSg0MikudGhlbihmdW5jdGlvbiAodmFsdWUpIHsgcmVzdWx0ID0gdmFsdWU7IH0pOyIs
IC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsKIAogICAgICAgICBH
UmVmUHRyPEpTQ1ZhbHVlPiB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9nZXRfdmFsdWUo
Y29udGV4dC5nZXQoKSwgInJlc3VsdCIpKTsKQEAgLTE2MzIsNyArMTY3NSw3IEBAIHN0YXRpYyB2
b2lkIHRlc3RKU0NQcm9taXNlcygpCiAgICAgICAgIGpzY19jbGFzc19hZGRfbWV0aG9kKGZvb0Ns
YXNzLCAiZ2V0TXVsdGlwbHlGb29Bc3luYyIsIEdfQ0FMTEJBQ0soZ2V0TXVsdGlwbHlGb29Bc3lu
YyksICZjaGVja2VyLCBudWxscHRyLCBKU0NfVFlQRV9WQUxVRSwgMSwgR19UWVBFX0lOVCk7CiAg
ICAgICAgIGpzY19jbGFzc19hZGRfcHJvcGVydHkoZm9vQ2xhc3MsICJmb28iLCBHX1RZUEVfSU5U
LCBHX0NBTExCQUNLKGdldEZvbyksIEdfQ0FMTEJBQ0soc2V0Rm9vKSwgbnVsbHB0ciwgbnVsbHB0
cik7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19j
b250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJyZXN1bHQgPSAwOyBmID0gbmV3IEZvbygp
OyBmLmZvbyA9IDU7IGYuZ2V0TXVsdGlwbHlGb29Bc3luYygyKS50aGVuKGZ1bmN0aW9uICh2YWx1
ZSkgeyByZXN1bHQgPSB2YWx1ZTsgfSwgZnVuY3Rpb24gKGVycm9yKSB7IHJlc3VsdCA9IC0xOyB9
KTsiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAicmVzdWx0ID0gMDsgZiA9IG5ldyBGb28o
KTsgZi5mb28gPSA1OyBmLmdldE11bHRpcGx5Rm9vQXN5bmMoMikudGhlbihmdW5jdGlvbiAodmFs
dWUpIHsgcmVzdWx0ID0gdmFsdWU7IH0sIGZ1bmN0aW9uIChlcnJvcikgeyByZXN1bHQgPSAtMTsg
fSk7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogCiAgICAg
ICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2dldF92
YWx1ZShjb250ZXh0LmdldCgpLCAicmVzdWx0IikpOwpAQCAtMTY0MCw3ICsxNjgzLDcgQEAgc3Rh
dGljIHZvaWQgdGVzdEpTQ1Byb21pc2VzKCkKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFs
dWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2Nf
dmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgMTApOwogCi0gICAgICAgIHJlc3VsdCA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAicmVzdWx0ID0g
MDsgZi5nZXRNdWx0aXBseUZvb0FzeW5jKDApLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7IHJlc3Vs
dCA9IHZhbHVlOyB9LCBmdW5jdGlvbiAoZXJyb3IpIHsgcmVzdWx0ID0gLTE7IH0pOyIpKTsKKyAg
ICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0
KCksICJyZXN1bHQgPSAwOyBmLmdldE11bHRpcGx5Rm9vQXN5bmMoMCkudGhlbihmdW5jdGlvbiAo
dmFsdWUpIHsgcmVzdWx0ID0gdmFsdWU7IH0sIGZ1bmN0aW9uIChlcnJvcikgeyByZXN1bHQgPSAt
MTsgfSk7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAg
ICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9nZXRfdmFsdWUoY29udGV4dC5nZXQo
KSwgInJlc3VsdCIpKTsKICAgICAgICAgY2hlY2tlci53YXRjaCh2YWx1ZS5nZXQoKSk7CkBAIC0x
Njc1LDcgKzE3MTgsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDR2FyYmFnZUNvbGxlY3RvcigpCiAg
ICAgICAgIGpzY192YWx1ZV9vYmplY3Rfc2V0X3Byb3BlcnR5KG9iamVjdC5nZXQoKSwgImZvbyIs
IGZvby5nZXQoKSk7CiAKICAgICAgICAganNjX2NvbnRleHRfc2V0X3ZhbHVlKGNvbnRleHQuZ2V0
KCksICJmIiwgb2JqZWN0LmdldCgpKTsKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0
ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmIikpOwor
ICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRf
ZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNo
KHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUob2JqZWN0LmdldCgpID09IHJl
c3VsdC5nZXQoKSk7CiAKQEAgLTE2ODYsMTIgKzE3MjksMTIgQEAgc3RhdGljIHZvaWQgdGVzdEpT
Q0dhcmJhZ2VDb2xsZWN0b3IoKQogICAgICAgICBvYmplY3QgPSBhZG9wdEdSZWYoanNjX2NvbnRl
eHRfZ2V0X3ZhbHVlKGNvbnRleHQuZ2V0KCksICJmIikpOwogICAgICAgICBjaGVja2VyLndhdGNo
KG9iamVjdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVj
dChvYmplY3QuZ2V0KCkpKTsKLSAgICAgICAgZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2
YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLmZvbyIpKTsKKyAgICAgICAgZm9vID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLmZvbyIsIC0xKSk7CiAgICAg
ICAgIGNoZWNrZXIud2F0Y2goZm9vLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2Nf
dmFsdWVfaXNfbnVtYmVyKGZvby5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBpbnQoanNj
X3ZhbHVlX3RvX2ludDMyKGZvby5nZXQoKSksID09LCAyNSk7CiAKLSAgICAgICAgcmVzdWx0ID0g
YWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmID0gdW5kZWZp
bmVkIikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUo
Y29udGV4dC5nZXQoKSwgImYgPSB1bmRlZmluZWQiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndh
dGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX3Vu
ZGVmaW5lZChyZXN1bHQuZ2V0KCkpKTsKIApAQCAtMTY5OSwxMCArMTc0MiwxMCBAQCBzdGF0aWMg
dm9pZCB0ZXN0SlNDR2FyYmFnZUNvbGxlY3RvcigpCiAKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShq
c2NfdmFsdWVfaXNfb2JqZWN0KG9iamVjdC5nZXQoKSkpOwogICAgICAgICBqc2NfY29udGV4dF9z
ZXRfdmFsdWUoY29udGV4dC5nZXQoKSwgImYiLCBvYmplY3QuZ2V0KCkpOwotICAgICAgICByZXN1
bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYiKSk7
CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0
LmdldCgpLCAiZiIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsK
ICAgICAgICAgZ19hc3NlcnRfdHJ1ZShvYmplY3QuZ2V0KCkgPT0gcmVzdWx0LmdldCgpKTsKLSAg
ICAgICAgZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCks
ICJmLmZvbyIpKTsKKyAgICAgICAgZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRl
KGNvbnRleHQuZ2V0KCksICJmLmZvbyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2goZm9v
LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKGZvby5n
ZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBpbnQoanNjX3ZhbHVlX3RvX2ludDMyKGZvby5n
ZXQoKSksID09LCAyNSk7CkBAIC0xNzI0LDE2ICsxNzY3LDE2IEBAIHN0YXRpYyB2b2lkIHRlc3RK
U0NHYXJiYWdlQ29sbGVjdG9yKCkKICAgICAgICAgY2hlY2tlci53YXRjaChjb25zdHJ1Y3Rvci5n
ZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX2NvbnN0cnVjdG9yKGNv
bnN0cnVjdG9yLmdldCgpKSk7CiAgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0
LmdldCgpLCBqc2NfY2xhc3NfZ2V0X25hbWUoanNjQ2xhc3MpLCBjb25zdHJ1Y3Rvci5nZXQoKSk7
Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IG9iamVjdCA9IGFkb3B0R1JlZihqc2NfY29udGV4
dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28oKTsiKSk7CisgICAgICAgIEdS
ZWZQdHI8SlNDVmFsdWU+IG9iamVjdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShj
b250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28oKTsiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndh
dGNoKG9iamVjdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29i
amVjdChvYmplY3QuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfb2Jq
ZWN0X2lzX2luc3RhbmNlX29mKG9iamVjdC5nZXQoKSwganNjX2NsYXNzX2dldF9uYW1lKGpzY0Ns
YXNzKSkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiIpKTsKKyAgICAgICAgR1JlZlB0
cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRl
eHQuZ2V0KCksICJmIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkp
OwogICAgICAgICBnX2Fzc2VydF90cnVlKG9iamVjdC5nZXQoKSA9PSByZXN1bHQuZ2V0KCkpOwog
Ci0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0
LmdldCgpLCAiZiA9IHVuZGVmaW5lZCIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpz
Y19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmID0gdW5kZWZpbmVkIiwgLTEpKTsK
ICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV9pc191bmRlZmluZWQocmVzdWx0LmdldCgpKSk7CiAKQEAgLTE4MTAsNyAr
MTg1Myw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NXZWFrVmFsdWUoKQogICAgICAgICAgICAgY2hl
Y2tlci53YXRjaChjb250ZXh0LmdldCgpKTsKICAgICAgICAgICAgIEV4Y2VwdGlvbkhhbmRsZXIg
ZXhjZXB0aW9uSGFuZGxlcihjb250ZXh0LmdldCgpKTsKIAotICAgICAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4gb2JqZWN0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQu
Z2V0KCksICJvYmogPSB7fTsiKSk7CisgICAgICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBvYmpl
Y3QgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgIm9iaiA9
IHt9OyIsIC0xKSk7CiAgICAgICAgICAgICBjaGVja2VyLndhdGNoKG9iamVjdC5nZXQoKSk7CiAg
ICAgICAgICAgICBnX2Fzc2VydF90cnVlKEpTQ19JU19WQUxVRShvYmplY3QuZ2V0KCkpKTsKICAg
ICAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChvYmplY3QuZ2V0KCkp
KTsKQEAgLTE4MTksNyArMTg2Miw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NXZWFrVmFsdWUoKQog
ICAgICAgICAgICAgY2hlY2tlci53YXRjaCh3ZWFrT2JqZWN0LmdldCgpKTsKICAgICAgICAgICAg
IGdfc2lnbmFsX2Nvbm5lY3Qod2Vha09iamVjdC5nZXQoKSwgImNsZWFyZWQiLCBHX0NBTExCQUNL
KHdlYWtWYWx1ZUNsZWFyZWRDYWxsYmFjayksICZ3ZWFrVmFsdWVDbGVhcmVkKTsKIAotICAgICAg
ICAgICAgb2JqZWN0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0
KCksICJvYmogPSBudWxsIikpOworICAgICAgICAgICAgb2JqZWN0ID0gYWRvcHRHUmVmKGpzY19j
b250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJvYmogPSBudWxsIiwgLTEpKTsKICAgICAg
ICAgICAgIGNoZWNrZXIud2F0Y2gob2JqZWN0LmdldCgpKTsKICAgICAgICAgICAgIGdfYXNzZXJ0
X2ZhbHNlKHdlYWtWYWx1ZUNsZWFyZWQpOwogICAgICAgICB9CkBAIC0xODQxLDcgKzE4ODQsNyBA
QCBzdGF0aWMgdm9pZCB0ZXN0SlNDV2Vha1ZhbHVlKCkKICAgICAgICAgICAgIGNoZWNrZXIud2F0
Y2goY29udGV4dC5nZXQoKSk7CiAgICAgICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGV4Y2VwdGlv
bkhhbmRsZXIoY29udGV4dC5nZXQoKSk7CiAKLSAgICAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+
IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAi
b2JqID0geyAnZm9vJyA6ICdiYXInIH07IHN0ciA9ICdIZWxsbyBXb3JsZCc7IHByaW1pdGl2ZSA9
IDI1OyIpKTsKKyAgICAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1Jl
Zihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAib2JqID0geyAnZm9vJyA6ICdi
YXInIH07IHN0ciA9ICdIZWxsbyBXb3JsZCc7IHByaW1pdGl2ZSA9IDI1OyIsIC0xKSk7CiAgICAg
ICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAKICAgICAgICAgICAgIEdSZWZQ
dHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2dldF92YWx1ZShjb250
ZXh0LmdldCgpLCAib2JqIikpOwpAQCAtMTg4MSw3ICsxOTI0LDcgQEAgc3RhdGljIHZvaWQgdGVz
dEpTQ1dlYWtWYWx1ZSgpCiAgICAgICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19u
dW1iZXIodmFsdWUuZ2V0KCkpKTsKICAgICAgICAgICAgIHZhbHVlID0gbnVsbHB0cjsKIAotICAg
ICAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQu
Z2V0KCksICJzdHIgPSB1bmRlZmluZWQiKSk7CisgICAgICAgICAgICByZXN1bHQgPSBhZG9wdEdS
ZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgInN0ciA9IHVuZGVmaW5lZCIs
IC0xKSk7CiAgICAgICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAg
ICAgICBqc2NDb250ZXh0R2FyYmFnZUNvbGxlY3QoY29udGV4dC5nZXQoKSk7CiAKQEAgLTE4OTAs
NyArMTkzMyw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NXZWFrVmFsdWUoKQogICAgICAgICAgICAg
Z19hc3NlcnRfZmFsc2Uod2Vha1ByaW1pdGl2ZVZhbHVlQ2xlYXJlZCk7CiAgICAgICAgICAgICBn
X2Fzc2VydF9udWxsKGpzY193ZWFrX3ZhbHVlX2dldF92YWx1ZSh3ZWFrU3RyLmdldCgpKSk7CiAK
LSAgICAgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiZiA9IHVuZGVmaW5lZCIpKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IGFkb3B0
R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IHVuZGVmaW5lZCIs
IC0xKSk7CiAgICAgICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAg
ICAgICBqc2NDb250ZXh0R2FyYmFnZUNvbGxlY3QoY29udGV4dC5nZXQoKSk7CiAKQEAgLTE5MDUs
NyArMTk0OCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NXZWFrVmFsdWUoKQogICAgICAgICAgICAg
Z19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAgICAgICAg
ICAgICB2YWx1ZSA9IG51bGxwdHI7CiAKLSAgICAgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAib2JqID0gdW5kZWZpbmVkIikpOwor
ICAgICAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRl
eHQuZ2V0KCksICJvYmogPSB1bmRlZmluZWQiLCAtMSkpOwogICAgICAgICAgICAgY2hlY2tlci53
YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICAgICAganNjQ29udGV4dEdhcmJhZ2VDb2xsZWN0
KGNvbnRleHQuZ2V0KCkpOwogCkBAIC0xOTQzLDcgKzE5ODYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
c0pTQ1ZpcnR1YWxNYWNoaW5lKCkKICAgICAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVl
X2lzX2NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yLmdldCgpKSk7CiAgICAgICAgICAgICBqc2NfY29u
dGV4dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwganNjX2NsYXNzX2dldF9uYW1lKGpzY0NsYXNz
KSwgY29uc3RydWN0b3IuZ2V0KCkpOwogCi0gICAgICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBv
YmplY3QgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYg
PSBuZXcgRm9vKCk7IikpOworICAgICAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gb2JqZWN0ID0g
YWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmID0gbmV3IEZv
bygpOyIsIC0xKSk7CiAgICAgICAgICAgICBjaGVja2VyLndhdGNoKG9iamVjdC5nZXQoKSk7CiAg
ICAgICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9nZXRfY29udGV4dChvYmplY3QuZ2V0
KCkpID09IGNvbnRleHQuZ2V0KCkpOwogICAgICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFs
dWVfaXNfb2JqZWN0KG9iamVjdC5nZXQoKSkpOwpAQCAtMTk3Myw3ICsyMDE2LDcgQEAgc3RhdGlj
IHZvaWQgdGVzdHNKU0NWaXJ0dWFsTWFjaGluZSgpCiAgICAgICAgICAgICAgICAgICAgICIgICAg
Zm9yICh2YXIgaiA9IDA7IGogPCBuZXdBcnJheS5sZW5ndGg7ICsrailcbiIKICAgICAgICAgICAg
ICAgICAgICAgIiAgICAgICAgbmV3QXJyYXlbal0gPSB7cGFyZW50OiBhcnJheVtqIC8gMl19O1xu
IgogICAgICAgICAgICAgICAgICAgICAiICAgIGFycmF5ID0gbmV3QXJyYXk7XG4iCi0gICAgICAg
ICAgICAgICAgICAgICJ9XG4iCisgICAgICAgICAgICAgICAgICAgICJ9XG4iLCAtMQogICAgICAg
ICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2dl
dF9jb250ZXh0KHJlc3VsdC5nZXQoKSkgPT0gY29udGV4dC5nZXQoKSk7CiAgICAgICAgICAgICAg
ICAgaWYgKGF1dG8qIGV4Y2VwdGlvbiA9IGpzY19jb250ZXh0X2dldF9leGNlcHRpb24oY29udGV4
dC5nZXQoKSkpIHsKQEAgLTIwMTEsNyArMjA1NCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RzSlNDQXV0
b2NsZWFudXBzKCkKICAgICBjaGVja2VyLndhdGNoKGNvbnRleHQpOwogICAgIGdfYXNzZXJ0X3Ry
dWUoSlNDX0lTX0NPTlRFWFQoY29udGV4dCkpOwogCi0gICAgZ19hdXRvcHRyKEpTQ1ZhbHVlKSB2
YWx1ZSA9IGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQsICJ2ID0gMjUiKTsKKyAgICBnX2F1
dG9wdHIoSlNDVmFsdWUpIHZhbHVlID0ganNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dCwgInYg
PSAyNSIsIC0xKTsKICAgICBjaGVja2VyLndhdGNoKHZhbHVlKTsKICAgICBnX2Fzc2VydF90cnVl
KEpTQ19JU19WQUxVRSh2YWx1ZSkpOwogICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251
bWJlcih2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZh
U2NyaXB0Q29yZS9nbGliL3NjcmlwdC5qcyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvSmF2
YVNjcmlwdENvcmUvZ2xpYi9zY3JpcHQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGNjM2NmMWNkZGZkNmQwM2Qz
MWE1NWQ0ODgxMjQ4YWQ1Y2E4ZjA3NwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNjUKemNtWWMq
JX1YeEglK0ZJT05pOGwzRS1BeylPQXBVMSQ/ei05JDxmZU1zT0N9dGZ9KyV0KHhOO0NiJS08ck5T
Kjx0CktLOzQ/Rm1KMHZ+SnIobCsKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9ET01FbGVtZW50VGVzdC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRlc3QuY3Bw
CmluZGV4IDk1NGUxYzUzZTIwLi5jZDYwM2FjMmI1NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0RPTUVsZW1lbnRUZXN0LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRlc3QuY3BwCkBAIC0zNyw3
ICszNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoSlNDX0lTX0NPTlRFWFQo
anNDb250ZXh0LmdldCgpKSk7CiAgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0
RmluaXNoZXMoR19PQkpFQ1QoanNDb250ZXh0LmdldCgpKSk7CiAKLSAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4ganNJbnB1dEVsZW1lbnQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUo
anNDb250ZXh0LmdldCgpLCAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dG8tZmlsbCcpIikp
OworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBqc0lucHV0RWxlbWVudCA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCksICJkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnYXV0by1maWxsJykiLCAtMSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKEpTQ19JU19W
QUxVRShqc0lucHV0RWxlbWVudC5nZXQoKSkpOwogICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0
ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGpzSW5wdXRFbGVtZW50LmdldCgpKSk7CiAgICAg
ICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChqc0lucHV0RWxlbWVudC5nZXQo
KSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0Vk
aXRvclRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0VkaXRv
clRlc3QuY3BwCmluZGV4IDQzY2VkMGM1Nzc0Li5jM2QxN2UzOWEzNCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0VkaXRvclRlc3QuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9FZGl0b3JUZXN0LmNwcApAQCAtNTcs
NyArNTcsNyBAQCBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCBpID0gMDsKICAgICAgICAgd2hp
bGUgKGNvbnN0IGNoYXIqIGNvbW1hbmQgPSBzdGVwc1tpKytdKSB7CiAgICAgICAgICAgICBnX2Fz
c2VydCghc2VsZWN0aW9uQ2hhbmdlZCk7Ci0gICAgICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYo
anNjX2NvbnRleHRfZXZhbHVhdGUoanNDb250ZXh0LmdldCgpLCBjb21tYW5kKSk7CisgICAgICAg
ICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoanNDb250ZXh0Lmdl
dCgpLCBjb21tYW5kLCAtMSkpOwogICAgICAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKHJl
c3VsdC5nZXQoKSkpOwogICAgICAgICAgICAgZ19hc3NlcnQoc2VsZWN0aW9uQ2hhbmdlZCk7CiAg
ICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRlc3QuY3BwCmluZGV4IGU5MTBiZjdiYzNk
Li40NjFiMWNiMjJmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL0ZyYW1lVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL0ZyYW1lVGVzdC5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgogICAgICAg
ICBnX2Fzc2VydChqc2NfdmFsdWVfaXNfb2JqZWN0KGpzUC5nZXQoKSkpOwogICAgICAgICBnX2Fz
c2VydChqc2NfdmFsdWVfZ2V0X2NvbnRleHQoanNQLmdldCgpKSA9PSBqc0NvbnRleHQuZ2V0KCkp
OwogCi0gICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29u
dGV4dC5nZXQoKSwgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJhZ3JhcGgnKSIpKTsKKyAg
ICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoanNDb250ZXh0Lmdl
dCgpLCAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmFncmFwaCcpIiwgLTEpKTsKICAgICAg
ICAgZ19hc3NlcnQodmFsdWUuZ2V0KCkgPT0ganNQLmdldCgpKTsKICNpZiBQTEFURk9STShHVEsp
CiAgICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21ldGhv
ZChqc0RvY3VtZW50LmdldCgpLCAiZ2V0RWxlbWVudEJ5SWQiLCBHX1RZUEVfU1RSSU5HLCAicGFy
YWdyYXBoIiwgR19UWVBFX05PTkUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcAppbmRleCBiNWVmY2Q5ZDk2
OS4uNTg5MWZhYTM4YWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKQEAgLTI5NSw3ICsyOTUsNyBAQCBz
dGF0aWMgdm9pZCBjb25zb2xlTWVzc2FnZVNlbnRDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQ
YWdlLCBXZWJLaXRDb25zb2xlTWVzcwogICAgICAgICB3ZWJraXRfY29uc29sZV9tZXNzYWdlX2dl
dF9saW5lKGNvbnNvbGVNZXNzYWdlKSwgd2Via2l0X2NvbnNvbGVfbWVzc2FnZV9nZXRfc291cmNl
X2lkKGNvbnNvbGVNZXNzYWdlKSk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBtZXNzYWdlU3RyaW5n
KGdfdmFyaWFudF9wcmludCh2YXJpYW50LmdldCgpLCBGQUxTRSkpOwogICAgIEdSZWZQdHI8SlND
Q29udGV4dD4ganNDb250ZXh0ID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4
dCh3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUod2ViUGFnZSkpKTsKLSAgICBHUmVmUHRy
PEpTQ1ZhbHVlPiBjb25zb2xlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29u
dGV4dC5nZXQoKSwgIndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmNvbnNvbGUiKSk7Cisg
ICAgR1JlZlB0cjxKU0NWYWx1ZT4gY29uc29sZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFs
dWF0ZShqc0NvbnRleHQuZ2V0KCksICJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5jb25z
b2xlIiwgLTEpKTsKICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoY29uc29sZS5nZXQoKSkpOwog
ICAgIGlmIChqc2NfdmFsdWVfaXNfb2JqZWN0KGNvbnNvbGUuZ2V0KCkpKSB7CiAgICAgICAgIEdS
ZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2ludm9r
ZV9tZXRob2QoY29uc29sZS5nZXQoKSwgInBvc3RNZXNzYWdlIiwgR19UWVBFX1NUUklORywgbWVz
c2FnZVN0cmluZy5nZXQoKSwgR19UWVBFX05PTkUpKTsKQEAgLTQ1Nyw3ICs0NTcsNyBAQCBzdGF0
aWMgdm9pZCBtZXRob2RDYWxsQ2FsbGJhY2soR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBj
b25zdCBjaGFyKiBzZW5kZXIsCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgR1JlZlB0
cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc19j
b250ZXh0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShwYWdlKSkpOwotICAgICAgICBH
UmVmUHRyPEpTQ1ZhbHVlPiB0aXRsZVZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1
YXRlKGpzQ29udGV4dC5nZXQoKSwgImRvY3VtZW50LnRpdGxlIikpOworICAgICAgICBHUmVmUHRy
PEpTQ1ZhbHVlPiB0aXRsZVZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpz
Q29udGV4dC5nZXQoKSwgImRvY3VtZW50LnRpdGxlIiwgLTEpKTsKICAgICAgICAgR1VuaXF1ZVB0
cjxjaGFyPiB0aXRsZShqc2NfdmFsdWVfdG9fc3RyaW5nKHRpdGxlVmFsdWUuZ2V0KCkpKTsKICAg
ICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBn
X3ZhcmlhbnRfbmV3KCIocykiLCB0aXRsZS5nZXQoKSkpOwogICAgIH0gZWxzZSBpZiAoIWdfc3Ry
Y21wMChtZXRob2ROYW1lLCAiSW5wdXRFbGVtZW50SXNVc2VyRWRpdGVkIikpIHsKQEAgLTQ4OCw3
ICs0ODgsNyBAQCBzdGF0aWMgdm9pZCBtZXRob2RDYWxsQ2FsbGJhY2soR0RCdXNDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBzZW5kZXIsCiAgICAgICAgIGdfYXNzZXJ0KHdlYmtp
dF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1bHQoKSAhPSB3b3JsZC5nZXQoKSk7CiAgICAgICAgIFdl
YktpdEZyYW1lKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShwYWdlKTsK
ICAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0
X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQoZnJhbWUsIHdvcmxkLmdldCgp
KSk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCksIHNjcmlwdCkpOworICAgICAgICBHUmVmUHRy
PEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoanNDb250
ZXh0LmdldCgpLCBzY3JpcHQsIC0xKSk7CiAgICAgICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlv
bl9yZXR1cm5fdmFsdWUoaW52b2NhdGlvbiwgMCk7CiAgICAgfSBlbHNlIGlmICghZ19zdHJjbXAw
KG1ldGhvZE5hbWUsICJBYm9ydFByb2Nlc3MiKSkgewogICAgICAgICBhYm9ydCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337683</attachid>
            <date>2018-04-11 00:19:21 -0700</date>
            <delta_ts>2018-04-11 10:59:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>jsc-string.diff</filename>
            <type>text/plain</type>
            <size>77531</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5jcHAKaW5kZXggMDdh
NzlhZDk5ZTYuLjk4MWRjODViMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL09wYXF1ZUpTU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09w
YXF1ZUpTU3RyaW5nLmNwcApAQCAtNDIsNiArNDIsMTQgQEAgUmVmUHRyPE9wYXF1ZUpTU3RyaW5n
PiBPcGFxdWVKU1N0cmluZzo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIHJldHVy
biBhZG9wdFJlZihuZXcgT3BhcXVlSlNTdHJpbmcoc3RyaW5nKSk7CiB9CiAKK1JlZlB0cjxPcGFx
dWVKU1N0cmluZz4gT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShTdHJpbmcmJiBzdHJpbmcpCit7Cisg
ICAgaWYgKHN0cmluZy5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE9wYXF1ZUpTU3RyaW5nKFdURk1vdmUoc3RyaW5nKSkpOworfQor
CiBPcGFxdWVKU1N0cmluZzo6fk9wYXF1ZUpTU3RyaW5nKCkKIHsKICAgICAvLyBtX2NoYXJhY3Rl
cnMgaXMgcHV0IGluIGEgbG9jYWwgaGVyZSB0byBhdm9pZCBhbiBleHRyYSBhdG9taWMgbG9hZC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuaAppbmRleCAyMDgxMzFi
M2I0MS4uYWQyZmZjZGU1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
T3BhcXVlSlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09wYXF1ZUpT
U3RyaW5nLmgKQEAgLTUyLDYgKzUyLDcgQEAgc3RydWN0IE9wYXF1ZUpTU3RyaW5nIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPE9wYXF1ZUpTU3RyaW5nPiB7CiAgICAgfQogCiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgc3RhdGljIFJlZlB0cjxPcGFxdWVKU1N0cmluZz4gY3JlYXRlKGNvbnN0
IFN0cmluZyYpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBSZWZQdHI8T3BhcXVlSlNT
dHJpbmc+IGNyZWF0ZShTdHJpbmcmJik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB+T3BhcXVl
SlNTdHJpbmcoKTsKIApAQCAtODEsNiArODIsMTIgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQog
CisgICAgZXhwbGljaXQgT3BhcXVlSlNTdHJpbmcoU3RyaW5nJiYgc3RyaW5nKQorICAgICAgICA6
IG1fc3RyaW5nKFdURk1vdmUoc3RyaW5nKSkKKyAgICAgICAgLCBtX2NoYXJhY3RlcnMobV9zdHJp
bmcuaW1wbCgpICYmIG1fc3RyaW5nLmlzOEJpdCgpID8gbnVsbHB0ciA6IGNvbnN0X2Nhc3Q8VUNo
YXIqPihtX3N0cmluZy5jaGFyYWN0ZXJzMTYoKSkpCisgICAgeworICAgIH0KKwogICAgIE9wYXF1
ZUpTU3RyaW5nKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCiAgICAg
ICAgIDogbV9zdHJpbmcoY2hhcmFjdGVycywgbGVuZ3RoKQogICAgICAgICAsIG1fY2hhcmFjdGVy
cyhudWxscHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pT
Q0NvbnRleHQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQu
Y3BwCmluZGV4IDg3ZjY4YTg4MjVmLi41YWYxODI3YjFlMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1
ZGUgIkpTQ1ZpcnR1YWxNYWNoaW5lUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkpTQ1dyYXBwZXJNYXAu
aCIKICNpbmNsdWRlICJKU1JldGFpblB0ci5oIgorI2luY2x1ZGUgIk9wYXF1ZUpTU3RyaW5nLmgi
CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL1dU
RkdUeXBlLmg+CiAKQEAgLTY2NiwyMCArNjY3LDIyIEBAIEpTQ0NvbnRleHQqIGpzY19jb250ZXh0
X2dldF9jdXJyZW50KCkKICAqIGpzY19jb250ZXh0X2V2YWx1YXRlOgogICogQGNvbnRleHQ6IGEg
I0pTQ0NvbnRleHQKICAqIEBjb2RlOiBhIEphdmFTY3JpcHQgc2NyaXB0IHRvIGV2YWx1YXRlCisg
KiBAbGVuZ3RoOiBsZW5ndGggb2YgQGNvZGUsIG9yIC0xIGlmIEBjb2RlIGlzIGEgbnVsLXRlcm1p
bmF0ZWQgc3RyaW5nCiAgKgogICogRXZhbHVhdGUgQGNvZGUgaW4gQGNvbnRleHQuCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBhICNKU0NWYWx1ZSByZXByZXNlbnRpbmcgdGhlIGxh
c3QgdmFsdWUgZ2VuZXJhdGVkIGJ5IHRoZSBzY3JpcHQuCiAgKi8KLUpTQ1ZhbHVlKiBqc2NfY29u
dGV4dF9ldmFsdWF0ZShKU0NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBjaGFyKiBjb2RlKQorSlND
VmFsdWUqIGpzY19jb250ZXh0X2V2YWx1YXRlKEpTQ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNo
YXIqIGNvZGUsIGdzc2l6ZSBsZW5ndGgpCiB7Ci0gICAgcmV0dXJuIGpzY19jb250ZXh0X2V2YWx1
YXRlX3dpdGhfc291cmNlX3VyaShjb250ZXh0LCBjb2RlLCBudWxscHRyKTsKKyAgICByZXR1cm4g
anNjX2NvbnRleHRfZXZhbHVhdGVfd2l0aF9zb3VyY2VfdXJpKGNvbnRleHQsIGNvZGUsIGxlbmd0
aCwgbnVsbHB0cik7CiB9CiAKIC8qKgogICoganNjX2NvbnRleHRfZXZhbHVhdGVfd2l0aF9zb3Vy
Y2VfdXJpOgogICogQGNvbnRleHQ6IGEgI0pTQ0NvbnRleHQKICAqIEBjb2RlOiBhIEphdmFTY3Jp
cHQgc2NyaXB0IHRvIGV2YWx1YXRlCisgKiBAbGVuZ3RoOiBsZW5ndGggb2YgQGNvZGUsIG9yIC0x
IGlmIEBjb2RlIGlzIGEgbnVsLXRlcm1pbmF0ZWQgc3RyaW5nCiAgKiBAdXJpOiB0aGUgc291cmNl
IFVSSQogICoKICAqIEV2YWx1YXRlIEBjb2RlIGluIEBjb250ZXh0IHVzaW5nIEB1cmkgYXMgdGhl
IHNvdXJjZSBVUkkuIFRoaXMgaXMgZXhhY3RseSB0aGUgc2FtZSBhcwpAQCAtNjg4LDE0ICs2OTEs
MTcgQEAgSlNDVmFsdWUqIGpzY19jb250ZXh0X2V2YWx1YXRlKEpTQ0NvbnRleHQqIGNvbnRleHQs
IGNvbnN0IGNoYXIqIGNvZGUpCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBhICNK
U0NWYWx1ZSByZXByZXNlbnRpbmcgdGhlIGxhc3QgdmFsdWUgZ2VuZXJhdGVkIGJ5IHRoZSBzY3Jp
cHQuCiAgKi8KLUpTQ1ZhbHVlKiBqc2NfY29udGV4dF9ldmFsdWF0ZV93aXRoX3NvdXJjZV91cmko
SlNDQ29udGV4dCogY29udGV4dCwgY29uc3QgY2hhciogY29kZSwgY29uc3QgY2hhciogdXJpKQor
SlNDVmFsdWUqIGpzY19jb250ZXh0X2V2YWx1YXRlX3dpdGhfc291cmNlX3VyaShKU0NDb250ZXh0
KiBjb250ZXh0LCBjb25zdCBjaGFyKiBjb2RlLCBnc3NpemUgbGVuZ3RoLCBjb25zdCBjaGFyKiB1
cmkpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoSlNDX0lTX0NPTlRFWFQoY29udGV4dCks
IG51bGxwdHIpOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvZGUsIG51bGxwdHIpOwogCi0g
ICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSBudWxscHRyOwotICAgIEpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBzY3JpcHRKUyhBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoY29k
ZSkpOworICAgIGlmIChsZW5ndGggPCAwKQorICAgICAgICBsZW5ndGggPSBzdHJsZW4oY29kZSk7
CisgICAgYXV0byBzY3JpcHQgPSBTdHJpbmc6OmZyb21VVEY4KGNvZGUsIGxlbmd0aCk7CisgICAg
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNjcmlwdEpTKEFkb3B0LCBPcGFxdWVKU1N0cmluZzo6
Y3JlYXRlKFdURk1vdmUoc2NyaXB0KSkubGVha1JlZigpKTsKICAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gc291cmNlVVJJID0gdXJpID8gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcodXJpKSkgOiBudWxscHRyOworICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gbnVsbHB0
cjsKICAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQoY29udGV4dC0+cHJp
di0+anNDb250ZXh0LmdldCgpLCBzY3JpcHRKUy5nZXQoKSwgbnVsbHB0ciwgc291cmNlVVJJLmdl
dCgpLCAxLCAmZXhjZXB0aW9uKTsKICAgICBpZiAoanNjQ29udGV4dEhhbmRsZUV4Y2VwdGlvbklm
TmVlZGVkKGNvbnRleHQsIGV4Y2VwdGlvbikpCiAgICAgICAgIHJldHVybiBqc2NfdmFsdWVfbmV3
X3VuZGVmaW5lZChjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvZ2xpYi9KU0NDb250ZXh0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlND
Q29udGV4dC5oCmluZGV4IGQ1NzRmZDM1OGQ2Li5lMjE1ZGE3M2QyNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dC5oCkBAIC0xMDEsMTEgKzEwMSwxMyBAQCBq
c2NfY29udGV4dF9nZXRfY3VycmVudCAgICAgICAgICAgICAgKHZvaWQpOwogCiBKU0NfQVBJIEpT
Q1ZhbHVlICoKIGpzY19jb250ZXh0X2V2YWx1YXRlICAgICAgICAgICAgICAgICAoSlNDQ29udGV4
dCAgICAgICAgICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBjaGFyICAgICAgICAgKmNvZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICAgKmNvZGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdzc2l6ZSAgICAgICAgICAgICAgbGVuZ3RoKTsKIAogSlNDX0FQ
SSBKU0NWYWx1ZSAqCiBqc2NfY29udGV4dF9ldmFsdWF0ZV93aXRoX3NvdXJjZV91cmkgKEpTQ0Nv
bnRleHQgICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAgICAgICAgICpjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnc3NpemUgICAgICAgICAgICAgIGxlbmd0aCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICp1cmkpOwogCiBKU0Nf
QVBJIHZvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NW
YWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWUuY3BwCmlu
ZGV4IDg0MDUyNTY3YmZhLi5jNmU3MTU4YTM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9nbGliL0pTQ1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL2dsaWIvSlNDVmFsdWUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiSlNDSW5s
aW5lcy5oIgogI2luY2x1ZGUgIkpTQ1ZhbHVlUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkpTUmV0YWlu
UHRyLmgiCisjaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcuaCIKICNpbmNsdWRlIDxnb2JqZWN0L2d2
YWx1ZWNvbGxlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CkBAIC0zMjcsOSArMzI4LDEwIEBAIGdib29sZWFuIGpz
Y192YWx1ZV90b19ib29sZWFuKEpTQ1ZhbHVlKiB2YWx1ZSkKIC8qKgogICoganNjX3ZhbHVlX25l
d19zdHJpbmc6CiAgKiBAY29udGV4dDogYSAjSlNDQ29udGV4dAotICogQHN0cmluZzogKG51bGxh
YmxlKTogYSBzdHJpbmcKKyAqIEBzdHJpbmc6IChudWxsYWJsZSk6IGEgbnVsbC10ZXJtaW5hdGVk
IHN0cmluZwogICoKLSAqIENyZWF0ZSBhIG5ldyAjSlNDVmFsdWUgZnJvbSBAc3RyaW5nLgorICog
Q3JlYXRlIGEgbmV3ICNKU0NWYWx1ZSBmcm9tIEBzdHJpbmcuIElmIHlvdSBuZWVkIHRvIGNyZWF0
ZSBhICNKU0NWYWx1ZSBmcm9tIGEKKyAqIHN0cmluZyBjb250YWluaW5nIG51bGwgY2hhcmFjdGVy
cywgdXNlIGpzY192YWx1ZV9uZXdfc3RyaW5nX2Zyb21fYnl0ZXMoKSBpbnN0ZWFkLgogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogYSAjSlNDVmFsdWUuCiAgKi8KQEAgLTM0Niw2ICsz
NDgsMjkgQEAgSlNDVmFsdWUqIGpzY192YWx1ZV9uZXdfc3RyaW5nKEpTQ0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IGNoYXIqIHN0cmluZykKICAgICByZXR1cm4ganNjQ29udGV4dEdldE9yQ3JlYXRl
VmFsdWUoY29udGV4dCwganNTdHJpbmdWYWx1ZSkubGVha1JlZigpOwogfQogCisvKioKKyAqIGpz
Y192YWx1ZV9uZXdfc3RyaW5nX2Zyb21fYnl0ZXM6CisgKiBAY29udGV4dDogYSAjSlNDQ29udGV4
dAorICogQGJ5dGVzOiAobnVsbGFibGUpOiBhICNHQnl0ZXMKKyAqCisgKiBDcmVhdGUgYSBuZXcg
I0pTQ1ZhbHVlIGZyb20gQGJ5dGVzLgorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
YSAjSlNDVmFsdWUuCisgKi8KK0pTQ1ZhbHVlKiBqc2NfdmFsdWVfbmV3X3N0cmluZ19mcm9tX2J5
dGVzKEpTQ0NvbnRleHQqIGNvbnRleHQsIEdCeXRlcyogYnl0ZXMpCit7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoSlNDX0lTX0NPTlRFWFQoY29udGV4dCksIG51bGxwdHIpOworCisgICAgaWYg
KCFieXRlcykKKyAgICAgICAgcmV0dXJuIGpzY192YWx1ZV9uZXdfc3RyaW5nKGNvbnRleHQsIG51
bGxwdHIpOworCisgICAgZ3NpemUgZGF0YVNpemU7CisgICAgY29uc3QgYXV0byogZGF0YSA9IHN0
YXRpY19jYXN0PGNvbnN0IGNoYXIqPihnX2J5dGVzX2dldF9kYXRhKGJ5dGVzLCAmZGF0YVNpemUp
KTsKKyAgICBhdXRvIHN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgoZGF0YSwgZGF0YVNpemUpOwor
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBqc1N0cmluZyhBZG9wdCwgT3BhcXVlSlNTdHJp
bmc6OmNyZWF0ZShXVEZNb3ZlKHN0cmluZykpLmxlYWtSZWYoKSk7CisgICAgcmV0dXJuIGpzY0Nv
bnRleHRHZXRPckNyZWF0ZVZhbHVlKGNvbnRleHQsIEpTVmFsdWVNYWtlU3RyaW5nKGpzY0NvbnRl
eHRHZXRKU0NvbnRleHQoY29udGV4dCksIGpzU3RyaW5nLmdldCgpKSkubGVha1JlZigpOworfQor
CiAvKioKICAqIGpzY192YWx1ZV9pc19zdHJpbmc6CiAgKiBAdmFsdWU6IGEgI0pTQ1ZhbHVlCkBA
IC0zNjYsOSArMzkxLDEwIEBAIGdib29sZWFuIGpzY192YWx1ZV9pc19zdHJpbmcoSlNDVmFsdWUq
IHZhbHVlKQogICoganNjX3ZhbHVlX3RvX3N0cmluZzoKICAqIEB2YWx1ZTogYSAjSlNDVmFsdWUK
ICAqCi0gKiBDb252ZXJ0IEB2YWx1ZSB0byBhIHN0cmluZworICogQ29udmVydCBAdmFsdWUgdG8g
YSBzdHJpbmcuIFVzZSBqc2NfdmFsdWVfdG9fc3RyaW5nX2FzX2J5dGVzKCkgaW5zdGVhZCwgaWYg
eW91IG5lZWQgdG8KKyAqIGhhbmRsZSBzdHJpbmdzIGNvbnRhaW5pbmcgbnVsbCBjaGFyYWN0ZXJz
LgogICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogYSBzdHJpbmcgcmVzdWx0IG9mIHRo
ZSBjb252ZXJzaW9uLgorICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBhIG51bC10ZXJtaW5h
dGVkIHN0cmluZyByZXN1bHQgb2YgdGhlIGNvbnZlcnNpb24uCiAgKi8KIGNoYXIqIGpzY192YWx1
ZV90b19zdHJpbmcoSlNDVmFsdWUqIHZhbHVlKQogewpAQCAtMzgwLDEyICs0MDYsNTYgQEAgY2hh
cioganNjX3ZhbHVlX3RvX3N0cmluZyhKU0NWYWx1ZSogdmFsdWUpCiAgICAgaWYgKGpzY0NvbnRl
eHRIYW5kbGVFeGNlcHRpb25JZk5lZWRlZChwcml2LT5jb250ZXh0LmdldCgpLCBleGNlcHRpb24p
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAorICAgIGlmICghanNTdHJpbmcpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCiAgICAgc2l6ZV90IG1heFNpemUgPSBKU1N0cmluZ0dldE1heGlt
dW1VVEY4Q1N0cmluZ1NpemUoanNTdHJpbmcuZ2V0KCkpOwogICAgIGF1dG8qIHN0cmluZyA9IHN0
YXRpY19jYXN0PGNoYXIqPihnX21hbGxvYyhtYXhTaXplKSk7Ci0gICAgSlNTdHJpbmdHZXRVVEY4
Q1N0cmluZyhqc1N0cmluZy5nZXQoKSwgc3RyaW5nLCBtYXhTaXplKTsKKyAgICBpZiAoIUpTU3Ry
aW5nR2V0VVRGOENTdHJpbmcoanNTdHJpbmcuZ2V0KCksIHN0cmluZywgbWF4U2l6ZSkpIHsKKyAg
ICAgICAgZ19mcmVlKHN0cmluZyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwog
ICAgIHJldHVybiBzdHJpbmc7CiB9CiAKKy8qKgorICoganNjX3ZhbHVlX3RvX3N0cmluZ19hc19i
eXRlczoKKyAqIEB2YWx1ZTogYSAjSlNDVmFsdWUKKyAqCisgKiBDb252ZXJ0IEB2YWx1ZSB0byBh
IHN0cmluZyBhbmQgcmV0dXJuIHRoZSByZXN1bHRzIGFzICNHQnl0ZXMuIFRoaXMgaXMgbmVlZGVk
CisgKiB0byBoYW5kbGUgc3RyaW5ncyB3aXRoIG51bGwgY2hhcmFjdGVycy4KKyAqCisgKiBSZXR1
cm5zOiAodHJhbnNmZXIgZnVsbCk6IGEgI0dCeXRlcyB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIGNv
bnZlcnNpb24uCisgKi8KK0dCeXRlcyoganNjX3ZhbHVlX3RvX3N0cmluZ19hc19ieXRlcyhKU0NW
YWx1ZSogdmFsdWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoSlNDX0lTX1ZBTFVFKHZh
bHVlKSwgbnVsbHB0cik7CisKKyAgICBKU0NWYWx1ZVByaXZhdGUqIHByaXYgPSB2YWx1ZS0+cHJp
djsKKyAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IG51bGxwdHI7CisgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IGpzU3RyaW5nKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGpzY0NvbnRl
eHRHZXRKU0NvbnRleHQocHJpdi0+Y29udGV4dC5nZXQoKSksIHByaXYtPmpzVmFsdWUsICZleGNl
cHRpb24pKTsKKyAgICBpZiAoanNjQ29udGV4dEhhbmRsZUV4Y2VwdGlvbklmTmVlZGVkKHByaXYt
PmNvbnRleHQuZ2V0KCksIGV4Y2VwdGlvbikpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgaWYgKCFqc1N0cmluZykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBzaXplX3Qg
bWF4U2l6ZSA9IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShqc1N0cmluZy5nZXQo
KSk7CisgICAgaWYgKG1heFNpemUgPT0gMSkKKyAgICAgICAgcmV0dXJuIGdfYnl0ZXNfbmV3X3N0
YXRpYygiIiwgMCk7CisKKyAgICBhdXRvKiBzdHJpbmcgPSBzdGF0aWNfY2FzdDxjaGFyKj4oZmFz
dE1hbGxvYyhtYXhTaXplKSk7CisgICAgYXV0byBzdHJpbmdTaXplID0gSlNTdHJpbmdHZXRVVEY4
Q1N0cmluZyhqc1N0cmluZy5nZXQoKSwgc3RyaW5nLCBtYXhTaXplKTsKKyAgICBpZiAoIXN0cmlu
Z1NpemUpIHsKKyAgICAgICAgZmFzdEZyZWUoc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorCisgICAgLy8gSWdub3JlIHRoZSBudWxsIGNoYXJhY3RlciBhZGRlZCBieSBK
U1N0cmluZ0dldFVURjhDU3RyaW5nLgorICAgIHJldHVybiBnX2J5dGVzX25ld193aXRoX2ZyZWVf
ZnVuYyhzdHJpbmcsIHN0cmluZ1NpemUgLSAxLCBmYXN0RnJlZSwgc3RyaW5nKTsKK30KKwogLyoq
CiAgKiBqc2NfdmFsdWVfbmV3X2FycmF5OgogICogQGNvbnRleHQ6IGEgI0pTQ0NvbnRleHQKQEAg
LTU0MSw3ICs2MTEsNyBAQCBnYm9vbGVhbiBqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29m
KEpTQ1ZhbHVlKiB2YWx1ZSwgY29uc3QgY2hhciogbmFtZSkKICAgICBKU0NWYWx1ZVByaXZhdGUq
IHByaXYgPSB2YWx1ZS0+cHJpdjsKICAgICAvLyBXZSB1c2UgZXZhbHVhdGUgaGVyZSBhbmQgbm90
IGdldF92YWx1ZSBiZWNhdXNlIGNsYXNzZXMgYXJlIG5vdCBuZWNlc3NhcmlseSBhIHByb3BlcnR5
IG9mIHRoZSBnbG9iYWwgb2JqZWN0LgogICAgIC8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlv
bmFsLm9yZy9lY21hLTI2Mi82LjAvaW5kZXguaHRtbCNzZWMtZ2xvYmFsLWVudmlyb25tZW50LXJl
Y29yZHMKLSAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBjb25zdHJ1Y3RvciA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShwcml2LT5jb250ZXh0LmdldCgpLCBuYW1lKSk7CisgICAgR1JlZlB0
cjxKU0NWYWx1ZT4gY29uc3RydWN0b3IgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUo
cHJpdi0+Y29udGV4dC5nZXQoKSwgbmFtZSwgLTEpKTsKICAgICBhdXRvKiBqc0NvbnRleHQgPSBq
c2NDb250ZXh0R2V0SlNDb250ZXh0KHByaXYtPmNvbnRleHQuZ2V0KCkpOwogCiAgICAgSlNWYWx1
ZVJlZiBleGNlcHRpb24gPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9nbGliL0pTQ1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIv
SlNDVmFsdWUuaAppbmRleCAxMGVkOTY2NDA2NC4uYzYzNTlmOTY4M2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZS5oCkBAIC0xMDgsMTIgKzEwOCwxOSBAQCBKU0Nf
QVBJIEpTQ1ZhbHVlICoKIGpzY192YWx1ZV9uZXdfc3RyaW5nICAgICAgICAgICAgICAgICAgICAg
IChKU0NDb250ZXh0ICAgICAgICAgICAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICAgICAqc3RyaW5nKTsKIAorSlND
X0FQSSBKU0NWYWx1ZSAqCitqc2NfdmFsdWVfbmV3X3N0cmluZ19mcm9tX2J5dGVzICAgICAgICAg
ICAoSlNDQ29udGV4dCAgICAgICAgICAgKmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0J5dGVzICAgICAgICAgICAgICAgKmJ5dGVzKTsKKwogSlND
X0FQSSBnYm9vbGVhbgoganNjX3ZhbHVlX2lzX3N0cmluZyAgICAgICAgICAgICAgICAgICAgICAg
KEpTQ1ZhbHVlICAgICAgICAgICAgICp2YWx1ZSk7CiAKIEpTQ19BUEkgY2hhciAqCiBqc2NfdmFs
dWVfdG9fc3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAoSlNDVmFsdWUgICAgICAgICAgICAg
KnZhbHVlKTsKIAorSlNDX0FQSSBHQnl0ZXMgKgoranNjX3ZhbHVlX3RvX3N0cmluZ19hc19ieXRl
cyAgICAgICAgICAgICAgKEpTQ1ZhbHVlICAgICAgICAgICAgICp2YWx1ZSk7CisKIEpTQ19BUEkg
SlNDVmFsdWUgKgoganNjX3ZhbHVlX25ld19hcnJheSAgICAgICAgICAgICAgICAgICAgICAgKEpT
Q0NvbnRleHQgICAgICAgICAgICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdUeXBlICAgICAgICAgICAgICAgICBmaXJzdF9pdGVtX3R5cGUsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvZG9jcy9qc2MtZ2xpYi00
LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL2RvY3MvanNj
LWdsaWItNC4wLXNlY3Rpb25zLnR4dAppbmRleCBjMmUzZTNlNzlhYS4uMTBkNzI5MmVmMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9kb2NzL2pzYy1nbGliLTQu
MC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL2RvY3Mv
anNjLWdsaWItNC4wLXNlY3Rpb25zLnR4dApAQCAtNzMsOCArNzMsMTAgQEAganNjX3ZhbHVlX25l
d19ib29sZWFuCiBqc2NfdmFsdWVfaXNfYm9vbGVhbgoganNjX3ZhbHVlX3RvX2Jvb2xlYW4KIGpz
Y192YWx1ZV9uZXdfc3RyaW5nCitqc2NfdmFsdWVfbmV3X3N0cmluZ19mcm9tX2J5dGVzCiBqc2Nf
dmFsdWVfaXNfc3RyaW5nCiBqc2NfdmFsdWVfdG9fc3RyaW5nCitqc2NfdmFsdWVfdG9fc3RyaW5n
X2FzX2J5dGVzCiBqc2NfdmFsdWVfbmV3X2FycmF5CiBqc2NfdmFsdWVfbmV3X2FycmF5X2Zyb21f
Z2FycmF5CiBqc2NfdmFsdWVfaXNfYXJyYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGZh
NWY2NTVlNGU5Li42MWY2MjQ4YjIyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzIgQEAKKzIwMTgtMDQtMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHTElCXSBIYW5kbGUgc3RyaW5ncyBjb250YWluaW5nIG51bGwg
Y2hhcmFjdGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg0NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gZXZhbHVhdGUgc2NyaXB0cyBjb250YWluaW5nIG51bGwg
Y2hhcmFjdGVycyBhbmQgdG8gaGFuZGxlIHN0cmluZ3MgdGhhdCBjb250YWlucyB0aGVtCisgICAg
ICAgIHRvby4gSW4gSmF2YVNjcmlwdCBzdHJpbmdzIGFyZSBub3QgbnVsbC10ZXJtaW5hdGVkLCB0
aGV5IGNhbiBjb250YWluIG51bGwgY2hhcmFjdGVycy4gVGhpcyBwYXRjaCBhZGRzIGEgbGVuZ3Ro
CisgICAgICAgIHBhcmFtZXRlciB0byBqc2NfY29udGV4dF92YWx1YXRlKCkgdG8gcGFzcyB0aGUg
c2NyaXB0IGxlbmd0aCAob3IgLTEgaWYgaXQncyBudWxsIHRlcm1pbmF0ZWQpLCBhbmQgbmV3IGZ1
bmN0aW9ucworICAgICAgICBqc2NfdmFsdWVfbmV3X3N0cmluZ19mcm9tX2J5dGVzKCkgYW5kIGpz
Y192YWx1ZV90b19zdHJpbmdfYXNfYnl0ZXMoKSB1c2luZyBHQnl0ZXMgdG8gc3RvcmUgc3RyaW5n
cyB0aGF0IG1pZ2h0CisgICAgICAgIGNvbnRhaW4gbnVsbCBjaGFyYWN0ZXJzLgorCisgICAgICAg
ICogQVBJL09wYXF1ZUpTU3RyaW5nLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTU3RyaW5nOjpjcmVh
dGUpOiBBZGQgYSBjcmVhdGUgY29uc3RydWN0b3IgdGhhdCB0YWtlcyB0aGUgU3RyaW5nLgorICAg
ICAgICAqIEFQSS9PcGFxdWVKU1N0cmluZy5oOgorICAgICAgICAoT3BhcXVlSlNTdHJpbmc6Ok9w
YXF1ZUpTU3RyaW5nKTogQWRkIGEgY29uc3RydWN0b3IgdGhhdCB0YWtlcyB0aGUgU3RyaW5nLgor
ICAgICAgICAqIEFQSS9nbGliL0pTQ0NvbnRleHQuY3BwOgorICAgICAgICAoanNjX2NvbnRleHRf
ZXZhbHVhdGUpOiBBZGQgbGVuZ3RoIHBhcmFtZXRlci4KKyAgICAgICAgKGpzY19jb250ZXh0X2V2
YWx1YXRlX3dpdGhfc291cmNlX3VyaSk6IERpdHRvLgorICAgICAgICAqIEFQSS9nbGliL0pTQ0Nv
bnRleHQuaDoKKyAgICAgICAgKiBBUEkvZ2xpYi9KU0NWYWx1ZS5jcHA6CisgICAgICAgIChqc2Nf
dmFsdWVfbmV3X3N0cmluZ19mcm9tX2J5dGVzKToKKyAgICAgICAgKGpzY192YWx1ZV90b19zdHJp
bmcpOgorICAgICAgICAoanNjX3ZhbHVlX3RvX3N0cmluZ19hc19ieXRlcyk6CisgICAgICAgIChq
c2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKTogUGFzcyBsZW5ndGggdG8gZXZhbHVhdGUu
CisgICAgICAgICogQVBJL2dsaWIvSlNDVmFsdWUuaDoKKyAgICAgICAgKiBBUEkvZ2xpYi9kb2Nz
L2pzYy1nbGliLTQuMC1zZWN0aW9ucy50eHQ6CisKIDIwMTgtMDQtMDkgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBFeGVjdXRpbmcga25vd24gZWRnZSB0eXBlcyBt
YXkgcmV2ZWFsIGEgY29udHJhZGljdGlvbiBjYXVzaW5nIHVzIHRvIGVtaXQgYW4gZXhpdCBhdCBh
IG5vZGUgdGhhdCBpcyBub3QgYWxsb3dlZCB0byBleGl0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmMwMDM5MDQ3MWIuLjVlMDkwYjg3MTcwIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzcgQEAKKzIwMTgtMDQtMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHTElCXSBIYW5kbGUgc3RyaW5ncyBjb250YWluaW5nIG51bGwg
Y2hhcmFjdGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg0NDUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHRlc3QgY2FzZSBmb3Igc3RyaW5ncyB3aXRoIG51bGwgY2hhcmFjdGVycyBhbmQgdXBk
YXRlIGFsbCBjYWxscyB0byBldmFsdWF0ZSB0byBwYXNzIHRoZSBzY3JpcHQgbGVuZ3RoLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1BsYXRmb3JtV1BFLmNtYWtlOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvSmF2YVNjcmlwdENvcmUvZ2xpYi9UZXN0SlNDLmNwcDoKKyAgICAgICAgKHRlc3RKU0NCYXNp
Yyk6CisgICAgICAgICh0ZXN0SlNDRnVuY3Rpb24pOgorICAgICAgICAodGVzdEpTQ09iamVjdCk6
CisgICAgICAgICh0ZXN0SlNDQ2xhc3MpOgorICAgICAgICAodGVzdEpTQ1Byb3RvdHlwZXMpOgor
ICAgICAgICAodGVzdEpTQ0V4Y2VwdGlvbnMpOgorICAgICAgICAodGVzdEpTQ1Byb21pc2VzKToK
KyAgICAgICAgKHRlc3RKU0NHYXJiYWdlQ29sbGVjdG9yKToKKyAgICAgICAgKHRlc3RKU0NXZWFr
VmFsdWUpOgorICAgICAgICAodGVzdHNKU0NWaXJ0dWFsTWFjaGluZSk6CisgICAgICAgICh0ZXN0
c0pTQ0F1dG9jbGVhbnVwcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZhU2Ny
aXB0Q29yZS9nbGliL3NjcmlwdC5qczogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL0RPTUVsZW1lbnRUZXN0LmNwcDoKKyAgICAgICAgKERPTUVsZW1lbnRU
ZXN0Ojp0ZXN0QXV0b0ZpbGwpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9FZGl0b3JUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdFdlYkVkaXRvclRlc3Q6OnRlc3RT
ZWxlY3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvRnJhbWVUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdEZyYW1lVGVzdDo6dGVzdEphdmFTY3Jp
cHRWYWx1ZXMpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJF
eHRlbnNpb25UZXN0LmNwcDoKKyAgICAgICAgKGNvbnNvbGVNZXNzYWdlU2VudENhbGxiYWNrKToK
KyAgICAgICAgKG1ldGhvZENhbGxDYWxsYmFjayk6CisKIDIwMTgtMDQtMDkgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIy
Mjc3Mik6IFtHVEtdW1dQRV0gV2ViUHJvY2VzcyBmcm9tIFdlYktpdEd0aysgMi4xOS45eCBTSUdT
RVZzIGluIFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkgYXQgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOjExMjcKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDNmNmJiOTgzZWYzLi4yNzQxMDM1OTQ0
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xMTksNiArMTE5LDcg
QEAgbGlzdChBUFBFTkQgVGVzdFdURl9TT1VSQ0VTCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0v
VGVzdHMvV1RGL2dsaWIvV29ya1F1ZXVlR0xpYi5jcHAKICkKIAorYWRkX2RlZmluaXRpb25zKC1E
V0VCS0lUX1NSQ19ESVI9IiR7Q01BS0VfU09VUkNFX0RJUn0iKQogYWRkX2V4ZWN1dGFibGUoVGVz
dEpTQyAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9nbGliL1Rlc3RK
U0MuY3BwKQogdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFRlc3RKU0MKICAgICAke0dMSUJfTElCUkFS
SUVTfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggYWYzZjJjMTI3ZTku
Ljg1Y2RmMGY5OTRkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV1BF
LmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTg3
LDYgKzg3LDkgQEAgYWRkX3Rlc3QoVGVzdFdlYktpdCAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9P
VVRQVVRfRElSRUNUT1JZfS9XZWJLaXQvVGVzdFdlYktpdCkKIHNldF90ZXN0c19wcm9wZXJ0aWVz
KFRlc3RXZWJLaXQgUFJPUEVSVElFUyBUSU1FT1VUIDYwKQogc2V0X3RhcmdldF9wcm9wZXJ0aWVz
KFRlc3RXZWJLaXQgUFJPUEVSVElFUyBSVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtURVNUV0VC
S0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vV2ViS2l0KQogCisjIFRlc3RKU0MKKwor
YWRkX2RlZmluaXRpb25zKC1EV0VCS0lUX1NSQ19ESVI9IiR7Q01BS0VfU09VUkNFX0RJUn0iKQog
YWRkX2V4ZWN1dGFibGUoVGVzdEpTQyAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9KYXZhU2Ny
aXB0Q29yZS9nbGliL1Rlc3RKU0MuY3BwKQogdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFRlc3RKU0MK
ICAgICAke0dMSUJfTElCUkFSSUVTfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9KYXZhU2NyaXB0Q29yZS9nbGliL1Rlc3RKU0MuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9nbGliL1Rlc3RKU0MuY3BwCmluZGV4IDcyOWZkNmNmMjI1
Li4zZDBhZTc5NDViNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9KYXZh
U2NyaXB0Q29yZS9nbGliL1Rlc3RKU0MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvSmF2YVNjcmlwdENvcmUvZ2xpYi9UZXN0SlNDLmNwcApAQCAtMTQwLDExICsxNDAsMTEgQEAg
c3RhdGljIHZvaWQgdGVzdEpTQ0Jhc2ljKCkKICAgICAgICAgZ19hc3NlcnRfY21waW50KGpzY192
YWx1ZV90b19pbnQzMih2YWx1ZTEuZ2V0KCkpLCA9PSwgMjUpOwogICAgICAgICBqc2NfY29udGV4
dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwgInZhbHVlMSIsIHZhbHVlMS5nZXQoKSk7CiAKLSAg
ICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2
YWx1YXRlKGNvbnRleHQuZ2V0KCksICJ2YWx1ZTEiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFs
dWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgp
LCAidmFsdWUxIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwog
ICAgICAgICBnX2Fzc2VydF90cnVlKHJlc3VsdC5nZXQoKSA9PSB2YWx1ZTEuZ2V0KCkpOwogCi0g
ICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0Mi5n
ZXQoKSwgInZhbHVlMSIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0
X2V2YWx1YXRlKGNvbnRleHQyLmdldCgpLCAidmFsdWUxIiwgLTEpKTsKICAgICAgICAgY2hlY2tl
ci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9n
ZXRfY29udGV4dChyZXN1bHQuZ2V0KCkpID09IGNvbnRleHQyLmdldCgpKTsKICAgICAgICAgZ19h
c3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfdW5kZWZpbmVkKHJlc3VsdC5nZXQoKSkpOwpAQCAtMTU1
LDcgKzE1NSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NCYXNpYygpCiAgICAgICAgIGdfYXNzZXJ0
X3RydWUoanNjX3ZhbHVlX2lzX3VuZGVmaW5lZChyZXN1bHQuZ2V0KCkpKTsKIAogICAgICAgICBq
c2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4dDMuZ2V0KCksICJ2YWx1ZTEiLCB2YWx1ZTEuZ2V0
KCkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dDMuZ2V0KCksICJ2YWx1ZTEiKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0My5nZXQoKSwgInZhbHVlMSIsIC0xKSk7CiAgICAgICAg
IGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2Nf
dmFsdWVfZ2V0X2NvbnRleHQocmVzdWx0LmdldCgpKSA9PSBjb250ZXh0My5nZXQoKSk7CiAgICAg
ICAgIGdfYXNzZXJ0X2ZhbHNlKHJlc3VsdC5nZXQoKSA9PSB2YWx1ZTEuZ2V0KCkpOwpAQCAtMTY5
LDE4ICsxNjksMTggQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0Jhc2ljKCkKICAgICAgICAgY2hlY2tl
ci53YXRjaChjb250ZXh0LmdldCgpKTsKICAgICAgICAgRXhjZXB0aW9uSGFuZGxlciBleGNlcHRp
b25IYW5kbGVyKGNvbnRleHQuZ2V0KCkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJl
c3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiMiAr
IDIiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiMiArIDIiLCAtMSkpOwogICAgICAgICBj
aGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3Zh
bHVlX2dldF9jb250ZXh0KHJlc3VsdC5nZXQoKSkgPT0gY29udGV4dC5nZXQoKSk7CiAgICAgICAg
IGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251bWJlcihyZXN1bHQuZ2V0KCkpKTsKICAgICAg
ICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMihyZXN1bHQuZ2V0KCkpLCA9PSwg
NCk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0MiA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiMiArIDIiKSk7CisgICAgICAgIEdSZWZQ
dHI8SlNDVmFsdWU+IHJlc3VsdDIgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgIjIgKyAyIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQy
LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfZ2V0X2NvbnRleHQocmVz
dWx0Mi5nZXQoKSkgPT0gY29udGV4dC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUocmVz
dWx0LmdldCgpID09IHJlc3VsdDIuZ2V0KCkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+
IHJlc3VsdDMgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwg
IjMgKyAxIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQzID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICIzICsgMSIsIC0xKSk7CiAgICAg
ICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0My5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUo
anNjX3ZhbHVlX2dldF9jb250ZXh0KHJlc3VsdDMuZ2V0KCkpID09IGNvbnRleHQuZ2V0KCkpOwog
ICAgICAgICBnX2Fzc2VydF90cnVlKHJlc3VsdC5nZXQoKSA9PSByZXN1bHQzLmdldCgpKTsKQEAg
LTE4OSw3ICsxODksNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDQmFzaWMoKQogICAgICAgICByZXN1
bHQgPSBudWxscHRyOwogICAgICAgICByZXN1bHQyID0gbnVsbHB0cjsKICAgICAgICAgcmVzdWx0
MyA9IG51bGxwdHI7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdDQgPSBhZG9wdEdS
ZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgIjIgKyAyIikpOworICAgICAg
ICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQ0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1
YXRlKGNvbnRleHQuZ2V0KCksICIyICsgMiIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2go
cmVzdWx0NC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2dldF9jb250
ZXh0KHJlc3VsdDQuZ2V0KCkpID09IGNvbnRleHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0NC5nZXQoKSkpOwpAQCAtMjAzLDcgKzIwMyw3
IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NCYXNpYygpCiAgICAgICAgIGNoZWNrZXIud2F0Y2goY29u
dGV4dC5nZXQoKSk7CiAgICAgICAgIEV4Y2VwdGlvbkhhbmRsZXIgZXhjZXB0aW9uSGFuZGxlcihj
b250ZXh0LmdldCgpKTsKIAotICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9w
dEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgIjIgKyAyIikpOworICAg
ICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoY29udGV4dC5nZXQoKSwgIjIgKyAyIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRj
aChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9nZXRfY29u
dGV4dChyZXN1bHQuZ2V0KCkpID09IGNvbnRleHQuZ2V0KCkpOwogICAgICAgICBqc2NfY29udGV4
dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwgImZvdXIiLCByZXN1bHQuZ2V0KCkpOwpAQCAtMjE1
LDcgKzIxNSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NCYXNpYygpCiAgICAgICAgIGdfYXNzZXJ0
X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgNCk7CiAgICAgICAg
IGdfYXNzZXJ0X3RydWUocmVzdWx0LmdldCgpID09IHZhbHVlLmdldCgpKTsKIAotICAgICAgICB2
YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZm91
ciIpKTsKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgImZvdXIiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdl
dCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShyZXN1bHQuZ2V0KCkgPT0gdmFsdWUuZ2V0KCkp
OwogICAgIH0KQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDQmFzaWMoKQog
ICAgICAgICBjaGVja2VyLndhdGNoKGNvbnRleHQuZ2V0KCkpOwogICAgICAgICBFeGNlcHRpb25I
YW5kbGVyIGV4Y2VwdGlvbkhhbmRsZXIoY29udGV4dC5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0
cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRl
eHQuZ2V0KCksICJ0d28gPSAyOyBmb3VyID0gdHdvICsgdHdvIikpOworICAgICAgICBHUmVmUHRy
PEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4
dC5nZXQoKSwgInR3byA9IDI7IGZvdXIgPSB0d28gKyB0d28iLCAtMSkpOwogICAgICAgICBjaGVj
a2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVl
X2dldF9jb250ZXh0KHJlc3VsdC5nZXQoKSkgPT0gY29udGV4dC5nZXQoKSk7CiAgICAgICAgIGdf
YXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251bWJlcihyZXN1bHQuZ2V0KCkpKTsKQEAgLTI0Miwx
MCArMjQyLDUzIEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NCYXNpYygpCiAgICAgICAgIGNoZWNrZXIu
d2F0Y2godmFsdWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKHJlc3VsdC5nZXQoKSA9
PSB2YWx1ZS5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0MiA9IGFk
b3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZml2ZSA9IDQiKSk7
CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdDIgPSBhZG9wdEdSZWYoanNjX2NvbnRl
eHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImZpdmUgPSA0IiwgLTEpKTsKICAgICAgICAgY2hl
Y2tlci53YXRjaChyZXN1bHQyLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShyZXN1bHQy
LmdldCgpID09IHZhbHVlLmdldCgpKTsKICAgICB9CisKKyAgICB7CisgICAgICAgIExlYWtDaGVj
a2VyIGNoZWNrZXI7CisgICAgICAgIEdSZWZQdHI8SlNDQ29udGV4dD4gY29udGV4dCA9IGFkb3B0
R1JlZihqc2NfY29udGV4dF9uZXcoKSk7CisgICAgICAgIGNoZWNrZXIud2F0Y2goY29udGV4dC5n
ZXQoKSk7CisgICAgICAgIEV4Y2VwdGlvbkhhbmRsZXIgZXhjZXB0aW9uSGFuZGxlcihjb250ZXh0
LmdldCgpKTsKKworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHNjcmlwdEZpbGUoZ19idWlsZF9m
aWxlbmFtZShXRUJLSVRfU1JDX0RJUiwgIlRvb2xzIiwgIlRlc3RXZWJLaXRBUEkiLCAiVGVzdHMi
LCAiSmF2YVNjcmlwdENvcmUiLCAiZ2xpYiIsICJzY3JpcHQuanMiLCBudWxscHRyKSk7CisgICAg
ICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gY29udGVudHM7CisgICAgICAgIGdzaXplIGNvbnRlbnRz
U2l6ZTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShnX2ZpbGVfZ2V0X2NvbnRlbnRzKHNjcmlwdEZp
bGUuZ2V0KCksICZjb250ZW50cy5vdXRQdHIoKSwgJmNvbnRlbnRzU2l6ZSwgbnVsbHB0cikpOwor
ICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRf
ZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgY29udGVudHMuZ2V0KCksIGNvbnRlbnRzU2l6ZSkpOwor
ICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0X3Ry
dWUoanNjX3ZhbHVlX2lzX3VuZGVmaW5lZChyZXN1bHQuZ2V0KCkpKTsKKworICAgICAgICBHU3Ry
aW5nKiBleHBlY3RlZCA9IGdfc3RyaW5nX25ldygiU3RyaW5nIik7CisgICAgICAgIGV4cGVjdGVk
ID0gZ19zdHJpbmdfYXBwZW5kX2MoZXhwZWN0ZWQsICdcMCcpOworICAgICAgICBleHBlY3RlZCA9
IGdfc3RyaW5nX2FwcGVuZChleHBlY3RlZCwgIldpdGgiKTsKKyAgICAgICAgZXhwZWN0ZWQgPSBn
X3N0cmluZ19hcHBlbmRfYyhleHBlY3RlZCwgJ1wwJyk7CisgICAgICAgIGV4cGVjdGVkID0gZ19z
dHJpbmdfYXBwZW5kKGV4cGVjdGVkLCAiTnVsbCIpOworICAgICAgICBHUmVmUHRyPEdCeXRlcz4g
ZXhwZWN0ZWRCeXRlcyA9IGFkb3B0R1JlZihnX3N0cmluZ19mcmVlX3RvX2J5dGVzKGV4cGVjdGVk
KSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gdmFsdWUgPSBhZG9wdEdSZWYoanNjX2Nv
bnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgInRlc3RTdHJpbmdXaXRoTnVsbCgpIiwgLTEp
KTsKKyAgICAgICAgY2hlY2tlci53YXRjaCh2YWx1ZS5nZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0
X3RydWUoanNjX3ZhbHVlX2lzX3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBHVW5pcXVl
UHRyPGNoYXI+IHZhbHVlU3RyaW5nKGpzY192YWx1ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKTsK
KyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHZhbHVlU3RyaW5nLmdldCgpLCA9PSwgIlN0cmluZyIp
OworICAgICAgICBHUmVmUHRyPEdCeXRlcz4gdmFsdWVCeXRlcyA9IGFkb3B0R1JlZihqc2NfdmFs
dWVfdG9fc3RyaW5nX2FzX2J5dGVzKHZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0X3Ry
dWUoZ19ieXRlc19lcXVhbCh2YWx1ZUJ5dGVzLmdldCgpLCBleHBlY3RlZEJ5dGVzLmdldCgpKSk7
CisKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX25ld19zdHJpbmdfZnJvbV9i
eXRlcyhjb250ZXh0LmdldCgpLCBleHBlY3RlZEJ5dGVzLmdldCgpKSk7CisgICAgICAgIGNoZWNr
ZXIud2F0Y2godmFsdWUuZ2V0KCkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9p
c19zdHJpbmcodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgdmFsdWVTdHJpbmcucmVzZXQoanNjX3Zh
bHVlX3RvX3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF9jbXBzdHIodmFs
dWVTdHJpbmcuZ2V0KCksID09LCAiU3RyaW5nIik7CisgICAgICAgIHZhbHVlQnl0ZXMgPSBhZG9w
dEdSZWYoanNjX3ZhbHVlX3RvX3N0cmluZ19hc19ieXRlcyh2YWx1ZS5nZXQoKSkpOworICAgICAg
ICBnX2Fzc2VydF90cnVlKGdfYnl0ZXNfZXF1YWwodmFsdWVCeXRlcy5nZXQoKSwgZXhwZWN0ZWRC
eXRlcy5nZXQoKSkpOworCisgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0Lmdl
dCgpLCAicyIsIHZhbHVlLmdldCgpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19j
b250ZXh0X2dldF92YWx1ZShjb250ZXh0LmdldCgpLCAicyIpKTsKKyAgICAgICAgY2hlY2tlci53
YXRjaChyZXN1bHQuZ2V0KCkpOworICAgICAgICBnX2Fzc2VydF90cnVlKHJlc3VsdC5nZXQoKSA9
PSB2YWx1ZS5nZXQoKSk7CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCB0ZXN0SlNDVHlwZXMoKQpA
QCAtNTMwLDcgKzU3Myw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NGdW5jdGlvbigpCiAgICAgICAg
IEdSZWZQdHI8SlNDVmFsdWU+IGZ1bmN0aW9uID0gYWRvcHRHUmVmKGpzY192YWx1ZV9uZXdfZnVu
Y3Rpb24oY29udGV4dC5nZXQoKSwgImZvbyIsIEdfQ0FMTEJBQ0soZm9vKSwgbnVsbHB0ciwgbnVs
bHB0ciwgIEdfVFlQRV9JTlQsIDEsIEdfVFlQRV9JTlQpKTsKICAgICAgICAgY2hlY2tlci53YXRj
aChmdW5jdGlvbi5nZXQoKSk7CiAgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0
LmdldCgpLCAiZm9vIiwgZnVuY3Rpb24uZ2V0KCkpOwotICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVl
PiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwg
ImZvbygyMDApIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdS
ZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImZvbygyMDApIiwgLTEpKTsK
ICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0
X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIocmVzdWx0LmdldCgpKSwgPT0sIDQwMCk7CkBAIC01
NDYsMTAgKzU4OSwxMCBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDRnVuY3Rpb24oKQogICAgICAgICBj
aGVja2VyLndhdGNoKGNvbnRleHQuZ2V0KCkpOwogICAgICAgICBFeGNlcHRpb25IYW5kbGVyIGV4
Y2VwdGlvbkhhbmRsZXIoY29udGV4dC5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1
ZT4gZnVuY3Rpb24gPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQo
KSwgImZvbyA9IGZ1bmN0aW9uKG4pIHsgcmV0dXJuIG4gKiAyOyB9IikpOworICAgICAgICBHUmVm
UHRyPEpTQ1ZhbHVlPiBmdW5jdGlvbiA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShj
b250ZXh0LmdldCgpLCAiZm9vID0gZnVuY3Rpb24obikgeyByZXR1cm4gbiAqIDI7IH0iLCAtMSkp
OwogICAgICAgICBjaGVja2VyLndhdGNoKGZ1bmN0aW9uLmdldCgpKTsKIAotICAgICAgICBHUmVm
UHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgImZvbygyMDApIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1
bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImZvbygy
MDApIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAg
ICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0LmdldCgpKSk7CiAgICAg
ICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIocmVzdWx0LmdldCgpKSwgPT0s
IDQwMCk7CkBAIC01NjgsMTQgKzYxMSwxNCBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDRnVuY3Rpb24o
KQogICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBmdW5jdGlvbiA9IGFkb3B0R1JlZihqc2NfdmFs
dWVfbmV3X2Z1bmN0aW9uKGNvbnRleHQuZ2V0KCksICJjYWxsYmFjayIsIEdfQ0FMTEJBQ0soY2Fs
bGJhY2spLCBudWxscHRyLCBudWxscHRyLCBHX1RZUEVfTk9ORSwgMSwgSlNDX1RZUEVfVkFMVUUp
KTsKICAgICAgICAgY2hlY2tlci53YXRjaChmdW5jdGlvbi5nZXQoKSk7CiAgICAgICAgIGpzY19j
b250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCAiY2FsbGJhY2siLCBmdW5jdGlvbi5nZXQo
KSk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAidmFyIHJlc3VsdCA9IDA7IGNhbGxiYWNrKGZ1
bmN0aW9uKG4peyByZXN1bHQgPSBuICogMjsgfSk7IHJlc3VsdCIpKTsKKyAgICAgICAgR1JlZlB0
cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRl
eHQuZ2V0KCksICJ2YXIgcmVzdWx0ID0gMDsgY2FsbGJhY2soZnVuY3Rpb24obil7IHJlc3VsdCA9
IG4gKiAyOyB9KTsgcmVzdWx0IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQu
Z2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0
LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIocmVz
dWx0LmdldCgpKSwgPT0sIDQwMCk7CiAKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19j
b250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJyZXN1bHQgPSAwIikpOworICAgICAgICBy
ZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgInJl
c3VsdCA9IDAiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7Ci0g
ICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0Lmdl
dCgpLCAicmVzdWx0IikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRf
ZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgInJlc3VsdCIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIu
d2F0Y2gocmVzdWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNf
bnVtYmVyKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBpbnQoanNjX3ZhbHVl
X3RvX2ludDMyKHJlc3VsdC5nZXQoKSksID09LCAwKTsKQEAgLTU4NCw3ICs2MjcsNyBAQCBzdGF0
aWMgdm9pZCB0ZXN0SlNDRnVuY3Rpb24oKQogICAgICAgICBjaGVja2VyLndhdGNoKGRibC5nZXQo
KSk7CiAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1
ZV9mdW5jdGlvbl9jYWxsKGZ1bmN0aW9uLmdldCgpLCBKU0NfVFlQRV9WQUxVRSwgZGJsLmdldCgp
LCBHX1RZUEVfTk9ORSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKLSAg
ICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0
KCksICJyZXN1bHQiKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9l
dmFsdWF0ZShjb250ZXh0LmdldCgpLCAicmVzdWx0IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53
YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19u
dW1iZXIocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVf
dG9faW50MzIocmVzdWx0LmdldCgpKSwgPT0sIDQwMCk7CkBAIC02MDEsNyArNjQ0LDcgQEAgc3Rh
dGljIHZvaWQgdGVzdEpTQ0Z1bmN0aW9uKCkKICAgICAgICAgICAgICIgICAgdmFyIHJlc3VsdCA9
IDA7XG4iCiAgICAgICAgICAgICAiICAgIGZvciAodmFyIGkgaW4gYXJyYXkpIHsgcmVzdWx0ICs9
IGFycmF5W2ldOyB9XG4iCiAgICAgICAgICAgICAiICAgIHJldHVybiByZXN1bHQ7XG4iCi0gICAg
ICAgICAgICAifSIpKTsKKyAgICAgICAgICAgICJ9IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53
YXRjaChmdW5jdGlvbi5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lz
X29iamVjdChmdW5jdGlvbi5nZXQoKSkpOwogCkBAIC02MzMsNyArNjc2LDcgQEAgc3RhdGljIHZv
aWQgdGVzdEpTQ0Z1bmN0aW9uKCkKICAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZnVuY3Rpb24g
PSBhZG9wdEdSZWYoanNjX3ZhbHVlX25ld19mdW5jdGlvbihjb250ZXh0LmdldCgpLCAic3VtRnVu
Y3Rpb24iLCBHX0NBTExCQUNLKHN1bUZ1bmN0aW9uKSwgbnVsbHB0ciwgbnVsbHB0ciwgR19UWVBF
X0lOVCwgMSwgR19UWVBFX1BUUl9BUlJBWSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKGZ1bmN0
aW9uLmdldCgpKTsKICAgICAgICAganNjX2NvbnRleHRfc2V0X3ZhbHVlKGNvbnRleHQuZ2V0KCks
ICJzdW1GdW5jdGlvbiIsIGZ1bmN0aW9uLmdldCgpKTsKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1
ZT4gdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwg
InN1bUZ1bmN0aW9uKFsyLDQsNl0pIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB2YWx1
ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAic3VtRnVu
Y3Rpb24oWzIsNCw2XSkiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgp
KTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVlLmdldCgp
KSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIodmFsdWUuZ2V0
KCkpLCA9PSwgMTIpOwpAQCAtNjU4LDcgKzcwMSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NPYmpl
Y3QoKQogICAgICAgICBjaGVja2VyLndhdGNoKGNvbnRleHQuZ2V0KCkpOwogICAgICAgICBFeGNl
cHRpb25IYW5kbGVyIGV4Y2VwdGlvbkhhbmRsZXIoY29udGV4dC5nZXQoKSk7CiAKLSAgICAgICAg
R1JlZlB0cjxKU0NWYWx1ZT4gZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNv
bnRleHQuZ2V0KCksICJjbGFzcyBGb28geyBmb28obikgeyByZXR1cm4gbiAqIDI7IH0gfTsgZm9v
ID0gbmV3IEZvbzsiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZvbyA9IGFkb3B0R1Jl
Zihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiY2xhc3MgRm9vIHsgZm9vKG4p
IHsgcmV0dXJuIG4gKiAyOyB9IH07IGZvbyA9IG5ldyBGb287IiwgLTEpKTsKICAgICAgICAgY2hl
Y2tlci53YXRjaChmb28uZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9p
c19vYmplY3QoZm9vLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX29i
amVjdF9pc19pbnN0YW5jZV9vZihmb28uZ2V0KCksICJGb28iKSk7CkBAIC02NzUsNyArNzE4LDcg
QEAgc3RhdGljIHZvaWQgdGVzdEpTQ09iamVjdCgpCiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNj
X3ZhbHVlX2lzX3VuZGVmaW5lZChyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfZGlk
X3Rocm93KGV4Y2VwdGlvbkhhbmRsZXIsIGRpZFRocm93KTsKIAotICAgICAgICBHUmVmUHRyPEpT
Q1ZhbHVlPiBjb25zdHJ1Y3RvciA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiRm9vIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBjb25zdHJ1Y3Rv
ciA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiRm9vIiwg
LTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChjb25zdHJ1Y3Rvci5nZXQoKSk7CiAgICAgICAg
IGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX2NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yLmdldCgp
KSk7CiAKQEAgLTY5MCwxMiArNzMzLDEyIEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NPYmplY3QoKQog
ICAgICAgICBnX2Fzc2VydF9jbXBpbnQoanNjX3ZhbHVlX3RvX2ludDMyKHJlc3VsdC5nZXQoKSks
ID09LCA2MDApOwogCiAgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgp
LCAiZm9vMiIsIGZvby5nZXQoKSk7Ci0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZm9vMiBpbnN0YW5jZW9mIEZvbyIpKTsKKyAg
ICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0
KCksICJmb28yIGluc3RhbmNlb2YgRm9vIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChy
ZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFu
KHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19ib29s
ZWFuKHJlc3VsdC5nZXQoKSkpOwogCi0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZm9vMi5mb28oNTAwKSIpKTsKKyAgICAgICAg
cmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJm
b28yLmZvbyg1MDApIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkp
OwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0LmdldCgp
KSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIocmVzdWx0Lmdl
dCgpKSwgPT0sIDEwMDApOwpAQCAtNzE4LDI2ICs3NjEsMjYgQEAgc3RhdGljIHZvaWQgdGVzdEpT
Q09iamVjdCgpCiAgICAgICAgIGpzY192YWx1ZV9vYmplY3RfZGVmaW5lX3Byb3BlcnR5X2RhdGEo
b2JqZWN0LmdldCgpLCAidmFsIiwgc3RhdGljX2Nhc3Q8SlNDVmFsdWVQcm9wZXJ0eUZsYWdzPigw
KSwgcHJvcGVydHkuZ2V0KCkpOwogICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4
dC5nZXQoKSwgImYiLCBvYmplY3QuZ2V0KCkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+
IHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJm
LnZhbDsiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpz
Y19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLnZhbDsiLCAtMSkpOwogICAgICAg
ICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2Nf
dmFsdWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChq
c2NfdmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgMjUpOwogCiAgICAgICAgIGJvb2wg
ZGlkVGhyb3cgPSBmYWxzZTsKICAgICAgICAgZ19hc3NlcnRfdGhyb3dfYmVnaW4oZXhjZXB0aW9u
SGFuZGxlciwgZGlkVGhyb3cpOwotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4
dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiJ3VzZSBzdHJpY3QnOyBmLnZhbCA9IDMyOyIpKTsK
KyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5n
ZXQoKSwgIid1c2Ugc3RyaWN0JzsgZi52YWwgPSAzMjsiLCAtMSkpOwogICAgICAgICBjaGVja2Vy
LndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNf
dW5kZWZpbmVkKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2RpZF90aHJvdyhleGNl
cHRpb25IYW5kbGVyLCBkaWRUaHJvdyk7CiAKLSAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNj
X2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYucHJvcGVydHlJc0VudW1lcmFibGUo
J3ZhbCcpOyIpKTsKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVh
dGUoY29udGV4dC5nZXQoKSwgImYucHJvcGVydHlJc0VudW1lcmFibGUoJ3ZhbCcpOyIsIC0xKSk7
CiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0
X3RydWUoanNjX3ZhbHVlX3RvX2Jvb2xlYW4odmFsdWUuZ2V0KCkpID09IEZBTFNFKTsKIAotICAg
ICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgp
LCAiZGVsZXRlIGYudmFsOyIpKTsKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRl
eHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImRlbGV0ZSBmLnZhbDsiLCAtMSkpOwogICAgICAg
ICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKLSAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYo
anNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYudmFsOyIpKTsKKyAgICAgICAg
dmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYu
dmFsOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0KCkpOwogICAgICAg
ICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIodmFsdWUuZ2V0KCkpKTsKICAgICAg
ICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMih2YWx1ZS5nZXQoKSksID09LCAy
NSk7CkBAIC03NTEsMTkgKzc5NCwxOSBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDT2JqZWN0KCkKICAg
ICAgICAgcHJvcGVydHkgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX25ld19udW1iZXIoY29udGV4dC5n
ZXQoKSwgMzIpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChwcm9wZXJ0eS5nZXQoKSk7CiAgICAg
ICAgIGpzY192YWx1ZV9vYmplY3RfZGVmaW5lX3Byb3BlcnR5X2RhdGEob2JqZWN0LmdldCgpLCAi
dmFsMiIsIHN0YXRpY19jYXN0PEpTQ1ZhbHVlUHJvcGVydHlGbGFncz4oSlNDX1ZBTFVFX1BST1BF
UlRZX0VOVU1FUkFCTEUgfCBKU0NfVkFMVUVfUFJPUEVSVFlfV1JJVEFCTEUpLCBwcm9wZXJ0eS5n
ZXQoKSk7Ci0gICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNv
bnRleHQuZ2V0KCksICJmLnZhbDI7IikpOworICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi52YWwyOyIsIC0xKSk7CiAgICAgICAg
IGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192
YWx1ZV9pc19udW1iZXIodmFsdWUuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21waW50KGpz
Y192YWx1ZV90b19pbnQzMih2YWx1ZS5nZXQoKSksID09LCAzMik7CiAKLSAgICAgICAgdmFsdWUg
PSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgIid1c2Ugc3Ry
aWN0JzsgZi52YWwyID0gNDU7IikpOworICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiJ3VzZSBzdHJpY3QnOyBmLnZhbDIgPSA0NTsi
LCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKLSAgICAgICAgdmFs
dWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYudmFs
MjsiKSk7CisgICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNv
bnRleHQuZ2V0KCksICJmLnZhbDI7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaCh2YWx1
ZS5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251bWJlcih2YWx1
ZS5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBpbnQoanNjX3ZhbHVlX3RvX2ludDMyKHZh
bHVlLmdldCgpKSwgPT0sIDQ1KTsKIAotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5wcm9wZXJ0eUlzRW51bWVyYWJsZSgndmFs
MicpOyIpKTsKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUo
Y29udGV4dC5nZXQoKSwgImYucHJvcGVydHlJc0VudW1lcmFibGUoJ3ZhbDInKTsiLCAtMSkpOwog
ICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1
ZShqc2NfdmFsdWVfaXNfYm9vbGVhbih2YWx1ZS5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHZhbHVlLmdldCgpKSA9PSBUUlVFKTsKQEAgLTc3MSw3
ICs4MTQsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDT2JqZWN0KCkKICAgICAgICAgcHJvcGVydHkg
PSBhZG9wdEdSZWYoanNjX3ZhbHVlX25ld19udW1iZXIoY29udGV4dC5nZXQoKSwgMTI1KSk7CiAg
ICAgICAgIGNoZWNrZXIud2F0Y2gocHJvcGVydHkuZ2V0KCkpOwogICAgICAgICBqc2NfdmFsdWVf
b2JqZWN0X2RlZmluZV9wcm9wZXJ0eV9kYXRhKG9iamVjdC5nZXQoKSwgInZhbDMiLCBzdGF0aWNf
Y2FzdDxKU0NWYWx1ZVByb3BlcnR5RmxhZ3M+KEpTQ19WQUxVRV9QUk9QRVJUWV9DT05GSUdVUkFC
TEUgfCBKU0NfVkFMVUVfUFJPUEVSVFlfV1JJVEFCTEUpLCBwcm9wZXJ0eS5nZXQoKSk7Ci0gICAg
ICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCks
ICJmLnZhbDM7IikpOworICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFs
dWF0ZShjb250ZXh0LmdldCgpLCAiZi52YWwzOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0
Y2godmFsdWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1i
ZXIodmFsdWUuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19p
bnQzMih2YWx1ZS5nZXQoKSksID09LCAxMjUpOwpAQCAtNzc5LDE0ICs4MjIsMTQgQEAgc3RhdGlj
IHZvaWQgdGVzdEpTQ09iamVjdCgpCiAgICAgICAgIHByb3BlcnR5ID0gYWRvcHRHUmVmKGpzY192
YWx1ZV9uZXdfbnVtYmVyKGNvbnRleHQuZ2V0KCksIDE1MCkpOwogICAgICAgICBjaGVja2VyLndh
dGNoKHByb3BlcnR5LmdldCgpKTsKICAgICAgICAganNjX3ZhbHVlX29iamVjdF9kZWZpbmVfcHJv
cGVydHlfZGF0YShvYmplY3QuZ2V0KCksICJ2YWwzIiwgc3RhdGljX2Nhc3Q8SlNDVmFsdWVQcm9w
ZXJ0eUZsYWdzPihKU0NfVkFMVUVfUFJPUEVSVFlfQ09ORklHVVJBQkxFKSwgcHJvcGVydHkuZ2V0
KCkpOwotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiZi52YWwzOyIpKTsKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2Nv
bnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYudmFsMzsiLCAtMSkpOwogICAgICAgICBj
aGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFs
dWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2Nf
dmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgMTUwKTsKIAotICAgICAgICB2YWx1ZSA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZGVsZXRlIGYu
dmFsMzsiKSk7CisgICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRl
KGNvbnRleHQuZ2V0KCksICJkZWxldGUgZi52YWwzOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIu
d2F0Y2godmFsdWUuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4
dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi52YWwzOyIpKTsKKyAgICAgICAgdmFsdWUgPSBh
ZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYudmFsMzsiLCAt
MSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3Nl
cnRfdHJ1ZShqc2NfdmFsdWVfaXNfdW5kZWZpbmVkKHZhbHVlLmdldCgpKSk7CiAKQEAgLTk0NCwx
MSArOTg3LDExIEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NDbGFzcygpCiAgICAgICAgIGdfYXNzZXJ0
X3RydWUoanNjX3ZhbHVlX2lzX2NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yLmdldCgpKSk7CiAgICAg
ICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCBqc2NfY2xhc3NfZ2V0X25h
bWUoanNjQ2xhc3MpLCBjb25zdHJ1Y3Rvci5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NW
YWx1ZT4gZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCks
ICJmID0gbmV3IEZvbygpOyIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZm9vID0gYWRv
cHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmID0gbmV3IEZvbygp
OyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2goZm9vLmdldCgpKTsKICAgICAgICAgZ19h
c3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfb2JqZWN0KGZvby5nZXQoKSkpOwogICAgICAgICBnX2Fz
c2VydF90cnVlKGpzY192YWx1ZV9vYmplY3RfaXNfaW5zdGFuY2Vfb2YoZm9vLmdldCgpLCBqc2Nf
Y2xhc3NfZ2V0X25hbWUoanNjQ2xhc3MpKSk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJl
c3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiBp
bnN0YW5jZW9mIEZvbzsiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFk
b3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiBpbnN0YW5jZW9m
IEZvbzsiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAg
ICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CiAg
ICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX3RvX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7
CkBAIC05NTksMTkgKzEwMDIsMTkgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0NsYXNzKCkKICAgICAg
ICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAgICAg
ICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwg
MCk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gdmFsdWUyID0gYWRvcHRHUmVmKGpzY19j
b250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLmdldEZvbygpIikpOworICAgICAgICBH
UmVmUHRyPEpTQ1ZhbHVlPiB2YWx1ZTIgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUo
Y29udGV4dC5nZXQoKSwgImYuZ2V0Rm9vKCkiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNo
KHZhbHVlMi5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUodmFsdWUuZ2V0KCkgPT0gdmFs
dWUyLmdldCgpKTsKIAogICAgICAgICBqc2NfY2xhc3NfYWRkX21ldGhvZChqc2NDbGFzcywgInNl
dEZvbyIsIEdfQ0FMTEJBQ0soc2V0Rm9vKSwgbnVsbHB0ciwgbnVsbHB0ciwgR19UWVBFX05PTkUs
IDEsIEdfVFlQRV9JTlQpOwogICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29i
amVjdF9pbnZva2VfbWV0aG9kKGZvby5nZXQoKSwgInNldEZvbyIsIEdfVFlQRV9JTlQsIDI1LCBH
X1RZUEVfTk9ORSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7Ci0gICAg
ICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCks
ICJmLmdldEZvbygpIikpOworICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9l
dmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5nZXRGb28oKSIsIC0xKSk7CiAgICAgICAgIGNoZWNr
ZXIud2F0Y2godmFsdWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9p
c19udW1iZXIodmFsdWUuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1
ZV90b19pbnQzMih2YWx1ZS5nZXQoKSksID09LCAyNSk7CiAKLSAgICAgICAgcmVzdWx0ID0gYWRv
cHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLnNldEZvbyg0NSki
KSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiZi5zZXRGb28oNDUpIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChy
ZXN1bHQuZ2V0KCkpOwogICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0
X2ludm9rZV9tZXRob2QoZm9vLmdldCgpLCAiZ2V0Rm9vIiwgR19UWVBFX05PTkUpKTsKICAgICAg
ICAgY2hlY2tlci53YXRjaCh2YWx1ZS5nZXQoKSk7CkBAIC05ODMsMjggKzEwMjYsMjggQEAgc3Rh
dGljIHZvaWQgdGVzdEpTQ0NsYXNzKCkKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVf
aXNfY29uc3RydWN0b3IoY29uc3RydWN0b3IyLmdldCgpKSk7CiAgICAgICAgIGpzY192YWx1ZV9v
YmplY3Rfc2V0X3Byb3BlcnR5KGNvbnN0cnVjdG9yLmdldCgpLCAiQ3JlYXRlV2l0aEZvbyIsIGNv
bnN0cnVjdG9yMi5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZm9vMiA9IGFk
b3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIgPSBuZXcgRm9v
LkNyZWF0ZVdpdGhGb28oNDIpOyIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZm9vMiA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIgPSBuZXcg
Rm9vLkNyZWF0ZVdpdGhGb28oNDIpOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2goZm9v
Mi5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChmb28y
LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0
YW5jZV9vZihmb28yLmdldCgpLCBqc2NfY2xhc3NfZ2V0X25hbWUoanNjQ2xhc3MpKSk7CiAgICAg
ICAgIGdfYXNzZXJ0X2ZhbHNlKGZvby5nZXQoKSA9PSBmb28yLmdldCgpKTsKLSAgICAgICAgcmVz
dWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMiBp
bnN0YW5jZW9mIEZvbzsiKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4
dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIgaW5zdGFuY2VvZiBGb287IiwgLTEpKTsKICAg
ICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVl
KGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwotICAgICAgICByZXN1bHQg
PSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYyIGluc3Rh
bmNlb2YgRm9vLkNyZWF0ZVdpdGhGb287IikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYo
anNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYyIGluc3RhbmNlb2YgRm9vLkNy
ZWF0ZVdpdGhGb287IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkp
OwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQo
KSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5n
ZXQoKSkpOwogCiAgICAgICAgIGpzY19jbGFzc19hZGRfcHJvcGVydHkoanNjQ2xhc3MsICJmb28i
LCBHX1RZUEVfSU5ULCBHX0NBTExCQUNLKGdldEZvbyksIEdfQ0FMTEJBQ0soc2V0Rm9vKSwgbnVs
bHB0ciwgbnVsbHB0cik7Ci0gICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2
YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMi5mb28iKSk7CisgICAgICAgIHZhbHVlID0gYWRvcHRH
UmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMi5mb28iLCAtMSkpOwog
ICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1
ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2Nt
cGludChqc2NfdmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgNDIpOwotICAgICAgICBy
ZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYy
LmZvbyA9IDUyIikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoY29udGV4dC5nZXQoKSwgImYyLmZvbyA9IDUyIiwgLTEpKTsKICAgICAgICAgY2hlY2tl
ci53YXRjaChyZXN1bHQuZ2V0KCkpOwotICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIuZm9vIikpOworICAgICAgICB2YWx1ZSA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIuZm9vIiwg
LTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaCh2YWx1ZS5nZXQoKSk7CiAgICAgICAgIGdfYXNz
ZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251bWJlcih2YWx1ZS5nZXQoKSkpOwogICAgICAgICBnX2Fz
c2VydF9jbXBpbnQoanNjX3ZhbHVlX3RvX2ludDMyKHZhbHVlLmdldCgpKSwgPT0sIDUyKTsKQEAg
LTEwNDMsNyArMTA4Niw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NDbGFzcygpCiAgICAgICAgIGpz
Y19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCBqc2NfY2xhc3NfZ2V0X25hbWUoanNj
Q2xhc3MpLCBjb25zdHJ1Y3Rvci5nZXQoKSk7CiAgICAgICAgIGpzY19jbGFzc19hZGRfcHJvcGVy
dHkoanNjQ2xhc3MsICJzaWJsaW5nIiwgR19UWVBFX1BPSU5URVIsIEdfQ0FMTEJBQ0soZ2V0U2li
bGluZyksIEdfQ0FMTEJBQ0soc2V0U2libGluZyksIG51bGxwdHIsIG51bGxwdHIpOwogCi0gICAg
ICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFs
dWF0ZShjb250ZXh0LmdldCgpLCAiZjEgPSBuZXcgRm9vKCk7IGYyID0gbmV3IEZvbygpOyBmMi5z
aWJsaW5nID0gZjEiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0
R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjEgPSBuZXcgRm9vKCk7
IGYyID0gbmV3IEZvbygpOyBmMi5zaWJsaW5nID0gZjEiLCAtMSkpOwogICAgICAgICBjaGVja2Vy
LndhdGNoKHJlc3VsdC5nZXQoKSk7CiAKICAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZjEgPSBh
ZG9wdEdSZWYoanNjX2NvbnRleHRfZ2V0X3ZhbHVlKGNvbnRleHQuZ2V0KCksICJmMSIpKTsKQEAg
LTEwNTMsMTIgKzEwOTYsMTIgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0NsYXNzKCkKICAgICAgICAg
Y2hlY2tlci53YXRjaChmMi5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVl
X2lzX29iamVjdChmMi5nZXQoKSkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVl
ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMi5zaWJs
aW5nIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB2YWx1ZSA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIuc2libGluZyIsIC0xKSk7CiAgICAg
ICAgIGNoZWNrZXIud2F0Y2godmFsdWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKHZh
bHVlLmdldCgpID09IGYxLmdldCgpKTsKIAogICAgICAgICBqc2NfdmFsdWVfb2JqZWN0X3NldF9w
cm9wZXJ0eShmMS5nZXQoKSwgInNpYmxpbmciLCBmMi5nZXQoKSk7Ci0gICAgICAgIHZhbHVlID0g
YWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMS5zaWJsaW5n
IikpOworICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiZjEuc2libGluZyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFs
dWUuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKHZhbHVlLmdldCgpID09IGYyLmdldCgp
KTsKICAgICB9CkBAIC0xMDg1LDE4ICsxMTI4LDE4IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NDbGFz
cygpCiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0YW5jZV9v
Zihmb28uZ2V0KCksIGpzY19jbGFzc19nZXRfbmFtZShqc2NDbGFzcykpKTsKIAogICAgICAgICBq
c2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwgImYiLCBmb28uZ2V0KCkpOwotICAg
ICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoY29udGV4dC5nZXQoKSwgImYgaW5zdGFuY2VvZiBGb287IikpOworICAgICAgICBHUmVm
UHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgImYgaW5zdGFuY2VvZiBGb287IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53
YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19i
b29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90
b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogCi0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5mb28iKSk7CisgICAgICAgIHJl
c3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5m
b28iLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAg
IGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251bWJlcihyZXN1bHQuZ2V0KCkpKTsKICAgICAg
ICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMihyZXN1bHQuZ2V0KCkpLCA9PSwg
MjUpOwogCiAgICAgICAgIHNldEZvbyhmLCA0Mik7Ci0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1Jl
Zihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5mb28iKSk7CisgICAgICAg
IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAi
Zi5mb28iLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAg
ICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251bWJlcihyZXN1bHQuZ2V0KCkpKTsKICAg
ICAgICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMihyZXN1bHQuZ2V0KCkpLCA9
PSwgNDIpOwpAQCAtMTExOCwyMyArMTE2MSwyMyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDQ2xhc3Mo
KQogICAgICAgICBnX2Fzc2VydF9mYWxzZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29m
KGZvby5nZXQoKSwganNjX2NsYXNzX2dldF9uYW1lKGJhekNsYXNzKSkpOwogCiAgICAgICAgIGpz
Y19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCAiYnoiLCBiYXouZ2V0KCkpOwotICAg
ICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQo
KSwgImJ6IGluc3RhbmNlb2YgQmF6OyIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpz
Y19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJieiBpbnN0YW5jZW9mIEJhejsiLCAt
MSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNz
ZXJ0X3RydWUoanNjX3ZhbHVlX2lzX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdf
YXNzZXJ0X3RydWUoanNjX3ZhbHVlX3RvX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CiAKLSAgICAg
ICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCks
ICJieiBpbnN0YW5jZW9mIEZvbzsiKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiYnogaW5zdGFuY2VvZiBGb287IiwgLTEp
KTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2Vy
dF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fz
c2VydF9mYWxzZShqc2NfdmFsdWVfdG9fYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsKIAotICAgICAg
ICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwg
ImYgaW5zdGFuY2VvZiBCYXo7IikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2Nv
bnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYgaW5zdGFuY2VvZiBCYXo7IiwgLTEpKTsK
ICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2Vy
dF9mYWxzZShqc2NfdmFsdWVfdG9fYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsKIAogICAgICAgICBq
c2NfdmFsdWVfb2JqZWN0X3NldF9wcm9wZXJ0eShiYXouZ2V0KCksICJmb28iLCBmb28uZ2V0KCkp
OwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4
dC5nZXQoKSwgImJ6LmZvbyIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250
ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJiei5mb28iLCAtMSkpOwogICAgICAgICBjaGVj
a2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUocmVzdWx0Lmdl
dCgpID09IGZvby5nZXQoKSk7CiAgICAgfQpAQCAtMTE2Miw3ICsxMjA1LDcgQEAgc3RhdGljIHZv
aWQgdGVzdEpTQ0NsYXNzKCkKIAogICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4
dC5nZXQoKSwgImYxIiwgZm9vLmdldCgpKTsKICAgICAgICAganNjX2NvbnRleHRfc2V0X3ZhbHVl
KGNvbnRleHQuZ2V0KCksICJmMiIsIGZvby5nZXQoKSk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFs
dWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgp
LCAiZjEgPT09IGYyOyIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRv
cHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMSA9PT0gZjI7Iiwg
LTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fz
c2VydF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBn
X2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwpAQCAtMTE3
MCw3ICsxMjEzLDcgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0NsYXNzKCkKICAgICAgICAgR1JlZlB0
cjxKU0NWYWx1ZT4gcHJvcGVydHkgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX25ld19udW1iZXIoY29u
dGV4dC5nZXQoKSwgNTApKTsKICAgICAgICAgY2hlY2tlci53YXRjaChwcm9wZXJ0eS5nZXQoKSk7
CiAgICAgICAgIGpzY192YWx1ZV9vYmplY3Rfc2V0X3Byb3BlcnR5KGZvby5nZXQoKSwgIm4iLCBw
cm9wZXJ0eS5nZXQoKSk7Ci0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9l
dmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjEubiIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRH
UmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMS5uIiwgLTEpKTsKICAg
ICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVl
KGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2Nt
cGludChqc2NfdmFsdWVfdG9faW50MzIocmVzdWx0LmdldCgpKSwgPT0sIDUwKTsKQEAgLTExOTEs
NyArMTIzNCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NDbGFzcygpCiAgICAgICAgIGdfYXNzZXJ0
X3RydWUoanNjX3ZhbHVlX2lzX2NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yLmdldCgpKSk7CiAgICAg
ICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCBqc2NfY2xhc3NfZ2V0X25h
bWUoanNjQ2xhc3MpLCBjb25zdHJ1Y3Rvci5nZXQoKSk7CiAgICAgICAgIGpzY19jbGFzc19hZGRf
cHJvcGVydHkoanNjQ2xhc3MsICJmb28iLCBHX1RZUEVfSU5ULCBHX0NBTExCQUNLKGdldEZvbyks
IEdfQ0FMTEJBQ0soc2V0Rm9vKSwgbnVsbHB0ciwgbnVsbHB0cik7Ci0gICAgICAgIEdSZWZQdHI8
SlNDVmFsdWU+IGZvbyA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0Lmdl
dCgpLCAiZiA9IG5ldyBGb28oKTsiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZvbyA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBG
b28oKTsiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKGZvby5nZXQoKSk7CiAgICAgICAg
IGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChmb28uZ2V0KCkpKTsKICAgICAgICAg
Z19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKGZvby5nZXQoKSwg
anNjX2NsYXNzX2dldF9uYW1lKGpzY0NsYXNzKSkpOwpAQCAtMTIwMCwxMyArMTI0MywxMyBAQCBz
dGF0aWMgdm9pZCB0ZXN0SlNDQ2xhc3MoKQogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdl
dCgpKTsKICAgICAgICAganNjX3ZhbHVlX29iamVjdF9zZXRfcHJvcGVydHkoZm9vLmdldCgpLCAi
Zm9vIiwgdmFsdWUuZ2V0KCkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5fX2xvb2t1
cEdldHRlcl9fKCdmb28nKS5jYWxsKGYpIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBy
ZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYu
X19sb29rdXBHZXR0ZXJfXygnZm9vJykuY2FsbChmKSIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIu
d2F0Y2gocmVzdWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZSh2YWx1ZS5nZXQoKSA9
PSByZXN1bHQuZ2V0KCkpOwogCiAgICAgICAgIGJvb2wgZGlkVGhyb3cgPSBmYWxzZTsKICAgICAg
ICAgZ19hc3NlcnRfdGhyb3dfYmVnaW4oZXhjZXB0aW9uSGFuZGxlciwgZGlkVGhyb3cpOwotICAg
ICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQo
KSwgImYuX19sb29rdXBHZXR0ZXJfXygnZm9vJykuY2FsbCh7fSkiKSk7CisgICAgICAgIHJlc3Vs
dCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZi5fX2xv
b2t1cEdldHRlcl9fKCdmb28nKS5jYWxsKHt9KSIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0
Y2gocmVzdWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfdW5k
ZWZpbmVkKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9kaWRfdGhyb3coZXhjZXB0
aW9uSGFuZGxlciwgZGlkVGhyb3cpOwpAQCAtMTIyOCw3ICsxMjcxLDcgQEAgc3RhdGljIHZvaWQg
dGVzdEpTQ0NsYXNzKCkKICAgICAgICAganNjX2NvbnRleHRfc2V0X3ZhbHVlKGNvbnRleHQuZ2V0
KCksIGpzY19jbGFzc19nZXRfbmFtZShqc2NDbGFzcyksIGNvbnN0cnVjdG9yLmdldCgpKTsKICAg
ICAgICAgYm9vbCBkaWRUaHJvdyA9IGZhbHNlOwogICAgICAgICBnX2Fzc2VydF90aHJvd19iZWdp
bihleGNlcHRpb25IYW5kbGVyLCBkaWRUaHJvdyk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+
IGZvbyA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9
IG5ldyBGb28oKTsiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGZvbyA9IGFkb3B0R1Jl
Zihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28oKTsiLCAt
MSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKGZvby5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0
X3RydWUoanNjX3ZhbHVlX2lzX3VuZGVmaW5lZChmb28uZ2V0KCkpKTsKICAgICAgICAgZ19hc3Nl
cnRfZGlkX3Rocm93KGV4Y2VwdGlvbkhhbmRsZXIsIGRpZFRocm93KTsKQEAgLTEyNTcsMTUgKzEz
MDAsMTUgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ0NsYXNzKCkKIAogICAgICAgICBib29sIGRpZFRo
cm93ID0gZmFsc2U7CiAgICAgICAgIGdfYXNzZXJ0X3Rocm93X2JlZ2luKGV4Y2VwdGlvbkhhbmRs
ZXIsIGRpZFRocm93KTsKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZm9vID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmID0gbmV3IEZvbygpOyIpKTsK
KyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2
YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmID0gbmV3IEZvbygpOyIsIC0xKSk7CiAgICAgICAgIGNo
ZWNrZXIud2F0Y2goZm9vLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVf
aXNfdW5kZWZpbmVkKGZvby5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9kaWRfdGhyb3coZXhj
ZXB0aW9uSGFuZGxlciwgZGlkVGhyb3cpOwogCi0gICAgICAgIGZvbyA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyB3ay5Gb28oKTsiKSk7Cisg
ICAgICAgIGZvbyA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgp
LCAiZiA9IG5ldyB3ay5Gb28oKTsiLCAtMSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192
YWx1ZV9pc19vYmplY3QoZm9vLmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3Zh
bHVlX29iamVjdF9pc19pbnN0YW5jZV9vZihmb28uZ2V0KCksICJ3ay5Gb28iKSk7Ci0gICAgICAg
IEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0
ZShjb250ZXh0LmdldCgpLCAiZiBpbnN0YW5jZW9mIHdrLkZvbzsiKSk7CisgICAgICAgIEdSZWZQ
dHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiZiBpbnN0YW5jZW9mIHdrLkZvbzsiLCAtMSkpOwogICAgICAgICBjaGVja2Vy
LndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lz
X2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVl
X3RvX2Jvb2xlYW4ocmVzdWx0LmdldCgpKSk7CkBAIC0xMjc2LDI2ICsxMzE5LDI2IEBAIHN0YXRp
YyB2b2lkIHRlc3RKU0NDbGFzcygpCiAgICAgICAgIGpzY192YWx1ZV9vYmplY3Rfc2V0X3Byb3Bl
cnR5KGNvbnN0cnVjdG9yLmdldCgpLCAiQ3JlYXRlV2l0aEZvbyIsIGNvbnN0cnVjdG9yMi5nZXQo
KSk7CiAKICAgICAgICAgZ19hc3NlcnRfdGhyb3dfYmVnaW4oZXhjZXB0aW9uSGFuZGxlciwgZGlk
VGhyb3cpOwotICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBmb28yID0gYWRvcHRHUmVmKGpzY19j
b250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMiA9IG5ldyBGb28uQ3JlYXRlV2l0aEZv
byg0Mik7IikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBmb28yID0gYWRvcHRHUmVmKGpz
Y19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMiA9IG5ldyBGb28uQ3JlYXRlV2l0
aEZvbyg0Mik7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChmb28yLmdldCgpKTsKICAg
ICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfdW5kZWZpbmVkKGZvbzIuZ2V0KCkpKTsK
ICAgICAgICAgZ19hc3NlcnRfZGlkX3Rocm93KGV4Y2VwdGlvbkhhbmRsZXIsIGRpZFRocm93KTsK
IAotICAgICAgICBmb28yID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQu
Z2V0KCksICJmMiA9IG5ldyB3ay5Gb28uQ3JlYXRlV2l0aEZvbyg0Mik7IikpOworICAgICAgICBm
b28yID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMiA9
IG5ldyB3ay5Gb28uQ3JlYXRlV2l0aEZvbyg0Mik7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53
YXRjaChmb28yLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfb2Jq
ZWN0KGZvbzIuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfb2JqZWN0
X2lzX2luc3RhbmNlX29mKGZvbzIuZ2V0KCksICJ3ay5Gb28iKSk7CiAgICAgICAgIGdfYXNzZXJ0
X3RydWUoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0YW5jZV9vZihmb28yLmdldCgpLCAid2suRm9v
LkNyZWF0ZVdpdGhGb28iKSk7CiAgICAgICAgIGdfYXNzZXJ0X2ZhbHNlKGZvby5nZXQoKSA9PSBm
b28yLmdldCgpKTsKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1
YXRlKGNvbnRleHQuZ2V0KCksICJmMiBpbnN0YW5jZW9mIHdrLkZvbzsiKSk7CisgICAgICAgIHJl
c3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZjIg
aW5zdGFuY2VvZiB3ay5Gb287IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQu
Z2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3Vs
dC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJl
c3VsdC5nZXQoKSkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoY29udGV4dC5nZXQoKSwgImYyIGluc3RhbmNlb2Ygd2suRm9vLkNyZWF0ZVdpdGhGb287
IikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgImYyIGluc3RhbmNlb2Ygd2suRm9vLkNyZWF0ZVdpdGhGb287IiwgLTEpKTsK
ICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2Vy
dF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwotICAgICAgICByZXN1
bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYyLmZv
byIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNv
bnRleHQuZ2V0KCksICJmMi5mb28iLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3Vs
dC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX251bWJlcihyZXN1
bHQuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMihy
ZXN1bHQuZ2V0KCkpLCA9PSwgNDIpOwpAQCAtMTMwNywxNSArMTM1MCwxNSBAQCBzdGF0aWMgdm9p
ZCB0ZXN0SlNDQ2xhc3MoKQogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9vYmplY3Rf
aXNfaW5zdGFuY2Vfb2YoZm9vMy5nZXQoKSwgIndrLkZvby5DcmVhdGVXaXRoRm9vIikpOwogICAg
ICAgICBnX2Fzc2VydF9mYWxzZShmb28yLmdldCgpID09IGZvbzMuZ2V0KCkpOwogICAgICAgICBq
c2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwgImYzIiwgZm9vMy5nZXQoKSk7Ci0g
ICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0Lmdl
dCgpLCAiZjMgaW5zdGFuY2VvZiB3ay5Gb287IikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdS
ZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYzIGluc3RhbmNlb2Ygd2su
Rm9vOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsKICAgICAg
ICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsKICAg
ICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfdG9fYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsK
LSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQu
Z2V0KCksICJmMyBpbnN0YW5jZW9mIHdrLkZvby5DcmVhdGVXaXRoRm9vOyIpKTsKKyAgICAgICAg
cmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJm
MyBpbnN0YW5jZW9mIHdrLkZvby5DcmVhdGVXaXRoRm9vOyIsIC0xKSk7CiAgICAgICAgIGNoZWNr
ZXIud2F0Y2gocmVzdWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVf
aXNfYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFs
dWVfdG9fYm9vbGVhbihyZXN1bHQuZ2V0KCkpKTsKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmMy5mb28iKSk7CisgICAgICAg
IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAi
ZjMuZm9vIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAg
ICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIocmVzdWx0LmdldCgpKSk7CiAg
ICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIocmVzdWx0LmdldCgpKSwg
PT0sIDYyKTsKQEAgLTEzNzQsMTggKzE0MTcsMTggQEAgc3RhdGljIHZvaWQgdGVzdEpTQ1Byb3Rv
dHlwZXMoKQogICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwganNj
X2NsYXNzX2dldF9uYW1lKGJhckNsYXNzKSwgYmFyQ29uc3RydWN0b3IuZ2V0KCkpOwogICAgICAg
ICBqc2NfY2xhc3NfYWRkX3Byb3BlcnR5KGJhckNsYXNzLCAiYmFyIiwgR19UWVBFX0lOVCwgR19D
QUxMQkFDSyhnZXRCYXIpLCBHX0NBTExCQUNLKHNldEJhciksIG51bGxwdHIsIG51bGxwdHIpOwog
Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4
dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28oKTsgYiA9IG5ldyBCYXIoKTsi
KSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28oKTsgYiA9IG5ldyBCYXIo
KTsiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAKLSAgICAg
ICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCks
ICJmLl9fcHJvdG9fXyA9PSBGb28ucHJvdG90eXBlIikpOworICAgICAgICByZXN1bHQgPSBhZG9w
dEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYuX19wcm90b19fID09
IEZvby5wcm90b3R5cGUiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQo
KSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX2Jvb2xlYW4ocmVzdWx0Lmdl
dCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX3RvX2Jvb2xlYW4ocmVzdWx0
LmdldCgpKSk7Ci0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0
ZShjb250ZXh0LmdldCgpLCAiYi5fX3Byb3RvX18gPT0gQmFyLnByb3RvdHlwZSIpKTsKKyAgICAg
ICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCks
ICJiLl9fcHJvdG9fXyA9PSBCYXIucHJvdG90eXBlIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53
YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19i
b29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90
b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNj
X2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImIuX19wcm90b19fLl9fcHJvdG9fXyA9
PSBGb28ucHJvdG90eXBlIikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRl
eHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImIuX19wcm90b19fLl9fcHJvdG9fXyA9PSBGb28u
cHJvdG90eXBlIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwog
ICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkp
OwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQo
KSkpOwpAQCAtMTM5NSwxMSArMTQzOCwxMSBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDUHJvdG90eXBl
cygpCiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChmb28uZ2V0KCkp
KTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29m
KGZvby5nZXQoKSwganNjX2NsYXNzX2dldF9uYW1lKGZvb0NsYXNzKSkpOwogICAgICAgICBnX2Fz
c2VydF9mYWxzZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKGZvby5nZXQoKSwganNj
X2NsYXNzX2dldF9uYW1lKGJhckNsYXNzKSkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYo
anNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYgaW5zdGFuY2VvZiBGb28iKSk7
CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0
LmdldCgpLCAiZiBpbnN0YW5jZW9mIEZvbyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2go
cmVzdWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfYm9vbGVh
bihyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfdG9fYm9v
bGVhbihyZXN1bHQuZ2V0KCkpKTsKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250
ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmIGluc3RhbmNlb2YgQmFyIikpOworICAgICAg
ICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwg
ImYgaW5zdGFuY2VvZiBCYXIiLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5n
ZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX2Jvb2xlYW4ocmVzdWx0
LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X2ZhbHNlKGpzY192YWx1ZV90b19ib29sZWFuKHJl
c3VsdC5nZXQoKSkpOwpAQCAtMTQxMCwzMCArMTQ1MywzMCBAQCBzdGF0aWMgdm9pZCB0ZXN0SlND
UHJvdG90eXBlcygpCiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX29iamVjdF9pc19p
bnN0YW5jZV9vZihiYXIuZ2V0KCksIGpzY19jbGFzc19nZXRfbmFtZShiYXJDbGFzcykpKTsKICAg
ICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKGJhci5n
ZXQoKSwganNjX2NsYXNzX2dldF9uYW1lKGZvb0NsYXNzKSkpOwogCi0gICAgICAgIHJlc3VsdCA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiYiBpbnN0YW5j
ZW9mIEJhciIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1
YXRlKGNvbnRleHQuZ2V0KCksICJiIGluc3RhbmNlb2YgQmFyIiwgLTEpKTsKICAgICAgICAgY2hl
Y2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1
ZV9pc19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192
YWx1ZV90b19ib29sZWFuKHJlc3VsdC5nZXQoKSkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdS
ZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImIgaW5zdGFuY2VvZiBGb28i
KSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250
ZXh0LmdldCgpLCAiYiBpbnN0YW5jZW9mIEZvbyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0
Y2gocmVzdWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfYm9v
bGVhbihyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfdG9f
Ym9vbGVhbihyZXN1bHQuZ2V0KCkpKTsKIAotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNj
X2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImIuYmFyID0gMjU7IGIuZm9vID0gNDI7
IikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgImIuYmFyID0gMjU7IGIuZm9vID0gNDI7IiwgLTEpKTsKICAgICAgICAgY2hl
Y2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZh
bHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJiLmJh
ciIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gdmFsdWUgPSBhZG9wdEdSZWYoanNjX2Nv
bnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImIuYmFyIiwgLTEpKTsKICAgICAgICAgY2hl
Y2tlci53YXRjaCh2YWx1ZS5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVl
X2lzX251bWJlcih2YWx1ZS5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBpbnQoanNjX3Zh
bHVlX3RvX2ludDMyKHZhbHVlLmdldCgpKSwgPT0sIDI1KTsKLSAgICAgICAgdmFsdWUgPSBhZG9w
dEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImIuZm9vIikpOworICAg
ICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgp
LCAiYi5mb28iLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHZhbHVlLmdldCgpKTsKICAg
ICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAg
ICAgICAgIGdfYXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9
PSwgNDIpOwogCi0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0
ZShjb250ZXh0LmdldCgpLCAiYi5tdWx0aXBseSgyKSIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRv
cHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJiLm11bHRpcGx5KDIp
IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwotICAgICAgICB2
YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiYi5m
b28iKSk7CisgICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNv
bnRleHQuZ2V0KCksICJiLmZvbyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2godmFsdWUu
Z2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19udW1iZXIodmFsdWUu
Z2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21waW50KGpzY192YWx1ZV90b19pbnQzMih2YWx1
ZS5nZXQoKSksID09LCA4NCk7CkBAIC0xNDUzLDcgKzE0OTYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
SlNDRXhjZXB0aW9ucygpCiAgICAgICAgIGNoZWNrZXIud2F0Y2goY29udGV4dC5nZXQoKSk7CiAg
ICAgICAgIGdfYXNzZXJ0X2ZhbHNlKGpzY19jb250ZXh0X2dldF9leGNlcHRpb24oY29udGV4dC5n
ZXQoKSkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihq
c2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZm9vIikpOworICAgICAgICBHUmVm
UHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgImZvbyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0Lmdl
dCgpKTsKICAgICAgICAgLy8gQnkgZGVmYXVsdCBleGNlcHRpb25zIGFyZSBub3QgY2F1Z2h0Lgog
ICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc191bmRlZmluZWQocmVzdWx0LmdldCgp
KSk7CkBAIC0xNDcxLDcgKzE1MTQsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDRXhjZXB0aW9ucygp
CiAgICAgICAgIGNoZWNrZXIud2F0Y2goY29udGV4dC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0
X2ZhbHNlKGpzY19jb250ZXh0X2dldF9leGNlcHRpb24oY29udGV4dC5nZXQoKSkpOwogCi0gICAg
ICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFs
dWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IDI1O1xuZm9vOyIpKTsKKyAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQu
Z2V0KCksICJmID0gMjU7XG5mb287IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1
bHQuZ2V0KCkpOwogCiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX3VuZGVmaW5l
ZChyZXN1bHQuZ2V0KCkpKTsKQEAgLTE0ODcsNyArMTUzMCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RK
U0NFeGNlcHRpb25zKCkKICAgICAgICAgY2hlY2tlci53YXRjaChjb250ZXh0LmdldCgpKTsKICAg
ICAgICAgZ19hc3NlcnRfZmFsc2UoanNjX2NvbnRleHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0Lmdl
dCgpKSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpz
Y19jb250ZXh0X2V2YWx1YXRlX3dpdGhfc291cmNlX3VyaShjb250ZXh0LmdldCgpLCAiZm9vIiwg
ImZpbGU6Ly8vZm9vL3NjcmlwdC5qcyIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVz
dWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlX3dpdGhfc291cmNlX3VyaShjb250
ZXh0LmdldCgpLCAiZm9vIiwgLTEsICJmaWxlOi8vL2Zvby9zY3JpcHQuanMiKSk7CiAgICAgICAg
IGNoZWNrZXIud2F0Y2gocmVzdWx0LmdldCgpKTsKIAogICAgICAgICBnX2Fzc2VydF90cnVlKGpz
Y192YWx1ZV9pc191bmRlZmluZWQocmVzdWx0LmdldCgpKSk7CkBAIC0xNTA3LDE0ICsxNTUwLDE0
IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NFeGNlcHRpb25zKCkKICAgICAgICAgY2hlY2tlci53YXRj
aChmdW5jdGlvbi5nZXQoKSk7CiAgICAgICAgIGpzY19jb250ZXh0X3NldF92YWx1ZShjb250ZXh0
LmdldCgpLCAiY3JlYXRlRXJyb3IiLCBmdW5jdGlvbi5nZXQoKSk7CiAKLSAgICAgICAgR1JlZlB0
cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRl
eHQuZ2V0KCksICJ2YXIgcmVzdWx0OyB0cnkgeyBjcmVhdGVFcnJvcigpOyB9IGNhdGNoIChlKSB7
IHJlc3VsdCA9ICdDYXVnaHQgZXhjZXB0aW9uJzsgfSIpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NW
YWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0
KCksICJ2YXIgcmVzdWx0OyB0cnkgeyBjcmVhdGVFcnJvcigpOyB9IGNhdGNoIChlKSB7IHJlc3Vs
dCA9ICdDYXVnaHQgZXhjZXB0aW9uJzsgfSIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2go
cmVzdWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfc3RyaW5n
KHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHJlc3VsdFN0cmluZyhq
c2NfdmFsdWVfdG9fc3RyaW5nKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBz
dHIocmVzdWx0U3RyaW5nLmdldCgpLCA9PSwgIkNhdWdodCBleGNlcHRpb24iKTsKICAgICAgICAg
Z19hc3NlcnRfZmFsc2UoanNjX2NvbnRleHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKSk7
CiAKLSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRl
eHQuZ2V0KCksICJ2YXIgcmVzdWx0OyBjcmVhdGVFcnJvcigpOyByZXN1bHQgPSAnTm8gZXhjZXB0
aW9uJzsiKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0
ZShjb250ZXh0LmdldCgpLCAidmFyIHJlc3VsdDsgY3JlYXRlRXJyb3IoKTsgcmVzdWx0ID0gJ05v
IGV4Y2VwdGlvbic7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkp
OwogICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc191bmRlZmluZWQocmVzdWx0Lmdl
dCgpKSk7CiAgICAgICAgIGF1dG8qIGV4Y2VwdGlvbiA9IGpzY19jb250ZXh0X2dldF9leGNlcHRp
b24oY29udGV4dC5nZXQoKSk7CkBAIC0xNTQ4LDcgKzE1OTEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0
SlNDRXhjZXB0aW9ucygpCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxUZXN0Kj4odXNlckRhdGEp
LT53YXNEZWxldGVkID0gdHJ1ZTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NW
YWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0
KCksICJmb28iKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1Jl
Zihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZm9vIiwgLTEpKTsKICAgICAg
ICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICAvLyBFeGNlcHRpb24gd2Fz
IGNhdWdodCBieSB0aGUgdXNlciBoYW5kbGVyLgogICAgICAgICBnX2Fzc2VydF9mYWxzZShqc2Nf
Y29udGV4dF9nZXRfZXhjZXB0aW9uKGNvbnRleHQuZ2V0KCkpKTsKQEAgLTE1NzUsNyArMTYxOCw3
IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NFeGNlcHRpb25zKCkKICAgICAgICAgICAgIHN0YXRpY19j
YXN0PFRlc3QqPih1c2VyRGF0YSktPndhc0RlbGV0ZWQgPSB0cnVlOwogICAgICAgICB9KTsKIAot
ICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5n
ZXQoKSwgImZvbyIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2
YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmb28iLCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNo
KHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIC8vIEV4Y2VwdGlvbiB3YXMgaGFuZGxlZCBieSB0aGUg
dXNlciBoYW5kbGVyLCBidXQgbm90IGNhdWdodC4KICAgICAgICAgYXV0byogZXhjZXB0aW9uID0g
anNjX2NvbnRleHRfZ2V0X2V4Y2VwdGlvbihjb250ZXh0LmdldCgpKTsKQEAgLTE2MDEsMTMgKzE2
NDQsMTMgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ1Byb21pc2VzKCkKICAgICAgICAgY2hlY2tlci53
YXRjaChwcm9taXNlLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNf
ZnVuY3Rpb24ocHJvbWlzZS5nZXQoKSkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJl
c3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAidHlw
ZW9mIFByb21pc2UiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0
R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAidHlwZW9mIFByb21pc2Ui
LCAtMSkpOwogICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdf
YXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX3N0cmluZyhyZXN1bHQuZ2V0KCkpKTsKICAgICAgICAg
R1VuaXF1ZVB0cjxjaGFyPiByZXN1bHRTdHJpbmcoanNjX3ZhbHVlX3RvX3N0cmluZyhyZXN1bHQu
Z2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRfY21wc3RyKHJlc3VsdFN0cmluZy5nZXQoKSwgPT0s
ICJmdW5jdGlvbiIpOwogCi0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9l
dmFsdWF0ZShjb250ZXh0LmdldCgpLCAicmVzdWx0ID0gMDsgUHJvbWlzZS5yZXNvbHZlKDQyKS50
aGVuKGZ1bmN0aW9uICh2YWx1ZSkgeyByZXN1bHQgPSB2YWx1ZTsgfSk7IikpOworICAgICAgICBy
ZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgInJl
c3VsdCA9IDA7IFByb21pc2UucmVzb2x2ZSg0MikudGhlbihmdW5jdGlvbiAodmFsdWUpIHsgcmVz
dWx0ID0gdmFsdWU7IH0pOyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2gocmVzdWx0Lmdl
dCgpKTsKIAogICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB2YWx1ZSA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9nZXRfdmFsdWUoY29udGV4dC5nZXQoKSwgInJlc3VsdCIpKTsKQEAgLTE2MzIsNyAr
MTY3NSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NQcm9taXNlcygpCiAgICAgICAgIGpzY19jbGFz
c19hZGRfbWV0aG9kKGZvb0NsYXNzLCAiZ2V0TXVsdGlwbHlGb29Bc3luYyIsIEdfQ0FMTEJBQ0so
Z2V0TXVsdGlwbHlGb29Bc3luYyksICZjaGVja2VyLCBudWxscHRyLCBKU0NfVFlQRV9WQUxVRSwg
MSwgR19UWVBFX0lOVCk7CiAgICAgICAgIGpzY19jbGFzc19hZGRfcHJvcGVydHkoZm9vQ2xhc3Ms
ICJmb28iLCBHX1RZUEVfSU5ULCBHX0NBTExCQUNLKGdldEZvbyksIEdfQ0FMTEJBQ0soc2V0Rm9v
KSwgbnVsbHB0ciwgbnVsbHB0cik7CiAKLSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0
ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJyZXN1bHQg
PSAwOyBmID0gbmV3IEZvbygpOyBmLmZvbyA9IDU7IGYuZ2V0TXVsdGlwbHlGb29Bc3luYygyKS50
aGVuKGZ1bmN0aW9uICh2YWx1ZSkgeyByZXN1bHQgPSB2YWx1ZTsgfSwgZnVuY3Rpb24gKGVycm9y
KSB7IHJlc3VsdCA9IC0xOyB9KTsiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3Vs
dCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAicmVzdWx0
ID0gMDsgZiA9IG5ldyBGb28oKTsgZi5mb28gPSA1OyBmLmdldE11bHRpcGx5Rm9vQXN5bmMoMiku
dGhlbihmdW5jdGlvbiAodmFsdWUpIHsgcmVzdWx0ID0gdmFsdWU7IH0sIGZ1bmN0aW9uIChlcnJv
cikgeyByZXN1bHQgPSAtMTsgfSk7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1
bHQuZ2V0KCkpOwogCiAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2dldF92YWx1ZShjb250ZXh0LmdldCgpLCAicmVzdWx0IikpOwpAQCAtMTY0
MCw3ICsxNjgzLDcgQEAgc3RhdGljIHZvaWQgdGVzdEpTQ1Byb21pc2VzKCkKICAgICAgICAgZ19h
c3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdf
YXNzZXJ0X2NtcGludChqc2NfdmFsdWVfdG9faW50MzIodmFsdWUuZ2V0KCkpLCA9PSwgMTApOwog
Ci0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0
LmdldCgpLCAicmVzdWx0ID0gMDsgZi5nZXRNdWx0aXBseUZvb0FzeW5jKDApLnRoZW4oZnVuY3Rp
b24gKHZhbHVlKSB7IHJlc3VsdCA9IHZhbHVlOyB9LCBmdW5jdGlvbiAoZXJyb3IpIHsgcmVzdWx0
ID0gLTE7IH0pOyIpKTsKKyAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2
YWx1YXRlKGNvbnRleHQuZ2V0KCksICJyZXN1bHQgPSAwOyBmLmdldE11bHRpcGx5Rm9vQXN5bmMo
MCkudGhlbihmdW5jdGlvbiAodmFsdWUpIHsgcmVzdWx0ID0gdmFsdWU7IH0sIGZ1bmN0aW9uIChl
cnJvcikgeyByZXN1bHQgPSAtMTsgfSk7IiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChy
ZXN1bHQuZ2V0KCkpOwogICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9nZXRf
dmFsdWUoY29udGV4dC5nZXQoKSwgInJlc3VsdCIpKTsKICAgICAgICAgY2hlY2tlci53YXRjaCh2
YWx1ZS5nZXQoKSk7CkBAIC0xNjc1LDcgKzE3MTgsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDR2Fy
YmFnZUNvbGxlY3RvcigpCiAgICAgICAgIGpzY192YWx1ZV9vYmplY3Rfc2V0X3Byb3BlcnR5KG9i
amVjdC5nZXQoKSwgImZvbyIsIGZvby5nZXQoKSk7CiAKICAgICAgICAganNjX2NvbnRleHRfc2V0
X3ZhbHVlKGNvbnRleHQuZ2V0KCksICJmIiwgb2JqZWN0LmdldCgpKTsKLSAgICAgICAgR1JlZlB0
cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRl
eHQuZ2V0KCksICJmIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9w
dEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYiLCAtMSkpOwogICAg
ICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUo
b2JqZWN0LmdldCgpID09IHJlc3VsdC5nZXQoKSk7CiAKQEAgLTE2ODYsMTIgKzE3MjksMTIgQEAg
c3RhdGljIHZvaWQgdGVzdEpTQ0dhcmJhZ2VDb2xsZWN0b3IoKQogICAgICAgICBvYmplY3QgPSBh
ZG9wdEdSZWYoanNjX2NvbnRleHRfZ2V0X3ZhbHVlKGNvbnRleHQuZ2V0KCksICJmIikpOwogICAg
ICAgICBjaGVja2VyLndhdGNoKG9iamVjdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUo
anNjX3ZhbHVlX2lzX29iamVjdChvYmplY3QuZ2V0KCkpKTsKLSAgICAgICAgZm9vID0gYWRvcHRH
UmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLmZvbyIpKTsKKyAgICAg
ICAgZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJm
LmZvbyIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0Y2goZm9vLmdldCgpKTsKICAgICAgICAg
Z19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKGZvby5nZXQoKSkpOwogICAgICAgICBn
X2Fzc2VydF9jbXBpbnQoanNjX3ZhbHVlX3RvX2ludDMyKGZvby5nZXQoKSksID09LCAyNSk7CiAK
LSAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQu
Z2V0KCksICJmID0gdW5kZWZpbmVkIikpOworICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNj
X2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwgImYgPSB1bmRlZmluZWQiLCAtMSkpOwog
ICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3Ry
dWUoanNjX3ZhbHVlX2lzX3VuZGVmaW5lZChyZXN1bHQuZ2V0KCkpKTsKIApAQCAtMTY5OSwxMCAr
MTc0MiwxMCBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDR2FyYmFnZUNvbGxlY3RvcigpCiAKICAgICAg
ICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfb2JqZWN0KG9iamVjdC5nZXQoKSkpOwogICAg
ICAgICBqc2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwgImYiLCBvYmplY3QuZ2V0
KCkpOwotICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgImYiKSk7CisgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4
dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiIsIC0xKSk7CiAgICAgICAgIGNoZWNrZXIud2F0
Y2gocmVzdWx0LmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShvYmplY3QuZ2V0KCkgPT0g
cmVzdWx0LmdldCgpKTsKLSAgICAgICAgZm9vID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1
YXRlKGNvbnRleHQuZ2V0KCksICJmLmZvbyIpKTsKKyAgICAgICAgZm9vID0gYWRvcHRHUmVmKGpz
Y19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmLmZvbyIsIC0xKSk7CiAgICAgICAg
IGNoZWNrZXIud2F0Y2goZm9vLmdldCgpKTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFs
dWVfaXNfbnVtYmVyKGZvby5nZXQoKSkpOwogICAgICAgICBnX2Fzc2VydF9jbXBpbnQoanNjX3Zh
bHVlX3RvX2ludDMyKGZvby5nZXQoKSksID09LCAyNSk7CkBAIC0xNzI0LDE2ICsxNzY3LDE2IEBA
IHN0YXRpYyB2b2lkIHRlc3RKU0NHYXJiYWdlQ29sbGVjdG9yKCkKICAgICAgICAgY2hlY2tlci53
YXRjaChjb25zdHJ1Y3Rvci5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVl
X2lzX2NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yLmdldCgpKSk7CiAgICAgICAgIGpzY19jb250ZXh0
X3NldF92YWx1ZShjb250ZXh0LmdldCgpLCBqc2NfY2xhc3NfZ2V0X25hbWUoanNjQ2xhc3MpLCBj
b25zdHJ1Y3Rvci5nZXQoKSk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IG9iamVjdCA9IGFk
b3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28o
KTsiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IG9iamVjdCA9IGFkb3B0R1JlZihqc2Nf
Y29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IG5ldyBGb28oKTsiLCAtMSkpOwog
ICAgICAgICBjaGVja2VyLndhdGNoKG9iamVjdC5nZXQoKSk7CiAgICAgICAgIGdfYXNzZXJ0X3Ry
dWUoanNjX3ZhbHVlX2lzX29iamVjdChvYmplY3QuZ2V0KCkpKTsKICAgICAgICAgZ19hc3NlcnRf
dHJ1ZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29mKG9iamVjdC5nZXQoKSwganNjX2Ns
YXNzX2dldF9uYW1lKGpzY0NsYXNzKSkpOwogCi0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJl
c3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiIp
KTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250
ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53
YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICBnX2Fzc2VydF90cnVlKG9iamVjdC5nZXQoKSA9
PSByZXN1bHQuZ2V0KCkpOwogCi0gICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4
dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IHVuZGVmaW5lZCIpKTsKKyAgICAgICAgcmVz
dWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJmID0g
dW5kZWZpbmVkIiwgLTEpKTsKICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwog
ICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc191bmRlZmluZWQocmVzdWx0LmdldCgp
KSk7CiAKQEAgLTE4MTAsNyArMTg1Myw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NXZWFrVmFsdWUo
KQogICAgICAgICAgICAgY2hlY2tlci53YXRjaChjb250ZXh0LmdldCgpKTsKICAgICAgICAgICAg
IEV4Y2VwdGlvbkhhbmRsZXIgZXhjZXB0aW9uSGFuZGxlcihjb250ZXh0LmdldCgpKTsKIAotICAg
ICAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gb2JqZWN0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0
X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJvYmogPSB7fTsiKSk7CisgICAgICAgICAgICBHUmVm
UHRyPEpTQ1ZhbHVlPiBvYmplY3QgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29u
dGV4dC5nZXQoKSwgIm9iaiA9IHt9OyIsIC0xKSk7CiAgICAgICAgICAgICBjaGVja2VyLndhdGNo
KG9iamVjdC5nZXQoKSk7CiAgICAgICAgICAgICBnX2Fzc2VydF90cnVlKEpTQ19JU19WQUxVRShv
YmplY3QuZ2V0KCkpKTsKICAgICAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29i
amVjdChvYmplY3QuZ2V0KCkpKTsKQEAgLTE4MTksNyArMTg2Miw3IEBAIHN0YXRpYyB2b2lkIHRl
c3RKU0NXZWFrVmFsdWUoKQogICAgICAgICAgICAgY2hlY2tlci53YXRjaCh3ZWFrT2JqZWN0Lmdl
dCgpKTsKICAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2Vha09iamVjdC5nZXQoKSwgImNs
ZWFyZWQiLCBHX0NBTExCQUNLKHdlYWtWYWx1ZUNsZWFyZWRDYWxsYmFjayksICZ3ZWFrVmFsdWVD
bGVhcmVkKTsKIAotICAgICAgICAgICAgb2JqZWN0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2
YWx1YXRlKGNvbnRleHQuZ2V0KCksICJvYmogPSBudWxsIikpOworICAgICAgICAgICAgb2JqZWN0
ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJvYmogPSBu
dWxsIiwgLTEpKTsKICAgICAgICAgICAgIGNoZWNrZXIud2F0Y2gob2JqZWN0LmdldCgpKTsKICAg
ICAgICAgICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYWtWYWx1ZUNsZWFyZWQpOwogICAgICAgICB9CkBA
IC0xODQxLDcgKzE4ODQsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SlNDV2Vha1ZhbHVlKCkKICAgICAg
ICAgICAgIGNoZWNrZXIud2F0Y2goY29udGV4dC5nZXQoKSk7CiAgICAgICAgICAgICBFeGNlcHRp
b25IYW5kbGVyIGV4Y2VwdGlvbkhhbmRsZXIoY29udGV4dC5nZXQoKSk7CiAKLSAgICAgICAgICAg
IEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0
ZShjb250ZXh0LmdldCgpLCAib2JqID0geyAnZm9vJyA6ICdiYXInIH07IHN0ciA9ICdIZWxsbyBX
b3JsZCc7IHByaW1pdGl2ZSA9IDI1OyIpKTsKKyAgICAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+
IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAi
b2JqID0geyAnZm9vJyA6ICdiYXInIH07IHN0ciA9ICdIZWxsbyBXb3JsZCc7IHByaW1pdGl2ZSA9
IDI1OyIsIC0xKSk7CiAgICAgICAgICAgICBjaGVja2VyLndhdGNoKHJlc3VsdC5nZXQoKSk7CiAK
ICAgICAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250
ZXh0X2dldF92YWx1ZShjb250ZXh0LmdldCgpLCAib2JqIikpOwpAQCAtMTg4MSw3ICsxOTI0LDcg
QEAgc3RhdGljIHZvaWQgdGVzdEpTQ1dlYWtWYWx1ZSgpCiAgICAgICAgICAgICBnX2Fzc2VydF90
cnVlKGpzY192YWx1ZV9pc19udW1iZXIodmFsdWUuZ2V0KCkpKTsKICAgICAgICAgICAgIHZhbHVl
ID0gbnVsbHB0cjsKIAotICAgICAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0
X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJzdHIgPSB1bmRlZmluZWQiKSk7CisgICAgICAgICAg
ICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoY29udGV4dC5nZXQoKSwg
InN0ciA9IHVuZGVmaW5lZCIsIC0xKSk7CiAgICAgICAgICAgICBjaGVja2VyLndhdGNoKHJlc3Vs
dC5nZXQoKSk7CiAgICAgICAgICAgICBqc2NDb250ZXh0R2FyYmFnZUNvbGxlY3QoY29udGV4dC5n
ZXQoKSk7CiAKQEAgLTE4OTAsNyArMTkzMyw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NXZWFrVmFs
dWUoKQogICAgICAgICAgICAgZ19hc3NlcnRfZmFsc2Uod2Vha1ByaW1pdGl2ZVZhbHVlQ2xlYXJl
ZCk7CiAgICAgICAgICAgICBnX2Fzc2VydF9udWxsKGpzY193ZWFrX3ZhbHVlX2dldF92YWx1ZSh3
ZWFrU3RyLmdldCgpKSk7CiAKLSAgICAgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAiZiA9IHVuZGVmaW5lZCIpKTsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgp
LCAiZiA9IHVuZGVmaW5lZCIsIC0xKSk7CiAgICAgICAgICAgICBjaGVja2VyLndhdGNoKHJlc3Vs
dC5nZXQoKSk7CiAgICAgICAgICAgICBqc2NDb250ZXh0R2FyYmFnZUNvbGxlY3QoY29udGV4dC5n
ZXQoKSk7CiAKQEAgLTE5MDUsNyArMTk0OCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RKU0NXZWFrVmFs
dWUoKQogICAgICAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfbnVtYmVyKHZhbHVl
LmdldCgpKSk7CiAgICAgICAgICAgICB2YWx1ZSA9IG51bGxwdHI7CiAKLSAgICAgICAgICAgIHJl
c3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShjb250ZXh0LmdldCgpLCAib2Jq
ID0gdW5kZWZpbmVkIikpOworICAgICAgICAgICAgcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250
ZXh0X2V2YWx1YXRlKGNvbnRleHQuZ2V0KCksICJvYmogPSB1bmRlZmluZWQiLCAtMSkpOwogICAg
ICAgICAgICAgY2hlY2tlci53YXRjaChyZXN1bHQuZ2V0KCkpOwogICAgICAgICAgICAganNjQ29u
dGV4dEdhcmJhZ2VDb2xsZWN0KGNvbnRleHQuZ2V0KCkpOwogCkBAIC0xOTQzLDcgKzE5ODYsNyBA
QCBzdGF0aWMgdm9pZCB0ZXN0c0pTQ1ZpcnR1YWxNYWNoaW5lKCkKICAgICAgICAgICAgIGdfYXNz
ZXJ0X3RydWUoanNjX3ZhbHVlX2lzX2NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yLmdldCgpKSk7CiAg
ICAgICAgICAgICBqc2NfY29udGV4dF9zZXRfdmFsdWUoY29udGV4dC5nZXQoKSwganNjX2NsYXNz
X2dldF9uYW1lKGpzY0NsYXNzKSwgY29uc3RydWN0b3IuZ2V0KCkpOwogCi0gICAgICAgICAgICBH
UmVmUHRyPEpTQ1ZhbHVlPiBvYmplY3QgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUo
Y29udGV4dC5nZXQoKSwgImYgPSBuZXcgRm9vKCk7IikpOworICAgICAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4gb2JqZWN0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQu
Z2V0KCksICJmID0gbmV3IEZvbygpOyIsIC0xKSk7CiAgICAgICAgICAgICBjaGVja2VyLndhdGNo
KG9iamVjdC5nZXQoKSk7CiAgICAgICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9nZXRf
Y29udGV4dChvYmplY3QuZ2V0KCkpID09IGNvbnRleHQuZ2V0KCkpOwogICAgICAgICAgICAgZ19h
c3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfb2JqZWN0KG9iamVjdC5nZXQoKSkpOwpAQCAtMTk3Myw3
ICsyMDE2LDcgQEAgc3RhdGljIHZvaWQgdGVzdHNKU0NWaXJ0dWFsTWFjaGluZSgpCiAgICAgICAg
ICAgICAgICAgICAgICIgICAgZm9yICh2YXIgaiA9IDA7IGogPCBuZXdBcnJheS5sZW5ndGg7ICsr
ailcbiIKICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgbmV3QXJyYXlbal0gPSB7cGFyZW50
OiBhcnJheVtqIC8gMl19O1xuIgogICAgICAgICAgICAgICAgICAgICAiICAgIGFycmF5ID0gbmV3
QXJyYXk7XG4iCi0gICAgICAgICAgICAgICAgICAgICJ9XG4iCisgICAgICAgICAgICAgICAgICAg
ICJ9XG4iLCAtMQogICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgIGdfYXNzZXJ0
X3RydWUoanNjX3ZhbHVlX2dldF9jb250ZXh0KHJlc3VsdC5nZXQoKSkgPT0gY29udGV4dC5nZXQo
KSk7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGV4Y2VwdGlvbiA9IGpzY19jb250ZXh0X2dl
dF9leGNlcHRpb24oY29udGV4dC5nZXQoKSkpIHsKQEAgLTIwMTEsNyArMjA1NCw3IEBAIHN0YXRp
YyB2b2lkIHRlc3RzSlNDQXV0b2NsZWFudXBzKCkKICAgICBjaGVja2VyLndhdGNoKGNvbnRleHQp
OwogICAgIGdfYXNzZXJ0X3RydWUoSlNDX0lTX0NPTlRFWFQoY29udGV4dCkpOwogCi0gICAgZ19h
dXRvcHRyKEpTQ1ZhbHVlKSB2YWx1ZSA9IGpzY19jb250ZXh0X2V2YWx1YXRlKGNvbnRleHQsICJ2
ID0gMjUiKTsKKyAgICBnX2F1dG9wdHIoSlNDVmFsdWUpIHZhbHVlID0ganNjX2NvbnRleHRfZXZh
bHVhdGUoY29udGV4dCwgInYgPSAyNSIsIC0xKTsKICAgICBjaGVja2VyLndhdGNoKHZhbHVlKTsK
ICAgICBnX2Fzc2VydF90cnVlKEpTQ19JU19WQUxVRSh2YWx1ZSkpOwogICAgIGdfYXNzZXJ0X3Ry
dWUoanNjX3ZhbHVlX2lzX251bWJlcih2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9KYXZhU2NyaXB0Q29yZS9nbGliL3NjcmlwdC5qcyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvSmF2YVNjcmlwdENvcmUvZ2xpYi9zY3JpcHQuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGNjM2NmMWNkZGZkNmQwM2QzMWE1NWQ0ODgxMjQ4YWQ1Y2E4ZjA3NwpHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgNjUKemNtWWMqJX1YeEglK0ZJT05pOGwzRS1BeylPQXBVMSQ/ei05JDxmZU1zT0N9
dGZ9KyV0KHhOO0NiJS08ck5TKjx0CktLOzQ/Rm1KMHZ+SnIobCsKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9E
T01FbGVtZW50VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
RE9NRWxlbWVudFRlc3QuY3BwCmluZGV4IDk1NGUxYzUzZTIwLi5jZDYwM2FjMmI1NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0RPTUVsZW1lbnRUZXN0
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVu
dFRlc3QuY3BwCkBAIC0zNyw3ICszNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIGdfYXNzZXJ0X3Ry
dWUoSlNDX0lTX0NPTlRFWFQoanNDb250ZXh0LmdldCgpKSk7CiAgICAgICAgIGFzc2VydE9iamVj
dElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoanNDb250ZXh0LmdldCgpKSk7CiAK
LSAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNJbnB1dEVsZW1lbnQgPSBhZG9wdEdSZWYoanNj
X2NvbnRleHRfZXZhbHVhdGUoanNDb250ZXh0LmdldCgpLCAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2F1dG8tZmlsbCcpIikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBqc0lucHV0RWxl
bWVudCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCksICJk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXV0by1maWxsJykiLCAtMSkpOwogICAgICAgICBnX2Fz
c2VydF90cnVlKEpTQ19JU19WQUxVRShqc0lucHV0RWxlbWVudC5nZXQoKSkpOwogICAgICAgICBh
c3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGpzSW5wdXRFbGVt
ZW50LmdldCgpKSk7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChq
c0lucHV0RWxlbWVudC5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL0VkaXRvclRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL0VkaXRvclRlc3QuY3BwCmluZGV4IDQzY2VkMGM1Nzc0Li5jM2QxN2UzOWEz
NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0VkaXRv
clRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9FZGl0
b3JUZXN0LmNwcApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCBp
ID0gMDsKICAgICAgICAgd2hpbGUgKGNvbnN0IGNoYXIqIGNvbW1hbmQgPSBzdGVwc1tpKytdKSB7
CiAgICAgICAgICAgICBnX2Fzc2VydCghc2VsZWN0aW9uQ2hhbmdlZCk7Ci0gICAgICAgICAgICBy
ZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoanNDb250ZXh0LmdldCgpLCBj
b21tYW5kKSk7CisgICAgICAgICAgICByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoanNDb250ZXh0LmdldCgpLCBjb21tYW5kLCAtMSkpOwogICAgICAgICAgICAgZ19hc3Nl
cnQoSlNDX0lTX1ZBTFVFKHJlc3VsdC5nZXQoKSkpOwogICAgICAgICAgICAgZ19hc3NlcnQoc2Vs
ZWN0aW9uQ2hhbmdlZCk7CiAgICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRlc3QuY3Bw
CmluZGV4IGU5MTBiZjdiYzNkLi40NjFiMWNiMjJmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0ZyYW1lVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0ZyYW1lVGVzdC5jcHAKQEAgLTEwMCw3ICsxMDAsNyBA
QCBwcml2YXRlOgogICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVfaXNfb2JqZWN0KGpzUC5nZXQo
KSkpOwogICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVfZ2V0X2NvbnRleHQoanNQLmdldCgpKSA9
PSBqc0NvbnRleHQuZ2V0KCkpOwogCi0gICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250
ZXh0X2V2YWx1YXRlKGpzQ29udGV4dC5nZXQoKSwgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdw
YXJhZ3JhcGgnKSIpKTsKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoanNDb250ZXh0LmdldCgpLCAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmFncmFw
aCcpIiwgLTEpKTsKICAgICAgICAgZ19hc3NlcnQodmFsdWUuZ2V0KCkgPT0ganNQLmdldCgpKTsK
ICNpZiBQTEFURk9STShHVEspCiAgICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9v
YmplY3RfaW52b2tlX21ldGhvZChqc0RvY3VtZW50LmdldCgpLCAiZ2V0RWxlbWVudEJ5SWQiLCBH
X1RZUEVfU1RSSU5HLCAicGFyYWdyYXBoIiwgR19UWVBFX05PTkUpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNw
cAppbmRleCBiNWVmY2Q5ZDk2OS4uNTg5MWZhYTM4YWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKQEAg
LTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMgdm9pZCBjb25zb2xlTWVzc2FnZVNlbnRDYWxsYmFjayhX
ZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBXZWJLaXRDb25zb2xlTWVzcwogICAgICAgICB3ZWJraXRf
Y29uc29sZV9tZXNzYWdlX2dldF9saW5lKGNvbnNvbGVNZXNzYWdlKSwgd2Via2l0X2NvbnNvbGVf
bWVzc2FnZV9nZXRfc291cmNlX2lkKGNvbnNvbGVNZXNzYWdlKSk7CiAgICAgR1VuaXF1ZVB0cjxj
aGFyPiBtZXNzYWdlU3RyaW5nKGdfdmFyaWFudF9wcmludCh2YXJpYW50LmdldCgpLCBGQUxTRSkp
OwogICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRvcHRHUmVmKHdlYmtpdF9m
cmFtZV9nZXRfanNfY29udGV4dCh3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUod2ViUGFn
ZSkpKTsKLSAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBjb25zb2xlID0gYWRvcHRHUmVmKGpzY19jb250
ZXh0X2V2YWx1YXRlKGpzQ29udGV4dC5nZXQoKSwgIndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLmNvbnNvbGUiKSk7CisgICAgR1JlZlB0cjxKU0NWYWx1ZT4gY29uc29sZSA9IGFkb3B0R1Jl
Zihqc2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCksICJ3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy5jb25zb2xlIiwgLTEpKTsKICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUo
Y29uc29sZS5nZXQoKSkpOwogICAgIGlmIChqc2NfdmFsdWVfaXNfb2JqZWN0KGNvbnNvbGUuZ2V0
KCkpKSB7CiAgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2Nf
dmFsdWVfb2JqZWN0X2ludm9rZV9tZXRob2QoY29uc29sZS5nZXQoKSwgInBvc3RNZXNzYWdlIiwg
R19UWVBFX1NUUklORywgbWVzc2FnZVN0cmluZy5nZXQoKSwgR19UWVBFX05PTkUpKTsKQEAgLTQ1
Nyw3ICs0NTcsNyBAQCBzdGF0aWMgdm9pZCBtZXRob2RDYWxsQ2FsbGJhY2soR0RCdXNDb25uZWN0
aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBzZW5kZXIsCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Vi
a2l0X2ZyYW1lX2dldF9qc19jb250ZXh0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShw
YWdlKSkpOwotICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB0aXRsZVZhbHVlID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29udGV4dC5nZXQoKSwgImRvY3VtZW50LnRpdGxlIikp
OworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB0aXRsZVZhbHVlID0gYWRvcHRHUmVmKGpzY19j
b250ZXh0X2V2YWx1YXRlKGpzQ29udGV4dC5nZXQoKSwgImRvY3VtZW50LnRpdGxlIiwgLTEpKTsK
ICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiB0aXRsZShqc2NfdmFsdWVfdG9fc3RyaW5nKHRpdGxl
VmFsdWUuZ2V0KCkpKTsKICAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92
YWx1ZShpbnZvY2F0aW9uLCBnX3ZhcmlhbnRfbmV3KCIocykiLCB0aXRsZS5nZXQoKSkpOwogICAg
IH0gZWxzZSBpZiAoIWdfc3RyY21wMChtZXRob2ROYW1lLCAiSW5wdXRFbGVtZW50SXNVc2VyRWRp
dGVkIikpIHsKQEAgLTQ4OCw3ICs0ODgsNyBAQCBzdGF0aWMgdm9pZCBtZXRob2RDYWxsQ2FsbGJh
Y2soR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBzZW5kZXIsCiAgICAg
ICAgIGdfYXNzZXJ0KHdlYmtpdF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1bHQoKSAhPSB3b3JsZC5n
ZXQoKSk7CiAgICAgICAgIFdlYktpdEZyYW1lKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9nZXRf
bWFpbl9mcmFtZShwYWdlKTsKICAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQg
PSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQo
ZnJhbWUsIHdvcmxkLmdldCgpKSk7Ci0gICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCksIHNjcmlwdCkp
OworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRl
eHRfZXZhbHVhdGUoanNDb250ZXh0LmdldCgpLCBzY3JpcHQsIC0xKSk7CiAgICAgICAgIGdfZGJ1
c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUoaW52b2NhdGlvbiwgMCk7CiAgICAgfSBl
bHNlIGlmICghZ19zdHJjbXAwKG1ldGhvZE5hbWUsICJBYm9ydFByb2Nlc3MiKSkgewogICAgICAg
ICBhYm9ydCgpOwo=
</data>
<flag name="review"
          id="356054"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>