<?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>110293</bug_id>
          
          <creation_ts>2013-02-19 19:23:39 -0800</creation_ts>
          <short_desc>[GTK] Move feature overriding to the configure phase</short_desc>
          <delta_ts>2013-03-26 12:29: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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>dbates</cc>
    
    <cc>gustavo</cc>
    
    <cc>landry</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>pnormand</cc>
    
    <cc>rego+ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>837077</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-19 19:23:39 -0800</bug_when>
    <thetext>Currently feature overriding happens while autogen.sh is called. This bug tracks moving it to the configure phase, so that it can be shared more easily with the gyp build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837194</commentid>
    <comment_count>1</comment_count>
      <attachid>189251</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-19 22:55:00 -0800</bug_when>
    <thetext>Created attachment 189251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837206</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-19 23:09:28 -0800</bug_when>
    <thetext>For the sake of reviewers, here is a high-level overview of how the new feature overriding system works:

1. The feature profile for releases is defined in SetupWebKitFeatures.m4. This is what you get when you run configure from the tarball.

2. build-webkit writes WebKitFeatureOverrides.txt in the build directory. This is the developer feature profile (modified by any command-line arguments passed to build-webkit) described as a simple list of key value pairs like:
ENABLE_3D_RENDERING=0 ENABLE_ACCELERATED_2D_CANVAS=0 ENABLE_BATTERY_STATUS=0...

3. configure takes the features defined in SetupWebKitFeatures.m4 and command-line arguments and passes that as an argument to generate-feature-defines-files.

4. generate-feature-defines-files overrides its command-line arguments (the defaults from step 3) with the contents of WebKitFeatureOverrides.txt, if it exists. It writes two files: 

  * WebKitFeatures.h: A header that has all the features as compiler defines. Before these were passed as command-line arguments to the compiler. This header is included in the autotoolconfig.h header. If it changes, it will trigger a full rebuild.

  * WebKitFeatures.txt: A key-value pair list of the resolved features that are passed to code generators. This used to be generated by the WebCore GNUmakefile.am.

5. GNUmakefile.am reads WebKitFeatures.txt and passes the contents to all code generators.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838322</commentid>
    <comment_count>3</comment_count>
      <attachid>189251</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-02-21 04:25:59 -0800</bug_when>
    <thetext>Comment on attachment 189251
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=189251&amp;action=review

LGTM!

&gt; Source/autotools/SetupWebKitFeatures.m4:189
&gt; +  dnl Grep the generated GNUmakefile.features.am

s/GNUmakefile.features.am/WebKitFeatures.txt/, but I&apos;d just remove the comment, the code is pretty self-explanatory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838441</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-02-21 08:22:33 -0800</bug_when>
    <thetext>Committed r143604: &lt;http://trac.webkit.org/changeset/143604&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840623</commentid>
    <comment_count>5</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2013-02-24 10:37:05 -0800</bug_when>
    <thetext>Martin, can you also update http://trac.webkit.org/wiki/AddingFeatures to reflect this commit ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863625</commentid>
    <comment_count>6</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2013-03-26 06:47:55 -0700</bug_when>
    <thetext>This commit uses read -d which is a bashism for the read builtin. Configure bails out with ksh here.

checking for pthread_rwlock_init in -lpthread... yes
./configure[21434]: read: -d: unknown option
env: python: No such file or directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863644</commentid>
    <comment_count>7</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2013-03-26 07:19:23 -0700</bug_when>
    <thetext>A more sh-portable option is to use a backslash between each value:

read FOO &lt;&lt; &quot;EOF&quot;
a \
b \
c
EOF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863916</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-03-26 12:29:00 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; A more sh-portable option is to use a backslash between each value:
&gt; 
&gt; read FOO &lt;&lt; &quot;EOF&quot;
&gt; a \
&gt; b \
&gt; c
&gt; EOF

Makes sense. Do you mind opening a bug for this and CCing me?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189251</attachid>
            <date>2013-02-19 22:55:00 -0800</date>
            <delta_ts>2013-02-21 04:25:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110293-20130219225124.patch</filename>
            <type>text/plain</type>
            <size>29120</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU2NjU2NjJkMGY2NTc5
MDVmY2E2MWU5OGEzMTk0NjZmODRjZDkzYi4uNmQwNjYxNDNhMmM4YzE0MzZjNDc5N2FmNGI3ODhh
ZjQ4MzY2ZDEwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAyLTE5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBNb3Zl
IGZlYXR1cmUgb3ZlcnJpZGluZyB0byB0aGUgY29uZmlndXJlIHBoYXNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAyOTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBObyBs
b25nZXIgaW5jbHVkZSBHTlVtYWtlZmlsZS5mZWF0dXJlcy5hbS4gV2UgZG9uJ3QKKyAgICAgICAg
aGF2ZSB0byBwcm9jZXNzIHRoZSByZXN1bHQgb2YgdGhpcyBmaWxlIG9yIGRvIGFueSBtb2RpZmlj
YXRpb24gb2YKKyAgICAgICAgZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRlLCBiZWNhdXNlIHRoaXMg
dmFyaWFibGUgaXMgZ29uZS4KKwogMjAxMy0wMi0xOSAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgUmVuZGVyVGV4dDo6dXBkYXRlVGV4dApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQppbmRleCBjYTAxMTkxMmU0MTVkYmQwZWRkOTg5NDAxYjRiNzY2MGQw
MjJmMDE5Li43NjIzYjlkZTgzNTI1MTdkNjk4ZGIwNzJmMTNjNWRjNzRkZWVmMWNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQpAQCAtMSw0ICsxLDMgQEAKLWluY2x1ZGUgJChzcmNkaXIpL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmZlYXR1cmVzLmFtCiBpbmNsdWRlICQoc3JjZGlyKS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCiAKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVT
IDo9ICQoV2ViQ29yZSkvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KQEAgLTEzNyw3NSArMTM2LDEy
IEBAIHdlYmNvcmVndGtfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbgogZW5kaWYgIyBFTkQgVEFSR0VUX1dJTjMyCiAKLSMgLS0t
LQotIyBHYW1lcGFkIHN1cHBvcnQKLSMgLS0tCi1pZiBFTkFCTEVfR0FNRVBBRAotZmVhdHVyZV9k
ZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfR0FNRVBBRD0xCi1lbHNlCi1mZWF0dXJlX2RlZmlu
ZXNfb3ZlcnJpZGVzICs9IEVOQUJMRV9HQU1FUEFEPTAKLWVuZGlmICMgRU5EIEVOQUJMRV9HQU1F
UEFECi0KLSMgLS0tLQotIyBWaWRlbyBTdXBwb3J0Ci0jIC0tLS0KLWlmIEVOQUJMRV9WSURFTwot
ZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfVklERU89MQotZWxzZQotZmVhdHVy
ZV9kZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfVklERU89MCBFTkFCTEVfVklERU9fVFJBQ0s9
MAotZW5kaWYgIyBFTkQgRU5BQkxFX1ZJREVPCi0KLSMgLS0tLQotIyBGaWx0ZXJzCi0jIC0tLS0K
LWlmIEVOQUJMRV9DU1NfRklMVEVSUwotZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRlcyArPSBFTkFC
TEVfQ1NTX0ZJTFRFUlM9MQotZWxzZQotZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRlcyArPSBFTkFC
TEVfQ1NTX0ZJTFRFUlM9MAotZW5kaWYgIyBFTkQgRU5BQkxFX0NTU19GSUxURVJTCi0KLSMgLS0t
LQotIyBNZWRpYSBTdHJlYW0gU3VwcG9ydAotIyAtLS0tCi1pZiBFTkFCTEVfTUVESUFfU1RSRUFN
Ci1mZWF0dXJlX2RlZmluZXNfb3ZlcnJpZGVzICs9IEVOQUJMRV9NRURJQV9TVFJFQU09MQotZWxz
ZQotZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfTUVESUFfU1RSRUFNPTAKLWVu
ZGlmICMgRU5EIEVOQUJMRV9NRURJQV9TVFJFQU0KLQogIyBYUGF0aCBncmFtbWFyCiAkKEdFTlNP
VVJDRVNfV0VCQ09SRSkvWFBhdGhHcmFtbWFyLmg6ICQoR0VOU09VUkNFU19XRUJDT1JFKS9YUGF0
aEdyYW1tYXIuY3BwCiAkKEdFTlNPVVJDRVNfV0VCQ09SRSkvWFBhdGhHcmFtbWFyLmNwcDogJChX
ZWJDb3JlKS94bWwvWFBhdGhHcmFtbWFyLnkKIAkkKEFNX1ZfR0VOKQogCSQoQU1fVl9hdClwZXJs
ICQoV2ViQ29yZSkvY3NzL21ha2VncmFtbWFyLnBsIC0tb3V0cHV0RGlyICQoR0VOU09VUkNFU19X
RUJDT1JFKSAtLWJpc29uICIkKEJJU09OKSIgLS1zeW1ib2xzUHJlZml4IHhwYXRoeXkgJDwKIAot
IyAtLS0tCi0jIFhTTFQgU3VwcG9ydAotIyAtLS0tCi1pZiBFTkFCTEVfWFNMVAotZmVhdHVyZV9k
ZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfWFNMVD0xCi1lbHNlCi1mZWF0dXJlX2RlZmluZXNf
b3ZlcnJpZGVzICs9IEVOQUJMRV9YU0xUPTAKLWVuZGlmICMgRU5EIEVOQUJMRV9YU0xUCi0KLSMg
LS0tLQotIyBTaGFkZXJzCi0jIC0tLS0KLWlmIEVOQUJMRV9DU1NfU0hBREVSUwotZmVhdHVyZV9k
ZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfQ1NTX1NIQURFUlM9MQotZWxzZQotZmVhdHVyZV9k
ZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfQ1NTX1NIQURFUlM9MAotZW5kaWYgIyBFTkQgRU5B
QkxFX0NTU19TSEFERVJTCi0KLSMgLS0tLQotIyBHZW9sb2NhdGlvbgotIyAtLS0tCi1pZiBFTkFC
TEVfR0VPTE9DQVRJT04KLWZlYXR1cmVfZGVmaW5lc19vdmVycmlkZXMgKz0gRU5BQkxFX0dFT0xP
Q0FUSU9OPTEKLWVsc2UKLWZlYXR1cmVfZGVmaW5lc19vdmVycmlkZXMgKz0gRU5BQkxFX0dFT0xP
Q0FUSU9OPTAKLWVuZGlmICMgRU5EIEVOQUJMRV9HRU9MT0NBVElPTgotCiAjIE1hdGhNTCB0YWcg
YW5kIGF0dHJpYnV0ZSBuYW1lcywgYW5kIGVsZW1lbnQgZmFjdG9yeQogRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9NYXRoTUxFbGVtZW50RmFjdG9yeS5oOiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL01h
dGhNTEVsZW1lbnRGYWN0b3J5LmNwcAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9NYXRoTUxOYW1l
cy5oOiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL01hdGhNTE5hbWVzLmNwcApAQCAtMjQ1LDE4ICsx
ODEsMTAgQEAgbGliV2ViQ29yZVNWR19sYV9DUFBGTEFHUyA9IFwKIAkkKExJQlNPVVBfQ0ZMQUdT
KSBcCiAJJChVTklDT0RFX0NGTEFHUykKIAotZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRlcyArPSBF
TkFCTEVfU1ZHPTEKIFdFQkNPUkVfQ1NTX1BST1BFUlRZX05BTUVTICs9ICQoV2ViQ29yZSkvY3Nz
L1NWR0NTU1Byb3BlcnR5TmFtZXMuaW4KIFdFQkNPUkVfQ1NTX1ZBTFVFX0tFWVdPUkRTICs9ICQo
V2ViQ29yZSkvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4KLSMgU1ZHIEZlYXR1cmVzCi1pZiBF
TkFCTEVfU1ZHX0ZPTlRTCi1mZWF0dXJlX2RlZmluZXNfb3ZlcnJpZGVzICs9IEVOQUJMRV9TVkdf
Rk9OVFM9MQotZWxzZQotZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfU1ZHX0ZP
TlRTPTAKLWVuZGlmCi1lbHNlCi1mZWF0dXJlX2RlZmluZXNfb3ZlcnJpZGVzICs9IEVOQUJMRV9T
Vkc9MCBFTkFCTEVfU1ZHX0ZPTlRTPTAKLWVuZGlmICMgRU5EIEVOQUJMRV9TVkcKKworZW5kaWYg
IyBFTkRfRU5BQkxFX1NWRwogCiAjIFNWRyB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1lcyAobmVlZCB0
byBwYXNzIGFuIGV4dHJhIGZsYWcgaWYgc3ZnIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBhcmUgZW5h
YmxlZCkKIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU1ZHTmFtZXMuY3BwOiBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1NWR0VsZW1lbnRGYWN0b3J5LmNwcApAQCAtMjcwLDMzICsxOTgsNiBAQCBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL1hMaW5rTmFtZXMuaDogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Y
TGlua05hbWVzLmNwcAogRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9YTGlua05hbWVzLmNwcCA6ICQo
V2ViQ29yZSkvZG9tL21ha2VfbmFtZXMucGwgJChXZWJDb3JlKS9zdmcveGxpbmthdHRycy5pbgog
CSQoQU1fVl9HRU4pJChQRVJMKSAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkPCAtLWF0
dHJzICQoV2ViQ29yZSkvc3ZnL3hsaW5rYXR0cnMuaW4gLS1vdXRwdXREaXIgIiQoR0VOU09VUkNF
U19XRUJDT1JFKSIKIAotIyAtLS0tCi0jIFdlYiBBdWRpbyBTdXBwb3J0Ci0jIC0tLS0KLWlmIEVO
QUJMRV9XRUJfQVVESU8KLWZlYXR1cmVfZGVmaW5lc19vdmVycmlkZXMgKz0gRU5BQkxFX1dFQl9B
VURJTz0xCi1lbHNlCi1mZWF0dXJlX2RlZmluZXNfb3ZlcnJpZGVzICs9IEVOQUJMRV9XRUJfQVVE
SU89MAotZW5kaWYKLQotIyAtLS0KLSMgM0QgY2FudmFzIChXZWJHTCkgc3VwcG9ydAotIyAtLS0K
LWlmIEVOQUJMRV9XRUJHTAotZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfV0VC
R0w9MQotZWxzZQotZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfV0VCR0w9MAot
ZW5kaWYgICMgRU5EIEVOQUJMRV9XRUJHTAotCi0jIC0tLQotIyBBY2NlbGVyYXRlZCBjb21wb3Np
dGluZyBzdXBwb3J0Ci0jIC0tLQotaWYgVVNFX0FDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HCi1mZWF0
dXJlX2RlZmluZXNfb3ZlcnJpZGVzICs9IEVOQUJMRV8zRF9SRU5ERVJJTkc9MQotZWxzZQotZmVh
dHVyZV9kZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfM0RfUkVOREVSSU5HPTAKLWVuZGlmICAj
IEVORCBVU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkcKLQogaWYgVVNFX1RFWFRVUkVfTUFQUEVS
X0NBSVJPCiB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAKQEAgLTMxMywxNSArMjE0LDYgQEAgd2ViY29yZV9j
cHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2x1dHRlcgogZW5kaWYgICMgRU5EIFVTRV9DTFVUVEVSCiAKLSMgLS0tCi0jIFNwZWxsIGNo
ZWNrIHN1cHBvcnQKLSMgLS0tCi1pZiBFTkFCTEVfU1BFTExDSEVDSwotZmVhdHVyZV9kZWZpbmVz
X292ZXJyaWRlcyArPSBFTkFCTEVfU1BFTExDSEVDSz0xCi1lbHNlCi1mZWF0dXJlX2RlZmluZXNf
b3ZlcnJpZGVzICs9IEVOQUJMRV9TUEVMTENIRUNLPTAKLWVuZGlmICAjIEVORCBFTkFCTEVfU1BF
TExDSEVDSwotCiBpZiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRQogd2ViY29yZV9jcHBmbGFncyAr
PSBcCiAJLURXVEZfVVNFX0xFVkVMREI9MSBcCkBAIC0zMjksMjYgKzIyMSw2IEBAIHdlYmNvcmVf
Y3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9UaGlyZFBhcnR5L2xldmVsZGIvaW5j
bHVkZQogZW5kaWYKIAotIyBGaWxsIHRoZSBmZWF0dXJlX2RlZmluZXMgdmFyaWFibGUgd2l0aCBh
bGwgdGhlIGRlZmluZXMsIG1ha2luZyBpdCBwb3NzaWJsZQotIyB0byBvdmVycmlkZSB0aGUgZGVm
YXVsdCBkZWZpbmUgdmFsdWUgKGFzIHNldCBpbiBmZWF0dXJlX2RlZmluZXNfZGVmYXVsdHMpCi0j
IHRocm91Z2ggYWRkaW5nIHRoZSBmZWF0dXJlIGRlZmluZSB3aXRoIHRoZSBkZXNpcmVkIHZhbHVl
IHRvIGVpdGhlcgotIyBmZWF0dXJlX2RlZmluZXNfdW5zdGFibGUgb3IgZmVhdHVyZV9kZWZpbmVz
X292ZXJyaWRlcy4KLWZlYXR1cmVfZGVmaW5lcyArPSAkKHN0cmlwICQoZm9yZWFjaCBiYXJlX2Rl
ZmluZSwgXAotCSQoZm9yZWFjaCBkZWZpbmUsJChmZWF0dXJlX2RlZmluZXNfZGVmYXVsdHMpLCBc
Ci0JCSQoZm9yZWFjaCBmdmFsdWUsMCAxLCBcCi0JCQkkKGlmICQoZmluZHN0cmluZyA9JChmdmFs
dWUpLCQoZGVmaW5lKSksJChwYXRzdWJzdCAlPSQoZnZhbHVlKSwlLCQoZGVmaW5lKSkpIFwKLQkJ
KSBcCi0JKSwgXAotCSQoaWYgJChmaW5kc3RyaW5nICQoYmFyZV9kZWZpbmUpPSwgJChmZWF0dXJl
X2RlZmluZXNfb3ZlcnJpZGVzKSksIFwKLQkJJChmaWx0ZXIgJChiYXJlX2RlZmluZSk9JSwkKGZl
YXR1cmVfZGVmaW5lc19vdmVycmlkZXMpKSwgXAotCQkkKGZpbHRlciAkKGJhcmVfZGVmaW5lKT0l
LCQoZmVhdHVyZV9kZWZpbmVzX2RlZmF1bHRzKSkgXAotCSkgXAotKSkKLQotIyBBZGQgdGhlIGZl
YXR1cmUgZGVmaW5lcyB0byB3ZWJjb3JlX2NwcGZsYWdzIGluIG1hY3JvIGZvcm0uCi13ZWJjb3Jl
X2NwcGZsYWdzICs9ICQoZm9yZWFjaCBkZWZpbmUsJChmZWF0dXJlX2RlZmluZXMpLC1EJChkZWZp
bmUpKQotCi0KICQoV0VCQ09SRV9DU1NfUFJPUEVSVFlfTkFNRVMpOiAkKHNyY2RpcikvY29uZmln
dXJlLmFjICQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQogCiAkKFdFQkNP
UkVfQ1NTX1ZBTFVFX0tFWVdPUkRTKTogJChzcmNkaXIpL2NvbmZpZ3VyZS5hYyAkKHNyY2Rpcikv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmZlYXR1cmVzLmFtLmluIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
ZmVhdHVyZXMuYW0uaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2ZGM0MzlkMWNj
ZGI1YjRmYWY1MTA1ZTcwYWM4ZTYwNTgyY2FmZDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuZmVhdHVyZXMu
YW0uaW4KKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotZmVhdHVyZV9kZWZpbmVzX2Rl
ZmF1bHRzICs9IFwKLQlFTkFCTEVfM0RfUkVOREVSSU5HPTAgXAotCUVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVM9MCBcCi0JRU5BQkxFX0JBVFRFUllfU1RBVFVTPTAgXAotCUVOQUJMRV9CTE9C
PTEgXAotCUVOQUJMRV9DQU5WQVNfUEFUSD0wIFwKLQlFTkFCTEVfQ0FOVkFTX1BST1hZPTAgXAot
CUVOQUJMRV9DSEFOTkVMX01FU1NBR0lORz0xIFwKLQlFTkFCTEVfQ1NQX05FWFQ9MCBcCi0JRU5B
QkxFX0NTUzNfVEVYVD0wIFwKLQlFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLPTEgXAot
CUVOQUJMRV9DU1NfQ09NUE9TSVRJTkc9MCBcCi0JRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElP
Tj0wIFwKLQlFTkFCTEVfQ1NTX0VYQ0xVU0lPTlM9MSBcCi0JRU5BQkxFX0NTU19GSUxURVJTPTAg
XAotCUVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT049MCBcCi0JRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OPTAgXAotCUVOQUJMRV9DU1NfSU1BR0VfU0VUPTAgXAotCUVOQUJMRV9DU1NfUkVH
SU9OUz0wIFwKLQlFTkFCTEVfQ1NTX1NIQURFUlM9MCBcCi0JRU5BQkxFX0NTU19TVElDS1lfUE9T
SVRJT049MCBcCi0JRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRD0w
IFwKLQlFTkFCTEVfQ1NTX1ZBUklBQkxFUz0wIFwKLQlFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9S
VUxFUz0wIFwKLQlFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSPTAgXAotCUVOQUJMRV9EQVNI
Qk9BUkRfU1VQUE9SVD0wIFwKLQlFTkFCTEVfREFUQUxJU1RfRUxFTUVOVD0wIFwKLQlFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUz0wIFwKLQlFTkFCTEVfREVUQUlMU19FTEVNRU5UPTEgXAotCUVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT049MCBcCi0JRU5BQkxFX0RJQUxPR19FTEVNRU5UPTAgXAot
CUVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEPTAgXAotCUVOQUJMRV9ET000X0VWRU5UU19DT05TVFJV
Q1RPUj0wIFwKLQlFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFPTAgXAotCUVOQUJMRV9GSUxFX1NZ
U1RFTT0wIFwKLQlFTkFCTEVfRklMVEVSUz0xIFwKLQlFTkFCTEVfRlRQRElSPTAgXAotCUVOQUJM
RV9GVUxMU0NSRUVOX0FQST0xIFwKLQlFTkFCTEVfR0FNRVBBRD0xIFwKLQlFTkFCTEVfR0VPTE9D
QVRJT049MSBcCi0JRU5BQkxFX0hJR0hfRFBJX0NBTlZBUz0wIFwKLQlFTkFCTEVfSUNPTkRBVEFC
QVNFPTEgXAotCUVOQUJMRV9JRlJBTUVfU0VBTUxFU1M9MSBcCi0JRU5BQkxFX0lOREVYRURfREFU
QUJBU0U9MCBcCi0JRU5BQkxFX0lOUFVUX1NQRUVDSD0wIFwKLQlFTkFCTEVfSU5QVVRfVFlQRV9D
T0xPUj0wIFwKLQlFTkFCTEVfSU5QVVRfVFlQRV9EQVRFPTAgXAotCUVOQUJMRV9JTlBVVF9UWVBF
X0RBVEVUSU1FPTAgXAotCUVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUw9MCBcCi0JRU5B
QkxFX0lOUFVUX1RZUEVfTU9OVEg9MCBcCi0JRU5BQkxFX0lOUFVUX1RZUEVfVElNRT0wIFwKLQlF
TkFCTEVfSU5QVVRfVFlQRV9XRUVLPTAgXAotCUVOQUJMRV9JTlNQRUNUT1I9MSBcCi0JRU5BQkxF
X0pBVkFTQ1JJUFRfREVCVUdHRVI9MSBcCi0JRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJ
WEVTPTAgXAotCUVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUz0wIFwKLQlFTkFCTEVfTEVHQUNZ
X1ZFTkRPUl9QUkVGSVhFUz0xIFwKLQlFTkFCTEVfTEVHQUNZX1dFQl9BVURJTz0wIFwKLQlFTkFC
TEVfTElOS19QUkVGRVRDSD0wIFwKLQlFTkFCTEVfTElOS19QUkVSRU5ERVI9MCBcCi0JRU5BQkxF
X01BVEhNTD0xIFwKLQlFTkFCTEVfTUVESUFfQ0FQVFVSRT0wIFwKLQlFTkFCTEVfTUVESUFfU09V
UkNFPTAgXAotCUVOQUJMRV9NRURJQV9TVEFUSVNUSUNTPTAgXAotCUVOQUJMRV9NRURJQV9TVFJF
QU09MSBcCi0JRU5BQkxFX01FVEVSX0VMRU1FTlQ9MSBcCi0JRU5BQkxFX01IVE1MPTEgXAotCUVO
QUJMRV9NSUNST0RBVEE9MCBcCi0JRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRT0wIFwKLQlFTkFC
TEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFM9MCBcCi0JRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9B
UEk9MSBcCi0JRU5BQkxFX05FVFdPUktfSU5GTz0wIFwKLQlFTkFCTEVfTk9USUZJQ0FUSU9OUz0w
IFwKLQlFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTPTAgXAotCUVOQUJMRV9QQUdFX1ZJU0lCSUxJ
VFlfQVBJPTAgXAotCUVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORT0wIFwKLQlFTkFCTEVfUFJP
R1JFU1NfRUxFTUVOVD0xIFwKLQlFTkFCTEVfUFJPWElNSVRZX0VWRU5UUz0wIFwKLQlFTkFCTEVf
UVVPVEE9MCBcCi0JRU5BQkxFX1JFU09VUkNFX1RJTUlORz0wIFwKLQlFTkFCTEVfUkVRVUVTVF9B
TklNQVRJT05fRlJBTUU9MSBcCi0JRU5BQkxFX1NDUklQVEVEX1NQRUVDSD0wIFwKLQlFTkFCTEVf
U0hBRE9XX0RPTT0xIFwKLQlFTkFCTEVfU0hBUkVEX1dPUktFUlM9MSBcCi0JRU5BQkxFX1NNT09U
SF9TQ1JPTExJTkc9MSBcCi0JRU5BQkxFX1NQRUxMQ0hFQ0s9MSBcCi0JRU5BQkxFX1NRTF9EQVRB
QkFTRT0xIFwKLQlFTkFCTEVfU1RZTEVfU0NPUEVEPTAgXAotCUVOQUJMRV9TVkc9MSBcCi0JRU5B
QkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUz0wIFwKLQlFTkFCTEVfU1ZHX0ZPTlRTPTEgXAotCUVO
QUJMRV9URU1QTEFURV9FTEVNRU5UPTAgXAotCUVOQUJMRV9URVhUX0FVVE9TSVpJTkc9MCBcCi0J
RU5BQkxFX1RPVUNIX0VWRU5UUz0wIFwKLQlFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HPTAgXAot
CUVOQUJMRV9VU0VSX1RJTUlORz0wIFwKLQlFTkFCTEVfVklCUkFUSU9OPTAgXAotCUVOQUJMRV9W
SURFTz0xIFwKLQlFTkFCTEVfVklERU9fVFJBQ0s9MCBcCi0JRU5BQkxFX1dFQkdMPTEgXAotCUVO
QUJMRV9XRUJfQVVESU89MCBcCi0JRU5BQkxFX1dFQl9TT0NLRVRTPTEgXAotCUVOQUJMRV9XRUJf
VElNSU5HPTEgXAotCUVOQUJMRV9XT1JLRVJTPTEgXAotCUVOQUJMRV9YSFJfVElNRU9VVD0xIFwK
LQlFTkFCTEVfWFNMVD0xCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL1NldHVwQXV0b2Nv
bmZIZWFkZXIubTQgYi9Tb3VyY2UvYXV0b3Rvb2xzL1NldHVwQXV0b2NvbmZIZWFkZXIubTQKaW5k
ZXggM2M3ZTUxYTgwMDZmMjdiNWM4MTQ2ZDhiZTE0MmU2ZWM5NDIwNTYzZS4uODEwMWQzY2FmMDc0
YzY4Y2E2YzNiMzg4NGNiNzk4NTBiNzFiOTM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29s
cy9TZXR1cEF1dG9jb25mSGVhZGVyLm00CisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvU2V0dXBBdXRv
Y29uZkhlYWRlci5tNApAQCAtNzksMTEgKzc5LDEwIEBAIGZpCiAKIGlmIHRlc3QgIiRlbmFibGVf
YWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0gInllcyI7IHRoZW4KICAgICBBQ19ERUZJTkUoW1dU
Rl9VU0VfQUNDRUxFUkFURURfQ09NUE9TSVRJTkddLCBbMV0sIFsgXSkKLSAgICBBQ19ERUZJTkUo
W0VOQUJMRV8zRF9SRU5ERVJJTkddLCBbMV0sIFsgXSkKIAogICAgIGlmIHRlc3QgIiR3aXRoX2Fj
Y2VsZXJhdGlvbl9iYWNrZW5kIiA9ICJub25lIjsgdGhlbgotICAgICAgICBBQ19ERUZJTkUoW0RX
VEZfVVNFX1RFWFRVUkVfTUFQUEVSXSwgWzFdLCBbIF0pCi0gICAgICAgIEFDX0RFRklORShbRFdU
Rl9VU0VfVEVYVFVSRV9NQVBQRVJfQ0FJUk9dLCBbMV0sIFsgXSkKKyAgICAgICAgQUNfREVGSU5F
KFtXVEZfVVNFX1RFWFRVUkVfTUFQUEVSXSwgWzFdLCBbIF0pCisgICAgICAgIEFDX0RFRklORShb
V1RGX1VTRV9URVhUVVJFX01BUFBFUl9DQUlST10sIFsxXSwgWyBdKQogICAgIGZpCiAKICAgICBp
ZiB0ZXN0ICIkd2l0aF9hY2NlbGVyYXRpb25fYmFja2VuZCIgPSAib3BlbmdsIjsgdGhlbgpkaWZm
IC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9TZXR1cFdlYktpdEZlYXR1cmVzLm00IGIvU291cmNl
L2F1dG90b29scy9TZXR1cFdlYktpdEZlYXR1cmVzLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4NmNkMGVhOGU3
YjM5MGI2MGVjYmIwOTQ0M2ZlM2NlNzUzNDg4ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
YXV0b3Rvb2xzL1NldHVwV2ViS2l0RmVhdHVyZXMubTQKQEAgLTAsMCArMSwyMDAgQEAKKyMgVGhp
cyBhZGRzIHRoZSBpbmNsdWRlIGxpbmUgdG8gdGhlIGJvdHRvbSBvZiB0aGUgYXV0b2NvbmZpZyBo
ZWFkZXIuCitBSF9CT1RUT00oWyNpbmNsdWRlICJXZWJLaXRGZWF0dXJlcy5oIl0pCisKKyMgVGhp
cyBsaXN0IG9mIGZlYXR1cmVzIHJlcHJlc2VudHMgdGhvc2Ugc2VsZWN0ZWQgZm9yIHJlbGVhc2Ug
YnVpbGRzLgorIyBJZiB5b3UgYXJlIGFkZGluZyBhIG5ldyBvciB1bnN0YWJsZSBmZWF0dXJlLCB5
b3Ugc2hvdWxkIG1hcmsgaXQKKyMgZGlzYWJsZWQgaGVyZS4KK3JlYWQgLWQgJycgREVGQVVMVF9G
RUFUVVJFX0RFRklORVMgPDwiRU9GIgorCUVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVM9MAor
CUVOQUJMRV9CQVRURVJZX1NUQVRVUz0wCisJRU5BQkxFX0JMT0I9MQorCUVOQUJMRV9DQU5WQVNf
UEFUSD0wCisJRU5BQkxFX0NBTlZBU19QUk9YWT0wCisJRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5H
PTEKKwlFTkFCTEVfQ1NQX05FWFQ9MAorCUVOQUJMRV9DU1MzX1RFWFQ9MAorCUVOQUJMRV9DU1Nf
Qk9YX0RFQ09SQVRJT05fQlJFQUs9MQorCUVOQUJMRV9DU1NfQ09NUE9TSVRJTkc9MAorCUVOQUJM
RV9DU1NfREVWSUNFX0FEQVBUQVRJT049MAorCUVOQUJMRV9DU1NfRVhDTFVTSU9OUz0xCisJRU5B
QkxFX0NTU19JTUFHRV9PUklFTlRBVElPTj0wCisJRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9O
PTAKKwlFTkFCTEVfQ1NTX0lNQUdFX1NFVD0wCisJRU5BQkxFX0NTU19SRUdJT05TPTAKKwlFTkFC
TEVfQ1NTX1NUSUNLWV9QT1NJVElPTj0wCisJRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElP
TlNfVU5QUkVGSVhFRD0wCisJRU5BQkxFX0NTU19WQVJJQUJMRVM9MAorCUVOQUJMRV9DU1MzX0NP
TkRJVElPTkFMX1JVTEVTPTAKKwlFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSPTAKKwlFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQ9MAorCUVOQUJMRV9EQVRBTElTVF9FTEVNRU5UPTAKKwlFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUz0wCisJRU5BQkxFX0RFVEFJTFNfRUxFTUVOVD0xCisJRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTj0wCisJRU5BQkxFX0RJQUxPR19FTEVNRU5UPTAKKwlFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRD0wCisJRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SPTAK
KwlFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFPTAKKwlFTkFCTEVfRklMRV9TWVNURU09MAorCUVO
QUJMRV9GSUxURVJTPTEKKwlFTkFCTEVfRlRQRElSPTAKKwlFTkFCTEVfRlVMTFNDUkVFTl9BUEk9
MQorCUVOQUJMRV9ISUdIX0RQSV9DQU5WQVM9MAorCUVOQUJMRV9JQ09OREFUQUJBU0U9MQorCUVO
QUJMRV9JRlJBTUVfU0VBTUxFU1M9MQorCUVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFPTAKKwlFTkFC
TEVfSU5QVVRfU1BFRUNIPTAKKwlFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUj0wCisJRU5BQkxFX0lO
UFVUX1RZUEVfREFURT0wCisJRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUU9MAorCUVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FTE9DQUw9MAorCUVOQUJMRV9JTlBVVF9UWVBFX01PTlRIPTAKKwlF
TkFCTEVfSU5QVVRfVFlQRV9USU1FPTAKKwlFTkFCTEVfSU5QVVRfVFlQRV9XRUVLPTAKKwlFTkFC
TEVfSU5TUEVDVE9SPTEKKwlFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUj0xCisJRU5BQkxFX0xF
R0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTPTAKKwlFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlM9
MAorCUVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTPTEKKwlFTkFCTEVfTEVHQUNZX1dFQl9B
VURJTz0wCisJRU5BQkxFX0xJTktfUFJFRkVUQ0g9MAorCUVOQUJMRV9MSU5LX1BSRVJFTkRFUj0w
CisJRU5BQkxFX01BVEhNTD0xCisJRU5BQkxFX01FRElBX0NBUFRVUkU9MAorCUVOQUJMRV9NRURJ
QV9TT1VSQ0U9MAorCUVOQUJMRV9NRURJQV9TVEFUSVNUSUNTPTAKKwlFTkFCTEVfTUVURVJfRUxF
TUVOVD0xCisJRU5BQkxFX01IVE1MPTEKKwlFTkFCTEVfTUlDUk9EQVRBPTAKKwlFTkFCTEVfTU9V
U0VfQ1VSU09SX1NDQUxFPTAKKwlFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFM9MAorCUVO
QUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJPTEKKwlFTkFCTEVfTkVUV09SS19JTkZPPTAKKwlFTkFC
TEVfTk9USUZJQ0FUSU9OUz0wCisJRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUz0wCisJRU5BQkxF
X1BBR0VfVklTSUJJTElUWV9BUEk9MAorCUVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORT0wCisJ
RU5BQkxFX1BST0dSRVNTX0VMRU1FTlQ9MQorCUVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTPTAKKwlF
TkFCTEVfUVVPVEE9MAorCUVOQUJMRV9SRVNPVVJDRV9USU1JTkc9MAorCUVOQUJMRV9SRVFVRVNU
X0FOSU1BVElPTl9GUkFNRT0xCisJRU5BQkxFX1NDUklQVEVEX1NQRUVDSD0wCisJRU5BQkxFX1NI
QURPV19ET009MQorCUVOQUJMRV9TSEFSRURfV09SS0VSUz0xCisJRU5BQkxFX1NNT09USF9TQ1JP
TExJTkc9MQorCUVOQUJMRV9TUUxfREFUQUJBU0U9MQorCUVOQUJMRV9TVFlMRV9TQ09QRUQ9MAor
CUVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1M9MAorCUVOQUJMRV9URU1QTEFURV9FTEVNRU5U
PTAKKwlFTkFCTEVfVEVYVF9BVVRPU0laSU5HPTAKKwlFTkFCTEVfVE9VQ0hfRVZFTlRTPTAKKwlF
TkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HPTAKKwlFTkFCTEVfVVNFUl9USU1JTkc9MAorCUVOQUJM
RV9WSUJSQVRJT049MAorCUVOQUJMRV9WSURFT19UUkFDSz0wCisJRU5BQkxFX1dFQl9BVURJTz0w
CisJRU5BQkxFX1dFQl9TT0NLRVRTPTEKKwlFTkFCTEVfV0VCX1RJTUlORz0xCisJRU5BQkxFX1dP
UktFUlM9MQorCUVOQUJMRV9YSFJfVElNRU9VVD0xCitFT0YKKworaWYgdGVzdCAiJGVuYWJsZV9z
cGVsbGNoZWNrIiA9ICJ5ZXMiOyB0aGVuCisgICAgREVGQVVMVF9GRUFUVVJFX0RFRklORVM9IiRE
RUZBVUxUX0ZFQVRVUkVfREVGSU5FUyBFTkFCTEVfU1BFTExDSEVDSz0xIgorZWxzZQorICAgIERF
RkFVTFRfRkVBVFVSRV9ERUZJTkVTPSIkREVGQVVMVF9GRUFUVVJFX0RFRklORVMgRU5BQkxFX1NQ
RUxMQ0hFQ0s9MCIKK2ZpCisKK2lmIHRlc3QgIiRlbmFibGVfZ2FtZXBhZCIgPSAieWVzIjsgdGhl
bgorCURFRkFVTFRfRkVBVFVSRV9ERUZJTkVTPSIkREVGQVVMVF9GRUFUVVJFX0RFRklORVMgRU5B
QkxFX0dBTUVQQUQ9MSIKK2Vsc2UKKwlERUZBVUxUX0ZFQVRVUkVfREVGSU5FUz0iJERFRkFVTFRf
RkVBVFVSRV9ERUZJTkVTIEVOQUJMRV9HQU1FUEFEPTAiCitmaQorCitpZiB0ZXN0ICIkZW5hYmxl
X3ZpZGVvIiA9ICJ5ZXMiOyB0aGVuCisgICAgREVGQVVMVF9GRUFUVVJFX0RFRklORVM9IiRERUZB
VUxUX0ZFQVRVUkVfREVGSU5FUyBFTkFCTEVfVklERU89MSIKK2Vsc2UKKyAgICBERUZBVUxUX0ZF
QVRVUkVfREVGSU5FUz0iJERFRkFVTFRfRkVBVFVSRV9ERUZJTkVTIEVOQUJMRV9WSURFTz0wIgor
ZmkKKworaWYgdGVzdCAiJGVuYWJsZV9tZWRpYV9zdHJlYW0iID0gInllcyI7IHRoZW4KKyAgICBE
RUZBVUxUX0ZFQVRVUkVfREVGSU5FUz0iJERFRkFVTFRfRkVBVFVSRV9ERUZJTkVTIEVOQUJMRV9N
RURJQV9TVFJFQU09MSIKK2Vsc2UKKyAgICBERUZBVUxUX0ZFQVRVUkVfREVGSU5FUz0iJERFRkFV
TFRfRkVBVFVSRV9ERUZJTkVTIEVOQUJMRV9NRURJQV9TVFJFQU09MCIKK2ZpCisKK2lmIHRlc3Qg
IiRlbmFibGVfY3NzX3NoYWRlcnMiID0gInllcyI7IHRoZW4KKyAgICBERUZBVUxUX0ZFQVRVUkVf
REVGSU5FUz0iJERFRkFVTFRfRkVBVFVSRV9ERUZJTkVTIEVOQUJMRV9DU1NfU0hBREVSUz0xIgor
ZWxzZQorICAgIERFRkFVTFRfRkVBVFVSRV9ERUZJTkVTPSIkREVGQVVMVF9GRUFUVVJFX0RFRklO
RVMgRU5BQkxFX0NTU19TSEFERVJTPTAiCitmaQorCitpZiB0ZXN0ICIkZW5hYmxlX2Nzc19maWx0
ZXJzIiA9ICJ5ZXMiOyB0aGVuCisgICAgREVGQVVMVF9GRUFUVVJFX0RFRklORVM9IiRERUZBVUxU
X0ZFQVRVUkVfREVGSU5FUyBFTkFCTEVfQ1NTX0ZJTFRFUlM9MSIKK2Vsc2UKKyAgICBERUZBVUxU
X0ZFQVRVUkVfREVGSU5FUz0iJERFRkFVTFRfRkVBVFVSRV9ERUZJTkVTIEVOQUJMRV9DU1NfRklM
VEVSUz0wIgorZmkKKworaWYgdGVzdCAiJGVuYWJsZV9nZW9sb2NhdGlvbiIgPSAieWVzIjsgdGhl
bgorICAgIERFRkFVTFRfRkVBVFVSRV9ERUZJTkVTPSIkREVGQVVMVF9GRUFUVVJFX0RFRklORVMg
RU5BQkxFX0dFT0xPQ0FUSU9OPTEiCitlbHNlCisgICAgREVGQVVMVF9GRUFUVVJFX0RFRklORVM9
IiRERUZBVUxUX0ZFQVRVUkVfREVGSU5FUyBFTkFCTEVfR0VPTE9DQVRJT049MCIKK2ZpCisKK2lm
IHRlc3QgIiRlbmFibGVfc3ZnIiA9ICJ5ZXMiOyB0aGVuCisgICAgREVGQVVMVF9GRUFUVVJFX0RF
RklORVM9IiRERUZBVUxUX0ZFQVRVUkVfREVGSU5FUyBFTkFCTEVfU1ZHPTEiCitlbHNlCisgICAg
REVGQVVMVF9GRUFUVVJFX0RFRklORVM9IiRERUZBVUxUX0ZFQVRVUkVfREVGSU5FUyBFTkFCTEVf
U1ZHPTAiCitmaQorCitpZiB0ZXN0ICIkZW5hYmxlX3N2Z19mb250cyIgPSAieWVzIjsgdGhlbgor
ICAgIERFRkFVTFRfRkVBVFVSRV9ERUZJTkVTPSIkREVGQVVMVF9GRUFUVVJFX0RFRklORVMgRU5B
QkxFX1NWR19GT05UUz0xIgorZWxzZQorICAgIERFRkFVTFRfRkVBVFVSRV9ERUZJTkVTPSIkREVG
QVVMVF9GRUFUVVJFX0RFRklORVMgRU5BQkxFX1NWR19GT05UUz0wIgorZmkKKworaWYgdGVzdCAi
JGVuYWJsZV93ZWJnbCIgPSAieWVzIjsgdGhlbgorICAgIERFRkFVTFRfRkVBVFVSRV9ERUZJTkVT
PSIkREVGQVVMVF9GRUFUVVJFX0RFRklORVMgRU5BQkxFX1dFQkdMPTEiCitlbHNlCisgICAgREVG
QVVMVF9GRUFUVVJFX0RFRklORVM9IiRERUZBVUxUX0ZFQVRVUkVfREVGSU5FUyBFTkFCTEVfV0VC
R0w9MCIKK2ZpCisKK2lmIHRlc3QgIiRlbmFibGVfYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmciID0g
InllcyI7IHRoZW4KKyAgICBERUZBVUxUX0ZFQVRVUkVfREVGSU5FUz0iJERFRkFVTFRfRkVBVFVS
RV9ERUZJTkVTIEVOQUJMRV8zRF9SRU5ERVJJTkc9MSIKK2Vsc2UKKyAgICBERUZBVUxUX0ZFQVRV
UkVfREVGSU5FUz0iJERFRkFVTFRfRkVBVFVSRV9ERUZJTkVTIEVOQUJMRV8zRF9SRU5ERVJJTkc9
MCIKK2ZpCisKK2lmIHRlc3QgIiRlbmFibGVfd2ViX2F1ZGlvIiA9ICJ5ZXMiOyB0aGVuCisgICAg
REVGQVVMVF9GRUFUVVJFX0RFRklORVM9IiRERUZBVUxUX0ZFQVRVUkVfREVGSU5FUyBFTkFCTEVf
V0VCX0FVRElPPTEiCitlbHNlCisgICAgREVGQVVMVF9GRUFUVVJFX0RFRklORVM9IiRERUZBVUxU
X0ZFQVRVUkVfREVGSU5FUyBFTkFCTEVfV0VCX0FVRElPPTAiCitmaQorCisjIFdlIG5lZWQgdG8g
cnVuIHRoaXMgY29tbWFuZCBub3cgcmF0aGVyIHRoYW4gdXNlIEFDX0NPTkZJR19DT01NQU5EUwor
IyBiZWNhdXNlIGF1dG9tYWtlIHJ1bGVzIGRlcGVuZCBvbiB0aGUgb3V0cHV0IGZpbGUgKFdlYktp
dEZlYXR1cmVzLnR4dCkuCiskc3JjZGlyL1Rvb2xzL2d0ay9nZW5lcmF0ZS1mZWF0dXJlLWRlZmlu
ZXMtZmlsZXMgJERFRkFVTFRfRkVBVFVSRV9ERUZJTkVTCisKK2RubCBBTV9XRUJLSVRfRkVBVFVS
RV9DT05ESVRJT05BTAorZG5sIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBmZWF0dXJlIGlzIGVu
YWJsZWQgaW4gdGhlCitkbmwgYnVpbGQgdGhhdCBpcyBiZWluZyBjb25maWd1cmVkIGFuZCBzZXRz
IHVwIGVxdWFsbHktbmFtZWQKK2RubCBBdXRvbWFrZSBjb25kaXRpb25hbCByZWZsZWN0aW5nIHRo
ZSBmZWF0dXJlIHN0YXR1cy4KK2RubAorZG5sIFVzYWdlOgorZG5sIEFNX1dFQktJVF9GRUFUVVJF
X0NPTkRJVElPTkFMKFtGRUFUVVJFXSkKK0FDX0RFRlVOKFtBTV9XRUJLSVRfRkVBVFVSRV9DT05E
SVRJT05BTF0sIFsKKyAgQUNfUFJPR19BV0sKKworICBkbmwgR3JlcCB0aGUgZ2VuZXJhdGVkIEdO
VW1ha2VmaWxlLmZlYXR1cmVzLmFtCisgIGRubCB0byBkZXRlcm1pbmUgaWYgdGhlIHNwZWNpZmll
ZCBmZWF0dXJlIGlzIGVuYWJsZWQuCisgIGdyZXAgLXFFICIoJDE9MSkiIFdlYktpdEZlYXR1cmVz
LnR4dAorICBpZiB0ZXN0ICQ/IC1lcSAwOyB0aGVuCisgICAgZmVhdHVyZV9lbmFibGVkPSJ5ZXMi
OworICBlbHNlCisgICAgZmVhdHVyZV9lbmFibGVkPSJubyI7CisgIGZpCisKKyAgQU1fQ09ORElU
SU9OQUwoWyQxXSwgW3Rlc3QgIiRmZWF0dXJlX2VuYWJsZWQiID0gInllcyJdKQorCitdKSBkbmwg
QU1fV0VCS0lUX0ZFQVRVUkVfQ09ORElUSU9OQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9v
bHMvd2Via2l0ZmVhdHVyZS5tNCBiL1NvdXJjZS9hdXRvdG9vbHMvd2Via2l0ZmVhdHVyZS5tNApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzlmOWMwMzdiMmM0NTAzMDZlOGIzN2ExZWFm
NzEzNTk0MjY2YmFjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3dlYmtpdGZlYXR1cmUubTQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMyArMCwwIEBACi1kbmwgQU1fV0VCS0lUX0ZFQVRVUkVfQ09ORElUSU9OQUwKLWRubCBDaGVj
a3Mgd2hldGhlciB0aGUgZ2l2ZW4gZmVhdHVyZSBpcyBlbmFibGVkIGluIHRoZQotZG5sIGJ1aWxk
IHRoYXQgaXMgYmVpbmcgY29uZmlndXJlZCBhbmQgc2V0cyB1cCBlcXVhbGx5LW5hbWVkCi1kbmwg
QXV0b21ha2UgY29uZGl0aW9uYWwgcmVmbGVjdGluZyB0aGUgZmVhdHVyZSBzdGF0dXMuCi1kbmwK
LWRubCBVc2FnZToKLWRubCBBTV9XRUJLSVRfRkVBVFVSRV9DT05ESVRJT05BTChbRkVBVFVSRV0p
Ci0KLUFDX0RFRlVOKFtBTV9XRUJLSVRfRkVBVFVSRV9DT05ESVRJT05BTF0sIFsKLSAgQUNfUFJP
R19BV0sKLQotICBkbmwgR3JlcCB0aGUgZ2VuZXJhdGVkIEdOVW1ha2VmaWxlLmZlYXR1cmVzLmFt
Ci0gIGRubCB0byBkZXRlcm1pbmUgaWYgdGhlIHNwZWNpZmllZCBmZWF0dXJlIGlzIGVuYWJsZWQu
Ci0gIGdyZXAgLXFFICIoJDE9MSkiICRzcmNkaXIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
ZmVhdHVyZXMuYW0KLSAgaWYgdGVzdCAkPyAtZXEgMDsgdGhlbgotICAgIGZlYXR1cmVfZW5hYmxl
ZD0ieWVzIjsKLSAgZWxzZQotICAgIGZlYXR1cmVfZW5hYmxlZD0ibm8iOwotICBmaQotCi0gIEFN
X0NPTkRJVElPTkFMKFskMV0sW3Rlc3QgIiRmZWF0dXJlX2VuYWJsZWQiID0gInllcyJdKQotCi1d
KSBkbmwgQU1fV0VCS0lUX0ZFQVRVUkVfQ09ORElUSU9OQUwKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NzI5MTUyMTA4MTFlYTBkNjM2ZGQ1ZjBl
NDk3YThiMmI0YTBkNmFhLi4wMDJhMDBhN2I0NTE0MGIxMTBjMmY5ZWRiZmRlNTU0ZTdlMzA3ZGJm
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTMtMDItMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdIE1vdmUgZmVhdHVyZSBvdmVycmlkaW5nIHRvIHRoZSBj
b25maWd1cmUgcGhhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExMDI5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAocnVuQXV0b2dlbkZvckF1
dG90b29sc1Byb2plY3RJZk5lY2Vzc2FyeSk6IFJlbmFtZSB0aGUgZmVhdHVyZSBmaWxlIHRvCisg
ICAgICAgIFdlYktpdEZlYXR1cmVPdmVycmlkZXMudHh0IHRvIGJldHRlciBtYXRjaCB0aGUgb3Ro
ZXIgZmlsZW5hbWVzIHVzZWQgaW4KKyAgICAgICAgdGhlIG5ldyBmZWF0dXJlIHByb2Nlc3Npbmcu
CisgICAgICAgICogZ3RrL2dlbmVyYXRlLWZlYXR1cmUtZGVmaW5lcy1maWxlczogQWRkZWQuIEEg
c2NyaXB0IHdoaWNoIHRha2VzIGFzIGFuIGFyZ3VtZW50CisgICAgICAgIHRoZSBkZWZhdWx0IGZl
YXR1cmVzLCBvdmVycmlkZXMgdGhlbSB3aXRoIHRoZSBjb250ZW50cyBvZiBXZWJLaXRGZWF0dXJl
T3ZlcnJyaWRlcy50eHQKKyAgICAgICAgYW5kIHdyaXRlcyBXZWJLaXRGZWF0dXJlcy50eHQgYW5k
IFdlYktpdEZlYXR1cmVzLmguCisgICAgICAgICogZ3RrL292ZXJyaWRlLWZlYXR1cmUtZGVmaW5l
czogUmVtb3ZlZC4KKwogMjAxMy0wMi0xOSAgUHJhdmluIEQgIDxwcmF2aW5kQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgY2hhbmdpbmcgcHJpbWFyeSBlbWFpbC4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGly
cy5wbQppbmRleCBjZGY1ZTk4ZTRmYzJkNGIyODFlOTMwYjJhMjc1ZmViMGVmYWRiZDkyLi40NTg0
N2IwNjdhZGIwMzAwYmVkOGFlY2QzMDYyZDBiNTY1OGQ4NjZiIDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdGRpcnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBA
IC0yMDA0LDcgKzIwMDQsNyBAQCBzdWIgcnVuQXV0b2dlbkZvckF1dG90b29sc1Byb2plY3RJZk5l
Y2Vzc2FyeSgkQCkKICAgICAgICAgfQogCiAgICAgICAgICMgUnVuIGF1dG9nZW4uc2ggYWdhaW4g
aWYgZWl0aGVyIHRoZSBmZWF0dXJlcyBvdmVycmlkZWQgYnkgYnVpbGQtd2Via2l0IG9yIGJ1aWxk
IGFyZ3VtZW50cyBoYXZlIGNoYW5nZWQuCi0gICAgICAgIGlmICghbXVzdFJlUnVuQXV0b2dlbigk
c291cmNlRGlyLCAiZmVhdHVyZS1kZWZpbmVzLW92ZXJyaWRpbmcudHh0IiwgJGpvaW5lZE92ZXJy
aWRhYmxlRmVhdHVyZXMpCisgICAgICAgIGlmICghbXVzdFJlUnVuQXV0b2dlbigkc291cmNlRGly
LCAiV2ViS2l0RmVhdHVyZU92ZXJyaWRlcy50eHQiLCAkam9pbmVkT3ZlcnJpZGFibGVGZWF0dXJl
cykKICAgICAgICAgICAgICYmICFtdXN0UmVSdW5BdXRvZ2VuKCRzb3VyY2VEaXIsICJwcmV2aW91
cy1hdXRvZ2VuLWFyZ3VtZW50cy50eHQiLCAkam9pbmVkQnVpbGRBcmdzKSkgewogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yMDE2LDcgKzIwMTYsNyBAQCBzdWIgcnVuQXV0b2dl
bkZvckF1dG90b29sc1Byb2plY3RJZk5lY2Vzc2FyeSgkQCkKICAgICAjIE9ubHkgZm9yIFdlYktp
dCwgd3JpdGUgdGhlIGF1dG9nZW4uc2ggYXJndW1lbnRzIHRvIGEgZmlsZSBzbyB0aGF0IHdlIGNh
biBkZXRlY3QKICAgICAjIHdoZW4gdGhleSBjaGFuZ2UgYW5kIGF1dG9tYXRpY2FsbHkgcmUtcnVu
IGl0LgogICAgIGlmICgkcHJvamVjdCBlcSAnV2ViS2l0JykgewotICAgICAgICBvcGVuKE9WRVJS
SURBQkxFX0ZFQVRVUkVTLCAiPmZlYXR1cmUtZGVmaW5lcy1vdmVycmlkaW5nLnR4dCIpOworICAg
ICAgICBvcGVuKE9WRVJSSURBQkxFX0ZFQVRVUkVTLCAiPldlYktpdEZlYXR1cmVPdmVycmlkZXMu
dHh0Iik7CiAgICAgICAgIHByaW50IE9WRVJSSURBQkxFX0ZFQVRVUkVTICRqb2luZWRPdmVycmlk
YWJsZUZlYXR1cmVzOwogICAgICAgICBjbG9zZShPVkVSUklEQUJMRV9GRUFUVVJFUyk7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL2d0ay9nZW5lcmF0ZS1mZWF0dXJlLWRlZmluZXMtZmlsZXMgYi9Ub29s
cy9ndGsvZ2VuZXJhdGUtZmVhdHVyZS1kZWZpbmVzLWZpbGVzCm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhOTJiZjUw
YTA1ODMxNjU1MzA4Y2I2MjY0NmViMDVhNmRiNGI2M2MKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9ndGsvZ2VuZXJhdGUtZmVhdHVyZS1kZWZpbmVzLWZpbGVzCkBAIC0wLDAgKzEsNTggQEAKKyMh
L3Vzci9iaW4vZW52IHB5dGhvbgorCitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHN5cwor
CitkZWYgcmVhZF9mZWF0dXJlX2RlZmluZXNfb3ZlcnJpZGUoZmVhdHVyZV9kZWZpbmVzKToKKyAg
ICBmZWF0dXJlX2RlZmluZXNfb3ZlcnJpZGluZ19maWxlID0gJ1dlYktpdEZlYXR1cmVPdmVycmlk
ZXMudHh0JworICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhmZWF0dXJlX2RlZmluZXNfb3ZlcnJp
ZGluZ19maWxlKToKKyAgICAgICAgcmV0dXJuCisKKyAgICBwcmludCgiVGhlIGZvbGxvd2luZyBm
ZWF0dXJlIGRlZmluZXMgd2VyZSBvdmVycmlkZW46IikKKyAgICB3aXRoIG9wZW4oZmVhdHVyZV9k
ZWZpbmVzX292ZXJyaWRpbmdfZmlsZSkgYXMgZjoKKyAgICAgICAgbWF0Y2hfaXRlciA9IHJlLmZp
bmRhbGwociIoKD86RU5BQkxFXylcdyspPSgwfDEpIiwgZi5yZWFkKCkpCisKKyAgICBmb3IgbWF0
Y2ggaW4gbWF0Y2hfaXRlcjoKKyAgICAgICAgZmVhdHVyZSA9IG1hdGNoWzBdCisgICAgICAgIHZh
bHVlID0gaW50KG1hdGNoWzFdKQorCisgICAgICAgIGlmIGZlYXR1cmUgaW4gZmVhdHVyZV9kZWZp
bmVzIGFuZCB2YWx1ZSAhPSBmZWF0dXJlX2RlZmluZXNbZmVhdHVyZV06CisgICAgICAgICAgICBw
cmludCgiXHR7MH06IHsxfSA9PiB7Mn0iLmZvcm1hdChmZWF0dXJlLCBmZWF0dXJlX2RlZmluZXNb
ZmVhdHVyZV0sIHZhbHVlKSkKKyAgICAgICAgZmVhdHVyZV9kZWZpbmVzW2ZlYXR1cmVdID0gdmFs
dWUKKworZGVmIHdyaXRlX2ZpbGVfaWZfY29udGVudHNfY2hhbmdlZChmaWxlbmFtZSwgY29udGVu
dHMpOgorICAgIGlmIG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lKToKKyAgICAgICAgd2l0aCBvcGVu
KGZpbGVuYW1lLCAncicpIGFzIGY6CisgICAgICAgICAgICBvbGRfY29udGVudHMgPSBmLnJlYWQo
KQorICAgICAgICBpZiBvbGRfY29udGVudHMgPT0gY29udGVudHM6CisgICAgICAgICAgICByZXR1
cm4KKyAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICd3JykgYXMgZjoKKyAgICAgICAgZi53cml0ZShj
b250ZW50cykKKworZGVmIHdyaXRlX2ZlYXR1cmVfZGVmaW5lc19oZWFkZXIoZmVhdHVyZV9kZWZp
bmVzKToKKyAgICBjb250ZW50cyA9ICcnCisgICAgZm9yIChmZWF0dXJlLCB2YWx1ZSkgaW4gZmVh
dHVyZV9kZWZpbmVzLml0ZXJpdGVtcygpOgorICAgICAgICBjb250ZW50cyArPSAnI2RlZmluZSB7
MH0gezF9XG4nLmZvcm1hdChmZWF0dXJlLCB2YWx1ZSkKKyAgICB3cml0ZV9maWxlX2lmX2NvbnRl
bnRzX2NoYW5nZWQoIldlYktpdEZlYXR1cmVzLmgiLCBjb250ZW50cykKKworZGVmIHdyaXRlX2Zs
YXR0ZW5lZF9mZWF0dXJlX2RlZmluZXNfZmlsZShmZWF0dXJlX2RlZmluZXMpOgorICAgIGNvbnRl
bnRzID0gJycKKyAgICBmb3IgKGZlYXR1cmUsIHZhbHVlKSBpbiBmZWF0dXJlX2RlZmluZXMuaXRl
cml0ZW1zKCk6CisgICAgICAgIGNvbnRlbnRzICs9ICd7MH09ezF9XG4nLmZvcm1hdChmZWF0dXJl
LCB2YWx1ZSkKKyAgICB3cml0ZV9maWxlX2lmX2NvbnRlbnRzX2NoYW5nZWQoIldlYktpdEZlYXR1
cmVzLnR4dCIsIGNvbnRlbnRzKQorCitkZWYgZ2VuZXJhdGVfZmVhdHVyZV9kZWZpbmVzX2ZpbGVz
KGRlZmF1bHRfZmVhdHVyZXMpOgorICAgIGJ1aWxkX2RpciA9IG9zLmdldGN3ZCgpCisgICAgZmVh
dHVyZV9kZWZpbmVzID0ge30KKworICAgIGZvciBmZWF0dXJlX2RlZmluZSBpbiBkZWZhdWx0X2Zl
YXR1cmVzOgorICAgICAgICAoZmVhdHVyZSwgdmFsdWUpID0gZmVhdHVyZV9kZWZpbmUuc3BsaXQo
Ij0iKQorICAgICAgICBmZWF0dXJlX2RlZmluZXNbZmVhdHVyZV0gPSBpbnQodmFsdWUpCisKKyAg
ICByZWFkX2ZlYXR1cmVfZGVmaW5lc19vdmVycmlkZShmZWF0dXJlX2RlZmluZXMpCisgICAgd3Jp
dGVfZmVhdHVyZV9kZWZpbmVzX2hlYWRlcihmZWF0dXJlX2RlZmluZXMpCisgICAgd3JpdGVfZmxh
dHRlbmVkX2ZlYXR1cmVfZGVmaW5lc19maWxlKGZlYXR1cmVfZGVmaW5lcykKKworaWYgX19uYW1l
X189PSdfX21haW5fXyc6CisgICAgZ2VuZXJhdGVfZmVhdHVyZV9kZWZpbmVzX2ZpbGVzKHN5cy5h
cmd2WzE6XSkKZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9vdmVycmlkZS1mZWF0dXJlLWRlZmluZXMg
Yi9Ub29scy9ndGsvb3ZlcnJpZGUtZmVhdHVyZS1kZWZpbmVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDc1NQppbmRleCA2YjA5ZWNlODZjMmE1ZmQ1NjUyMTU5ODZkOTAwNmExODlmZDc2N2Q0Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL2d0ay9vdmVy
cmlkZS1mZWF0dXJlLWRlZmluZXMKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0jIS91
c3IvYmluL2VudiBweXRob24KLQotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWltcG9ydCBzaHV0aWwK
LWltcG9ydCBzeXMKLQotZGVmIGNvcHlfZmVhdHVyZV9kZWZpbmVzX21ha2VmaWxlKCk6Ci0gICAg
c3JjX3BhdGggPSBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ0dOVW1ha2VmaWxl
LmZlYXR1cmVzLmFtLmluJykKLSAgICBkZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4oJ1NvdXJjZScs
ICdXZWJDb3JlJywgJ0dOVW1ha2VmaWxlLmZlYXR1cmVzLmFtJykKLSAgICBzaHV0aWwuY29weShz
cmNfcGF0aCwgZGVzdF9wYXRoKQotCi1kZWYgYWRqdXN0X2ZlYXR1cmVfZGVmaW5lc19tYWtlZmls
ZShidWlsZF9kaXIsIGZlYXR1cmVfZGVmaW5lc19vdmVycmlkaW5nKToKLSAgICBmZWF0dXJlX2Rl
ZmluZXNfbWFrZWZpbGVfZmlsZSA9IG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYkNvcmUnLCAn
R05VbWFrZWZpbGUuZmVhdHVyZXMuYW0nKQotICAgIHdpdGggb3BlbihmZWF0dXJlX2RlZmluZXNf
bWFrZWZpbGVfZmlsZSkgYXMgZjoKLSAgICAgICAgZmVhdHVyZV9kZWZpbmVzX21ha2VmaWxlID0g
Zi5yZWFkKCkKLQotICAgIG92ZXJyaWRkZW5fZmVhdHVyZV9kZWZpbmVzID0ge30KLSAgICBkZWYg
b3ZlcnJpZGVfZmVhdHVyZV9kZWZpbmUobWF0Y2gpOgotICAgICAgICBmZWF0dXJlX2RlZmluZSA9
IG1hdGNoLmdyb3VwKCdmZWF0dXJlJykKLSAgICAgICAgaWYgZmVhdHVyZV9kZWZpbmUgbm90IGlu
IGZlYXR1cmVfZGVmaW5lc19vdmVycmlkaW5nOgotICAgICAgICAgICAgcmV0dXJuIG1hdGNoLnN0
cmluZ1ttYXRjaC5zdGFydCgpOm1hdGNoLmVuZCgpXQotCi0gICAgICAgIGRlZmF1bHRfdmFsdWUg
PSBpbnQobWF0Y2guZ3JvdXAoJ2RlZmF1bHRfdmFsdWUnKSkKLSAgICAgICAgb3ZlcnJpZGluZ192
YWx1ZSA9IGZlYXR1cmVfZGVmaW5lc19vdmVycmlkaW5nW2ZlYXR1cmVfZGVmaW5lXQotICAgICAg
ICBpZiBkZWZhdWx0X3ZhbHVlIGlzIG5vdCBvdmVycmlkaW5nX3ZhbHVlOgotICAgICAgICAgICAg
b3ZlcnJpZGRlbl9mZWF0dXJlX2RlZmluZXNbZmVhdHVyZV9kZWZpbmVdID0gZGVmYXVsdF92YWx1
ZSwgb3ZlcnJpZGluZ192YWx1ZQotICAgICAgICByZXR1cm4gIiVzPSVkIiAlIChmZWF0dXJlX2Rl
ZmluZSwgb3ZlcnJpZGluZ192YWx1ZSkKLQotICAgIGZlYXR1cmVfZGVmaW5lc19tYWtlZmlsZSA9
IHJlLnN1YihyIig/UDxmZWF0dXJlPig/OkVOQUJMRV8pXHcrKT0oP1A8ZGVmYXVsdF92YWx1ZT4w
fDEpIiwgb3ZlcnJpZGVfZmVhdHVyZV9kZWZpbmUsIGZlYXR1cmVfZGVmaW5lc19tYWtlZmlsZSkK
LSAgICB3aXRoIG9wZW4oZmVhdHVyZV9kZWZpbmVzX21ha2VmaWxlX2ZpbGUsICd3JykgYXMgZjoK
LSAgICAgICAgZi53cml0ZShmZWF0dXJlX2RlZmluZXNfbWFrZWZpbGUpCi0KLSAgICBpZiBvdmVy
cmlkZGVuX2ZlYXR1cmVfZGVmaW5lczoKLSAgICAgICAgcHJpbnQoIlRoZSBmb2xsb3dpbmcgZmVh
dHVyZSBkZWZpbmVzIHdlcmUgb3ZlcnJpZGVuOiIpCi0gICAgICAgIGZvciBmZWF0dXJlLCB2YWx1
ZXMgaW4gaXRlcihvdmVycmlkZGVuX2ZlYXR1cmVfZGVmaW5lcy5pdGVtcygpKToKLSAgICAgICAg
ICAgIHByaW50KCJcdHswfTogezF9ID0+IHsyfSIuZm9ybWF0KGZlYXR1cmUsICp2YWx1ZXMpKQot
Ci1kZWYgb3ZlcnJpZGVfZmVhdHVyZV9kZWZpbmVzKGJ1aWxkX2Rpcik6Ci0gICAgY29weV9mZWF0
dXJlX2RlZmluZXNfbWFrZWZpbGUoKQotCi0gICAgZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRpbmdf
ZmlsZSA9IG9zLnBhdGguam9pbihidWlsZF9kaXIsICdmZWF0dXJlLWRlZmluZXMtb3ZlcnJpZGlu
Zy50eHQnKQotICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhmZWF0dXJlX2RlZmluZXNfb3ZlcnJp
ZGluZ19maWxlKToKLSAgICAgICAgcmV0dXJuCi0KLSAgICB3aXRoIG9wZW4oZmVhdHVyZV9kZWZp
bmVzX292ZXJyaWRpbmdfZmlsZSkgYXMgZjoKLSAgICAgICAgbWF0Y2hfaXRlciA9IHJlLmZpbmRh
bGwociIoKD86RU5BQkxFXylcdyspPSgwfDEpIiwgZi5yZWFkKCkpCi0KLSAgICBmZWF0dXJlX2Rl
ZmluZXNfb3ZlcnJpZGluZyA9IHt9Ci0gICAgZm9yIG1hdGNoIGluIG1hdGNoX2l0ZXI6Ci0gICAg
ICAgIGZlYXR1cmVfZGVmaW5lc19vdmVycmlkaW5nW21hdGNoWzBdXSA9IGludChtYXRjaFsxXSkK
LQotICAgIGFkanVzdF9mZWF0dXJlX2RlZmluZXNfbWFrZWZpbGUoYnVpbGRfZGlyLCBmZWF0dXJl
X2RlZmluZXNfb3ZlcnJpZGluZykKLQotaWYgX19uYW1lX189PSdfX21haW5fXyc6Ci0gICAgb3Zl
cnJpZGVfZmVhdHVyZV9kZWZpbmVzKHN5cy5hcmd2WzFdKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9n
IGIvQ2hhbmdlTG9nCmluZGV4IDBiY2QwNjhhZDQ3MGU0ZmU5YTJjODIyMzg4NjI3NjJhMTc4NjU4
ZmQuLmE0NjQ5Zjg1ZjhjMGFlYjY0NDc2ZDA5YmFlYWQ2YzViN2EwYmE5M2EgMTAwNjQ0Ci0tLSBh
L0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMy0wMi0xOSAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
TW92ZSBmZWF0dXJlIG92ZXJyaWRpbmcgdG8gdGhlIGNvbmZpZ3VyZSBwaGFzZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV3b3JrIHRoZSBmZWF0dXJl
IG92ZXJyaWRlcyBsb2dpYyBzbyBhbGwgZmVhdHVyZSBkZWZpbmVzIGdvIGludG8gYQorICAgICAg
ICBoZWFkZXIgcmF0aGVyIHRoYW4gdGhlIGNvbW1hbmQgbGluZS4gVGhpcyBoYXMgYSBmZXcgYmVu
ZWZpdHMuIE1vc3QKKyAgICAgICAgbm90YWJseSwgd2UgY2FuIHJldXNlIHRoZSBoZWFkZXIgaW4g
dGhlIGd5cCBidWlsZC4gQW5vdGhlciBuaWNlIHJlc3VsdAorICAgICAgICBpcyB0aGF0IGNoYW5n
ZXMgdG8gdGhlIGNvbmZpZ3VyYXRpb24gYXV0b21hdGljYWxseSByZXN1bHQgaW4gYSBmdWxsCisg
ICAgICAgIHJlYnVpbGQgYW5kIERlYnVnIGFuZCBSZWxlYXNlIGJ1aWxkcyBjYW4gaGF2ZSBkaWZm
ZXJlbnQgY29uZmlndXJhdGlvbnMuCisKKyAgICAgICAgQWxsIGZlYXR1cmUgZGVmaW5lIHByb2Nl
c3NpbmcgaGFwcGVucyBub3cgZHVyaW5nIHRoZSBjb25maWd1cmF0aW9uIHBoYXNlLAorICAgICAg
ICBpbnN0ZWFkIG9mIHdoZW4gcnVubmluZyBhdXRvZ2VuLnNoLiBUaGlzIG1lYW5zIHRoYXQgd2Ug
bmVlZCB0byBkaXN0cmlidXRlCisgICAgICAgIHRoZSBmZWF0dXJlIHByb2Nlc3Npbmcgc2NyaXB0
LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IFJlYWQgZmVhdHVyZSBkZWZpbmVzIGZyb20g
V2ViS2l0RmVhdHVyZXMudHh0IHdoZW4ga2lja2luZworICAgICAgICBvZmYgYSBidWlsZC4gQWxz
byBpbmNsdWRlIGdlbmVyYXRlLWZlYXR1cmUtZGVmaW5lcy1maWxlcyBpbiB0aGUgZGlzdHJpYnV0
aW9uLgorICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvU2V0dXBBdXRvY29uZkhlYWRlci5tNDog
UmVtb3ZlIGFuIGV4dHJhIEVOQUJMRV8zRF9SRU5ERVJJTkcKKyAgICAgICAgZnJvbSB0aGUgYXV0
b2NvbmYgaGVhZGVyLCBhcyBpdCBpcyBhbHJlYWR5IHByb3ZpZGVkIGJ5IHRoZSBmZWF0dXJlIGNv
bmZpZ3VyYXRpb24uCisgICAgICAgICogU291cmNlL2F1dG90b29scy9TZXR1cFdlYktpdEZlYXR1
cmVzLm00OiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3dlYmtpdGZlYXR1cmUu
bTQ6IFJlbW92ZWQuIFRoZSBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIG1vdmVkCisgICAgICAgIHRv
IFNldHVwV2ViS2l0RmVhdHVyZXMubTQuCisgICAgICAgICogYXV0b2dlbi5zaDogUmVtb3ZlIHRo
ZSBjYWxsIHRvIG92ZXJyaWRlLWZlYXR1cmUtZGVmaW5lcy4KKyAgICAgICAgKiBjb25maWd1cmUu
YWM6IE5vdyBpbmNsdWRlIFNldHVwV2ViS2l0RmVhdHVyZXMuCisKIDIwMTMtMDItMTkgIENsYXVk
aW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFrZWZpbGUuYW0K
aW5kZXggZTQyMGU0YjYxYWNlMTg4ZmRiOGQ4ZmY5OGQwMWJlM2YzMzQ2ZWFiMS4uZWNkMzA1ZjZh
YjQ1ZGY1ZDkyYTg5ZWM3NDU5ODY0NGFlYjlhMWViNCAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUu
YW0KKysrIGIvR05VbWFrZWZpbGUuYW0KQEAgLTYwLDkgKzYwLDYgQEAgVVNFUl9MSU5HVUFTIDo9
CiBVU0VfTElOR1VBUyA6PQogTU9GSUxFUyA6PQogQUxMX01PRklMRVMgOj0KLWZlYXR1cmVfZGVm
aW5lc19kZWZhdWx0cyA6PQotZmVhdHVyZV9kZWZpbmVzX292ZXJyaWRlcyA6PQotZmVhdHVyZV9k
ZWZpbmVzIDo9CiBkb21fYmluZGluZ19pZGxzIDo9CiB3dGZfc291cmNlcyA6PQogamF2YXNjcmlw
dGNvcmVfaF9hcGkgOj0KQEAgLTE1MSw2ICsxNDgsMTAgQEAgZW5kaWYKIGdsb2JhbF9jeHhmbGFn
cyArPSBcCiAJLWZuby1ydHRpCiAKKyMgUmVhZCB0aGUgZmVhdHVyZSBkZWZpbmVzIGZpbGUsIHRo
YXQncyBjcmVhdGVkIGJ5IGdlbmVyYXRlLWZlYXR1cmUtZGVmaW5lcy1maWxlcworIyBkdXJpbmcg
Y29uZmlndXJhdGlvbiAoU2V0dXBXZWJLaXRGZWF0dXJlcy5tNCkuCitmZWF0dXJlX2RlZmluZXMg
Oj0gJChzaGVsbCBjYXQgV2ViS2l0RmVhdHVyZXMudHh0KQorCiAjIC1uby11bmRlZmluZWQgcmVx
dWlyZWQgZm9yIGJ1aWxkaW5nIERMTHMgb24gV2luZG93cwogIyBJdCBicmVha3MgdGhlIGJ1aWxk
IG9uIG90aGVyIHBsYXRmb3Jtcywgc28gd2UgdXNlIGl0IGNvbmRpdGlvbmFsbHkKIGlmIE9TX1dJ
TjMyCkBAIC0xNzAsNiArMTcxLDcgQEAgZW5kaWYKIAogRVhUUkFfRElTVCArPSBcCiAJJChzcmNk
aXIpL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgXAorCSQoc3JjZGlyKS9Ub29scy9n
ZW5lcmF0ZS1mZWF0dXJlLWRlZmluZXMtZmlsZXMgXAogCSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0
L0xJQ0VOU0UKIAogIyBJbmNsdWRlIG1vZHVsZSBtYWtlZmlsZXMKZGlmZiAtLWdpdCBhL2F1dG9n
ZW4uc2ggYi9hdXRvZ2VuLnNoCmluZGV4IDFhZTYxOWE3NGRlZmQ1NTgxODZmZjBlYTMyMmMwOTY4
YjBiYjViNWYuLjEyYzZhNGM3ZTk3YjRhMWM0OGI5MmJkYWQ0YWZlZmYxYTkzNDljY2QgMTAwNzU1
Ci0tLSBhL2F1dG9nZW4uc2gKKysrIGIvYXV0b2dlbi5zaApAQCAtMTIsOCArMTIsNiBAQCBybSAt
ZiAkdG9wX3NyY2Rpci9hdXRvbTR0ZS5jYWNoZQogCiB0b3VjaCBSRUFETUUgSU5TVEFMTAogCi1U
b29scy9ndGsvb3ZlcnJpZGUtZmVhdHVyZS1kZWZpbmVzICRPUklHRElSCi0KIGlmIHRlc3QgLXog
YHdoaWNoIGF1dG9yZWNvbmZgOyB0aGVuCiAgICAgZWNobyAiRXJyb3I6IGF1dG9yZWNvbmYgbm90
IGZvdW5kLCBwbGVhc2UgaW5zdGFsbCBpdC4iCiAgICAgZXhpdCAxCmRpZmYgLS1naXQgYS9jb25m
aWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggMGMzMGVlNTU4NjUwYTgxMTgzMDcyMGE2NzBm
OWU5MjJiZGU0MjYyZS4uNWVjZjgyZGNjMGUxZDgxYjNlMmJiMGRkOTAyNDI4MjY0NjViNGM3OSAx
MDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMjYsNiArMjYs
NyBAQCBtNF9pbmNsdWRlKFtTb3VyY2UvYXV0b3Rvb2xzL1JlYWRDb21tYW5kTGluZUFyZ3VtZW50
cy5tNF0pCiBtNF9pbmNsdWRlKFtTb3VyY2UvYXV0b3Rvb2xzL0ZpbmREZXBlbmRlbmNpZXMubTRd
KQogbTRfaW5jbHVkZShbU291cmNlL2F1dG90b29scy9TZXR1cENvbXBpbGVyRmxhZ3MubTRdKQog
bTRfaW5jbHVkZShbU291cmNlL2F1dG90b29scy9TZXR1cEF1dG9jb25mSGVhZGVyLm00XSkKK200
X2luY2x1ZGUoW1NvdXJjZS9hdXRvdG9vbHMvU2V0dXBXZWJLaXRGZWF0dXJlcy5tNF0pCiAKICMg
V2Ugd291bGQgcHV0IEFNX0lOSVRfQVVUT01BS0UgaW50byBTZXR1cEF1dG9tYWtlLm00LCBidXQg
c2VlbXMgdG8gY2F1c2UgYXV0b2NvbmYgZXJyb3JzLgogQU1fSU5JVF9BVVRPTUFLRShbZm9yZWln
biBzdWJkaXItb2JqZWN0cyBkaXN0LXh6IG5vLWRpc3QtZ3ppcCB0YXItdXN0YXJdKQo=
</data>
<flag name="review"
          id="209591"
          type_id="1"
          status="+"
          setter="gustavo"
    />
          </attachment>
      

    </bug>

</bugzilla>