<?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>159353</bug_id>
          
          <creation_ts>2016-07-01 08:39:18 -0700</creation_ts>
          <short_desc>Simplify LayoutTestRelay</short_desc>
          <delta_ts>2016-07-01 10:09:08 -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>Tools / Tests</component>
          <version>Other</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1207126</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-07-01 08:39:18 -0700</bug_when>
    <thetext>LayoutTestRelay does some really unnecessary things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207129</commentid>
    <comment_count>1</comment_count>
      <attachid>282553</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-07-01 08:54:59 -0700</bug_when>
    <thetext>Created attachment 282553
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207135</commentid>
    <comment_count>2</comment_count>
      <attachid>282555</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-07-01 09:15:02 -0700</bug_when>
    <thetext>Created attachment 282555
proposed patch

With a build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207178</commentid>
    <comment_count>3</comment_count>
      <attachid>282555</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-01 10:09:05 -0700</bug_when>
    <thetext>Comment on attachment 282555
proposed patch

Clearing flags on attachment: 282555

Committed r202743: &lt;http://trac.webkit.org/changeset/202743&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207179</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-01 10:09:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282553</attachid>
            <date>2016-07-01 08:54:59 -0700</date>
            <delta_ts>2016-07-01 09:15:02 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>LayoutTestRelaySimplification.txt</filename>
            <type>text/plain</type>
            <size>21763</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwMjczNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUzIEBACisyMDE2LTA3LTAxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIFNpbXBsaWZ5IExheW91dFRlc3RSZWxheQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MzUzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gVXNlIFVESUQgdG8gcGFzcyB0aGUgZGV2
aWNlIGZyb20gd2Via2l0cHkgdG8gTGF5b3V0VGVzdFJlbGF5LCBzZWFyY2hpbmcgZm9yIGl0Cisg
ICAgICAgIGJ5IG5hbWUgYW5kIHJ1bnRpbWUgbWFrZXMgbm8gc2Vuc2UuCisgICAgICAgIDIuIFJl
bW92ZWQgY29kZSB0byBjcmVhdGUgZGV2aWNlcywgd2Via2l0cHkgYWx3YXlzIGRvZXMgdGhpcyBp
biBhZHZhbmNlLgorICAgICAgICAzLiBEb24ndCBjcmVhdGUgY29waWVzIG9mIHRlc3RpbmcgYXBw
cyAtIHdlIGNhbiBpbnN0YWxsIHRoZSBzYW1lIG9uZSBpbnRvCisgICAgICAgIGVhY2ggc2ltdWxh
dG9yLCBub3cgdGhhdCB3ZSBkb24ndCBydW4gbXVsdGlwbGUgdGVzdGVyIHByb2Nlc3NlcyBpbiBh
IHNpbmdsZSBzaW11bGF0b3IuCisgICAgICAgIDQuIFBhc3MgaW5mb3JtYXRpb24gb24gaG93IHRv
IGZpbmQgSS9PIHBpcGVzIHZpYSBlbnZpcm9ubWVudCwgbm90IHZpYSBJbmZvLnBsaXN0LgorICAg
ICAgICA1LiBSZW1vdmVkIGNvZGUgdGhhdCBrZXB0IHRlc3RpbmcgYXBwcyBhbGl2ZSBpbiB0aGUg
YmFja2dyb3VuZC4KKyAgICAgICAgNi4gU2xpZ2h0bHkgdXBkYXRlZCBjb2Rpbmcgc3R5bGUgaW4g
ZnVuY3Rpb25zIHRoYXQgSSB0b3VjaGVkLgorCisgICAgICAgICogTGF5b3V0VGVzdFJlbGF5L0xh
eW91dFRlc3RSZWxheS9Db3JlU2ltdWxhdG9yU1BJLmg6CisgICAgICAgIFVwZGF0ZWQgZm9yIHdo
YXQgd2UgYWN1YWxseSB1c2UgYXQgdGhpcyBwb2ludC4KKworICAgICAgICAqIExheW91dFRlc3RS
ZWxheS9MYXlvdXRUZXN0UmVsYXkvTFRSZWxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBMYXlv
dXRUZXN0UmVsYXkvTGF5b3V0VGVzdFJlbGF5L0xUUmVsYXlDb250cm9sbGVyLm06CisgICAgICAg
ICgtW0xUUmVsYXlDb250cm9sbGVyIGluaXRXaXRoRGV2aWNlOnByb2R1Y3REaXI6YXBwUGF0aDpk
dW1wVG9vbEFyZ3VtZW50czpdKToKKyAgICAgICAgKC1bTFRSZWxheUNvbnRyb2xsZXIgaXBjSWRl
bnRpZmllcl0pOgorICAgICAgICAoLVtMVFJlbGF5Q29udHJvbGxlciBwcm9jZXNzTmFtZV0pOgor
ICAgICAgICAoLVtMVFJlbGF5Q29udHJvbGxlciBkaWRSZWNlaXZlU3Rkb3V0RGF0YTpdKToKKyAg
ICAgICAgKC1bTFRSZWxheUNvbnRyb2xsZXIgZGlkQ3Jhc2hXaXRoTWVzc2FnZTpdKToKKyAgICAg
ICAgKC1bTFRSZWxheUNvbnRyb2xsZXIgaW5zdGFsbEFwcF0pOgorICAgICAgICAoLVtMVFJlbGF5
Q29udHJvbGxlciBfZW52aXJvbm1lbnRWYXJpYWJsZXNdKToKKyAgICAgICAgKC1bTFRSZWxheUNv
bnRyb2xsZXIgbGF1bmNoQXBwXSk6CisgICAgICAgICgtW0xUUmVsYXlDb250cm9sbGVyIHN0YXJ0
XSk6CisgICAgICAgICgtW0xUUmVsYXlDb250cm9sbGVyIGluaXRXaXRoRGV2aWNlOnByb2R1Y3RE
aXI6YXBwUGF0aDppZGVudGlmaWVyU3VmZml4OmR1bXBUb29sQXJndW1lbnRzOl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtMVFJlbGF5Q29udHJvbGxlciB1bmlxdWVBcHBQYXRoXSk6IERlbGV0ZWQu
CisgICAgICAgICgtW0xUUmVsYXlDb250cm9sbGVyIHVuaXF1ZUFwcFVSTF0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtMVFJlbGF5Q29udHJvbGxlciB1bmlxdWVBcHBJZGVudGlmaWVyXSk6IERlbGV0
ZWQuCisgICAgICAgICgtW0xUUmVsYXlDb250cm9sbGVyIGNyZWF0ZVVuaXF1ZUFwcF0pOiBEZWxl
dGVkLgorICAgICAgICAqIExheW91dFRlc3RSZWxheS9MYXlvdXRUZXN0UmVsYXkvbWFpbi5tOgor
ICAgICAgICAodXNhZ2UpOgorICAgICAgICAoZ2V0UmVxdWlyZWRTdHJpbmdBcmd1bWVudCk6Cisg
ICAgICAgIChtYWluKToKKyAgICAgICAgKGdldFRlc3RpbmdTaW1EZXZpY2UpOiBEZWxldGVkLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHk6CisgICAgICAgIChJT1NT
aW11bGF0b3JEcml2ZXIuY21kX2xpbmUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9z
L1Rlc3RDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9tYWluSU9T
Lm1tOgorICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVyQXBwIGFwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kOl0pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbToKKyAgICAgICAgKGR1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKC1bRHVtcFJlbmRlclRy
ZWUgYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQ6XSk6CisKIDIwMTYtMDctMDEgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4KIAogICAgICAgICBBZGQgYSBydW50aW1lIGZs
YWcgZm9yIERPTSBpdGVyYXRvcnMKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0JKHJldmlzaW9uIDIwMjcxOSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI1NywxMCArMTI1Nywx
MCBAQCB2b2lkIHdyaXRlQ3Jhc2hlZE1lc3NhZ2VPbkZhdGFsRXJyb3IoaW50CiB2b2lkIGR1bXBS
ZW5kZXJUcmVlKGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCiB7CiAjaWYgUExBVEZPUk0o
SU9TKQotICAgIE5TU3RyaW5nICppZGVudGlmaWVyID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBi
dW5kbGVJZGVudGlmaWVyXTsKLSAgICBjb25zdCBjaGFyICpzdGRpblBhdGggPSBbW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCIvdG1wLyVAX0lOIiwgaWRlbnRpZmllcl0gVVRGOFN0cmluZ107
Ci0gICAgY29uc3QgY2hhciAqc3Rkb3V0UGF0aCA9IFtbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIi90bXAvJUBfT1VUIiwgaWRlbnRpZmllcl0gVVRGOFN0cmluZ107Ci0gICAgY29uc3QgY2hh
ciAqc3RkZXJyUGF0aCA9IFtbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIi90bXAvJUBfRVJS
T1IiLCBpZGVudGlmaWVyXSBVVEY4U3RyaW5nXTsKKyAgICBjb25zdCBjaGFyKiBpZGVudGlmaWVy
ID0gZ2V0ZW52KCJJUENfSURFTlRJRklFUiIpOworICAgIGNvbnN0IGNoYXIgKnN0ZGluUGF0aCA9
IFtbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIi90bXAvJXNfSU4iLCBpZGVudGlmaWVyXSBV
VEY4U3RyaW5nXTsKKyAgICBjb25zdCBjaGFyICpzdGRvdXRQYXRoID0gW1tOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiL3RtcC8lc19PVVQiLCBpZGVudGlmaWVyXSBVVEY4U3RyaW5nXTsKKyAg
ICBjb25zdCBjaGFyICpzdGRlcnJQYXRoID0gW1tOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
L3RtcC8lc19FUlJPUiIsIGlkZW50aWZpZXJdIFVURjhTdHJpbmddOwogCiAgICAgaW50IGluZmQg
PSBvcGVuKHN0ZGluUGF0aCwgT19SRFdSKTsKICAgICBkdXAyKGluZmQsIFNURElOX0ZJTEVOTyk7
CkBAIC0xMzUyLDI1ICsxMzUyLDcgQEAgLSAodm9pZClhcHBsaWNhdGlvbkRpZEZpbmlzaExhdW5j
aGluZzooTgogCiAtICh2b2lkKWFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOihVSUFwcGxp
Y2F0aW9uICopYXBwbGljYXRpb24KIHsKLSAgICAvKiBBcHBzIHdpbGwgZ2V0IHN1c3BlbmRlZCBv
ciBraWxsZWQgc29tZSB0aW1lIGFmdGVyIGVudGVyaW5nIHRoZSBiYWNrZ3JvdW5kIHN0YXRlIGJ1
dCB3ZSB3YW50IHRvIGJlIGFibGUgdG8gcnVuIG11bHRpcGxlIGNvcGllcyBvZiBEdW1wUmVuZGVy
VHJlZS4gUGVyaW9kaWNhbGx5IGNoZWNrIHRvIHNlZSBpZiBvdXIgcmVtYWluaW5nIGJhY2tncm91
bmQgdGltZSBkaXBzIGJlbG93IGEgdGhyZXNob2xkIGFuZCBjcmVhdGUgYSBuZXcgYmFja2dyb3Vu
ZCB0YXNrLgotICAgICovCi0gICAgdm9pZCAoXmV4cGlyYXRpb25IYW5kbGVyKSgpID0gXiB7Ci0g
ICAgICAgIFthcHBsaWNhdGlvbiBlbmRCYWNrZ3JvdW5kVGFzazpiYWNrZ3JvdW5kVGFza0lkZW50
aWZpZXJdOwotICAgICAgICBiYWNrZ3JvdW5kVGFza0lkZW50aWZpZXIgPSBVSUJhY2tncm91bmRU
YXNrSW52YWxpZDsKLSAgICB9OwotCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2ds
b2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgXnsKLQotICAg
ICAgICBOU1RpbWVJbnRlcnZhbCB0aW1lUmVtYWluaW5nOwotICAgICAgICB3aGlsZSAodHJ1ZSkg
ewotICAgICAgICAgICAgdGltZVJlbWFpbmluZyA9IFthcHBsaWNhdGlvbiBiYWNrZ3JvdW5kVGlt
ZVJlbWFpbmluZ107Ci0gICAgICAgICAgICBpZiAodGltZVJlbWFpbmluZyA8PSAxMC4wIHx8IGJh
Y2tncm91bmRUYXNrSWRlbnRpZmllciA9PSBVSUJhY2tncm91bmRUYXNrSW52YWxpZCkgewotICAg
ICAgICAgICAgICAgIFthcHBsaWNhdGlvbiBlbmRCYWNrZ3JvdW5kVGFzazpiYWNrZ3JvdW5kVGFz
a0lkZW50aWZpZXJdOwotICAgICAgICAgICAgICAgIGJhY2tncm91bmRUYXNrSWRlbnRpZmllciA9
IFthcHBsaWNhdGlvbiBiZWdpbkJhY2tncm91bmRUYXNrV2l0aEV4cGlyYXRpb25IYW5kbGVyOmV4
cGlyYXRpb25IYW5kbGVyXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNsZWVwKDUpOwot
ICAgICAgICB9Ci0gICAgfSk7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAogLSAodm9pZClfd2ViVGhyZWFkRXZlbnRMb29wSGFzUnVuCkluZGV4OiBUb29scy9MYXlvdXRU
ZXN0UmVsYXkvTGF5b3V0VGVzdFJlbGF5L0NvcmVTaW11bGF0b3JTUEkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9MYXlvdXRUZXN0UmVsYXkvTGF5b3V0VGVzdFJlbGF5L0NvcmVTaW11bGF0b3JTUEku
aAkocmV2aXNpb24gMjAyNzE5KQorKysgVG9vbHMvTGF5b3V0VGVzdFJlbGF5L0xheW91dFRlc3RS
ZWxheS9Db3JlU2ltdWxhdG9yU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDMyICszNSwxNCBA
QAogI2RlZmluZSBrU2ltRGV2aWNlTGF1bmNoQXBwbGljYXRpb25Bcmd1bWVudHMgQCJhcmd1bWVu
dHMiCiAjZGVmaW5lIGtTaW1EZXZpY2VMYXVuY2hBcHBsaWNhdGlvbkVudmlyb25tZW50IEAiZW52
aXJvbm1lbnQiCiAKLXR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBTaW1EZXZpY2VTdGF0ZSkg
ewotICAgIFNpbURldmljZVN0YXRlQ3JlYXRpbmcgPSAwLAotfTsKLQotQGludGVyZmFjZSBTaW1E
ZXZpY2VUeXBlIDogTlNPYmplY3QKLSsgKE5TRGljdGlvbmFyeSAqKXN1cHBvcnRlZERldmljZVR5
cGVzQnlJZGVudGlmaWVyOwotQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmlk
ZW50aWZpZXI7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgU2ltUnVudGltZSA6IE5TT2JqZWN0Ci0rIChO
U0RpY3Rpb25hcnkgKilzdXBwb3J0ZWRSdW50aW1lc0J5SWRlbnRpZmllcjsKLUBlbmQKLQogQGlu
dGVyZmFjZSBTaW1EZXZpY2UgOiBOU09iamVjdAogLSAoQk9PTClpbnN0YWxsQXBwbGljYXRpb246
KE5TVVJMICopaW5zdGFsbFVSTCB3aXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopb3B0aW9ucyBl
cnJvcjooTlNFcnJvciAqKillcnJvcjsKIC0gKHBpZF90KWxhdW5jaEFwcGxpY2F0aW9uV2l0aElE
OihOU1N0cmluZyAqKWJ1bmRsZUlEIG9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKW9wdGlvbnMgZXJy
b3I6KE5TRXJyb3IgKiopZXJyb3I7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCByZXRhaW4pIFNpbURl
dmljZVR5cGUgKmRldmljZVR5cGU7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCByZXRhaW4pIFNpbVJ1
bnRpbWUgKnJ1bnRpbWU7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBhc3NpZ24pIFNpbURldmljZVN0
YXRlIHN0YXRlOwotQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKm5hbWU7CiBA
ZW5kCiAKIEBpbnRlcmZhY2UgU2ltRGV2aWNlU2V0IDogTlNPYmplY3QKICsgKFNpbURldmljZVNl
dCAqKWRlZmF1bHRTZXQ7Ci0tIChTaW1EZXZpY2UgKiljcmVhdGVEZXZpY2VXaXRoVHlwZTooU2lt
RGV2aWNlVHlwZSAqKWRldmljZVR5cGUgcnVudGltZTooU2ltUnVudGltZSAqKXJ1bnRpbWUgbmFt
ZTooTlNTdHJpbmcgKiluYW1lIGVycm9yOihOU0Vycm9yICoqKWVycm9yOwotQHByb3BlcnR5IChy
ZWFkb25seSwgY29weSkgTlNBcnJheSAqZGV2aWNlczsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGNv
cHkpIE5TRGljdGlvbmFyeSAqZGV2aWNlc0J5VURJRDsKIAogQGVuZAogCkluZGV4OiBUb29scy9M
YXlvdXRUZXN0UmVsYXkvTGF5b3V0VGVzdFJlbGF5L0xUUmVsYXlDb250cm9sbGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvTGF5b3V0VGVzdFJlbGF5L0xheW91dFRlc3RSZWxheS9MVFJlbGF5Q29u
dHJvbGxlci5oCShyZXZpc2lvbiAyMDI3MTkpCisrKyBUb29scy9MYXlvdXRUZXN0UmVsYXkvTGF5
b3V0VGVzdFJlbGF5L0xUUmVsYXlDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcg
KzMyLDcgQEAKIEBjbGFzcyBTaW1EZXZpY2U7CiAKIEBpbnRlcmZhY2UgTFRSZWxheUNvbnRyb2xs
ZXIgOiBOU09iamVjdCA8TFRSZWxheURlbGVnYXRlPgotLSAoaWQpaW5pdFdpdGhEZXZpY2U6KFNp
bURldmljZSAqKWRldmljZSBwcm9kdWN0RGlyOihOU1N0cmluZyAqKXByb2R1Y3REaXIgYXBwUGF0
aDooTlNTdHJpbmcgKilhcHBQYXRoIGlkZW50aWZpZXJTdWZmaXg6KE5TU3RyaW5nICopc3VmZml4
IGR1bXBUb29sQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRzOworLSAoaWQpaW5pdFdpdGhE
ZXZpY2U6KFNpbURldmljZSAqKWRldmljZSBwcm9kdWN0RGlyOihOU1N0cmluZyAqKXByb2R1Y3RE
aXIgYXBwUGF0aDooTlNTdHJpbmcgKilhcHBQYXRoIGR1bXBUb29sQXJndW1lbnRzOihOU0FycmF5
ICopYXJndW1lbnRzOwogLSAodm9pZClzdGFydDsKIC0gKHZvaWQpZmluaXNoOwogQGVuZApJbmRl
eDogVG9vbHMvTGF5b3V0VGVzdFJlbGF5L0xheW91dFRlc3RSZWxheS9MVFJlbGF5Q29udHJvbGxl
ci5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0xheW91dFRlc3RSZWxheS9MYXlvdXRUZXN0UmVsYXkv
TFRSZWxheUNvbnRyb2xsZXIubQkocmV2aXNpb24gMjAyNzE5KQorKysgVG9vbHMvTGF5b3V0VGVz
dFJlbGF5L0xheW91dFRlc3RSZWxheS9MVFJlbGF5Q29udHJvbGxlci5tCSh3b3JraW5nIGNvcHkp
CkBAIC0zMywxMiArMzMsOSBAQCBAaW50ZXJmYWNlIExUUmVsYXlDb250cm9sbGVyICgpCiBAcHJv
cGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIGRpc3BhdGNoX3NvdXJjZV90IHN0YW5kYXJkSW5wdXRE
aXNwYXRjaFNvdXJjZTsKIEBwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTlNGaWxlSGFuZGxl
ICpzdGFuZGFyZE91dHB1dDsKIEBwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTlNGaWxlSGFu
ZGxlICpzdGFuZGFyZEVycm9yOwotQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBOU1N0cmlu
ZyAqdW5pcXVlQXBwUGF0aDsKLUBwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTlNTdHJpbmcg
KnVuaXF1ZUFwcElkZW50aWZpZXI7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIE5TVVJM
ICp1bmlxdWVBcHBVUkw7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIE5TU3RyaW5nICpv
cmlnaW5hbEFwcElkZW50aWZpZXI7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIE5TU3Ry
aW5nICpvcmlnaW5hbEFwcFBhdGg7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIE5TU3Ry
aW5nICppZGVudGlmaWVyU3VmZml4OworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBOU1N0
cmluZyAqaXBjSWRlbnRpZmllcjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTlNTdHJp
bmcgKmFwcEJ1bmRsZUlkZW50aWZpZXI7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIE5T
U3RyaW5nICphcHBQYXRoOwogQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBOU0FycmF5ICpk
dW1wVG9vbEFyZ3VtZW50czsKIEBwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTlNTdHJpbmcg
KnByb2R1Y3REaXI7CiBAcHJvcGVydHkgKHN0cm9uZykgU2ltRGV2aWNlICpkZXZpY2U7CkBAIC00
OSwxNCArNDYsMTMgQEAgQGludGVyZmFjZSBMVFJlbGF5Q29udHJvbGxlciAoKQogCiBAaW1wbGVt
ZW50YXRpb24gTFRSZWxheUNvbnRyb2xsZXIKIAotLSAoaWQpaW5pdFdpdGhEZXZpY2U6KFNpbURl
dmljZSAqKWRldmljZSBwcm9kdWN0RGlyOihOU1N0cmluZyAqKXByb2R1Y3REaXIgYXBwUGF0aDoo
TlNTdHJpbmcgKilhcHBQYXRoIGlkZW50aWZpZXJTdWZmaXg6KE5TU3RyaW5nICopc3VmZml4IGR1
bXBUb29sQXJndW1lbnRzOihOU0FycmF5ICopYXJndW1lbnRzCistIChpZClpbml0V2l0aERldmlj
ZTooU2ltRGV2aWNlICopZGV2aWNlIHByb2R1Y3REaXI6KE5TU3RyaW5nICopcHJvZHVjdERpciBh
cHBQYXRoOihOU1N0cmluZyAqKWFwcFBhdGggZHVtcFRvb2xBcmd1bWVudHM6KE5TQXJyYXkgKilh
cmd1bWVudHMKIHsKICAgICBpZiAoKHNlbGYgPSBbc3VwZXIgaW5pdF0pKSB7CiAgICAgICAgIF9k
ZXZpY2UgPSBkZXZpY2U7CiAgICAgICAgIF9wcm9kdWN0RGlyID0gcHJvZHVjdERpcjsKLSAgICAg
ICAgX29yaWdpbmFsQXBwUGF0aCA9IGFwcFBhdGg7Ci0gICAgICAgIF9vcmlnaW5hbEFwcElkZW50
aWZpZXIgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoQ29udGVudHNPZkZpbGU6W19vcmln
aW5hbEFwcFBhdGggc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5mby5wbGlzdCJd
XVsoTlNTdHJpbmcgKilrQ0ZCdW5kbGVJZGVudGlmaWVyS2V5XTsKLSAgICAgICAgX2lkZW50aWZp
ZXJTdWZmaXggPSBzdWZmaXg7CisgICAgICAgIF9hcHBQYXRoID0gYXBwUGF0aDsKKyAgICAgICAg
X2FwcEJ1bmRsZUlkZW50aWZpZXIgPSBbW05TQnVuZGxlIGJ1bmRsZVdpdGhQYXRoOmFwcFBhdGhd
IGJ1bmRsZUlkZW50aWZpZXJdOwogICAgICAgICBfZHVtcFRvb2xBcmd1bWVudHMgPSBhcmd1bWVu
dHM7CiAgICAgICAgIF9zdGFuZGFyZElucHV0RGlzcGF0Y2hTb3VyY2UgPSBkaXNwYXRjaF9zb3Vy
Y2VfY3JlYXRlKERJU1BBVENIX1NPVVJDRV9UWVBFX1JFQUQsIFNURElOX0ZJTEVOTywgMCwgZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CiAgICAgICAgIF9zdGFuZGFyZE91dHB1dCA9IFtOU0Zp
bGVIYW5kbGUgZmlsZUhhbmRsZVdpdGhTdGFuZGFyZE91dHB1dF07CkBAIC03OCwyOSArNzQsMjAg
QEAgLSAoaWQpaW5pdFdpdGhEZXZpY2U6KFNpbURldmljZSAqKWRldmljZQogICAgICAgICAgICAg
fQogICAgICAgICB9KTsKIAotICAgICAgICBfcmVsYXkgPSBbW0xUUGlwZVJlbGF5IGFsbG9jXSBp
bml0V2l0aFByZWZpeDpbQCIvdG1wIiBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6W3Nl
bGYgdW5pcXVlQXBwSWRlbnRpZmllcl1dXTsKKyAgICAgICAgX3JlbGF5ID0gW1tMVFBpcGVSZWxh
eSBhbGxvY10gaW5pdFdpdGhQcmVmaXg6W0AiL3RtcCIgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29t
cG9uZW50OnNlbGYuaXBjSWRlbnRpZmllcl1dOwogICAgICAgICBbX3JlbGF5IHNldFJlbGF5RGVs
ZWdhdGU6c2VsZl07CiAgICAgfQogICAgIHJldHVybiBzZWxmOwogfQogCi0tIChOU1N0cmluZyAq
KXVuaXF1ZUFwcFBhdGgKKy0gKE5TU3RyaW5nICopaXBjSWRlbnRpZmllcgogewotICAgIHJldHVy
biBbW3NlbGYgb3JpZ2luYWxBcHBQYXRoXSBzdHJpbmdCeVJlcGxhY2luZ09jY3VycmVuY2VzT2ZT
dHJpbmc6QCIuYXBwIiB3aXRoU3RyaW5nOltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAu
YXBwIiwgW3NlbGYgaWRlbnRpZmllclN1ZmZpeF1dXTsKKyAgICByZXR1cm4gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCIlQC0lQCIsIHNlbGYuYXBwQnVuZGxlSWRlbnRpZmllciwgc2VsZi5k
ZXZpY2UuVURJRC5VVUlEU3RyaW5nXTsKIH0KIAotLSAoTlNVUkwgKil1bmlxdWVBcHBVUkwKLXsK
LSAgICByZXR1cm4gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbc2VsZiB1bmlxdWVBcHBQYXRoXV07
Ci19Ci0KLS0gKE5TU3RyaW5nICopdW5pcXVlQXBwSWRlbnRpZmllcgotewotICAgIHJldHVybiBb
W3NlbGYgb3JpZ2luYWxBcHBJZGVudGlmaWVyXSBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpbc2Vs
ZiBpZGVudGlmaWVyU3VmZml4XV07Ci19CiAtIChOU1N0cmluZyAqKXByb2Nlc3NOYW1lCiB7Ci0g
ICAgcmV0dXJuIFtbW3NlbGYgb3JpZ2luYWxBcHBJZGVudGlmaWVyXSBjb21wb25lbnRzU2VwYXJh
dGVkQnlTdHJpbmc6QCIuIl0gbGFzdE9iamVjdF07CisgICAgcmV0dXJuIFtzZWxmLmFwcEJ1bmRs
ZUlkZW50aWZpZXIgY29tcG9uZW50c1NlcGFyYXRlZEJ5U3RyaW5nOkAiLiJdLmxhc3RPYmplY3Q7
CiB9CiAKIC0gKHZvaWQpZGlkUmVjZWl2ZVN0ZG91dERhdGE6KE5TRGF0YSAqKWRhdGEKQEAgLTE1
MSwzNSArMTM4LDE2IEBAIC0gKHZvaWQpZGlkQ3Jhc2hXaXRoTWVzc2FnZTooTlNTdHJpbmcgKikK
ICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiB9CiAKLS0gKHZvaWQpY3JlYXRlVW5pcXVlQXBwCist
ICh2b2lkKWluc3RhbGxBcHAKIHsKLSAgICBOU0Vycm9yICplcnJvcjsKLSAgICBOU0ZpbGVNYW5h
Z2VyICpmaWxlTWFuYWdlciA9IFtOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKLSAgICBb
ZmlsZU1hbmFnZXIgcmVtb3ZlSXRlbUF0UGF0aDpbc2VsZiB1bmlxdWVBcHBQYXRoXSBlcnJvcjom
ZXJyb3JdOwotICAgIGVycm9yID0gbmlsOwotCi0gICAgW2ZpbGVNYW5hZ2VyIGNvcHlJdGVtQXRQ
YXRoOltzZWxmIG9yaWdpbmFsQXBwUGF0aF0gdG9QYXRoOltzZWxmIHVuaXF1ZUFwcFBhdGhdIGVy
cm9yOiZlcnJvcl07Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIE5TTG9nKEAiQ291bGRuJ3Qg
Y29weSAlQCB0byAlQDogJUAiLCBbc2VsZiBvcmlnaW5hbEFwcFBhdGhdLCBbc2VsZiB1bmlxdWVB
cHBQYXRoXSwgW2Vycm9yIGRlc2NyaXB0aW9uXSk7Ci0gICAgICAgIGV4aXQoRVhJVF9GQUlMVVJF
KTsKLSAgICB9Ci0KLSAgICBOU1N0cmluZyAqaW5mb1BsaXN0UGF0aCA9IFtbc2VsZiB1bmlxdWVB
cHBQYXRoXSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmZvLnBsaXN0Il07Ci0g
ICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcGxpc3QgPSBbTlNNdXRhYmxlRGljdGlvbmFyeSBkaWN0
aW9uYXJ5V2l0aENvbnRlbnRzT2ZGaWxlOmluZm9QbGlzdFBhdGhdOwotICAgIFtwbGlzdCBzZXRW
YWx1ZTpbc2VsZiB1bmlxdWVBcHBJZGVudGlmaWVyXSBmb3JLZXk6KE5TU3RyaW5nICopa0NGQnVu
ZGxlSWRlbnRpZmllcktleV07Ci0gICAgQk9PTCB3cml0dGVuID0gW3BsaXN0IHdyaXRlVG9GaWxl
OmluZm9QbGlzdFBhdGggYXRvbWljYWxseTpZRVNdOwotICAgIGlmICghd3JpdHRlbikgewotICAg
ICAgICBOU0xvZyhAIkNvdWxkbid0IHdyaXRlIHVuaXF1ZSBhcHAgcGxpc3QgYXQgJUAiLCBpbmZv
UGxpc3RQYXRoKTsKLSAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwotICAgIH0KLQogICAgIE5T
RGljdGlvbmFyeSAqaW5zdGFsbE9wdGlvbnMgPSBAewotICAgICAgICAoTlNTdHJpbmcgKilrQ0ZC
dW5kbGVJZGVudGlmaWVyS2V5OiBbc2VsZiB1bmlxdWVBcHBJZGVudGlmaWVyXSwKKyAgICAgICAg
KE5TU3RyaW5nICopa0NGQnVuZGxlSWRlbnRpZmllcktleTogc2VsZi5hcHBCdW5kbGVJZGVudGlm
aWVyLAogICAgIH07CiAKLSAgICBbW3NlbGYgZGV2aWNlXSBpbnN0YWxsQXBwbGljYXRpb246W3Nl
bGYgdW5pcXVlQXBwVVJMXSB3aXRoT3B0aW9uczppbnN0YWxsT3B0aW9ucyBlcnJvcjomZXJyb3Jd
OworICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworICAgIFtzZWxmLmRldmljZSBpbnN0YWxsQXBw
bGljYXRpb246W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpzZWxmLmFwcFBhdGhdIHdpdGhPcHRpb25z
Omluc3RhbGxPcHRpb25zIGVycm9yOiZlcnJvcl07CiAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAg
IE5TTG9nKEAiQ291bGRuJ3QgaW5zdGFsbCAlQDogJUAiLCBbW3NlbGYgdW5pcXVlQXBwVVJMXSBw
YXRoXSwgW2Vycm9yIGRlc2NyaXB0aW9uXSk7CisgICAgICAgIE5TTG9nKEAiQ291bGRuJ3QgaW5z
dGFsbCAlQDogJUAiLCBzZWxmLmFwcFBhdGgsIGVycm9yLmRlc2NyaXB0aW9uKTsKICAgICAgICAg
ZXhpdChFWElUX0ZBSUxVUkUpOwogICAgIH0KIH0KQEAgLTIwNyw2ICsxNzUsNyBAQCAtIChOU0Rp
Y3Rpb25hcnkgKilfZW52aXJvbm1lbnRWYXJpYWJsZXMKICAgICAgICAgTlNTdHJpbmcgKnByb2R1
Y3REaXJlY3RvcnkgPSBbc2VsZiBwcm9kdWN0RGlyXTsKIAogICAgICAgICBOU011dGFibGVEaWN0
aW9uYXJ5ICpkaWN0aW9uYXJ5ID0gW0B7CisgICAgICAgICAgICBAIklQQ19JREVOVElGSUVSIjog
c2VsZi5pcGNJZGVudGlmaWVyLAogICAgICAgICAgICAgQCJEWUxEX0ZSQU1FV09SS19QQVRIIjog
cHJvZHVjdERpcmVjdG9yeSwKICAgICAgICAgICAgIEAiX19YUENfRFlMRF9GUkFNRVdPUktfUEFU
SCI6IHByb2R1Y3REaXJlY3RvcnksCiAgICAgICAgICAgICBAIkRZTERfTElCUkFSWV9QQVRIIjog
cHJvZHVjdERpcmVjdG9yeSwKQEAgLTIzNiwxMCArMjA1LDEwIEBAIC0gKHZvaWQpbGF1bmNoQXBw
CiAgICAgfTsKIAogICAgIE5TRXJyb3IgKmVycm9yOwotICAgIHBpZF90IHBpZCA9IFtbc2VsZiBk
ZXZpY2VdIGxhdW5jaEFwcGxpY2F0aW9uV2l0aElEOltzZWxmIHVuaXF1ZUFwcElkZW50aWZpZXJd
IG9wdGlvbnM6bGF1bmNoT3B0aW9ucyBlcnJvcjomZXJyb3JdOworICAgIHBpZF90IHBpZCA9IFtz
ZWxmLmRldmljZSBsYXVuY2hBcHBsaWNhdGlvbldpdGhJRDpzZWxmLmFwcEJ1bmRsZUlkZW50aWZp
ZXIgb3B0aW9uczpsYXVuY2hPcHRpb25zIGVycm9yOiZlcnJvcl07CiAKICAgICBpZiAocGlkIDwg
MCkgewotICAgICAgICBOU0xvZyhAIkNvdWxkbid0IGxhdW5jaCB1bmlxdWUgYXBwIGluc3RhbmNl
ICVAOiAlQCIsIFtzZWxmIHVuaXF1ZUFwcElkZW50aWZpZXJdLCBbZXJyb3IgZGVzY3JpcHRpb25d
KTsKKyAgICAgICAgTlNMb2coQCJDb3VsZG4ndCBsYXVuY2ggJUA6ICVAIiwgc2VsZi5hcHBCdW5k
bGVJZGVudGlmaWVyLCBlcnJvci5kZXNjcmlwdGlvbik7CiAgICAgICAgIGV4aXQoRVhJVF9GQUlM
VVJFKTsKICAgICB9CiAKQEAgLTI1Nyw3ICsyMjYsNyBAQCAtICh2b2lkKWxhdW5jaEFwcAogCiAt
ICh2b2lkKXN0YXJ0CiB7Ci0gICAgW3NlbGYgY3JlYXRlVW5pcXVlQXBwXTsKKyAgICBbc2VsZiBp
bnN0YWxsQXBwXTsKICAgICBbW3NlbGYgcmVsYXldIHNldHVwXTsKICAgICBbc2VsZiBsYXVuY2hB
cHBdOwogICAgIFtbc2VsZiByZWxheV0gY29ubmVjdF07CkluZGV4OiBUb29scy9MYXlvdXRUZXN0
UmVsYXkvTGF5b3V0VGVzdFJlbGF5L21haW4ubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9MYXlvdXRU
ZXN0UmVsYXkvTGF5b3V0VGVzdFJlbGF5L21haW4ubQkocmV2aXNpb24gMjAyNzE5KQorKysgVG9v
bHMvTGF5b3V0VGVzdFJlbGF5L0xheW91dFRlc3RSZWxheS9tYWluLm0JKHdvcmtpbmcgY29weSkK
QEAgLTMyLDQyICszMiwxNSBAQCBzdGF0aWMgTFRSZWxheUNvbnRyb2xsZXIgKnJlbGF5Q29udHJv
bGxlCiB2b2lkIHVzYWdlKCkKIHsKICAgICBOU1N0cmluZyAqaGVscFRleHQgPSBAIkxheW91dFRl
c3RSZWxheTogcnVuIGEgZHVtcCB0b29sIGluIHRoZSBzaW11bGF0b3IuIE5vdCBmb3IgZGlyZWN0
IGNvbnN1bXB0aW9uLlxuIgotICAgICJVc2FnZTogTGF5b3V0VGVzdFJlbGF5IFstaF0gW29wdGlv
bnNdIC0tIFtkdW1wIHRvb2wgYXJndW1lbnRzXVxuIgotICAgICJSZXF1aXJlZCBvcHRpb25zOlxu
IgotICAgICIgICAgLWFwcCA8YXBwX3BhdGg+ICAgICAgICAgIFBhdGggdG8gdGhlIGJ1aWx0IGlP
UyAuYXBwIGJ1bmRsZSBkaXJlY3RvcnkuXG4iCi0gICAgIiAgICAtcnVudGltZSA8aWRlbnRpZmll
cj4gICAgaU9TIFNpbXVsYXRvciBSdW50aW1lIGlkZW50aWZpZXIgKHNlZSBgeGNydW4gLXNkayBp
cGhvbmVzaW11bGF0b3Igc2ltY3RsYClcbiIKLSAgICAiICAgIC1kZXZpY2VUeXBlIDxpZGVudGlm
aWVyPiBpT1MgU2ltdWxhdG9yIGRldmljZSBpZGVudGlmaWVyIChzZWUgc2ltY3RsKS5cbiIKLSAg
ICAiICAgIC1zdWZmaXggPHRleHQ+ICAgICAgICAgICBVc2VkIHRvIGNyZWF0ZSBtdWx0aXBsZSB1
bmlxdWUgaW5zdGFuY2VzIHdoZW4gaW5zdGFsbGluZyB0byB0aGUgc2ltdWxhdG9yLlxuIgotICAg
ICIgICAgLXByb2R1Y3REaXIgPGRpcj4gICAgICAgIC9wYXRoL3RvL1dlYktpdEJ1aWxkL3tjb25m
aWd1cmF0aW9ufS17c2hvcnQgcGxhdGZvcm19LlxuIjsKKyAgICAgICAgIlVzYWdlOiBMYXlvdXRU
ZXN0UmVsYXkgWy1oXSBbb3B0aW9uc10gLS0gW2R1bXAgdG9vbCBhcmd1bWVudHNdXG4iCisgICAg
ICAgICJSZXF1aXJlZCBvcHRpb25zOlxuIgorICAgICAgICAiICAgIC11ZGlkIDxpZGVudGlmaWVy
PiAgICAgICBTaW11bGF0b3IgZGV2aWNlIGlkZW50aWZpZXJcbiIKKyAgICAgICAgIiAgICAtYXBw
IDxhcHBfcGF0aD4gICAgICAgICAgUGF0aCB0byB0aGUgYnVpbHQgaU9TIC5hcHAgYnVuZGxlIGRp
cmVjdG9yeS5cbiIKKyAgICAgICAgIiAgICAtcHJvZHVjdERpciA8ZGlyPiAgICAgICAgL3BhdGgv
dG8vV2ViS2l0QnVpbGQve2NvbmZpZ3VyYXRpb259LXtzaG9ydCBwbGF0Zm9ybX0uXG4iOwogCiAg
ICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgW2hlbHBUZXh0IFVURjhTdHJpbmddKTsKIH0KIAot
U2ltRGV2aWNlICpnZXRUZXN0aW5nU2ltRGV2aWNlKFNpbURldmljZVR5cGUgKmRldmljZVR5cGUs
IFNpbVJ1bnRpbWUgKnJ1bnRpbWUsIE5TU3RyaW5nICpzdWZmaXgpCi17Ci0gICAgTlNTdHJpbmcg
KmRldmljZU5hbWUgPSBbW1tbZGV2aWNlVHlwZSBpZGVudGlmaWVyXSBjb21wb25lbnRzU2VwYXJh
dGVkQnlTdHJpbmc6QCIuIl0gbGFzdE9iamVjdF0gc3RyaW5nQnlSZXBsYWNpbmdPY2N1cnJlbmNl
c09mU3RyaW5nOkAiLSIgd2l0aFN0cmluZzpAIiAiXTsKLSAgICBkZXZpY2VOYW1lID0gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQCVAJUAiLCBkZXZpY2VOYW1lLCBAIiBXZWJLaXQgVGVz
dGVyIiwgc3VmZml4XTsKLQotICAgIGZvciAoU2ltRGV2aWNlICpkZXZpY2UgaW4gW1tTaW1EZXZp
Y2VTZXQgZGVmYXVsdFNldF0gZGV2aWNlc10pIHsKLSAgICAgICAgaWYgKFtbZGV2aWNlIG5hbWVd
IGlzRXF1YWxUb1N0cmluZzpkZXZpY2VOYW1lXSAmJiBbW2RldmljZSBkZXZpY2VUeXBlXSBpc0Vx
dWFsVG86ZGV2aWNlVHlwZV0gJiYgW1tkZXZpY2UgcnVudGltZV0gaXNFcXVhbFRvOnJ1bnRpbWVd
KQotICAgICAgICAgICAgcmV0dXJuIGRldmljZTsKLSAgICB9Ci0KLSAgICBOU0Vycm9yICplcnJv
cjsKLSAgICBTaW1EZXZpY2UgKmRldmljZSA9IFtbU2ltRGV2aWNlU2V0IGRlZmF1bHRTZXRdIGNy
ZWF0ZURldmljZVdpdGhUeXBlOmRldmljZVR5cGUgcnVudGltZTpydW50aW1lIG5hbWU6ZGV2aWNl
TmFtZSBlcnJvcjomZXJyb3JdOwotCi0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIE5TTG9nKEAi
Q291bGRuJ3QgY3JlYXRlIGRldmljZTogJUAiLCBbZXJyb3IgZGVzY3JpcHRpb25dKTsKLSAgICAg
ICAgcmV0dXJuIG5pbDsKLSAgICB9Ci0KLSAgICB3aGlsZSAoW2RldmljZSBzdGF0ZV0gPT0gU2lt
RGV2aWNlU3RhdGVDcmVhdGluZykKLSAgICAgICAgc2xlZXAoMSk7Ci0KLSAgICByZXR1cm4gZGV2
aWNlOwotfQotCi0KIE5TU3RyaW5nICpnZXRSZXF1aXJlZFN0cmluZ0FyZ3VtZW50KE5TU3RyaW5n
ICpwYXJhbWV0ZXIpCiB7CiAgICAgTlNVc2VyRGVmYXVsdHMgKmRlZmF1bHRzID0gW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXTsKQEAgLTExNywyOCArOTAsMTkgQEAgaW50IG1h
aW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCiAgICAgICAgICAgICAgICAgZXhpdChF
WElUX0ZBSUxVUkUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CisKKyAgICAgICAgTlNVVUlE
ICp1ZGlkID0gW1tOU1VVSUQgYWxsb2NdIGluaXRXaXRoVVVJRFN0cmluZzpnZXRSZXF1aXJlZFN0
cmluZ0FyZ3VtZW50KEAidWRpZCIpXTsKICAgICAgICAgTlNTdHJpbmcgKmFwcFBhdGggPSBnZXRS
ZXF1aXJlZFN0cmluZ0FyZ3VtZW50KEAiYXBwIik7Ci0gICAgICAgIE5TU3RyaW5nICpydW50aW1l
SWRlbnRpZmllciA9IGdldFJlcXVpcmVkU3RyaW5nQXJndW1lbnQoQCJydW50aW1lIik7Ci0gICAg
ICAgIFNpbVJ1bnRpbWUgKnJ1bnRpbWUgPSBbU2ltUnVudGltZSBzdXBwb3J0ZWRSdW50aW1lc0J5
SWRlbnRpZmllcl1bcnVudGltZUlkZW50aWZpZXJdOwotICAgICAgICBpZiAoIXJ1bnRpbWUpIHsK
LSAgICAgICAgICAgIE5TTG9nKEAiVGhlcmUgaXMgbm8gc3VwcG9ydGVkIHJ1bnRpbWUgXCIlQFwi
IiwgcnVudGltZUlkZW50aWZpZXIpOwotICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwot
ICAgICAgICB9CisgICAgICAgIE5TU3RyaW5nICpwcm9kdWN0RGlyZWN0b3J5ID0gZ2V0UmVxdWly
ZWRTdHJpbmdBcmd1bWVudChAInByb2R1Y3REaXIiKTsKKyAgICAgICAgTlNBcnJheSAqZHVtcFRv
b2xBcmd1bWVudHMgPSBnZXREdW1wVG9vbEFyZ3VtZW50cygpOwogCi0gICAgICAgIE5TU3RyaW5n
ICpkZXZpY2VUeXBlSWRlbnRpZmllciA9IGdldFJlcXVpcmVkU3RyaW5nQXJndW1lbnQoQCJkZXZp
Y2VUeXBlIik7Ci0gICAgICAgIFNpbURldmljZVR5cGUgKmRldmljZVR5cGUgPSBbU2ltRGV2aWNl
VHlwZSBzdXBwb3J0ZWREZXZpY2VUeXBlc0J5SWRlbnRpZmllcl1bZGV2aWNlVHlwZUlkZW50aWZp
ZXJdOwotICAgICAgICBpZiAoIWRldmljZVR5cGUpIHsKLSAgICAgICAgICAgIE5TTG9nKEAiVGhl
cmUgaXMgbm8gc3VwcG9ydGVkIGRldmljZSB0eXBlIFwiJUBcIiIsIGRldmljZVR5cGVJZGVudGlm
aWVyKTsKKyAgICAgICAgU2ltRGV2aWNlICpkZXZpY2UgPSBbU2ltRGV2aWNlU2V0LmRlZmF1bHRT
ZXQuZGV2aWNlc0J5VURJRCBvYmplY3RGb3JLZXk6dWRpZF07CisgICAgICAgIGlmICghZGV2aWNl
KSB7CisgICAgICAgICAgICBOU0xvZyhAIkRldmljZSAlQCBjb3VsZG4ndCBiZSBmb3VuZCIsIHVk
aWQpOwogICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogICAgICAgICB9CiAKLSAgICAg
ICAgTlNTdHJpbmcgKnN1ZmZpeCA9IGdldFJlcXVpcmVkU3RyaW5nQXJndW1lbnQoQCJzdWZmaXgi
KTsKLSAgICAgICAgTlNTdHJpbmcgKnByb2R1Y3REaXIgPSBnZXRSZXF1aXJlZFN0cmluZ0FyZ3Vt
ZW50KEAicHJvZHVjdERpciIpOwotICAgICAgICBOU0FycmF5ICpkdW1wVG9vbEFyZ3VtZW50cyA9
IGdldER1bXBUb29sQXJndW1lbnRzKCk7Ci0KLSAgICAgICAgU2ltRGV2aWNlICpkZXZpY2UgPSBn
ZXRUZXN0aW5nU2ltRGV2aWNlKGRldmljZVR5cGUsIHJ1bnRpbWUsIHN1ZmZpeCk7Ci0KLSAgICAg
ICAgcmVsYXlDb250cm9sbGVyID0gW1tMVFJlbGF5Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhE
ZXZpY2U6ZGV2aWNlIHByb2R1Y3REaXI6cHJvZHVjdERpciBhcHBQYXRoOmFwcFBhdGggaWRlbnRp
ZmllclN1ZmZpeDpzdWZmaXggZHVtcFRvb2xBcmd1bWVudHM6ZHVtcFRvb2xBcmd1bWVudHNdOwor
ICAgICAgICByZWxheUNvbnRyb2xsZXIgPSBbW0xUUmVsYXlDb250cm9sbGVyIGFsbG9jXSBpbml0
V2l0aERldmljZTpkZXZpY2UgcHJvZHVjdERpcjpwcm9kdWN0RGlyZWN0b3J5IGFwcFBhdGg6YXBw
UGF0aCBkdW1wVG9vbEFyZ3VtZW50czpkdW1wVG9vbEFyZ3VtZW50c107CiAgICAgICAgIFtyZWxh
eUNvbnRyb2xsZXIgc3RhcnRdOwogCiAgICAgICAgIGF0ZXhpdChmaW5pc2gpOwpJbmRleDogVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CShyZXZpc2lvbiAyMDI3MTkpCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01OTQs
OSArNTk0LDcgQEAgY2xhc3MgSU9TU2ltdWxhdG9yRHJpdmVyKERyaXZlcik6CiAgICAgICAgIGR1
bXBfdG9vbF9hcmdzID0gY21kWzE6XQogICAgICAgICBwcm9kdWN0X2RpciA9IHNlbGYuX3BvcnQu
X2J1aWxkX3BhdGgoKQogICAgICAgICByZWxheV9hcmdzID0gWwotICAgICAgICAgICAgJy1ydW50
aW1lJywgc2VsZi5fcG9ydC5zaW11bGF0b3JfcnVudGltZS5pZGVudGlmaWVyLAotICAgICAgICAg
ICAgJy1kZXZpY2VUeXBlJywgc2VsZi5fcG9ydC5zaW11bGF0b3JfZGV2aWNlX3R5cGUuaWRlbnRp
ZmllciwKLSAgICAgICAgICAgICctc3VmZml4Jywgc3RyKHNlbGYuX3dvcmtlcl9udW1iZXIpLAor
ICAgICAgICAgICAgJy11ZGlkJywgc2VsZi5fcG9ydC50ZXN0aW5nX2RldmljZShzZWxmLl93b3Jr
ZXJfbnVtYmVyKS51ZGlkLAogICAgICAgICAgICAgJy1wcm9kdWN0RGlyJywgcHJvZHVjdF9kaXIs
CiAgICAgICAgICAgICAnLWFwcCcsIGR1bXBfdG9vbCwKICAgICAgICAgXQpJbmRleDogVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0JKHJldmlzaW9u
IDIwMjcxOSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9T
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMCArNDYsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6bm90aWZ5RG9uZSgpCiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6
ZSgpCiB7Ci0gICAgTlNTdHJpbmcgKmlkZW50aWZpZXIgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IGJ1bmRsZUlkZW50aWZpZXJdOwotICAgIGNvbnN0IGNoYXIgKnN0ZGluUGF0aCA9IFtbTlNTdHJp
bmcgc3RyaW5nV2l0aEZvcm1hdDpAIi90bXAvJUBfSU4iLCBpZGVudGlmaWVyXSBVVEY4U3RyaW5n
XTsKLSAgICBjb25zdCBjaGFyICpzdGRvdXRQYXRoID0gW1tOU1N0cmluZyBzdHJpbmdXaXRoRm9y
bWF0OkAiL3RtcC8lQF9PVVQiLCBpZGVudGlmaWVyXSBVVEY4U3RyaW5nXTsKLSAgICBjb25zdCBj
aGFyICpzdGRlcnJQYXRoID0gW1tOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiL3RtcC8lQF9F
UlJPUiIsIGlkZW50aWZpZXJdIFVURjhTdHJpbmddOworICAgIGNvbnN0IGNoYXIqIGlkZW50aWZp
ZXIgPSBnZXRlbnYoIklQQ19JREVOVElGSUVSIik7CisgICAgY29uc3QgY2hhciAqc3RkaW5QYXRo
ID0gW1tOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiL3RtcC8lc19JTiIsIGlkZW50aWZpZXJd
IFVURjhTdHJpbmddOworICAgIGNvbnN0IGNoYXIgKnN0ZG91dFBhdGggPSBbW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCIvdG1wLyVzX09VVCIsIGlkZW50aWZpZXJdIFVURjhTdHJpbmddOwor
ICAgIGNvbnN0IGNoYXIgKnN0ZGVyclBhdGggPSBbW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6
QCIvdG1wLyVzX0VSUk9SIiwgaWRlbnRpZmllcl0gVVRGOFN0cmluZ107CiAKICAgICBpbnQgaW5m
ZCA9IG9wZW4oc3RkaW5QYXRoLCBPX1JEV1IpOwogICAgIGR1cDIoaW5mZCwgU1RESU5fRklMRU5P
KTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1MubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5tbQkocmV2aXNpb24gMjAy
NzE5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5tbQkod29ya2luZyBj
b3B5KQpAQCAtNTIsMjQgKzUyLDcgQEAgLSAodm9pZClhcHBsaWNhdGlvbkRpZEZpbmlzaExhdW5j
aGluZzooTgogCiAtICh2b2lkKWFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOihVSUFwcGxp
Y2F0aW9uICopYXBwbGljYXRpb24KIHsKLSAgICAvKiBBcHBzIHdpbGwgZ2V0IHN1c3BlbmRlZCBv
ciBraWxsZWQgc29tZSB0aW1lIGFmdGVyIGVudGVyaW5nIHRoZSBiYWNrZ3JvdW5kIHN0YXRlIGJ1
dCB3ZSB3YW50IHRvIGJlIGFibGUgdG8gcnVuIG11bHRpcGxlIGNvcGllcyBvZiBEdW1wUmVuZGVy
VHJlZS4gUGVyaW9kaWNhbGx5IGNoZWNrIHRvIHNlZSBpZiBvdXIgcmVtYWluaW5nIGJhY2tncm91
bmQgdGltZSBkaXBzIGJlbG93IGEgdGhyZXNob2xkIGFuZCBjcmVhdGUgYSBuZXcgYmFja2dyb3Vu
ZCB0YXNrLgotICAgICovCi0gICAgdm9pZCAoXmV4cGlyYXRpb25IYW5kbGVyKSgpID0gXiB7Ci0g
ICAgICAgIFthcHBsaWNhdGlvbiBlbmRCYWNrZ3JvdW5kVGFzazpiYWNrZ3JvdW5kVGFza0lkZW50
aWZpZXJdOwotICAgICAgICBiYWNrZ3JvdW5kVGFza0lkZW50aWZpZXIgPSBVSUJhY2tncm91bmRU
YXNrSW52YWxpZDsKLSAgICB9OwotCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X2ds
b2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgXnsKLSAgICAg
ICAgTlNUaW1lSW50ZXJ2YWwgdGltZVJlbWFpbmluZzsKLSAgICAgICAgd2hpbGUgKHRydWUpIHsK
LSAgICAgICAgICAgIHRpbWVSZW1haW5pbmcgPSBbYXBwbGljYXRpb24gYmFja2dyb3VuZFRpbWVS
ZW1haW5pbmddOwotICAgICAgICAgICAgaWYgKHRpbWVSZW1haW5pbmcgPD0gMTAuMCB8fCBiYWNr
Z3JvdW5kVGFza0lkZW50aWZpZXIgPT0gVUlCYWNrZ3JvdW5kVGFza0ludmFsaWQpIHsKLSAgICAg
ICAgICAgICAgICBbYXBwbGljYXRpb24gZW5kQmFja2dyb3VuZFRhc2s6YmFja2dyb3VuZFRhc2tJ
ZGVudGlmaWVyXTsKLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kVGFza0lkZW50aWZpZXIgPSBb
YXBwbGljYXRpb24gYmVnaW5CYWNrZ3JvdW5kVGFza1dpdGhFeHBpcmF0aW9uSGFuZGxlcjpleHBp
cmF0aW9uSGFuZGxlcl07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzbGVlcCg1KTsKLSAg
ICAgICAgfQotICAgIH0pOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
IC0gKHZvaWQpX2hhbmRsZUhJREV2ZW50OihJT0hJREV2ZW50UmVmKWV2ZW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282555</attachid>
            <date>2016-07-01 09:15:02 -0700</date>
            <delta_ts>2016-07-01 10:09:05 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>LayoutTestRelaySimplification.txt</filename>
            <type>text/plain</type>
            <size>21921</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwMjczNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDUzIEBACisyMDE2LTA3LTAxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgorCisgICAgICAgIFNpbXBsaWZ5IExheW91dFRlc3RSZWxheQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MzUzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gVXNlIFVESUQgdG8gcGFzcyB0aGUgZGV2
aWNlIGZyb20gd2Via2l0cHkgdG8gTGF5b3V0VGVzdFJlbGF5LCBzZWFyY2hpbmcgZm9yIGl0Cisg
ICAgICAgIGJ5IG5hbWUgYW5kIHJ1bnRpbWUgbWFrZXMgbm8gc2Vuc2UuCisgICAgICAgIDIuIFJl
bW92ZWQgY29kZSB0byBjcmVhdGUgZGV2aWNlcywgd2Via2l0cHkgYWx3YXlzIGRvZXMgdGhpcyBp
biBhZHZhbmNlLgorICAgICAgICAzLiBEb24ndCBjcmVhdGUgY29waWVzIG9mIHRlc3RpbmcgYXBw
cyAtIHdlIGNhbiBpbnN0YWxsIHRoZSBzYW1lIG9uZSBpbnRvCisgICAgICAgIGVhY2ggc2ltdWxh
dG9yLCBub3cgdGhhdCB3ZSBkb24ndCBydW4gbXVsdGlwbGUgdGVzdGVyIHByb2Nlc3NlcyBpbiBh
IHNpbmdsZSBzaW11bGF0b3IuCisgICAgICAgIDQuIFBhc3MgaW5mb3JtYXRpb24gb24gaG93IHRv
IGZpbmQgSS9PIHBpcGVzIHZpYSBlbnZpcm9ubWVudCwgbm90IHZpYSBJbmZvLnBsaXN0LgorICAg
ICAgICA1LiBSZW1vdmVkIGNvZGUgdGhhdCBrZXB0IHRlc3RpbmcgYXBwcyBhbGl2ZSBpbiB0aGUg
YmFja2dyb3VuZC4KKyAgICAgICAgNi4gU2xpZ2h0bHkgdXBkYXRlZCBjb2Rpbmcgc3R5bGUgaW4g
ZnVuY3Rpb25zIHRoYXQgSSB0b3VjaGVkLgorCisgICAgICAgICogTGF5b3V0VGVzdFJlbGF5L0xh
eW91dFRlc3RSZWxheS9Db3JlU2ltdWxhdG9yU1BJLmg6CisgICAgICAgIFVwZGF0ZWQgZm9yIHdo
YXQgd2UgYWN1YWxseSB1c2UgYXQgdGhpcyBwb2ludC4KKworICAgICAgICAqIExheW91dFRlc3RS
ZWxheS9MYXlvdXRUZXN0UmVsYXkvTFRSZWxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBMYXlv
dXRUZXN0UmVsYXkvTGF5b3V0VGVzdFJlbGF5L0xUUmVsYXlDb250cm9sbGVyLm06CisgICAgICAg
ICgtW0xUUmVsYXlDb250cm9sbGVyIGluaXRXaXRoRGV2aWNlOnByb2R1Y3REaXI6YXBwUGF0aDpk
ZXZpY2VVRElEOmR1bXBUb29sQXJndW1lbnRzOl0pOgorICAgICAgICAoLVtMVFJlbGF5Q29udHJv
bGxlciBpcGNJZGVudGlmaWVyXSk6CisgICAgICAgICgtW0xUUmVsYXlDb250cm9sbGVyIHByb2Nl
c3NOYW1lXSk6CisgICAgICAgICgtW0xUUmVsYXlDb250cm9sbGVyIGRpZFJlY2VpdmVTdGRvdXRE
YXRhOl0pOgorICAgICAgICAoLVtMVFJlbGF5Q29udHJvbGxlciBkaWRDcmFzaFdpdGhNZXNzYWdl
Ol0pOgorICAgICAgICAoLVtMVFJlbGF5Q29udHJvbGxlciBpbnN0YWxsQXBwXSk6CisgICAgICAg
ICgtW0xUUmVsYXlDb250cm9sbGVyIF9lbnZpcm9ubWVudFZhcmlhYmxlc10pOgorICAgICAgICAo
LVtMVFJlbGF5Q29udHJvbGxlciBsYXVuY2hBcHBdKToKKyAgICAgICAgKC1bTFRSZWxheUNvbnRy
b2xsZXIgc3RhcnRdKToKKyAgICAgICAgKC1bTFRSZWxheUNvbnRyb2xsZXIgaW5pdFdpdGhEZXZp
Y2U6cHJvZHVjdERpcjphcHBQYXRoOmlkZW50aWZpZXJTdWZmaXg6ZHVtcFRvb2xBcmd1bWVudHM6
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW0xUUmVsYXlDb250cm9sbGVyIHVuaXF1ZUFwcFBhdGhd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bTFRSZWxheUNvbnRyb2xsZXIgdW5pcXVlQXBwVVJMXSk6
IERlbGV0ZWQuCisgICAgICAgICgtW0xUUmVsYXlDb250cm9sbGVyIHVuaXF1ZUFwcElkZW50aWZp
ZXJdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bTFRSZWxheUNvbnRyb2xsZXIgY3JlYXRlVW5pcXVl
QXBwXSk6IERlbGV0ZWQuCisgICAgICAgICogTGF5b3V0VGVzdFJlbGF5L0xheW91dFRlc3RSZWxh
eS9tYWluLm06CisgICAgICAgICh1c2FnZSk6CisgICAgICAgIChnZXRSZXF1aXJlZFN0cmluZ0Fy
Z3VtZW50KToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAoZ2V0VGVzdGluZ1NpbURldmljZSk6
IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weToKKyAg
ICAgICAgKElPU1NpbXVsYXRvckRyaXZlci5jbWRfbGluZSk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
aW9zL21haW5JT1MubW06CisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJBcHAgYXBwbGljYXRp
b25EaWRFbnRlckJhY2tncm91bmQ6XSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoZHVtcFJlbmRlclRyZWUpOgorICAgICAgICAoLVtE
dW1wUmVuZGVyVHJlZSBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZDpdKToKKwogMjAxNi0w
Ny0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubmZAZ21haWwuY29tPgogCiAgICAgICAgIEFkZCBh
IHJ1bnRpbWUgZmxhZyBmb3IgRE9NIGl0ZXJhdG9ycwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkocmV2aXNpb24gMjAyNzE5KQorKysgVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjU3
LDEwICsxMjU3LDEwIEBAIHZvaWQgd3JpdGVDcmFzaGVkTWVzc2FnZU9uRmF0YWxFcnJvcihpbnQK
IHZvaWQgZHVtcFJlbmRlclRyZWUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKIHsKICNp
ZiBQTEFURk9STShJT1MpCi0gICAgTlNTdHJpbmcgKmlkZW50aWZpZXIgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdOwotICAgIGNvbnN0IGNoYXIgKnN0ZGluUGF0aCA9
IFtbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIi90bXAvJUBfSU4iLCBpZGVudGlmaWVyXSBV
VEY4U3RyaW5nXTsKLSAgICBjb25zdCBjaGFyICpzdGRvdXRQYXRoID0gW1tOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiL3RtcC8lQF9PVVQiLCBpZGVudGlmaWVyXSBVVEY4U3RyaW5nXTsKLSAg
ICBjb25zdCBjaGFyICpzdGRlcnJQYXRoID0gW1tOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
L3RtcC8lQF9FUlJPUiIsIGlkZW50aWZpZXJdIFVURjhTdHJpbmddOworICAgIGNvbnN0IGNoYXIq
IGlkZW50aWZpZXIgPSBnZXRlbnYoIklQQ19JREVOVElGSUVSIik7CisgICAgY29uc3QgY2hhciAq
c3RkaW5QYXRoID0gW1tOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiL3RtcC8lc19JTiIsIGlk
ZW50aWZpZXJdIFVURjhTdHJpbmddOworICAgIGNvbnN0IGNoYXIgKnN0ZG91dFBhdGggPSBbW05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIvdG1wLyVzX09VVCIsIGlkZW50aWZpZXJdIFVURjhT
dHJpbmddOworICAgIGNvbnN0IGNoYXIgKnN0ZGVyclBhdGggPSBbW05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6QCIvdG1wLyVzX0VSUk9SIiwgaWRlbnRpZmllcl0gVVRGOFN0cmluZ107CiAKICAg
ICBpbnQgaW5mZCA9IG9wZW4oc3RkaW5QYXRoLCBPX1JEV1IpOwogICAgIGR1cDIoaW5mZCwgU1RE
SU5fRklMRU5PKTsKQEAgLTEzNTIsMjUgKzEzNTIsNyBAQCAtICh2b2lkKWFwcGxpY2F0aW9uRGlk
RmluaXNoTGF1bmNoaW5nOihOCiAKIC0gKHZvaWQpYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91
bmQ6KFVJQXBwbGljYXRpb24gKilhcHBsaWNhdGlvbgogewotICAgIC8qIEFwcHMgd2lsbCBnZXQg
c3VzcGVuZGVkIG9yIGtpbGxlZCBzb21lIHRpbWUgYWZ0ZXIgZW50ZXJpbmcgdGhlIGJhY2tncm91
bmQgc3RhdGUgYnV0IHdlIHdhbnQgdG8gYmUgYWJsZSB0byBydW4gbXVsdGlwbGUgY29waWVzIG9m
IER1bXBSZW5kZXJUcmVlLiBQZXJpb2RpY2FsbHkgY2hlY2sgdG8gc2VlIGlmIG91ciByZW1haW5p
bmcgYmFja2dyb3VuZCB0aW1lIGRpcHMgYmVsb3cgYSB0aHJlc2hvbGQgYW5kIGNyZWF0ZSBhIG5l
dyBiYWNrZ3JvdW5kIHRhc2suCi0gICAgKi8KLSAgICB2b2lkICheZXhwaXJhdGlvbkhhbmRsZXIp
KCkgPSBeIHsKLSAgICAgICAgW2FwcGxpY2F0aW9uIGVuZEJhY2tncm91bmRUYXNrOmJhY2tncm91
bmRUYXNrSWRlbnRpZmllcl07Ci0gICAgICAgIGJhY2tncm91bmRUYXNrSWRlbnRpZmllciA9IFVJ
QmFja2dyb3VuZFRhc2tJbnZhbGlkOwotICAgIH07Ci0KLSAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDAp
LCBeewotCi0gICAgICAgIE5TVGltZUludGVydmFsIHRpbWVSZW1haW5pbmc7Ci0gICAgICAgIHdo
aWxlICh0cnVlKSB7Ci0gICAgICAgICAgICB0aW1lUmVtYWluaW5nID0gW2FwcGxpY2F0aW9uIGJh
Y2tncm91bmRUaW1lUmVtYWluaW5nXTsKLSAgICAgICAgICAgIGlmICh0aW1lUmVtYWluaW5nIDw9
IDEwLjAgfHwgYmFja2dyb3VuZFRhc2tJZGVudGlmaWVyID09IFVJQmFja2dyb3VuZFRhc2tJbnZh
bGlkKSB7Ci0gICAgICAgICAgICAgICAgW2FwcGxpY2F0aW9uIGVuZEJhY2tncm91bmRUYXNrOmJh
Y2tncm91bmRUYXNrSWRlbnRpZmllcl07Ci0gICAgICAgICAgICAgICAgYmFja2dyb3VuZFRhc2tJ
ZGVudGlmaWVyID0gW2FwcGxpY2F0aW9uIGJlZ2luQmFja2dyb3VuZFRhc2tXaXRoRXhwaXJhdGlv
bkhhbmRsZXI6ZXhwaXJhdGlvbkhhbmRsZXJdOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
c2xlZXAoNSk7Ci0gICAgICAgIH0KLSAgICB9KTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCiAtICh2b2lkKV93ZWJUaHJlYWRFdmVudExvb3BIYXNSdW4KSW5kZXg6IFRv
b2xzL0xheW91dFRlc3RSZWxheS9MYXlvdXRUZXN0UmVsYXkvQ29yZVNpbXVsYXRvclNQSS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0xheW91dFRlc3RSZWxheS9MYXlvdXRUZXN0UmVsYXkvQ29yZVNp
bXVsYXRvclNQSS5oCShyZXZpc2lvbiAyMDI3MTkpCisrKyBUb29scy9MYXlvdXRUZXN0UmVsYXkv
TGF5b3V0VGVzdFJlbGF5L0NvcmVTaW11bGF0b3JTUEkuaAkod29ya2luZyBjb3B5KQpAQCAtMzUs
MzIgKzM1LDE0IEBACiAjZGVmaW5lIGtTaW1EZXZpY2VMYXVuY2hBcHBsaWNhdGlvbkFyZ3VtZW50
cyBAImFyZ3VtZW50cyIKICNkZWZpbmUga1NpbURldmljZUxhdW5jaEFwcGxpY2F0aW9uRW52aXJv
bm1lbnQgQCJlbnZpcm9ubWVudCIKIAotdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIFNpbURl
dmljZVN0YXRlKSB7Ci0gICAgU2ltRGV2aWNlU3RhdGVDcmVhdGluZyA9IDAsCi19OwotCi1AaW50
ZXJmYWNlIFNpbURldmljZVR5cGUgOiBOU09iamVjdAotKyAoTlNEaWN0aW9uYXJ5ICopc3VwcG9y
dGVkRGV2aWNlVHlwZXNCeUlkZW50aWZpZXI7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBO
U1N0cmluZyAqaWRlbnRpZmllcjsKLUBlbmQKLQotQGludGVyZmFjZSBTaW1SdW50aW1lIDogTlNP
YmplY3QKLSsgKE5TRGljdGlvbmFyeSAqKXN1cHBvcnRlZFJ1bnRpbWVzQnlJZGVudGlmaWVyOwot
QGVuZAotCiBAaW50ZXJmYWNlIFNpbURldmljZSA6IE5TT2JqZWN0CiAtIChCT09MKWluc3RhbGxB
cHBsaWNhdGlvbjooTlNVUkwgKilpbnN0YWxsVVJMIHdpdGhPcHRpb25zOihOU0RpY3Rpb25hcnkg
KilvcHRpb25zIGVycm9yOihOU0Vycm9yICoqKWVycm9yOwogLSAocGlkX3QpbGF1bmNoQXBwbGlj
YXRpb25XaXRoSUQ6KE5TU3RyaW5nICopYnVuZGxlSUQgb3B0aW9uczooTlNEaWN0aW9uYXJ5ICop
b3B0aW9ucyBlcnJvcjooTlNFcnJvciAqKillcnJvcjsKLUBwcm9wZXJ0eSAocmVhZG9ubHksIHJl
dGFpbikgU2ltRGV2aWNlVHlwZSAqZGV2aWNlVHlwZTsKLUBwcm9wZXJ0eSAocmVhZG9ubHksIHJl
dGFpbikgU2ltUnVudGltZSAqcnVudGltZTsKLUBwcm9wZXJ0eSAocmVhZG9ubHksIGFzc2lnbikg
U2ltRGV2aWNlU3RhdGUgc3RhdGU7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmlu
ZyAqbmFtZTsKIEBlbmQKIAogQGludGVyZmFjZSBTaW1EZXZpY2VTZXQgOiBOU09iamVjdAogKyAo
U2ltRGV2aWNlU2V0ICopZGVmYXVsdFNldDsKLS0gKFNpbURldmljZSAqKWNyZWF0ZURldmljZVdp
dGhUeXBlOihTaW1EZXZpY2VUeXBlICopZGV2aWNlVHlwZSBydW50aW1lOihTaW1SdW50aW1lICop
cnVudGltZSBuYW1lOihOU1N0cmluZyAqKW5hbWUgZXJyb3I6KE5TRXJyb3IgKiopZXJyb3I7Ci1A
cHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5ICpkZXZpY2VzOworQHByb3BlcnR5IChy
ZWFkb25seSwgY29weSkgTlNEaWN0aW9uYXJ5ICpkZXZpY2VzQnlVRElEOwogCiBAZW5kCiAKSW5k
ZXg6IFRvb2xzL0xheW91dFRlc3RSZWxheS9MYXlvdXRUZXN0UmVsYXkvTFRSZWxheUNvbnRyb2xs
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9MYXlvdXRUZXN0UmVsYXkvTGF5b3V0VGVzdFJlbGF5
L0xUUmVsYXlDb250cm9sbGVyLmgJKHJldmlzaW9uIDIwMjcxOSkKKysrIFRvb2xzL0xheW91dFRl
c3RSZWxheS9MYXlvdXRUZXN0UmVsYXkvTFRSZWxheUNvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNyArMzIsNyBAQAogQGNsYXNzIFNpbURldmljZTsKIAogQGludGVyZmFjZSBMVFJl
bGF5Q29udHJvbGxlciA6IE5TT2JqZWN0IDxMVFJlbGF5RGVsZWdhdGU+Ci0tIChpZClpbml0V2l0
aERldmljZTooU2ltRGV2aWNlICopZGV2aWNlIHByb2R1Y3REaXI6KE5TU3RyaW5nICopcHJvZHVj
dERpciBhcHBQYXRoOihOU1N0cmluZyAqKWFwcFBhdGggaWRlbnRpZmllclN1ZmZpeDooTlNTdHJp
bmcgKilzdWZmaXggZHVtcFRvb2xBcmd1bWVudHM6KE5TQXJyYXkgKilhcmd1bWVudHM7CistIChp
ZClpbml0V2l0aERldmljZTooU2ltRGV2aWNlICopZGV2aWNlIHByb2R1Y3REaXI6KE5TU3RyaW5n
ICopcHJvZHVjdERpciBhcHBQYXRoOihOU1N0cmluZyAqKWFwcFBhdGggZGV2aWNlVURJRDooTlNV
VUlEICopdWRpZCBkdW1wVG9vbEFyZ3VtZW50czooTlNBcnJheSAqKWFyZ3VtZW50czsKIC0gKHZv
aWQpc3RhcnQ7CiAtICh2b2lkKWZpbmlzaDsKIEBlbmQKSW5kZXg6IFRvb2xzL0xheW91dFRlc3RS
ZWxheS9MYXlvdXRUZXN0UmVsYXkvTFRSZWxheUNvbnRyb2xsZXIubQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9MYXlvdXRUZXN0UmVsYXkvTGF5b3V0VGVzdFJlbGF5L0xUUmVsYXlDb250cm9sbGVyLm0J
KHJldmlzaW9uIDIwMjcxOSkKKysrIFRvb2xzL0xheW91dFRlc3RSZWxheS9MYXlvdXRUZXN0UmVs
YXkvTFRSZWxheUNvbnRyb2xsZXIubQkod29ya2luZyBjb3B5KQpAQCAtMzMsMTIgKzMzLDEwIEBA
IEBpbnRlcmZhY2UgTFRSZWxheUNvbnRyb2xsZXIgKCkKIEBwcm9wZXJ0eSAocmVhZG9ubHksIHN0
cm9uZykgZGlzcGF0Y2hfc291cmNlX3Qgc3RhbmRhcmRJbnB1dERpc3BhdGNoU291cmNlOwogQHBy
b3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBOU0ZpbGVIYW5kbGUgKnN0YW5kYXJkT3V0cHV0Owog
QHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBOU0ZpbGVIYW5kbGUgKnN0YW5kYXJkRXJyb3I7
Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIE5TU3RyaW5nICp1bmlxdWVBcHBQYXRoOwot
QHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBOU1N0cmluZyAqdW5pcXVlQXBwSWRlbnRpZmll
cjsKLUBwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTlNVUkwgKnVuaXF1ZUFwcFVSTDsKLUBw
cm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTlNTdHJpbmcgKm9yaWdpbmFsQXBwSWRlbnRpZmll
cjsKLUBwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTlNTdHJpbmcgKm9yaWdpbmFsQXBwUGF0
aDsKLUBwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTlNTdHJpbmcgKmlkZW50aWZpZXJTdWZm
aXg7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIE5TU3RyaW5nICppcGNJZGVudGlmaWVy
OworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBOU1N0cmluZyAqYXBwQnVuZGxlSWRlbnRp
ZmllcjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgTlNTdHJpbmcgKmFwcFBhdGg7CitA
cHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIE5TVVVJRCAqZGV2aWNlVURJRDsKIEBwcm9wZXJ0
eSAocmVhZG9ubHksIHN0cm9uZykgTlNBcnJheSAqZHVtcFRvb2xBcmd1bWVudHM7CiBAcHJvcGVy
dHkgKHJlYWRvbmx5LCBzdHJvbmcpIE5TU3RyaW5nICpwcm9kdWN0RGlyOwogQHByb3BlcnR5IChz
dHJvbmcpIFNpbURldmljZSAqZGV2aWNlOwpAQCAtNDksMTQgKzQ3LDE0IEBAIEBpbnRlcmZhY2Ug
TFRSZWxheUNvbnRyb2xsZXIgKCkKIAogQGltcGxlbWVudGF0aW9uIExUUmVsYXlDb250cm9sbGVy
CiAKLS0gKGlkKWluaXRXaXRoRGV2aWNlOihTaW1EZXZpY2UgKilkZXZpY2UgcHJvZHVjdERpcjoo
TlNTdHJpbmcgKilwcm9kdWN0RGlyIGFwcFBhdGg6KE5TU3RyaW5nICopYXBwUGF0aCBpZGVudGlm
aWVyU3VmZml4OihOU1N0cmluZyAqKXN1ZmZpeCBkdW1wVG9vbEFyZ3VtZW50czooTlNBcnJheSAq
KWFyZ3VtZW50cworLSAoaWQpaW5pdFdpdGhEZXZpY2U6KFNpbURldmljZSAqKWRldmljZSBwcm9k
dWN0RGlyOihOU1N0cmluZyAqKXByb2R1Y3REaXIgYXBwUGF0aDooTlNTdHJpbmcgKilhcHBQYXRo
IGRldmljZVVESUQ6KE5TVVVJRCAqKXVkaWQgZHVtcFRvb2xBcmd1bWVudHM6KE5TQXJyYXkgKilh
cmd1bWVudHMKIHsKICAgICBpZiAoKHNlbGYgPSBbc3VwZXIgaW5pdF0pKSB7CiAgICAgICAgIF9k
ZXZpY2UgPSBkZXZpY2U7CiAgICAgICAgIF9wcm9kdWN0RGlyID0gcHJvZHVjdERpcjsKLSAgICAg
ICAgX29yaWdpbmFsQXBwUGF0aCA9IGFwcFBhdGg7Ci0gICAgICAgIF9vcmlnaW5hbEFwcElkZW50
aWZpZXIgPSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoQ29udGVudHNPZkZpbGU6W19vcmln
aW5hbEFwcFBhdGggc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5mby5wbGlzdCJd
XVsoTlNTdHJpbmcgKilrQ0ZCdW5kbGVJZGVudGlmaWVyS2V5XTsKLSAgICAgICAgX2lkZW50aWZp
ZXJTdWZmaXggPSBzdWZmaXg7CisgICAgICAgIF9hcHBQYXRoID0gYXBwUGF0aDsKKyAgICAgICAg
X2FwcEJ1bmRsZUlkZW50aWZpZXIgPSBbW05TQnVuZGxlIGJ1bmRsZVdpdGhQYXRoOmFwcFBhdGhd
IGJ1bmRsZUlkZW50aWZpZXJdOworICAgICAgICBfZGV2aWNlVURJRCA9IHVkaWQ7CiAgICAgICAg
IF9kdW1wVG9vbEFyZ3VtZW50cyA9IGFyZ3VtZW50czsKICAgICAgICAgX3N0YW5kYXJkSW5wdXRE
aXNwYXRjaFNvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZ
UEVfUkVBRCwgU1RESU5fRklMRU5PLCAwLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKICAg
ICAgICAgX3N0YW5kYXJkT3V0cHV0ID0gW05TRmlsZUhhbmRsZSBmaWxlSGFuZGxlV2l0aFN0YW5k
YXJkT3V0cHV0XTsKQEAgLTc4LDI5ICs3NiwyMCBAQCAtIChpZClpbml0V2l0aERldmljZTooU2lt
RGV2aWNlICopZGV2aWNlCiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogCi0gICAgICAgIF9y
ZWxheSA9IFtbTFRQaXBlUmVsYXkgYWxsb2NdIGluaXRXaXRoUHJlZml4OltAIi90bXAiIHN0cmlu
Z0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpbc2VsZiB1bmlxdWVBcHBJZGVudGlmaWVyXV1dOwor
ICAgICAgICBfcmVsYXkgPSBbW0xUUGlwZVJlbGF5IGFsbG9jXSBpbml0V2l0aFByZWZpeDpbQCIv
dG1wIiBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6c2VsZi5pcGNJZGVudGlmaWVyXV07
CiAgICAgICAgIFtfcmVsYXkgc2V0UmVsYXlEZWxlZ2F0ZTpzZWxmXTsKICAgICB9CiAgICAgcmV0
dXJuIHNlbGY7CiB9CiAKLS0gKE5TU3RyaW5nICopdW5pcXVlQXBwUGF0aAorLSAoTlNTdHJpbmcg
KilpcGNJZGVudGlmaWVyCiB7Ci0gICAgcmV0dXJuIFtbc2VsZiBvcmlnaW5hbEFwcFBhdGhdIHN0
cmluZ0J5UmVwbGFjaW5nT2NjdXJyZW5jZXNPZlN0cmluZzpAIi5hcHAiIHdpdGhTdHJpbmc6W05T
U3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIlQC5hcHAiLCBbc2VsZiBpZGVudGlmaWVyU3VmZml4
XV1dOworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVALSVAIiwgc2Vs
Zi5hcHBCdW5kbGVJZGVudGlmaWVyLCBzZWxmLmRldmljZVVESUQuVVVJRFN0cmluZ107CiB9CiAK
LS0gKE5TVVJMICopdW5pcXVlQXBwVVJMCi17Ci0gICAgcmV0dXJuIFtOU1VSTCBmaWxlVVJMV2l0
aFBhdGg6W3NlbGYgdW5pcXVlQXBwUGF0aF1dOwotfQotCi0tIChOU1N0cmluZyAqKXVuaXF1ZUFw
cElkZW50aWZpZXIKLXsKLSAgICByZXR1cm4gW1tzZWxmIG9yaWdpbmFsQXBwSWRlbnRpZmllcl0g
c3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6W3NlbGYgaWRlbnRpZmllclN1ZmZpeF1dOwotfQogLSAo
TlNTdHJpbmcgKilwcm9jZXNzTmFtZQogewotICAgIHJldHVybiBbW1tzZWxmIG9yaWdpbmFsQXBw
SWRlbnRpZmllcl0gY29tcG9uZW50c1NlcGFyYXRlZEJ5U3RyaW5nOkAiLiJdIGxhc3RPYmplY3Rd
OworICAgIHJldHVybiBbc2VsZi5hcHBCdW5kbGVJZGVudGlmaWVyIGNvbXBvbmVudHNTZXBhcmF0
ZWRCeVN0cmluZzpAIi4iXS5sYXN0T2JqZWN0OwogfQogCiAtICh2b2lkKWRpZFJlY2VpdmVTdGRv
dXREYXRhOihOU0RhdGEgKilkYXRhCkBAIC0xNTEsMzUgKzE0MCwxNiBAQCAtICh2b2lkKWRpZENy
YXNoV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopCiAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwogfQog
Ci0tICh2b2lkKWNyZWF0ZVVuaXF1ZUFwcAorLSAodm9pZClpbnN0YWxsQXBwCiB7Ci0gICAgTlNF
cnJvciAqZXJyb3I7Ci0gICAgTlNGaWxlTWFuYWdlciAqZmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl07Ci0gICAgW2ZpbGVNYW5hZ2VyIHJlbW92ZUl0ZW1BdFBhdGg6
W3NlbGYgdW5pcXVlQXBwUGF0aF0gZXJyb3I6JmVycm9yXTsKLSAgICBlcnJvciA9IG5pbDsKLQot
ICAgIFtmaWxlTWFuYWdlciBjb3B5SXRlbUF0UGF0aDpbc2VsZiBvcmlnaW5hbEFwcFBhdGhdIHRv
UGF0aDpbc2VsZiB1bmlxdWVBcHBQYXRoXSBlcnJvcjomZXJyb3JdOwotICAgIGlmIChlcnJvcikg
ewotICAgICAgICBOU0xvZyhAIkNvdWxkbid0IGNvcHkgJUAgdG8gJUA6ICVAIiwgW3NlbGYgb3Jp
Z2luYWxBcHBQYXRoXSwgW3NlbGYgdW5pcXVlQXBwUGF0aF0sIFtlcnJvciBkZXNjcmlwdGlvbl0p
OwotICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7Ci0gICAgfQotCi0gICAgTlNTdHJpbmcgKmlu
Zm9QbGlzdFBhdGggPSBbW3NlbGYgdW5pcXVlQXBwUGF0aF0gc3RyaW5nQnlBcHBlbmRpbmdQYXRo
Q29tcG9uZW50OkAiSW5mby5wbGlzdCJdOwotICAgIE5TTXV0YWJsZURpY3Rpb25hcnkgKnBsaXN0
ID0gW05TTXV0YWJsZURpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhDb250ZW50c09mRmlsZTppbmZv
UGxpc3RQYXRoXTsKLSAgICBbcGxpc3Qgc2V0VmFsdWU6W3NlbGYgdW5pcXVlQXBwSWRlbnRpZmll
cl0gZm9yS2V5OihOU1N0cmluZyAqKWtDRkJ1bmRsZUlkZW50aWZpZXJLZXldOwotICAgIEJPT0wg
d3JpdHRlbiA9IFtwbGlzdCB3cml0ZVRvRmlsZTppbmZvUGxpc3RQYXRoIGF0b21pY2FsbHk6WUVT
XTsKLSAgICBpZiAoIXdyaXR0ZW4pIHsKLSAgICAgICAgTlNMb2coQCJDb3VsZG4ndCB3cml0ZSB1
bmlxdWUgYXBwIHBsaXN0IGF0ICVAIiwgaW5mb1BsaXN0UGF0aCk7Ci0gICAgICAgIGV4aXQoRVhJ
VF9GQUlMVVJFKTsKLSAgICB9Ci0KICAgICBOU0RpY3Rpb25hcnkgKmluc3RhbGxPcHRpb25zID0g
QHsKLSAgICAgICAgKE5TU3RyaW5nICopa0NGQnVuZGxlSWRlbnRpZmllcktleTogW3NlbGYgdW5p
cXVlQXBwSWRlbnRpZmllcl0sCisgICAgICAgIChOU1N0cmluZyAqKWtDRkJ1bmRsZUlkZW50aWZp
ZXJLZXk6IHNlbGYuYXBwQnVuZGxlSWRlbnRpZmllciwKICAgICB9OwogCi0gICAgW1tzZWxmIGRl
dmljZV0gaW5zdGFsbEFwcGxpY2F0aW9uOltzZWxmIHVuaXF1ZUFwcFVSTF0gd2l0aE9wdGlvbnM6
aW5zdGFsbE9wdGlvbnMgZXJyb3I6JmVycm9yXTsKKyAgICBOU0Vycm9yICplcnJvciA9IG5pbDsK
KyAgICBbc2VsZi5kZXZpY2UgaW5zdGFsbEFwcGxpY2F0aW9uOltOU1VSTCBmaWxlVVJMV2l0aFBh
dGg6c2VsZi5hcHBQYXRoXSB3aXRoT3B0aW9uczppbnN0YWxsT3B0aW9ucyBlcnJvcjomZXJyb3Jd
OwogICAgIGlmIChlcnJvcikgewotICAgICAgICBOU0xvZyhAIkNvdWxkbid0IGluc3RhbGwgJUA6
ICVAIiwgW1tzZWxmIHVuaXF1ZUFwcFVSTF0gcGF0aF0sIFtlcnJvciBkZXNjcmlwdGlvbl0pOwor
ICAgICAgICBOU0xvZyhAIkNvdWxkbid0IGluc3RhbGwgJUA6ICVAIiwgc2VsZi5hcHBQYXRoLCBl
cnJvci5kZXNjcmlwdGlvbik7CiAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgICB9CiB9
CkBAIC0yMDcsNiArMTc3LDcgQEAgLSAoTlNEaWN0aW9uYXJ5ICopX2Vudmlyb25tZW50VmFyaWFi
bGVzCiAgICAgICAgIE5TU3RyaW5nICpwcm9kdWN0RGlyZWN0b3J5ID0gW3NlbGYgcHJvZHVjdERp
cl07CiAKICAgICAgICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqZGljdGlvbmFyeSA9IFtAeworICAg
ICAgICAgICAgQCJJUENfSURFTlRJRklFUiI6IHNlbGYuaXBjSWRlbnRpZmllciwKICAgICAgICAg
ICAgIEAiRFlMRF9GUkFNRVdPUktfUEFUSCI6IHByb2R1Y3REaXJlY3RvcnksCiAgICAgICAgICAg
ICBAIl9fWFBDX0RZTERfRlJBTUVXT1JLX1BBVEgiOiBwcm9kdWN0RGlyZWN0b3J5LAogICAgICAg
ICAgICAgQCJEWUxEX0xJQlJBUllfUEFUSCI6IHByb2R1Y3REaXJlY3RvcnksCkBAIC0yMzYsMTAg
KzIwNywxMCBAQCAtICh2b2lkKWxhdW5jaEFwcAogICAgIH07CiAKICAgICBOU0Vycm9yICplcnJv
cjsKLSAgICBwaWRfdCBwaWQgPSBbW3NlbGYgZGV2aWNlXSBsYXVuY2hBcHBsaWNhdGlvbldpdGhJ
RDpbc2VsZiB1bmlxdWVBcHBJZGVudGlmaWVyXSBvcHRpb25zOmxhdW5jaE9wdGlvbnMgZXJyb3I6
JmVycm9yXTsKKyAgICBwaWRfdCBwaWQgPSBbc2VsZi5kZXZpY2UgbGF1bmNoQXBwbGljYXRpb25X
aXRoSUQ6c2VsZi5hcHBCdW5kbGVJZGVudGlmaWVyIG9wdGlvbnM6bGF1bmNoT3B0aW9ucyBlcnJv
cjomZXJyb3JdOwogCiAgICAgaWYgKHBpZCA8IDApIHsKLSAgICAgICAgTlNMb2coQCJDb3VsZG4n
dCBsYXVuY2ggdW5pcXVlIGFwcCBpbnN0YW5jZSAlQDogJUAiLCBbc2VsZiB1bmlxdWVBcHBJZGVu
dGlmaWVyXSwgW2Vycm9yIGRlc2NyaXB0aW9uXSk7CisgICAgICAgIE5TTG9nKEAiQ291bGRuJ3Qg
bGF1bmNoICVAOiAlQCIsIHNlbGYuYXBwQnVuZGxlSWRlbnRpZmllciwgZXJyb3IuZGVzY3JpcHRp
b24pOwogICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CiAgICAgfQogCkBAIC0yNTcsNyArMjI4
LDcgQEAgLSAodm9pZClsYXVuY2hBcHAKIAogLSAodm9pZClzdGFydAogewotICAgIFtzZWxmIGNy
ZWF0ZVVuaXF1ZUFwcF07CisgICAgW3NlbGYgaW5zdGFsbEFwcF07CiAgICAgW1tzZWxmIHJlbGF5
XSBzZXR1cF07CiAgICAgW3NlbGYgbGF1bmNoQXBwXTsKICAgICBbW3NlbGYgcmVsYXldIGNvbm5l
Y3RdOwpJbmRleDogVG9vbHMvTGF5b3V0VGVzdFJlbGF5L0xheW91dFRlc3RSZWxheS9tYWluLm0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvTGF5b3V0VGVzdFJlbGF5L0xheW91dFRlc3RSZWxheS9tYWlu
Lm0JKHJldmlzaW9uIDIwMjcxOSkKKysrIFRvb2xzL0xheW91dFRlc3RSZWxheS9MYXlvdXRUZXN0
UmVsYXkvbWFpbi5tCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw0MiArMzIsMTUgQEAgc3RhdGljIExU
UmVsYXlDb250cm9sbGVyICpyZWxheUNvbnRyb2xsZQogdm9pZCB1c2FnZSgpCiB7CiAgICAgTlNT
dHJpbmcgKmhlbHBUZXh0ID0gQCJMYXlvdXRUZXN0UmVsYXk6IHJ1biBhIGR1bXAgdG9vbCBpbiB0
aGUgc2ltdWxhdG9yLiBOb3QgZm9yIGRpcmVjdCBjb25zdW1wdGlvbi5cbiIKLSAgICAiVXNhZ2U6
IExheW91dFRlc3RSZWxheSBbLWhdIFtvcHRpb25zXSAtLSBbZHVtcCB0b29sIGFyZ3VtZW50c11c
biIKLSAgICAiUmVxdWlyZWQgb3B0aW9uczpcbiIKLSAgICAiICAgIC1hcHAgPGFwcF9wYXRoPiAg
ICAgICAgICBQYXRoIHRvIHRoZSBidWlsdCBpT1MgLmFwcCBidW5kbGUgZGlyZWN0b3J5LlxuIgot
ICAgICIgICAgLXJ1bnRpbWUgPGlkZW50aWZpZXI+ICAgIGlPUyBTaW11bGF0b3IgUnVudGltZSBp
ZGVudGlmaWVyIChzZWUgYHhjcnVuIC1zZGsgaXBob25lc2ltdWxhdG9yIHNpbWN0bGApXG4iCi0g
ICAgIiAgICAtZGV2aWNlVHlwZSA8aWRlbnRpZmllcj4gaU9TIFNpbXVsYXRvciBkZXZpY2UgaWRl
bnRpZmllciAoc2VlIHNpbWN0bCkuXG4iCi0gICAgIiAgICAtc3VmZml4IDx0ZXh0PiAgICAgICAg
ICAgVXNlZCB0byBjcmVhdGUgbXVsdGlwbGUgdW5pcXVlIGluc3RhbmNlcyB3aGVuIGluc3RhbGxp
bmcgdG8gdGhlIHNpbXVsYXRvci5cbiIKLSAgICAiICAgIC1wcm9kdWN0RGlyIDxkaXI+ICAgICAg
ICAvcGF0aC90by9XZWJLaXRCdWlsZC97Y29uZmlndXJhdGlvbn0te3Nob3J0IHBsYXRmb3JtfS5c
biI7CisgICAgICAgICJVc2FnZTogTGF5b3V0VGVzdFJlbGF5IFstaF0gW29wdGlvbnNdIC0tIFtk
dW1wIHRvb2wgYXJndW1lbnRzXVxuIgorICAgICAgICAiUmVxdWlyZWQgb3B0aW9uczpcbiIKKyAg
ICAgICAgIiAgICAtdWRpZCA8aWRlbnRpZmllcj4gICAgICAgU2ltdWxhdG9yIGRldmljZSBpZGVu
dGlmaWVyXG4iCisgICAgICAgICIgICAgLWFwcCA8YXBwX3BhdGg+ICAgICAgICAgIFBhdGggdG8g
dGhlIGJ1aWx0IGlPUyAuYXBwIGJ1bmRsZSBkaXJlY3RvcnkuXG4iCisgICAgICAgICIgICAgLXBy
b2R1Y3REaXIgPGRpcj4gICAgICAgIC9wYXRoL3RvL1dlYktpdEJ1aWxkL3tjb25maWd1cmF0aW9u
fS17c2hvcnQgcGxhdGZvcm19LlxuIjsKIAogICAgIGZwcmludGYoc3RkZXJyLCAiJXNcbiIsIFto
ZWxwVGV4dCBVVEY4U3RyaW5nXSk7CiB9CiAKLVNpbURldmljZSAqZ2V0VGVzdGluZ1NpbURldmlj
ZShTaW1EZXZpY2VUeXBlICpkZXZpY2VUeXBlLCBTaW1SdW50aW1lICpydW50aW1lLCBOU1N0cmlu
ZyAqc3VmZml4KQotewotICAgIE5TU3RyaW5nICpkZXZpY2VOYW1lID0gW1tbW2RldmljZVR5cGUg
aWRlbnRpZmllcl0gY29tcG9uZW50c1NlcGFyYXRlZEJ5U3RyaW5nOkAiLiJdIGxhc3RPYmplY3Rd
IHN0cmluZ0J5UmVwbGFjaW5nT2NjdXJyZW5jZXNPZlN0cmluZzpAIi0iIHdpdGhTdHJpbmc6QCIg
Il07Ci0gICAgZGV2aWNlTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAlQCVA
IiwgZGV2aWNlTmFtZSwgQCIgV2ViS2l0IFRlc3RlciIsIHN1ZmZpeF07Ci0KLSAgICBmb3IgKFNp
bURldmljZSAqZGV2aWNlIGluIFtbU2ltRGV2aWNlU2V0IGRlZmF1bHRTZXRdIGRldmljZXNdKSB7
Ci0gICAgICAgIGlmIChbW2RldmljZSBuYW1lXSBpc0VxdWFsVG9TdHJpbmc6ZGV2aWNlTmFtZV0g
JiYgW1tkZXZpY2UgZGV2aWNlVHlwZV0gaXNFcXVhbFRvOmRldmljZVR5cGVdICYmIFtbZGV2aWNl
IHJ1bnRpbWVdIGlzRXF1YWxUbzpydW50aW1lXSkKLSAgICAgICAgICAgIHJldHVybiBkZXZpY2U7
Ci0gICAgfQotCi0gICAgTlNFcnJvciAqZXJyb3I7Ci0gICAgU2ltRGV2aWNlICpkZXZpY2UgPSBb
W1NpbURldmljZVNldCBkZWZhdWx0U2V0XSBjcmVhdGVEZXZpY2VXaXRoVHlwZTpkZXZpY2VUeXBl
IHJ1bnRpbWU6cnVudGltZSBuYW1lOmRldmljZU5hbWUgZXJyb3I6JmVycm9yXTsKLQotICAgIGlm
IChlcnJvcikgewotICAgICAgICBOU0xvZyhAIkNvdWxkbid0IGNyZWF0ZSBkZXZpY2U6ICVAIiwg
W2Vycm9yIGRlc2NyaXB0aW9uXSk7Ci0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgfQotCi0gICAg
d2hpbGUgKFtkZXZpY2Ugc3RhdGVdID09IFNpbURldmljZVN0YXRlQ3JlYXRpbmcpCi0gICAgICAg
IHNsZWVwKDEpOwotCi0gICAgcmV0dXJuIGRldmljZTsKLX0KLQotCiBOU1N0cmluZyAqZ2V0UmVx
dWlyZWRTdHJpbmdBcmd1bWVudChOU1N0cmluZyAqcGFyYW1ldGVyKQogewogICAgIE5TVXNlckRl
ZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c107
CkBAIC0xMTcsMjggKzkwLDE5IEBAIGludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICogYXJn
dltdKQogICAgICAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQorCisgICAgICAgIE5TVVVJRCAqdWRpZCA9IFtbTlNVVUlEIGFsbG9jXSBpbml0
V2l0aFVVSURTdHJpbmc6Z2V0UmVxdWlyZWRTdHJpbmdBcmd1bWVudChAInVkaWQiKV07CiAgICAg
ICAgIE5TU3RyaW5nICphcHBQYXRoID0gZ2V0UmVxdWlyZWRTdHJpbmdBcmd1bWVudChAImFwcCIp
OwotICAgICAgICBOU1N0cmluZyAqcnVudGltZUlkZW50aWZpZXIgPSBnZXRSZXF1aXJlZFN0cmlu
Z0FyZ3VtZW50KEAicnVudGltZSIpOwotICAgICAgICBTaW1SdW50aW1lICpydW50aW1lID0gW1Np
bVJ1bnRpbWUgc3VwcG9ydGVkUnVudGltZXNCeUlkZW50aWZpZXJdW3J1bnRpbWVJZGVudGlmaWVy
XTsKLSAgICAgICAgaWYgKCFydW50aW1lKSB7Ci0gICAgICAgICAgICBOU0xvZyhAIlRoZXJlIGlz
IG5vIHN1cHBvcnRlZCBydW50aW1lIFwiJUBcIiIsIHJ1bnRpbWVJZGVudGlmaWVyKTsKLSAgICAg
ICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKLSAgICAgICAgfQorICAgICAgICBOU1N0cmluZyAq
cHJvZHVjdERpcmVjdG9yeSA9IGdldFJlcXVpcmVkU3RyaW5nQXJndW1lbnQoQCJwcm9kdWN0RGly
Iik7CisgICAgICAgIE5TQXJyYXkgKmR1bXBUb29sQXJndW1lbnRzID0gZ2V0RHVtcFRvb2xBcmd1
bWVudHMoKTsKIAotICAgICAgICBOU1N0cmluZyAqZGV2aWNlVHlwZUlkZW50aWZpZXIgPSBnZXRS
ZXF1aXJlZFN0cmluZ0FyZ3VtZW50KEAiZGV2aWNlVHlwZSIpOwotICAgICAgICBTaW1EZXZpY2VU
eXBlICpkZXZpY2VUeXBlID0gW1NpbURldmljZVR5cGUgc3VwcG9ydGVkRGV2aWNlVHlwZXNCeUlk
ZW50aWZpZXJdW2RldmljZVR5cGVJZGVudGlmaWVyXTsKLSAgICAgICAgaWYgKCFkZXZpY2VUeXBl
KSB7Ci0gICAgICAgICAgICBOU0xvZyhAIlRoZXJlIGlzIG5vIHN1cHBvcnRlZCBkZXZpY2UgdHlw
ZSBcIiVAXCIiLCBkZXZpY2VUeXBlSWRlbnRpZmllcik7CisgICAgICAgIFNpbURldmljZSAqZGV2
aWNlID0gW1NpbURldmljZVNldC5kZWZhdWx0U2V0LmRldmljZXNCeVVESUQgb2JqZWN0Rm9yS2V5
OnVkaWRdOworICAgICAgICBpZiAoIWRldmljZSkgeworICAgICAgICAgICAgTlNMb2coQCJEZXZp
Y2UgJUAgY291bGRuJ3QgYmUgZm91bmQiLCB1ZGlkKTsKICAgICAgICAgICAgIGV4aXQoRVhJVF9G
QUlMVVJFKTsKICAgICAgICAgfQogCi0gICAgICAgIE5TU3RyaW5nICpzdWZmaXggPSBnZXRSZXF1
aXJlZFN0cmluZ0FyZ3VtZW50KEAic3VmZml4Iik7Ci0gICAgICAgIE5TU3RyaW5nICpwcm9kdWN0
RGlyID0gZ2V0UmVxdWlyZWRTdHJpbmdBcmd1bWVudChAInByb2R1Y3REaXIiKTsKLSAgICAgICAg
TlNBcnJheSAqZHVtcFRvb2xBcmd1bWVudHMgPSBnZXREdW1wVG9vbEFyZ3VtZW50cygpOwotCi0g
ICAgICAgIFNpbURldmljZSAqZGV2aWNlID0gZ2V0VGVzdGluZ1NpbURldmljZShkZXZpY2VUeXBl
LCBydW50aW1lLCBzdWZmaXgpOwotCi0gICAgICAgIHJlbGF5Q29udHJvbGxlciA9IFtbTFRSZWxh
eUNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoRGV2aWNlOmRldmljZSBwcm9kdWN0RGlyOnByb2R1
Y3REaXIgYXBwUGF0aDphcHBQYXRoIGlkZW50aWZpZXJTdWZmaXg6c3VmZml4IGR1bXBUb29sQXJn
dW1lbnRzOmR1bXBUb29sQXJndW1lbnRzXTsKKyAgICAgICAgcmVsYXlDb250cm9sbGVyID0gW1tM
VFJlbGF5Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhEZXZpY2U6ZGV2aWNlIHByb2R1Y3REaXI6
cHJvZHVjdERpcmVjdG9yeSBhcHBQYXRoOmFwcFBhdGggZGV2aWNlVURJRDp1ZGlkIGR1bXBUb29s
QXJndW1lbnRzOmR1bXBUb29sQXJndW1lbnRzXTsKICAgICAgICAgW3JlbGF5Q29udHJvbGxlciBz
dGFydF07CiAKICAgICAgICAgYXRleGl0KGZpbmlzaCk7CkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvZHJpdmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9kcml2ZXIucHkJKHJldmlzaW9uIDIwMjcxOSkKKysrIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9kcml2ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTU5NCw5ICs1OTQsNyBAQCBj
bGFzcyBJT1NTaW11bGF0b3JEcml2ZXIoRHJpdmVyKToKICAgICAgICAgZHVtcF90b29sX2FyZ3Mg
PSBjbWRbMTpdCiAgICAgICAgIHByb2R1Y3RfZGlyID0gc2VsZi5fcG9ydC5fYnVpbGRfcGF0aCgp
CiAgICAgICAgIHJlbGF5X2FyZ3MgPSBbCi0gICAgICAgICAgICAnLXJ1bnRpbWUnLCBzZWxmLl9w
b3J0LnNpbXVsYXRvcl9ydW50aW1lLmlkZW50aWZpZXIsCi0gICAgICAgICAgICAnLWRldmljZVR5
cGUnLCBzZWxmLl9wb3J0LnNpbXVsYXRvcl9kZXZpY2VfdHlwZS5pZGVudGlmaWVyLAotICAgICAg
ICAgICAgJy1zdWZmaXgnLCBzdHIoc2VsZi5fd29ya2VyX251bWJlciksCisgICAgICAgICAgICAn
LXVkaWQnLCBzZWxmLl9wb3J0LnRlc3RpbmdfZGV2aWNlKHNlbGYuX3dvcmtlcl9udW1iZXIpLnVk
aWQsCiAgICAgICAgICAgICAnLXByb2R1Y3REaXInLCBwcm9kdWN0X2RpciwKICAgICAgICAgICAg
ICctYXBwJywgZHVtcF90b29sLAogICAgICAgICBdCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQkocmV2aXNpb24gMjAyNzE5KQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQ2LDEwICs0NiwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpub3RpZnlEb25l
KCkKIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKLSAgICBO
U1N0cmluZyAqaWRlbnRpZmllciA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRp
Zmllcl07Ci0gICAgY29uc3QgY2hhciAqc3RkaW5QYXRoID0gW1tOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiL3RtcC8lQF9JTiIsIGlkZW50aWZpZXJdIFVURjhTdHJpbmddOwotICAgIGNvbnN0
IGNoYXIgKnN0ZG91dFBhdGggPSBbW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIvdG1wLyVA
X09VVCIsIGlkZW50aWZpZXJdIFVURjhTdHJpbmddOwotICAgIGNvbnN0IGNoYXIgKnN0ZGVyclBh
dGggPSBbW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIvdG1wLyVAX0VSUk9SIiwgaWRlbnRp
Zmllcl0gVVRGOFN0cmluZ107CisgICAgY29uc3QgY2hhciogaWRlbnRpZmllciA9IGdldGVudigi
SVBDX0lERU5USUZJRVIiKTsKKyAgICBjb25zdCBjaGFyICpzdGRpblBhdGggPSBbW05TU3RyaW5n
IHN0cmluZ1dpdGhGb3JtYXQ6QCIvdG1wLyVzX0lOIiwgaWRlbnRpZmllcl0gVVRGOFN0cmluZ107
CisgICAgY29uc3QgY2hhciAqc3Rkb3V0UGF0aCA9IFtbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIi90bXAvJXNfT1VUIiwgaWRlbnRpZmllcl0gVVRGOFN0cmluZ107CisgICAgY29uc3QgY2hh
ciAqc3RkZXJyUGF0aCA9IFtbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIi90bXAvJXNfRVJS
T1IiLCBpZGVudGlmaWVyXSBVVEY4U3RyaW5nXTsKIAogICAgIGludCBpbmZkID0gb3BlbihzdGRp
blBhdGgsIE9fUkRXUik7CiAgICAgZHVwMihpbmZkLCBTVERJTl9GSUxFTk8pOwpJbmRleDogVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL2lvcy9tYWluSU9TLm1tCShyZXZpc2lvbiAyMDI3MTkpCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL2lvcy9tYWluSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Miwy
NCArNTIsNyBAQCAtICh2b2lkKWFwcGxpY2F0aW9uRGlkRmluaXNoTGF1bmNoaW5nOihOCiAKIC0g
KHZvaWQpYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQ6KFVJQXBwbGljYXRpb24gKilhcHBs
aWNhdGlvbgogewotICAgIC8qIEFwcHMgd2lsbCBnZXQgc3VzcGVuZGVkIG9yIGtpbGxlZCBzb21l
IHRpbWUgYWZ0ZXIgZW50ZXJpbmcgdGhlIGJhY2tncm91bmQgc3RhdGUgYnV0IHdlIHdhbnQgdG8g
YmUgYWJsZSB0byBydW4gbXVsdGlwbGUgY29waWVzIG9mIER1bXBSZW5kZXJUcmVlLiBQZXJpb2Rp
Y2FsbHkgY2hlY2sgdG8gc2VlIGlmIG91ciByZW1haW5pbmcgYmFja2dyb3VuZCB0aW1lIGRpcHMg
YmVsb3cgYSB0aHJlc2hvbGQgYW5kIGNyZWF0ZSBhIG5ldyBiYWNrZ3JvdW5kIHRhc2suCi0gICAg
Ki8KLSAgICB2b2lkICheZXhwaXJhdGlvbkhhbmRsZXIpKCkgPSBeIHsKLSAgICAgICAgW2FwcGxp
Y2F0aW9uIGVuZEJhY2tncm91bmRUYXNrOmJhY2tncm91bmRUYXNrSWRlbnRpZmllcl07Ci0gICAg
ICAgIGJhY2tncm91bmRUYXNrSWRlbnRpZmllciA9IFVJQmFja2dyb3VuZFRhc2tJbnZhbGlkOwot
ICAgIH07Ci0KLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJ
U1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBeewotICAgICAgICBOU1RpbWVJbnRl
cnZhbCB0aW1lUmVtYWluaW5nOwotICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAg
dGltZVJlbWFpbmluZyA9IFthcHBsaWNhdGlvbiBiYWNrZ3JvdW5kVGltZVJlbWFpbmluZ107Ci0g
ICAgICAgICAgICBpZiAodGltZVJlbWFpbmluZyA8PSAxMC4wIHx8IGJhY2tncm91bmRUYXNrSWRl
bnRpZmllciA9PSBVSUJhY2tncm91bmRUYXNrSW52YWxpZCkgewotICAgICAgICAgICAgICAgIFth
cHBsaWNhdGlvbiBlbmRCYWNrZ3JvdW5kVGFzazpiYWNrZ3JvdW5kVGFza0lkZW50aWZpZXJdOwot
ICAgICAgICAgICAgICAgIGJhY2tncm91bmRUYXNrSWRlbnRpZmllciA9IFthcHBsaWNhdGlvbiBi
ZWdpbkJhY2tncm91bmRUYXNrV2l0aEV4cGlyYXRpb25IYW5kbGVyOmV4cGlyYXRpb25IYW5kbGVy
XTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNsZWVwKDUpOwotICAgICAgICB9Ci0gICAg
fSk7CisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogLSAodm9pZClfaGFu
ZGxlSElERXZlbnQ6KElPSElERXZlbnRSZWYpZXZlbnQK
</data>

          </attachment>
      

    </bug>

</bugzilla>