<?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>160769</bug_id>
          
          <creation_ts>2016-08-11 10:35:06 -0700</creation_ts>
          <short_desc>Support WebIDL unions (Part 1)</short_desc>
          <delta_ts>2016-08-18 19:56:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>160805</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1219335</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-11 10:35:06 -0700</bug_when>
    <thetext>Update the IDL parser to parse types more accurately</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219519</commentid>
    <comment_count>1</comment_count>
      <attachid>285884</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-11 20:21:00 -0700</bug_when>
    <thetext>Created attachment 285884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219527</commentid>
    <comment_count>2</comment_count>
      <attachid>285884</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-11 20:45:02 -0700</bug_when>
    <thetext>Comment on attachment 285884
Patch

Very nice. r=me as long as it builds on all ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219532</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-11 21:35:59 -0700</bug_when>
    <thetext>Committed r204404: &lt;http://trac.webkit.org/changeset/204404&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219601</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-12 09:50:11 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 160805</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221206</commentid>
    <comment_count>5</comment_count>
      <attachid>286402</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-18 15:13:20 -0700</bug_when>
    <thetext>Created attachment 286402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221303</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-18 19:56:26 -0700</bug_when>
    <thetext>Re-landed in https://trac.webkit.org/changeset/204626.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285884</attachid>
            <date>2016-08-11 20:21:00 -0700</date>
            <delta_ts>2016-08-18 15:13:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160769-20160811201923.patch</filename>
            <type>text/plain</type>
            <size>34229</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDQwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA4LTExICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3VwcG9ydCBXZWJJREwgdW5pb25zIChQ
YXJ0IDEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjA3NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGlzIHRoZSBmaXJzdCBwYXJ0IG9mIGFuIGVmZm9ydCB0byBhZGQgc3VwcG9ydCBmb3IgdW5p
b24gdHlwZXMKKyAgICAgICAgaW4gb3VyIGNvZGUgZ2VuZXJhdG9ycy4gVGhpcyBjaGFuZ2U6Cisg
ICAgICAgIC0gQWRkcyBhIGRvbVR5cGUgc3RydWN0IHRvIGhvbGQgdGhlIHBhcnNlZCB0eXBlIGlu
Zm9ybWF0aW9uLiBGb3Igbm93LCB3ZSBvbmx5CisgICAgICAgICAgdXNlIGl0IHRlbXBvcmFyaWx5
IHdoaWxlIHBhcnNpbmcsIGFuZCBkb24ndCBleHBvc2UgaXQgdG8gdGhlIGNvZGUgZ2VuZXJhdG9y
cywKKyAgICAgICAgICBidXQgdGhhdCB3aWxsIGNoYW5nZSBpbiBhIGxhdGVyIHBhdGNoLgorICAg
ICAgICAtIFJlbW92ZSBzdXBwb3J0IGZvciBzY29wZWQgaWRlbnRpZmllcnMgZm9yIHR5cGVzLiBU
aGV5IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFdlYklETC4KKyAgICAgICAgLSBNYWtlIGRlYnVnZ2lu
ZyB0aGUgcGFyc2VyIGVhc2llciBieSBwcm92aWRpbmcgYmFja3RyYWNlcyB3aGVuIGFzc2VydGlu
Zy4KKworICAgICAgICBUaGVyZSBzaG91bGQgYmUgbm8gb2JzZXJ2YWJsZSBjaGFuZ2VzLgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG06CisKIDIwMTYtMDgtMTEgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBNaWdyYXRl
IGZyb20gaW50cyB0byB1bnNpZ25lZHMgd2hlbiByZWZlcnJpbmcgdG8gaW5kaWNlcyBpbnRvIHN0
cmluZ3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2Vy
LnBtCShyZXZpc2lvbiAyMDQ0MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETFBhcnNlci5wbQkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOSBAQCBwYWNrYWdlIElE
TFBhcnNlcjsKIAogdXNlIHN0cmljdDsKIAordXNlIENhcnAgcXc8bG9uZ21lc3M+OwordXNlIERh
dGE6OkR1bXBlcjsKKwogdXNlIHByZXByb2Nlc3NvcjsKIHVzZSBDbGFzczo6U3RydWN0OwogCkBA
IC03NCwxNyArNzcsMjQgQEAgc3RydWN0KCBkb21BdHRyaWJ1dGUgPT4gewogICAgIHNpZ25hdHVy
ZSA9PiAnJCcsICAgICAgICAgIyBBdHRyaWJ1dGUgc2lnbmF0dXJlCiB9KTsKIAorc3RydWN0KCBk
b21UeXBlID0+IHsKKyAgICBuYW1lID0+ICAgICAgICAgJyQnLCAjIFR5cGUgaWRlbnRpZmllcgor
ICAgIGlzTnVsbGFibGUgPT4gICAnJCcsICMgSXMgdGhlIHR5cGUgTnVsbGFibGUgKFQ/KQorICAg
IGlzVW5pb24gPT4gICAgICAnJCcsICMgSXMgdGhlIHR5cGUgYSB1bmlvbiAoVCBvciBVKQorICAg
IHN1YnR5cGVzID0+ICAgICAnQCcsICMgQXJyYXkgb2Ygc3VidHlwZXMsIG9ubHkgdmFsaWQgaWYg
aXNVbmlvbiBvciBzZXF1ZW5jZQorfSk7CisKICMgVXNlZCB0byByZXByZXNlbnQgYSBtYXAgb2Yg
J3ZhcmlhYmxlIG5hbWUnIDwtPiAndmFyaWFibGUgdHlwZScKIHN0cnVjdCggZG9tU2lnbmF0dXJl
ID0+IHsKLSAgICBkaXJlY3Rpb24gPT4gJyQnLCAjIFZhcmlhYmxlIGRpcmVjdGlvbiAoaW4gb3Ig
b3V0KQotICAgIG5hbWUgPT4gJyQnLCAgICAgICMgVmFyaWFibGUgbmFtZQotICAgIHR5cGUgPT4g
JyQnLCAgICAgICMgVmFyaWFibGUgdHlwZQotICAgIHNwZWNpYWxzID0+ICdAJywgICMgU3BlY2lh
bHMKKyAgICBkaXJlY3Rpb24gPT4gJyQnLCAgICMgVmFyaWFibGUgZGlyZWN0aW9uIChpbiBvciBv
dXQpCisgICAgbmFtZSA9PiAnJCcsICAgICAgICAjIFZhcmlhYmxlIG5hbWUKKyAgICB0eXBlID0+
ICckJyAgICAgICwgICMgVmFyaWFibGUgdHlwZQorICAgIHNwZWNpYWxzID0+ICdAJywgICAgIyBT
cGVjaWFscwogICAgIGV4dGVuZGVkQXR0cmlidXRlcyA9PiAnJCcsICMgRXh0ZW5kZWQgYXR0cmli
dXRlcwotICAgIGlzTnVsbGFibGUgPT4gJyQnLCAjIElzIHZhcmlhYmxlIHR5cGUgTnVsbGFibGUg
KFQ/KQotICAgIGlzVmFyaWFkaWMgPT4gJyQnLCAjIElzIHZhcmlhYmxlIHZhcmlhZGljIChsb25n
Li4uIG51bWJlcnMpCi0gICAgaXNPcHRpb25hbCA9PiAnJCcsICMgSXMgdmFyaWFibGUgb3B0aW9u
YWwgKG9wdGlvbmFsIFQpCi0gICAgZGVmYXVsdCA9PiAnJCcsICMgRGVmYXVsdCB2YWx1ZSBmb3Ig
cGFyYW1ldGVycworICAgIGlzTnVsbGFibGUgPT4gJyQnLCAgIyBJcyB2YXJpYWJsZSB0eXBlIE51
bGxhYmxlIChUPykKKyAgICBpc1ZhcmlhZGljID0+ICckJywgICMgSXMgdmFyaWFibGUgdmFyaWFk
aWMgKGxvbmcuLi4gbnVtYmVycykKKyAgICBpc09wdGlvbmFsID0+ICckJywgICMgSXMgdmFyaWFi
bGUgb3B0aW9uYWwgKG9wdGlvbmFsIFQpCisgICAgZGVmYXVsdCA9PiAnJCcsICAgICAjIERlZmF1
bHQgdmFsdWUgZm9yIHBhcmFtZXRlcnMKIH0pOwogCiAjIFVzZWQgdG8gcmVwcmVzZW50IEl0ZXJh
YmxlIGludGVyZmFjZXMKQEAgLTk2LDEyICsxMDYsMTEgQEAgc3RydWN0KCBkb21JdGVyYWJsZSA9
PiB7CiAgICAgZXh0ZW5kZWRBdHRyaWJ1dGVzID0+ICckJywgIyBFeHRlbmRlZCBhdHRyaWJ1dGVz
CiB9KTsKIAotCiAjIFVzZWQgdG8gcmVwcmVzZW50IHN0cmluZyBjb25zdGFudHMKIHN0cnVjdCgg
ZG9tQ29uc3RhbnQgPT4gewotICAgIG5hbWUgPT4gJyQnLCAgICAgICMgRE9NIENvbnN0YW50IGlk
ZW50aWZpZXIKLSAgICB0eXBlID0+ICckJywgICAgICAjIFR5cGUgb2YgZGF0YQotICAgIHZhbHVl
ID0+ICckJywgICAgICAjIENvbnN0YW50IHZhbHVlCisgICAgbmFtZSA9PiAnJCcsICAgICAgICAj
IERPTSBDb25zdGFudCBpZGVudGlmaWVyCisgICAgdHlwZSA9PiAnJCcsICAgICAgICAjIFR5cGUg
b2YgZGF0YQorICAgIHZhbHVlID0+ICckJywgICAgICAgIyBDb25zdGFudCB2YWx1ZQogICAgIGV4
dGVuZGVkQXR0cmlidXRlcyA9PiAnJCcsICMgRXh0ZW5kZWQgYXR0cmlidXRlcwogfSk7CiAKQEAg
LTE0OSwxNyArMTU4LDI4IEBAIHN1YiBuZXcgewogICAgIHJldHVybiBibGVzcyAkc2VsZiwgJGNs
YXNzOwogfQogCitzdWIgYXNzZXJ0Cit7CisgICAgbXkgJG1lc3NhZ2UgPSBzaGlmdDsKKyAgICAK
KyAgICBteSAkbWVzcyA9IGxvbmdtZXNzKCk7CisgICAgcHJpbnQgRHVtcGVyKCRtZXNzKTsKKwor
ICAgIGRpZSAkbWVzc2FnZTsKK30KKwogc3ViIGFzc2VydFRva2VuVmFsdWUKIHsKICAgICBteSAk
c2VsZiA9IHNoaWZ0OwogICAgIG15ICR0b2tlbiA9IHNoaWZ0OwogICAgIG15ICR2YWx1ZSA9IHNo
aWZ0OwogICAgIG15ICRsaW5lID0gc2hpZnQ7Ci0gICAgbXkgJG1zZyA9ICJOZXh0IHRva2VuIHNo
b3VsZCBiZSAiIC4gJHZhbHVlIC4gIiwgYnV0ICIgLiAkdG9rZW4tPnZhbHVlKCkgLiAiIGF0ICIg
LiAkc2VsZi0+e0xpbmV9OworICAgIG15ICRtc2cgPSAiTmV4dCB0b2tlbiBzaG91bGQgYmUgIiAu
ICR2YWx1ZSAuICIsIGJ1dCAiIC4gJHRva2VuLT52YWx1ZSgpIC4gIiBvbiBsaW5lICIgLiAkc2Vs
Zi0+e0xpbmV9OwogICAgIGlmIChkZWZpbmVkICgkbGluZSkpIHsKICAgICAgICAgJG1zZyAuPSAi
IElETFBhcnNlci5wbToiIC4gJGxpbmU7CiAgICAgfQotICAgIGRpZSAkbXNnIHVubGVzcyAkdG9r
ZW4tPnZhbHVlKCkgZXEgJHZhbHVlOworCisgICAgYXNzZXJ0ICRtc2cgdW5sZXNzICR0b2tlbi0+
dmFsdWUoKSBlcSAkdmFsdWU7CiB9CiAKIHN1YiBhc3NlcnRUb2tlblR5cGUKQEAgLTE2Nyw3ICsx
ODcsOCBAQCBzdWIgYXNzZXJ0VG9rZW5UeXBlCiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBt
eSAkdG9rZW4gPSBzaGlmdDsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwotICAgIGRpZSAiTmV4dCB0
b2tlbidzIHR5cGUgc2hvdWxkIGJlICIgLiAkdHlwZSAuICIsIGJ1dCAiIC4gJHRva2VuLT50eXBl
KCkgLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9IHVubGVzcyAkdG9rZW4tPnR5cGUoKSBlcSAkdHlw
ZTsKKyAgICAKKyAgICBhc3NlcnQgIk5leHQgdG9rZW4ncyB0eXBlIHNob3VsZCBiZSAiIC4gJHR5
cGUgLiAiLCBidXQgIiAuICR0b2tlbi0+dHlwZSgpIC4gIiBvbiBsaW5lICIgLiAkc2VsZi0+e0xp
bmV9IHVubGVzcyAkdG9rZW4tPnR5cGUoKSBlcSAkdHlwZTsKIH0KIAogc3ViIGFzc2VydFVuZXhw
ZWN0ZWRUb2tlbgpAQCAtMTc1LDExICsxOTYsMTIgQEAgc3ViIGFzc2VydFVuZXhwZWN0ZWRUb2tl
bgogICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgJHRva2VuID0gc2hpZnQ7CiAgICAgbXkg
JGxpbmUgPSBzaGlmdDsKLSAgICBteSAkbXNnID0gIlVuZXhwZWN0ZWQgdG9rZW4gIiAuICR0b2tl
biAuICIgYXQgIiAuICRzZWxmLT57TGluZX07CisgICAgbXkgJG1zZyA9ICJVbmV4cGVjdGVkIHRv
a2VuICIgLiAkdG9rZW4gLiAiIG9uIGxpbmUgIiAuICRzZWxmLT57TGluZX07CiAgICAgaWYgKGRl
ZmluZWQgKCRsaW5lKSkgewogICAgICAgICAkbXNnIC49ICIgSURMUGFyc2VyLnBtOiIgLiAkbGlu
ZTsKICAgICB9Ci0gICAgZGllICRtc2c7CisKKyAgICBhc3NlcnQgJG1zZzsKIH0KIAogc3ViIGFz
c2VydE5vRXh0ZW5kZWRBdHRyaWJ1dGVzSW5UeXBlZGVmCkBAIC0xODgsMTEgKzIxMCwxMiBAQCBz
dWIgYXNzZXJ0Tm9FeHRlbmRlZEF0dHJpYnV0ZXNJblR5cGVkZWYKICAgICBteSAkbmFtZSA9IHNo
aWZ0OwogICAgIG15ICRsaW5lID0gc2hpZnQ7CiAgICAgbXkgJHR5cGVkZWYgPSAkdHlwZWRlZnN7
JG5hbWV9OwotICAgIG15ICRtc2cgPSAiVW5leHBlY3RlZCBleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
aW4gdHlwZWRlZiBcIiRuYW1lXCIgYXQgIiAuICRzZWxmLT57TGluZX07CisgICAgbXkgJG1zZyA9
ICJVbmV4cGVjdGVkIGV4dGVuZGVkQXR0cmlidXRlTGlzdCBpbiB0eXBlZGVmIFwiJG5hbWVcIiBv
biBsaW5lICIgLiAkc2VsZi0+e0xpbmV9OwogICAgIGlmIChkZWZpbmVkICgkbGluZSkpIHsKICAg
ICAgICAgJG1zZyAuPSAiIElETFBhcnNlci5wbToiIC4gJGxpbmU7CiAgICAgfQotICAgIGRpZSAk
bXNnIGlmICV7JHR5cGVkZWYtPmV4dGVuZGVkQXR0cmlidXRlc307CisKKyAgICBhc3NlcnQgJG1z
ZyBpZiAleyR0eXBlZGVmLT5leHRlbmRlZEF0dHJpYnV0ZXN9OwogfQogCiBzdWIgUGFyc2UKQEAg
LTIxNiw3ICsyMzksNyBAQCBzdWIgUGFyc2UKICAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJG5leHQsIEVtcHR5VG9r
ZW4pOwogICAgIH07Ci0gICAgZGllICRAIC4gIiBpbiAkZmlsZU5hbWUiIGlmICRAOworICAgIGFz
c2VydCAkQCAuICIgaW4gJGZpbGVOYW1lIiBpZiAkQDsKIAogICAgIG15ICRkb2N1bWVudCA9IGlk
bERvY3VtZW50LT5uZXcoKTsKICAgICAkZG9jdW1lbnQtPmZpbGVOYW1lKCRmaWxlTmFtZSk7CkBA
IC0yNTMsNyArMjc2LDcgQEAgbXkgJGZsb2F0VG9rZW5QYXR0ZXJuID0gJ14oLT8oKFswLTldK1wu
WwogbXkgJGludGVnZXJUb2tlblBhdHRlcm4gPSAnXigtP1sxLTldWzAtOV0qfC0/MFtYeF1bMC05
QS1GYS1mXSt8LT8wWzAtN10qKSc7CiBteSAkc3RyaW5nVG9rZW5QYXR0ZXJuID0gJ14oXCJbXlwi
XSpcIiknOwogbXkgJGlkZW50aWZpZXJUb2tlblBhdHRlcm4gPSAnXihbQS1aX2Etel1bMC05QS1a
X2Etel0qKSc7Ci1teSAkb3RoZXJUb2tlblBhdHRlcm4gPSAnXig6OnxcLlwuXC58W15cdFxuXHIg
MC05QS1aX2Etel0pJzsKK215ICRvdGhlclRva2VuUGF0dGVybiA9ICdeKFwuXC5cLnxbXlx0XG5c
ciAwLTlBLVpfYS16XSknOwogCiBzdWIgZ2V0VG9rZW5JbnRlcm5hbAogewpAQCAtMzE4LDIxICsz
NDEsNiBAQCBzdWIgdW5xdW90ZVN0cmluZwogICAgIGRpZSAiRmFpbGVkIHRvIHBhcnNlIHN0cmlu
ZyAoIiAuICRxdW90ZWRTdHJpbmcgLiAiKSBhdCAiIC4gJHNlbGYtPntMaW5lfTsKIH0KIAotc3Vi
IHR5cGVIYXNOdWxsYWJsZVN1ZmZpeAotewotICAgIG15ICR0eXBlID0gc2hpZnQ7Ci0gICAgcmV0
dXJuICR0eXBlID8gJHR5cGUgPX4gL1w/JC8gOiAwOwotfQotCi1zdWIgdHlwZVJlbW92ZU51bGxh
YmxlU3VmZml4Ci17Ci0gICAgbXkgJHR5cGUgPSBzaGlmdDsKLSAgICBpZiAoJHR5cGUpIHsKLSAg
ICAgICAgJHR5cGUgPX4gcy9cPy8vZzsKLSAgICB9Ci0gICAgcmV0dXJuICR0eXBlOwotfQotCiBz
dWIgaWRlbnRpZmllclJlbW92ZU51bGxhYmxlUHJlZml4CiB7CiAgICAgbXkgJHR5cGUgPSBzaGlm
dDsKQEAgLTM0MywyNiArMzUxLDI2IEBAIHN1YiBpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQcmVm
aXgKIG15ICRuZXh0QXR0cmlidXRlXzEgPSAnXihhdHRyaWJ1dGV8aW5oZXJpdHxyZWFkb25seSkk
JzsKIG15ICRuZXh0UHJpbWl0aXZlVHlwZV8xID0gJ14oaW50fGxvbmd8c2hvcnR8dW5zaWduZWQp
JCc7CiBteSAkbmV4dFByaW1pdGl2ZVR5cGVfMiA9ICdeKGRvdWJsZXxmbG9hdHx1bnJlc3RyaWN0
ZWQpJCc7Ci1teSAkbmV4dEFyZ3VtZW50TGlzdF8xID0gJ14oXCh8Ojp8Qnl0ZVN0cmluZ3xET01T
dHJpbmd8VVNWU3RyaW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8aW58
bG9uZ3xvYmplY3R8b2N0ZXR8b3B0aW9uYWx8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVu
c2lnbmVkKSQnOworbXkgJG5leHRBcmd1bWVudExpc3RfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9N
U3RyaW5nfFVTVlN0cmluZ3xEYXRlfFxbfGFueXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGlu
fGxvbmd8b2JqZWN0fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1
bnNpZ25lZCkkJzsKIG15ICRuZXh0Tm9uQW55VHlwZV8xID0gJ14oYm9vbGVhbnxieXRlfGRvdWJs
ZXxmbG9hdHxsb25nfG9jdGV0fHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKLW15ICRu
ZXh0SW50ZXJmYWNlTWVtYmVyXzEgPSAnXihcKHw6OnxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZT
dHJpbmd8RGF0ZXxhbnl8YXR0cmlidXRlfGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8ZG91
YmxlfGZsb2F0fGdldHRlcnxpbmhlcml0fGxlZ2FjeWNhbGxlcnxsb25nfG9iamVjdHxvY3RldHxy
ZWFkb25seXxzZXF1ZW5jZXxzZXJpYWxpemVyfHNldHRlcnxzaG9ydHxzdGF0aWN8c3RyaW5naWZp
ZXJ8dW5yZXN0cmljdGVkfHVuc2lnbmVkfHZvaWQpJCc7CitteSAkbmV4dEludGVyZmFjZU1lbWJl
cl8xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55fGF0dHJp
YnV0ZXxib29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5o
ZXJpdHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2Vy
aWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHVucmVzdHJpY3RlZHx1bnNp
Z25lZHx2b2lkKSQnOwogbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbl8xID0gJ14oc3RhdGlj
fHN0cmluZ2lmaWVyKSQnOwotbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbl8yID0gJ14oXCh8
Ojp8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxj
cmVhdG9yfGRlbGV0ZXJ8ZG91YmxlfGZsb2F0fGdldHRlcnxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmpl
Y3R8b2N0ZXR8c2VxdWVuY2V8c2V0dGVyfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lk
KSQnOworbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvbl8yID0gJ14oXCh8Qnl0ZVN0cmluZ3xE
T01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxjcmVhdG9yfGRlbGV0ZXJ8
ZG91YmxlfGZsb2F0fGdldHRlcnxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVu
Y2V8c2V0dGVyfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQnOwogbXkgJG5leHRV
bnJlc3RyaWN0ZWRGbG9hdFR5cGVfMSA9ICdeKGRvdWJsZXxmbG9hdCkkJzsKLW15ICRuZXh0RXh0
ZW5kZWRBdHRyaWJ1dGVSZXN0M18xID0gJ14oXCx8Ojp8XF0pJCc7Ci1teSAkbmV4dEV4Y2VwdGlv
bkZpZWxkXzEgPSAnXihcKHw6OnxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8RGF0ZXxh
bnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxz
aG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7Ci1teSAkbmV4dFR5cGVfMSA9ICdeKDo6fEJ5
dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8ZG91Ymxl
fGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNp
Z25lZCkkJzsKK215ICRuZXh0RXh0ZW5kZWRBdHRyaWJ1dGVSZXN0M18xID0gJ14oXCx8XF0pJCc7
CitteSAkbmV4dEV4Y2VwdGlvbkZpZWxkXzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xV
U1ZTdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxv
Y3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dFR5
cGVfMSA9ICdeKEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xEYXRlfGFueXxib29sZWFu
fGJ5dGV8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVz
dHJpY3RlZHx1bnNpZ25lZCkkJzsKIG15ICRuZXh0U3BlY2lhbHNfMSA9ICdeKGNyZWF0b3J8ZGVs
ZXRlcnxnZXR0ZXJ8bGVnYWN5Y2FsbGVyfHNldHRlcikkJzsKLW15ICRuZXh0RGVmaW5pdGlvbnNf
MSA9ICdeKDo6fGNhbGxiYWNrfGRpY3Rpb25hcnl8ZW51bXxleGNlcHRpb258aW50ZXJmYWNlfHBh
cnRpYWx8dHlwZWRlZikkJzsKLW15ICRuZXh0RXhjZXB0aW9uTWVtYmVyc18xID0gJ14oXCh8Ojp8
Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8XFt8YW55fGJvb2xlYW58Ynl0ZXxj
b25zdHxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8b3B0aW9uYWx8c2VxdWVuY2V8c2hv
cnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHREZWZpbml0aW9uc18xID0gJ14o
Y2FsbGJhY2t8ZGljdGlvbmFyeXxlbnVtfGV4Y2VwdGlvbnxpbnRlcmZhY2V8cGFydGlhbHx0eXBl
ZGVmKSQnOworbXkgJG5leHRFeGNlcHRpb25NZW1iZXJzXzEgPSAnXihcKHxCeXRlU3RyaW5nfERP
TVN0cmluZ3xVU1ZTdHJpbmd8RGF0ZXxcW3xhbnl8Ym9vbGVhbnxieXRlfGNvbnN0fGRvdWJsZXxm
bG9hdHxsb25nfG9iamVjdHxvY3RldHxvcHRpb25hbHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0
ZWR8dW5zaWduZWQpJCc7CiBteSAkbmV4dEF0dHJpYnV0ZVJlc3RfMSA9ICdeKGF0dHJpYnV0ZXxy
ZWFkb25seSkkJzsKLW15ICRuZXh0SW50ZXJmYWNlTWVtYmVyc18xID0gJ14oXCh8Ojp8Qnl0ZVN0
cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8
Y29uc3R8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxsZWdhY3lj
YWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2VyaWFsaXplcnxzZXR0
ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQn
OwotbXkgJG5leHRTaW5nbGVUeXBlXzEgPSAnXig6OnxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZT
dHJpbmd8RGF0ZXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHNl
cXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0SW50ZXJmYWNl
TWVtYmVyc18xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55
fGF0dHJpYnV0ZXxib29sZWFufGJ5dGV8Y29uc3R8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9h
dHxnZXR0ZXJ8aW5oZXJpdHxsZWdhY3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8
c2VxdWVuY2V8c2VyaWFsaXplcnxzZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHVucmVz
dHJpY3RlZHx1bnNpZ25lZHx2b2lkKSQnOworbXkgJG5leHRTaW5nbGVUeXBlXzEgPSAnXihCeXRl
U3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8RGF0ZXxib29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0
fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkk
JzsKIG15ICRuZXh0QXJndW1lbnROYW1lXzEgPSAnXihhdHRyaWJ1dGV8Y2FsbGJhY2t8Y29uc3R8
Y3JlYXRvcnxkZWxldGVyfGRpY3Rpb25hcnl8ZW51bXxleGNlcHRpb258Z2V0dGVyfGltcGxlbWVu
dHN8aW5oZXJpdHxpbnRlcmZhY2V8bGVnYWN5Y2FsbGVyfHBhcnRpYWx8c2VyaWFsaXplcnxzZXR0
ZXJ8c3RhdGljfHN0cmluZ2lmaWVyfHR5cGVkZWZ8dW5yZXN0cmljdGVkKSQnOwogbXkgJG5leHRD
b25zdFZhbHVlXzEgPSAnXihmYWxzZXx0cnVlKSQnOwogbXkgJG5leHRDb25zdFZhbHVlXzIgPSAn
XigtfEluZmluaXR5fE5hTikkJzsKIG15ICRuZXh0RGVmaW5pdGlvbl8xID0gJ14oY2FsbGJhY2t8
aW50ZXJmYWNlKSQnOwotbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMSA9ICdeKFwo
fDo6fEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8
ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3Rl
ZHx1bnNpZ25lZHx2b2lkKSQnOworbXkgJG5leHRBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3RfMSA9
ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xEYXRlfGFueXxib29sZWFufGJ5
dGV8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNob3J0fHVucmVzdHJp
Y3RlZHx1bnNpZ25lZHx2b2lkKSQnOwogbXkgJG5leHRVbnNpZ25lZEludGVnZXJUeXBlXzEgPSAn
Xihsb25nfHNob3J0KSQnOwogbXkgJG5leHREZWZhdWx0VmFsdWVfMSA9ICdeKC18SW5maW5pdHl8
TmFOfGZhbHNlfG51bGx8dHJ1ZSkkJzsKIApAQCAtNDgwLDcgKzQ4OCw3IEBAIHN1YiBwYXJzZURl
ZmluaXRpb24KICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInR5cGVkZWYiKSB7CiAgICAgICAg
IHJldHVybiAkc2VsZi0+cGFyc2VUeXBlZGVmKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAg
IH0KLSAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZh
bHVlKCkgZXEgIjo6IikgeworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tl
bikgewogICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW1wbGVtZW50c1N0YXRlbWVudCgkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICB9CiAgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRU
b2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwpAQCAtNjg3LDEzICs2OTUsMTAgQEAgc3Vi
IHBhcnNlRGljdGlvbmFyeU1lbWJlcgogICAgICAgICAgICAgJG1lbWJlci0+aXNPcHRpb25hbCgw
KTsKICAgICAgICAgfQogICAgICAgICAkbWVtYmVyLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVu
ZGVkQXR0cmlidXRlTGlzdCk7CisKICAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBl
KCk7Ci0gICAgICAgIGlmICh0eXBlSGFzTnVsbGFibGVTdWZmaXgoJHR5cGUpKSB7Ci0gICAgICAg
ICAgICAkbWVtYmVyLT5pc051bGxhYmxlKDEpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgJG1lbWJlci0+aXNOdWxsYWJsZSgwKTsKLSAgICAgICAgfQotICAgICAgICAkbWVtYmVyLT50
eXBlKHR5cGVSZW1vdmVOdWxsYWJsZVN1ZmZpeCgkdHlwZSkpOworICAgICAgICAkbWVtYmVyLT50
eXBlKCR0eXBlLT5uYW1lKTsKKyAgICAgICAgJG1lbWJlci0+aXNOdWxsYWJsZSgkdHlwZS0+aXNO
dWxsYWJsZSk7CiAKICAgICAgICAgbXkgJG5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwog
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRuYW1lVG9rZW4sIElkZW50aWZpZXJUb2tl
bik7CkBAIC04MDYsOSArODExLDEwIEBAIHN1YiBwYXJzZUluaGVyaXRhbmNlCiAgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI6Iikg
ewogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjoi
LCBfX0xJTkVfXyk7Ci0gICAgICAgIG15ICRzY29wZWROYW1lID0gJHNlbGYtPnBhcnNlU2NvcGVk
TmFtZSgpOwotICAgICAgICBwdXNoKEBwYXJlbnQsICRzY29wZWROYW1lKTsKLSAgICAgICAgIyBN
dWx0aXBsZSBpbmhlcml0YW5jZSAobmVlZGVkIGZvciBPYmpDIGJpbmRpbmdzKS4KKyAgICAgICAg
bXkgJG5hbWUgPSAkc2VsZi0+cGFyc2VOYW1lKCk7CisgICAgICAgIHB1c2goQHBhcmVudCwgJG5h
bWUpOworCisgICAgICAgICMgRklYTUU6IFJlbW92ZS4gV2FzIG5lZWRlZCBmb3IgbmVlZGVkIGZv
ciBPYmpDIGJpbmRpbmdzLgogICAgICAgICBwdXNoKEBwYXJlbnQsIEB7JHNlbGYtPnBhcnNlSWRl
bnRpZmllcnMoKX0pOwogICAgIH0KICAgICByZXR1cm4gXEBwYXJlbnQ7CkBAIC05MDAsNyArOTA2
LDEwIEBAIHN1YiBwYXJzZVR5cGVkZWYKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJ0eXBlZGVmIiwgX19MSU5FX18pOwogICAgICAgICBteSAkdHlw
ZWRlZiA9IFR5cGVkZWYtPm5ldygpOwogICAgICAgICAkdHlwZWRlZi0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzKCRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlTGlzdEFsbG93RW1wdHkoKSk7Ci0gICAg
ICAgICR0eXBlZGVmLT50eXBlKCRzZWxmLT5wYXJzZVR5cGUoKSk7CisKKyAgICAgICAgbXkgJHR5
cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAgICR0eXBlZGVmLT50eXBlKCR0eXBlLT5u
YW1lKTsKKwogICAgICAgICBteSAkbmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CiAgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJG5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsK
ICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7Iiwg
X19MSU5FX18pOwpAQCAtOTE5LDkgKzkyOCw5IEBAIHN1YiBwYXJzZUltcGxlbWVudHNTdGF0ZW1l
bnQKIAogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgewotICAgICAgICAkc2VsZi0+cGFyc2VTY29wZWRO
YW1lKCk7CisgICAgICAgICRzZWxmLT5wYXJzZU5hbWUoKTsKICAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbXBsZW1lbnRzIiwgX19MSU5FX18pOwot
ICAgICAgICAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCk7CisgICAgICAgICRzZWxmLT5wYXJzZU5h
bWUoKTsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICI7IiwgX19MSU5FX18pOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTM3LDcgKzk0Niwx
MCBAQCBzdWIgcGFyc2VDb25zdAogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiY29uc3QiKSB7
CiAgICAgICAgIG15ICRuZXdEYXRhTm9kZSA9IGRvbUNvbnN0YW50LT5uZXcoKTsKICAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJjb25zdCIsIF9fTElO
RV9fKTsKLSAgICAgICAgJG5ld0RhdGFOb2RlLT50eXBlKCRzZWxmLT5wYXJzZUNvbnN0VHlwZSgp
KTsKKyAgICAgICAgCisgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlQ29uc3RUeXBlKCk7
CisgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgkdHlwZS0+bmFtZSk7CisKICAgICAgICAgbXkg
JGNvbnN0TmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CiAgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblR5cGUoJGNvbnN0TmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwogICAgICAgICAk
bmV3RGF0YU5vZGUtPm5hbWUoaWRlbnRpZmllclJlbW92ZU51bGxhYmxlUHJlZml4KCRjb25zdE5h
bWVUb2tlbi0+dmFsdWUoKSkpOwpAQCAtMTE4NSwxMiArMTE5Nyw4IEBAIHN1YiBwYXJzZUF0dHJp
YnV0ZU9yT3BlcmF0aW9uUmVzdAogICAgICAgICBteSAkcmV0dXJuVHlwZSA9ICRzZWxmLT5wYXJz
ZVJldHVyblR5cGUoKTsKICAgICAgICAgbXkgJGludGVyZmFjZSA9ICRzZWxmLT5wYXJzZU9wZXJh
dGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgICAgIGlmIChkZWZpbmVkICgk
aW50ZXJmYWNlKSkgewotICAgICAgICAgICAgaWYgKHR5cGVIYXNOdWxsYWJsZVN1ZmZpeCgkcmV0
dXJuVHlwZSkpIHsKLSAgICAgICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWduYXR1cmUtPmlzTnVs
bGFibGUoMSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRpbnRlcmZh
Y2UtPnNpZ25hdHVyZS0+aXNOdWxsYWJsZSgwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICRpbnRlcmZhY2UtPnNpZ25hdHVyZS0+dHlwZSh0eXBlUmVtb3ZlTnVsbGFibGVTdWZmaXgoJHJl
dHVyblR5cGUpKTsKKyAgICAgICAgICAgICRpbnRlcmZhY2UtPnNpZ25hdHVyZS0+dHlwZSgkcmV0
dXJuVHlwZS0+bmFtZSk7CisgICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWduYXR1cmUtPmlzTnVs
bGFibGUoJHJldHVyblR5cGUtPmlzTnVsbGFibGUpOwogICAgICAgICB9CiAgICAgICAgIHJldHVy
biAkaW50ZXJmYWNlOwogICAgIH0KQEAgLTEyMjYsMTQgKzEyMzQsMTEgQEAgc3ViIHBhcnNlQXR0
cmlidXRlUmVzdAogICAgICAgICB9CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiYXR0cmlidXRlIiwgX19MSU5FX18pOwogICAgICAgICAkbmV3RGF0
YU5vZGUtPnNpZ25hdHVyZShkb21TaWduYXR1cmUtPm5ldygpKTsKKyAgICAgICAgCiAgICAgICAg
IG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAgICAgICBpZiAodHlwZUhhc051bGxh
YmxlU3VmZml4KCR0eXBlKSkgewotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUt
PmlzTnVsbGFibGUoMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZS0+aXNOdWxsYWJsZSgwKTsKLSAgICAgICAgfQotICAgICAgICAjIFJlbW92
ZSBhbGwgIj8iIGluIHRoZSB0eXBlIGRlY2xhcmF0aW9uLCBlLmcuICJkb3VibGU/IiAtPiAiZG91
YmxlIi4KLSAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPnR5cGUodHlwZVJlbW92ZU51
bGxhYmxlU3VmZml4KCR0eXBlKSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50
eXBlKCR0eXBlLT5uYW1lKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmlzTnVs
bGFibGUoJHR5cGUtPmlzTnVsbGFibGUpOworCiAgICAgICAgIG15ICR0b2tlbiA9ICRzZWxmLT5n
ZXRUb2tlbigpOwogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRp
ZmllclRva2VuKTsKICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5hbWUoaWRlbnRp
ZmllclJlbW92ZU51bGxhYmxlUHJlZml4KCR0b2tlbi0+dmFsdWUoKSkpOwpAQCAtMTI4OCwxMiAr
MTI5Myw4IEBAIHN1YiBwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IKICAgICAgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7CiAgICAgICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50
aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKICAgICAgICAgICAgIG15ICRv
cGVyYXRpb24gPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOwotICAgICAgICAgICAgaWYgKHR5cGVIYXNOdWxsYWJsZVN1ZmZpeCgkcmV0dXJuVHlwZSkp
IHsKLSAgICAgICAgICAgICAgICAkb3BlcmF0aW9uLT5zaWduYXR1cmUtPmlzTnVsbGFibGUoMSk7
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICRvcGVyYXRpb24tPnNpZ25h
dHVyZS0+aXNOdWxsYWJsZSgwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICRvcGVyYXRp
b24tPnNpZ25hdHVyZS0+dHlwZSh0eXBlUmVtb3ZlTnVsbGFibGVTdWZmaXgoJHJldHVyblR5cGUp
KTsKKyAgICAgICAgICAgICRvcGVyYXRpb24tPnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZS0+
bmFtZSk7CisgICAgICAgICAgICAkb3BlcmF0aW9uLT5zaWduYXR1cmUtPmlzTnVsbGFibGUoJHJl
dHVyblR5cGUtPmlzTnVsbGFibGUpOwogCiAgICAgICAgICAgICByZXR1cm4gJG9wZXJhdGlvbjsK
ICAgICAgICAgfQpAQCAtMTMxMywxMyArMTMxNCw4IEBAIHN1YiBwYXJzZVNwZWNpYWxPcGVyYXRp
b24KICAgICAgICAgbXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CiAg
ICAgICAgIG15ICRpbnRlcmZhY2UgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QpOwogICAgICAgICBpZiAoZGVmaW5lZCAoJGludGVyZmFjZSkpIHsKLSAg
ICAgICAgICAgIGlmICh0eXBlSGFzTnVsbGFibGVTdWZmaXgoJHJldHVyblR5cGUpKSB7Ci0gICAg
ICAgICAgICAgICAgJGludGVyZmFjZS0+c2lnbmF0dXJlLT5pc051bGxhYmxlKDEpOwotICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWduYXR1cmUtPmlz
TnVsbGFibGUoMCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWdu
YXR1cmUtPnR5cGUodHlwZVJlbW92ZU51bGxhYmxlU3VmZml4KCRyZXR1cm5UeXBlKSk7Ci0KKyAg
ICAgICAgICAgICRpbnRlcmZhY2UtPnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZS0+bmFtZSk7
CisgICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWduYXR1cmUtPmlzTnVsbGFibGUoJHJldHVyblR5
cGUtPmlzTnVsbGFibGUpOwogICAgICAgICAgICAgJGludGVyZmFjZS0+c2lnbmF0dXJlLT5zcGVj
aWFscyhcQHNwZWNpYWxzKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gJGludGVyZmFjZTsK
QEAgLTE1MzAsMTUgKzE1MjYsMTAgQEAgc3ViIHBhcnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1l
bnQKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgIm9wdGlvbmFsIikgewogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgIm9wdGlvbmFsIiwgX19MSU5FX18pOworCiAgICAgICAgIG15ICR0
eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAgICAgICAjIGRvbURhdGFOb2RlIGNhbiBvbmx5
IGNvbnNpZGVyIGxhc3QgIj8iLgotICAgICAgICBpZiAodHlwZUhhc051bGxhYmxlU3VmZml4KCR0
eXBlKSkgewotICAgICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoMSk7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgwKTsK
LSAgICAgICAgfQotICAgICAgICAjIFJlbW92ZSAiPyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/
IiAtPiAib2JqZWN0Ii4KLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoaWRlbnRpZmllclJl
bW92ZU51bGxhYmxlUHJlZml4KHR5cGVSZW1vdmVOdWxsYWJsZVN1ZmZpeCgkdHlwZSkpKTsKKyAg
ICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoaWRlbnRpZmllclJlbW92ZU51bGxhYmxlUHJlZml4
KCR0eXBlLT5uYW1lKSk7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKCR0eXBl
LT5pc051bGxhYmxlKTsKICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzT3B0aW9uYWwoMSk7CiAg
ICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJzZUFyZ3VtZW50TmFtZSgpKTsK
ICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmRlZmF1bHQoJHNlbGYtPnBhcnNlRGVmYXVsdCgpKTsK
QEAgLTE1NDYsMTQgKzE1MzcsOCBAQCBzdWIgcGFyc2VPcHRpb25hbE9yUmVxdWlyZWRBcmd1bWVu
dAogICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5l
eHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsKICAgICAgICAgbXkgJHR5
cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7Ci0gICAgICAgICMgZG9tRGF0YU5vZGUgY2FuIG9ubHkg
Y29uc2lkZXIgbGFzdCAiPyIuCi0gICAgICAgIGlmICh0eXBlSGFzTnVsbGFibGVTdWZmaXgoJHR5
cGUpKSB7Ci0gICAgICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgxKTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKDApOwot
ICAgICAgICB9Ci0gICAgICAgICMgUmVtb3ZlICI/IiBpZiBleGlzdHMsIGUuZy4gIm9iamVjdD8i
IC0+ICJvYmplY3QiLgotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZSh0eXBlUmVtb3ZlTnVs
bGFibGVTdWZmaXgoJHR5cGUpKTsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHR5cGUt
Pm5hbWUpOworICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgkdHlwZS0+aXNOdWxs
YWJsZSk7CiAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc09wdGlvbmFsKDApOwogICAgICAgICAk
cGFyYW1EYXRhTm9kZS0+aXNWYXJpYWRpYygkc2VsZi0+cGFyc2VFbGxpcHNpcygpKTsKICAgICAg
ICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUoJHNlbGYtPnBhcnNlQXJndW1lbnROYW1lKCkpOwpAQCAt
MTYxMiw3ICsxNTk3LDExIEBAIHN1YiBwYXJzZUV4Y2VwdGlvbkZpZWxkCiAgICAgICAgICRuZXdE
YXRhTm9kZS0+dHlwZSgiYXR0cmlidXRlIik7CiAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNSZWFk
T25seSgxKTsKICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUoZG9tU2lnbmF0dXJlLT5u
ZXcoKSk7Ci0gICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCRzZWxmLT5wYXJz
ZVR5cGUoKSk7CisKKyAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAg
ICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT50eXBlKCR0eXBlLT5uYW1lKTsKKyAgICAgICAg
JG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmlzTnVsbGFibGUoJHR5cGUtPmlzTnVsbGFibGUpOwor
ICAgICAgICAKICAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CiAgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwogICAgICAg
ICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+bmFtZShpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQ
cmVmaXgoJHRva2VuLT52YWx1ZSgpKSk7CkBAIC0xNjk4LDkgKzE2ODcsOSBAQCBzdWIgcGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZQogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgJG5leHQg
PSAkc2VsZi0+bmV4dFRva2VuKCk7Ci0gICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmll
clRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKLSAgICAgICAgbXkgJHNjb3BlZE5h
bWUgPSAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCk7Ci0gICAgICAgIHJldHVybiAkc2VsZi0+cGFy
c2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QoJHNjb3BlZE5hbWUpOworICAgIGlmICgkbmV4dC0+dHlw
ZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAkbmFtZSA9ICRzZWxmLT5wYXJz
ZU5hbWUoKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVz
dCgkbmFtZSk7CiAgICAgfQogICAgICMgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gU3BlYyBkb2Vz
bicgYWxsb3cgIltdIi4gQnV0IFdlYktpdCByZXF1aXJlcy4KICAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgJ10nKSB7CkBAIC0xNzEzLDkgKzE3MDIsOSBAQCBzdWIgcGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZTIKIHsKICAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOwotICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAk
bmV4dC0+dmFsdWUoKSBlcSAiOjoiKSB7Ci0gICAgICAgIG15ICRzY29wZWROYW1lID0gJHNlbGYt
PnBhcnNlU2NvcGVkTmFtZSgpOwotICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRB
dHRyaWJ1dGVSZXN0KCRzY29wZWROYW1lKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVu
dGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJG5hbWUgPSAkc2VsZi0+cGFyc2VOYW1lKCk7Cisg
ICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QoJG5hbWUpOwog
ICAgIH0KICAgICByZXR1cm4ge307CiB9CkBAIC0xNzU3LDkgKzE3NDYsOSBAQCBzdWIgcGFyc2VF
eHRlbmRlZEF0dHJpYnV0ZVJlc3QyCiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRz
ZWxmLT5nZXRUb2tlbigpLCAiKSIsIF9fTElORV9fKTsKICAgICAgICAgcmV0dXJuIEBhcmd1bWVu
dHM7CiAgICAgfQotICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAk
bmV4dC0+dmFsdWUoKSBlcSAiOjoiKSB7Ci0gICAgICAgIG15ICRzY29wZWROYW1lID0gJHNlbGYt
PnBhcnNlU2NvcGVkTmFtZSgpOwotICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRB
dHRyaWJ1dGVSZXN0Mygkc2NvcGVkTmFtZSk7CisgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRl
bnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICRuYW1lID0gJHNlbGYtPnBhcnNlTmFtZSgpOwor
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MygkbmFtZSk7
CiAgICAgfQogICAgIGlmICgkbmV4dC0+dHlwZSgpID09IEludGVnZXJUb2tlbikgewogICAgICAg
ICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKQEAgLTE3NzYsMTIgKzE3NjUsMTIgQEAg
c3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MwogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5l
eHRUb2tlbigpOwogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiJiIpIHsKICAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICImIiwgX19MSU5FX18pOwot
ICAgICAgICBteSAkcmlnaHRWYWx1ZSA9ICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKKyAgICAg
ICAgbXkgJHJpZ2h0VmFsdWUgPSAkc2VsZi0+cGFyc2VOYW1lKCk7CiAgICAgICAgIHJldHVybiAk
bmFtZSAuICImIiAuICRyaWdodFZhbHVlOwogICAgIH0KICAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgInwiKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAifCIsIF9fTElORV9fKTsKLSAgICAgICAgbXkgJHJpZ2h0VmFsdWUgPSAkc2VsZi0+cGFy
c2VTY29wZWROYW1lKCk7CisgICAgICAgIG15ICRyaWdodFZhbHVlID0gJHNlbGYtPnBhcnNlTmFt
ZSgpOwogICAgICAgICByZXR1cm4gJG5hbWUgLiAifCIgLiAkcmlnaHRWYWx1ZTsKICAgICB9CiAg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgewpAQCAtMTc5MiwzMCArMTc4MSwxMiBAQCBz
dWIgcGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QzCiAgICAgICAgIHJldHVybiAkYXR0cjsKICAg
ICB9CiAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52
YWx1ZSgpID1+IC8kbmV4dEV4dGVuZGVkQXR0cmlidXRlUmVzdDNfMS8pIHsKLSAgICAgICAgbXkg
QG5hbWVzID0gKCk7Ci0gICAgICAgIHB1c2goQG5hbWVzLCAkbmFtZSk7Ci0gICAgICAgIHB1c2go
QG5hbWVzLCBAeyRzZWxmLT5wYXJzZVNjb3BlZE5hbWVMaXN0Tm9Db21tYSgpfSk7Ci0gICAgICAg
IHJldHVybiBqb2luKCcgJywgQG5hbWVzKTsKKyAgICAgICAgJHNlbGYtPnBhcnNlTmFtZU5vQ29t
bWEoKTsKKyAgICAgICAgcmV0dXJuICRuYW1lOwogICAgIH0KICAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKIH0KIAotc3ViIHBhcnNlU2NvcGVkTmFtZUxp
c3ROb0NvbW1hCi17Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBteSBAbmFtZXMgPSAoKTsK
LQotICAgIHdoaWxlICgxKSB7Ci0gICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OwotICAgICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQt
PnZhbHVlKCkgZXEgIjo6IikgewotICAgICAgICAgICAgcHVzaChAbmFtZXMsICRzZWxmLT5wYXJz
ZVNjb3BlZE5hbWUoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBsYXN0OwotICAg
ICAgICB9Ci0gICAgfQotICAgIHJldHVybiBcQG5hbWVzOwotfQotCiBzdWIgcGFyc2VBcmd1bWVu
dE5hbWVLZXl3b3JkCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKQEAgLTE4ODgsOSArMTg1OSw3
IEBAIHN1YiBwYXJzZVR5cGUKICAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOwogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKLSAg
ICAgICAgJHNlbGYtPnBhcnNlVW5pb25UeXBlKCk7Ci0gICAgICAgICRzZWxmLT5wYXJzZVR5cGVT
dWZmaXgoKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVW5p
b25UeXBlKCk7CiAgICAgfQogICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tl
biB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRUeXBlXzEvKSB7CiAgICAgICAgIHJldHVybiAk
c2VsZi0+cGFyc2VTaW5nbGVUeXBlKCk7CkBAIC0xOTA0LDEwICsxODczLDE1IEBAIHN1YiBwYXJz
ZVNpbmdsZVR5cGUKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImFueSIpIHsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFs
dWUoJHNlbGYtPmdldFRva2VuKCksICJhbnkiLCBfX0xJTkVfXyk7Ci0gICAgICAgIHJldHVybiAi
YW55IjsKKyAgICAgICAgCisgICAgICAgIG15ICRhbnlUeXBlID0gZG9tVHlwZS0+bmV3KCk7Cisg
ICAgICAgICRhbnlUeXBlLT5uYW1lKCJhbnkiKTsKKyAgICAgICAgcmV0dXJuICRhbnlUeXBlOwog
ICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQt
PnZhbHVlKCkgPX4gLyRuZXh0U2luZ2xlVHlwZV8xLykgewotICAgICAgICByZXR1cm4gJHNlbGYt
PnBhcnNlTm9uQW55VHlwZSgpOworICAgICAgICBteSAkbm9uQW55VHlwZSA9ICRzZWxmLT5wYXJz
ZU5vbkFueVR5cGUoKTsKKyAgICAgICAgJG5vbkFueVR5cGUtPmlzTnVsbGFibGUoJHNlbGYtPnBh
cnNlTnVsbCgpKTsKKyAgICAgICAgcmV0dXJuICRub25BbnlUeXBlOwogICAgIH0KICAgICAkc2Vs
Zi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CkBA
IC0xOTE2LDE0ICsxODkwLDI0IEBAIHN1YiBwYXJzZVVuaW9uVHlwZQogewogICAgIG15ICRzZWxm
ID0gc2hpZnQ7CiAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisKKyAgICBteSAk
dW5pb25UeXBlID0gZG9tVHlwZS0+bmV3KCk7CisgICAgJHVuaW9uVHlwZS0+bmFtZSgiVU5JT04i
KTsKKyAgICAkdW5pb25UeXBlLT5pc1VuaW9uKDEpOworCiAgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICIoIikgewogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIigiLCBfX0xJTkVfXyk7Ci0gICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlw
ZSgpOworICAgICAgICAKKyAgICAgICAgcHVzaChAeyR1bmlvblR5cGUtPnN1YnR5cGVzfSwgJHNl
bGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlKCkpOworICAgICAgICAKICAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvciIsIF9fTElORV9fKTsKLSAgICAg
ICAgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlKCk7Ci0gICAgICAgICRzZWxmLT5wYXJzZVVu
aW9uTWVtYmVyVHlwZXMoKTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQHskdW5pb25UeXBlLT5z
dWJ0eXBlc30sICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZSgpKTsKKyAgICAgICAgcHVzaChA
eyR1bmlvblR5cGUtPnN1YnR5cGVzfSwgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlcygpKTsK
KyAgICAgICAgCiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAiKSIsIF9fTElORV9fKTsKLSAgICAgICAgcmV0dXJuOworCisgICAgICAgIHJldHVybiAk
dW5pb25UeXBlOwogICAgIH0KICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CkBAIC0xOTMzLDIwICsxOTE3LDE0IEBAIHN1YiBwYXJz
ZVVuaW9uTWVtYmVyVHlwZQogICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICIoIikgewotICAg
ICAgICAkc2VsZi0+cGFyc2VVbmlvblR5cGUoKTsKLSAgICAgICAgJHNlbGYtPnBhcnNlVHlwZVN1
ZmZpeCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiYW55IikgewotICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgImFueSIsIF9fTElORV9fKTsKLSAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICJbIiwgX19MSU5FX18pOwotICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIl0iLCBfX0xJTkVfXyk7Ci0gICAgICAgICRz
ZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBteSAkdW5p
b25UeXBlID0gJHNlbGYtPnBhcnNlVW5pb25UeXBlKCk7CisgICAgICAgICR1bmlvblR5cGUtPmlz
TnVsbGFibGUoJHNlbGYtPnBhcnNlTnVsbCgpKTsKKyAgICAgICAgcmV0dXJuICR1bmlvblR5cGU7
CiAgICAgfQogICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4
dC0+dmFsdWUoKSA9fiAvJG5leHRTaW5nbGVUeXBlXzEvKSB7Ci0gICAgICAgICRzZWxmLT5wYXJz
ZU5vbkFueVR5cGUoKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBteSAkbm9uQW55VHlwZSA9
ICRzZWxmLT5wYXJzZU5vbkFueVR5cGUoKTsKKyAgICAgICAgJG5vbkFueVR5cGUtPmlzTnVsbGFi
bGUoJHNlbGYtPnBhcnNlTnVsbCgpKTsKKyAgICAgICAgcmV0dXJuICRub25BbnlUeXBlOwogICAg
IH0KICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJ
TkVfXyk7CiB9CkBAIC0xOTU1LDUxICsxOTMzLDk3IEBAIHN1YiBwYXJzZVVuaW9uTWVtYmVyVHlw
ZXMKIHsKICAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworCisgICAgbXkgQHN1YnR5cGVzID0gKCk7CisKICAgICBpZiAoJG5leHQtPnZhbHVl
KCkgZXEgIm9yIikgewogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIm9yIiwgX19MSU5FX18pOwotICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJl
clR5cGUoKTsKLSAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlcygpOworICAgICAg
ICBwdXNoKEBzdWJ0eXBlcywgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlKCkpOworICAgICAg
ICBwdXNoKEBzdWJ0eXBlcywgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlcygpKTsKICAgICB9
CisKKyAgICByZXR1cm4gQHN1YnR5cGVzOwogfQogCiBzdWIgcGFyc2VOb25BbnlUeXBlCiB7CiAg
ICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
KworICAgIG15ICR0eXBlID0gZG9tVHlwZS0+bmV3KCk7CisKICAgICBpZiAoJG5leHQtPnZhbHVl
KCkgPX4gLyRuZXh0Tm9uQW55VHlwZV8xLykgewotICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNl
UHJpbWl0aXZlVHlwZSgpIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOworICAgICAgICAkdHlw
ZS0+bmFtZSgkc2VsZi0+cGFyc2VQcmltaXRpdmVUeXBlKCkpOworICAgICAgICByZXR1cm4gJHR5
cGU7CiAgICAgfQogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiQnl0ZVN0cmluZyIpIHsKICAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJCeXRlU3Ry
aW5nIiwgX19MSU5FX18pOwotICAgICAgICByZXR1cm4gIkJ5dGVTdHJpbmciIC4gJHNlbGYtPnBh
cnNlVHlwZVN1ZmZpeCgpOworCisgICAgICAgICR0eXBlLT5uYW1lKCJCeXRlU3RyaW5nIik7Cisg
ICAgICAgIHJldHVybiAkdHlwZTsKICAgICB9CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJE
T01TdHJpbmciKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRU
b2tlbigpLCAiRE9NU3RyaW5nIiwgX19MSU5FX18pOwotICAgICAgICByZXR1cm4gIkRPTVN0cmlu
ZyIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisKKyAgICAgICAgJHR5cGUtPm5hbWUoIkRP
TVN0cmluZyIpOworICAgICAgICByZXR1cm4gJHR5cGU7CiAgICAgfQogICAgIGlmICgkbmV4dC0+
dmFsdWUoKSBlcSAiVVNWU3RyaW5nIikgewogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1
ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlVTVlN0cmluZyIsIF9fTElORV9fKTsKLSAgICAgICAgcmV0
dXJuICJVU1ZTdHJpbmciIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgpOwotICAgIH0KLSAgICAK
LSAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgInNlcXVlbmNlIikgewotICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNlcXVlbmNlIiwgX19MSU5FX18p
OwotICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwi
LCBfX0xJTkVfXyk7Ci0gICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIj4iLCBfX0xJ
TkVfXyk7Ci0gICAgICAgIHJldHVybiAic2VxdWVuY2U8IiAuICR0eXBlIC4gIj4iIC4gJHNlbGYt
PnBhcnNlTnVsbCgpOworCisgICAgICAgICR0eXBlLT5uYW1lKCJVU1ZTdHJpbmciKTsKKyAgICAg
ICAgcmV0dXJuICR0eXBlOwogICAgIH0KICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm9iamVj
dCIpIHsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJvYmplY3QiLCBfX0xJTkVfXyk7Ci0gICAgICAgIHJldHVybiAib2JqZWN0IiAuICRzZWxmLT5w
YXJzZVR5cGVTdWZmaXgoKTsKKworICAgICAgICAkdHlwZS0+bmFtZSgib2JqZWN0Iik7CisgICAg
ICAgIHJldHVybiAkdHlwZTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJSZWdF
eHAiKSB7CisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiUmVnRXhwIiwgX19MSU5FX18pOworCisgICAgICAgICR0eXBlLT5uYW1lKCJSZWdFeHAiKTsK
KyAgICAgICAgcmV0dXJuICR0eXBlOworICAgIH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
IkVycm9yIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIkVycm9yIiwgX19MSU5FX18pOworCisgICAgICAgICR0eXBlLT5uYW1lKCJFcnJvciIp
OworICAgICAgICByZXR1cm4gJHR5cGU7CisgICAgfQorICAgIGlmICgkbmV4dC0+dmFsdWUoKSBl
cSAiRE9NRXhjZXB0aW9uIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIkRPTUV4Y2VwdGlvbiIsIF9fTElORV9fKTsKKworICAgICAgICAkdHlw
ZS0+bmFtZSgiRE9NRXhjZXB0aW9uIik7CisgICAgICAgIHJldHVybiAkdHlwZTsKICAgICB9CiAg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJEYXRlIikgewogICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkRhdGUiLCBfX0xJTkVfXyk7Ci0gICAgICAg
IHJldHVybiAiRGF0ZSIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisKKyAgICAgICAgJHR5
cGUtPm5hbWUoIkRhdGUiKTsKKyAgICAgICAgcmV0dXJuICR0eXBlOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgInNlcXVlbmNlIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInNlcXVlbmNlIiwgX19MSU5FX18pOworICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjwiLCBfX0xJTkVf
Xyk7CisKKyAgICAgICAgbXkgJHN1YnR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CisgICAgICAg
IG15ICRzdWJ0eXBlTmFtZSA9ICRzdWJ0eXBlLT5uYW1lOworCisgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIsIF9fTElORV9fKTsKKworICAgICAg
ICAjIEZJWE1FOiBUaGlzIHNob3VsZCBqdXN0IGJlICJzZXF1ZW5jZSIgd2hlbiB3ZSBzdGFydCB1
c2luZyBkb21UeXBlcyBpbiB0aGUgQ29kZUdlbmVyYXRvcnMKKyAgICAgICAgJHR5cGUtPm5hbWUo
InNlcXVlbmNlPCR7c3VidHlwZU5hbWV9PiIpOworICAgICAgICBwdXNoKEB7JHR5cGUtPnN1YnR5
cGVzfSwgJHN1YnR5cGUpOworCisgICAgICAgIHJldHVybiAkdHlwZTsKICAgICB9Ci0gICAgaWYg
KCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICI6
OiIpIHsKLSAgICAgICAgbXkgJG5hbWUgPSBpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQcmVmaXgo
JHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpKTsKLSAgICAgICAgcmV0dXJuICRuYW1lIC4gJHNlbGYt
PnBhcnNlVHlwZVN1ZmZpeCgpOworICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbikgeworICAgICAgICBteSAkaWRlbnRpZmllciA9ICRzZWxmLT5nZXRUb2tlbigpOworCisg
ICAgICAgICR0eXBlLT5uYW1lKGlkZW50aWZpZXJSZW1vdmVOdWxsYWJsZVByZWZpeCgkaWRlbnRp
Zmllci0+dmFsdWUoKSkpOworICAgICAgICByZXR1cm4gJHR5cGU7CiAgICAgfQogICAgICRzZWxm
LT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KQEAg
LTIwMDgsMTIgKzIwMzIsMjEgQEAgc3ViIHBhcnNlQ29uc3RUeXBlCiB7CiAgICAgbXkgJHNlbGYg
PSBzaGlmdDsKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKworICAgIG15ICR0
eXBlID0gZG9tVHlwZS0+bmV3KCk7CisKICAgICBpZiAoJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
Tm9uQW55VHlwZV8xLykgewotICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUHJpbWl0aXZlVHlw
ZSgpIC4gJHNlbGYtPnBhcnNlTnVsbCgpOworICAgICAgICAkdHlwZS0+bmFtZSgkc2VsZi0+cGFy
c2VQcmltaXRpdmVUeXBlKCkpOworICAgICAgICAkdHlwZS0+aXNOdWxsYWJsZSgkc2VsZi0+cGFy
c2VOdWxsKCkpOworICAgICAgICByZXR1cm4gJHR5cGU7CiAgICAgfQogICAgIGlmICgkbmV4dC0+
dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgewotICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+
Z2V0VG9rZW4oKTsKLSAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKSAuICRzZWxmLT5wYXJz
ZU51bGwoKTsKKyAgICAgICAgbXkgJGlkZW50aWZpZXIgPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAg
ICAgICAgCisgICAgICAgICR0eXBlLT5uYW1lKCRpZGVudGlmaWVyLT52YWx1ZSgpKTsKKyAgICAg
ICAgJHR5cGUtPmlzTnVsbGFibGUoJHNlbGYtPnBhcnNlTnVsbCgpKTsKKworICAgICAgICByZXR1
cm4gJHR5cGU7CiAgICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCksIF9fTElORV9fKTsKIH0KQEAgLTIxMTksMjYgKzIxNTIsMTUgQEAgc3ViIHBhcnNl
T3B0aW9uYWxMb25nCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN1YiBwYXJzZVR5cGVTdWZmaXgKLXsK
LSAgICBteSAkc2VsZiA9IHNoaWZ0OwotICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OwotICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPyIpIHsKLSAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI/IiwgX19MSU5FX18pOwotICAgICAgICBy
ZXR1cm4gIj8iOwotICAgIH0KLSAgICByZXR1cm4gIiI7Ci19Ci0KIHN1YiBwYXJzZU51bGwKIHsK
ICAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OwogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiPyIpIHsKICAgICAgICAgJHNlbGYtPmFzc2Vy
dFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI/IiwgX19MSU5FX18pOwotICAgICAgICBy
ZXR1cm4gIj8iOworICAgICAgICByZXR1cm4gMTsKICAgICB9Ci0gICAgcmV0dXJuICIiOworICAg
IHJldHVybiAwOwogfQogCiBzdWIgcGFyc2VSZXR1cm5UeXBlCkBAIC0yMTQ3LDcgKzIxNjksMTAg
QEAgc3ViIHBhcnNlUmV0dXJuVHlwZQogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OwogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAidm9pZCIpIHsKICAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ2b2lkIiwgX19MSU5FX18pOwotICAg
ICAgICByZXR1cm4gInZvaWQiOworICAgICAgICAKKyAgICAgICAgbXkgJHZvaWRUeXBlID0gZG9t
VHlwZS0+bmV3KCk7CisgICAgICAgICR2b2lkVHlwZS0+bmFtZSgidm9pZCIpOworICAgICAgICBy
ZXR1cm4gJHZvaWRUeXBlOwogICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlm
aWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRfMS8pIHsK
ICAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVR5cGUoKTsKQEAgLTIxNzUsOTIgKzIyMDAsMjkg
QEAgc3ViIHBhcnNlT3B0aW9uYWxTZW1pY29sb24KICAgICB9CiB9CiAKLXN1YiBwYXJzZVNjb3Bl
ZE5hbWUKK3N1YiBwYXJzZU5hbWVOb0NvbW1hCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKLSAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIjo6IikgewotICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQWJzb2x1dGVTY29wZWROYW1l
KCk7Ci0gICAgfQogICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgewot
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUmVsYXRpdmVTY29wZWROYW1lKCk7CisgICAgICAg
IG15ICRpZGVudGlmaWVyID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIHJldHVybiAoJGlk
ZW50aWZpZXItPnZhbHVlKCkpOwogICAgIH0KLSAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRv
a2VuKCRuZXh0LT52YWx1ZSgpKTsKLX0KIAotc3ViIHBhcnNlQWJzb2x1dGVTY29wZWROYW1lCi17
Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4o
KTsKLSAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjo6IikgewotICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjo6Iik7Ci0gICAgICAgIG15ICR0b2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOwotICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0
b2tlbiwgSWRlbnRpZmllclRva2VuKTsKLSAgICAgICAgcmV0dXJuICI6OiIgLiAkdG9rZW4tPnZh
bHVlKCkgLiAkc2VsZi0+cGFyc2VTY29wZWROYW1lUGFydHMoKTsKLSAgICB9Ci0gICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7CisgICAgcmV0dXJuICgpOwog
fQogCi1zdWIgcGFyc2VSZWxhdGl2ZVNjb3BlZE5hbWUKK3N1YiBwYXJzZU5hbWUKIHsKICAgICBt
eSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgewotICAgICAgICBteSAkdG9r
ZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKLSAgICAgICAgcmV0dXJuICR0b2tlbi0+dmFsdWUoKSAu
ICRzZWxmLT5wYXJzZVNjb3BlZE5hbWVQYXJ0cygpOworICAgICAgICBteSAkaWRlbnRpZmllciA9
ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICByZXR1cm4gJGlkZW50aWZpZXItPnZhbHVlKCk7
CiAgICAgfQogICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCkp
OwogfQogCi1zdWIgcGFyc2VTY29wZWROYW1lUGFydHMKLXsKLSAgICBteSAkc2VsZiA9IHNoaWZ0
OwotICAgIG15IEBuYW1lcyA9ICgpOwotCi0gICAgd2hpbGUgKDEpIHsKLSAgICAgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Ci0gICAgICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAi
OjoiKSB7Ci0gICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIjo6Iik7Ci0gICAgICAgICAgICBwdXNoKEBuYW1lcywgIjo6Iik7Ci0gICAgICAgICAg
ICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKLSAgICAgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblR5cGUoJHRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwotICAgICAgICAgICAgcHVzaChA
bmFtZXMsICR0b2tlbi0+dmFsdWUoKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBs
YXN0OwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBqb2luKCIiLCBAbmFtZXMpOwotfQot
Ci1zdWIgcGFyc2VTY29wZWROYW1lTGlzdAotewotICAgIG15ICRzZWxmID0gc2hpZnQ7Ci0gICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Ci0gICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKLSAgICAgICAgbXkg
QG5hbWVzID0gKCk7Ci0gICAgICAgIHB1c2goQG5hbWVzLCAkc2VsZi0+cGFyc2VTY29wZWROYW1l
KCkpOwotICAgICAgICBwdXNoKEBuYW1lcywgQHskc2VsZi0+cGFyc2VTY29wZWROYW1lcygpfSk7
Ci0gICAgICAgIHJldHVybiBcQG5hbWVzOwotICAgIH0KLSAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7Ci19Ci0KLXN1YiBwYXJzZVNjb3Bl
ZE5hbWVzCi17Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBteSBAbmFtZXMgPSAoKTsKLQot
ICAgIHdoaWxlICgxKSB7Ci0gICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwot
ICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIiwiKSB7Ci0gICAgICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIiwiKTsKLSAgICAgICAgICAgIHB1
c2goQG5hbWVzLCAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCkpOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgbGFzdDsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gXEBuYW1lczsK
LX0KIAogc3ViIGFwcGx5TWVtYmVyTGlzdAogewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286402</attachid>
            <date>2016-08-18 15:13:20 -0700</date>
            <delta_ts>2016-08-18 19:56:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160769-20160818151130.patch</filename>
            <type>text/plain</type>
            <size>34200</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDYxMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA4LTE4ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3VwcG9ydCBXZWJJREwgdW5pb25zIChQ
YXJ0IDEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjA3NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIGlzIHRoZSBmaXJzdCBwYXJ0IG9mIGFuIGVmZm9ydCB0byBhZGQgc3VwcG9ydCBmb3IgdW5p
b24gdHlwZXMKKyAgICAgICAgaW4gb3VyIGNvZGUgZ2VuZXJhdG9ycy4gVGhpcyBjaGFuZ2U6Cisg
ICAgICAgIC0gQWRkcyBhIGRvbVR5cGUgc3RydWN0IHRvIGhvbGQgdGhlIHBhcnNlZCB0eXBlIGlu
Zm9ybWF0aW9uLiBGb3Igbm93LCB3ZSBvbmx5CisgICAgICAgICAgdXNlIGl0IHRlbXBvcmFyaWx5
IHdoaWxlIHBhcnNpbmcsIGFuZCBkb24ndCBleHBvc2UgaXQgdG8gdGhlIGNvZGUgZ2VuZXJhdG9y
cywKKyAgICAgICAgICBidXQgdGhhdCB3aWxsIGNoYW5nZSBpbiBhIGxhdGVyIHBhdGNoLgorICAg
ICAgICAtIFJlbW92ZSBzdXBwb3J0IGZvciBzY29wZWQgaWRlbnRpZmllcnMgZm9yIHR5cGVzLiBU
aGV5IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFdlYklETC4KKyAgICAgICAgLSBNYWtlIGRlYnVnZ2lu
ZyB0aGUgcGFyc2VyIGVhc2llciBieSBwcm92aWRpbmcgYmFja3RyYWNlcyB3aGVuIGFzc2VydGlu
Zy4KKworICAgICAgICBUaGVyZSBzaG91bGQgYmUgbm8gb2JzZXJ2YWJsZSBjaGFuZ2VzLgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG06CisKIDIwMTYtMDgtMTggIEJl
dGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB0aGUgYWNjZXNz
aWJpbGl0eSB0aXRsZXMgZm9yIGxpc3QgaW5zZXJ0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQkocmV2aXNpb24gMjA0NjEwKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHdvcmtpbmcgY29weSkK
QEAgLTIzLDYgKzIzLDkgQEAgcGFja2FnZSBJRExQYXJzZXI7CiAKIHVzZSBzdHJpY3Q7CiAKK3Vz
ZSBDYXJwIHF3PGxvbmdtZXNzPjsKK3VzZSBEYXRhOjpEdW1wZXI7CisKIHVzZSBwcmVwcm9jZXNz
b3I7CiB1c2UgQ2xhc3M6OlN0cnVjdDsKIApAQCAtNzQsMTcgKzc3LDI0IEBAIHN0cnVjdCggZG9t
QXR0cmlidXRlID0+IHsKICAgICBzaWduYXR1cmUgPT4gJyQnLCAgICAgICAgICMgQXR0cmlidXRl
IHNpZ25hdHVyZQogfSk7CiAKK3N0cnVjdCggZG9tVHlwZSA9PiB7CisgICAgbmFtZSA9PiAgICAg
ICAgICckJywgIyBUeXBlIGlkZW50aWZpZXIKKyAgICBpc051bGxhYmxlID0+ICAgJyQnLCAjIElz
IHRoZSB0eXBlIE51bGxhYmxlIChUPykKKyAgICBpc1VuaW9uID0+ICAgICAgJyQnLCAjIElzIHRo
ZSB0eXBlIGEgdW5pb24gKFQgb3IgVSkKKyAgICBzdWJ0eXBlcyA9PiAgICAgJ0AnLCAjIEFycmF5
IG9mIHN1YnR5cGVzLCBvbmx5IHZhbGlkIGlmIGlzVW5pb24gb3Igc2VxdWVuY2UKK30pOworCiAj
IFVzZWQgdG8gcmVwcmVzZW50IGEgbWFwIG9mICd2YXJpYWJsZSBuYW1lJyA8LT4gJ3ZhcmlhYmxl
IHR5cGUnCiBzdHJ1Y3QoIGRvbVNpZ25hdHVyZSA9PiB7Ci0gICAgZGlyZWN0aW9uID0+ICckJywg
IyBWYXJpYWJsZSBkaXJlY3Rpb24gKGluIG9yIG91dCkKLSAgICBuYW1lID0+ICckJywgICAgICAj
IFZhcmlhYmxlIG5hbWUKLSAgICB0eXBlID0+ICckJywgICAgICAjIFZhcmlhYmxlIHR5cGUKLSAg
ICBzcGVjaWFscyA9PiAnQCcsICAjIFNwZWNpYWxzCisgICAgZGlyZWN0aW9uID0+ICckJywgICAj
IFZhcmlhYmxlIGRpcmVjdGlvbiAoaW4gb3Igb3V0KQorICAgIG5hbWUgPT4gJyQnLCAgICAgICAg
IyBWYXJpYWJsZSBuYW1lCisgICAgdHlwZSA9PiAnJCcgICAgICAsICAjIFZhcmlhYmxlIHR5cGUK
KyAgICBzcGVjaWFscyA9PiAnQCcsICAgICMgU3BlY2lhbHMKICAgICBleHRlbmRlZEF0dHJpYnV0
ZXMgPT4gJyQnLCAjIEV4dGVuZGVkIGF0dHJpYnV0ZXMKLSAgICBpc051bGxhYmxlID0+ICckJywg
IyBJcyB2YXJpYWJsZSB0eXBlIE51bGxhYmxlIChUPykKLSAgICBpc1ZhcmlhZGljID0+ICckJywg
IyBJcyB2YXJpYWJsZSB2YXJpYWRpYyAobG9uZy4uLiBudW1iZXJzKQotICAgIGlzT3B0aW9uYWwg
PT4gJyQnLCAjIElzIHZhcmlhYmxlIG9wdGlvbmFsIChvcHRpb25hbCBUKQotICAgIGRlZmF1bHQg
PT4gJyQnLCAjIERlZmF1bHQgdmFsdWUgZm9yIHBhcmFtZXRlcnMKKyAgICBpc051bGxhYmxlID0+
ICckJywgICMgSXMgdmFyaWFibGUgdHlwZSBOdWxsYWJsZSAoVD8pCisgICAgaXNWYXJpYWRpYyA9
PiAnJCcsICAjIElzIHZhcmlhYmxlIHZhcmlhZGljIChsb25nLi4uIG51bWJlcnMpCisgICAgaXNP
cHRpb25hbCA9PiAnJCcsICAjIElzIHZhcmlhYmxlIG9wdGlvbmFsIChvcHRpb25hbCBUKQorICAg
IGRlZmF1bHQgPT4gJyQnLCAgICAgIyBEZWZhdWx0IHZhbHVlIGZvciBwYXJhbWV0ZXJzCiB9KTsK
IAogIyBVc2VkIHRvIHJlcHJlc2VudCBJdGVyYWJsZSBpbnRlcmZhY2VzCkBAIC05NiwxMiArMTA2
LDExIEBAIHN0cnVjdCggZG9tSXRlcmFibGUgPT4gewogICAgIGV4dGVuZGVkQXR0cmlidXRlcyA9
PiAnJCcsICMgRXh0ZW5kZWQgYXR0cmlidXRlcwogfSk7CiAKLQogIyBVc2VkIHRvIHJlcHJlc2Vu
dCBzdHJpbmcgY29uc3RhbnRzCiBzdHJ1Y3QoIGRvbUNvbnN0YW50ID0+IHsKLSAgICBuYW1lID0+
ICckJywgICAgICAjIERPTSBDb25zdGFudCBpZGVudGlmaWVyCi0gICAgdHlwZSA9PiAnJCcsICAg
ICAgIyBUeXBlIG9mIGRhdGEKLSAgICB2YWx1ZSA9PiAnJCcsICAgICAgIyBDb25zdGFudCB2YWx1
ZQorICAgIG5hbWUgPT4gJyQnLCAgICAgICAgIyBET00gQ29uc3RhbnQgaWRlbnRpZmllcgorICAg
IHR5cGUgPT4gJyQnLCAgICAgICAgIyBUeXBlIG9mIGRhdGEKKyAgICB2YWx1ZSA9PiAnJCcsICAg
ICAgICMgQ29uc3RhbnQgdmFsdWUKICAgICBleHRlbmRlZEF0dHJpYnV0ZXMgPT4gJyQnLCAjIEV4
dGVuZGVkIGF0dHJpYnV0ZXMKIH0pOwogCkBAIC0xNDksMTcgKzE1OCwyOCBAQCBzdWIgbmV3IHsK
ICAgICByZXR1cm4gYmxlc3MgJHNlbGYsICRjbGFzczsKIH0KIAorc3ViIGFzc2VydAoreworICAg
IG15ICRtZXNzYWdlID0gc2hpZnQ7CisgICAgCisgICAgbXkgJG1lc3MgPSBsb25nbWVzcygpOwor
ICAgIHByaW50IER1bXBlcigkbWVzcyk7CisKKyAgICBkaWUgJG1lc3NhZ2U7Cit9CisKIHN1YiBh
c3NlcnRUb2tlblZhbHVlCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBteSAkdG9rZW4g
PSBzaGlmdDsKICAgICBteSAkdmFsdWUgPSBzaGlmdDsKICAgICBteSAkbGluZSA9IHNoaWZ0Owot
ICAgIG15ICRtc2cgPSAiTmV4dCB0b2tlbiBzaG91bGQgYmUgIiAuICR2YWx1ZSAuICIsIGJ1dCAi
IC4gJHRva2VuLT52YWx1ZSgpIC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfTsKKyAgICBteSAkbXNn
ID0gIk5leHQgdG9rZW4gc2hvdWxkIGJlICIgLiAkdmFsdWUgLiAiLCBidXQgIiAuICR0b2tlbi0+
dmFsdWUoKSAuICIgb24gbGluZSAiIC4gJHNlbGYtPntMaW5lfTsKICAgICBpZiAoZGVmaW5lZCAo
JGxpbmUpKSB7CiAgICAgICAgICRtc2cgLj0gIiBJRExQYXJzZXIucG06IiAuICRsaW5lOwogICAg
IH0KLSAgICBkaWUgJG1zZyB1bmxlc3MgJHRva2VuLT52YWx1ZSgpIGVxICR2YWx1ZTsKKworICAg
IGFzc2VydCAkbXNnIHVubGVzcyAkdG9rZW4tPnZhbHVlKCkgZXEgJHZhbHVlOwogfQogCiBzdWIg
YXNzZXJ0VG9rZW5UeXBlCkBAIC0xNjcsNyArMTg3LDggQEAgc3ViIGFzc2VydFRva2VuVHlwZQog
ICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgJHRva2VuID0gc2hpZnQ7CiAgICAgbXkgJHR5
cGUgPSBzaGlmdDsKLSAgICBkaWUgIk5leHQgdG9rZW4ncyB0eXBlIHNob3VsZCBiZSAiIC4gJHR5
cGUgLiAiLCBidXQgIiAuICR0b2tlbi0+dHlwZSgpIC4gIiBhdCAiIC4gJHNlbGYtPntMaW5lfSB1
bmxlc3MgJHRva2VuLT50eXBlKCkgZXEgJHR5cGU7CisgICAgCisgICAgYXNzZXJ0ICJOZXh0IHRv
a2VuJ3MgdHlwZSBzaG91bGQgYmUgIiAuICR0eXBlIC4gIiwgYnV0ICIgLiAkdG9rZW4tPnR5cGUo
KSAuICIgb24gbGluZSAiIC4gJHNlbGYtPntMaW5lfSB1bmxlc3MgJHRva2VuLT50eXBlKCkgZXEg
JHR5cGU7CiB9CiAKIHN1YiBhc3NlcnRVbmV4cGVjdGVkVG9rZW4KQEAgLTE3NSwxMSArMTk2LDEy
IEBAIHN1YiBhc3NlcnRVbmV4cGVjdGVkVG9rZW4KICAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAg
IG15ICR0b2tlbiA9IHNoaWZ0OwogICAgIG15ICRsaW5lID0gc2hpZnQ7Ci0gICAgbXkgJG1zZyA9
ICJVbmV4cGVjdGVkIHRva2VuICIgLiAkdG9rZW4gLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9Owor
ICAgIG15ICRtc2cgPSAiVW5leHBlY3RlZCB0b2tlbiAiIC4gJHRva2VuIC4gIiBvbiBsaW5lICIg
LiAkc2VsZi0+e0xpbmV9OwogICAgIGlmIChkZWZpbmVkICgkbGluZSkpIHsKICAgICAgICAgJG1z
ZyAuPSAiIElETFBhcnNlci5wbToiIC4gJGxpbmU7CiAgICAgfQotICAgIGRpZSAkbXNnOworCisg
ICAgYXNzZXJ0ICRtc2c7CiB9CiAKIHN1YiBhc3NlcnROb0V4dGVuZGVkQXR0cmlidXRlc0luVHlw
ZWRlZgpAQCAtMTg4LDExICsyMTAsMTIgQEAgc3ViIGFzc2VydE5vRXh0ZW5kZWRBdHRyaWJ1dGVz
SW5UeXBlZGVmCiAgICAgbXkgJG5hbWUgPSBzaGlmdDsKICAgICBteSAkbGluZSA9IHNoaWZ0Owog
ICAgIG15ICR0eXBlZGVmID0gJHR5cGVkZWZzeyRuYW1lfTsKLSAgICBteSAkbXNnID0gIlVuZXhw
ZWN0ZWQgZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0IGluIHR5cGVkZWYgXCIkbmFtZVwiIGF0ICIgLiAk
c2VsZi0+e0xpbmV9OworICAgIG15ICRtc2cgPSAiVW5leHBlY3RlZCBleHRlbmRlZEF0dHJpYnV0
ZUxpc3QgaW4gdHlwZWRlZiBcIiRuYW1lXCIgb24gbGluZSAiIC4gJHNlbGYtPntMaW5lfTsKICAg
ICBpZiAoZGVmaW5lZCAoJGxpbmUpKSB7CiAgICAgICAgICRtc2cgLj0gIiBJRExQYXJzZXIucG06
IiAuICRsaW5lOwogICAgIH0KLSAgICBkaWUgJG1zZyBpZiAleyR0eXBlZGVmLT5leHRlbmRlZEF0
dHJpYnV0ZXN9OworCisgICAgYXNzZXJ0ICRtc2cgaWYgJXskdHlwZWRlZi0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzfTsKIH0KIAogc3ViIFBhcnNlCkBAIC0yMTYsNyArMjM5LDcgQEAgc3ViIFBhcnNlCiAg
ICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5UeXBlKCRuZXh0LCBFbXB0eVRva2VuKTsKICAgICB9OwotICAgIGRpZSAkQCAuICIg
aW4gJGZpbGVOYW1lIiBpZiAkQDsKKyAgICBhc3NlcnQgJEAgLiAiIGluICRmaWxlTmFtZSIgaWYg
JEA7CiAKICAgICBteSAkZG9jdW1lbnQgPSBpZGxEb2N1bWVudC0+bmV3KCk7CiAgICAgJGRvY3Vt
ZW50LT5maWxlTmFtZSgkZmlsZU5hbWUpOwpAQCAtMjUzLDcgKzI3Niw3IEBAIG15ICRmbG9hdFRv
a2VuUGF0dGVybiA9ICdeKC0/KChbMC05XStcLlsKIG15ICRpbnRlZ2VyVG9rZW5QYXR0ZXJuID0g
J14oLT9bMS05XVswLTldKnwtPzBbWHhdWzAtOUEtRmEtZl0rfC0/MFswLTddKiknOwogbXkgJHN0
cmluZ1Rva2VuUGF0dGVybiA9ICdeKFwiW15cIl0qXCIpJzsKIG15ICRpZGVudGlmaWVyVG9rZW5Q
YXR0ZXJuID0gJ14oW0EtWl9hLXpdWzAtOUEtWl9hLXpdKiknOwotbXkgJG90aGVyVG9rZW5QYXR0
ZXJuID0gJ14oOjp8XC5cLlwufFteXHRcblxyIDAtOUEtWl9hLXpdKSc7CitteSAkb3RoZXJUb2tl
blBhdHRlcm4gPSAnXihcLlwuXC58W15cdFxuXHIgMC05QS1aX2Etel0pJzsKIAogc3ViIGdldFRv
a2VuSW50ZXJuYWwKIHsKQEAgLTMxOCwyMSArMzQxLDYgQEAgc3ViIHVucXVvdGVTdHJpbmcKICAg
ICBkaWUgIkZhaWxlZCB0byBwYXJzZSBzdHJpbmcgKCIgLiAkcXVvdGVkU3RyaW5nIC4gIikgYXQg
IiAuICRzZWxmLT57TGluZX07CiB9CiAKLXN1YiB0eXBlSGFzTnVsbGFibGVTdWZmaXgKLXsKLSAg
ICBteSAkdHlwZSA9IHNoaWZ0OwotICAgIHJldHVybiAkdHlwZSA/ICR0eXBlID1+IC9cPyQvIDog
MDsKLX0KLQotc3ViIHR5cGVSZW1vdmVOdWxsYWJsZVN1ZmZpeAotewotICAgIG15ICR0eXBlID0g
c2hpZnQ7Ci0gICAgaWYgKCR0eXBlKSB7Ci0gICAgICAgICR0eXBlID1+IHMvXD8vL2c7Ci0gICAg
fQotICAgIHJldHVybiAkdHlwZTsKLX0KLQogc3ViIGlkZW50aWZpZXJSZW1vdmVOdWxsYWJsZVBy
ZWZpeAogewogICAgIG15ICR0eXBlID0gc2hpZnQ7CkBAIC0zNDMsMjYgKzM1MSwyNiBAQCBzdWIg
aWRlbnRpZmllclJlbW92ZU51bGxhYmxlUHJlZml4CiBteSAkbmV4dEF0dHJpYnV0ZV8xID0gJ14o
YXR0cmlidXRlfGluaGVyaXR8cmVhZG9ubHkpJCc7CiBteSAkbmV4dFByaW1pdGl2ZVR5cGVfMSA9
ICdeKGludHxsb25nfHNob3J0fHVuc2lnbmVkKSQnOwogbXkgJG5leHRQcmltaXRpdmVUeXBlXzIg
PSAnXihkb3VibGV8ZmxvYXR8dW5yZXN0cmljdGVkKSQnOwotbXkgJG5leHRBcmd1bWVudExpc3Rf
MSA9ICdeKFwofDo6fEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xEYXRlfFxbfGFueXxi
b29sZWFufGJ5dGV8ZG91YmxlfGZsb2F0fGlufGxvbmd8b2JqZWN0fG9jdGV0fG9wdGlvbmFsfHNl
cXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsKK215ICRuZXh0QXJndW1lbnRM
aXN0XzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8RGF0ZXxcW3xhbnl8
Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxpbnxsb25nfG9iamVjdHxvY3RldHxvcHRpb25hbHxz
ZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CiBteSAkbmV4dE5vbkFueVR5
cGVfMSA9ICdeKGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvY3RldHxzaG9ydHx1bnJl
c3RyaWN0ZWR8dW5zaWduZWQpJCc7Ci1teSAkbmV4dEludGVyZmFjZU1lbWJlcl8xID0gJ14oXCh8
Ojp8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55fGF0dHJpYnV0ZXxib29s
ZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8aW5oZXJpdHxsZWdh
Y3ljYWxsZXJ8bG9uZ3xvYmplY3R8b2N0ZXR8cmVhZG9ubHl8c2VxdWVuY2V8c2VyaWFsaXplcnxz
ZXR0ZXJ8c2hvcnR8c3RhdGljfHN0cmluZ2lmaWVyfHVucmVzdHJpY3RlZHx1bnNpZ25lZHx2b2lk
KSQnOworbXkgJG5leHRJbnRlcmZhY2VNZW1iZXJfMSA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3Ry
aW5nfFVTVlN0cmluZ3xEYXRlfGFueXxhdHRyaWJ1dGV8Ym9vbGVhbnxieXRlfGNyZWF0b3J8ZGVs
ZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVyaXR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0
fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xz
dHJpbmdpZmllcnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKIG15ICRuZXh0QXR0cmli
dXRlT3JPcGVyYXRpb25fMSA9ICdeKHN0YXRpY3xzdHJpbmdpZmllcikkJzsKLW15ICRuZXh0QXR0
cmlidXRlT3JPcGVyYXRpb25fMiA9ICdeKFwofDo6fEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0
cmluZ3xEYXRlfGFueXxib29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxn
ZXR0ZXJ8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNldHRlcnxzaG9y
dHx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0QXR0cmlidXRlT3JPcGVy
YXRpb25fMiA9ICdeKFwofEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xEYXRlfGFueXxi
b29sZWFufGJ5dGV8Y3JlYXRvcnxkZWxldGVyfGRvdWJsZXxmbG9hdHxnZXR0ZXJ8bGVnYWN5Y2Fs
bGVyfGxvbmd8b2JqZWN0fG9jdGV0fHNlcXVlbmNlfHNldHRlcnxzaG9ydHx1bnJlc3RyaWN0ZWR8
dW5zaWduZWR8dm9pZCkkJzsKIG15ICRuZXh0VW5yZXN0cmljdGVkRmxvYXRUeXBlXzEgPSAnXihk
b3VibGV8ZmxvYXQpJCc7Ci1teSAkbmV4dEV4dGVuZGVkQXR0cmlidXRlUmVzdDNfMSA9ICdeKFws
fDo6fFxdKSQnOwotbXkgJG5leHRFeGNlcHRpb25GaWVsZF8xID0gJ14oXCh8Ojp8Qnl0ZVN0cmlu
Z3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0ZXxkb3VibGV8ZmxvYXR8
bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQn
OwotbXkgJG5leHRUeXBlXzEgPSAnXig6OnxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZTdHJpbmd8
RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxzZXF1
ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CitteSAkbmV4dEV4dGVuZGVkQXR0
cmlidXRlUmVzdDNfMSA9ICdeKFwsfFxdKSQnOworbXkgJG5leHRFeGNlcHRpb25GaWVsZF8xID0g
J14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8YW55fGJvb2xlYW58Ynl0
ZXxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmlj
dGVkfHVuc2lnbmVkKSQnOworbXkgJG5leHRUeXBlXzEgPSAnXihCeXRlU3RyaW5nfERPTVN0cmlu
Z3xVU1ZTdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVj
dHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CiBteSAkbmV4
dFNwZWNpYWxzXzEgPSAnXihjcmVhdG9yfGRlbGV0ZXJ8Z2V0dGVyfGxlZ2FjeWNhbGxlcnxzZXR0
ZXIpJCc7Ci1teSAkbmV4dERlZmluaXRpb25zXzEgPSAnXig6OnxjYWxsYmFja3xkaWN0aW9uYXJ5
fGVudW18ZXhjZXB0aW9ufGludGVyZmFjZXxwYXJ0aWFsfHR5cGVkZWYpJCc7Ci1teSAkbmV4dEV4
Y2VwdGlvbk1lbWJlcnNfMSA9ICdeKFwofDo6fEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmlu
Z3xEYXRlfFxbfGFueXxib29sZWFufGJ5dGV8Y29uc3R8ZG91YmxlfGZsb2F0fGxvbmd8b2JqZWN0
fG9jdGV0fG9wdGlvbmFsfHNlcXVlbmNlfHNob3J0fHVucmVzdHJpY3RlZHx1bnNpZ25lZCkkJzsK
K215ICRuZXh0RGVmaW5pdGlvbnNfMSA9ICdeKGNhbGxiYWNrfGRpY3Rpb25hcnl8ZW51bXxleGNl
cHRpb258aW50ZXJmYWNlfHBhcnRpYWx8dHlwZWRlZikkJzsKK215ICRuZXh0RXhjZXB0aW9uTWVt
YmVyc18xID0gJ14oXCh8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8XFt8YW55
fGJvb2xlYW58Ynl0ZXxjb25zdHxkb3VibGV8ZmxvYXR8bG9uZ3xvYmplY3R8b2N0ZXR8b3B0aW9u
YWx8c2VxdWVuY2V8c2hvcnR8dW5yZXN0cmljdGVkfHVuc2lnbmVkKSQnOwogbXkgJG5leHRBdHRy
aWJ1dGVSZXN0XzEgPSAnXihhdHRyaWJ1dGV8cmVhZG9ubHkpJCc7Ci1teSAkbmV4dEludGVyZmFj
ZU1lbWJlcnNfMSA9ICdeKFwofDo6fEJ5dGVTdHJpbmd8RE9NU3RyaW5nfFVTVlN0cmluZ3xEYXRl
fGFueXxhdHRyaWJ1dGV8Ym9vbGVhbnxieXRlfGNvbnN0fGNyZWF0b3J8ZGVsZXRlcnxkb3VibGV8
ZmxvYXR8Z2V0dGVyfGluaGVyaXR8bGVnYWN5Y2FsbGVyfGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRv
bmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNob3J0fHN0YXRpY3xzdHJpbmdpZmllcnx1
bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKLW15ICRuZXh0U2luZ2xlVHlwZV8xID0gJ14o
Ojp8Qnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERhdGV8Ym9vbGVhbnxieXRlfGRvdWJs
ZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5z
aWduZWQpJCc7CitteSAkbmV4dEludGVyZmFjZU1lbWJlcnNfMSA9ICdeKFwofEJ5dGVTdHJpbmd8
RE9NU3RyaW5nfFVTVlN0cmluZ3xEYXRlfGFueXxhdHRyaWJ1dGV8Ym9vbGVhbnxieXRlfGNvbnN0
fGNyZWF0b3J8ZGVsZXRlcnxkb3VibGV8ZmxvYXR8Z2V0dGVyfGluaGVyaXR8bGVnYWN5Y2FsbGVy
fGxvbmd8b2JqZWN0fG9jdGV0fHJlYWRvbmx5fHNlcXVlbmNlfHNlcmlhbGl6ZXJ8c2V0dGVyfHNo
b3J0fHN0YXRpY3xzdHJpbmdpZmllcnx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215
ICRuZXh0U2luZ2xlVHlwZV8xID0gJ14oQnl0ZVN0cmluZ3xET01TdHJpbmd8VVNWU3RyaW5nfERh
dGV8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3RldHxzZXF1ZW5jZXxz
aG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWQpJCc7CiBteSAkbmV4dEFyZ3VtZW50TmFtZV8xID0g
J14oYXR0cmlidXRlfGNhbGxiYWNrfGNvbnN0fGNyZWF0b3J8ZGVsZXRlcnxkaWN0aW9uYXJ5fGVu
dW18ZXhjZXB0aW9ufGdldHRlcnxpbXBsZW1lbnRzfGluaGVyaXR8aW50ZXJmYWNlfGxlZ2FjeWNh
bGxlcnxwYXJ0aWFsfHNlcmlhbGl6ZXJ8c2V0dGVyfHN0YXRpY3xzdHJpbmdpZmllcnx0eXBlZGVm
fHVucmVzdHJpY3RlZCkkJzsKIG15ICRuZXh0Q29uc3RWYWx1ZV8xID0gJ14oZmFsc2V8dHJ1ZSkk
JzsKIG15ICRuZXh0Q29uc3RWYWx1ZV8yID0gJ14oLXxJbmZpbml0eXxOYU4pJCc7CiBteSAkbmV4
dERlZmluaXRpb25fMSA9ICdeKGNhbGxiYWNrfGludGVyZmFjZSkkJzsKLW15ICRuZXh0QXR0cmli
dXRlT3JPcGVyYXRpb25SZXN0XzEgPSAnXihcKHw6OnxCeXRlU3RyaW5nfERPTVN0cmluZ3xVU1ZT
dHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxvY3Rl
dHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKK215ICRuZXh0
QXR0cmlidXRlT3JPcGVyYXRpb25SZXN0XzEgPSAnXihcKHxCeXRlU3RyaW5nfERPTVN0cmluZ3xV
U1ZTdHJpbmd8RGF0ZXxhbnl8Ym9vbGVhbnxieXRlfGRvdWJsZXxmbG9hdHxsb25nfG9iamVjdHxv
Y3RldHxzZXF1ZW5jZXxzaG9ydHx1bnJlc3RyaWN0ZWR8dW5zaWduZWR8dm9pZCkkJzsKIG15ICRu
ZXh0VW5zaWduZWRJbnRlZ2VyVHlwZV8xID0gJ14obG9uZ3xzaG9ydCkkJzsKIG15ICRuZXh0RGVm
YXVsdFZhbHVlXzEgPSAnXigtfEluZmluaXR5fE5hTnxmYWxzZXxudWxsfHRydWUpJCc7CiAKQEAg
LTQ4MCw3ICs0ODgsNyBAQCBzdWIgcGFyc2VEZWZpbml0aW9uCiAgICAgaWYgKCRuZXh0LT52YWx1
ZSgpIGVxICJ0eXBlZGVmIikgewogICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlVHlwZWRlZigk
ZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICB9Ci0gICAgaWYgKCRuZXh0LT50eXBlKCkgPT0g
SWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKKyAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKICAgICAgICAgcmV0dXJuICRzZWxmLT5w
YXJzZUltcGxlbWVudHNTdGF0ZW1lbnQoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgfQog
ICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9f
KTsKQEAgLTY4NywxMyArNjk1LDEwIEBAIHN1YiBwYXJzZURpY3Rpb25hcnlNZW1iZXIKICAgICAg
ICAgICAgICRtZW1iZXItPmlzT3B0aW9uYWwoMCk7CiAgICAgICAgIH0KICAgICAgICAgJG1lbWJl
ci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworCiAgICAgICAg
IG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAgICAgICBpZiAodHlwZUhhc051bGxh
YmxlU3VmZml4KCR0eXBlKSkgewotICAgICAgICAgICAgJG1lbWJlci0+aXNOdWxsYWJsZSgxKTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRtZW1iZXItPmlzTnVsbGFibGUoMCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgJG1lbWJlci0+dHlwZSh0eXBlUmVtb3ZlTnVsbGFibGVTdWZmaXgo
JHR5cGUpKTsKKyAgICAgICAgJG1lbWJlci0+dHlwZSgkdHlwZS0+bmFtZSk7CisgICAgICAgICRt
ZW1iZXItPmlzTnVsbGFibGUoJHR5cGUtPmlzTnVsbGFibGUpOwogCiAgICAgICAgIG15ICRuYW1l
VG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlw
ZSgkbmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwpAQCAtODA2LDkgKzgxMSwxMCBAQCBzdWIg
cGFyc2VJbmhlcml0YW5jZQogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiOiIpIHsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI6IiwgX19MSU5FX18pOwotICAgICAgICBteSAkc2Nv
cGVkTmFtZSA9ICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKLSAgICAgICAgcHVzaChAcGFyZW50
LCAkc2NvcGVkTmFtZSk7Ci0gICAgICAgICMgTXVsdGlwbGUgaW5oZXJpdGFuY2UgKG5lZWRlZCBm
b3IgT2JqQyBiaW5kaW5ncykuCisgICAgICAgIG15ICRuYW1lID0gJHNlbGYtPnBhcnNlTmFtZSgp
OworICAgICAgICBwdXNoKEBwYXJlbnQsICRuYW1lKTsKKworICAgICAgICAjIEZJWE1FOiBSZW1v
dmUuIFdhcyBuZWVkZWQgZm9yIG5lZWRlZCBmb3IgT2JqQyBiaW5kaW5ncy4KICAgICAgICAgcHVz
aChAcGFyZW50LCBAeyRzZWxmLT5wYXJzZUlkZW50aWZpZXJzKCl9KTsKICAgICB9CiAgICAgcmV0
dXJuIFxAcGFyZW50OwpAQCAtOTAwLDcgKzkwNiwxMCBAQCBzdWIgcGFyc2VUeXBlZGVmCiAgICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAidHlwZWRlZiIs
IF9fTElORV9fKTsKICAgICAgICAgbXkgJHR5cGVkZWYgPSBUeXBlZGVmLT5uZXcoKTsKICAgICAg
ICAgJHR5cGVkZWYtPmV4dGVuZGVkQXR0cmlidXRlcygkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJp
YnV0ZUxpc3RBbGxvd0VtcHR5KCkpOwotICAgICAgICAkdHlwZWRlZi0+dHlwZSgkc2VsZi0+cGFy
c2VUeXBlKCkpOworCisgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAg
ICAgICAkdHlwZWRlZi0+dHlwZSgkdHlwZS0+bmFtZSk7CisKICAgICAgICAgbXkgJG5hbWVUb2tl
biA9ICRzZWxmLT5nZXRUb2tlbigpOwogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRu
YW1lVG9rZW4sIElkZW50aWZpZXJUb2tlbik7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKQEAgLTkxOSw5ICs5MjgsOSBA
QCBzdWIgcGFyc2VJbXBsZW1lbnRzU3RhdGVtZW50CiAKICAgICBteSAkbmV4dCA9ICRzZWxmLT5u
ZXh0VG9rZW4oKTsKICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsK
LSAgICAgICAgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VO
YW1lKCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiaW1wbGVtZW50cyIsIF9fTElORV9fKTsKLSAgICAgICAgJHNlbGYtPnBhcnNlU2NvcGVkTmFt
ZSgpOworICAgICAgICAkc2VsZi0+cGFyc2VOYW1lKCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiOyIsIF9fTElORV9fKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTkzNyw3ICs5NDYsMTAgQEAgc3ViIHBhcnNlQ29uc3QKICAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgewogICAgICAgICBteSAkbmV3RGF0YU5vZGUgPSBk
b21Db25zdGFudC0+bmV3KCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxm
LT5nZXRUb2tlbigpLCAiY29uc3QiLCBfX0xJTkVfXyk7Ci0gICAgICAgICRuZXdEYXRhTm9kZS0+
dHlwZSgkc2VsZi0+cGFyc2VDb25zdFR5cGUoKSk7CisgICAgICAgIAorICAgICAgICBteSAkdHlw
ZSA9ICRzZWxmLT5wYXJzZUNvbnN0VHlwZSgpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUo
JHR5cGUtPm5hbWUpOworCiAgICAgICAgIG15ICRjb25zdE5hbWVUb2tlbiA9ICRzZWxmLT5nZXRU
b2tlbigpOwogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRjb25zdE5hbWVUb2tlbiwg
SWRlbnRpZmllclRva2VuKTsKICAgICAgICAgJG5ld0RhdGFOb2RlLT5uYW1lKGlkZW50aWZpZXJS
ZW1vdmVOdWxsYWJsZVByZWZpeCgkY29uc3ROYW1lVG9rZW4tPnZhbHVlKCkpKTsKQEAgLTExODUs
MTIgKzExOTcsOCBAQCBzdWIgcGFyc2VBdHRyaWJ1dGVPck9wZXJhdGlvblJlc3QKICAgICAgICAg
bXkgJHJldHVyblR5cGUgPSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CiAgICAgICAgIG15ICRp
bnRlcmZhY2UgPSAkc2VsZi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxp
c3QpOwogICAgICAgICBpZiAoZGVmaW5lZCAoJGludGVyZmFjZSkpIHsKLSAgICAgICAgICAgIGlm
ICh0eXBlSGFzTnVsbGFibGVTdWZmaXgoJHJldHVyblR5cGUpKSB7Ci0gICAgICAgICAgICAgICAg
JGludGVyZmFjZS0+c2lnbmF0dXJlLT5pc051bGxhYmxlKDEpOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWduYXR1cmUtPmlzTnVsbGFibGUoMCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWduYXR1cmUtPnR5cGUo
dHlwZVJlbW92ZU51bGxhYmxlU3VmZml4KCRyZXR1cm5UeXBlKSk7CisgICAgICAgICAgICAkaW50
ZXJmYWNlLT5zaWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUtPm5hbWUpOworICAgICAgICAgICAg
JGludGVyZmFjZS0+c2lnbmF0dXJlLT5pc051bGxhYmxlKCRyZXR1cm5UeXBlLT5pc051bGxhYmxl
KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gJGludGVyZmFjZTsKICAgICB9CkBAIC0xMjI2
LDE0ICsxMjM0LDExIEBAIHN1YiBwYXJzZUF0dHJpYnV0ZVJlc3QKICAgICAgICAgfQogICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImF0dHJpYnV0ZSIs
IF9fTElORV9fKTsKICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUoZG9tU2lnbmF0dXJl
LT5uZXcoKSk7CisgICAgICAgIAogICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUo
KTsKLSAgICAgICAgaWYgKHR5cGVIYXNOdWxsYWJsZVN1ZmZpeCgkdHlwZSkpIHsKLSAgICAgICAg
ICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5pc051bGxhYmxlKDEpOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmlzTnVsbGFibGUoMCk7
Ci0gICAgICAgIH0KLSAgICAgICAgIyBSZW1vdmUgYWxsICI/IiBpbiB0aGUgdHlwZSBkZWNsYXJh
dGlvbiwgZS5nLiAiZG91YmxlPyIgLT4gImRvdWJsZSIuCi0gICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlLT50eXBlKHR5cGVSZW1vdmVOdWxsYWJsZVN1ZmZpeCgkdHlwZSkpOworICAgICAg
ICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkdHlwZS0+bmFtZSk7CisgICAgICAgICRu
ZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5pc051bGxhYmxlKCR0eXBlLT5pc051bGxhYmxlKTsKKwog
ICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKICAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7CiAgICAgICAgICRuZXdEYXRh
Tm9kZS0+c2lnbmF0dXJlLT5uYW1lKGlkZW50aWZpZXJSZW1vdmVOdWxsYWJsZVByZWZpeCgkdG9r
ZW4tPnZhbHVlKCkpKTsKQEAgLTEyODgsMTIgKzEyOTMsOCBAQCBzdWIgcGFyc2VPcGVyYXRpb25P
ckl0ZXJhdG9yCiAgICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgICAg
ICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkg
ZXEgIigiKSB7CiAgICAgICAgICAgICBteSAkb3BlcmF0aW9uID0gJHNlbGYtPnBhcnNlT3BlcmF0
aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKLSAgICAgICAgICAgIGlmICh0eXBlSGFz
TnVsbGFibGVTdWZmaXgoJHJldHVyblR5cGUpKSB7Ci0gICAgICAgICAgICAgICAgJG9wZXJhdGlv
bi0+c2lnbmF0dXJlLT5pc051bGxhYmxlKDEpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAkb3BlcmF0aW9uLT5zaWduYXR1cmUtPmlzTnVsbGFibGUoMCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAkb3BlcmF0aW9uLT5zaWduYXR1cmUtPnR5cGUodHlwZVJlbW92
ZU51bGxhYmxlU3VmZml4KCRyZXR1cm5UeXBlKSk7CisgICAgICAgICAgICAkb3BlcmF0aW9uLT5z
aWduYXR1cmUtPnR5cGUoJHJldHVyblR5cGUtPm5hbWUpOworICAgICAgICAgICAgJG9wZXJhdGlv
bi0+c2lnbmF0dXJlLT5pc051bGxhYmxlKCRyZXR1cm5UeXBlLT5pc051bGxhYmxlKTsKIAogICAg
ICAgICAgICAgcmV0dXJuICRvcGVyYXRpb247CiAgICAgICAgIH0KQEAgLTEzMTMsMTMgKzEzMTQs
OCBAQCBzdWIgcGFyc2VTcGVjaWFsT3BlcmF0aW9uCiAgICAgICAgIG15ICRyZXR1cm5UeXBlID0g
JHNlbGYtPnBhcnNlUmV0dXJuVHlwZSgpOwogICAgICAgICBteSAkaW50ZXJmYWNlID0gJHNlbGYt
PnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICAgICAgaWYg
KGRlZmluZWQgKCRpbnRlcmZhY2UpKSB7Ci0gICAgICAgICAgICBpZiAodHlwZUhhc051bGxhYmxl
U3VmZml4KCRyZXR1cm5UeXBlKSkgewotICAgICAgICAgICAgICAgICRpbnRlcmZhY2UtPnNpZ25h
dHVyZS0+aXNOdWxsYWJsZSgxKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgJGludGVyZmFjZS0+c2lnbmF0dXJlLT5pc051bGxhYmxlKDApOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgJGludGVyZmFjZS0+c2lnbmF0dXJlLT50eXBlKHR5cGVSZW1vdmVOdWxsYWJs
ZVN1ZmZpeCgkcmV0dXJuVHlwZSkpOwotCisgICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWduYXR1
cmUtPnR5cGUoJHJldHVyblR5cGUtPm5hbWUpOworICAgICAgICAgICAgJGludGVyZmFjZS0+c2ln
bmF0dXJlLT5pc051bGxhYmxlKCRyZXR1cm5UeXBlLT5pc051bGxhYmxlKTsKICAgICAgICAgICAg
ICRpbnRlcmZhY2UtPnNpZ25hdHVyZS0+c3BlY2lhbHMoXEBzcGVjaWFscyk7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuICRpbnRlcmZhY2U7CkBAIC0xNTMwLDE1ICsxNTI2LDEwIEBAIHN1YiBw
YXJzZU9wdGlvbmFsT3JSZXF1aXJlZEFyZ3VtZW50CiAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvcHRpb25hbCIpIHsKICAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvcHRpb25hbCIs
IF9fTElORV9fKTsKKwogICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKLSAg
ICAgICAgIyBkb21EYXRhTm9kZSBjYW4gb25seSBjb25zaWRlciBsYXN0ICI/Ii4KLSAgICAgICAg
aWYgKHR5cGVIYXNOdWxsYWJsZVN1ZmZpeCgkdHlwZSkpIHsKLSAgICAgICAgICAgICRwYXJhbURh
dGFOb2RlLT5pc051bGxhYmxlKDEpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgJHBh
cmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoMCk7Ci0gICAgICAgIH0KLSAgICAgICAgIyBSZW1vdmUg
Ij8iIGlmIGV4aXN0cywgZS5nLiAib2JqZWN0PyIgLT4gIm9iamVjdCIuCi0gICAgICAgICRwYXJh
bURhdGFOb2RlLT50eXBlKGlkZW50aWZpZXJSZW1vdmVOdWxsYWJsZVByZWZpeCh0eXBlUmVtb3Zl
TnVsbGFibGVTdWZmaXgoJHR5cGUpKSk7CisgICAgICAgICRwYXJhbURhdGFOb2RlLT50eXBlKGlk
ZW50aWZpZXJSZW1vdmVOdWxsYWJsZVByZWZpeCgkdHlwZS0+bmFtZSkpOworICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgkdHlwZS0+aXNOdWxsYWJsZSk7CiAgICAgICAgICRwYXJh
bURhdGFOb2RlLT5pc09wdGlvbmFsKDEpOwogICAgICAgICAkcGFyYW1EYXRhTm9kZS0+bmFtZSgk
c2VsZi0+cGFyc2VBcmd1bWVudE5hbWUoKSk7CiAgICAgICAgICRwYXJhbURhdGFOb2RlLT5kZWZh
dWx0KCRzZWxmLT5wYXJzZURlZmF1bHQoKSk7CkBAIC0xNTQ2LDE0ICsxNTM3LDggQEAgc3ViIHBh
cnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1lbnQKICAgICB9CiAgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlv
bkZpZWxkXzEvKSB7CiAgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAg
ICAgICAjIGRvbURhdGFOb2RlIGNhbiBvbmx5IGNvbnNpZGVyIGxhc3QgIj8iLgotICAgICAgICBp
ZiAodHlwZUhhc051bGxhYmxlU3VmZml4KCR0eXBlKSkgewotICAgICAgICAgICAgJHBhcmFtRGF0
YU5vZGUtPmlzTnVsbGFibGUoMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgwKTsKLSAgICAgICAgfQotICAgICAgICAjIFJlbW92ZSAi
PyIgaWYgZXhpc3RzLCBlLmcuICJvYmplY3Q/IiAtPiAib2JqZWN0Ii4KLSAgICAgICAgJHBhcmFt
RGF0YU5vZGUtPnR5cGUodHlwZVJlbW92ZU51bGxhYmxlU3VmZml4KCR0eXBlKSk7CisgICAgICAg
ICRwYXJhbURhdGFOb2RlLT50eXBlKCR0eXBlLT5uYW1lKTsKKyAgICAgICAgJHBhcmFtRGF0YU5v
ZGUtPmlzTnVsbGFibGUoJHR5cGUtPmlzTnVsbGFibGUpOwogICAgICAgICAkcGFyYW1EYXRhTm9k
ZS0+aXNPcHRpb25hbCgwKTsKICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzVmFyaWFkaWMoJHNl
bGYtPnBhcnNlRWxsaXBzaXMoKSk7CiAgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxm
LT5wYXJzZUFyZ3VtZW50TmFtZSgpKTsKQEAgLTE2MTIsNyArMTU5NywxMSBAQCBzdWIgcGFyc2VF
eGNlcHRpb25GaWVsZAogICAgICAgICAkbmV3RGF0YU5vZGUtPnR5cGUoImF0dHJpYnV0ZSIpOwog
ICAgICAgICAkbmV3RGF0YU5vZGUtPmlzUmVhZE9ubHkoMSk7CiAgICAgICAgICRuZXdEYXRhTm9k
ZS0+c2lnbmF0dXJlKGRvbVNpZ25hdHVyZS0+bmV3KCkpOwotICAgICAgICAkbmV3RGF0YU5vZGUt
PnNpZ25hdHVyZS0+dHlwZSgkc2VsZi0+cGFyc2VUeXBlKCkpOworCisgICAgICAgIG15ICR0eXBl
ID0gJHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+
dHlwZSgkdHlwZS0+bmFtZSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5pc051
bGxhYmxlKCR0eXBlLT5pc051bGxhYmxlKTsKKyAgICAgICAgCiAgICAgICAgIG15ICR0b2tlbiA9
ICRzZWxmLT5nZXRUb2tlbigpOwogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tl
biwgSWRlbnRpZmllclRva2VuKTsKICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPm5h
bWUoaWRlbnRpZmllclJlbW92ZU51bGxhYmxlUHJlZml4KCR0b2tlbi0+dmFsdWUoKSkpOwpAQCAt
MTY5OCw5ICsxNjg3LDkgQEAgc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUKIHsKICAgICBteSAk
c2VsZiA9IHNoaWZ0OwogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwotICAgIGlm
ICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBlcSAi
OjoiKSB7Ci0gICAgICAgIG15ICRzY29wZWROYW1lID0gJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgp
OwotICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0KCRzY29w
ZWROYW1lKTsKKyAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAg
ICAgICAgbXkgJG5hbWUgPSAkc2VsZi0+cGFyc2VOYW1lKCk7CisgICAgICAgIHJldHVybiAkc2Vs
Zi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZVJlc3QoJG5hbWUpOwogICAgIH0KICAgICAjIGJhY2t3
YXJkIGNvbXBhdGliaWxpdHkuIFNwZWMgZG9lc24nIGFsbG93ICJbXSIuIEJ1dCBXZWJLaXQgcmVx
dWlyZXMuCiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICddJykgewpAQCAtMTcxMyw5ICsxNzAy
LDkgQEAgc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGUyCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlm
dDsKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKLSAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIjo6IikgewotICAg
ICAgICBteSAkc2NvcGVkTmFtZSA9ICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKLSAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdCgkc2NvcGVkTmFtZSk7Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIG15ICRu
YW1lID0gJHNlbGYtPnBhcnNlTmFtZSgpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRXh0
ZW5kZWRBdHRyaWJ1dGVSZXN0KCRuYW1lKTsKICAgICB9CiAgICAgcmV0dXJuIHt9OwogfQpAQCAt
MTc1Nyw5ICsxNzQ2LDkgQEAgc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0MgogICAgICAg
ICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVf
Xyk7CiAgICAgICAgIHJldHVybiBAYXJndW1lbnRzOwogICAgIH0KLSAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgZXEgIjo6IikgewotICAg
ICAgICBteSAkc2NvcGVkTmFtZSA9ICRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKTsKLSAgICAgICAg
cmV0dXJuICRzZWxmLT5wYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVzdDMoJHNjb3BlZE5hbWUpOwor
ICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgeworICAgICAgICBteSAk
bmFtZSA9ICRzZWxmLT5wYXJzZU5hbWUoKTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZUV4
dGVuZGVkQXR0cmlidXRlUmVzdDMoJG5hbWUpOwogICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJbnRlZ2VyVG9rZW4pIHsKICAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7CkBAIC0xNzc2LDEyICsxNzY1LDEyIEBAIHN1YiBwYXJzZUV4dGVuZGVkQXR0cmlidXRlUmVz
dDMKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgIiYiKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAiJiIsIF9fTElORV9fKTsKLSAgICAgICAgbXkgJHJpZ2h0VmFsdWUgPSAkc2Vs
Zi0+cGFyc2VTY29wZWROYW1lKCk7CisgICAgICAgIG15ICRyaWdodFZhbHVlID0gJHNlbGYtPnBh
cnNlTmFtZSgpOwogICAgICAgICByZXR1cm4gJG5hbWUgLiAiJiIgLiAkcmlnaHRWYWx1ZTsKICAg
ICB9CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJ8IikgewogICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInwiLCBfX0xJTkVfXyk7Ci0gICAgICAg
IG15ICRyaWdodFZhbHVlID0gJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpOworICAgICAgICBteSAk
cmlnaHRWYWx1ZSA9ICRzZWxmLT5wYXJzZU5hbWUoKTsKICAgICAgICAgcmV0dXJuICRuYW1lIC4g
InwiIC4gJHJpZ2h0VmFsdWU7CiAgICAgfQogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIp
IHsKQEAgLTE3OTIsMzAgKzE3ODEsMTIgQEAgc3ViIHBhcnNlRXh0ZW5kZWRBdHRyaWJ1dGVSZXN0
MwogICAgICAgICByZXR1cm4gJGF0dHI7CiAgICAgfQogICAgIGlmICgkbmV4dC0+dHlwZSgpID09
IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRFeHRlbmRlZEF0dHJp
YnV0ZVJlc3QzXzEvKSB7Ci0gICAgICAgIG15IEBuYW1lcyA9ICgpOwotICAgICAgICBwdXNoKEBu
YW1lcywgJG5hbWUpOwotICAgICAgICBwdXNoKEBuYW1lcywgQHskc2VsZi0+cGFyc2VTY29wZWRO
YW1lTGlzdE5vQ29tbWEoKX0pOwotICAgICAgICByZXR1cm4gam9pbignICcsIEBuYW1lcyk7Cisg
ICAgICAgICRzZWxmLT5wYXJzZU5hbWVOb0NvbW1hKCk7CisgICAgICAgIHJldHVybiAkbmFtZTsK
ICAgICB9CiAgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7
CiB9CiAKLXN1YiBwYXJzZVNjb3BlZE5hbWVMaXN0Tm9Db21tYQotewotICAgIG15ICRzZWxmID0g
c2hpZnQ7Ci0gICAgbXkgQG5hbWVzID0gKCk7Ci0KLSAgICB3aGlsZSAoMSkgewotICAgICAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKLSAgICAgICAgaWYgKCRuZXh0LT50eXBlKCkg
PT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKLSAgICAgICAg
ICAgIHB1c2goQG5hbWVzLCAkc2VsZi0+cGFyc2VTY29wZWROYW1lKCkpOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgbGFzdDsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gXEBu
YW1lczsKLX0KLQogc3ViIHBhcnNlQXJndW1lbnROYW1lS2V5d29yZAogewogICAgIG15ICRzZWxm
ID0gc2hpZnQ7CkBAIC0xODg4LDkgKzE4NTksNyBAQCBzdWIgcGFyc2VUeXBlCiAgICAgbXkgJHNl
bGYgPSBzaGlmdDsKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgIigiKSB7Ci0gICAgICAgICRzZWxmLT5wYXJzZVVuaW9uVHlwZSgp
OwotICAgICAgICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7Ci0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVVuaW9uVHlwZSgpOwogICAgIH0KICAgICBpZiAoJG5l
eHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0
VHlwZV8xLykgewogICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlU2luZ2xlVHlwZSgpOwpAQCAt
MTkwNCwxMCArMTg3MywxNSBAQCBzdWIgcGFyc2VTaW5nbGVUeXBlCiAgICAgbXkgJG5leHQgPSAk
c2VsZi0+bmV4dFRva2VuKCk7CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJhbnkiKSB7CiAg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYW55Iiwg
X19MSU5FX18pOwotICAgICAgICByZXR1cm4gImFueSI7CisgICAgICAgIAorICAgICAgICBteSAk
YW55VHlwZSA9IGRvbVR5cGUtPm5ldygpOworICAgICAgICAkYW55VHlwZS0+bmFtZSgiYW55Iik7
CisgICAgICAgIHJldHVybiAkYW55VHlwZTsKICAgICB9CiAgICAgaWYgKCRuZXh0LT50eXBlKCkg
PT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dFNpbmdsZVR5cGVf
MS8pIHsKLSAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU5vbkFueVR5cGUoKTsKKyAgICAgICAg
bXkgJG5vbkFueVR5cGUgPSAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7CisgICAgICAgICRub25B
bnlUeXBlLT5pc051bGxhYmxlKCRzZWxmLT5wYXJzZU51bGwoKSk7CisgICAgICAgIHJldHVybiAk
bm9uQW55VHlwZTsKICAgICB9CiAgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4
dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQpAQCAtMTkxNiwxNCArMTg5MCwyNCBAQCBzdWIgcGFy
c2VVbmlvblR5cGUKIHsKICAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOworCisgICAgbXkgJHVuaW9uVHlwZSA9IGRvbVR5cGUtPm5ldygpOwor
ICAgICR1bmlvblR5cGUtPm5hbWUoIlVOSU9OIik7CisgICAgJHVuaW9uVHlwZS0+aXNVbmlvbigx
KTsKKwogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKICAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICIoIiwgX19MSU5FX18pOwotICAgICAg
ICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGUoKTsKKyAgICAgICAgCisgICAgICAgIHB1c2go
QHskdW5pb25UeXBlLT5zdWJ0eXBlc30sICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlwZSgpKTsK
KyAgICAgICAgCiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAib3IiLCBfX0xJTkVfXyk7Ci0gICAgICAgICRzZWxmLT5wYXJzZVVuaW9uTWVtYmVyVHlw
ZSgpOwotICAgICAgICAkc2VsZi0+cGFyc2VVbmlvbk1lbWJlclR5cGVzKCk7CisgICAgICAgIAor
ICAgICAgICBwdXNoKEB7JHVuaW9uVHlwZS0+c3VidHlwZXN9LCAkc2VsZi0+cGFyc2VVbmlvbk1l
bWJlclR5cGUoKSk7CisgICAgICAgIHB1c2goQHskdW5pb25UeXBlLT5zdWJ0eXBlc30sICRzZWxm
LT5wYXJzZVVuaW9uTWVtYmVyVHlwZXMoKSk7CisgICAgICAgIAogICAgICAgICAkc2VsZi0+YXNz
ZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIikiLCBfX0xJTkVfXyk7Ci0gICAgICAg
IHJldHVybjsKKworICAgICAgICByZXR1cm4gJHVuaW9uVHlwZTsKICAgICB9CiAgICAgJHNlbGYt
PmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQpAQCAt
MTkzMywyMCArMTkxNywxNCBAQCBzdWIgcGFyc2VVbmlvbk1lbWJlclR5cGUKICAgICBteSAkc2Vs
ZiA9IHNoaWZ0OwogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAiKCIpIHsKLSAgICAgICAgJHNlbGYtPnBhcnNlVW5pb25UeXBlKCk7
Ci0gICAgICAgICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImFueSIpIHsKLSAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJhbnkiLCBfX0xJTkVfXyk7Ci0gICAg
ICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiWyIsIF9fTElO
RV9fKTsKLSAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJdIiwgX19MSU5FX18pOwotICAgICAgICAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7Ci0gICAg
ICAgIHJldHVybjsKKyAgICAgICAgbXkgJHVuaW9uVHlwZSA9ICRzZWxmLT5wYXJzZVVuaW9uVHlw
ZSgpOworICAgICAgICAkdW5pb25UeXBlLT5pc051bGxhYmxlKCRzZWxmLT5wYXJzZU51bGwoKSk7
CisgICAgICAgIHJldHVybiAkdW5pb25UeXBlOwogICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUo
KSA9PSBJZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0U2luZ2xlVHlw
ZV8xLykgewotICAgICAgICAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7Ci0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgbXkgJG5vbkFueVR5cGUgPSAkc2VsZi0+cGFyc2VOb25BbnlUeXBlKCk7Cisg
ICAgICAgICRub25BbnlUeXBlLT5pc051bGxhYmxlKCRzZWxmLT5wYXJzZU51bGwoKSk7CisgICAg
ICAgIHJldHVybiAkbm9uQW55VHlwZTsKICAgICB9CiAgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0
ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQpAQCAtMTk1NSw1MSArMTkzMyw5
NyBAQCBzdWIgcGFyc2VVbmlvbk1lbWJlclR5cGVzCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsK
ICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKworICAgIG15IEBzdWJ0eXBlcyA9
ICgpOworCiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvciIpIHsKICAgICAgICAgJHNlbGYt
PmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJvciIsIF9fTElORV9fKTsKLSAg
ICAgICAgJHNlbGYtPnBhcnNlVW5pb25NZW1iZXJUeXBlKCk7Ci0gICAgICAgICRzZWxmLT5wYXJz
ZVVuaW9uTWVtYmVyVHlwZXMoKTsKKyAgICAgICAgcHVzaChAc3VidHlwZXMsICRzZWxmLT5wYXJz
ZVVuaW9uTWVtYmVyVHlwZSgpKTsKKyAgICAgICAgcHVzaChAc3VidHlwZXMsICRzZWxmLT5wYXJz
ZVVuaW9uTWVtYmVyVHlwZXMoKSk7CiAgICAgfQorCisgICAgcmV0dXJuIEBzdWJ0eXBlczsKIH0K
IAogc3ViIHBhcnNlTm9uQW55VHlwZQogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkg
JG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisKKyAgICBteSAkdHlwZSA9IGRvbVR5cGUtPm5l
dygpOworCiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsK
LSAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJz
ZVR5cGVTdWZmaXgoKTsKKyAgICAgICAgJHR5cGUtPm5hbWUoJHNlbGYtPnBhcnNlUHJpbWl0aXZl
VHlwZSgpKTsKKyAgICAgICAgcmV0dXJuICR0eXBlOwogICAgIH0KICAgICBpZiAoJG5leHQtPnZh
bHVlKCkgZXEgIkJ5dGVTdHJpbmciKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiQnl0ZVN0cmluZyIsIF9fTElORV9fKTsKLSAgICAgICAgcmV0
dXJuICJCeXRlU3RyaW5nIiAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKworICAgICAgICAk
dHlwZS0+bmFtZSgiQnl0ZVN0cmluZyIpOworICAgICAgICByZXR1cm4gJHR5cGU7CiAgICAgfQog
ICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIkRPTVN0cmluZyIsIF9fTElORV9f
KTsKLSAgICAgICAgcmV0dXJuICJET01TdHJpbmciIC4gJHNlbGYtPnBhcnNlVHlwZVN1ZmZpeCgp
OworCisgICAgICAgICR0eXBlLT5uYW1lKCJET01TdHJpbmciKTsKKyAgICAgICAgcmV0dXJuICR0
eXBlOwogICAgIH0KICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIlVTVlN0cmluZyIpIHsKICAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJVU1ZTdHJp
bmciLCBfX0xJTkVfXyk7Ci0gICAgICAgIHJldHVybiAiVVNWU3RyaW5nIiAuICRzZWxmLT5wYXJz
ZVR5cGVTdWZmaXgoKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJz
ZXF1ZW5jZSIpIHsKLSAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJzZXF1ZW5jZSIsIF9fTElORV9fKTsKLSAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI8IiwgX19MSU5FX18pOwotICAgICAgICBteSAkdHlw
ZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKLSAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUo
JHNlbGYtPmdldFRva2VuKCksICI+IiwgX19MSU5FX18pOwotICAgICAgICByZXR1cm4gInNlcXVl
bmNlPCIgLiAkdHlwZSAuICI+IiAuICRzZWxmLT5wYXJzZU51bGwoKTsKKworICAgICAgICAkdHlw
ZS0+bmFtZSgiVVNWU3RyaW5nIik7CisgICAgICAgIHJldHVybiAkdHlwZTsKICAgICB9CiAgICAg
aWYgKCRuZXh0LT52YWx1ZSgpIGVxICJvYmplY3QiKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAib2JqZWN0IiwgX19MSU5FX18pOwotICAgICAg
ICByZXR1cm4gIm9iamVjdCIgLiAkc2VsZi0+cGFyc2VUeXBlU3VmZml4KCk7CisKKyAgICAgICAg
JHR5cGUtPm5hbWUoIm9iamVjdCIpOworICAgICAgICByZXR1cm4gJHR5cGU7CisgICAgfQorICAg
IGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiUmVnRXhwIikgeworICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIlJlZ0V4cCIsIF9fTElORV9fKTsKKworICAg
ICAgICAkdHlwZS0+bmFtZSgiUmVnRXhwIik7CisgICAgICAgIHJldHVybiAkdHlwZTsKKyAgICB9
CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJFcnJvciIpIHsKKyAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJFcnJvciIsIF9fTElORV9fKTsKKwor
ICAgICAgICAkdHlwZS0+bmFtZSgiRXJyb3IiKTsKKyAgICAgICAgcmV0dXJuICR0eXBlOworICAg
IH0KKyAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIkRPTUV4Y2VwdGlvbiIpIHsKKyAgICAgICAg
JHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJET01FeGNlcHRpb24i
LCBfX0xJTkVfXyk7CisKKyAgICAgICAgJHR5cGUtPm5hbWUoIkRPTUV4Y2VwdGlvbiIpOworICAg
ICAgICByZXR1cm4gJHR5cGU7CiAgICAgfQogICAgIGlmICgkbmV4dC0+dmFsdWUoKSBlcSAiRGF0
ZSIpIHsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJEYXRlIiwgX19MSU5FX18pOwotICAgICAgICByZXR1cm4gIkRhdGUiIC4gJHNlbGYtPnBhcnNl
VHlwZVN1ZmZpeCgpOworCisgICAgICAgICR0eXBlLT5uYW1lKCJEYXRlIik7CisgICAgICAgIHJl
dHVybiAkdHlwZTsKKyAgICB9CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJzZXF1ZW5jZSIp
IHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJz
ZXF1ZW5jZSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNl
bGYtPmdldFRva2VuKCksICI8IiwgX19MSU5FX18pOworCisgICAgICAgIG15ICRzdWJ0eXBlID0g
JHNlbGYtPnBhcnNlVHlwZSgpOworICAgICAgICBteSAkc3VidHlwZU5hbWUgPSAkc3VidHlwZS0+
bmFtZTsKKworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIj4iLCBfX0xJTkVfXyk7CisKKyAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQganVzdCBi
ZSAic2VxdWVuY2UiIHdoZW4gd2Ugc3RhcnQgdXNpbmcgZG9tVHlwZXMgaW4gdGhlIENvZGVHZW5l
cmF0b3JzCisgICAgICAgICR0eXBlLT5uYW1lKCJzZXF1ZW5jZTwke3N1YnR5cGVOYW1lfT4iKTsK
KyAgICAgICAgcHVzaChAeyR0eXBlLT5zdWJ0eXBlc30sICRzdWJ0eXBlKTsKKworICAgICAgICBy
ZXR1cm4gJHR5cGU7CiAgICAgfQotICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJU
b2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBlcSAiOjoiKSB7Ci0gICAgICAgIG15ICRuYW1lID0gaWRl
bnRpZmllclJlbW92ZU51bGxhYmxlUHJlZml4KCRzZWxmLT5wYXJzZVNjb3BlZE5hbWUoKSk7Ci0g
ICAgICAgIHJldHVybiAkbmFtZSAuICRzZWxmLT5wYXJzZVR5cGVTdWZmaXgoKTsKKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgbXkgJGlkZW50aWZp
ZXIgPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKworICAgICAgICAkdHlwZS0+bmFtZShpZGVudGlmaWVy
UmVtb3ZlTnVsbGFibGVQcmVmaXgoJGlkZW50aWZpZXItPnZhbHVlKCkpKTsKKyAgICAgICAgcmV0
dXJuICR0eXBlOwogICAgIH0KICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0
LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CkBAIC0yMDA4LDEyICsyMDMyLDIxIEBAIHN1YiBwYXJz
ZUNvbnN0VHlwZQogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgJG5leHQgPSAkc2Vs
Zi0+bmV4dFRva2VuKCk7CisKKyAgICBteSAkdHlwZSA9IGRvbVR5cGUtPm5ldygpOworCiAgICAg
aWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE5vbkFueVR5cGVfMS8pIHsKLSAgICAgICAgcmV0
dXJuICRzZWxmLT5wYXJzZVByaW1pdGl2ZVR5cGUoKSAuICRzZWxmLT5wYXJzZU51bGwoKTsKKyAg
ICAgICAgJHR5cGUtPm5hbWUoJHNlbGYtPnBhcnNlUHJpbWl0aXZlVHlwZSgpKTsKKyAgICAgICAg
JHR5cGUtPmlzTnVsbGFibGUoJHNlbGYtPnBhcnNlTnVsbCgpKTsKKyAgICAgICAgcmV0dXJuICR0
eXBlOwogICAgIH0KICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsK
LSAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Ci0gICAgICAgIHJldHVybiAk
dG9rZW4tPnZhbHVlKCkgLiAkc2VsZi0+cGFyc2VOdWxsKCk7CisgICAgICAgIG15ICRpZGVudGlm
aWVyID0gJHNlbGYtPmdldFRva2VuKCk7CisgICAgICAgIAorICAgICAgICAkdHlwZS0+bmFtZSgk
aWRlbnRpZmllci0+dmFsdWUoKSk7CisgICAgICAgICR0eXBlLT5pc051bGxhYmxlKCRzZWxmLT5w
YXJzZU51bGwoKSk7CisKKyAgICAgICAgcmV0dXJuICR0eXBlOwogICAgIH0KICAgICAkc2VsZi0+
YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CkBAIC0y
MTE5LDI2ICsyMTUyLDE1IEBAIHN1YiBwYXJzZU9wdGlvbmFsTG9uZwogICAgIHJldHVybiAwOwog
fQogCi1zdWIgcGFyc2VUeXBlU3VmZml4Ci17Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKLSAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
Ij8iKSB7Ci0gICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiPyIsIF9fTElORV9fKTsKLSAgICAgICAgcmV0dXJuICI/IjsKLSAgICB9Ci0gICAgcmV0dXJu
ICIiOwotfQotCiBzdWIgcGFyc2VOdWxsCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
Ij8iKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiPyIsIF9fTElORV9fKTsKLSAgICAgICAgcmV0dXJuICI/IjsKKyAgICAgICAgcmV0dXJuIDE7
CiAgICAgfQotICAgIHJldHVybiAiIjsKKyAgICByZXR1cm4gMDsKIH0KIAogc3ViIHBhcnNlUmV0
dXJuVHlwZQpAQCAtMjE0Nyw3ICsyMTY5LDEwIEBAIHN1YiBwYXJzZVJldHVyblR5cGUKICAgICBt
eSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEg
InZvaWQiKSB7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tl
bigpLCAidm9pZCIsIF9fTElORV9fKTsKLSAgICAgICAgcmV0dXJuICJ2b2lkIjsKKyAgICAgICAg
CisgICAgICAgIG15ICR2b2lkVHlwZSA9IGRvbVR5cGUtPm5ldygpOworICAgICAgICAkdm9pZFR5
cGUtPm5hbWUoInZvaWQiKTsKKyAgICAgICAgcmV0dXJuICR2b2lkVHlwZTsKICAgICB9CiAgICAg
aWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+
IC8kbmV4dEV4Y2VwdGlvbkZpZWxkXzEvKSB7CiAgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VU
eXBlKCk7CkBAIC0yMTc1LDkyICsyMjAwLDI5IEBAIHN1YiBwYXJzZU9wdGlvbmFsU2VtaWNvbG9u
CiAgICAgfQogfQogCi1zdWIgcGFyc2VTY29wZWROYW1lCitzdWIgcGFyc2VOYW1lTm9Db21tYQog
ewogICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2Vu
KCk7Ci0gICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI6OiIpIHsKLSAgICAgICAgcmV0dXJuICRz
ZWxmLT5wYXJzZUFic29sdXRlU2NvcGVkTmFtZSgpOwotICAgIH0KICAgICBpZiAoJG5leHQtPnR5
cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKLSAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVJl
bGF0aXZlU2NvcGVkTmFtZSgpOworICAgICAgICBteSAkaWRlbnRpZmllciA9ICRzZWxmLT5nZXRU
b2tlbigpOworICAgICAgICByZXR1cm4gKCRpZGVudGlmaWVyLT52YWx1ZSgpKTsKICAgICB9Ci0g
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSk7Ci19CiAKLXN1
YiBwYXJzZUFic29sdXRlU2NvcGVkTmFtZQotewotICAgIG15ICRzZWxmID0gc2hpZnQ7Ci0gICAg
bXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Ci0gICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICI6OiIpIHsKLSAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2Vu
KCksICI6OiIpOwotICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKLSAgICAg
ICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkdG9rZW4sIElkZW50aWZpZXJUb2tlbik7Ci0gICAg
ICAgIHJldHVybiAiOjoiIC4gJHRva2VuLT52YWx1ZSgpIC4gJHNlbGYtPnBhcnNlU2NvcGVkTmFt
ZVBhcnRzKCk7Ci0gICAgfQotICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVkVG9rZW4oJG5leHQt
PnZhbHVlKCkpOworICAgIHJldHVybiAoKTsKIH0KIAotc3ViIHBhcnNlUmVsYXRpdmVTY29wZWRO
YW1lCitzdWIgcGFyc2VOYW1lCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBteSAkbmV4
dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJZGVudGlm
aWVyVG9rZW4pIHsKLSAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7Ci0gICAg
ICAgIHJldHVybiAkdG9rZW4tPnZhbHVlKCkgLiAkc2VsZi0+cGFyc2VTY29wZWROYW1lUGFydHMo
KTsKKyAgICAgICAgbXkgJGlkZW50aWZpZXIgPSAkc2VsZi0+Z2V0VG9rZW4oKTsKKyAgICAgICAg
cmV0dXJuICRpZGVudGlmaWVyLT52YWx1ZSgpOwogICAgIH0KICAgICAkc2VsZi0+YXNzZXJ0VW5l
eHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpKTsKIH0KIAotc3ViIHBhcnNlU2NvcGVkTmFtZVBh
cnRzCi17Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBteSBAbmFtZXMgPSAoKTsKLQotICAg
IHdoaWxlICgxKSB7Ci0gICAgICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwotICAg
ICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjo6IikgewotICAgICAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI6OiIpOwotICAgICAgICAgICAgcHVz
aChAbmFtZXMsICI6OiIpOwotICAgICAgICAgICAgbXkgJHRva2VuID0gJHNlbGYtPmdldFRva2Vu
KCk7Ci0gICAgICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRlbnRpZmll
clRva2VuKTsKLSAgICAgICAgICAgIHB1c2goQG5hbWVzLCAkdG9rZW4tPnZhbHVlKCkpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgbGFzdDsKLSAgICAgICAgfQotICAgIH0KLSAgICBy
ZXR1cm4gam9pbigiIiwgQG5hbWVzKTsKLX0KLQotc3ViIHBhcnNlU2NvcGVkTmFtZUxpc3QKLXsK
LSAgICBteSAkc2VsZiA9IHNoaWZ0OwotICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigp
OwotICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFs
dWUoKSBlcSAiOjoiKSB7Ci0gICAgICAgIG15IEBuYW1lcyA9ICgpOwotICAgICAgICBwdXNoKEBu
YW1lcywgJHNlbGYtPnBhcnNlU2NvcGVkTmFtZSgpKTsKLSAgICAgICAgcHVzaChAbmFtZXMsIEB7
JHNlbGYtPnBhcnNlU2NvcGVkTmFtZXMoKX0pOwotICAgICAgICByZXR1cm4gXEBuYW1lczsKLSAg
ICB9Ci0gICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19M
SU5FX18pOwotfQotCi1zdWIgcGFyc2VTY29wZWROYW1lcwotewotICAgIG15ICRzZWxmID0gc2hp
ZnQ7Ci0gICAgbXkgQG5hbWVzID0gKCk7Ci0KLSAgICB3aGlsZSAoMSkgewotICAgICAgICBteSAk
bmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKLSAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVx
ICIsIikgewotICAgICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICIsIik7Ci0gICAgICAgICAgICBwdXNoKEBuYW1lcywgJHNlbGYtPnBhcnNlU2NvcGVk
TmFtZSgpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGxhc3Q7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgcmV0dXJuIFxAbmFtZXM7Ci19CiAKIHN1YiBhcHBseU1lbWJlckxpc3QKIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>