<?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>218935</bug_id>
          
          <creation_ts>2020-11-13 21:01:33 -0800</creation_ts>
          <short_desc>[webkitscmpy] Generalize parts of local.Scm class</short_desc>
          <delta_ts>2020-11-16 19:17:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218827</see_also>
          <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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1707471</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-13 21:01:33 -0800</bug_when>
    <thetext>Some of the logic in the local.Scm class is also applicable for remote repositories. We should break those parts off into a more generic base class that local.Scm inherits from.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707472</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-13 21:02:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/71395688&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707473</commentid>
    <comment_count>2</comment_count>
      <attachid>414123</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-13 21:05:31 -0800</bug_when>
    <thetext>Created attachment 414123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708023</commentid>
    <comment_count>3</comment_count>
      <attachid>414123</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-11-16 15:47:59 -0800</bug_when>
    <thetext>Comment on attachment 414123
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708055</commentid>
    <comment_count>4</comment_count>
      <attachid>414295</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-16 17:10:03 -0800</bug_when>
    <thetext>Created attachment 414295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708094</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-16 19:17:40 -0800</bug_when>
    <thetext>Committed r269891: &lt;https://trac.webkit.org/changeset/269891&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414295.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414123</attachid>
            <date>2020-11-13 21:05:31 -0800</date>
            <delta_ts>2020-11-16 17:10:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218935-20201113210530.patch</filename>
            <type>text/plain</type>
            <size>14101</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2OTgxMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDIwLTExLTEzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0c2NtcHldIEdlbmVyYWxpemUgcGFydHMgb2YgbG9jYWwuU2Nt
IGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTg5MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzk1Njg4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAgICAg
KiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9zY20ucHk6
CisgICAgICAgIChTY20pOgorICAgICAgICAoU2NtLkV4Y2VwdGlvbik6IE1vdmVkIHRvIFNjbUJh
c2UuCisgICAgICAgIChTY20uX19pbml0X18pOiBNb3ZlIGJyYW5jaGVzIGxvZ2ljIHRvIFNjbUJh
c2UuCisgICAgICAgIChTY20uaXNfc3ZuKTogTW92ZWQgdG8gU2NtQmFzZS4KKyAgICAgICAgKFNj
bS5pc19naXQpOiBEaXR0by4KKyAgICAgICAgKFNjbS5kZWZhdWx0X2JyYW5jaCk6IERpdHRvLgor
ICAgICAgICAoU2NtLmJyYW5jaGVzKTogRGl0dG8uCisgICAgICAgIChTY20udGFncyk6IERpdHRv
LgorICAgICAgICAoU2NtLmZpbmQpOiBEaXR0by4KKyAgICAgICAgKFNjbS5jb21taXQpOiBEaXR0
by4KKyAgICAgICAgKFNjbS5wcmlvcml0aXplX2JyYW5jaGVzKTogRGl0dG8uCisgICAgICAgIChT
Y20ubG9nKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvbG9jYWwvc3ZuLnB5OgorICAgICAgICAoU3ZuLmNvbW1pdCk6IFBhc3Npbmcg
YnJhbmNoIHRvIHNlbGYuaW5mbyBpcyByZWR1bmRhbnQuCisgICAgICAgICogU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvX19pbml0X18ucHk6CisgICAgICAg
ICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvc2NtX2Jhc2UucHk6
IEFkZGVkLgorICAgICAgICAoU2NtQmFzZSk6IEJhc2UgY2xhc3MgZm9yIGFsbCBsb2NhbCBhbmQg
cmVtb3RlIFNjbSBvYmplY3RzLgorICAgICAgICAoU2NtQmFzZS5FeGNlcHRpb24pOiBNb3ZlZCBm
cm9tIGxvY2FsLlNjbS4KKyAgICAgICAgKFNjbUJhc2UuX19pbml0X18pOiBEaXR0by4KKyAgICAg
ICAgKFNjbUJhc2UuaXNfc3ZuKTogRGl0dG8uCisgICAgICAgIChTY21CYXNlLmlzX2dpdCk6IERp
dHRvLgorICAgICAgICAoU2NtQmFzZS5kZWZhdWx0X2JyYW5jaCk6IERpdHRvLgorICAgICAgICAo
U2NtQmFzZS5icmFuY2hlcyk6IERpdHRvLgorICAgICAgICAoU2NtQmFzZS50YWdzKTogRGl0dG8u
CisgICAgICAgIChTY21CYXNlLmNvbW1pdCk6IERpdHRvLgorICAgICAgICAoU2NtQmFzZS5wcmlv
cml0aXplX2JyYW5jaGVzKTogRGl0dG8uCisgICAgICAgIChTY21CYXNlLmZpbmQpOiBEaXR0by4K
KyAgICAgICAgKFNjbUJhc2UubG9nKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJp
ZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zdm5fdW5pdHRlc3QucHk6CisKIDIwMjAt
MTEtMTMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVt
ZW50IGJhc2ljIHBlcm1pc3Npb24gY2hlY2sgZm9yIFNwZWVjaFJlY29nbml0aW9uCkluZGV4OiBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJr
aXRzY21weS9fX2luaXRfXy5weQkocmV2aXNpb24gMjY5ODExKQorKysgVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDEyICs0NiwxMyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICJQbGVh
c2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3RhbGwgd2Via2l0Y29yZXB5IC0t
ZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgogICAgICkKIAotdmVyc2lvbiA9
IFZlcnNpb24oMCwgMywgMCkKK3ZlcnNpb24gPSBWZXJzaW9uKDAsIDMsIDEpCiAKIEF1dG9JbnN0
YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2RhdGV1dGlsJywgVmVyc2lvbigyLCA4LCAxKSwgcHlwaV9u
YW1lPSdweXRob24tZGF0ZXV0aWwnKSkKIAogZnJvbSB3ZWJraXRzY21weS5jb250cmlidXRvciBp
bXBvcnQgQ29udHJpYnV0b3IKIGZyb20gd2Via2l0c2NtcHkuY29tbWl0IGltcG9ydCBDb21taXQK
K2Zyb20gd2Via2l0c2NtcHkuc2NtX2Jhc2UgaW1wb3J0IFNjbUJhc2UKIAogZnJvbSB3ZWJraXRz
Y21weSBpbXBvcnQgbG9jYWwKIGZyb20gd2Via2l0c2NtcHkgaW1wb3J0IG1vY2tzCkluZGV4OiBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9zY21fYmFzZS5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJr
aXRzY21weS9zY21fYmFzZS5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9zY21fYmFzZS5weQkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEzNCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitp
bXBvcnQgbG9nZ2luZworaW1wb3J0IHJlCitpbXBvcnQgc2l4CitpbXBvcnQgc3lzCisKK2Zyb20g
bG9nZ2luZyBpbXBvcnQgTnVsbEhhbmRsZXIKK2Zyb20gd2Via2l0c2NtcHkgaW1wb3J0IENvbW1p
dCwgbG9nCisKKworY2xhc3MgU2NtQmFzZShvYmplY3QpOgorICAgIGNsYXNzIEV4Y2VwdGlvbihS
dW50aW1lRXJyb3IpOgorICAgICAgICBwYXNzCisKKyAgICAjIFByb2plY3RzIGNhbiBkZWZpbmUg
Zm9yIHRoZW1zZWx2ZXMgd2hhdCBjb25zdGl0dXRlcyBhIGRldmVsb3BtZW50IHZzIGEgcHJvZHVj
dGlvbiBicmFuY2gsCisgICAgIyB0aGUgZm9sbG93aW5nIGlkaW9tcyBzZWVtIGNvbW1vbiBlbm91
Z2ggdG8gYmUgc2hhcmVkLgorICAgIERFVl9CUkFOQ0hFUyA9IHJlLmNvbXBpbGUocicuKlsoZW5n
KShkZXYpKGJ1ZyldLy4rJykKKyAgICBQUk9EX0JSQU5DSEVTID0gcmUuY29tcGlsZShyJ1xTKy1b
XGQrXC5dKy1icmFuY2gnKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRldl9icmFuY2hlcz1O
b25lLCBwcm9kX2JyYW5jaGVzPU5vbmUpOgorICAgICAgICBzZWxmLmRldl9icmFuY2hlcyA9IGRl
dl9icmFuY2hlcyBvciBzZWxmLkRFVl9CUkFOQ0hFUworICAgICAgICBzZWxmLnByb2RfYnJhbmNo
ZXMgPSBwcm9kX2JyYW5jaGVzIG9yIHNlbGYuUFJPRF9CUkFOQ0hFUworICAgICAgICBzZWxmLnBh
dGggPSBOb25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfc3ZuKHNlbGYpOgorICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19naXQoc2VsZik6Cisg
ICAgICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRlZmF1bHRfYnJh
bmNoKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBicmFuY2hlcyhzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcigpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdGFncyhzZWxmKToKKyAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisKKyAgICBkZWYgY29tbWl0KHNlbGYsIGhh
c2g9Tm9uZSwgcmV2aXNpb249Tm9uZSwgaWRlbnRpZmllcj1Ob25lLCBicmFuY2g9Tm9uZSwgdGFn
PU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIGRlZiBw
cmlvcml0aXplX2JyYW5jaGVzKHNlbGYsIGJyYW5jaGVzKToKKyAgICAgICAgaWYgbGVuKGJyYW5j
aGVzKSA9PSAxOgorICAgICAgICAgICAgcmV0dXJuIGJyYW5jaGVzWzBdCisKKyAgICAgICAgZGVm
YXVsdF9icmFuY2ggPSBzZWxmLmRlZmF1bHRfYnJhbmNoCisgICAgICAgIGlmIGRlZmF1bHRfYnJh
bmNoIGluIGJyYW5jaGVzOgorICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfYnJhbmNoCisKKyAg
ICAgICAgIyBXZSBkb24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBkZXRlcm1pbmUgYSBi
cmFuY2guIFdlIHdpbGwgYXR0ZW1wdCB0byBmaXJzdCB1c2UgdGhlIGJyYW5jaCBzcGVjaWZpZWQK
KyAgICAgICAgIyBieSB0aGUgY2FsbGVyLCB0aGVuIHRoZSBvbmUgdGhlbiBjaGVja291dCBpcyBj
dXJyZW50bHkgb24uIElmIGJvdGggdGhvc2UgZmFpbCwgd2Ugd2lsbCBwaWNrIG9uZSBvZiB0aGUK
KyAgICAgICAgIyBvdGhlciBicmFuY2hlcy4gV2UgcHJlZmVyIHByb2R1Y3Rpb24gYnJhbmNoZXMg
Zmlyc3QsIHRoZW4gYW55IGJyYW5jaCB3aGljaCBpc24ndCBleHBsaWNpdGx5IGxhYmVsZWQgYQor
ICAgICAgICAjIGRldiBicmFuY2guIFdlIHRoZW4gc29ydCB0aGUgbGlzdCBvZiBjYW5kaWRhdGUg
YnJhbmNoZXMgYW5kIHBpY2sgdGhlIHNtYWxsZXN0CisgICAgICAgIGZpbHRlcmVkX2NhbmRpZGF0
ZXMgPSBbY2FuZGlkYXRlIGZvciBjYW5kaWRhdGUgaW4gYnJhbmNoZXMgaWYgc2VsZi5wcm9kX2Jy
YW5jaGVzLm1hdGNoKGNhbmRpZGF0ZSldCisgICAgICAgIGlmIG5vdCBmaWx0ZXJlZF9jYW5kaWRh
dGVzOgorICAgICAgICAgICAgZmlsdGVyZWRfY2FuZGlkYXRlcyA9IFtjYW5kaWRhdGUgZm9yIGNh
bmRpZGF0ZSBpbiBicmFuY2hlcyBpZiBub3Qgc2VsZi5kZXZfYnJhbmNoZXMubWF0Y2goY2FuZGlk
YXRlKV0KKyAgICAgICAgaWYgbm90IGZpbHRlcmVkX2NhbmRpZGF0ZXM6CisgICAgICAgICAgICBm
aWx0ZXJlZF9jYW5kaWRhdGVzID0gYnJhbmNoZXMKKyAgICAgICAgcmV0dXJuIHNvcnRlZChmaWx0
ZXJlZF9jYW5kaWRhdGVzKVswXQorCisgICAgZGVmIGZpbmQoc2VsZiwgYXJndW1lbnQpOgorICAg
ICAgICBpZiBub3QgaXNpbnN0YW5jZShhcmd1bWVudCwgc2l4LnN0cmluZ190eXBlcyk6CisgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJFeHBlY3RlZCAnYXJndW1lbnQnIHRvIGJlIGEgc3Ry
aW5nLCBub3QgJ3t9JyIuZm9ybWF0KHR5cGUoYXJndW1lbnQpKSkKKworICAgICAgICBvZmZzZXQg
PSAwCisgICAgICAgIGlmICd+JyBpbiBhcmd1bWVudDoKKyAgICAgICAgICAgIGZvciBzIGluIGFy
Z3VtZW50LnNwbGl0KCd+JylbMTpdOgorICAgICAgICAgICAgICAgIGlmIHMgYW5kIG5vdCBzLmlz
ZGlnaXQoKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJ3t9JyBpcyBu
b3QgYSB2YWxpZCBhcmd1bWVudCB0byBTY20uZmluZCgpIi5mb3JtYXQoYXJndW1lbnQpKQorICAg
ICAgICAgICAgICAgIG9mZnNldCArPSBpbnQocykgaWYgcyBlbHNlIDEKKyAgICAgICAgICAgIGFy
Z3VtZW50ID0gYXJndW1lbnQuc3BsaXQoJ34nKVswXQorCisgICAgICAgIGlmIGFyZ3VtZW50ID09
ICdIRUFEJzoKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuY29tbWl0KCkKKworICAgICAgICBl
bGlmIGFyZ3VtZW50IGluIHNlbGYuYnJhbmNoZXM6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxm
LmNvbW1pdChicmFuY2g9YXJndW1lbnQpCisKKyAgICAgICAgZWxpZiBhcmd1bWVudCBpbiBzZWxm
LnRhZ3M6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmNvbW1pdCh0YWc9YXJndW1lbnQpCisK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIG9mZnNldDoKKyAgICAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCInficgb2Zmc2V0cyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgcmV2aXNp
b25zIGFuZCBpZGVudGlmaWVycyIpCisKKyAgICAgICAgICAgIHBhcnNlZF9jb21taXQgPSBDb21t
aXQucGFyc2UoYXJndW1lbnQpCisgICAgICAgICAgICByZXR1cm4gc2VsZi5jb21taXQoCisgICAg
ICAgICAgICAgICAgaGFzaD1wYXJzZWRfY29tbWl0Lmhhc2gsCisgICAgICAgICAgICAgICAgcmV2
aXNpb249cGFyc2VkX2NvbW1pdC5yZXZpc2lvbiwKKyAgICAgICAgICAgICAgICBpZGVudGlmaWVy
PXBhcnNlZF9jb21taXQuaWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICBicmFuY2g9cGFyc2Vk
X2NvbW1pdC5icmFuY2gsCisgICAgICAgICAgICApCisKKyAgICAgICAgaWYgbm90IG9mZnNldDoK
KyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAgICAgICByZXR1cm4gc2VsZi5jb21taXQo
CisgICAgICAgICAgICBpZGVudGlmaWVyPXJlc3VsdC5pZGVudGlmaWVyIC0gb2Zmc2V0LAorICAg
ICAgICAgICAgYnJhbmNoPXJlc3VsdC5icmFuY2gsCisgICAgICAgICkKKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBsb2coY2xzLCBtZXNzYWdlLCBsZXZlbD1sb2dnaW5nLldBUk5JTkcpOgor
ICAgICAgICBpZiBub3QgbG9nLmhhbmRsZXJzIG9yIGFsbChbaXNpbnN0YW5jZShoYW5kbGUsIE51
bGxIYW5kbGVyKSBmb3IgaGFuZGxlIGluIGxvZy5oYW5kbGVyc10pOgorICAgICAgICAgICAgc3lz
LnN0ZGVyci53cml0ZShtZXNzYWdlICsgJ1xuJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGxvZy5sb2cobGV2ZWwsIG1lc3NhZ2UpCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93
ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9zY20ucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbG9jYWwvc2NtLnB5CShy
ZXZpc2lvbiAyNjk4MTEpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9sb2NhbC9zY20ucHkJKHdvcmtpbmcgY29weSkKQEAgLTIxLDIxICsyMSwxNSBA
QAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCiAKLWltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKIGltcG9ydCBy
ZQogaW1wb3J0IHNpeAotaW1wb3J0IHN5cwogCi1mcm9tIGxvZ2dpbmcgaW1wb3J0IE51bGxIYW5k
bGVyCiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgcnVuCi1mcm9tIHdlYmtpdHNjbXB5IGltcG9y
dCBsb2csIENvbW1pdAorZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgU2NtQmFzZQogCiAKLWNsYXNz
IFNjbShvYmplY3QpOgotICAgIGNsYXNzIEV4Y2VwdGlvbihSdW50aW1lRXJyb3IpOgotICAgICAg
ICBwYXNzCi0KK2NsYXNzIFNjbShTY21CYXNlKToKICAgICAjIFByb2plY3RzIGNhbiBkZWZpbmUg
Zm9yIHRoZW1zZWx2ZXMgd2hhdCBjb25zdGl0dXRlcyBhIGRldmVsb3BtZW50IHZzIGEgcHJvZHVj
dGlvbiBicmFuY2gsCiAgICAgIyB0aGUgZm9sbG93aW5nIGlkaW9tcyBzZWVtIGNvbW1vbiBlbm91
Z2ggdG8gYmUgc2hhcmVkLgogICAgIERFVl9CUkFOQ0hFUyA9IHJlLmNvbXBpbGUocicuKlsoZW5n
KShkZXYpKGJ1ZyldLy4rJykKQEAgLTY0LDExMyArNTgsMjIgQEAgY2xhc3MgU2NtKG9iamVjdCk6
CiAgICAgICAgIHJhaXNlIE9TRXJyb3IoIid7fScgaXMgbm90IGEga25vd24gU0NNIHR5cGUiLmZv
cm1hdChwYXRoKSkKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCBkZXZfYnJhbmNoZXM9
Tm9uZSwgcHJvZF9icmFuY2hlcz1Ob25lKToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocGF0
aCwgc3RyKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJycpCi0gICAgICAgIHNlbGYu
cGF0aCA9IHBhdGgKLQotICAgICAgICBzZWxmLmRldl9icmFuY2hlcyA9IGRldl9icmFuY2hlcyBv
ciBzZWxmLkRFVl9CUkFOQ0hFUwotICAgICAgICBzZWxmLnByb2RfYnJhbmNoZXMgPSBwcm9kX2Jy
YW5jaGVzIG9yIHNlbGYuUFJPRF9CUkFOQ0hFUworICAgICAgICBzdXBlcihTY20sIHNlbGYpLl9f
aW5pdF9fKGRldl9icmFuY2hlcz1kZXZfYnJhbmNoZXMsIHByb2RfYnJhbmNoZXM9cHJvZF9icmFu
Y2hlcykKIAotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBpc19zdm4oc2VsZik6Ci0gICAgICAgIHJl
dHVybiBGYWxzZQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGlzX2dpdChzZWxmKToKLSAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHBhdGgsIHNpeC5zdHJp
bmdfdHlwZXMpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRXhwZWN0ZWQgJ3BhdGgn
IHRvIGJlIGEgc3RyaW5nIHR5cGUsIG5vdCAne30nIi5mb3JtYXQodHlwZShwYXRoKSkpCisgICAg
ICAgIHNlbGYucGF0aCA9IHBhdGgKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiByb290X3BhdGgo
c2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQogCiAgICAgQHByb3Bl
cnR5Ci0gICAgZGVmIGRlZmF1bHRfYnJhbmNoKHNlbGYpOgotICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yKCkKLQotICAgIEBwcm9wZXJ0eQogICAgIGRlZiBicmFuY2goc2VsZik6CiAg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQogCi0gICAgQHByb3BlcnR5Ci0gICAg
ZGVmIGJyYW5jaGVzKHNlbGYpOgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkK
LQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiB0YWdzKHNlbGYpOgotICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yKCkKLQogICAgIGRlZiByZW1vdGUoc2VsZiwgbmFtZT1Ob25lKToKICAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCiAKLSAgICBkZWYgZmluZChzZWxmLCBh
cmd1bWVudCk6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3VtZW50LCBzaXguc3RyaW5n
X3R5cGVzKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4cGVjdGVkICdhcmd1bWVu
dCcgdG8gYmUgYSBzdHJpbmcsIG5vdCAne30nIi5mb3JtYXQodHlwZShhcmd1bWVudCkpKQotCi0g
ICAgICAgIG9mZnNldCA9IDAKLSAgICAgICAgaWYgJ34nIGluIGFyZ3VtZW50OgotICAgICAgICAg
ICAgZm9yIHMgaW4gYXJndW1lbnQuc3BsaXQoJ34nKVsxOl06Ci0gICAgICAgICAgICAgICAgaWYg
cyBhbmQgbm90IHMuaXNkaWdpdCgpOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCIne30nIGlzIG5vdCBhIHZhbGlkIGFyZ3VtZW50IHRvIFNjbS5maW5kKCkiLmZvcm1hdChh
cmd1bWVudCkpCi0gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGludChzKSBpZiBzIGVsc2UgMQot
ICAgICAgICAgICAgYXJndW1lbnQgPSBhcmd1bWVudC5zcGxpdCgnficpWzBdCi0KLSAgICAgICAg
aWYgYXJndW1lbnQgPT0gJ0hFQUQnOgotICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5jb21taXQo
KQotCi0gICAgICAgIGVsaWYgYXJndW1lbnQgaW4gc2VsZi5icmFuY2hlczoKLSAgICAgICAgICAg
IHJlc3VsdCA9IHNlbGYuY29tbWl0KGJyYW5jaD1hcmd1bWVudCkKLQotICAgICAgICBlbGlmIGFy
Z3VtZW50IGluIHNlbGYudGFnczoKLSAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuY29tbWl0KHRh
Zz1hcmd1bWVudCkKLQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgb2Zmc2V0OgotICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIid+JyBvZmZzZXRzIGFyZSBub3Qgc3VwcG9y
dGVkIGZvciByZXZpc2lvbnMgYW5kIGlkZW50aWZpZXJzIikKLQotICAgICAgICAgICAgcGFyc2Vk
X2NvbW1pdCA9IENvbW1pdC5wYXJzZShhcmd1bWVudCkKLSAgICAgICAgICAgIHJldHVybiBzZWxm
LmNvbW1pdCgKLSAgICAgICAgICAgICAgICBoYXNoPXBhcnNlZF9jb21taXQuaGFzaCwKLSAgICAg
ICAgICAgICAgICByZXZpc2lvbj1wYXJzZWRfY29tbWl0LnJldmlzaW9uLAotICAgICAgICAgICAg
ICAgIGlkZW50aWZpZXI9cGFyc2VkX2NvbW1pdC5pZGVudGlmaWVyLAotICAgICAgICAgICAgICAg
IGJyYW5jaD1wYXJzZWRfY29tbWl0LmJyYW5jaCwKLSAgICAgICAgICAgICkKLQotICAgICAgICBp
ZiBub3Qgb2Zmc2V0OgotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAotCi0gICAgICAgIHJldHVy
biBzZWxmLmNvbW1pdCgKLSAgICAgICAgICAgIGlkZW50aWZpZXI9cmVzdWx0LmlkZW50aWZpZXIg
LSBvZmZzZXQsCi0gICAgICAgICAgICBicmFuY2g9cmVzdWx0LmJyYW5jaCwKLSAgICAgICAgKQot
CiAgICAgZGVmIGNoZWNrb3V0KHNlbGYsIGFyZ3VtZW50KToKICAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcigpCi0KLSAgICBkZWYgY29tbWl0KHNlbGYsIGhhc2g9Tm9uZSwgcmV2aXNp
b249Tm9uZSwgaWRlbnRpZmllcj1Ob25lLCBicmFuY2g9Tm9uZSwgdGFnPU5vbmUpOgotICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKLQotICAgIGRlZiBwcmlvcml0aXplX2JyYW5j
aGVzKHNlbGYsIGJyYW5jaGVzKToKLSAgICAgICAgaWYgbGVuKGJyYW5jaGVzKSA9PSAxOgotICAg
ICAgICAgICAgcmV0dXJuIGJyYW5jaGVzWzBdCi0KLSAgICAgICAgZGVmYXVsdF9icmFuY2ggPSBz
ZWxmLmRlZmF1bHRfYnJhbmNoCi0gICAgICAgIGlmIGRlZmF1bHRfYnJhbmNoIGluIGJyYW5jaGVz
OgotICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRfYnJhbmNoCi0KLSAgICAgICAgIyBXZSBkb24n
dCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBkZXRlcm1pbmUgYSBicmFuY2guIFdlIHdpbGwg
YXR0ZW1wdCB0byBmaXJzdCB1c2UgdGhlIGJyYW5jaCBzcGVjaWZpZWQKLSAgICAgICAgIyBieSB0
aGUgY2FsbGVyLCB0aGVuIHRoZSBvbmUgdGhlbiBjaGVja291dCBpcyBjdXJyZW50bHkgb24uIElm
IGJvdGggdGhvc2UgZmFpbCwgd2Ugd2lsbCBwaWNrIG9uZSBvZiB0aGUKLSAgICAgICAgIyBvdGhl
ciBicmFuY2hlcy4gV2UgcHJlZmVyIHByb2R1Y3Rpb24gYnJhbmNoZXMgZmlyc3QsIHRoZW4gYW55
IGJyYW5jaCB3aGljaCBpc24ndCBleHBsaWNpdGx5IGxhYmVsZWQgYQotICAgICAgICAjIGRldiBi
cmFuY2guIFdlIHRoZW4gc29ydCB0aGUgbGlzdCBvZiBjYW5kaWRhdGUgYnJhbmNoZXMgYW5kIHBp
Y2sgdGhlIHNtYWxsZXN0Ci0gICAgICAgIGZpbHRlcmVkX2NhbmRpZGF0ZXMgPSBbY2FuZGlkYXRl
IGZvciBjYW5kaWRhdGUgaW4gYnJhbmNoZXMgaWYgc2VsZi5wcm9kX2JyYW5jaGVzLm1hdGNoKGNh
bmRpZGF0ZSldCi0gICAgICAgIGlmIG5vdCBmaWx0ZXJlZF9jYW5kaWRhdGVzOgotICAgICAgICAg
ICAgZmlsdGVyZWRfY2FuZGlkYXRlcyA9IFtjYW5kaWRhdGUgZm9yIGNhbmRpZGF0ZSBpbiBicmFu
Y2hlcyBpZiBub3Qgc2VsZi5kZXZfYnJhbmNoZXMubWF0Y2goY2FuZGlkYXRlKV0KLSAgICAgICAg
aWYgbm90IGZpbHRlcmVkX2NhbmRpZGF0ZXM6Ci0gICAgICAgICAgICBmaWx0ZXJlZF9jYW5kaWRh
dGVzID0gYnJhbmNoZXMKLSAgICAgICAgcmV0dXJuIHNvcnRlZChmaWx0ZXJlZF9jYW5kaWRhdGVz
KVswXQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGxvZyhjbHMsIG1lc3NhZ2UsIGxldmVs
PWxvZ2dpbmcuV0FSTklORyk6Ci0gICAgICAgIGlmIG5vdCBsb2cuaGFuZGxlcnMgb3IgYWxsKFtp
c2luc3RhbmNlKGhhbmRsZSwgTnVsbEhhbmRsZXIpIGZvciBoYW5kbGUgaW4gbG9nLmhhbmRsZXJz
XSk6Ci0gICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKG1lc3NhZ2UgKyAnXG4nKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgbG9nLmxvZyhsZXZlbCwgbWVzc2FnZSkKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3N2bi5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRz
Y21weS9sb2NhbC9zdm4ucHkJKHJldmlzaW9uIDI2OTgxMSkKKysrIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3N2bi5weQkod29ya2luZyBjb3B5
KQpAQCAtMzExLDcgKzMxMSw3IEBAIGNsYXNzIFN2bihTY20pOgogICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ0Nhbm5vdCBkZWZpbmUgYm90aCB0YWcgYW5kIHJldmlzaW9uJykKICAg
ICAgICAgICAgIHJldmlzaW9uID0gQ29tbWl0Ll9wYXJzZV9yZXZpc2lvbihyZXZpc2lvbiwgZG9f
YXNzZXJ0PVRydWUpCiAgICAgICAgICAgICBicmFuY2ggPSBzZWxmLl9icmFuY2hfZm9yKHJldmlz
aW9uKQotICAgICAgICAgICAgaW5mbyA9IHNlbGYuaW5mbyhjYWNoZWQ9VHJ1ZSwgYnJhbmNoPWJy
YW5jaCwgcmV2aXNpb249cmV2aXNpb24pCisgICAgICAgICAgICBpbmZvID0gc2VsZi5pbmZvKGNh
Y2hlZD1UcnVlLCByZXZpc2lvbj1yZXZpc2lvbikKIAogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgaWYgYnJhbmNoIGFuZCB0YWc6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414295</attachid>
            <date>2020-11-16 17:10:03 -0800</date>
            <delta_ts>2020-11-16 19:17:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218935-20201116171002.patch</filename>
            <type>text/plain</type>
            <size>14127</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2OTg4NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQzIEBACisyMDIwLTExLTE2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0c2NtcHldIEdlbmVyYWxpemUgcGFydHMgb2YgbG9jYWwuU2Nt
IGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTg5MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzk1Njg4PgorCisgICAgICAgIFJ1YmJl
ci1zdGFtcGVkIGJ5IEFha2FzaCBKYWluLgorCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMv
d2Via2l0c2NtcHkvd2Via2l0c2NtcHkvX19pbml0X18ucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAg
ICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9sb2NhbC9zY20u
cHk6CisgICAgICAgIChTY20pOgorICAgICAgICAoU2NtLkV4Y2VwdGlvbik6IE1vdmVkIHRvIFNj
bUJhc2UuCisgICAgICAgIChTY20uX19pbml0X18pOiBNb3ZlIGJyYW5jaGVzIGxvZ2ljIHRvIFNj
bUJhc2UuCisgICAgICAgIChTY20uaXNfc3ZuKTogTW92ZWQgdG8gU2NtQmFzZS4KKyAgICAgICAg
KFNjbS5pc19naXQpOiBEaXR0by4KKyAgICAgICAgKFNjbS5kZWZhdWx0X2JyYW5jaCk6IERpdHRv
LgorICAgICAgICAoU2NtLmJyYW5jaGVzKTogRGl0dG8uCisgICAgICAgIChTY20udGFncyk6IERp
dHRvLgorICAgICAgICAoU2NtLmZpbmQpOiBEaXR0by4KKyAgICAgICAgKFNjbS5jb21taXQpOiBE
aXR0by4KKyAgICAgICAgKFNjbS5wcmlvcml0aXplX2JyYW5jaGVzKTogRGl0dG8uCisgICAgICAg
IChTY20ubG9nKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2Nt
cHkvd2Via2l0c2NtcHkvbG9jYWwvc3ZuLnB5OgorICAgICAgICAoU3ZuLmNvbW1pdCk6IFBhc3Np
bmcgYnJhbmNoIHRvIHNlbGYuaW5mbyBpcyByZWR1bmRhbnQuCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvbW9ja3MvX19pbml0X18ucHk6CisgICAg
ICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvc2NtX2Jhc2Uu
cHk6IEFkZGVkLgorICAgICAgICAoU2NtQmFzZSk6IEJhc2UgY2xhc3MgZm9yIGFsbCBsb2NhbCBh
bmQgcmVtb3RlIFNjbSBvYmplY3RzLgorICAgICAgICAoU2NtQmFzZS5FeGNlcHRpb24pOiBNb3Zl
ZCBmcm9tIGxvY2FsLlNjbS4KKyAgICAgICAgKFNjbUJhc2UuX19pbml0X18pOiBEaXR0by4KKyAg
ICAgICAgKFNjbUJhc2UuaXNfc3ZuKTogRGl0dG8uCisgICAgICAgIChTY21CYXNlLmlzX2dpdCk6
IERpdHRvLgorICAgICAgICAoU2NtQmFzZS5kZWZhdWx0X2JyYW5jaCk6IERpdHRvLgorICAgICAg
ICAoU2NtQmFzZS5icmFuY2hlcyk6IERpdHRvLgorICAgICAgICAoU2NtQmFzZS50YWdzKTogRGl0
dG8uCisgICAgICAgIChTY21CYXNlLmNvbW1pdCk6IERpdHRvLgorICAgICAgICAoU2NtQmFzZS5w
cmlvcml0aXplX2JyYW5jaGVzKTogRGl0dG8uCisgICAgICAgIChTY21CYXNlLmZpbmQpOiBEaXR0
by4KKyAgICAgICAgKFNjbUJhc2UubG9nKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy9saWJy
YXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkvdGVzdC9zdm5fdW5pdHRlc3QucHk6CisKIDIw
MjAtMTEtMTYgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UENNOiBDaGFuZ2UgYXR0cmlidXRlIGFuZCBKU09OIGtleSBuYW1lcyBhY2NvcmRpbmcgdG8gdGhl
IFczQyBjb252ZXJzYXRpb24KSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAy
Njk4ODYpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21w
eS9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtNDYsMTIgKzQ2LDEzIEBAIGV4Y2VwdCBJ
bXBvcnRFcnJvcjoKICAgICAgICAgIlBsZWFzZSBpbnN0YWxsIHdlYmtpdGNvcmVweSB3aXRoIGBw
aXAgaW5zdGFsbCB3ZWJraXRjb3JlcHkgLS1leHRyYS1pbmRleC11cmwgPHBhY2thZ2UgaW5kZXgg
VVJMPmAiCiAgICAgKQogCi12ZXJzaW9uID0gVmVyc2lvbigwLCAzLCAwKQordmVyc2lvbiA9IFZl
cnNpb24oMCwgMywgMSkKIAogQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnZGF0ZXV0aWwn
LCBWZXJzaW9uKDIsIDgsIDEpLCBweXBpX25hbWU9J3B5dGhvbi1kYXRldXRpbCcpKQogCiBmcm9t
IHdlYmtpdHNjbXB5LmNvbnRyaWJ1dG9yIGltcG9ydCBDb250cmlidXRvcgogZnJvbSB3ZWJraXRz
Y21weS5jb21taXQgaW1wb3J0IENvbW1pdAorZnJvbSB3ZWJraXRzY21weS5zY21fYmFzZSBpbXBv
cnQgU2NtQmFzZQogCiBmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBsb2NhbAogZnJvbSB3ZWJraXRz
Y21weSBpbXBvcnQgbW9ja3MKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3dlYmtpdHNjbXB5L3NjbV9iYXNlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3NjbV9iYXNlLnB5CShub25leGlzdGVu
dCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L3Nj
bV9iYXNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTM0IEBACisjIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgcmUKK2ltcG9y
dCBzaXgKK2ltcG9ydCBzeXMKKworZnJvbSBsb2dnaW5nIGltcG9ydCBOdWxsSGFuZGxlcgorZnJv
bSB3ZWJraXRzY21weSBpbXBvcnQgQ29tbWl0LCBsb2cKKworCitjbGFzcyBTY21CYXNlKG9iamVj
dCk6CisgICAgY2xhc3MgRXhjZXB0aW9uKFJ1bnRpbWVFcnJvcik6CisgICAgICAgIHBhc3MKKwor
ICAgICMgUHJvamVjdHMgY2FuIGRlZmluZSBmb3IgdGhlbXNlbHZlcyB3aGF0IGNvbnN0aXR1dGVz
IGEgZGV2ZWxvcG1lbnQgdnMgYSBwcm9kdWN0aW9uIGJyYW5jaCwKKyAgICAjIHRoZSBmb2xsb3dp
bmcgaWRpb21zIHNlZW0gY29tbW9uIGVub3VnaCB0byBiZSBzaGFyZWQuCisgICAgREVWX0JSQU5D
SEVTID0gcmUuY29tcGlsZShyJy4qWyhlbmcpKGRldikoYnVnKV0vLisnKQorICAgIFBST0RfQlJB
TkNIRVMgPSByZS5jb21waWxlKHInXFMrLVtcZCtcLl0rLWJyYW5jaCcpCisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgZGV2X2JyYW5jaGVzPU5vbmUsIHByb2RfYnJhbmNoZXM9Tm9uZSk6CisgICAg
ICAgIHNlbGYuZGV2X2JyYW5jaGVzID0gZGV2X2JyYW5jaGVzIG9yIHNlbGYuREVWX0JSQU5DSEVT
CisgICAgICAgIHNlbGYucHJvZF9icmFuY2hlcyA9IHByb2RfYnJhbmNoZXMgb3Igc2VsZi5QUk9E
X0JSQU5DSEVTCisgICAgICAgIHNlbGYucGF0aCA9IE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBpc19zdm4oc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3BlcnR5
CisgICAgZGVmIGlzX2dpdChzZWxmKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgZGVmYXVsdF9icmFuY2goc2VsZik6CisgICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IoKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGJyYW5jaGVzKHNlbGYp
OgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiB0YWdzKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkK
KworICAgIGRlZiBjb21taXQoc2VsZiwgaGFzaD1Ob25lLCByZXZpc2lvbj1Ob25lLCBpZGVudGlm
aWVyPU5vbmUsIGJyYW5jaD1Ob25lLCB0YWc9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IoKQorCisgICAgZGVmIHByaW9yaXRpemVfYnJhbmNoZXMoc2VsZiwgYnJhbmNo
ZXMpOgorICAgICAgICBpZiBsZW4oYnJhbmNoZXMpID09IDE6CisgICAgICAgICAgICByZXR1cm4g
YnJhbmNoZXNbMF0KKworICAgICAgICBkZWZhdWx0X2JyYW5jaCA9IHNlbGYuZGVmYXVsdF9icmFu
Y2gKKyAgICAgICAgaWYgZGVmYXVsdF9icmFuY2ggaW4gYnJhbmNoZXM6CisgICAgICAgICAgICBy
ZXR1cm4gZGVmYXVsdF9icmFuY2gKKworICAgICAgICAjIFdlIGRvbid0IGhhdmUgZW5vdWdoIGlu
Zm9ybWF0aW9uIHRvIGRldGVybWluZSBhIGJyYW5jaC4gV2Ugd2lsbCBhdHRlbXB0IHRvIGZpcnN0
IHVzZSB0aGUgYnJhbmNoIHNwZWNpZmllZAorICAgICAgICAjIGJ5IHRoZSBjYWxsZXIsIHRoZW4g
dGhlIG9uZSB0aGVuIGNoZWNrb3V0IGlzIGN1cnJlbnRseSBvbi4gSWYgYm90aCB0aG9zZSBmYWls
LCB3ZSB3aWxsIHBpY2sgb25lIG9mIHRoZQorICAgICAgICAjIG90aGVyIGJyYW5jaGVzLiBXZSBw
cmVmZXIgcHJvZHVjdGlvbiBicmFuY2hlcyBmaXJzdCwgdGhlbiBhbnkgYnJhbmNoIHdoaWNoIGlz
bid0IGV4cGxpY2l0bHkgbGFiZWxlZCBhCisgICAgICAgICMgZGV2IGJyYW5jaC4gV2UgdGhlbiBz
b3J0IHRoZSBsaXN0IG9mIGNhbmRpZGF0ZSBicmFuY2hlcyBhbmQgcGljayB0aGUgc21hbGxlc3QK
KyAgICAgICAgZmlsdGVyZWRfY2FuZGlkYXRlcyA9IFtjYW5kaWRhdGUgZm9yIGNhbmRpZGF0ZSBp
biBicmFuY2hlcyBpZiBzZWxmLnByb2RfYnJhbmNoZXMubWF0Y2goY2FuZGlkYXRlKV0KKyAgICAg
ICAgaWYgbm90IGZpbHRlcmVkX2NhbmRpZGF0ZXM6CisgICAgICAgICAgICBmaWx0ZXJlZF9jYW5k
aWRhdGVzID0gW2NhbmRpZGF0ZSBmb3IgY2FuZGlkYXRlIGluIGJyYW5jaGVzIGlmIG5vdCBzZWxm
LmRldl9icmFuY2hlcy5tYXRjaChjYW5kaWRhdGUpXQorICAgICAgICBpZiBub3QgZmlsdGVyZWRf
Y2FuZGlkYXRlczoKKyAgICAgICAgICAgIGZpbHRlcmVkX2NhbmRpZGF0ZXMgPSBicmFuY2hlcwor
ICAgICAgICByZXR1cm4gc29ydGVkKGZpbHRlcmVkX2NhbmRpZGF0ZXMpWzBdCisKKyAgICBkZWYg
ZmluZChzZWxmLCBhcmd1bWVudCk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3VtZW50
LCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4cGVj
dGVkICdhcmd1bWVudCcgdG8gYmUgYSBzdHJpbmcsIG5vdCAne30nIi5mb3JtYXQodHlwZShhcmd1
bWVudCkpKQorCisgICAgICAgIG9mZnNldCA9IDAKKyAgICAgICAgaWYgJ34nIGluIGFyZ3VtZW50
OgorICAgICAgICAgICAgZm9yIHMgaW4gYXJndW1lbnQuc3BsaXQoJ34nKVsxOl06CisgICAgICAg
ICAgICAgICAgaWYgcyBhbmQgbm90IHMuaXNkaWdpdCgpOgorICAgICAgICAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCIne30nIGlzIG5vdCBhIHZhbGlkIGFyZ3VtZW50IHRvIFNjbS5maW5k
KCkiLmZvcm1hdChhcmd1bWVudCkpCisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGludChzKSBp
ZiBzIGVsc2UgMQorICAgICAgICAgICAgYXJndW1lbnQgPSBhcmd1bWVudC5zcGxpdCgnficpWzBd
CisKKyAgICAgICAgaWYgYXJndW1lbnQgPT0gJ0hFQUQnOgorICAgICAgICAgICAgcmVzdWx0ID0g
c2VsZi5jb21taXQoKQorCisgICAgICAgIGVsaWYgYXJndW1lbnQgaW4gc2VsZi5icmFuY2hlczoK
KyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuY29tbWl0KGJyYW5jaD1hcmd1bWVudCkKKworICAg
ICAgICBlbGlmIGFyZ3VtZW50IGluIHNlbGYudGFnczoKKyAgICAgICAgICAgIHJlc3VsdCA9IHNl
bGYuY29tbWl0KHRhZz1hcmd1bWVudCkKKworICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYg
b2Zmc2V0OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIid+JyBvZmZzZXRzIGFy
ZSBub3Qgc3VwcG9ydGVkIGZvciByZXZpc2lvbnMgYW5kIGlkZW50aWZpZXJzIikKKworICAgICAg
ICAgICAgcGFyc2VkX2NvbW1pdCA9IENvbW1pdC5wYXJzZShhcmd1bWVudCkKKyAgICAgICAgICAg
IHJldHVybiBzZWxmLmNvbW1pdCgKKyAgICAgICAgICAgICAgICBoYXNoPXBhcnNlZF9jb21taXQu
aGFzaCwKKyAgICAgICAgICAgICAgICByZXZpc2lvbj1wYXJzZWRfY29tbWl0LnJldmlzaW9uLAor
ICAgICAgICAgICAgICAgIGlkZW50aWZpZXI9cGFyc2VkX2NvbW1pdC5pZGVudGlmaWVyLAorICAg
ICAgICAgICAgICAgIGJyYW5jaD1wYXJzZWRfY29tbWl0LmJyYW5jaCwKKyAgICAgICAgICAgICkK
KworICAgICAgICBpZiBub3Qgb2Zmc2V0OgorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorCisg
ICAgICAgIHJldHVybiBzZWxmLmNvbW1pdCgKKyAgICAgICAgICAgIGlkZW50aWZpZXI9cmVzdWx0
LmlkZW50aWZpZXIgLSBvZmZzZXQsCisgICAgICAgICAgICBicmFuY2g9cmVzdWx0LmJyYW5jaCwK
KyAgICAgICAgKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGxvZyhjbHMsIG1lc3NhZ2Us
IGxldmVsPWxvZ2dpbmcuV0FSTklORyk6CisgICAgICAgIGlmIG5vdCBsb2cuaGFuZGxlcnMgb3Ig
YWxsKFtpc2luc3RhbmNlKGhhbmRsZSwgTnVsbEhhbmRsZXIpIGZvciBoYW5kbGUgaW4gbG9nLmhh
bmRsZXJzXSk6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKG1lc3NhZ2UgKyAnXG4nKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9nLmxvZyhsZXZlbCwgbWVzc2FnZSkKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3Nj
bS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21weS93
ZWJraXRzY21weS9sb2NhbC9zY20ucHkJKHJldmlzaW9uIDI2OTg4NikKKysrIFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3NjbS5weQkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsMjEgKzIxLDE1IEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIAotaW1wb3J0IGxv
Z2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHJlCiBpbXBvcnQgc2l4Ci1pbXBvcnQgc3lzCiAKLWZy
b20gbG9nZ2luZyBpbXBvcnQgTnVsbEhhbmRsZXIKIGZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBy
dW4KLWZyb20gd2Via2l0c2NtcHkgaW1wb3J0IGxvZywgQ29tbWl0Citmcm9tIHdlYmtpdHNjbXB5
IGltcG9ydCBTY21CYXNlCiAKIAotY2xhc3MgU2NtKG9iamVjdCk6Ci0gICAgY2xhc3MgRXhjZXB0
aW9uKFJ1bnRpbWVFcnJvcik6Ci0gICAgICAgIHBhc3MKLQorY2xhc3MgU2NtKFNjbUJhc2UpOgog
ICAgICMgUHJvamVjdHMgY2FuIGRlZmluZSBmb3IgdGhlbXNlbHZlcyB3aGF0IGNvbnN0aXR1dGVz
IGEgZGV2ZWxvcG1lbnQgdnMgYSBwcm9kdWN0aW9uIGJyYW5jaCwKICAgICAjIHRoZSBmb2xsb3dp
bmcgaWRpb21zIHNlZW0gY29tbW9uIGVub3VnaCB0byBiZSBzaGFyZWQuCiAgICAgREVWX0JSQU5D
SEVTID0gcmUuY29tcGlsZShyJy4qWyhlbmcpKGRldikoYnVnKV0vLisnKQpAQCAtNjQsMTEzICs1
OCwyMiBAQCBjbGFzcyBTY20ob2JqZWN0KToKICAgICAgICAgcmFpc2UgT1NFcnJvcigiJ3t9JyBp
cyBub3QgYSBrbm93biBTQ00gdHlwZSIuZm9ybWF0KHBhdGgpKQogCiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHBhdGgsIGRldl9icmFuY2hlcz1Ob25lLCBwcm9kX2JyYW5jaGVzPU5vbmUpOgotICAg
ICAgICBpZiBub3QgaXNpbnN0YW5jZShwYXRoLCBzdHIpOgotICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignJykKLSAgICAgICAgc2VsZi5wYXRoID0gcGF0aAotCi0gICAgICAgIHNlbGYuZGV2
X2JyYW5jaGVzID0gZGV2X2JyYW5jaGVzIG9yIHNlbGYuREVWX0JSQU5DSEVTCi0gICAgICAgIHNl
bGYucHJvZF9icmFuY2hlcyA9IHByb2RfYnJhbmNoZXMgb3Igc2VsZi5QUk9EX0JSQU5DSEVTCisg
ICAgICAgIHN1cGVyKFNjbSwgc2VsZikuX19pbml0X18oZGV2X2JyYW5jaGVzPWRldl9icmFuY2hl
cywgcHJvZF9icmFuY2hlcz1wcm9kX2JyYW5jaGVzKQogCi0gICAgQHByb3BlcnR5Ci0gICAgZGVm
IGlzX3N2bihzZWxmKToKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBAcHJvcGVydHkKLSAg
ICBkZWYgaXNfZ2l0KHNlbGYpOgotICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgbm90
IGlzaW5zdGFuY2UocGF0aCwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJFeHBlY3RlZCAncGF0aCcgdG8gYmUgYSBzdHJpbmcgdHlwZSwgbm90ICd7fSci
LmZvcm1hdCh0eXBlKHBhdGgpKSkKKyAgICAgICAgc2VsZi5wYXRoID0gcGF0aAogCiAgICAgQHBy
b3BlcnR5CiAgICAgZGVmIHJvb3RfcGF0aChzZWxmKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcigpCiAKICAgICBAcHJvcGVydHkKLSAgICBkZWYgZGVmYXVsdF9icmFuY2goc2Vs
Zik6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQotCi0gICAgQHByb3BlcnR5
CiAgICAgZGVmIGJyYW5jaChzZWxmKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cigpCiAKLSAgICBAcHJvcGVydHkKLSAgICBkZWYgYnJhbmNoZXMoc2VsZik6Ci0gICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHRhZ3Mo
c2VsZik6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQotCiAgICAgZGVmIHJl
bW90ZShzZWxmLCBuYW1lPU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
KCkKIAotICAgIGRlZiBmaW5kKHNlbGYsIGFyZ3VtZW50KToKLSAgICAgICAgaWYgbm90IGlzaW5z
dGFuY2UoYXJndW1lbnQsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigiRXhwZWN0ZWQgJ2FyZ3VtZW50JyB0byBiZSBhIHN0cmluZywgbm90ICd7fSciLmZv
cm1hdCh0eXBlKGFyZ3VtZW50KSkpCi0KLSAgICAgICAgb2Zmc2V0ID0gMAotICAgICAgICBpZiAn
ficgaW4gYXJndW1lbnQ6Ci0gICAgICAgICAgICBmb3IgcyBpbiBhcmd1bWVudC5zcGxpdCgnficp
WzE6XToKLSAgICAgICAgICAgICAgICBpZiBzIGFuZCBub3Qgcy5pc2RpZ2l0KCk6Ci0gICAgICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIid7fScgaXMgbm90IGEgdmFsaWQgYXJndW1l
bnQgdG8gU2NtLmZpbmQoKSIuZm9ybWF0KGFyZ3VtZW50KSkKLSAgICAgICAgICAgICAgICBvZmZz
ZXQgKz0gaW50KHMpIGlmIHMgZWxzZSAxCi0gICAgICAgICAgICBhcmd1bWVudCA9IGFyZ3VtZW50
LnNwbGl0KCd+JylbMF0KLQotICAgICAgICBpZiBhcmd1bWVudCA9PSAnSEVBRCc6Ci0gICAgICAg
ICAgICByZXN1bHQgPSBzZWxmLmNvbW1pdCgpCi0KLSAgICAgICAgZWxpZiBhcmd1bWVudCBpbiBz
ZWxmLmJyYW5jaGVzOgotICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5jb21taXQoYnJhbmNoPWFy
Z3VtZW50KQotCi0gICAgICAgIGVsaWYgYXJndW1lbnQgaW4gc2VsZi50YWdzOgotICAgICAgICAg
ICAgcmVzdWx0ID0gc2VsZi5jb21taXQodGFnPWFyZ3VtZW50KQotCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBpZiBvZmZzZXQ6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
J34nIG9mZnNldHMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHJldmlzaW9ucyBhbmQgaWRlbnRpZmll
cnMiKQotCi0gICAgICAgICAgICBwYXJzZWRfY29tbWl0ID0gQ29tbWl0LnBhcnNlKGFyZ3VtZW50
KQotICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29tbWl0KAotICAgICAgICAgICAgICAgIGhhc2g9
cGFyc2VkX2NvbW1pdC5oYXNoLAotICAgICAgICAgICAgICAgIHJldmlzaW9uPXBhcnNlZF9jb21t
aXQucmV2aXNpb24sCi0gICAgICAgICAgICAgICAgaWRlbnRpZmllcj1wYXJzZWRfY29tbWl0Lmlk
ZW50aWZpZXIsCi0gICAgICAgICAgICAgICAgYnJhbmNoPXBhcnNlZF9jb21taXQuYnJhbmNoLAot
ICAgICAgICAgICAgKQotCi0gICAgICAgIGlmIG5vdCBvZmZzZXQ6Ci0gICAgICAgICAgICByZXR1
cm4gcmVzdWx0Ci0KLSAgICAgICAgcmV0dXJuIHNlbGYuY29tbWl0KAotICAgICAgICAgICAgaWRl
bnRpZmllcj1yZXN1bHQuaWRlbnRpZmllciAtIG9mZnNldCwKLSAgICAgICAgICAgIGJyYW5jaD1y
ZXN1bHQuYnJhbmNoLAotICAgICAgICApCi0KICAgICBkZWYgY2hlY2tvdXQoc2VsZiwgYXJndW1l
bnQpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKLQotICAgIGRlZiBjb21t
aXQoc2VsZiwgaGFzaD1Ob25lLCByZXZpc2lvbj1Ob25lLCBpZGVudGlmaWVyPU5vbmUsIGJyYW5j
aD1Ob25lLCB0YWc9Tm9uZSk6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQot
Ci0gICAgZGVmIHByaW9yaXRpemVfYnJhbmNoZXMoc2VsZiwgYnJhbmNoZXMpOgotICAgICAgICBp
ZiBsZW4oYnJhbmNoZXMpID09IDE6Ci0gICAgICAgICAgICByZXR1cm4gYnJhbmNoZXNbMF0KLQot
ICAgICAgICBkZWZhdWx0X2JyYW5jaCA9IHNlbGYuZGVmYXVsdF9icmFuY2gKLSAgICAgICAgaWYg
ZGVmYXVsdF9icmFuY2ggaW4gYnJhbmNoZXM6Ci0gICAgICAgICAgICByZXR1cm4gZGVmYXVsdF9i
cmFuY2gKLQotICAgICAgICAjIFdlIGRvbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGRl
dGVybWluZSBhIGJyYW5jaC4gV2Ugd2lsbCBhdHRlbXB0IHRvIGZpcnN0IHVzZSB0aGUgYnJhbmNo
IHNwZWNpZmllZAotICAgICAgICAjIGJ5IHRoZSBjYWxsZXIsIHRoZW4gdGhlIG9uZSB0aGVuIGNo
ZWNrb3V0IGlzIGN1cnJlbnRseSBvbi4gSWYgYm90aCB0aG9zZSBmYWlsLCB3ZSB3aWxsIHBpY2sg
b25lIG9mIHRoZQotICAgICAgICAjIG90aGVyIGJyYW5jaGVzLiBXZSBwcmVmZXIgcHJvZHVjdGlv
biBicmFuY2hlcyBmaXJzdCwgdGhlbiBhbnkgYnJhbmNoIHdoaWNoIGlzbid0IGV4cGxpY2l0bHkg
bGFiZWxlZCBhCi0gICAgICAgICMgZGV2IGJyYW5jaC4gV2UgdGhlbiBzb3J0IHRoZSBsaXN0IG9m
IGNhbmRpZGF0ZSBicmFuY2hlcyBhbmQgcGljayB0aGUgc21hbGxlc3QKLSAgICAgICAgZmlsdGVy
ZWRfY2FuZGlkYXRlcyA9IFtjYW5kaWRhdGUgZm9yIGNhbmRpZGF0ZSBpbiBicmFuY2hlcyBpZiBz
ZWxmLnByb2RfYnJhbmNoZXMubWF0Y2goY2FuZGlkYXRlKV0KLSAgICAgICAgaWYgbm90IGZpbHRl
cmVkX2NhbmRpZGF0ZXM6Ci0gICAgICAgICAgICBmaWx0ZXJlZF9jYW5kaWRhdGVzID0gW2NhbmRp
ZGF0ZSBmb3IgY2FuZGlkYXRlIGluIGJyYW5jaGVzIGlmIG5vdCBzZWxmLmRldl9icmFuY2hlcy5t
YXRjaChjYW5kaWRhdGUpXQotICAgICAgICBpZiBub3QgZmlsdGVyZWRfY2FuZGlkYXRlczoKLSAg
ICAgICAgICAgIGZpbHRlcmVkX2NhbmRpZGF0ZXMgPSBicmFuY2hlcwotICAgICAgICByZXR1cm4g
c29ydGVkKGZpbHRlcmVkX2NhbmRpZGF0ZXMpWzBdCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBk
ZWYgbG9nKGNscywgbWVzc2FnZSwgbGV2ZWw9bG9nZ2luZy5XQVJOSU5HKToKLSAgICAgICAgaWYg
bm90IGxvZy5oYW5kbGVycyBvciBhbGwoW2lzaW5zdGFuY2UoaGFuZGxlLCBOdWxsSGFuZGxlcikg
Zm9yIGhhbmRsZSBpbiBsb2cuaGFuZGxlcnNdKToKLSAgICAgICAgICAgIHN5cy5zdGRlcnIud3Jp
dGUobWVzc2FnZSArICdcbicpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsb2cubG9nKGxl
dmVsLCBtZXNzYWdlKQpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkv
d2Via2l0c2NtcHkvbG9jYWwvc3ZuLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGli
cmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L2xvY2FsL3N2bi5weQkocmV2aXNpb24gMjY5
ODg2KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvd2Via2l0c2NtcHkv
bG9jYWwvc3ZuLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMTEsNyArMzExLDcgQEAgY2xhc3MgU3Zu
KFNjbSk6CiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2Fubm90IGRlZmluZSBi
b3RoIHRhZyBhbmQgcmV2aXNpb24nKQogICAgICAgICAgICAgcmV2aXNpb24gPSBDb21taXQuX3Bh
cnNlX3JldmlzaW9uKHJldmlzaW9uLCBkb19hc3NlcnQ9VHJ1ZSkKICAgICAgICAgICAgIGJyYW5j
aCA9IHNlbGYuX2JyYW5jaF9mb3IocmV2aXNpb24pCi0gICAgICAgICAgICBpbmZvID0gc2VsZi5p
bmZvKGNhY2hlZD1UcnVlLCBicmFuY2g9YnJhbmNoLCByZXZpc2lvbj1yZXZpc2lvbikKKyAgICAg
ICAgICAgIGluZm8gPSBzZWxmLmluZm8oY2FjaGVkPVRydWUsIHJldmlzaW9uPXJldmlzaW9uKQog
CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBpZiBicmFuY2ggYW5kIHRhZzoK
</data>

          </attachment>
      

    </bug>

</bugzilla>