<?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>213140</bug_id>
          
          <creation_ts>2020-06-12 11:17:07 -0700</creation_ts>
          <short_desc>compare-results should have an option to print a breakdown and to save the breakdown as csv file</short_desc>
          <delta_ts>2020-06-13 13:21:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1662052</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-12 11:17:07 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662277</commentid>
    <comment_count>1</comment_count>
      <attachid>401814</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-12 18:06:15 -0700</bug_when>
    <thetext>Created attachment 401814
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662288</commentid>
    <comment_count>2</comment_count>
      <attachid>401814</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-06-12 18:46:15 -0700</bug_when>
    <thetext>Comment on attachment 401814
patch

Code seems reasonable to me. I&apos;ll need to reread the maths though... &gt;.&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662297</commentid>
    <comment_count>3</comment_count>
      <attachid>401819</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-12 19:07:30 -0700</bug_when>
    <thetext>Created attachment 401819
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662408</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-13 13:20:37 -0700</bug_when>
    <thetext>Committed r263005: &lt;https://trac.webkit.org/changeset/263005&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401819.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662409</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-13 13:21:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/64332043&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401814</attachid>
            <date>2020-06-12 18:06:15 -0700</date>
            <delta_ts>2020-06-12 19:07:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>13830</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2Mjk5MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDU5IEBACisyMDIwLTA2LTEyICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgor
CisgICAgICAgIGNvbXBhcmUtcmVzdWx0cyBzaG91bGQgaGF2ZSBhbiBvcHRpb24gdG8gcHJpbnQg
YSBicmVha2Rvd24gYW5kIHRvIHNhdmUgdGhlIGJyZWFrZG93biBhcyBjc3YgZmlsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTQwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwg
Y29tcGFyZS1yZXN1bHRzIGhhcyBhIG5ldyAtLWJyZWFrZG93biBmZWF0dXJlIHdoaWNoIHdpbGwK
KyAgICAgICAgYnJlYWsgZG93biB0aGUgcmVzdWx0cyBmb3IgLWEgYW5kIC1iIHBlciBzdWJ0ZXN0
LiBJdCB3aWxsIGFsc28gc2hvdyB5b3UKKyAgICAgICAgcCB2YWx1ZXMgd2l0aCBhIHNpZ25pZmlj
YW5jZSB0aHJlc2hvbGQgZGV0ZXJtaW5lZCB1c2luZyB0aGUgQm9uZmVycm9uaQorICAgICAgICBj
b3JyZWN0aW9uIGZvciB0ZXN0aW5nIG11bHRpcGxlIGh5cG90aGVzZXM6CisgICAgICAgIGh0dHBz
Oi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0JvbmZlcnJvbmlfY29ycmVjdGlvbgorICAgICAgICAK
KyAgICAgICAgQW5kIHRoZXJlIGlzIGFsc28gbm93IGEgLS1jc3Ygb3B0aW9uIHRvIGdlbmVyYXRl
IGEgY3N2IGZpbGUgY29udGFpbmluZworICAgICAgICB0aGUgc2FtZSBwZXIgc3VidGVzdCBicmVh
a2Rvd24uCisgICAgICAgIAorICAgICAgICAtLWJyZWFrZG93biB3aWxsIHByaW50IG91dCByZXN1
bHRzIGxpa2U6CisgICAgICAgIAorICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgfCAgICAgICAgICAgICAgIHN1YnRlc3Qg
ICAgICAgICAgICAgICAgfCAgICAgbXMgICAgICAgfCAgICAgbXMgICAgICAgfCAgYiAvIGEgICB8
IHBWYWx1ZSwgYWxwaGEgPSAwLjAwMzEyNSB8CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICB8IEVsbS1Ub2RvTVZDICAg
ICAgICAgICAgICAgICAgICAgICAgICB8NjE2LjYyNTAwMCAgICB8NTgzLjYyNTAwMCAgICB8MC45
NDY0ODMgIHwgMC4wNjUwMDIgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgfCBWdWVKUy1Ub2Rv
TVZDICAgICAgICAgICAgICAgICAgICAgICAgfDg5LjQyNTAwMCAgICAgfDgzLjIyNTAwMCAgICAg
fDAuOTMwNjY4ICB8IDAuMDM5MTAyICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwgRW1iZXJK
Uy1Ub2RvTVZDICAgICAgICAgICAgICAgICAgICAgIHw2OTUuODc1MDAwICAgIHw2NjQuMDAwMDAw
ICAgIHwwLjk1NDE5NCAgfCAwLjA4ODkwMSAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IEZs
aWdodC1Ub2RvTVZDICAgICAgICAgICAgICAgICAgICAgICB8MjYzLjYwMDAwMCAgICB8MjU3LjYw
MDAwMCAgICB8MC45NzcyMzggIHwgMC4yNDkyNTkgICAgICAgICAgICAgICAgIHwKKyAgICAgICAg
fCBCYWNrYm9uZUpTLVRvZG9NVkMgICAgICAgICAgICAgICAgICAgfDIxMy4wMjUwMDAgICAgfDIw
MS41NTAwMDAgICAgfDAuOTQ2MTMzICB8IDAuMDAwNjM2IChzaWduaWZpY2FudCkgICB8CisgICAg
ICAgIHwgUHJlYWN0LVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgIHw0OC44MDAwMDAgICAg
IHw0Ny41NTAwMDAgICAgIHwwLjk3NDM4NSAgfCAwLjUwMjc2OCAgICAgICAgICAgICAgICAgfAor
ICAgICAgICB8IEFuZ3VsYXJKUy1Ub2RvTVZDICAgICAgICAgICAgICAgICAgICB8NzQ1LjMwMDAw
MCAgICB8NzA0LjI3NTAwMCAgICB8MC45NDQ5NTUgIHwgMC4wMTE3NzkgICAgICAgICAgICAgICAg
IHwKKyAgICAgICAgfCBJbmZlcm5vLVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgfDYwNy45
MDAwMDAgICAgfDM1NC44MDAwMDAgICAgfDAuNTgzNjQ5ICB8IDAuMDAwMDAwIChzaWduaWZpY2Fu
dCkgICB8CisgICAgICAgIHwgVmFuaWxsYS1FUzIwMTUtVG9kb01WQyAgICAgICAgICAgICAgIHwy
MTQuOTUwMDAwICAgIHwyMDAuNTc1MDAwICAgIHwwLjkzMzEyNCAgfCAwLjAwNTAxOCAgICAgICAg
ICAgICAgICAgfAorICAgICAgICB8IEFuZ3VsYXIyLVR5cGVTY3JpcHQtVG9kb01WQyAgICAgICAg
ICB8MTkxLjU3NTAwMCAgICB8MTg3LjAyNTAwMCAgICB8MC45NzYyNTAgIHwgMC41NDIyMjkgICAg
ICAgICAgICAgICAgIHwKKyAgICAgICAgfCBWYW5pbGxhSlMtVG9kb01WQyAgICAgICAgICAgICAg
ICAgICAgfDE2Mi4wNzUwMDAgICAgfDE2MC4zNzUwMDAgICAgfDAuOTg5NTExICB8IDAuNzQ3MTg2
ICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwgalF1ZXJ5LVRvZG9NVkMgICAgICAgICAgICAg
ICAgICAgICAgIHw4NTUuMjc1MDAwICAgIHw4MzMuODI1MDAwICAgIHwwLjk3NDkyMCAgfCAwLjEw
MzQzOSAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IEVtYmVySlMtRGVidWctVG9kb01WQyAg
ICAgICAgICAgICAgICB8MjA1Ni4yNTAwMDAgICB8MTk1Mi4wNTAwMDAgICB8MC45NDkzMjUgIHwg
MC4wMDAwMDMgKHNpZ25pZmljYW50KSAgIHwKKyAgICAgICAgfCBSZWFjdC1Ub2RvTVZDICAgICAg
ICAgICAgICAgICAgICAgICAgfDQ3NS4yMjUwMDAgICAgfDQyOC45NTAwMDAgICAgfDAuOTAyNjI1
ICB8IDAuMDA3NTY2ICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwgUmVhY3QtUmVkdXgtVG9k
b01WQyAgICAgICAgICAgICAgICAgIHw3OTEuMTAwMDAwICAgIHw3MzYuNjc1MDAwICAgIHwwLjkz
MTIwMyAgfCAwLjA2NjA5MSAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IFZhbmlsbGEtRVMy
MDE1LUJhYmVsLVdlYnBhY2stVG9kb01WQyB8MjA4LjA1MDAwMCAgICB8MjAyLjAwMDAwMCAgICB8
MC45NzA5MjAgIHwgMC4xNTI0NzAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgKiBT
Y3JpcHRzL2NvbXBhcmUtcmVzdWx0czoKKyAgICAgICAgKHJlYWRKU09ORmlsZSk6CisgICAgICAg
IChzcGVlZG9tZXRlcjJCcmVha2Rvd24pOgorICAgICAgICAoamV0U3RyZWFtMkJyZWFrZG93bik6
CisgICAgICAgIChtb3Rpb25NYXJrQnJlYWtkb3duKToKKyAgICAgICAgKHBsdDVCcmVha2Rvd24p
OgorICAgICAgICAoZGlzcGxheVN0cik6CisgICAgICAgIChkdW1wQnJlYWtkb3ducyk6CisgICAg
ICAgICh3cml0ZUNTVik6CisgICAgICAgIChkZXRlY3RNb3Rpb25NYXJrMV8xKToKKyAgICAgICAg
KGRldGVjdE1vdGlvbk1hcmsxXzFfMSk6CisgICAgICAgIChtb3Rpb25NYXJrUmVzdWx0cyk6Cisg
ICAgICAgIChkZXRlY3RCZW5jaG1hcmspOgorICAgICAgICAoZ2V0T3B0aW9ucyk6CisgICAgICAg
IChtYWluKToKKyAgICAgICAgKG1vdGlvbk1hcmsxXzFSZXN1bHRzKTogRGVsZXRlZC4KKwogMjAy
MC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUZXN0cyBleHBlY3RpbmcgYSBjcmFzaCBzaG91bGQgdXNlIGEgc2lnbmFsIGhhbmRsZXIgaW4g
dGhlIEpTQyBDTEkgcHJvY2VzcwpJbmRleDogVG9vbHMvU2NyaXB0cy9jb21wYXJlLXJlc3VsdHMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9jb21wYXJlLXJlc3VsdHMJKHJldmlzaW9uIDI2
Mjk3MSkKKysrIFRvb2xzL1NjcmlwdHMvY29tcGFyZS1yZXN1bHRzCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw2ICsyOSw3IEBACiBpbXBvcnQgc3lzCiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBqc29u
Citmcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIuYmVuY2htYXJrX3Jlc3VsdHMgaW1wb3J0
IEJlbmNobWFya1Jlc3VsdHMKIAogdHJ5OgogICAgIGZyb20gc2NpcHkgaW1wb3J0IHN0YXRzCkBA
IC00NCwxMyArNDUsMTcxIEBAIGV4Y2VwdDoKIAogZGVmIHJlYWRKU09ORmlsZShwYXRoKToKICAg
ICB3aXRoIG9wZW4ocGF0aCwgJ3InKSBhcyBjb250ZW50czoKLSAgICAgICAgcmV0dXJuIGpzb24u
bG9hZHMoY29udGVudHMucmVhZCgpKQorICAgICAgICByZXN1bHQgPSBqc29uLmxvYWRzKGNvbnRl
bnRzLnJlYWQoKSkKKyAgICAgICAgaWYgJ2RlYnVnT3V0cHV0JyBpbiByZXN1bHQ6CisgICAgICAg
ICAgICBkZWwgcmVzdWx0WydkZWJ1Z091dHB1dCddCisgICAgICAgIHJldHVybiByZXN1bHQKIAog
U3BlZWRvbWV0ZXIyID0gIlNwZWVkb21ldGVyMiIKIEpldFN0cmVhbTIgPSAiSmV0U3RyZWFtMiIK
IFBMVDUgPSAiUExUNSIKIE1vdGlvbk1hcmsgPSAiTW90aW9uTWFyayIKIE1vdGlvbk1hcmsxXzEg
PSAiTW90aW9uTWFyay0xLjEiCitNb3Rpb25NYXJrMV8xXzEgPSAiTW90aW9uTWFyay0xLjEuMSIK
KworZGVmIHNwZWVkb21ldGVyMkJyZWFrZG93bihqc29uT2JqZWN0KToKKyAgICBicmVha2Rvd24g
PSBCZW5jaG1hcmtSZXN1bHRzKGpzb25PYmplY3QpCisgICAgcmVzdWx0ID0ge30KKyAgICByZXN1
bHRbIl9fdW5pdF9fIl0gPSAibXMiCisgICAgZm9yIHRlc3QgaW4gYnJlYWtkb3duLl9yZXN1bHRz
WyJTcGVlZG9tZXRlci0yIl1bInRlc3RzIl0ua2V5cygpOgorICAgICAgICByZXN1bHRbdGVzdF0g
PSBicmVha2Rvd24uX3Jlc3VsdHNbIlNwZWVkb21ldGVyLTIiXVsidGVzdHMiXVt0ZXN0XVsibWV0
cmljcyJdWyJUaW1lIl1bIlRvdGFsIl1bImN1cnJlbnQiXQorICAgIHJldHVybiByZXN1bHQKKwor
ZGVmIGpldFN0cmVhbTJCcmVha2Rvd24oanNvbk9iamVjdCk6CisgICAgYnJlYWtkb3duID0gQmVu
Y2htYXJrUmVzdWx0cyhqc29uT2JqZWN0KQorICAgIHJlc3VsdCA9IHt9CisgICAgcmVzdWx0WyJf
X3VuaXRfXyJdID0gInB0cyIKKyAgICBmb3IgdGVzdCBpbiBicmVha2Rvd24uX3Jlc3VsdHNbIkpl
dFN0cmVhbTIuMCJdWyJ0ZXN0cyJdLmtleXMoKToKKyAgICAgICAgcmVzdWx0W3Rlc3RdID0gYnJl
YWtkb3duLl9yZXN1bHRzWyJKZXRTdHJlYW0yLjAiXVsidGVzdHMiXVt0ZXN0XVsibWV0cmljcyJd
WyJTY29yZSJdW05vbmVdWyJjdXJyZW50Il0KKyAgICByZXR1cm4gcmVzdWx0CisKK2RlZiBtb3Rp
b25NYXJrQnJlYWtkb3duKGpzb25PYmplY3QpOgorICAgIGJyZWFrZG93biA9IEJlbmNobWFya1Jl
c3VsdHMoanNvbk9iamVjdCkKKworICAgIHJlc3VsdCA9IHt9CisgICAgcmVzdWx0WyJfX3VuaXRf
XyJdID0gInB0cyIKKworICAgIGlmIGRldGVjdE1vdGlvbk1hcmsoanNvbk9iamVjdCk6CisgICAg
ICAgIG5hbWUgPSAiTW90aW9uTWFyayIKKyAgICBlbGlmIGRldGVjdE1vdGlvbk1hcmsxXzEoanNv
bk9iamVjdCk6CisgICAgICAgIG5hbWUgPSAiTW90aW9uTWFyay0xLjEiCisgICAgZWxzZToKKyAg
ICAgICAgbmFtZSA9ICJNb3Rpb25NYXJrLTEuMS4xIgorCisgICAgZm9yIHRlc3QgaW4gYnJlYWtk
b3duLl9yZXN1bHRzW25hbWVdWyJ0ZXN0cyJdLmtleXMoKToKKyAgICAgICAgcmVzdWx0W3Rlc3Rd
ID0gYnJlYWtkb3duLl9yZXN1bHRzW25hbWVdWyJ0ZXN0cyJdW3Rlc3RdWyJtZXRyaWNzIl1bIlNj
b3JlIl1bTm9uZV1bImN1cnJlbnQiXQorCisgICAgcmV0dXJuIHJlc3VsdAorCitkZWYgcGx0NUJy
ZWFrZG93bihqc29uT2JqZWN0KToKKyAgICBuYW1lTWFwcGluZyA9IHt9CisKKyAgICBmb3IgbWFw
cGluZ3MgaW4gIGpzb25PYmplY3RbInVybHMiXToKKyAgICAgICAgZm9yIGtleSBpbiBtYXBwaW5n
cy5rZXlzKCk6CisgICAgICAgICAgICBuYW1lTWFwcGluZ1trZXldID0gbWFwcGluZ3Nba2V5XQor
CisgICAgcmVzdWx0ID0ge30KKyAgICByZXN1bHRbIl9fdW5pdF9fIl0gPSAibXMiCisgICAgZm9y
IHRlc3QgaW4ganNvbk9iamVjdFsiaXRlcmF0aW9ucyJdWzBdWyJ3YXJtIl0ua2V5cygpOgorICAg
ICAgICBpZiB0ZXN0ID09ICJHZW9tZXRyaWMiOgorICAgICAgICAgICAgY29udGludWUKKyAgICAg
ICAgcmVzdWx0WyJ3YXJtLS0iICsgbmFtZU1hcHBpbmdbdGVzdF1dID0gW10KKyAgICAgICAgcmVz
dWx0WyJjb2xkLS0iICsgbmFtZU1hcHBpbmdbdGVzdF1dID0gW10KKworICAgIGZvciBwYXlsb2Fk
IGluIGpzb25PYmplY3RbIml0ZXJhdGlvbnMiXToKKyAgICAgICAgd2FybVRlc3RzID0gcGF5bG9h
ZFsid2FybSJdCisgICAgICAgIGNvbGRUZXN0cyA9IHBheWxvYWRbImNvbGQiXQorICAgICAgICBm
b3IgdGVzdCBpbiB3YXJtVGVzdHMua2V5cygpOgorICAgICAgICAgICAgaWYgdGVzdCA9PSAiR2Vv
bWV0cmljIjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgcmVzdWx0WyJ3
YXJtLS0iICsgbmFtZU1hcHBpbmdbdGVzdF1dLmFwcGVuZCh3YXJtVGVzdHNbdGVzdF1bIkdlb21l
dHJpYyJdKQorICAgICAgICAgICAgcmVzdWx0WyJjb2xkLS0iICsgbmFtZU1hcHBpbmdbdGVzdF1d
LmFwcGVuZChjb2xkVGVzdHNbdGVzdF1bIkdlb21ldHJpYyJdKQorCisgICAgcmV0dXJuIHJlc3Vs
dAorCitkZWYgZGlzcGxheVN0cih2YWx1ZSk6CisgICAgcmV0dXJuICJ7Oi42Zn0iLmZvcm1hdChm
bG9hdCh2YWx1ZSkpCisKK2RlZiBkdW1wQnJlYWtkb3ducyhhLCBiKToKKyAgICBuYW1lTGVuZ3Ro
ID0gbGVuKCJzdWJ0ZXN0IikKKyAgICBhTGVuZ3RoID0gbGVuKGFbIl9fdW5pdF9fIl0pCisgICAg
Ykxlbmd0aCA9IGxlbihhWyJfX3VuaXRfXyJdKQorICAgIHJhdGlvTGVuZ3RoID0gbGVuKCJiIC8g
YSIpCisKKyAgICAjIFNlZSBCb25mZXJyb25pIGNvcnJlY3Rpb246CisgICAgIyBodHRwczovL2Vu
Lm0ud2lraXBlZGlhLm9yZy93aWtpL0JvbmZlcnJvbmlfY29ycmVjdGlvbgorICAgICMgSWYgd2Un
cmUgdGVzdGluZyBOIGh5cG90aGVzaXMsIHdlIG1ha2Ugb3VyIHRocmVzaG9sZCwgYWxwaGEsIC4w
NS9OIGluc3RlYWQgb2YgLjA1LgorICAgIHRlc3RDb3VudCA9IGZsb2F0KGxlbihhLmtleXMoKSkg
LSAxKQorICAgIGFscGhhID0gLjA1IC8gdGVzdENvdW50CisgICAgcFZhbHVlSGVhZGVyID0gInBW
YWx1ZSwgYWxwaGEgPSB7fSIuZm9ybWF0KGRpc3BsYXlTdHIoYWxwaGEpKQorICAgIHBMZW5ndGgg
PSBsZW4ocFZhbHVlSGVhZGVyKQorCisgICAgZm9yIGtleSBpbiBhLmtleXMoKToKKyAgICAgICAg
aWYga2V5ID09ICJfX3VuaXRfXyI6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBuYW1l
TGVuZ3RoID0gbWF4KG5hbWVMZW5ndGgsIGxlbihrZXkpKQorICAgICAgICBhTGVuZ3RoID0gbWF4
KGFMZW5ndGgsIGxlbihkaXNwbGF5U3RyKG51bXB5Lm1lYW4oYVtrZXldKSkpKQorICAgICAgICBi
TGVuZ3RoID0gbWF4KGJMZW5ndGgsIGxlbihkaXNwbGF5U3RyKG51bXB5Lm1lYW4oYltrZXldKSkp
KQorICAgICAgICByYXRpb0xlbmd0aCA9IG1heChyYXRpb0xlbmd0aCwgbGVuKGRpc3BsYXlTdHIo
bnVtcHkubWVhbihiW2tleV0pIC8gbnVtcHkubWVhbihhW2tleV0pKSkpCisKKyAgICAgICAgKHRT
dGF0aXN0aWMsIHBWYWx1ZSkgPSBzdGF0cy50dGVzdF9pbmQoYVtrZXldLCBiW2tleV0sIGVxdWFs
X3Zhcj1GYWxzZSkKKyAgICAgICAgc2lnbmlmaWNhbnRTdHIgPSAiIgorICAgICAgICBpZiBwVmFs
dWUgPD0gYWxwaGE6CisgICAgICAgICAgICBzaWduaWZpY2FudFN0ciA9ICIgKHNpZ25pZmljYW50
KSIKKyAgICAgICAgcExlbmd0aCA9IG1heChwTGVuZ3RoLCBsZW4oZGlzcGxheVN0cihwVmFsdWUp
KSArIGxlbihzaWduaWZpY2FudFN0cikpCisKKyAgICBhTGVuZ3RoICs9IDIKKyAgICBiTGVuZ3Ro
ICs9IDIKKyAgICBuYW1lTGVuZ3RoICs9IDIKKyAgICByYXRpb0xlbmd0aCArPSAyCisgICAgcExl
bmd0aCArPSAyCisKKyAgICBzdHJpbmdzID0gW10KKyAgICBzdHJpbmdzLmFwcGVuZCgifHtrZXk6
XntuYW1lTGVuZ3RofX18e2FTY29yZTpee2FMZW5ndGh9fSB8e2JTY29yZTpee2JMZW5ndGh9fSB8
e2NvbXBhcmU6XntyYXRpb0xlbmd0aH19fHtwTWFya2VyOl57cExlbmd0aH19fCIuZm9ybWF0KGtl
eT0ic3VidGVzdCIsIGFTY29yZT1hWyJfX3VuaXRfXyJdLCBiU2NvcmU9YlsiX191bml0X18iXSwg
bmFtZUxlbmd0aD1uYW1lTGVuZ3RoLCBhTGVuZ3RoPWFMZW5ndGgsIGJMZW5ndGg9Ykxlbmd0aCAs
IGNvbXBhcmU9ImIgLyBhIiwgcmF0aW9MZW5ndGg9cmF0aW9MZW5ndGgsIHBNYXJrZXI9cFZhbHVl
SGVhZGVyLCBwTGVuZ3RoPXBMZW5ndGgpKQorICAgIGZvciBrZXkgaW4gYS5rZXlzKCk6CisgICAg
ICAgIGlmIGtleSA9PSAiX191bml0X18iOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAg
ICBhU2NvcmUgPSBudW1weS5tZWFuKGFba2V5XSkKKyAgICAgICAgYlNjb3JlID0gbnVtcHkubWVh
bihiW2tleV0pCisKKyAgICAgICAgKHRTdGF0aXN0aWMsIHBWYWx1ZSkgPSBzdGF0cy50dGVzdF9p
bmQoYVtrZXldLCBiW2tleV0sIGVxdWFsX3Zhcj1GYWxzZSkKKworICAgICAgICBzaWduaWZpY2Fu
dFN0ciA9ICIiCisgICAgICAgIGlmIHBWYWx1ZSA8PSBhbHBoYToKKyAgICAgICAgICAgIHNpZ25p
ZmljYW50U3RyID0gIiAoc2lnbmlmaWNhbnQpIgorCisgICAgICAgIHN0cmluZ3MuYXBwZW5kKCJ8
IHtrZXk6e25hbWVMZW5ndGh9fXx7YVNjb3JlOnthTGVuZ3RofX0gfHtiU2NvcmU6e2JMZW5ndGh9
fSB8e2NvbXBhcmU6e3JhdGlvTGVuZ3RofX18IHtwVmFsdWU6PHtwTGVuZ3RofX18Ii5mb3JtYXQo
a2V5PWtleSwgYVNjb3JlPWRpc3BsYXlTdHIoYVNjb3JlKSwgYlNjb3JlPWRpc3BsYXlTdHIoYlNj
b3JlKSwgbmFtZUxlbmd0aD1uYW1lTGVuZ3RoIC0gMSwgYUxlbmd0aD1hTGVuZ3RoLCBiTGVuZ3Ro
PWJMZW5ndGgsIHJhdGlvTGVuZ3RoPXJhdGlvTGVuZ3RoLCBjb21wYXJlPWRpc3BsYXlTdHIoYlNj
b3JlIC8gYVNjb3JlKSwgcFZhbHVlID0gZGlzcGxheVN0cihwVmFsdWUpICsgc2lnbmlmaWNhbnRT
dHIsIHBMZW5ndGg9cExlbmd0aCAtIDEpKQorCisgICAgbWF4TGVuID0gMAorICAgIGZvciBzIGlu
IHN0cmluZ3M6CisgICAgICAgIG1heExlbiA9IG1heChtYXhMZW4sIGxlbihzKSkKKworICAgIHZl
cnRpY2FsU2VwYXJhdG9yID0gIi0iICogbWF4TGVuCisgICAgc3RyaW5ncy5pbnNlcnQoMCwgdmVy
dGljYWxTZXBhcmF0b3IpCisgICAgc3RyaW5ncy5pbnNlcnQoMiwgdmVydGljYWxTZXBhcmF0b3Ip
CisgICAgc3RyaW5ncy5hcHBlbmQodmVydGljYWxTZXBhcmF0b3IpCisKKyAgICBwcmludCAiXG4i
CisgICAgZm9yIHMgaW4gc3RyaW5nczoKKyAgICAgICAgcHJpbnQocykKKyAgICBwcmludCAiXG4i
CisKK2RlZiB3cml0ZUNTVihhLCBiLCBmaWxlTmFtZSk6CisgICAgc3RyaW5ncyA9IFtdCisgICAg
cmVzdWx0ID0gIiIKKyAgICB0ZXN0Q291bnQgPSBmbG9hdChsZW4oYS5rZXlzKCkpIC0gMSkKKyAg
ICBhbHBoYSA9IC4wNSAvIHRlc3RDb3VudAorICAgIHBWYWx1ZUhlYWRlciA9ICJwVmFsdWVfd2l0
aF9hbHBoYV97fSIuZm9ybWF0KGRpc3BsYXlTdHIoYWxwaGEpKQorICAgIHJlc3VsdCArPSAidGVz
dF9uYW1lLCB7fSwge30sIGJfZGl2aWRlZF9ieV9hLCB7fSwgaXNfc2lnbmlmaWNhbnRcbiIuZm9y
bWF0KCJhX2luXyIgKyBhWyJfX3VuaXRfXyJdLCAiYl9pbl8iICsgYlsiX191bml0X18iXSwgcFZh
bHVlSGVhZGVyKQorCisKKyAgICBmb3Iga2V5IGluIGEua2V5cygpOgorICAgICAgICBpZiBrZXkg
PT0gIl9fdW5pdF9fIjoKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgYVNjb3JlID0g
bnVtcHkubWVhbihhW2tleV0pCisgICAgICAgIGJTY29yZSA9IG51bXB5Lm1lYW4oYltrZXldKQor
CisgICAgICAgICh0U3RhdGlzdGljLCBwVmFsdWUpID0gc3RhdHMudHRlc3RfaW5kKGFba2V5XSwg
YltrZXldLCBlcXVhbF92YXI9RmFsc2UpCisgICAgICAgICMgU2VlIGFib3ZlIGNvbW1lbnQgYWJv
dXQgQm9uZmVycm9uaSBjb3JyZWN0aW9uCisgICAgICAgIHNpZ25pZmljYW50U3RyID0gIk5vIgor
ICAgICAgICByZXN1bHQgKz0gInt9LHt9LHt9LHt9LHt9LHt9XG4iLmZvcm1hdChrZXksIGRpc3Bs
YXlTdHIoYVNjb3JlKSwgZGlzcGxheVN0cihiU2NvcmUpLCBkaXNwbGF5U3RyKGJTY29yZSAvIGFT
Y29yZSksIGRpc3BsYXlTdHIocFZhbHVlKSwgc2lnbmlmaWNhbnRTdHIpCisKKyAgICBmID0gb3Bl
bihmaWxlTmFtZSwgInciKQorICAgIGYud3JpdGUocmVzdWx0KQorICAgIGYuY2xvc2UoKQorCiAK
IGRlZiBkZXRlY3RKZXRTdHJlYW0yKHBheWxvYWQpOgogICAgIHJldHVybiAiSmV0U3RyZWFtMi4w
IiBpbiBwYXlsb2FkCkBAIC0xMTAsMTIgKzI2OSwxNyBAQCBkZWYgZGV0ZWN0TW90aW9uTWFyayhw
YXlsb2FkKToKIGRlZiBkZXRlY3RNb3Rpb25NYXJrMV8xKHBheWxvYWQpOgogICAgIHJldHVybiAi
TW90aW9uTWFyay0xLjEiIGluIHBheWxvYWQKIAorZGVmIGRldGVjdE1vdGlvbk1hcmsxXzFfMShw
YXlsb2FkKToKKyAgICByZXR1cm4gIk1vdGlvbk1hcmstMS4xLjEiIGluIHBheWxvYWQKKwogZGVm
IG1vdGlvbk1hcmtSZXN1bHRzKHBheWxvYWQpOgotICAgIGFzc2VydCBkZXRlY3RNb3Rpb25NYXJr
KHBheWxvYWQpIG9yIGRldGVjdE1vdGlvbk1hcmsxXzEocGF5bG9hZCkKKyAgICBhc3NlcnQgZGV0
ZWN0TW90aW9uTWFyayhwYXlsb2FkKSBvciBkZXRlY3RNb3Rpb25NYXJrMV8xKHBheWxvYWQpIG9y
IGRldGVjdE1vdGlvbk1hcmsxXzFfMShwYXlsb2FkKQogICAgIGlmIGRldGVjdE1vdGlvbk1hcmso
cGF5bG9hZCk6CiAgICAgICAgIHBheWxvYWQgPSBwYXlsb2FkWyJNb3Rpb25NYXJrIl0KLSAgICBl
bHNlOgorICAgIGVsaWYgZGV0ZWN0TW90aW9uTWFyazFfMShwYXlsb2FkKToKICAgICAgICAgcGF5
bG9hZCA9IHBheWxvYWRbIk1vdGlvbk1hcmstMS4xIl0KKyAgICBlbHNlOgorICAgICAgICBwYXls
b2FkID0gcGF5bG9hZFsiTW90aW9uTWFyay0xLjEuMSJdCiAgICAgdGVzdE5hbWVzID0gcGF5bG9h
ZFsidGVzdHMiXS5rZXlzKCkKICAgICBudW1UZXN0cyA9IGxlbihwYXlsb2FkWyJ0ZXN0cyJdW3Rl
c3ROYW1lc1swXV1bIm1ldHJpY3MiXVsiU2NvcmUiXVsiY3VycmVudCJdKQogICAgIHJlc3VsdHMg
PSBbXQpAQCAtMTI3LDkgKzI5MSw2IEBAIGRlZiBtb3Rpb25NYXJrUmVzdWx0cyhwYXlsb2FkKToK
IAogICAgIHJldHVybiByZXN1bHRzCiAKLWRlZiBtb3Rpb25NYXJrMV8xUmVzdWx0cyhwYXlsb2Fk
KToKLSAgICByZXR1cm4gbW90aW9uTWFya1Jlc3VsdHMocGF5bG9hZCkKLQogZGVmIGRldGVjdEJl
bmNobWFyayhwYXlsb2FkKToKICAgICBpZiBkZXRlY3RKZXRTdHJlYW0yKHBheWxvYWQpOgogICAg
ICAgICByZXR1cm4gSmV0U3RyZWFtMgpAQCAtMTQxLDYgKzMwMiw4IEBAIGRlZiBkZXRlY3RCZW5j
aG1hcmsocGF5bG9hZCk6CiAgICAgICAgIHJldHVybiBNb3Rpb25NYXJrCiAgICAgaWYgZGV0ZWN0
TW90aW9uTWFyazFfMShwYXlsb2FkKToKICAgICAgICAgcmV0dXJuIE1vdGlvbk1hcmsxXzEKKyAg
ICBpZiBkZXRlY3RNb3Rpb25NYXJrMV8xXzEocGF5bG9hZCk6CisgICAgICAgIHJldHVybiBNb3Rp
b25NYXJrMV8xCiAgICAgcmV0dXJuIE5vbmUKIAogZGVmIGJpZ2dlcklzQmV0dGVyKGJlbmNobWFy
a1R5cGUpOgpAQCAtMTk5LDYgKzM2MiwxNCBAQCBkZWYgZ2V0T3B0aW9ucygpOgogICAgICAgICBy
ZXF1aXJlZD1UcnVlLAogICAgICAgICBoZWxwPSJiIG9mIGEvYi4gUGF0aCB0byBKU09OIHJlc3Vs
dHMgZmlsZS4iKQogCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1jc3YiLAorICAgICAgICB0
eXBlPXN0ciwKKyAgICAgICAgcmVxdWlyZWQ9RmFsc2UsCisgICAgICAgIGhlbHA9IlBhdGggdG8g
d3JpdGUgYSBjc3YgZmlsZSBjb250YWluaW5nIHN1YnRlc3QgYnJlYWtkb3duLiIpCisKKyAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCItLWJyZWFrZG93biIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisg
ICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlByaW50IGEgcGVyIHN1YnRlc3QgYnJlYWtkb3du
LiIpCisKICAgICByZXR1cm4gcGFyc2VyLnBhcnNlX2tub3duX2FyZ3MoKVswXQogCiAKQEAgLTIy
MCwxNSArMzkxLDM4IEBAIGRlZiBtYWluKCk6CiAgICAgICAgIHN5cy5leGl0KDEpCiAgICAgCiAg
ICAgaWYgdHlwZUEgPT0gSmV0U3RyZWFtMjoKKyAgICAgICAgaWYgYXJncy5icmVha2Rvd246Cisg
ICAgICAgICAgICBkdW1wQnJlYWtkb3ducyhqZXRTdHJlYW0yQnJlYWtkb3duKGEpLCBqZXRTdHJl
YW0yQnJlYWtkb3duKGIpKQorCiAgICAgICAgIHR0ZXN0KHR5cGVBLCBKZXRTdHJlYW0yUmVzdWx0
cyhhKSwgSmV0U3RyZWFtMlJlc3VsdHMoYikpCisKKyAgICAgICAgaWYgYXJncy5jc3Y6CisgICAg
ICAgICAgICB3cml0ZUNTVihqZXRTdHJlYW0yQnJlYWtkb3duKGEpLCBqZXRTdHJlYW0yQnJlYWtk
b3duKGIpLCBhcmdzLmNzdikKICAgICBlbGlmIHR5cGVBID09IFNwZWVkb21ldGVyMjoKKyAgICAg
ICAgaWYgYXJncy5icmVha2Rvd246CisgICAgICAgICAgICBkdW1wQnJlYWtkb3ducyhzcGVlZG9t
ZXRlcjJCcmVha2Rvd24oYSksIHNwZWVkb21ldGVyMkJyZWFrZG93bihiKSkKKwogICAgICAgICB0
dGVzdCh0eXBlQSwgU3BlZWRvbWV0ZXIyUmVzdWx0cyhhKSwgU3BlZWRvbWV0ZXIyUmVzdWx0cyhi
KSkKLSAgICBlbGlmIHR5cGVBID09IE1vdGlvbk1hcms6CisKKyAgICAgICAgaWYgYXJncy5jc3Y6
CisgICAgICAgICAgICB3cml0ZUNTVihzcGVlZG9tZXRlcjJCcmVha2Rvd24oYSksIHNwZWVkb21l
dGVyMkJyZWFrZG93bihiKSwgYXJncy5jc3YpCisKKyAgICBlbGlmIHR5cGVBID09IE1vdGlvbk1h
cmsgb3IgdHlwZUEgPT0gTW90aW9uTWFyazFfMSBvciB0eXBlQSA9PSBNb3Rpb25NYXJrMV8xXzE6
CisgICAgICAgIGlmIGFyZ3MuYnJlYWtkb3duOgorICAgICAgICAgICAgZHVtcEJyZWFrZG93bnMo
bW90aW9uTWFya0JyZWFrZG93bihhKSwgbW90aW9uTWFya0JyZWFrZG93bihiKSkKKwogICAgICAg
ICB0dGVzdCh0eXBlQSwgbW90aW9uTWFya1Jlc3VsdHMoYSksIG1vdGlvbk1hcmtSZXN1bHRzKGIp
KQotICAgIGVsaWYgdHlwZUEgPT0gTW90aW9uTWFyazFfMToKLSAgICAgICAgdHRlc3QodHlwZUEs
IG1vdGlvbk1hcmsxXzFSZXN1bHRzKGEpLCBtb3Rpb25NYXJrMV8xUmVzdWx0cyhiKSkKKworICAg
ICAgICBpZiBhcmdzLmNzdjoKKyAgICAgICAgICAgIHdyaXRlQ1NWKG1vdGlvbk1hcmtCcmVha2Rv
d24oYSksIG1vdGlvbk1hcmtCcmVha2Rvd24oYiksIGFyZ3MuY3N2KQogICAgIGVsaWYgdHlwZUEg
PT0gUExUNToKKyAgICAgICAgaWYgYXJncy5icmVha2Rvd246CisgICAgICAgICAgICBkdW1wQnJl
YWtkb3ducyhwbHQ1QnJlYWtkb3duKGEpLCBwbHQ1QnJlYWtkb3duKGIpKQorCiAgICAgICAgIHR0
ZXN0KHR5cGVBLCBQTFQ1UmVzdWx0cyhhKSwgUExUNVJlc3VsdHMoYikpCisKKyAgICAgICAgaWYg
YXJncy5jc3Y6CisgICAgICAgICAgICB3cml0ZUNTVihwbHQ1QnJlYWtkb3duKGEpLCBwbHQ1QnJl
YWtkb3duKGIpLCBhcmdzLmNzdikKICAgICBlbHNlOgogICAgICAgICBwcmludCAiVW5rbm93biBi
ZW5jaG1hcmsgdHlwZSIKICAgICAgICAgc3lzLmV4aXQoMSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401819</attachid>
            <date>2020-06-12 19:07:30 -0700</date>
            <delta_ts>2020-06-13 13:20:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>13857</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2Mjk5MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDU5IEBACisyMDIwLTA2LTEyICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgor
CisgICAgICAgIGNvbXBhcmUtcmVzdWx0cyBzaG91bGQgaGF2ZSBhbiBvcHRpb24gdG8gcHJpbnQg
YSBicmVha2Rvd24gYW5kIHRvIHNhdmUgdGhlIGJyZWFrZG93biBhcyBjc3YgZmlsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMTQwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwg
Y29tcGFyZS1yZXN1bHRzIGhhcyBhIG5ldyAtLWJyZWFrZG93biBmZWF0dXJlIHdoaWNoIHdpbGwK
KyAgICAgICAgYnJlYWsgZG93biB0aGUgcmVzdWx0cyBmb3IgLWEgYW5kIC1iIHBlciBzdWJ0ZXN0
LiBJdCB3aWxsIGFsc28gc2hvdyB5b3UKKyAgICAgICAgcCB2YWx1ZXMgd2l0aCBhIHNpZ25pZmlj
YW5jZSB0aHJlc2hvbGQgZGV0ZXJtaW5lZCB1c2luZyB0aGUgQm9uZmVycm9uaQorICAgICAgICBj
b3JyZWN0aW9uIGZvciB0ZXN0aW5nIG11bHRpcGxlIGh5cG90aGVzZXM6CisgICAgICAgIGh0dHBz
Oi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0JvbmZlcnJvbmlfY29ycmVjdGlvbgorICAgICAgICAK
KyAgICAgICAgQW5kIHRoZXJlIGlzIGFsc28gbm93IGEgLS1jc3Ygb3B0aW9uIHRvIGdlbmVyYXRl
IGEgY3N2IGZpbGUgY29udGFpbmluZworICAgICAgICB0aGUgc2FtZSBwZXIgc3VidGVzdCBicmVh
a2Rvd24uCisgICAgICAgIAorICAgICAgICAtLWJyZWFrZG93biB3aWxsIHByaW50IG91dCByZXN1
bHRzIGxpa2U6CisgICAgICAgIAorICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgfCAgICAgICAgICAgICAgIHN1YnRlc3Qg
ICAgICAgICAgICAgICAgfCAgICAgbXMgICAgICAgfCAgICAgbXMgICAgICAgfCAgYiAvIGEgICB8
IHBWYWx1ZSwgYWxwaGEgPSAwLjAwMzEyNSB8CisgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICB8IEVsbS1Ub2RvTVZDICAg
ICAgICAgICAgICAgICAgICAgICAgICB8NjE2LjYyNTAwMCAgICB8NTgzLjYyNTAwMCAgICB8MC45
NDY0ODMgIHwgMC4wNjUwMDIgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgfCBWdWVKUy1Ub2Rv
TVZDICAgICAgICAgICAgICAgICAgICAgICAgfDg5LjQyNTAwMCAgICAgfDgzLjIyNTAwMCAgICAg
fDAuOTMwNjY4ICB8IDAuMDM5MTAyICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwgRW1iZXJK
Uy1Ub2RvTVZDICAgICAgICAgICAgICAgICAgICAgIHw2OTUuODc1MDAwICAgIHw2NjQuMDAwMDAw
ICAgIHwwLjk1NDE5NCAgfCAwLjA4ODkwMSAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IEZs
aWdodC1Ub2RvTVZDICAgICAgICAgICAgICAgICAgICAgICB8MjYzLjYwMDAwMCAgICB8MjU3LjYw
MDAwMCAgICB8MC45NzcyMzggIHwgMC4yNDkyNTkgICAgICAgICAgICAgICAgIHwKKyAgICAgICAg
fCBCYWNrYm9uZUpTLVRvZG9NVkMgICAgICAgICAgICAgICAgICAgfDIxMy4wMjUwMDAgICAgfDIw
MS41NTAwMDAgICAgfDAuOTQ2MTMzICB8IDAuMDAwNjM2IChzaWduaWZpY2FudCkgICB8CisgICAg
ICAgIHwgUHJlYWN0LVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgIHw0OC44MDAwMDAgICAg
IHw0Ny41NTAwMDAgICAgIHwwLjk3NDM4NSAgfCAwLjUwMjc2OCAgICAgICAgICAgICAgICAgfAor
ICAgICAgICB8IEFuZ3VsYXJKUy1Ub2RvTVZDICAgICAgICAgICAgICAgICAgICB8NzQ1LjMwMDAw
MCAgICB8NzA0LjI3NTAwMCAgICB8MC45NDQ5NTUgIHwgMC4wMTE3NzkgICAgICAgICAgICAgICAg
IHwKKyAgICAgICAgfCBJbmZlcm5vLVRvZG9NVkMgICAgICAgICAgICAgICAgICAgICAgfDYwNy45
MDAwMDAgICAgfDM1NC44MDAwMDAgICAgfDAuNTgzNjQ5ICB8IDAuMDAwMDAwIChzaWduaWZpY2Fu
dCkgICB8CisgICAgICAgIHwgVmFuaWxsYS1FUzIwMTUtVG9kb01WQyAgICAgICAgICAgICAgIHwy
MTQuOTUwMDAwICAgIHwyMDAuNTc1MDAwICAgIHwwLjkzMzEyNCAgfCAwLjAwNTAxOCAgICAgICAg
ICAgICAgICAgfAorICAgICAgICB8IEFuZ3VsYXIyLVR5cGVTY3JpcHQtVG9kb01WQyAgICAgICAg
ICB8MTkxLjU3NTAwMCAgICB8MTg3LjAyNTAwMCAgICB8MC45NzYyNTAgIHwgMC41NDIyMjkgICAg
ICAgICAgICAgICAgIHwKKyAgICAgICAgfCBWYW5pbGxhSlMtVG9kb01WQyAgICAgICAgICAgICAg
ICAgICAgfDE2Mi4wNzUwMDAgICAgfDE2MC4zNzUwMDAgICAgfDAuOTg5NTExICB8IDAuNzQ3MTg2
ICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwgalF1ZXJ5LVRvZG9NVkMgICAgICAgICAgICAg
ICAgICAgICAgIHw4NTUuMjc1MDAwICAgIHw4MzMuODI1MDAwICAgIHwwLjk3NDkyMCAgfCAwLjEw
MzQzOSAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IEVtYmVySlMtRGVidWctVG9kb01WQyAg
ICAgICAgICAgICAgICB8MjA1Ni4yNTAwMDAgICB8MTk1Mi4wNTAwMDAgICB8MC45NDkzMjUgIHwg
MC4wMDAwMDMgKHNpZ25pZmljYW50KSAgIHwKKyAgICAgICAgfCBSZWFjdC1Ub2RvTVZDICAgICAg
ICAgICAgICAgICAgICAgICAgfDQ3NS4yMjUwMDAgICAgfDQyOC45NTAwMDAgICAgfDAuOTAyNjI1
ICB8IDAuMDA3NTY2ICAgICAgICAgICAgICAgICB8CisgICAgICAgIHwgUmVhY3QtUmVkdXgtVG9k
b01WQyAgICAgICAgICAgICAgICAgIHw3OTEuMTAwMDAwICAgIHw3MzYuNjc1MDAwICAgIHwwLjkz
MTIwMyAgfCAwLjA2NjA5MSAgICAgICAgICAgICAgICAgfAorICAgICAgICB8IFZhbmlsbGEtRVMy
MDE1LUJhYmVsLVdlYnBhY2stVG9kb01WQyB8MjA4LjA1MDAwMCAgICB8MjAyLjAwMDAwMCAgICB8
MC45NzA5MjAgIHwgMC4xNTI0NzAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgICAgKiBT
Y3JpcHRzL2NvbXBhcmUtcmVzdWx0czoKKyAgICAgICAgKHJlYWRKU09ORmlsZSk6CisgICAgICAg
IChzcGVlZG9tZXRlcjJCcmVha2Rvd24pOgorICAgICAgICAoamV0U3RyZWFtMkJyZWFrZG93bik6
CisgICAgICAgIChtb3Rpb25NYXJrQnJlYWtkb3duKToKKyAgICAgICAgKHBsdDVCcmVha2Rvd24p
OgorICAgICAgICAoZGlzcGxheVN0cik6CisgICAgICAgIChkdW1wQnJlYWtkb3ducyk6CisgICAg
ICAgICh3cml0ZUNTVik6CisgICAgICAgIChkZXRlY3RNb3Rpb25NYXJrMV8xKToKKyAgICAgICAg
KGRldGVjdE1vdGlvbk1hcmsxXzFfMSk6CisgICAgICAgIChtb3Rpb25NYXJrUmVzdWx0cyk6Cisg
ICAgICAgIChkZXRlY3RCZW5jaG1hcmspOgorICAgICAgICAoZ2V0T3B0aW9ucyk6CisgICAgICAg
IChtYWluKToKKyAgICAgICAgKG1vdGlvbk1hcmsxXzFSZXN1bHRzKTogRGVsZXRlZC4KKwogMjAy
MC0wNi0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUZXN0cyBleHBlY3RpbmcgYSBjcmFzaCBzaG91bGQgdXNlIGEgc2lnbmFsIGhhbmRsZXIgaW4g
dGhlIEpTQyBDTEkgcHJvY2VzcwpJbmRleDogVG9vbHMvU2NyaXB0cy9jb21wYXJlLXJlc3VsdHMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9jb21wYXJlLXJlc3VsdHMJKHJldmlzaW9uIDI2
Mjk3MSkKKysrIFRvb2xzL1NjcmlwdHMvY29tcGFyZS1yZXN1bHRzCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw2ICsyOSw3IEBACiBpbXBvcnQgc3lzCiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBqc29u
Citmcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIuYmVuY2htYXJrX3Jlc3VsdHMgaW1wb3J0
IEJlbmNobWFya1Jlc3VsdHMKIAogdHJ5OgogICAgIGZyb20gc2NpcHkgaW1wb3J0IHN0YXRzCkBA
IC00NCwxMyArNDUsMTczIEBAIGV4Y2VwdDoKIAogZGVmIHJlYWRKU09ORmlsZShwYXRoKToKICAg
ICB3aXRoIG9wZW4ocGF0aCwgJ3InKSBhcyBjb250ZW50czoKLSAgICAgICAgcmV0dXJuIGpzb24u
bG9hZHMoY29udGVudHMucmVhZCgpKQorICAgICAgICByZXN1bHQgPSBqc29uLmxvYWRzKGNvbnRl
bnRzLnJlYWQoKSkKKyAgICAgICAgaWYgJ2RlYnVnT3V0cHV0JyBpbiByZXN1bHQ6CisgICAgICAg
ICAgICBkZWwgcmVzdWx0WydkZWJ1Z091dHB1dCddCisgICAgICAgIHJldHVybiByZXN1bHQKIAog
U3BlZWRvbWV0ZXIyID0gIlNwZWVkb21ldGVyMiIKIEpldFN0cmVhbTIgPSAiSmV0U3RyZWFtMiIK
IFBMVDUgPSAiUExUNSIKIE1vdGlvbk1hcmsgPSAiTW90aW9uTWFyayIKIE1vdGlvbk1hcmsxXzEg
PSAiTW90aW9uTWFyay0xLjEiCitNb3Rpb25NYXJrMV8xXzEgPSAiTW90aW9uTWFyay0xLjEuMSIK
KwordW5pdE1hcmtlciA9ICJfX3VuaXRfXyIKKworZGVmIHNwZWVkb21ldGVyMkJyZWFrZG93bihq
c29uT2JqZWN0KToKKyAgICBicmVha2Rvd24gPSBCZW5jaG1hcmtSZXN1bHRzKGpzb25PYmplY3Qp
CisgICAgcmVzdWx0ID0ge30KKyAgICByZXN1bHRbdW5pdE1hcmtlcl0gPSAibXMiCisgICAgZm9y
IHRlc3QgaW4gYnJlYWtkb3duLl9yZXN1bHRzWyJTcGVlZG9tZXRlci0yIl1bInRlc3RzIl0ua2V5
cygpOgorICAgICAgICByZXN1bHRbdGVzdF0gPSBicmVha2Rvd24uX3Jlc3VsdHNbIlNwZWVkb21l
dGVyLTIiXVsidGVzdHMiXVt0ZXN0XVsibWV0cmljcyJdWyJUaW1lIl1bIlRvdGFsIl1bImN1cnJl
bnQiXQorICAgIHJldHVybiByZXN1bHQKKworZGVmIGpldFN0cmVhbTJCcmVha2Rvd24oanNvbk9i
amVjdCk6CisgICAgYnJlYWtkb3duID0gQmVuY2htYXJrUmVzdWx0cyhqc29uT2JqZWN0KQorICAg
IHJlc3VsdCA9IHt9CisgICAgcmVzdWx0W3VuaXRNYXJrZXJdID0gInB0cyIKKyAgICBmb3IgdGVz
dCBpbiBicmVha2Rvd24uX3Jlc3VsdHNbIkpldFN0cmVhbTIuMCJdWyJ0ZXN0cyJdLmtleXMoKToK
KyAgICAgICAgcmVzdWx0W3Rlc3RdID0gYnJlYWtkb3duLl9yZXN1bHRzWyJKZXRTdHJlYW0yLjAi
XVsidGVzdHMiXVt0ZXN0XVsibWV0cmljcyJdWyJTY29yZSJdW05vbmVdWyJjdXJyZW50Il0KKyAg
ICByZXR1cm4gcmVzdWx0CisKK2RlZiBtb3Rpb25NYXJrQnJlYWtkb3duKGpzb25PYmplY3QpOgor
ICAgIGJyZWFrZG93biA9IEJlbmNobWFya1Jlc3VsdHMoanNvbk9iamVjdCkKKworICAgIHJlc3Vs
dCA9IHt9CisgICAgcmVzdWx0W3VuaXRNYXJrZXJdID0gInB0cyIKKworICAgIGlmIGRldGVjdE1v
dGlvbk1hcmsoanNvbk9iamVjdCk6CisgICAgICAgIG5hbWUgPSAiTW90aW9uTWFyayIKKyAgICBl
bGlmIGRldGVjdE1vdGlvbk1hcmsxXzEoanNvbk9iamVjdCk6CisgICAgICAgIG5hbWUgPSAiTW90
aW9uTWFyay0xLjEiCisgICAgZWxzZToKKyAgICAgICAgbmFtZSA9ICJNb3Rpb25NYXJrLTEuMS4x
IgorCisgICAgZm9yIHRlc3QgaW4gYnJlYWtkb3duLl9yZXN1bHRzW25hbWVdWyJ0ZXN0cyJdLmtl
eXMoKToKKyAgICAgICAgcmVzdWx0W3Rlc3RdID0gYnJlYWtkb3duLl9yZXN1bHRzW25hbWVdWyJ0
ZXN0cyJdW3Rlc3RdWyJtZXRyaWNzIl1bIlNjb3JlIl1bTm9uZV1bImN1cnJlbnQiXQorCisgICAg
cmV0dXJuIHJlc3VsdAorCitkZWYgcGx0NUJyZWFrZG93bihqc29uT2JqZWN0KToKKyAgICBuYW1l
TWFwcGluZyA9IHt9CisKKyAgICBmb3IgbWFwcGluZ3MgaW4gIGpzb25PYmplY3RbInVybHMiXToK
KyAgICAgICAgZm9yIGtleSBpbiBtYXBwaW5ncy5rZXlzKCk6CisgICAgICAgICAgICBuYW1lTWFw
cGluZ1trZXldID0gbWFwcGluZ3Nba2V5XQorCisgICAgcmVzdWx0ID0ge30KKyAgICByZXN1bHRb
dW5pdE1hcmtlcl0gPSAibXMiCisgICAgZm9yIHRlc3QgaW4ganNvbk9iamVjdFsiaXRlcmF0aW9u
cyJdWzBdWyJ3YXJtIl0ua2V5cygpOgorICAgICAgICBpZiB0ZXN0ID09ICJHZW9tZXRyaWMiOgor
ICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgcmVzdWx0WyJ3YXJtLS0iICsgbmFtZU1hcHBp
bmdbdGVzdF1dID0gW10KKyAgICAgICAgcmVzdWx0WyJjb2xkLS0iICsgbmFtZU1hcHBpbmdbdGVz
dF1dID0gW10KKworICAgIGZvciBwYXlsb2FkIGluIGpzb25PYmplY3RbIml0ZXJhdGlvbnMiXToK
KyAgICAgICAgd2FybVRlc3RzID0gcGF5bG9hZFsid2FybSJdCisgICAgICAgIGNvbGRUZXN0cyA9
IHBheWxvYWRbImNvbGQiXQorICAgICAgICBmb3IgdGVzdCBpbiB3YXJtVGVzdHMua2V5cygpOgor
ICAgICAgICAgICAgaWYgdGVzdCA9PSAiR2VvbWV0cmljIjoKKyAgICAgICAgICAgICAgICBjb250
aW51ZQorICAgICAgICAgICAgcmVzdWx0WyJ3YXJtLS0iICsgbmFtZU1hcHBpbmdbdGVzdF1dLmFw
cGVuZCh3YXJtVGVzdHNbdGVzdF1bIkdlb21ldHJpYyJdKQorICAgICAgICAgICAgcmVzdWx0WyJj
b2xkLS0iICsgbmFtZU1hcHBpbmdbdGVzdF1dLmFwcGVuZChjb2xkVGVzdHNbdGVzdF1bIkdlb21l
dHJpYyJdKQorCisgICAgcmV0dXJuIHJlc3VsdAorCitkZWYgZGlzcGxheVN0cih2YWx1ZSk6Cisg
ICAgcmV0dXJuICJ7Oi42Zn0iLmZvcm1hdChmbG9hdCh2YWx1ZSkpCisKK2RlZiBkdW1wQnJlYWtk
b3ducyhhLCBiKToKKyAgICBuYW1lTGVuZ3RoID0gbGVuKCJzdWJ0ZXN0IikKKyAgICBhTGVuZ3Ro
ID0gbGVuKGFbdW5pdE1hcmtlcl0pCisgICAgYkxlbmd0aCA9IGxlbihhW3VuaXRNYXJrZXJdKQor
ICAgIHJhdGlvTGVuZ3RoID0gbGVuKCJiIC8gYSIpCisKKyAgICAjIFNlZSBCb25mZXJyb25pIGNv
cnJlY3Rpb246CisgICAgIyBodHRwczovL2VuLm0ud2lraXBlZGlhLm9yZy93aWtpL0JvbmZlcnJv
bmlfY29ycmVjdGlvbgorICAgICMgSWYgd2UncmUgdGVzdGluZyBOIGh5cG90aGVzaXMsIHdlIG1h
a2Ugb3VyIHRocmVzaG9sZCwgYWxwaGEsIC4wNS9OIGluc3RlYWQgb2YgLjA1LgorICAgIHRlc3RD
b3VudCA9IGZsb2F0KGxlbihhLmtleXMoKSkgLSAxKQorICAgIGFscGhhID0gLjA1IC8gdGVzdENv
dW50CisgICAgcFZhbHVlSGVhZGVyID0gInBWYWx1ZSwgYWxwaGEgPSB7fSIuZm9ybWF0KGRpc3Bs
YXlTdHIoYWxwaGEpKQorICAgIHBMZW5ndGggPSBsZW4ocFZhbHVlSGVhZGVyKQorCisgICAgZm9y
IGtleSBpbiBhLmtleXMoKToKKyAgICAgICAgaWYga2V5ID09IHVuaXRNYXJrZXI6CisgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICBuYW1lTGVuZ3RoID0gbWF4KG5hbWVMZW5ndGgsIGxlbihr
ZXkpKQorICAgICAgICBhTGVuZ3RoID0gbWF4KGFMZW5ndGgsIGxlbihkaXNwbGF5U3RyKG51bXB5
Lm1lYW4oYVtrZXldKSkpKQorICAgICAgICBiTGVuZ3RoID0gbWF4KGJMZW5ndGgsIGxlbihkaXNw
bGF5U3RyKG51bXB5Lm1lYW4oYltrZXldKSkpKQorICAgICAgICByYXRpb0xlbmd0aCA9IG1heChy
YXRpb0xlbmd0aCwgbGVuKGRpc3BsYXlTdHIobnVtcHkubWVhbihiW2tleV0pIC8gbnVtcHkubWVh
bihhW2tleV0pKSkpCisKKyAgICAgICAgKHRTdGF0aXN0aWMsIHBWYWx1ZSkgPSBzdGF0cy50dGVz
dF9pbmQoYVtrZXldLCBiW2tleV0sIGVxdWFsX3Zhcj1GYWxzZSkKKyAgICAgICAgc2lnbmlmaWNh
bnRTdHIgPSAiIgorICAgICAgICBpZiBwVmFsdWUgPD0gYWxwaGE6CisgICAgICAgICAgICBzaWdu
aWZpY2FudFN0ciA9ICIgKHNpZ25pZmljYW50KSIKKyAgICAgICAgcExlbmd0aCA9IG1heChwTGVu
Z3RoLCBsZW4oZGlzcGxheVN0cihwVmFsdWUpKSArIGxlbihzaWduaWZpY2FudFN0cikpCisKKyAg
ICBhTGVuZ3RoICs9IDIKKyAgICBiTGVuZ3RoICs9IDIKKyAgICBuYW1lTGVuZ3RoICs9IDIKKyAg
ICByYXRpb0xlbmd0aCArPSAyCisgICAgcExlbmd0aCArPSAyCisKKyAgICBzdHJpbmdzID0gW10K
KyAgICBzdHJpbmdzLmFwcGVuZCgifHtrZXk6XntuYW1lTGVuZ3RofX18e2FTY29yZTpee2FMZW5n
dGh9fSB8e2JTY29yZTpee2JMZW5ndGh9fSB8e2NvbXBhcmU6XntyYXRpb0xlbmd0aH19fHtwTWFy
a2VyOl57cExlbmd0aH19fCIuZm9ybWF0KGtleT0ic3VidGVzdCIsIGFTY29yZT1hW3VuaXRNYXJr
ZXJdLCBiU2NvcmU9Ylt1bml0TWFya2VyXSwgbmFtZUxlbmd0aD1uYW1lTGVuZ3RoLCBhTGVuZ3Ro
PWFMZW5ndGgsIGJMZW5ndGg9Ykxlbmd0aCAsIGNvbXBhcmU9ImIgLyBhIiwgcmF0aW9MZW5ndGg9
cmF0aW9MZW5ndGgsIHBNYXJrZXI9cFZhbHVlSGVhZGVyLCBwTGVuZ3RoPXBMZW5ndGgpKQorICAg
IGZvciBrZXkgaW4gYS5rZXlzKCk6CisgICAgICAgIGlmIGtleSA9PSB1bml0TWFya2VyOgorICAg
ICAgICAgICAgY29udGludWUKKworICAgICAgICBhU2NvcmUgPSBudW1weS5tZWFuKGFba2V5XSkK
KyAgICAgICAgYlNjb3JlID0gbnVtcHkubWVhbihiW2tleV0pCisKKyAgICAgICAgKHRTdGF0aXN0
aWMsIHBWYWx1ZSkgPSBzdGF0cy50dGVzdF9pbmQoYVtrZXldLCBiW2tleV0sIGVxdWFsX3Zhcj1G
YWxzZSkKKworICAgICAgICBzaWduaWZpY2FudFN0ciA9ICIiCisgICAgICAgIGlmIHBWYWx1ZSA8
PSBhbHBoYToKKyAgICAgICAgICAgIHNpZ25pZmljYW50U3RyID0gIiAoc2lnbmlmaWNhbnQpIgor
CisgICAgICAgIHN0cmluZ3MuYXBwZW5kKCJ8IHtrZXk6e25hbWVMZW5ndGh9fXx7YVNjb3JlOnth
TGVuZ3RofX0gfHtiU2NvcmU6e2JMZW5ndGh9fSB8e2NvbXBhcmU6e3JhdGlvTGVuZ3RofX18IHtw
VmFsdWU6PHtwTGVuZ3RofX18Ii5mb3JtYXQoa2V5PWtleSwgYVNjb3JlPWRpc3BsYXlTdHIoYVNj
b3JlKSwgYlNjb3JlPWRpc3BsYXlTdHIoYlNjb3JlKSwgbmFtZUxlbmd0aD1uYW1lTGVuZ3RoIC0g
MSwgYUxlbmd0aD1hTGVuZ3RoLCBiTGVuZ3RoPWJMZW5ndGgsIHJhdGlvTGVuZ3RoPXJhdGlvTGVu
Z3RoLCBjb21wYXJlPWRpc3BsYXlTdHIoYlNjb3JlIC8gYVNjb3JlKSwgcFZhbHVlID0gZGlzcGxh
eVN0cihwVmFsdWUpICsgc2lnbmlmaWNhbnRTdHIsIHBMZW5ndGg9cExlbmd0aCAtIDEpKQorCisg
ICAgbWF4TGVuID0gMAorICAgIGZvciBzIGluIHN0cmluZ3M6CisgICAgICAgIG1heExlbiA9IG1h
eChtYXhMZW4sIGxlbihzKSkKKworICAgIHZlcnRpY2FsU2VwYXJhdG9yID0gIi0iICogbWF4TGVu
CisgICAgc3RyaW5ncy5pbnNlcnQoMCwgdmVydGljYWxTZXBhcmF0b3IpCisgICAgc3RyaW5ncy5p
bnNlcnQoMiwgdmVydGljYWxTZXBhcmF0b3IpCisgICAgc3RyaW5ncy5hcHBlbmQodmVydGljYWxT
ZXBhcmF0b3IpCisKKyAgICBwcmludCAiXG4iCisgICAgZm9yIHMgaW4gc3RyaW5nczoKKyAgICAg
ICAgcHJpbnQocykKKyAgICBwcmludCAiXG4iCisKK2RlZiB3cml0ZUNTVihhLCBiLCBmaWxlTmFt
ZSk6CisgICAgc3RyaW5ncyA9IFtdCisgICAgcmVzdWx0ID0gIiIKKyAgICB0ZXN0Q291bnQgPSBm
bG9hdChsZW4oYS5rZXlzKCkpIC0gMSkKKyAgICBhbHBoYSA9IC4wNSAvIHRlc3RDb3VudAorICAg
IHBWYWx1ZUhlYWRlciA9ICJwVmFsdWVfd2l0aF9hbHBoYV97fSIuZm9ybWF0KGRpc3BsYXlTdHIo
YWxwaGEpKQorICAgIHJlc3VsdCArPSAidGVzdF9uYW1lLCB7fSwge30sIGJfZGl2aWRlZF9ieV9h
LCB7fSwgaXNfc2lnbmlmaWNhbnRcbiIuZm9ybWF0KCJhX2luXyIgKyBhW3VuaXRNYXJrZXJdLCAi
Yl9pbl8iICsgYlt1bml0TWFya2VyXSwgcFZhbHVlSGVhZGVyKQorCisKKyAgICBmb3Iga2V5IGlu
IGEua2V5cygpOgorICAgICAgICBpZiBrZXkgPT0gdW5pdE1hcmtlcjoKKyAgICAgICAgICAgIGNv
bnRpbnVlCisKKyAgICAgICAgYVNjb3JlID0gbnVtcHkubWVhbihhW2tleV0pCisgICAgICAgIGJT
Y29yZSA9IG51bXB5Lm1lYW4oYltrZXldKQorCisgICAgICAgICh0U3RhdGlzdGljLCBwVmFsdWUp
ID0gc3RhdHMudHRlc3RfaW5kKGFba2V5XSwgYltrZXldLCBlcXVhbF92YXI9RmFsc2UpCisgICAg
ICAgICMgU2VlIGFib3ZlIGNvbW1lbnQgYWJvdXQgQm9uZmVycm9uaSBjb3JyZWN0aW9uCisgICAg
ICAgIHNpZ25pZmljYW50U3RyID0gIk5vIgorICAgICAgICByZXN1bHQgKz0gInt9LHt9LHt9LHt9
LHt9LHt9XG4iLmZvcm1hdChrZXksIGRpc3BsYXlTdHIoYVNjb3JlKSwgZGlzcGxheVN0cihiU2Nv
cmUpLCBkaXNwbGF5U3RyKGJTY29yZSAvIGFTY29yZSksIGRpc3BsYXlTdHIocFZhbHVlKSwgc2ln
bmlmaWNhbnRTdHIpCisKKyAgICBmID0gb3BlbihmaWxlTmFtZSwgInciKQorICAgIGYud3JpdGUo
cmVzdWx0KQorICAgIGYuY2xvc2UoKQorCiAKIGRlZiBkZXRlY3RKZXRTdHJlYW0yKHBheWxvYWQp
OgogICAgIHJldHVybiAiSmV0U3RyZWFtMi4wIiBpbiBwYXlsb2FkCkBAIC0xMTAsMTIgKzI3MSwx
NyBAQCBkZWYgZGV0ZWN0TW90aW9uTWFyayhwYXlsb2FkKToKIGRlZiBkZXRlY3RNb3Rpb25NYXJr
MV8xKHBheWxvYWQpOgogICAgIHJldHVybiAiTW90aW9uTWFyay0xLjEiIGluIHBheWxvYWQKIAor
ZGVmIGRldGVjdE1vdGlvbk1hcmsxXzFfMShwYXlsb2FkKToKKyAgICByZXR1cm4gIk1vdGlvbk1h
cmstMS4xLjEiIGluIHBheWxvYWQKKwogZGVmIG1vdGlvbk1hcmtSZXN1bHRzKHBheWxvYWQpOgot
ICAgIGFzc2VydCBkZXRlY3RNb3Rpb25NYXJrKHBheWxvYWQpIG9yIGRldGVjdE1vdGlvbk1hcmsx
XzEocGF5bG9hZCkKKyAgICBhc3NlcnQgZGV0ZWN0TW90aW9uTWFyayhwYXlsb2FkKSBvciBkZXRl
Y3RNb3Rpb25NYXJrMV8xKHBheWxvYWQpIG9yIGRldGVjdE1vdGlvbk1hcmsxXzFfMShwYXlsb2Fk
KQogICAgIGlmIGRldGVjdE1vdGlvbk1hcmsocGF5bG9hZCk6CiAgICAgICAgIHBheWxvYWQgPSBw
YXlsb2FkWyJNb3Rpb25NYXJrIl0KLSAgICBlbHNlOgorICAgIGVsaWYgZGV0ZWN0TW90aW9uTWFy
azFfMShwYXlsb2FkKToKICAgICAgICAgcGF5bG9hZCA9IHBheWxvYWRbIk1vdGlvbk1hcmstMS4x
Il0KKyAgICBlbHNlOgorICAgICAgICBwYXlsb2FkID0gcGF5bG9hZFsiTW90aW9uTWFyay0xLjEu
MSJdCiAgICAgdGVzdE5hbWVzID0gcGF5bG9hZFsidGVzdHMiXS5rZXlzKCkKICAgICBudW1UZXN0
cyA9IGxlbihwYXlsb2FkWyJ0ZXN0cyJdW3Rlc3ROYW1lc1swXV1bIm1ldHJpY3MiXVsiU2NvcmUi
XVsiY3VycmVudCJdKQogICAgIHJlc3VsdHMgPSBbXQpAQCAtMTI3LDkgKzI5Myw2IEBAIGRlZiBt
b3Rpb25NYXJrUmVzdWx0cyhwYXlsb2FkKToKIAogICAgIHJldHVybiByZXN1bHRzCiAKLWRlZiBt
b3Rpb25NYXJrMV8xUmVzdWx0cyhwYXlsb2FkKToKLSAgICByZXR1cm4gbW90aW9uTWFya1Jlc3Vs
dHMocGF5bG9hZCkKLQogZGVmIGRldGVjdEJlbmNobWFyayhwYXlsb2FkKToKICAgICBpZiBkZXRl
Y3RKZXRTdHJlYW0yKHBheWxvYWQpOgogICAgICAgICByZXR1cm4gSmV0U3RyZWFtMgpAQCAtMTQx
LDYgKzMwNCw4IEBAIGRlZiBkZXRlY3RCZW5jaG1hcmsocGF5bG9hZCk6CiAgICAgICAgIHJldHVy
biBNb3Rpb25NYXJrCiAgICAgaWYgZGV0ZWN0TW90aW9uTWFyazFfMShwYXlsb2FkKToKICAgICAg
ICAgcmV0dXJuIE1vdGlvbk1hcmsxXzEKKyAgICBpZiBkZXRlY3RNb3Rpb25NYXJrMV8xXzEocGF5
bG9hZCk6CisgICAgICAgIHJldHVybiBNb3Rpb25NYXJrMV8xCiAgICAgcmV0dXJuIE5vbmUKIAog
ZGVmIGJpZ2dlcklzQmV0dGVyKGJlbmNobWFya1R5cGUpOgpAQCAtMTk5LDYgKzM2NCwxNCBAQCBk
ZWYgZ2V0T3B0aW9ucygpOgogICAgICAgICByZXF1aXJlZD1UcnVlLAogICAgICAgICBoZWxwPSJi
IG9mIGEvYi4gUGF0aCB0byBKU09OIHJlc3VsdHMgZmlsZS4iKQogCisgICAgcGFyc2VyLmFkZF9h
cmd1bWVudCgiLS1jc3YiLAorICAgICAgICB0eXBlPXN0ciwKKyAgICAgICAgcmVxdWlyZWQ9RmFs
c2UsCisgICAgICAgIGhlbHA9IlBhdGggdG8gd3JpdGUgYSBjc3YgZmlsZSBjb250YWluaW5nIHN1
YnRlc3QgYnJlYWtkb3duLiIpCisKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWJyZWFrZG93
biIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IlBy
aW50IGEgcGVyIHN1YnRlc3QgYnJlYWtkb3duLiIpCisKICAgICByZXR1cm4gcGFyc2VyLnBhcnNl
X2tub3duX2FyZ3MoKVswXQogCiAKQEAgLTIyMCwxNSArMzkzLDM4IEBAIGRlZiBtYWluKCk6CiAg
ICAgICAgIHN5cy5leGl0KDEpCiAgICAgCiAgICAgaWYgdHlwZUEgPT0gSmV0U3RyZWFtMjoKKyAg
ICAgICAgaWYgYXJncy5icmVha2Rvd246CisgICAgICAgICAgICBkdW1wQnJlYWtkb3ducyhqZXRT
dHJlYW0yQnJlYWtkb3duKGEpLCBqZXRTdHJlYW0yQnJlYWtkb3duKGIpKQorCiAgICAgICAgIHR0
ZXN0KHR5cGVBLCBKZXRTdHJlYW0yUmVzdWx0cyhhKSwgSmV0U3RyZWFtMlJlc3VsdHMoYikpCisK
KyAgICAgICAgaWYgYXJncy5jc3Y6CisgICAgICAgICAgICB3cml0ZUNTVihqZXRTdHJlYW0yQnJl
YWtkb3duKGEpLCBqZXRTdHJlYW0yQnJlYWtkb3duKGIpLCBhcmdzLmNzdikKICAgICBlbGlmIHR5
cGVBID09IFNwZWVkb21ldGVyMjoKKyAgICAgICAgaWYgYXJncy5icmVha2Rvd246CisgICAgICAg
ICAgICBkdW1wQnJlYWtkb3ducyhzcGVlZG9tZXRlcjJCcmVha2Rvd24oYSksIHNwZWVkb21ldGVy
MkJyZWFrZG93bihiKSkKKwogICAgICAgICB0dGVzdCh0eXBlQSwgU3BlZWRvbWV0ZXIyUmVzdWx0
cyhhKSwgU3BlZWRvbWV0ZXIyUmVzdWx0cyhiKSkKLSAgICBlbGlmIHR5cGVBID09IE1vdGlvbk1h
cms6CisKKyAgICAgICAgaWYgYXJncy5jc3Y6CisgICAgICAgICAgICB3cml0ZUNTVihzcGVlZG9t
ZXRlcjJCcmVha2Rvd24oYSksIHNwZWVkb21ldGVyMkJyZWFrZG93bihiKSwgYXJncy5jc3YpCisK
KyAgICBlbGlmIHR5cGVBID09IE1vdGlvbk1hcmsgb3IgdHlwZUEgPT0gTW90aW9uTWFyazFfMSBv
ciB0eXBlQSA9PSBNb3Rpb25NYXJrMV8xXzE6CisgICAgICAgIGlmIGFyZ3MuYnJlYWtkb3duOgor
ICAgICAgICAgICAgZHVtcEJyZWFrZG93bnMobW90aW9uTWFya0JyZWFrZG93bihhKSwgbW90aW9u
TWFya0JyZWFrZG93bihiKSkKKwogICAgICAgICB0dGVzdCh0eXBlQSwgbW90aW9uTWFya1Jlc3Vs
dHMoYSksIG1vdGlvbk1hcmtSZXN1bHRzKGIpKQotICAgIGVsaWYgdHlwZUEgPT0gTW90aW9uTWFy
azFfMToKLSAgICAgICAgdHRlc3QodHlwZUEsIG1vdGlvbk1hcmsxXzFSZXN1bHRzKGEpLCBtb3Rp
b25NYXJrMV8xUmVzdWx0cyhiKSkKKworICAgICAgICBpZiBhcmdzLmNzdjoKKyAgICAgICAgICAg
IHdyaXRlQ1NWKG1vdGlvbk1hcmtCcmVha2Rvd24oYSksIG1vdGlvbk1hcmtCcmVha2Rvd24oYiks
IGFyZ3MuY3N2KQogICAgIGVsaWYgdHlwZUEgPT0gUExUNToKKyAgICAgICAgaWYgYXJncy5icmVh
a2Rvd246CisgICAgICAgICAgICBkdW1wQnJlYWtkb3ducyhwbHQ1QnJlYWtkb3duKGEpLCBwbHQ1
QnJlYWtkb3duKGIpKQorCiAgICAgICAgIHR0ZXN0KHR5cGVBLCBQTFQ1UmVzdWx0cyhhKSwgUExU
NVJlc3VsdHMoYikpCisKKyAgICAgICAgaWYgYXJncy5jc3Y6CisgICAgICAgICAgICB3cml0ZUNT
VihwbHQ1QnJlYWtkb3duKGEpLCBwbHQ1QnJlYWtkb3duKGIpLCBhcmdzLmNzdikKICAgICBlbHNl
OgogICAgICAgICBwcmludCAiVW5rbm93biBiZW5jaG1hcmsgdHlwZSIKICAgICAgICAgc3lzLmV4
aXQoMSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>