<?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>230397</bug_id>
          
          <creation_ts>2021-09-17 04:59:40 -0700</creation_ts>
          <short_desc>It should be possible to format C++ code to project style with WebKit tools</short_desc>
          <delta_ts>2021-10-20 00:24:00 -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>WebKit Local 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=230402</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>
          
          <blocked>174037</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>ap</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>heycam</cc>
    
    <cc>jbedard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1794395</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-17 04:59:40 -0700</bug_when>
    <thetext>It should be possible to format C++ code to project style with webkit tools</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794399</commentid>
    <comment_count>1</comment_count>
      <attachid>438463</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-17 05:09:47 -0700</bug_when>
    <thetext>Created attachment 438463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794524</commentid>
    <comment_count>2</comment_count>
      <attachid>438492</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-17 11:27:08 -0700</bug_when>
    <thetext>Created attachment 438492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794607</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-09-17 14:13:51 -0700</bug_when>
    <thetext>I think this is a really good idea, although I find it a bit curious that it&apos;s attached to webkit-patch rather than the style checker. Is this because attaching this to the style checker is more difficult since the style checker isn&apos;t the grab-bag of commands webkit-patch is?

For some context, webkit-patch is on the way out since it doesn&apos;t (and will not) support pull requests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794990</commentid>
    <comment_count>4</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-09-20 00:43:08 -0700</bug_when>
    <thetext>The primary reason from user interface perspective is that, for me, it does not make sense that there&apos;d be 2 or 3 or 77 different scripts and commands for simple task of manipulating patches to get the in the tree. I understand that there might be 45 different steps to apply to the patch. I think my computer should just do those steps and get it done.

I understand the script to manipulate patches today is &apos;webkit-patch&apos; and tomorrow it&apos;s &apos;git webkit&apos;.

Today I&apos;d prefer to use it with:
  webkit-patch format -g HEAD~....
  git commit --amend -a --no-edit
  webkit-patch upload -g HEAD

Tomorrow I&apos;d prefer using it with:
  git webkit format
  git commit -a --amend --no-edit
  git webkit pull-request 

I can do the git-webkit part when that tool is useful (and it&apos;s according to what you think the tool should do, of course).



From implementation standpoint (e.g. where does the code go):

Problems with integrating this with the style checker is related to the overall abstraction that the checker provides.

Style checker doesn&apos;t have concept of &quot;modify the working dir&quot;.
Consider:

check-webkit-style -g HEAD
 - Check the patch I&apos;m working on and don&apos;t do anything to the working dir

check-webkit-style -g HEAD --format
 - Intuitively: first format patch and then check the style
 - Problem: what&apos;s the point of formatting the patch and then throwing it away?
 - Problem: if it writes to CWD, then the sense of abstraction of &quot;check the patch&quot; is lost.
 - Problem: it cannot write to &quot;HEAD&quot;, it writes to CWD, which might already have different code and what do we then check?


Contrast with:

webkit-patch format -g HEAD
 - Format the working dir based on what&apos;s in the patch. (In general -g case it&apos;s a bit stupid, but it&apos;s better than nothing and works in a defined way)
 - There is less overload of abstraction about what the tool can do and how it operates.


Adding the concept of &quot;modify the working dir&quot; to the style checker. Contrast:

check-webkit-style -g HEAD
  - Check the patch in HEAD

check-webkit-style -g HEAD --format
  - Intuitively: first format patch in HEAD and then check the style of HEAD
  - However, it also implies that most possibly you want the cwd changed, so you actually get the results of the automatic formatting. Hence:
  - Intuitively2: format the CWD based on the patch and then check the style of CWD
  
So which is it:
  A) &quot;Check the patch in the HEAD&quot;
  B) &quot;Check the CWD&quot;
?


Style checker has extensive filtering of rules that aren&apos;t useful for the automatic formatting and are infeasible to implement. E.g it&apos;d be confusing to do:
  check-webkit-style -g HEAD --format --filter -whitespace

Confusing because format wouldn&apos;t respect the filter. 

Not useful for formatting because there&apos;s very little point of providing capability of &quot;personal mix and match of random rules&quot; for formatting. E.g. if the goal is project-wide formatting, it&apos;s relatively small benefit to provide capability to do personal artistic formatting.

Here the comment talks about HEAD, but it could be anything of form HEAD~~~~....

Formatting of say HEAD~~~..HEAD~ should also work, but it&apos;s generally breaking the abstraction since, again, typically what you want to the formatting to do is to write the results somewhere, but in these cases the HEAD, index or working dir might have already changed. Still, the operation is defined, e.g. &quot;change the cwd&quot;. 

If this was integrated with the style checker, the operation semantics would be strange: &quot;without --format, check the patch, but with --format change the cwd and check ... something ?&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796847</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-24 05:00:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/83492154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796874</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-09-24 07:30:08 -0700</bug_when>
    <thetext>Kimmo has convinced me that webkit-patch is the right place for this, at least at the moment. Hoping to get a chance to review this early next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796898</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-09-24 08:54:18 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #6)
&gt; Kimmo has convinced me that webkit-patch is the right place for this, at
&gt; least at the moment. Hoping to get a chance to review this early next week.

Kinda OT: I think we should follow the Mozilla and WPT approach of having a single entry-point for many of our scripts. At the moment webkit-patch functionally acts like this, hence this doesn&apos;t seem too bad to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806503</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-19 22:49:53 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 438492 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806511</commentid>
    <comment_count>9</comment_count>
      <attachid>441853</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-10-19 23:15:08 -0700</bug_when>
    <thetext>Created attachment 441853
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806527</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-20 00:23:58 -0700</bug_when>
    <thetext>Committed r284520 (243263@main): &lt;https://commits.webkit.org/243263@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441853.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438463</attachid>
            <date>2021-09-17 05:09:47 -0700</date>
            <delta_ts>2021-09-17 11:27:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230397-20210917150946.patch</filename>
            <type>text/plain</type>
            <size>10908</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzFlOGY3ZDkzNWE3MWRmNDZkNWQ4MjdmMDhkOTgzNDkw
MDRmZjI0My4uNThlODE2MTVjM2Q1ZmUxOGE2MTQ0MzAxMTAzZmViNmI3ZjA1M2E2ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDIxLTA5LTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGZvcm1hdCBDKysgY29kZSB0byBwcm9q
ZWN0IHN0eWxlIHdpdGggV2ViS2l0IHRvb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAzOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgY2FwYWJpbGl0eSB0byBydW4gY2xhbmctZm9ybWF0IGZv
ciBsaW5lcyBjaGFuZ2VkIGJ5CisgICAgICAgIGEgcGF0Y2guCisgICAgICAgIFN1cHBvcnRzIHdv
cmtmbG93IG9mOgorICAgICAgICAgICAgd2Via2l0LXBhdGNoIGZvcm1hdCAtZyBIRUFECisgICAg
ICAgICAgICBnaXQgY29tbWl0IC1hIC0tYW1lbmQgLS1uby1lZGl0CisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Zvcm1hdC5weTogQWRkZWQuCisgICAgICAgIChGb3Jt
YXQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvZm9ybWF0Y3BwZmlsZXMucHk6
IEFkZGVkLgorICAgICAgICAoX2lzX2Zvcm1hdHRlZCk6CisgICAgICAgIChfcmFuZ2VzKToKKyAg
ICAgICAgKEZvcm1hdENwcEZpbGVzKToKKyAgICAgICAgKEZvcm1hdENwcEZpbGVzLm9wdGlvbnMp
OgorICAgICAgICAoRm9ybWF0Q3BwRmlsZXMuX19pbml0X18pOgorICAgICAgICAoRm9ybWF0Q3Bw
RmlsZXMucnVuKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9u
cy5weToKKyAgICAgICAgKE9wdGlvbnMpOgorCiAyMDIxLTA5LTE1ICBQaGlsaXAgQ2hpbWVudG8g
IDxwY2hpbWVudG9AaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXhlcyBmb3IgYnVpbGQtd2Via2l0
IC0tbWluaW1hbApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL19f
aW5pdF9fLnB5CmluZGV4IDkxZmIyYjkwZjQyZTZlODQ3OTlkMmNjYzE1NmNkZjJmZGVhMGNhNWYu
LmY4NGVhN2RkZGFlNDM2ZTA0OWUyZjMwYTU1MzExNjQ4MGUzMTgxODEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9fX2luaXRfXy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvX19pbml0X18ucHkKQEAgLTgsNiArOCw3
IEBAIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5idWdzZWFyY2ggaW1wb3J0IEJ1Z1NlYXJj
aAogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmRvd25sb2FkIGltcG9ydCAqCiBmcm9tIHdl
YmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVtIGltcG9ydCBBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbQogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmZpbmR1c2VycyBp
bXBvcnQgRmluZFVzZXJzCitmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZm9ybWF0IGltcG9y
dCBGb3JtYXQKIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5nYXJkZW5vbWF0aWMgaW1wb3J0
IEdhcmRlbk9NYXRpYwogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLm9wZW5idWdzIGltcG9y
dCBPcGVuQnVncwogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnByZXR0eWRpZmYgaW1wb3J0
IFByZXR0eURpZmYKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9mb3JtYXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZm9y
bWF0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYzMTkxZTBmNGViZmMwZGI4ZGNkZjY4YThmYWU2ODI2MWU5Njkw
YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZm9ybWF0LnB5CkBAIC0wLDAgKzEsNDUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZnJvbSB3ZWJr
aXRweS5jb21tb24uY29uZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKK2Zyb20g
d2Via2l0cHkudG9vbC5jb21tYW5kcy5hYnN0cmFjdHNlcXVlbmNlZGNvbW1hbmQgaW1wb3J0IEFi
c3RyYWN0U2VxdWVuY2VkQ29tbWFuZAorZnJvbSB3ZWJraXRweS50b29sLm11bHRpY29tbWFuZHRv
b2wgaW1wb3J0IENvbW1hbmQKKworZnJvbSB3ZWJraXRweS50b29sIGltcG9ydCBzdGVwcworCisK
K2NsYXNzIEZvcm1hdChBYnN0cmFjdFNlcXVlbmNlZENvbW1hbmQpOgorICAgIG5hbWUgPSAiZm9y
bWF0IgorICAgIGhlbHBfdGV4dCA9ICJGb3JtYXRzIGNvZGUgYWNjb3JkaW5nIHRvIHByb2plY3Qg
Z3VpZGVsaW5lcyIKKyAgICBsb25nX2hlbHAgPSAiIiJGb3JtYXQgdGhlIHdvcmtpbmcgY29weSBs
aW5lcyBjaGFuZ2VkIGJ5IHRoZSBwYXRjaGVzIGdpdmVuLgorRm9ybWF0cyBjdXJyZW50bHkgWGNv
ZGUgcHJvamVjdCBmaWxlcyBhbmQgQy9DKysgZmlsZXMuIiIiCisgICAgc2hvd19pbl9tYWluX2hl
bHAgPSBUcnVlCisgICAgc3RlcHMgPSBbCisgICAgICAgIHN0ZXBzLlNvcnRYY29kZVByb2plY3RG
aWxlcywKKyAgICAgICAgc3RlcHMuRm9ybWF0Q3BwRmlsZXMsCisgICAgXQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9fLnB5CmluZGV4IDMwMmRkZjY2NDVjY2I0
OGIxNjhlNzU5MmIwOWJkN2NlYmJlMDg4YzEuLmU0Mjk1NWQyMjM2YzUxYjU0YmExNGMxYzQ0NDVl
Y2RkYzgwZTdmYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19p
bml0X18ucHkKQEAgLTQ4LDYgKzQ4LDcgQEAgZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmRpc2Nh
cmRsb2NhbGNoYW5nZXMgaW1wb3J0IERpc2NhcmRMb2NhbENoYW5nZXMKIGZyb20gd2Via2l0cHku
dG9vbC5zdGVwcy5lZGl0Y2hhbmdlbG9nIGltcG9ydCBFZGl0Q2hhbmdlTG9nCiBmcm9tIHdlYmtp
dHB5LnRvb2wuc3RlcHMuZW5zdXJlYnVnaXNvcGVuYW5kYXNzaWduZWQgaW1wb3J0IEVuc3VyZUJ1
Z0lzT3BlbkFuZEFzc2lnbmVkCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuZW5zdXJlbG9jYWxj
b21taXRpZm5lZWRlZCBpbXBvcnQgRW5zdXJlTG9jYWxDb21taXRJZk5lZWRlZAorZnJvbSB3ZWJr
aXRweS50b29sLnN0ZXBzLmZvcm1hdGNwcGZpbGVzIGltcG9ydCBGb3JtYXRDcHBGaWxlcwogZnJv
bSB3ZWJraXRweS50b29sLnN0ZXBzLmhhc2xhbmRlZCBpbXBvcnQgSGFzTGFuZGVkCiBmcm9tIHdl
YmtpdHB5LnRvb2wuc3RlcHMub2Jzb2xldGVwYXRjaGVzIGltcG9ydCBPYnNvbGV0ZVBhdGNoZXMK
IGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5vcHRpb25zIGltcG9ydCBPcHRpb25zCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvZm9ybWF0Y3BwZmlsZXMucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvZm9ybWF0Y3BwZmlsZXMucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2Y1ZTdhMTkwYTU1OWIyZjk5MjhhOTVjZTU2YmE3YWJlNmIxOTM2NQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9mb3JtYXRjcHBm
aWxlcy5weQpAQCAtMCwwICsxLDEwMSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
IyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgbG9nZ2lu
ZworaW1wb3J0IHN5cworaW1wb3J0IG9zCisKK2Zyb20gd2Via2l0Y29yZXB5IGltcG9ydCBzdHJp
bmdfdXRpbHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmRpZmZfcGFyc2VyIGltcG9y
dCBEaWZmUGFyc2VyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9y
dCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnN5c3RlbWhvc3QgaW1w
b3J0IFN5c3RlbUhvc3QKK2Zyb20gd2Via2l0cHkudG9vbC5zdGVwcy5hYnN0cmFjdHN0ZXAgaW1w
b3J0IEFic3RyYWN0U3RlcAorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLm9wdGlvbnMgaW1wb3J0
IE9wdGlvbnMKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCitfZm9ybWF0
dGVkX3N1ZmZpeGVzID0gc2V0KFsnLmNwcCcsICcuY2MnLCAnLmMnLCAnLmgnLCAnLmhoJ10pCisj
IEZJWE1FOiAnLm1tJyBjYW5ub3QgYmUgZm9ybWF0dGVkIGJlY2F1c2UgdGhlIC5jbGFuZy1zdHls
ZSBzdHlsZSBkb2VzIG5vdCBleGlzdCB5ZXQuCisKKworZGVmIF9pc19mb3JtYXR0ZWQoZmlsZV9u
YW1lKToKKyAgICBzdWZmaXggPSBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVfbmFtZSlbMV0KKyAgICBy
ZXR1cm4gc3VmZml4IGluIF9mb3JtYXR0ZWRfc3VmZml4ZXMKKworCitkZWYgX3JhbmdlcyhzZXEp
OgorICAgIGlmIG5vdCBzZXE6CisgICAgICAgIHJldHVybgorICAgIHN0YXJ0LCBlbmQgPSBzZXFb
MF0sIHNlcVswXQorICAgIGNvdW50ID0gc3RhcnQKKyAgICBmb3IgaXRlbSBpbiBzZXE6CisgICAg
ICAgIGlmIG5vdCBjb3VudCA9PSBpdGVtOgorICAgICAgICAgICAgeWllbGQgc3RhcnQsIGVuZAor
ICAgICAgICAgICAgc3RhcnQsIGVuZCA9IGl0ZW0sIGl0ZW0KKyAgICAgICAgICAgIGNvdW50ID0g
aXRlbQorICAgICAgICBlbmQgPSBpdGVtCisgICAgICAgIGNvdW50ICs9IDEKKyAgICB5aWVsZCBz
dGFydCwgZW5kCisKKworY2xhc3MgRm9ybWF0Q3BwRmlsZXMoQWJzdHJhY3RTdGVwKToKKyAgICBA
Y2xhc3NtZXRob2QKKyAgICBkZWYgb3B0aW9ucyhjbHMpOgorICAgICAgICByZXR1cm4gQWJzdHJh
Y3RTdGVwLm9wdGlvbnMoKSArIFsKKyAgICAgICAgICAgIE9wdGlvbnMuZm9ybWF0X2NwcF9maWxl
cywKKyAgICAgICAgXQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvb2wsIG9wdGlvbnMsIGhv
c3Q9Tm9uZSwgc2NtPU5vbmUpOgorICAgICAgICBzZWxmLl90b29sID0gdG9vbAorICAgICAgICBz
ZWxmLl9vcHRpb25zID0gb3B0aW9ucworICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdCBvciBTeXN0
ZW1Ib3N0KCkKKworICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgorICAgICAgICBpZiBub3Qgc2Vs
Zi5fb3B0aW9ucy5mb3JtYXRfY3BwX2ZpbGVzOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
IGlmIG5vdCBhbnkoX2lzX2Zvcm1hdHRlZChmaWxlKSBmb3IgZmlsZSBpbiBzZWxmLl9jaGFuZ2Vk
X2ZpbGVzKHN0YXRlKSk6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZGlmZiA9IHNlbGYu
Y2FjaGVkX2xvb2t1cChzdGF0ZSwgJ2RpZmYnKQorICAgICAgICBwYXRjaF9zdHJpbmcgPSBzdHJp
bmdfdXRpbHMuZGVjb2RlKGRpZmYsIHRhcmdldF90eXBlPXN0cikKKyAgICAgICAgcGF0Y2hfZmls
ZXMgPSBEaWZmUGFyc2VyKHBhdGNoX3N0cmluZy5zcGxpdGxpbmVzKCkpLmZpbGVzCisgICAgICAg
IGZvciBwYXRoLCBkaWZmX2ZpbGUgaW4gcGF0Y2hfZmlsZXMuaXRlbXMoKToKKyAgICAgICAgICAg
IGlmIG5vdCBfaXNfZm9ybWF0dGVkKHBhdGgpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg
ICAgICAgICAgICBsaW5lX251bWJlcnMgPSBkaWZmX2ZpbGUuYWRkZWRfb3JfbW9kaWZpZWRfbGlu
ZV9udW1iZXJzKCkKKyAgICAgICAgICAgIGlmIG5vdCBsaW5lX251bWJlcnM6CisgICAgICAgICAg
ICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9ob3N0LnBsYXRmb3JtLmlz
X21hYygpOgorICAgICAgICAgICAgICAgIGNsYW5nX2Zvcm1hdF9jb21tYW5kID0gWydjbGFuZy1m
b3JtYXQnXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjbGFuZ19mb3JtYXRf
Y29tbWFuZCA9IFsneGNydW4nLCAnY2xhbmctZm9ybWF0J10KKyAgICAgICAgICAgIGFyZ3MgPSBj
bGFuZ19mb3JtYXRfY29tbWFuZCArIFsnLWknLCAnLS1zb3J0LWluY2x1ZGVzJywgJy1Xbm8tY2xh
bmctZm9ybWF0LXZpb2xhdGlvbnMnXSArIFsnLS1saW5lcz17fTp7fScuZm9ybWF0KHJbMF0sIHJb
MV0pIGZvciByIGluIF9yYW5nZXMobGluZV9udW1iZXJzKV0gKyBbcGF0aF0KKyAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLl90b29sLmV4ZWN1dGl2ZS5ydW5f
YW5kX3Rocm93X2lmX2ZhaWwoYXJncywgc2VsZi5fb3B0aW9ucy5xdWlldCwgY3dkPXNlbGYuX3Rv
b2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvcjoK
KyAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCdVbmFibGUgdG8gZm9ybWF0IEMrKy9DIGZpbGVz
LicpCisgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL3N0ZXBzL29wdGlvbnMucHkKaW5kZXggMjc0ZjJmMTU0OGNmMTUxYWFkMTY0YTUzMmQ0
ODBlNTFkNjNhMzdkZS4uYTQwNDFjNjg5YzQ3ZDczODJjNjA5NTllNjU0OTdmYTBkYjliZTExMiAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkKQEAgLTY4
LDMgKzY4LDQgQEAgY2xhc3MgT3B0aW9ucyhvYmplY3QpOgogICAgIHVwZGF0ZSA9IG1ha2Vfb3B0
aW9uKCItLW5vLXVwZGF0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJ1cGRhdGUiLCBk
ZWZhdWx0PVRydWUsIGhlbHA9IkRvbid0IHVwZGF0ZSB0aGUgd29ya2luZyBkaXJlY3RvcnkuIikK
ICAgICB1cGRhdGVfY2hhbmdlbG9ncyA9IG1ha2Vfb3B0aW9uKCItLXVwZGF0ZS1jaGFuZ2Vsb2dz
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0idXBkYXRlX2NoYW5nZWxvZ3MiLCBkZWZhdWx0
PUZhbHNlLCBoZWxwPSJVcGRhdGUgZXhpc3RpbmcgQ2hhbmdlTG9nIGVudHJpZXMgd2l0aCBuZXcg
ZGF0ZSwgYnVnIGRlc2NyaXB0aW9uLCBhbmQgdG91Y2hlZCBmaWxlcy9mdW5jdGlvbnMuIikKICAg
ICBjaGFuZ2Vsb2dfY291bnQgPSBtYWtlX29wdGlvbigiLS1jaGFuZ2Vsb2ctY291bnQiLCBhY3Rp
b249InN0b3JlIiwgdHlwZT0iaW50IiwgZGVzdD0iY2hhbmdlbG9nX2NvdW50IiwgaGVscD0iTnVt
YmVyIG9mIGNoYW5nZWxvZ3MgdG8gcGFyc2UuIikKKyAgICBmb3JtYXRfY3BwX2ZpbGVzID0gbWFr
ZV9vcHRpb24oIi0tbm8tZm9ybWF0LWNwcC1maWxlcyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBk
ZXN0PSJmb3JtYXRfY3BwX2ZpbGVzIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJTa2lwIGZvcm1hdHRp
bmcgb2YgQy9DKysgZmlsZXMuIikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438492</attachid>
            <date>2021-09-17 11:27:08 -0700</date>
            <delta_ts>2021-10-19 23:15:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230397-20210917212706.patch</filename>
            <type>text/plain</type>
            <size>10410</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzFlOGY3ZDkzNWE3MWRmNDZkNWQ4MjdmMDhkOTgzNDkw
MDRmZjI0My4uNThlODE2MTVjM2Q1ZmUxOGE2MTQ0MzAxMTAzZmViNmI3ZjA1M2E2ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDIxLTA5LTE3ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGZvcm1hdCBDKysgY29kZSB0byBwcm9q
ZWN0IHN0eWxlIHdpdGggV2ViS2l0IHRvb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAzOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgY2FwYWJpbGl0eSB0byBydW4gY2xhbmctZm9ybWF0IGZv
ciBsaW5lcyBjaGFuZ2VkIGJ5CisgICAgICAgIGEgcGF0Y2guCisgICAgICAgIFN1cHBvcnRzIHdv
cmtmbG93IG9mOgorICAgICAgICAgICAgd2Via2l0LXBhdGNoIGZvcm1hdCAtZyBIRUFECisgICAg
ICAgICAgICBnaXQgY29tbWl0IC1hIC0tYW1lbmQgLS1uby1lZGl0CisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Zvcm1hdC5weTogQWRkZWQuCisgICAgICAgIChGb3Jt
YXQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvZm9ybWF0Y3BwZmlsZXMucHk6
IEFkZGVkLgorICAgICAgICAoX2lzX2Zvcm1hdHRlZCk6CisgICAgICAgIChfcmFuZ2VzKToKKyAg
ICAgICAgKEZvcm1hdENwcEZpbGVzKToKKyAgICAgICAgKEZvcm1hdENwcEZpbGVzLm9wdGlvbnMp
OgorICAgICAgICAoRm9ybWF0Q3BwRmlsZXMuX19pbml0X18pOgorICAgICAgICAoRm9ybWF0Q3Bw
RmlsZXMucnVuKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9u
cy5weToKKyAgICAgICAgKE9wdGlvbnMpOgorCiAyMDIxLTA5LTE1ICBQaGlsaXAgQ2hpbWVudG8g
IDxwY2hpbWVudG9AaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXhlcyBmb3IgYnVpbGQtd2Via2l0
IC0tbWluaW1hbApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL19f
aW5pdF9fLnB5CmluZGV4IDkxZmIyYjkwZjQyZTZlODQ3OTlkMmNjYzE1NmNkZjJmZGVhMGNhNWYu
LmY4NGVhN2RkZGFlNDM2ZTA0OWUyZjMwYTU1MzExNjQ4MGUzMTgxODEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9fX2luaXRfXy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvX19pbml0X18ucHkKQEAgLTgsNiArOCw3
IEBAIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5idWdzZWFyY2ggaW1wb3J0IEJ1Z1NlYXJj
aAogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmRvd25sb2FkIGltcG9ydCAqCiBmcm9tIHdl
YmtpdHB5LnRvb2wuY29tbWFuZHMuZWFybHl3YXJuaW5nc3lzdGVtIGltcG9ydCBBYnN0cmFjdEVh
cmx5V2FybmluZ1N5c3RlbQogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLmZpbmR1c2VycyBp
bXBvcnQgRmluZFVzZXJzCitmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZm9ybWF0IGltcG9y
dCBGb3JtYXQKIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5nYXJkZW5vbWF0aWMgaW1wb3J0
IEdhcmRlbk9NYXRpYwogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLm9wZW5idWdzIGltcG9y
dCBPcGVuQnVncwogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnByZXR0eWRpZmYgaW1wb3J0
IFByZXR0eURpZmYKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9mb3JtYXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZm9y
bWF0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI3YTRmYjhiYjE0YjNiMzM3YWM1ZGJmNmIxZjU2YTRlYzIwMjdk
YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvZm9ybWF0LnB5CkBAIC0wLDAgKzEsMzkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
IyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1pdHRlcnMgaW1w
b3J0IENvbW1pdHRlckxpc3QKK2Zyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5hYnN0cmFjdHNl
cXVlbmNlZGNvbW1hbmQgaW1wb3J0IEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZAorZnJvbSB3ZWJr
aXRweS50b29sLm11bHRpY29tbWFuZHRvb2wgaW1wb3J0IENvbW1hbmQKKworZnJvbSB3ZWJraXRw
eS50b29sIGltcG9ydCBzdGVwcworCisKK2NsYXNzIEZvcm1hdChBYnN0cmFjdFNlcXVlbmNlZENv
bW1hbmQpOgorICAgIG5hbWUgPSAiZm9ybWF0IgorICAgIGhlbHBfdGV4dCA9ICJGb3JtYXRzIGNv
ZGUgYWNjb3JkaW5nIHRvIHByb2plY3QgZ3VpZGVsaW5lcyIKKyAgICBsb25nX2hlbHAgPSAiIiJG
b3JtYXQgdGhlIHdvcmtpbmcgY29weSBsaW5lcyBjaGFuZ2VkIGJ5IHRoZSBwYXRjaGVzIGdpdmVu
LgorRm9ybWF0cyBjdXJyZW50bHkgWGNvZGUgcHJvamVjdCBmaWxlcyBhbmQgQy9DKysgZmlsZXMu
IiIiCisgICAgc2hvd19pbl9tYWluX2hlbHAgPSBUcnVlCisgICAgc3RlcHMgPSBbCisgICAgICAg
IHN0ZXBzLlNvcnRYY29kZVByb2plY3RGaWxlcywKKyAgICAgICAgc3RlcHMuRm9ybWF0Q3BwRmls
ZXMsCisgICAgXQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5pdF9f
LnB5CmluZGV4IDMwMmRkZjY2NDVjY2I0OGIxNjhlNzU5MmIwOWJkN2NlYmJlMDg4YzEuLmU0Mjk1
NWQyMjM2YzUxYjU0YmExNGMxYzQ0NDVlY2RkYzgwZTdmYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHkKQEAgLTQ4LDYgKzQ4LDcgQEAgZnJvbSB3
ZWJraXRweS50b29sLnN0ZXBzLmRpc2NhcmRsb2NhbGNoYW5nZXMgaW1wb3J0IERpc2NhcmRMb2Nh
bENoYW5nZXMKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5lZGl0Y2hhbmdlbG9nIGltcG9ydCBF
ZGl0Q2hhbmdlTG9nCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMuZW5zdXJlYnVnaXNvcGVuYW5k
YXNzaWduZWQgaW1wb3J0IEVuc3VyZUJ1Z0lzT3BlbkFuZEFzc2lnbmVkCiBmcm9tIHdlYmtpdHB5
LnRvb2wuc3RlcHMuZW5zdXJlbG9jYWxjb21taXRpZm5lZWRlZCBpbXBvcnQgRW5zdXJlTG9jYWxD
b21taXRJZk5lZWRlZAorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmZvcm1hdGNwcGZpbGVzIGlt
cG9ydCBGb3JtYXRDcHBGaWxlcwogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmhhc2xhbmRlZCBp
bXBvcnQgSGFzTGFuZGVkCiBmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub2Jzb2xldGVwYXRjaGVz
IGltcG9ydCBPYnNvbGV0ZVBhdGNoZXMKIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5vcHRpb25z
IGltcG9ydCBPcHRpb25zCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c3RlcHMvZm9ybWF0Y3BwZmlsZXMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvZm9ybWF0Y3BwZmlsZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZlZWNkMGE0MDBjMDQ1OGQ1ZjUyZjk5
ZTAwYWY4MjJmMzE1YjU2NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9mb3JtYXRjcHBmaWxlcy5weQpAQCAtMCwwICsxLDk0IEBACisjIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQg
c3lzCitpbXBvcnQgb3MKKworZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IHN0cmluZ191dGlscwor
ZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuZGlmZl9wYXJzZXIgaW1wb3J0IERpZmZQYXJz
ZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVy
cm9yCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdCBpbXBvcnQgU3lzdGVt
SG9zdAorZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmFic3RyYWN0c3RlcCBpbXBvcnQgQWJzdHJh
Y3RTdGVwCitmcm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9ucyBpbXBvcnQgT3B0aW9ucwor
CitfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKK19mb3JtYXR0ZWRfc3VmZml4
ZXMgPSBzZXQoWycuY3BwJywgJy5jYycsICcuYycsICcuaCcsICcuaGgnLCAnLm1tJ10pCisKKwor
ZGVmIF9pc19mb3JtYXR0ZWQoZmlsZV9uYW1lKToKKyAgICBzdWZmaXggPSBvcy5wYXRoLnNwbGl0
ZXh0KGZpbGVfbmFtZSlbMV0KKyAgICByZXR1cm4gc3VmZml4IGluIF9mb3JtYXR0ZWRfc3VmZml4
ZXMKKworCitkZWYgX3JhbmdlcyhzZXEpOgorICAgIGlmIG5vdCBzZXE6CisgICAgICAgIHJldHVy
bgorICAgIHN0YXJ0LCBlbmQgPSBzZXFbMF0sIHNlcVswXQorICAgIGNvdW50ID0gc3RhcnQKKyAg
ICBmb3IgaXRlbSBpbiBzZXE6CisgICAgICAgIGlmIG5vdCBjb3VudCA9PSBpdGVtOgorICAgICAg
ICAgICAgeWllbGQgc3RhcnQsIGVuZAorICAgICAgICAgICAgc3RhcnQsIGVuZCA9IGl0ZW0sIGl0
ZW0KKyAgICAgICAgICAgIGNvdW50ID0gaXRlbQorICAgICAgICBlbmQgPSBpdGVtCisgICAgICAg
IGNvdW50ICs9IDEKKyAgICB5aWVsZCBzdGFydCwgZW5kCisKKworY2xhc3MgRm9ybWF0Q3BwRmls
ZXMoQWJzdHJhY3RTdGVwKToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgb3B0aW9ucyhjbHMp
OgorICAgICAgICByZXR1cm4gQWJzdHJhY3RTdGVwLm9wdGlvbnMoKSArIFsKKyAgICAgICAgICAg
IE9wdGlvbnMuZm9ybWF0X2NwcF9maWxlcywKKyAgICAgICAgXQorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHRvb2wsIG9wdGlvbnMsIGhvc3Q9Tm9uZSwgc2NtPU5vbmUpOgorICAgICAgICBzZWxm
Ll90b29sID0gdG9vbAorICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucworICAgICAgICBz
ZWxmLl9ob3N0ID0gaG9zdCBvciBTeXN0ZW1Ib3N0KCkKKworICAgIGRlZiBydW4oc2VsZiwgc3Rh
dGUpOgorICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5mb3JtYXRfY3BwX2ZpbGVzOgorICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIG5vdCBhbnkoX2lzX2Zvcm1hdHRlZChmaWxlKSBm
b3IgZmlsZSBpbiBzZWxmLl9jaGFuZ2VkX2ZpbGVzKHN0YXRlKSk6CisgICAgICAgICAgICByZXR1
cm4KKyAgICAgICAgZGlmZiA9IHNlbGYuY2FjaGVkX2xvb2t1cChzdGF0ZSwgJ2RpZmYnKQorICAg
ICAgICBwYXRjaF9zdHJpbmcgPSBzdHJpbmdfdXRpbHMuZGVjb2RlKGRpZmYsIHRhcmdldF90eXBl
PXN0cikKKyAgICAgICAgcGF0Y2hfZmlsZXMgPSBEaWZmUGFyc2VyKHBhdGNoX3N0cmluZy5zcGxp
dGxpbmVzKCkpLmZpbGVzCisgICAgICAgIGZvciBwYXRoLCBkaWZmX2ZpbGUgaW4gcGF0Y2hfZmls
ZXMuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIG5vdCBfaXNfZm9ybWF0dGVkKHBhdGgpOgorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBsaW5lX251bWJlcnMgPSBkaWZmX2Zp
bGUuYWRkZWRfb3JfbW9kaWZpZWRfbGluZV9udW1iZXJzKCkKKyAgICAgICAgICAgIGlmIG5vdCBs
aW5lX251bWJlcnM6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIG5v
dCBzZWxmLl9ob3N0LnBsYXRmb3JtLmlzX21hYygpOgorICAgICAgICAgICAgICAgIGNsYW5nX2Zv
cm1hdF9jb21tYW5kID0gWydjbGFuZy1mb3JtYXQnXQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBjbGFuZ19mb3JtYXRfY29tbWFuZCA9IFsneGNydW4nLCAnY2xhbmctZm9ybWF0
J10KKyAgICAgICAgICAgIGFyZ3MgPSBjbGFuZ19mb3JtYXRfY29tbWFuZCArIFsnLWknLCAnLS1z
b3J0LWluY2x1ZGVzJywgJy1Xbm8tY2xhbmctZm9ybWF0LXZpb2xhdGlvbnMnXSArIFsnLS1saW5l
cz17fTp7fScuZm9ybWF0KHJbMF0sIHJbMV0pIGZvciByIGluIF9yYW5nZXMobGluZV9udW1iZXJz
KV0gKyBbcGF0aF0KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLl90b29s
LmV4ZWN1dGl2ZS5ydW5fYW5kX3Rocm93X2lmX2ZhaWwoYXJncywgc2VsZi5fb3B0aW9ucy5xdWll
dCwgY3dkPXNlbGYuX3Rvb2wuc2NtKCkuY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgICAgIGV4Y2Vw
dCBTY3JpcHRFcnJvcjoKKyAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCdVbmFibGUgdG8gZm9y
bWF0IEMrKy9DIGZpbGVzLicpCisgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlvbnMucHkKaW5kZXggMjc0ZjJmMTU0OGNm
MTUxYWFkMTY0YTUzMmQ0ODBlNTFkNjNhMzdkZS4uYTQwNDFjNjg5YzQ3ZDczODJjNjA5NTllNjU0
OTdmYTBkYjliZTExMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL29wdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29w
dGlvbnMucHkKQEAgLTY4LDMgKzY4LDQgQEAgY2xhc3MgT3B0aW9ucyhvYmplY3QpOgogICAgIHVw
ZGF0ZSA9IG1ha2Vfb3B0aW9uKCItLW5vLXVwZGF0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBk
ZXN0PSJ1cGRhdGUiLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvbid0IHVwZGF0ZSB0aGUgd29ya2lu
ZyBkaXJlY3RvcnkuIikKICAgICB1cGRhdGVfY2hhbmdlbG9ncyA9IG1ha2Vfb3B0aW9uKCItLXVw
ZGF0ZS1jaGFuZ2Vsb2dzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0idXBkYXRlX2NoYW5n
ZWxvZ3MiLCBkZWZhdWx0PUZhbHNlLCBoZWxwPSJVcGRhdGUgZXhpc3RpbmcgQ2hhbmdlTG9nIGVu
dHJpZXMgd2l0aCBuZXcgZGF0ZSwgYnVnIGRlc2NyaXB0aW9uLCBhbmQgdG91Y2hlZCBmaWxlcy9m
dW5jdGlvbnMuIikKICAgICBjaGFuZ2Vsb2dfY291bnQgPSBtYWtlX29wdGlvbigiLS1jaGFuZ2Vs
b2ctY291bnQiLCBhY3Rpb249InN0b3JlIiwgdHlwZT0iaW50IiwgZGVzdD0iY2hhbmdlbG9nX2Nv
dW50IiwgaGVscD0iTnVtYmVyIG9mIGNoYW5nZWxvZ3MgdG8gcGFyc2UuIikKKyAgICBmb3JtYXRf
Y3BwX2ZpbGVzID0gbWFrZV9vcHRpb24oIi0tbm8tZm9ybWF0LWNwcC1maWxlcyIsIGFjdGlvbj0i
c3RvcmVfZmFsc2UiLCBkZXN0PSJmb3JtYXRfY3BwX2ZpbGVzIiwgZGVmYXVsdD1UcnVlLCBoZWxw
PSJTa2lwIGZvcm1hdHRpbmcgb2YgQy9DKysgZmlsZXMuIikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441853</attachid>
            <date>2021-10-19 23:15:08 -0700</date>
            <delta_ts>2021-10-20 00:23:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-230397-20211020091506.patch</filename>
            <type>text/plain</type>
            <size>10327</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTE4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmZlMTIyNDRlZjMxNzgzMTgxZjQ3NzdlNDJiZGJlOWQx
YTYzOWZlZC4uZDdjMTRiYWJhOWU4MWY1ZjkzOWYwNWFlOWQyYzJjZDA4YThmMjZiZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDIxLTEwLTE5ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGZvcm1hdCBDKysgY29kZSB0byBwcm9q
ZWN0IHN0eWxlIHdpdGggV2ViS2l0IHRvb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAzOTcKKworICAgICAgICBSZXZpZXdlZCBieSBKb25hdGhh
biBCZWRhcmQuCisKKyAgICAgICAgQWRkIGNhcGFiaWxpdHkgdG8gcnVuIGNsYW5nLWZvcm1hdCBm
b3IgbGluZXMgY2hhbmdlZCBieQorICAgICAgICBhIHBhdGNoLgorICAgICAgICBTdXBwb3J0cyB3
b3JrZmxvdyBvZjoKKyAgICAgICAgICAgIHdlYmtpdC1wYXRjaCBmb3JtYXQgLWcgSEVBRAorICAg
ICAgICAgICAgZ2l0IGNvbW1pdCAtYSAtLWFtZW5kIC0tbm8tZWRpdAorCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL19faW5pdF9fLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9mb3JtYXQucHk6IEFkZGVkLgorICAgICAgICAoRm9y
bWF0KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvX19pbml0X18ucHk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2Zvcm1hdGNwcGZpbGVzLnB5
OiBBZGRlZC4KKyAgICAgICAgKF9pc19mb3JtYXR0ZWQpOgorICAgICAgICAoX3Jhbmdlcyk6Cisg
ICAgICAgIChGb3JtYXRDcHBGaWxlcyk6CisgICAgICAgIChGb3JtYXRDcHBGaWxlcy5vcHRpb25z
KToKKyAgICAgICAgKEZvcm1hdENwcEZpbGVzLl9faW5pdF9fKToKKyAgICAgICAgKEZvcm1hdENw
cEZpbGVzLnJ1bik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29wdGlv
bnMucHk6CisgICAgICAgIChPcHRpb25zKToKKwogMjAyMS0xMC0xOSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkdMIGxvdy1wb3dlciBhbmQgaGln
aC1wZXJmb3JtYW5jZSBjb250ZXh0cyBzaG91bGQgdXNlIGRpZmZlcmVudCBBTkdMRSBNZXRhbCBF
R0xEaXNwbGF5cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL19f
aW5pdF9fLnB5CmluZGV4IGY5YTIwZDNlNTg1NjJjYjBjMzI5NzgwNjQ2MmVjMzllM2YxNzVmYTAu
LmU4NmJmNzU0ZTA1NThlNWM0Y2NlZWE0MzhjYmJlMTE0YWY0NzNkZWMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9fX2luaXRfXy5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvX19pbml0X18ucHkKQEAgLTIsNiArMiw3
IEBACiAKIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5hcHBseXdhdGNobGlzdGxvY2FsIGlt
cG9ydCBBcHBseVdhdGNoTGlzdExvY2FsCiBmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuZG93
bmxvYWQgaW1wb3J0ICoKK2Zyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5mb3JtYXQgaW1wb3J0
IEZvcm1hdAogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnByZXR0eWRpZmYgaW1wb3J0IFBy
ZXR0eURpZmYKIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5xdWVyaWVzIGltcG9ydCAqCiBm
cm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMucXVldWVzIGltcG9ydCAqCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZm9ybWF0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Zvcm1hdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iN2E0ZmI4
YmIxNGIzYjMzN2FjNWRiZjZiMWY1NmE0ZWMyMDI3ZGI3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Zvcm1hdC5weQpAQCAtMCwwICsxLDM5
IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyMgQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0
cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXJMaXN0Citmcm9tIHdl
YmtpdHB5LnRvb2wuY29tbWFuZHMuYWJzdHJhY3RzZXF1ZW5jZWRjb21tYW5kIGltcG9ydCBBYnN0
cmFjdFNlcXVlbmNlZENvbW1hbmQKK2Zyb20gd2Via2l0cHkudG9vbC5tdWx0aWNvbW1hbmR0b29s
IGltcG9ydCBDb21tYW5kCisKK2Zyb20gd2Via2l0cHkudG9vbCBpbXBvcnQgc3RlcHMKKworCitj
bGFzcyBGb3JtYXQoQWJzdHJhY3RTZXF1ZW5jZWRDb21tYW5kKToKKyAgICBuYW1lID0gImZvcm1h
dCIKKyAgICBoZWxwX3RleHQgPSAiRm9ybWF0cyBjb2RlIGFjY29yZGluZyB0byBwcm9qZWN0IGd1
aWRlbGluZXMiCisgICAgbG9uZ19oZWxwID0gIiIiRm9ybWF0IHRoZSB3b3JraW5nIGNvcHkgbGlu
ZXMgY2hhbmdlZCBieSB0aGUgcGF0Y2hlcyBnaXZlbi4KK0Zvcm1hdHMgY3VycmVudGx5IFhjb2Rl
IHByb2plY3QgZmlsZXMgYW5kIEMvQysrIGZpbGVzLiIiIgorICAgIHNob3dfaW5fbWFpbl9oZWxw
ID0gVHJ1ZQorICAgIHN0ZXBzID0gWworICAgICAgICBzdGVwcy5Tb3J0WGNvZGVQcm9qZWN0Rmls
ZXMsCisgICAgICAgIHN0ZXBzLkZvcm1hdENwcEZpbGVzLAorICAgIF0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9fX2luaXRfXy5weQppbmRleCAzMDJkZGY2NjQ1Y2NiNDhi
MTY4ZTc1OTJiMDliZDdjZWJiZTA4OGMxLi5lNDI5NTVkMjIzNmM1MWI1NGJhMTRjMWM0NDQ1ZWNk
ZGM4MGU3ZmMxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
X19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL19faW5p
dF9fLnB5CkBAIC00OCw2ICs0OCw3IEBAIGZyb20gd2Via2l0cHkudG9vbC5zdGVwcy5kaXNjYXJk
bG9jYWxjaGFuZ2VzIGltcG9ydCBEaXNjYXJkTG9jYWxDaGFuZ2VzCiBmcm9tIHdlYmtpdHB5LnRv
b2wuc3RlcHMuZWRpdGNoYW5nZWxvZyBpbXBvcnQgRWRpdENoYW5nZUxvZwogZnJvbSB3ZWJraXRw
eS50b29sLnN0ZXBzLmVuc3VyZWJ1Z2lzb3BlbmFuZGFzc2lnbmVkIGltcG9ydCBFbnN1cmVCdWdJ
c09wZW5BbmRBc3NpZ25lZAogZnJvbSB3ZWJraXRweS50b29sLnN0ZXBzLmVuc3VyZWxvY2FsY29t
bWl0aWZuZWVkZWQgaW1wb3J0IEVuc3VyZUxvY2FsQ29tbWl0SWZOZWVkZWQKK2Zyb20gd2Via2l0
cHkudG9vbC5zdGVwcy5mb3JtYXRjcHBmaWxlcyBpbXBvcnQgRm9ybWF0Q3BwRmlsZXMKIGZyb20g
d2Via2l0cHkudG9vbC5zdGVwcy5oYXNsYW5kZWQgaW1wb3J0IEhhc0xhbmRlZAogZnJvbSB3ZWJr
aXRweS50b29sLnN0ZXBzLm9ic29sZXRlcGF0Y2hlcyBpbXBvcnQgT2Jzb2xldGVQYXRjaGVzCiBm
cm9tIHdlYmtpdHB5LnRvb2wuc3RlcHMub3B0aW9ucyBpbXBvcnQgT3B0aW9ucwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2Zvcm1hdGNwcGZpbGVzLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2Zvcm1hdGNwcGZpbGVzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM2ZWVjZDBhNDAwYzA0NThkNWY1MmY5OWUwMGFmODIyZjMxNWI1NjUKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvZm9ybWF0Y3BwZmls
ZXMucHkKQEAgLTAsMCArMSw5NCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBt
ZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisj
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHN5cworaW1wb3J0IG9zCisKK2Zyb20gd2Vi
a2l0Y29yZXB5IGltcG9ydCBzdHJpbmdfdXRpbHMKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNoZWNr
b3V0LmRpZmZfcGFyc2VyIGltcG9ydCBEaWZmUGFyc2VyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgorZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLnN5c3RlbWhvc3QgaW1wb3J0IFN5c3RlbUhvc3QKK2Zyb20gd2Via2l0cHkudG9vbC5z
dGVwcy5hYnN0cmFjdHN0ZXAgaW1wb3J0IEFic3RyYWN0U3RlcAorZnJvbSB3ZWJraXRweS50b29s
LnN0ZXBzLm9wdGlvbnMgaW1wb3J0IE9wdGlvbnMKKworX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KF9fbmFtZV9fKQorCitfZm9ybWF0dGVkX3N1ZmZpeGVzID0gc2V0KFsnLmNwcCcsICcuY2MnLCAn
LmMnLCAnLmgnLCAnLmhoJywgJy5tbSddKQorCisKK2RlZiBfaXNfZm9ybWF0dGVkKGZpbGVfbmFt
ZSk6CisgICAgc3VmZml4ID0gb3MucGF0aC5zcGxpdGV4dChmaWxlX25hbWUpWzFdCisgICAgcmV0
dXJuIHN1ZmZpeCBpbiBfZm9ybWF0dGVkX3N1ZmZpeGVzCisKKworZGVmIF9yYW5nZXMoc2VxKToK
KyAgICBpZiBub3Qgc2VxOgorICAgICAgICByZXR1cm4KKyAgICBzdGFydCwgZW5kID0gc2VxWzBd
LCBzZXFbMF0KKyAgICBjb3VudCA9IHN0YXJ0CisgICAgZm9yIGl0ZW0gaW4gc2VxOgorICAgICAg
ICBpZiBub3QgY291bnQgPT0gaXRlbToKKyAgICAgICAgICAgIHlpZWxkIHN0YXJ0LCBlbmQKKyAg
ICAgICAgICAgIHN0YXJ0LCBlbmQgPSBpdGVtLCBpdGVtCisgICAgICAgICAgICBjb3VudCA9IGl0
ZW0KKyAgICAgICAgZW5kID0gaXRlbQorICAgICAgICBjb3VudCArPSAxCisgICAgeWllbGQgc3Rh
cnQsIGVuZAorCisKK2NsYXNzIEZvcm1hdENwcEZpbGVzKEFic3RyYWN0U3RlcCk6CisgICAgQGNs
YXNzbWV0aG9kCisgICAgZGVmIG9wdGlvbnMoY2xzKToKKyAgICAgICAgcmV0dXJuIEFic3RyYWN0
U3RlcC5vcHRpb25zKCkgKyBbCisgICAgICAgICAgICBPcHRpb25zLmZvcm1hdF9jcHBfZmlsZXMs
CisgICAgICAgIF0KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0b29sLCBvcHRpb25zLCBob3N0
PU5vbmUsIHNjbT1Ob25lKToKKyAgICAgICAgc2VsZi5fdG9vbCA9IHRvb2wKKyAgICAgICAgc2Vs
Zi5fb3B0aW9ucyA9IG9wdGlvbnMKKyAgICAgICAgc2VsZi5faG9zdCA9IGhvc3Qgb3IgU3lzdGVt
SG9zdCgpCisKKyAgICBkZWYgcnVuKHNlbGYsIHN0YXRlKToKKyAgICAgICAgaWYgbm90IHNlbGYu
X29wdGlvbnMuZm9ybWF0X2NwcF9maWxlczoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBp
ZiBub3QgYW55KF9pc19mb3JtYXR0ZWQoZmlsZSkgZm9yIGZpbGUgaW4gc2VsZi5fY2hhbmdlZF9m
aWxlcyhzdGF0ZSkpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGRpZmYgPSBzZWxmLmNh
Y2hlZF9sb29rdXAoc3RhdGUsICdkaWZmJykKKyAgICAgICAgcGF0Y2hfc3RyaW5nID0gc3RyaW5n
X3V0aWxzLmRlY29kZShkaWZmLCB0YXJnZXRfdHlwZT1zdHIpCisgICAgICAgIHBhdGNoX2ZpbGVz
ID0gRGlmZlBhcnNlcihwYXRjaF9zdHJpbmcuc3BsaXRsaW5lcygpKS5maWxlcworICAgICAgICBm
b3IgcGF0aCwgZGlmZl9maWxlIGluIHBhdGNoX2ZpbGVzLml0ZW1zKCk6CisgICAgICAgICAgICBp
ZiBub3QgX2lzX2Zvcm1hdHRlZChwYXRoKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICAgICAgbGluZV9udW1iZXJzID0gZGlmZl9maWxlLmFkZGVkX29yX21vZGlmaWVkX2xpbmVf
bnVtYmVycygpCisgICAgICAgICAgICBpZiBub3QgbGluZV9udW1iZXJzOgorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5faG9zdC5wbGF0Zm9ybS5pc19t
YWMoKToKKyAgICAgICAgICAgICAgICBjbGFuZ19mb3JtYXRfY29tbWFuZCA9IFsnY2xhbmctZm9y
bWF0J10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY2xhbmdfZm9ybWF0X2Nv
bW1hbmQgPSBbJ3hjcnVuJywgJ2NsYW5nLWZvcm1hdCddCisgICAgICAgICAgICBhcmdzID0gY2xh
bmdfZm9ybWF0X2NvbW1hbmQgKyBbJy1pJywgJy0tc29ydC1pbmNsdWRlcycsICctV25vLWNsYW5n
LWZvcm1hdC12aW9sYXRpb25zJ10gKyBbJy0tbGluZXM9e306e30nLmZvcm1hdChyWzBdLCByWzFd
KSBmb3IgciBpbiBfcmFuZ2VzKGxpbmVfbnVtYmVycyldICsgW3BhdGhdCisgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgc2VsZi5fdG9vbC5leGVjdXRpdmUucnVuX2FuZF90aHJvd19p
Zl9mYWlsKGFyZ3MsIHNlbGYuX29wdGlvbnMucXVpZXQsIGN3ZD1zZWxmLl90b29sLnNjbSgpLmNo
ZWNrb3V0X3Jvb3QpCisgICAgICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3I6CisgICAgICAgICAg
ICAgICAgX2xvZy5lcnJvcignVW5hYmxlIHRvIGZvcm1hdCBDKysvQyBmaWxlcy4nKQorICAgICAg
ICAgICAgICAgIHN5cy5leGl0KDEpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVw
cy9vcHRpb25zLnB5CmluZGV4IDI3NGYyZjE1NDhjZjE1MWFhZDE2NGE1MzJkNDgwZTUxZDYzYTM3
ZGUuLmE0MDQxYzY4OWM0N2Q3MzgyYzYwOTU5ZTY1NDk3ZmEwZGI5YmUxMTIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC02OCwzICs2OCw0IEBA
IGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICB1cGRhdGUgPSBtYWtlX29wdGlvbigiLS1uby11
cGRhdGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0idXBkYXRlIiwgZGVmYXVsdD1UcnVl
LCBoZWxwPSJEb24ndCB1cGRhdGUgdGhlIHdvcmtpbmcgZGlyZWN0b3J5LiIpCiAgICAgdXBkYXRl
X2NoYW5nZWxvZ3MgPSBtYWtlX29wdGlvbigiLS11cGRhdGUtY2hhbmdlbG9ncyIsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsIGRlc3Q9InVwZGF0ZV9jaGFuZ2Vsb2dzIiwgZGVmYXVsdD1GYWxzZSwgaGVs
cD0iVXBkYXRlIGV4aXN0aW5nIENoYW5nZUxvZyBlbnRyaWVzIHdpdGggbmV3IGRhdGUsIGJ1ZyBk
ZXNjcmlwdGlvbiwgYW5kIHRvdWNoZWQgZmlsZXMvZnVuY3Rpb25zLiIpCiAgICAgY2hhbmdlbG9n
X2NvdW50ID0gbWFrZV9vcHRpb24oIi0tY2hhbmdlbG9nLWNvdW50IiwgYWN0aW9uPSJzdG9yZSIs
IHR5cGU9ImludCIsIGRlc3Q9ImNoYW5nZWxvZ19jb3VudCIsIGhlbHA9Ik51bWJlciBvZiBjaGFu
Z2Vsb2dzIHRvIHBhcnNlLiIpCisgICAgZm9ybWF0X2NwcF9maWxlcyA9IG1ha2Vfb3B0aW9uKCIt
LW5vLWZvcm1hdC1jcHAtZmlsZXMiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0iZm9ybWF0
X2NwcF9maWxlcyIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iU2tpcCBmb3JtYXR0aW5nIG9mIEMvQysr
IGZpbGVzLiIpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>