<?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>146175</bug_id>
          
          <creation_ts>2015-06-19 17:45:45 -0700</creation_ts>
          <short_desc>Get rid of factory json files in benchmark_runner</short_desc>
          <delta_ts>2015-06-22 20:48:16 -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>New Bugs</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>dewei_zhu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>glenn</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1103521</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2015-06-19 17:45:45 -0700</bug_when>
    <thetext>Fix the bug introduced by patch 146125 and polish the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103525</commentid>
    <comment_count>1</comment_count>
      <attachid>255257</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2015-06-19 17:49:38 -0700</bug_when>
    <thetext>Created attachment 255257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103596</commentid>
    <comment_count>2</comment_count>
      <attachid>255284</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2015-06-20 00:33:37 -0700</bug_when>
    <thetext>Created attachment 255284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103598</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-20 00:36:11 -0700</bug_when>
    <thetext>Attachment 255284 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:39:  [OSXBrowserDriver.terminateProcesses] No name &apos;NSRunningApplication&apos; in module &apos;AppKit&apos;  [pylint/E0611] [5]
ERROR: Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:52:  [OSXBrowserDriver.screenSize] No name &apos;NSScreen&apos; in module &apos;AppKit&apos;  [pylint/E0611] [5]
Total errors found: 2 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103600</commentid>
    <comment_count>4</comment_count>
      <attachid>255286</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2015-06-20 00:41:05 -0700</bug_when>
    <thetext>Created attachment 255286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103601</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-20 00:44:06 -0700</bug_when>
    <thetext>Attachment 255286 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:39:  [OSXBrowserDriver.terminateProcesses] No name &apos;NSRunningApplication&apos; in module &apos;AppKit&apos;  [pylint/E0611] [5]
ERROR: Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:52:  [OSXBrowserDriver.screenSize] No name &apos;NSScreen&apos; in module &apos;AppKit&apos;  [pylint/E0611] [5]
Total errors found: 2 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103602</commentid>
    <comment_count>6</comment_count>
      <attachid>255286</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-06-20 00:55:07 -0700</bug_when>
    <thetext>Comment on attachment 255286
Patch

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

&gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder/__init__.py:15
&gt; +import imp

We don&apos;t need imp here.

&gt; Tools/Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py:15
&gt; +import imp

Ditto.

&gt; Tools/Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py:23
&gt; +        BrowserDriverFactory.add_product([browser_driver_class.platform, browser_driver_class.browser_name], browser_driver_class)

This code is unreadable. We should just not use GenericFactory.add_product here.
Just add add_browser_driver(platform, browser_name, browser_driver_class) or something to BrowserDriverFactory.

&gt; Tools/Scripts/webkitpy/benchmark_runner/generic_factory.py:38
&gt; +    @classmethod
&gt; +    def add_product(cls, descriptions, product):
&gt; +        item = cls.products
&gt; +        for description in descriptions[:-1]:
&gt; +            if description not in item:
&gt; +                item[description] = {}
&gt; +            item = item[description]
&gt; +        item[descriptions[-1]] = product

This method is super generic and impossible to reason about.
I&apos;d much prefer duplicating the code in each driver factory instead.

&gt; Tools/Scripts/webkitpy/benchmark_runner/utils.py:21
&gt; +    if inspect.isclass(child):
&gt; +        if parent_name in [cls.__name__ for cls in inspect.getmro(child)]:
&gt; +            return True
&gt; +    return False

This should be re-rewritten as:
return inspect.isclass(child) and parent_name in [cls.__name__ for cls in inspect.getmro(child)]

&gt; Tools/Scripts/webkitpy/benchmark_runner/utils.py:26
&gt; +        if filename.endswith(&apos;.py&apos;) and filename not in [&apos;__init__.py&apos;]:

Instead of nesting if-s, use &quot;continue&quot; and detect the rest per WebKit coding style.
Alternatively, use list comprehension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103867</commentid>
    <comment_count>7</comment_count>
      <attachid>255286</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2015-06-22 10:35:52 -0700</bug_when>
    <thetext>Comment on attachment 255286
Patch

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

&gt; Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder/__init__.py:23
&gt; +        BenchmarkBuilderFactory.add_product([benchmark_builder_class.builder_name], benchmark_builder_class)

Should I add a add_benchmark_builder method instead?

&gt; Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py:23
&gt; +        HTTPServerDriverFactory.add_product([http_server_driver_class.name], http_server_driver_class)

Should I change here as well?

&gt;&gt; Tools/Scripts/webkitpy/benchmark_runner/utils.py:21
&gt;&gt; +    return False
&gt; 
&gt; This should be re-rewritten as:
&gt; return inspect.isclass(child) and parent_name in [cls.__name__ for cls in inspect.getmro(child)]

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103910</commentid>
    <comment_count>8</comment_count>
      <attachid>255366</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2015-06-22 13:51:26 -0700</bug_when>
    <thetext>Created attachment 255366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103912</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-22 13:54:56 -0700</bug_when>
    <thetext>Attachment 255366 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:39:  [OSXBrowserDriver.terminateProcesses] No name &apos;NSRunningApplication&apos; in module &apos;AppKit&apos;  [pylint/E0611] [5]
ERROR: Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:52:  [OSXBrowserDriver.screenSize] No name &apos;NSScreen&apos; in module &apos;AppKit&apos;  [pylint/E0611] [5]
Total errors found: 2 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103963</commentid>
    <comment_count>10</comment_count>
      <attachid>255366</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-06-22 17:39:47 -0700</bug_when>
    <thetext>Comment on attachment 255366
Patch

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

&gt; Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver_factory.py:32
&gt; +    def get(cls, platform, browser_name):

I don&apos;t think we should rename this to `get`.
`create` is more semantically correct name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103973</commentid>
    <comment_count>11</comment_count>
      <attachid>255381</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2015-06-22 18:03:53 -0700</bug_when>
    <thetext>Created attachment 255381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103975</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-22 18:05:57 -0700</bug_when>
    <thetext>Attachment 255381 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:39:  [OSXBrowserDriver.terminateProcesses] No name &apos;NSRunningApplication&apos; in module &apos;AppKit&apos;  [pylint/E0611] [5]
ERROR: Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:52:  [OSXBrowserDriver.screenSize] No name &apos;NSScreen&apos; in module &apos;AppKit&apos;  [pylint/E0611] [5]
Total errors found: 2 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103977</commentid>
    <comment_count>13</comment_count>
      <attachid>255383</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2015-06-22 18:08:14 -0700</bug_when>
    <thetext>Created attachment 255383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1103978</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-22 18:09:54 -0700</bug_when>
    <thetext>Attachment 255383 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:39:  [OSXBrowserDriver.terminateProcesses] No name &apos;NSRunningApplication&apos; in module &apos;AppKit&apos;  [pylint/E0611] [5]
ERROR: Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:52:  [OSXBrowserDriver.screenSize] No name &apos;NSScreen&apos; in module &apos;AppKit&apos;  [pylint/E0611] [5]
Total errors found: 2 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104010</commentid>
    <comment_count>15</comment_count>
      <attachid>255383</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-22 20:48:12 -0700</bug_when>
    <thetext>Comment on attachment 255383
Patch

Clearing flags on attachment: 255383

Committed r185859: &lt;http://trac.webkit.org/changeset/185859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1104011</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-22 20:48:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255257</attachid>
            <date>2015-06-19 17:49:38 -0700</date>
            <delta_ts>2015-06-20 00:33:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146175-20150619174859.patch</filename>
            <type>text/plain</type>
            <size>12008</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NzY4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTE2YmJlMjQ1NjU0Nzk1OTQyOTdiMzM4OWQ0ZGZlODk5
MmE0OWQwMi4uMjc5ZWQ2ODllMmZiNDViNjE4NjlhY2UzNzU5MzAyOTMyZjY1YzNiMSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDE1LTA2LTE5ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCB0aGUgYnVnIGludHJvZHVjZWQgYnkgcGF0Y2ggMTQ2MTI1IGFuZCBwb2xpc2ggdGhl
IGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDYxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXggdGhlIGJ1ZyBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDE0NjEyNSB3aGljaCBmYWlscyB0aGlzIHNj
cmlwdCBhbmQgcG9saXNoIHRoZSBjb2RlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVyX2ZhY3Rv
cnkucHk6CisgICAgICAgIChCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeSk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFy
a19idWlsZGVycy5qc29uOiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2RyaXZlcl9mYWN0
b3J5LnB5OgorICAgICAgICAoQnJvd3NlckRyaXZlckZhY3RvcnkpOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2RyaXZl
cnMuanNvbjogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3NhZmFyaV9kcml2ZXIucHk6CisgICAgICAgIChPU1hT
YWZhcmlEcml2ZXIucHJlcGFyZUVudik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2dlbmVyaWNfZmFjdG9yeS5weToKKyAgICAgICAgKEdlbmVyaWNGYWN0b3J5
KToKKyAgICAgICAgKEdlbmVyaWNGYWN0b3J5LmNyZWF0ZSk6CisgICAgICAgIChHZW5lcmljRmFj
dG9yeS5hZGRfcHJvZHVjdCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeS5weToK
KyAgICAgICAgKEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5KToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2Ry
aXZlcnMuanNvbjogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvdXRpbHMucHk6CisgICAgICAgIChNb2R1bGVOb3RGb3VuZEVycm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKGxvYWRNb2R1bGUpOiBEZWxldGVkLgorCiAyMDE1LTA2LTE5ICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgV0tTZWN1cml0eU9y
aWdpbi5oL2NwcCB0byBXS1NlY3VyaXR5T3JpZ2luUmVmLmgvY3BwLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2Jl
bmNobWFya19idWlsZGVyX2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeS5w
eQppbmRleCA5NjAxZDNmMTVmMWYwMzY0MzM5YWUyNGQ0ZjhlZTFhYzg2NjIyNDczLi5iYmEyMWU2
YzczNmQzYjM3OTMxNzEwNGY2NmIwMDA5NTRjYWJiNGQxIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJr
X2J1aWxkZXJfZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeS5weQpA
QCAtNSwxMiArNSwxMSBAQCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiAKIGZyb20gd2Via2l0cHku
YmVuY2htYXJrX3J1bm5lci5nZW5lcmljX2ZhY3RvcnkgaW1wb3J0IEdlbmVyaWNGYWN0b3J5Ci1m
cm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1wb3J0IGxvYWRKU09ORnJvbUZp
bGUKLQotCi1idWlsZGVyRmlsZU5hbWUgPSAnYmVuY2htYXJrX2J1aWxkZXJzLmpzb24nCitmcm9t
IGdlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIgaW1wb3J0IEdlbmVyaWNCZW5jaG1hcmtCdWlsZGVy
CiAKIAogY2xhc3MgQmVuY2htYXJrQnVpbGRlckZhY3RvcnkoR2VuZXJpY0ZhY3RvcnkpOgogCi0g
ICAgcHJvZHVjdHMgPSBsb2FkSlNPTkZyb21GaWxlKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5h
bWUoX19maWxlX18pLCBidWlsZGVyRmlsZU5hbWUpKQorICAgIHByb2R1Y3RzID0geworICAgICAg
ICAnR2VuZXJpY0JlbmNobWFya0J1aWxkZXInOiBHZW5lcmljQmVuY2htYXJrQnVpbGRlciwKKyAg
ICB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJzLmpzb24gYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1
aWxkZXJzLmpzb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmNGJkZjNjZjhmYTAy
MmJkNjA1NGIxYjk2YTBhNjRlN2QwM2QzMWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVycy5qc29uCisrKyAvZGV2L251bGwK
QEAgLTEsNiArMCwwIEBACi17Ci0gICAgIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyIjogewotICAg
ICAgICAiZmlsZVBhdGgiOiAiYmVuY2htYXJrX2J1aWxkZXIuZ2VuZXJpY19iZW5jaG1hcmtfYnVp
bGRlciIsCi0gICAgICAgICJtb2R1bGVOYW1lIjogIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyIgot
ICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKaW5kZXggNDdlNzhiZDVhMjIyYTcwZGNjYTAw
MjU5YmE0OWYyMmI2MThkZjgxZS4uMjVjYTAzNTY5NDZhYmQ0ZjQxYWUzMjJmZTlhMGFjNjU3MTFh
MmY2NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2JlbmNobWFya19ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKQEAgLTE2LDcgKzE2LDcgQEAgZnJvbSBiZW5j
aG1hcmtfYnVpbGRlci5iZW5jaG1hcmtfYnVpbGRlcl9mYWN0b3J5IGltcG9ydCBCZW5jaG1hcmtC
dWlsZGVyRmFjdG9yeQogZnJvbSBiZW5jaG1hcmtfcmVzdWx0cyBpbXBvcnQgQmVuY2htYXJrUmVz
dWx0cwogZnJvbSBicm93c2VyX2RyaXZlci5icm93c2VyX2RyaXZlcl9mYWN0b3J5IGltcG9ydCBC
cm93c2VyRHJpdmVyRmFjdG9yeQogZnJvbSBodHRwX3NlcnZlcl9kcml2ZXIuaHR0cF9zZXJ2ZXJf
ZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5Ci1mcm9tIHV0aWxz
IGltcG9ydCBsb2FkTW9kdWxlLCBnZXRQYXRoRnJvbVByb2plY3RSb290Citmcm9tIHV0aWxzIGlt
cG9ydCBnZXRQYXRoRnJvbVByb2plY3RSb290CiBmcm9tIHV0aWxzIGltcG9ydCB0aW1lb3V0CiAK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jy
b3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyX2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJfZmFj
dG9yeS5weQppbmRleCBhMTQwZWMwN2YzOTkxYjdlZTVmNWJkNjg3ZmE4M2Y1OWRiMzI5NzdlLi5j
MjU5ZGY0ZDJjMmNhMjE2ODYwYThlMzhhMzM2Njg5MjRhNzliYzdjIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nl
cl9kcml2ZXJfZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJfZmFjdG9yeS5weQpAQCAtNSwx
NSArNSwyNCBAQCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiAKIGZyb20gd2Via2l0cHkuYmVuY2ht
YXJrX3J1bm5lci5nZW5lcmljX2ZhY3RvcnkgaW1wb3J0IEdlbmVyaWNGYWN0b3J5Ci1mcm9tIHdl
YmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1wb3J0IGxvYWRKU09ORnJvbUZpbGUKLQot
Ci1kcml2ZXJGaWxlTmFtZSA9ICdicm93c2VyX2RyaXZlcnMuanNvbicKK2Zyb20gb3N4X2Nocm9t
ZV9kcml2ZXIgaW1wb3J0IE9TWENocm9tZURyaXZlcgorZnJvbSBvc3hfY2hyb21lX2RyaXZlciBp
bXBvcnQgT1NYQ2hyb21lQ2FuYXJ5RHJpdmVyCitmcm9tIG9zeF9maXJlZm94X2RyaXZlciBpbXBv
cnQgT1NYRmlyZWZveERyaXZlcgorZnJvbSBvc3hfZmlyZWZveF9kcml2ZXIgaW1wb3J0IE9TWEZp
cmVmb3hOaWdodGx5RHJpdmVyCitmcm9tIG9zeF9zYWZhcmlfZHJpdmVyIGltcG9ydCBPU1hTYWZh
cmlEcml2ZXIKIAogCiBjbGFzcyBCcm93c2VyRHJpdmVyRmFjdG9yeShHZW5lcmljRmFjdG9yeSk6
CiAKLSAgICBwcm9kdWN0cyA9IGxvYWRKU09ORnJvbUZpbGUob3MucGF0aC5qb2luKG9zLnBhdGgu
ZGlybmFtZShfX2ZpbGVfXyksIGRyaXZlckZpbGVOYW1lKSkKKyAgICBwcm9kdWN0cyA9IHsKKyAg
ICAgICAgJ29zeCc6IHsKKyAgICAgICAgICAgICdjaHJvbWUnOiBPU1hDaHJvbWVEcml2ZXIsCisg
ICAgICAgICAgICAnY2hyb21lLWNhbmFyeSc6IE9TWENocm9tZUNhbmFyeURyaXZlciwKKyAgICAg
ICAgICAgICdmaXJlZm94JzogT1NYRmlyZWZveERyaXZlciwKKyAgICAgICAgICAgICdmaXJlZm94
LW5pZ2h0bHknOiBPU1hGaXJlZm94TmlnaHRseURyaXZlciwKKyAgICAgICAgICAgICdzYWZhcmkn
OiBPU1hTYWZhcmlEcml2ZXIsCisgICAgICAgIH0sCisgICAgfQogCiAgICAgQGNsYXNzbWV0aG9k
CiAgICAgZGVmIGF2YWlsYWJsZV9wbGF0Zm9ybXMoY2xzKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2Ry
aXZlcnMuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93
c2VyX2RyaXZlci9icm93c2VyX2RyaXZlcnMuanNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTI3Y2JmZmIyODNmZWZlZjQ1NmU0MDY1OGY4ZmUwMWYxNjhmMzU3My4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJzLmpzb24K
KysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi17Ci0gICAgIm9zeCI6IHsKLSAgICAgICAg
ImNocm9tZSI6IHsKLSAgICAgICAgICAgICJtb2R1bGVOYW1lIjogIk9TWENocm9tZURyaXZlciIs
IAotICAgICAgICAgICAgImZpbGVQYXRoIjogImJyb3dzZXJfZHJpdmVyLm9zeF9jaHJvbWVfZHJp
dmVyIgotICAgICAgICB9LAotICAgICAgICAiY2hyb21lLWNhbmFyeSI6IHsKLSAgICAgICAgICAg
ICJtb2R1bGVOYW1lIjogIk9TWENocm9tZUNhbmFyeURyaXZlciIsIAotICAgICAgICAgICAgImZp
bGVQYXRoIjogImJyb3dzZXJfZHJpdmVyLm9zeF9jaHJvbWVfZHJpdmVyIgotICAgICAgICB9LAot
ICAgICAgICAiZmlyZWZveCI6IHsKLSAgICAgICAgICAgICJtb2R1bGVOYW1lIjogIk9TWEZpcmVm
b3hEcml2ZXIiLCAKLSAgICAgICAgICAgICJmaWxlUGF0aCI6ICJicm93c2VyX2RyaXZlci5vc3hf
ZmlyZWZveF9kcml2ZXIiCi0gICAgICAgIH0sCi0gICAgICAgICJmaXJlZm94LW5pZ2h0bHkiOiB7
Ci0gICAgICAgICAgICAibW9kdWxlTmFtZSI6ICJPU1hGaXJlZm94TmlnaHRseURyaXZlciIsIAot
ICAgICAgICAgICAgImZpbGVQYXRoIjogImJyb3dzZXJfZHJpdmVyLm9zeF9maXJlZm94X2RyaXZl
ciIKLSAgICAgICAgfSwKLSAgICAgICAgInNhZmFyaSI6IHsKLSAgICAgICAgICAgICJtb2R1bGVO
YW1lIjogIk9TWFNhZmFyaURyaXZlciIsIAotICAgICAgICAgICAgImZpbGVQYXRoIjogImJyb3dz
ZXJfZHJpdmVyLm9zeF9zYWZhcmlfZHJpdmVyIgotICAgICAgICB9Ci0gICAgfSAKLX0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2Ry
aXZlci9vc3hfc2FmYXJpX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZlci5weQppbmRleCA5N2Fm
YmIzMTU2NGQ1ZjBlZDY3OTE1ZGU0MjUzNzZkNGJhNjU5YWM0Li43NDQyODQ3OGIzNjMzNzk2Nzdl
Nzk4N2I1MWRiNGQ5YTU0MGE4MjJmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3NhZmFyaV9kcml2ZXIucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVy
L29zeF9zYWZhcmlfZHJpdmVyLnB5CkBAIC0xOCw3ICsxOCw3IEBAIGNsYXNzIE9TWFNhZmFyaURy
aXZlcihPU1hCcm93c2VyRHJpdmVyKToKIAogICAgIGRlZiBwcmVwYXJlRW52KHNlbGYsIGRldmlj
ZUlEKToKICAgICAgICAgc2VsZi5zYWZhcmlQcm9jZXNzID0gTm9uZQotICAgICAgICBzdXBlcihP
U1hTYWZhcmlEcml2ZXIsIHNlbGYpLnByZXBhcmVFbnYoKQorICAgICAgICBzdXBlcihPU1hTYWZh
cmlEcml2ZXIsIHNlbGYpLnByZXBhcmVFbnYoZGV2aWNlSUQpCiAgICAgICAgIGZvcmNlUmVtb3Zl
KG9zLnBhdGguam9pbihvcy5wYXRoLmV4cGFuZHVzZXIoJ34nKSwgJ0xpYnJhcnkvU2F2ZWQgQXBw
bGljYXRpb24gU3RhdGUvY29tLmFwcGxlLlNhZmFyaS5zYXZlZFN0YXRlJykpCiAgICAgICAgIGZv
cmNlUmVtb3ZlKG9zLnBhdGguam9pbihvcy5wYXRoLmV4cGFuZHVzZXIoJ34nKSwgJ0xpYnJhcnkv
U2FmYXJpL0xhc3RTZXNzaW9uLnBsaXN0JykpCiAgICAgICAgIHNlbGYubWF4aW1pemVXaW5kb3co
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2dl
bmVyaWNfZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9nZW5lcmljX2ZhY3RvcnkucHkKaW5kZXggY2ViZWNiNDc4NDA0MjQ5ZDJmOGIxNzUzYmEyNjBl
YjExM2M1NzhjYy4uNDcwMDA5MDBmMmZjMjgxNzhiY2IwMTU1YzdmMDFiOTRlMWEzOGI3OSAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2dlbmVyaWNf
ZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
Z2VuZXJpY19mYWN0b3J5LnB5CkBAIC0zLDE1ICszLDEzIEBACiBpbXBvcnQgbG9nZ2luZwogaW1w
b3J0IG9zCiAKLWZyb20gdXRpbHMgaW1wb3J0IGxvYWRNb2R1bGUsIE1vZHVsZU5vdEZvdW5kRXJy
b3IKLQogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAogY2xhc3MgR2Vu
ZXJpY0ZhY3Rvcnkob2JqZWN0KToKIAotICAgIHByb2R1Y3RzID0gTm9uZQorICAgIHByb2R1Y3Rz
ID0ge30KIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBpdGVyYXRlR2V0SXRlbShjbHMsIG9w
dGlvbnMsIGtleXMpOgpAQCAtMjYsNiArMjQsMTUgQEAgY2xhc3MgR2VuZXJpY0ZhY3Rvcnkob2Jq
ZWN0KToKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgY3JlYXRlKGNscywgZGVzY3JpcHRpb25z
KToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIGxvYWRNb2R1bGUoY2xzLml0ZXJh
dGVHZXRJdGVtKGNscy5wcm9kdWN0cywgZGVzY3JpcHRpb25zKSkoKQorICAgICAgICAgICAgcmV0
dXJuIGNscy5pdGVyYXRlR2V0SXRlbShjbHMucHJvZHVjdHMsIGRlc2NyaXB0aW9ucykoKQogICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgcmFpc2UKKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBhZGRfcHJvZHVjdChjbHMsIGRlc2NyaXB0aW9ucywgcHJvZHVjdCk6Cisg
ICAgICAgIGl0ZW0gPSBjbHMucHJvZHVjdHMKKyAgICAgICAgZm9yIGRlc2NyaXB0aW9uIGluIGRl
c2NyaXB0aW9uc1s6LTFdOgorICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24gbm90IGluIGl0ZW06
CisgICAgICAgICAgICAgICAgaXRlbVtkZXNjcmlwdGlvbl0gPSB7fQorICAgICAgICAgICAgaXRl
bSA9IGl0ZW1bZGVzY3JpcHRpb25dCisgICAgICAgIGl0ZW1bZGVzY3JpcHRpb25zWy0xXV0gPSBw
cm9kdWN0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9o
dHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeS5weQppbmRleCBmOGU4NTA2NjZlZWRiNjZiNjI5MTNm
ZDQ4ODA3OTc2OTZmY2NjYjU2Li5mZmRkYzcxNjUwMzcyYjA1ZTJlMzlhYjk1MTY0ZWJmMWQyNDdk
NzYyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
aHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIv
aHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkucHkKQEAgLTUsMTIgKzUsMTEgQEAgaW1wb3J0IGpz
b24KIGltcG9ydCBvcwogCiBmcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIuZ2VuZXJpY19m
YWN0b3J5IGltcG9ydCBHZW5lcmljRmFjdG9yeQotZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVu
bmVyLnV0aWxzIGltcG9ydCBsb2FkSlNPTkZyb21GaWxlCi0KLQotZHJpdmVyRmlsZU5hbWUgPSAn
aHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29uJworZnJvbSBzaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVy
IGltcG9ydCBTaW1wbGVIVFRQU2VydmVyRHJpdmVyCiAKIAogY2xhc3MgSFRUUFNlcnZlckRyaXZl
ckZhY3RvcnkoR2VuZXJpY0ZhY3RvcnkpOgogCi0gICAgcHJvZHVjdHMgPSBsb2FkSlNPTkZyb21G
aWxlKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCBkcml2ZXJGaWxlTmFt
ZSkpCisgICAgcHJvZHVjdHMgPSB7CisgICAgICAgICdTaW1wbGVIVFRQU2VydmVyRHJpdmVyJzog
U2ltcGxlSFRUUFNlcnZlckRyaXZlciwKKyAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVy
X2RyaXZlcnMuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9o
dHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29uCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2YmIzYmNkY2I2OWQ0ZTU1MzFjNDk5ZWQ5YTY3ZTgzZDJhNzcyOTg5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9z
ZXJ2ZXJfZHJpdmVycy5qc29uCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi17Ci0gICJT
aW1wbGVIVFRQU2VydmVyRHJpdmVyIjogewotICAgICJtb2R1bGVOYW1lIjogIlNpbXBsZUhUVFBT
ZXJ2ZXJEcml2ZXIiLCAKLSAgICAiZmlsZVBhdGgiOiAiaHR0cF9zZXJ2ZXJfZHJpdmVyLnNpbXBs
ZV9odHRwX3NlcnZlcl9kcml2ZXIiCi0gIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGlscy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci91dGlscy5weQppbmRleCBiYzMyNGUyMmM3NTlkODFiMDljODM0
Y2Q2ZjYxOGE4NzE3ZGRkZWViLi4wMjA1MDBkN2FmNTBjZjIxMTIwNzFkYjk0NWJhNjI5ZDU1NGE5
NWMxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
dXRpbHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3V0
aWxzLnB5CkBAIC0xMCwxOCArMTAsNiBAQCBpbXBvcnQgc2h1dGlsCiBfbG9nID0gbG9nZ2luZy5n
ZXRMb2dnZXIoX19uYW1lX18pCiAKIAotY2xhc3MgTW9kdWxlTm90Rm91bmRFcnJvcihFeGNlcHRp
b24pOgotICAgIHBhc3MKLQotCi1kZWYgbG9hZE1vZHVsZShtb2R1bGVEZXNjKToKLSAgICB0cnk6
Ci0gICAgICAgIHJldCA9IGdldGF0dHIoX19pbXBvcnRfXyhtb2R1bGVEZXNjWydmaWxlUGF0aCdd
LCBnbG9iYWxzKCksIGxvY2FscygpLCBtb2R1bGVEZXNjWydtb2R1bGVOYW1lJ10sIC0xKSwgbW9k
dWxlRGVzY1snbW9kdWxlTmFtZSddKQotICAgICAgICByZXR1cm4gcmV0Ci0gICAgZXhjZXB0IEV4
Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAgICAgcmFpc2UgTW9kdWxlTm90Rm91bmRFcnJvcignRXJy
b3IgbG9hZGluZyBtb2R1bGUgKCVzKSB3aXRoIHBhdGgoJXMpOiB7JXN9JyAlIChtb2R1bGVEZXNj
Wydtb2R1bGVOYW1lJ10sIG1vZHVsZURlc2NbJ2ZpbGVQYXRoJ10sIGVycm9yKSkKLQotCiBkZWYg
Z2V0UGF0aEZyb21Qcm9qZWN0Um9vdChyZWxhdGl2ZVBhdGhUb1Byb2plY3RSb290KToKICAgICAj
IENob29zZSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgY3VycmVudCBmaWxlIGFzIHN0YXJ0IHBv
aW50LAogICAgICMgY29tcHV0ZSByZWxhdGl2ZSBwYXRoIGJhc2Ugb24gdGhlIHBhcmFtZXRlciwK
QEAgLTI5LDE1ICsxNyw2IEBAIGRlZiBnZXRQYXRoRnJvbVByb2plY3RSb290KHJlbGF0aXZlUGF0
aFRvUHJvamVjdFJvb3QpOgogICAgIHJldHVybiBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2lu
KG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKSwgcmVsYXRpdmVQYXRo
VG9Qcm9qZWN0Um9vdCkpCiAKIAotZGVmIGxvYWRKU09ORnJvbUZpbGUoZmlsZVBhdGgpOgotICAg
IHRyeToKLSAgICAgICAganNvbk9iamVjdCA9IGpzb24ubG9hZChvcGVuKGZpbGVQYXRoLCAncicp
KQotICAgICAgICBhc3NlcnQoanNvbk9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzb25PYmplY3QK
LSAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycm9yOgotICAgICAgICByYWlzZSBFeGNlcHRpb24o
IkludmFsaWQganNvbiBmb3JtYXQgb3IgZW1wdHkganNvbiB3YXMgZm91bmQgaW4gJXMgLSBFcnJv
cjogJXMiICUgKGZpbGVQYXRoLCBlcnJvcikpCi0KLQogZGVmIGZvcmNlUmVtb3ZlKHBhdGgpOgog
ICAgIHRyeToKICAgICAgICAgc2h1dGlsLnJtdHJlZShwYXRoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255284</attachid>
            <date>2015-06-20 00:33:37 -0700</date>
            <delta_ts>2015-06-20 00:41:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146175-20150620003259.patch</filename>
            <type>text/plain</type>
            <size>22116</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1Nzg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2JmNjU4ZThjNTAyOGU4MDQyYzE5ZGQ2YzNmMjMwMDky
Y2IwODc0OS4uNDVhMzNjM2QzOWI3ZjIxMzhkNzg1MjBiYmNmNDE4YWJmNzZhZTc0ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDE1LTA2LTE5ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCB0aGUgYnVnIGludHJvZHVjZWQgYnkgcGF0Y2ggMTQ2MTI1IGFuZCBwb2xpc2ggdGhl
IGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDYxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXggdGhlIGJ1ZyBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDE0NjEyNSB3aGljaCBmYWlscyB0aGlzIHNj
cmlwdCBhbmQgcG9saXNoIHRoZSBjb2RlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVyX2ZhY3Rv
cnkucHk6CisgICAgICAgIChCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeSk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL19faW5pdF9f
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcnMuanNvbjogUmVtb3ZlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIv
YnJvd3Nlcl9kcml2ZXJfZmFjdG9yeS5weToKKyAgICAgICAgKEJyb3dzZXJEcml2ZXJGYWN0b3J5
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9k
cml2ZXIvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVycy5qc29uOiBSZW1vdmVkLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9v
c3hfc2FmYXJpX2RyaXZlci5weToKKyAgICAgICAgKE9TWFNhZmFyaURyaXZlci5wcmVwYXJlRW52
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZ2VuZXJpY19m
YWN0b3J5LnB5OgorICAgICAgICAoR2VuZXJpY0ZhY3RvcnkpOgorICAgICAgICAoR2VuZXJpY0Zh
Y3RvcnkuY3JlYXRlKToKKyAgICAgICAgKEdlbmVyaWNGYWN0b3J5LmFkZF9wcm9kdWN0KToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJp
dmVyL2h0dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5LnB5OgorICAgICAgICAoSFRUUFNlcnZlckRy
aXZlckZhY3RvcnkpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9odHRwX3NlcnZlcl9kcml2ZXIvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2
ZXJzLmpzb246IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL3V0aWxzLnB5OgorICAgICAgICAoTW9kdWxlTm90Rm91bmRFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChsb2FkTW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKGluaGVyaXRfZnJvbSk6
CisgICAgICAgIChsb2FkX3N1YmNsYXNzZXMpOgorCiAyMDE1LTA2LTE5ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhZnRlciByMTQ2MTI1Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNo
bWFya19idWlsZGVyL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL19faW5pdF9fLnB5CmluZGV4IGIzNzZiZjJiZWEy
YjZhZjVjZTc5ZDNlM2QzM2M3M2FkZWM0MzRmMTguLmI4MWEzODNkZjUyOTU5MTU0YmE0ZDUyZTRl
OTQyNWRhNTM0OTdmNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvX19pbml0X18u
cHkKQEAgLTExLDMgKzExLDE5IEBACiAjIGNvZGUgaW4gdGhpcyBmaWxlIHNvIHRoYXQgY2FsbGVy
cyBjYW4gb3B0LWluIGFzIHRoZXkgd2FudC4gIFRoaXMgYWxzbwogIyBhbGxvd3MgZGlmZmVyZW50
IGNhbGxlcnMgdG8gY2hvb3NlIGRpZmZlcmVudCBpbml0aWFsaXphdGlvbiBjb2RlLAogIyBhcyBu
ZWNlc3NhcnkuCitpbXBvcnQgb3MKK2ltcG9ydCBpbXAKKworZnJvbSB3ZWJraXRweS5iZW5jaG1h
cmtfcnVubmVyLnV0aWxzIGltcG9ydCBsb2FkX3N1YmNsYXNzZXMKK2Zyb20gYmVuY2htYXJrX2J1
aWxkZXJfZmFjdG9yeSBpbXBvcnQgQmVuY2htYXJrQnVpbGRlckZhY3RvcnkKKworCitkZWYgYmVu
Y2htYXJrX2J1aWxkZXJfbG9hZGVyKGJlbmNobWFya19idWlsZGVyX2NsYXNzKToKKyAgICBpZiBi
ZW5jaG1hcmtfYnVpbGRlcl9jbGFzcy5idWlsZGVyX25hbWU6CisgICAgICAgIEJlbmNobWFya0J1
aWxkZXJGYWN0b3J5LmFkZF9wcm9kdWN0KFtiZW5jaG1hcmtfYnVpbGRlcl9jbGFzcy5idWlsZGVy
X25hbWVdLCBiZW5jaG1hcmtfYnVpbGRlcl9jbGFzcykKKworCitsb2FkX3N1YmNsYXNzZXMoCisg
ICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSksCisg
ICAgYmFzZV9jbGFzc19uYW1lPSdHZW5lcmljQmVuY2htYXJrQnVpbGRlcicsCisgICAgbG9hZGVy
PWJlbmNobWFya19idWlsZGVyX2xvYWRlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRl
cl9mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jl
bmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVyX2ZhY3RvcnkucHkKaW5kZXggOTYwMWQz
ZjE1ZjFmMDM2NDMzOWFlMjRkNGY4ZWUxYWM4NjYyMjQ3My4uYzYyMDBiOWY3ZWVjYzBhYTk4NzU3
MDE4ZDMwOGY4ZjEwYjZiMjAzZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVyX2ZhY3Rv
cnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNo
bWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVyX2ZhY3RvcnkucHkKQEAgLTUsMTIgKzUsOCBA
QCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiAKIGZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5l
ci5nZW5lcmljX2ZhY3RvcnkgaW1wb3J0IEdlbmVyaWNGYWN0b3J5Ci1mcm9tIHdlYmtpdHB5LmJl
bmNobWFya19ydW5uZXIudXRpbHMgaW1wb3J0IGxvYWRKU09ORnJvbUZpbGUKLQotCi1idWlsZGVy
RmlsZU5hbWUgPSAnYmVuY2htYXJrX2J1aWxkZXJzLmpzb24nCiAKIAogY2xhc3MgQmVuY2htYXJr
QnVpbGRlckZhY3RvcnkoR2VuZXJpY0ZhY3RvcnkpOgogCi0gICAgcHJvZHVjdHMgPSBsb2FkSlNP
TkZyb21GaWxlKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCBidWlsZGVy
RmlsZU5hbWUpKQorICAgIHByb2R1Y3RzID0ge30KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVp
bGRlcnMuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5j
aG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcnMuanNvbgpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMWY0YmRmM2NmOGZhMDIyYmQ2MDU0YjFiOTZhMGE2NGU3ZDAzZDMxZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1
aWxkZXJzLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLXsKLSAgICAiR2VuZXJp
Y0JlbmNobWFya0J1aWxkZXIiOiB7Ci0gICAgICAgICJmaWxlUGF0aCI6ICJiZW5jaG1hcmtfYnVp
bGRlci5nZW5lcmljX2JlbmNobWFya19idWlsZGVyIiwKLSAgICAgICAgIm1vZHVsZU5hbWUiOiAi
R2VuZXJpY0JlbmNobWFya0J1aWxkZXIiCi0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2dlbmVyaWNf
YmVuY2htYXJrX2J1aWxkZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQppbmRl
eCAwZTBhYzM2OTE4MTg1ZDc3ZmIzZDM1YTk1Y2ZjYmIwMjFlMGMwODI3Li42OWU0ZTY4NTIxZjU0
YzU5YTUyZmM4M2NiMjE5MmYwNzAxZWQ5OGY2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1h
cmtfYnVpbGRlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQpAQCAtMTYs
NiArMTYsOCBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIGNsYXNzIEdl
bmVyaWNCZW5jaG1hcmtCdWlsZGVyKG9iamVjdCk6CiAKKyAgICBidWlsZGVyX25hbWUgPSAnR2Vu
ZXJpY0JlbmNobWFya0J1aWxkZXInCisKICAgICBkZWYgcHJlcGFyZShzZWxmLCBuYW1lLCBwbGFu
KToKICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAgICAgICBzZWxmLndlYlJvb3QgPSB0ZW1w
ZmlsZS5ta2R0ZW1wKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKaW5kZXggNDdlNzhiZDVhMjIyYTcw
ZGNjYTAwMjU5YmE0OWYyMmI2MThkZjgxZS4uMjVjYTAzNTY5NDZhYmQ0ZjQxYWUzMjJmZTlhMGFj
NjU3MTFhMmY2NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKQEAgLTE2LDcgKzE2LDcgQEAgZnJv
bSBiZW5jaG1hcmtfYnVpbGRlci5iZW5jaG1hcmtfYnVpbGRlcl9mYWN0b3J5IGltcG9ydCBCZW5j
aG1hcmtCdWlsZGVyRmFjdG9yeQogZnJvbSBiZW5jaG1hcmtfcmVzdWx0cyBpbXBvcnQgQmVuY2ht
YXJrUmVzdWx0cwogZnJvbSBicm93c2VyX2RyaXZlci5icm93c2VyX2RyaXZlcl9mYWN0b3J5IGlt
cG9ydCBCcm93c2VyRHJpdmVyRmFjdG9yeQogZnJvbSBodHRwX3NlcnZlcl9kcml2ZXIuaHR0cF9z
ZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5Ci1mcm9t
IHV0aWxzIGltcG9ydCBsb2FkTW9kdWxlLCBnZXRQYXRoRnJvbVByb2plY3RSb290Citmcm9tIHV0
aWxzIGltcG9ydCBnZXRQYXRoRnJvbVByb2plY3RSb290CiBmcm9tIHV0aWxzIGltcG9ydCB0aW1l
b3V0CiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVu
bmVyL2Jyb3dzZXJfZHJpdmVyL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL19faW5pdF9fLnB5CmluZGV4IGIzNzZiZjJi
ZWEyYjZhZjVjZTc5ZDNlM2QzM2M3M2FkZWM0MzRmMTguLmIxMWMyOGEyNjNjNTlhYmQwMjE1Y2Qw
NzhiY2Q1NTk4N2JlYjBlMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvX19pbml0X18ucHkK
QEAgLTExLDMgKzExLDE5IEBACiAjIGNvZGUgaW4gdGhpcyBmaWxlIHNvIHRoYXQgY2FsbGVycyBj
YW4gb3B0LWluIGFzIHRoZXkgd2FudC4gIFRoaXMgYWxzbwogIyBhbGxvd3MgZGlmZmVyZW50IGNh
bGxlcnMgdG8gY2hvb3NlIGRpZmZlcmVudCBpbml0aWFsaXphdGlvbiBjb2RlLAogIyBhcyBuZWNl
c3NhcnkuCitpbXBvcnQgb3MKK2ltcG9ydCBpbXAKKworZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtf
cnVubmVyLnV0aWxzIGltcG9ydCBsb2FkX3N1YmNsYXNzZXMKK2Zyb20gYnJvd3Nlcl9kcml2ZXJf
ZmFjdG9yeSBpbXBvcnQgQnJvd3NlckRyaXZlckZhY3RvcnkKKworCitkZWYgYnJvd3Nlcl9kcml2
ZXJfbG9hZGVyKGJyb3dzZXJfZHJpdmVyX2NsYXNzKToKKyAgICBpZiBicm93c2VyX2RyaXZlcl9j
bGFzcy5wbGF0Zm9ybSBhbmQgYnJvd3Nlcl9kcml2ZXJfY2xhc3MuYnJvd3Nlcl9uYW1lOgorICAg
ICAgICBCcm93c2VyRHJpdmVyRmFjdG9yeS5hZGRfcHJvZHVjdChbYnJvd3Nlcl9kcml2ZXJfY2xh
c3MucGxhdGZvcm0sIGJyb3dzZXJfZHJpdmVyX2NsYXNzLmJyb3dzZXJfbmFtZV0sIGJyb3dzZXJf
ZHJpdmVyX2NsYXNzKQorCisKK2xvYWRfc3ViY2xhc3NlcygKKyAgICBkaXJuYW1lPW9zLnBhdGgu
ZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKSwKKyAgICBiYXNlX2NsYXNzX25hbWU9
J0Jyb3dzZXJEcml2ZXInLAorICAgIGxvYWRlcj1icm93c2VyX2RyaXZlcl9sb2FkZXIpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9k
cml2ZXIvYnJvd3Nlcl9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXIucHkKaW5kZXggNDM3YThjYmNk
MzhhZTE0Njc0MWU5NGI3NzcxMDUzMGNjNjJlMGRjOC4uMGY1NmI4MzQ2ZDFjMDU5OTM0Y2NjMGFl
YzRhMGM4NDM3NjU3NWY4OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2Vy
X2RyaXZlci5weQpAQCAtNCw2ICs0LDggQEAgaW1wb3J0IGFiYwogCiAKIGNsYXNzIEJyb3dzZXJE
cml2ZXIob2JqZWN0KToKKyAgICBwbGF0Zm9ybSA9IE5vbmUKKyAgICBicm93c2VyX25hbWUgPSBO
b25lCiAKICAgICBAYWJjLmFic3RyYWN0bWV0aG9kCiAgICAgZGVmIHByZXBhcmVFbnYoc2VsZiwg
ZGV2aWNlSUQpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyX2ZhY3RvcnkucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9k
cml2ZXJfZmFjdG9yeS5weQppbmRleCBhMTQwZWMwN2YzOTkxYjdlZTVmNWJkNjg3ZmE4M2Y1OWRi
MzI5NzdlLi4xOTMxNzEyNGIzMGMwYWEwOTBhMmM1ZTJmOTRhZWZhZmNhN2E1MGI5IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2
ZXIvYnJvd3Nlcl9kcml2ZXJfZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJfZmFjdG9yeS5w
eQpAQCAtNSwxNSArNSwxMSBAQCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiAKIGZyb20gd2Via2l0
cHkuYmVuY2htYXJrX3J1bm5lci5nZW5lcmljX2ZhY3RvcnkgaW1wb3J0IEdlbmVyaWNGYWN0b3J5
Ci1mcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1wb3J0IGxvYWRKU09ORnJv
bUZpbGUKLQotCi1kcml2ZXJGaWxlTmFtZSA9ICdicm93c2VyX2RyaXZlcnMuanNvbicKIAogCiBj
bGFzcyBCcm93c2VyRHJpdmVyRmFjdG9yeShHZW5lcmljRmFjdG9yeSk6CiAKLSAgICBwcm9kdWN0
cyA9IGxvYWRKU09ORnJvbUZpbGUob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVf
XyksIGRyaXZlckZpbGVOYW1lKSkKKyAgICBwcm9kdWN0cyA9IHt9CiAKICAgICBAY2xhc3NtZXRo
b2QKICAgICBkZWYgYXZhaWxhYmxlX3BsYXRmb3JtcyhjbHMpOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJf
ZHJpdmVycy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jy
b3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVycy5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlMjdjYmZmYjI4M2ZlZmVmNDU2ZTQwNjU4ZjhmZTAxZjE2OGYzNTczLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2RyaXZlcnMuanNv
bgorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLXsKLSAgICAib3N4IjogewotICAgICAg
ICAiY2hyb21lIjogewotICAgICAgICAgICAgIm1vZHVsZU5hbWUiOiAiT1NYQ2hyb21lRHJpdmVy
IiwgCi0gICAgICAgICAgICAiZmlsZVBhdGgiOiAiYnJvd3Nlcl9kcml2ZXIub3N4X2Nocm9tZV9k
cml2ZXIiCi0gICAgICAgIH0sCi0gICAgICAgICJjaHJvbWUtY2FuYXJ5IjogewotICAgICAgICAg
ICAgIm1vZHVsZU5hbWUiOiAiT1NYQ2hyb21lQ2FuYXJ5RHJpdmVyIiwgCi0gICAgICAgICAgICAi
ZmlsZVBhdGgiOiAiYnJvd3Nlcl9kcml2ZXIub3N4X2Nocm9tZV9kcml2ZXIiCi0gICAgICAgIH0s
Ci0gICAgICAgICJmaXJlZm94IjogewotICAgICAgICAgICAgIm1vZHVsZU5hbWUiOiAiT1NYRmly
ZWZveERyaXZlciIsIAotICAgICAgICAgICAgImZpbGVQYXRoIjogImJyb3dzZXJfZHJpdmVyLm9z
eF9maXJlZm94X2RyaXZlciIKLSAgICAgICAgfSwKLSAgICAgICAgImZpcmVmb3gtbmlnaHRseSI6
IHsKLSAgICAgICAgICAgICJtb2R1bGVOYW1lIjogIk9TWEZpcmVmb3hOaWdodGx5RHJpdmVyIiwg
Ci0gICAgICAgICAgICAiZmlsZVBhdGgiOiAiYnJvd3Nlcl9kcml2ZXIub3N4X2ZpcmVmb3hfZHJp
dmVyIgotICAgICAgICB9LAotICAgICAgICAic2FmYXJpIjogewotICAgICAgICAgICAgIm1vZHVs
ZU5hbWUiOiAiT1NYU2FmYXJpRHJpdmVyIiwgCi0gICAgICAgICAgICAiZmlsZVBhdGgiOiAiYnJv
d3Nlcl9kcml2ZXIub3N4X3NhZmFyaV9kcml2ZXIiCi0gICAgICAgIH0KLSAgICB9IAotfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJf
ZHJpdmVyL29zeF9icm93c2VyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfYnJvd3Nlcl9kcml2ZXIucHkKaW5kZXgg
MmRjN2VhYWUxMzA1NmJlOTA0MWZhZmNkOGNmMjE5MWNiYmFmNjdlMy4uZmE3YWRlMTI4ZDJlNGMw
MmE2Yzg0MmQxNTgwN2E4ZTRiNjIyZTljNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93c2VyX2RyaXZlci5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9k
cml2ZXIvb3N4X2Jyb3dzZXJfZHJpdmVyLnB5CkBAIC0zLDkgKzMsNiBAQCBpbXBvcnQgbG9nZ2lu
ZwogaW1wb3J0IG9zCiBpbXBvcnQgc3VicHJvY2VzcwogCi1mcm9tIEFwcEtpdCBpbXBvcnQgTlNS
dW5uaW5nQXBwbGljYXRpb24KLWZyb20gQXBwS2l0IGltcG9ydCBOU1NjcmVlbgotZnJvbSBRdWFy
dHogaW1wb3J0IENHV2FycE1vdXNlQ3Vyc29yUG9zaXRpb24KIGZyb20gYnJvd3Nlcl9kcml2ZXIg
aW1wb3J0IEJyb3dzZXJEcml2ZXIKIAogCkBAIC0xNCw5ICsxMSwxMSBAQCBfbG9nID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIGNsYXNzIE9TWEJyb3dzZXJEcml2ZXIoQnJvd3NlckRy
aXZlcik6CiAgICAgYnVuZGxlSWRlbnRpZmllciA9IE5vbmUKKyAgICBwbGF0Zm9ybSA9ICdvc3gn
CiAKICAgICBkZWYgcHJlcGFyZUVudihzZWxmLCBkZXZpY2VJRCk6CiAgICAgICAgIHNlbGYuY2xv
c2VCcm93c2VycygpCisgICAgICAgIGZyb20gUXVhcnR6IGltcG9ydCBDR1dhcnBNb3VzZUN1cnNv
clBvc2l0aW9uCiAgICAgICAgIENHV2FycE1vdXNlQ3Vyc29yUG9zaXRpb24oKDEwLCAwKSkKIAog
ICAgIGRlZiBjbG9zZUJyb3dzZXJzKHNlbGYpOgpAQCAtMzcsNiArMzYsNyBAQCBjbGFzcyBPU1hC
cm93c2VyRHJpdmVyKEJyb3dzZXJEcml2ZXIpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiB0
ZXJtaW5hdGVQcm9jZXNzZXMoY2xzLCBidW5kbGVJZGVudGlmaWVyKToKICAgICAgICAgX2xvZy5p
bmZvKCdDbG9zaW5nIGFsbCB0ZXJtaW5hdGluZyBhbGwgcHJvY2Vzc2VzIHdpdGggdGhlIGJ1bmRs
ZSBpZGVudGlmaWVyICVzJyAlIGJ1bmRsZUlkZW50aWZpZXIpCisgICAgICAgIGZyb20gQXBwS2l0
IGltcG9ydCBOU1J1bm5pbmdBcHBsaWNhdGlvbgogICAgICAgICBwcm9jZXNzZXMgPSBOU1J1bm5p
bmdBcHBsaWNhdGlvbi5ydW5uaW5nQXBwbGljYXRpb25zV2l0aEJ1bmRsZUlkZW50aWZpZXJfKGJ1
bmRsZUlkZW50aWZpZXIpCiAgICAgICAgIGZvciBwcm9jZXNzIGluIHByb2Nlc3NlczoKICAgICAg
ICAgICAgIHByb2Nlc3MudGVybWluYXRlKCkKQEAgLTQ5LDQgKzQ5LDUgQEAgY2xhc3MgT1NYQnJv
d3NlckRyaXZlcihCcm93c2VyRHJpdmVyKToKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBz
Y3JlZW5TaXplKGNscyk6CisgICAgICAgIGZyb20gQXBwS2l0IGltcG9ydCBOU1NjcmVlbgogICAg
ICAgICByZXR1cm4gTlNTY3JlZW4ubWFpblNjcmVlbigpLmZyYW1lKCkuc2l6ZQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVy
L29zeF9jaHJvbWVfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9jaHJvbWVfZHJpdmVyLnB5CmluZGV4IDJkMTg4Mjdm
YWMxYzdiZDZmZGRmZmIzZTJhNDZjNWE4ZGIyYTViZDQuLjQzN2YxMGFjNmRiOTVlMDdiODBkODJl
M2UzZTJmODBlMjUyNmEyYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfY2hyb21lX2RyaXZlci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4
X2Nocm9tZV9kcml2ZXIucHkKQEAgLTEzLDYgKzEzLDcgQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKF9fbmFtZV9fKQogCiBjbGFzcyBPU1hDaHJvbWVEcml2ZXIoT1NYQnJvd3NlckRyaXZlcik6
CiAgICAgYnVuZGxlSWRlbnRpZmllciA9ICdjb20uZ29vZ2xlLkNocm9tZScKKyAgICBicm93c2Vy
X25hbWUgPSAnY2hyb21lJwogCiAgICAgZGVmIGxhdW5jaFVybChzZWxmLCB1cmwsIGJyb3dzZXJC
dWlsZFBhdGgpOgogICAgICAgICBzZWxmLmxhdW5jaFByb2Nlc3MoYnVpbGREaXI9YnJvd3NlckJ1
aWxkUGF0aCwgYXBwTmFtZT0nR29vZ2xlIENocm9tZS5hcHAnLCB1cmw9dXJsLCBhcmdzPVsnLS1h
cmdzJywgJy0taG9tZXBhZ2UnLCB1cmwsICctLXdpbmRvdy1zaXplPXt3aWR0aH0se2hlaWdodH0n
LmZvcm1hdCh3aWR0aD1pbnQoc2VsZi5zY3JlZW5TaXplKCkud2lkdGgpLCBoZWlnaHQ9aW50KHNl
bGYuc2NyZWVuU2l6ZSgpLmhlaWdodCkpXSkKQEAgLTIwLDYgKzIxLDcgQEAgY2xhc3MgT1NYQ2hy
b21lRHJpdmVyKE9TWEJyb3dzZXJEcml2ZXIpOgogCiBjbGFzcyBPU1hDaHJvbWVDYW5hcnlEcml2
ZXIoT1NYQnJvd3NlckRyaXZlcik6CiAgICAgYnVuZGxlSWRlbnRpZmllciA9ICdjb20uZ29vZ2xl
LkNocm9tZS5jYW5hcnknCisgICAgYnJvd3Nlcl9uYW1lID0gJ2Nocm9tZS1jYW5hcnknCiAKICAg
ICBkZWYgbGF1bmNoVXJsKHNlbGYsIHVybCwgYnJvd3NlckJ1aWxkUGF0aCk6CiAgICAgICAgIHNl
bGYubGF1bmNoUHJvY2VzcyhidWlsZERpcj1icm93c2VyQnVpbGRQYXRoLCBhcHBOYW1lPSdHb29n
bGUgQ2hyb21lIENhbmFyeS5hcHAnLCB1cmw9dXJsLCBhcmdzPVsnLS1hcmdzJywgJy0taG9tZXBh
Z2UnLCB1cmwsICctLXdpbmRvdy1zaXplPXt3aWR0aH0se2hlaWdodH0nLmZvcm1hdCh3aWR0aD1p
bnQoc2VsZi5zY3JlZW5TaXplKCkud2lkdGgpLCBoZWlnaHQ9aW50KHNlbGYuc2NyZWVuU2l6ZSgp
LmhlaWdodCkpXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfZmlyZWZveF9kcml2ZXIucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2ZpcmVmb3hf
ZHJpdmVyLnB5CmluZGV4IGFiNDljNzg5ZTMxNmMyNTkxM2Q5ZGQ2ZTg5YmY2ZTBiMDcyMzg3Y2Iu
LmQwNjFlZTRjYzAwM2Q3ZTI3ZGJlMjk3ZDA5NzIzOGZhMmNkODkzZDkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hf
ZmlyZWZveF9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9maXJlZm94X2RyaXZlci5weQpAQCAtMTMsNiArMTMs
NyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIGNsYXNzIE9TWEZpcmVm
b3hEcml2ZXIoT1NYQnJvd3NlckRyaXZlcik6CiAgICAgYnVuZGxlSWRlbnRpZmllciA9ICdvcmcu
bW96aWxsYS5maXJlZm94JworICAgIGJyb3dzZXJfbmFtZSA9ICdmaXJlZm94JwogCiAgICAgZGVm
IGxhdW5jaFVybChzZWxmLCB1cmwsIGJyb3dzZXJCdWlsZFBhdGgpOgogICAgICAgICBzZWxmLmxh
dW5jaFByb2Nlc3MoYnVpbGREaXI9YnJvd3NlckJ1aWxkUGF0aCwgYXBwTmFtZT0nRmlyZWZveC5h
cHAnLCB1cmw9dXJsLCBhcmdzPVt1cmwsICctLWFyZ3MnLCAnLXdpZHRoJywgc3RyKGludChzZWxm
LnNjcmVlblNpemUoKS53aWR0aCkpLCAnLWhlaWdodCcsIHN0cihpbnQoc2VsZi5zY3JlZW5TaXpl
KCkuaGVpZ2h0KSldKQpAQCAtMjAsNiArMjEsNyBAQCBjbGFzcyBPU1hGaXJlZm94RHJpdmVyKE9T
WEJyb3dzZXJEcml2ZXIpOgogCiBjbGFzcyBPU1hGaXJlZm94TmlnaHRseURyaXZlcihPU1hCcm93
c2VyRHJpdmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0gJ29yZy5tb3ppbGxhLm5pZ2h0bHkn
CisgICAgYnJvd3Nlcl9uYW1lID0gJ2ZpcmVmb3gtbmlnaHRseScKIAogICAgIGRlZiBsYXVuY2hV
cmwoc2VsZiwgdXJsLCBicm93c2VyQnVpbGRQYXRoKToKICAgICAgICAgc2VsZi5sYXVuY2hQcm9j
ZXNzKGJ1aWxkRGlyPWJyb3dzZXJCdWlsZFBhdGgsIGFwcE5hbWU9J0ZpcmVmb3hOaWdodGx5LmFw
cCcsIHVybD11cmwsIGFyZ3M9W3VybCwgJy0tYXJncycsICctd2lkdGgnLCBzdHIoaW50KHNlbGYu
c2NyZWVuU2l6ZSgpLndpZHRoKSksICctaGVpZ2h0Jywgc3RyKGludChzZWxmLnNjcmVlblNpemUo
KS5oZWlnaHQpKV0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3NhZmFyaV9kcml2ZXIucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3NhZmFyaV9k
cml2ZXIucHkKaW5kZXggNzQ0Mjg0NzhiMzYzMzc5Njc3ZTc5ODdiNTFkYjRkOWE1NDBhODIyZi4u
Y2E0NjFlYTllYTIwZTkxNjIyZGJhM2RjYTUzNTJhNDNjYjE3ZDI3ZiAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9z
YWZhcmlfZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZlci5weQpAQCAtMTUsNiArMTUsNyBA
QCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIGNsYXNzIE9TWFNhZmFyaURy
aXZlcihPU1hCcm93c2VyRHJpdmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0gJ2NvbS5hcHBs
ZS5TYWZhcmknCisgICAgYnJvd3Nlcl9uYW1lID0gJ3NhZmFyaScKIAogICAgIGRlZiBwcmVwYXJl
RW52KHNlbGYsIGRldmljZUlEKToKICAgICAgICAgc2VsZi5zYWZhcmlQcm9jZXNzID0gTm9uZQpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2dlbmVy
aWNfZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9n
ZW5lcmljX2ZhY3RvcnkucHkKaW5kZXggY2ViZWNiNDc4NDA0MjQ5ZDJmOGIxNzUzYmEyNjBlYjEx
M2M1NzhjYy4uYWY3Y2UyODY0Y2EzNmQyZTI2NWIxYmM3ZmI5ZGNmZDc3MWQ2YWJmMyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2dlbmVyaWNfZmFj
dG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZ2Vu
ZXJpY19mYWN0b3J5LnB5CkBAIC0zLDggKzMsNiBAQAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBv
cwogCi1mcm9tIHV0aWxzIGltcG9ydCBsb2FkTW9kdWxlLCBNb2R1bGVOb3RGb3VuZEVycm9yCi0K
IAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCkBAIC0yNiw2ICsyNCwxNSBA
QCBjbGFzcyBHZW5lcmljRmFjdG9yeShvYmplY3QpOgogICAgIEBjbGFzc21ldGhvZAogICAgIGRl
ZiBjcmVhdGUoY2xzLCBkZXNjcmlwdGlvbnMpOgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBy
ZXR1cm4gbG9hZE1vZHVsZShjbHMuaXRlcmF0ZUdldEl0ZW0oY2xzLnByb2R1Y3RzLCBkZXNjcmlw
dGlvbnMpKSgpCisgICAgICAgICAgICByZXR1cm4gY2xzLml0ZXJhdGVHZXRJdGVtKGNscy5wcm9k
dWN0cywgZGVzY3JpcHRpb25zKSgpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAg
ICAgICByYWlzZQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGFkZF9wcm9kdWN0KGNscywg
ZGVzY3JpcHRpb25zLCBwcm9kdWN0KToKKyAgICAgICAgaXRlbSA9IGNscy5wcm9kdWN0cworICAg
ICAgICBmb3IgZGVzY3JpcHRpb24gaW4gZGVzY3JpcHRpb25zWzotMV06CisgICAgICAgICAgICBp
ZiBkZXNjcmlwdGlvbiBub3QgaW4gaXRlbToKKyAgICAgICAgICAgICAgICBpdGVtW2Rlc2NyaXB0
aW9uXSA9IHt9CisgICAgICAgICAgICBpdGVtID0gaXRlbVtkZXNjcmlwdGlvbl0KKyAgICAgICAg
aXRlbVtkZXNjcmlwdGlvbnNbLTFdXSA9IHByb2R1Y3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvX19pbml0X18u
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJf
ZHJpdmVyL19faW5pdF9fLnB5CmluZGV4IGIzNzZiZjJiZWEyYjZhZjVjZTc5ZDNlM2QzM2M3M2Fk
ZWM0MzRmMTguLjc0MjFjMTZiYjFiZDhhZWZiZjk2OTgyYmNhMGU4ZjM1N2MwYmJkZjIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZl
cl9kcml2ZXIvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9fX2luaXRfXy5weQpAQCAtMTEsMyArMTEsMTkg
QEAKICMgY29kZSBpbiB0aGlzIGZpbGUgc28gdGhhdCBjYWxsZXJzIGNhbiBvcHQtaW4gYXMgdGhl
eSB3YW50LiAgVGhpcyBhbHNvCiAjIGFsbG93cyBkaWZmZXJlbnQgY2FsbGVycyB0byBjaG9vc2Ug
ZGlmZmVyZW50IGluaXRpYWxpemF0aW9uIGNvZGUsCiAjIGFzIG5lY2Vzc2FyeS4KK2ltcG9ydCBv
cworaW1wb3J0IGltcAorCitmcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1w
b3J0IGxvYWRfc3ViY2xhc3NlcworZnJvbSBodHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBv
cnQgSFRUUFNlcnZlckRyaXZlckZhY3RvcnkKKworCitkZWYgaHR0cF9zZXJ2ZXJfZHJpdmVyX2xv
YWRlcihodHRwX3NlcnZlcl9kcml2ZXJfY2xhc3MpOgorICAgIGlmIGh0dHBfc2VydmVyX2RyaXZl
cl9jbGFzcy5uYW1lOgorICAgICAgICBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeS5hZGRfcHJvZHVj
dChbaHR0cF9zZXJ2ZXJfZHJpdmVyX2NsYXNzLm5hbWVdLCBodHRwX3NlcnZlcl9kcml2ZXJfY2xh
c3MpCisKKworbG9hZF9zdWJjbGFzc2VzKAorICAgIGRpcm5hbWU9b3MucGF0aC5kaXJuYW1lKG9z
LnBhdGguYWJzcGF0aChfX2ZpbGVfXykpLAorICAgIGJhc2VfY2xhc3NfbmFtZT0nSFRUUFNlcnZl
ckRyaXZlcicsCisgICAgbG9hZGVyPWh0dHBfc2VydmVyX2RyaXZlcl9sb2FkZXIpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJf
ZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5Cmlu
ZGV4IDlkMjljNjM2Yjk2MGI0YzhlMjA5MjgyMmViNGEyOGJiNDdmNjVlZjQuLmFhNzAxOTBlYThl
MjY1ODJmMDkxYmE4MjBlZjlhYWU1MmY1OTAyNjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJf
ZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9o
dHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5CkBAIC00LDYgKzQsNyBAQCBm
cm9tIGFiYyBpbXBvcnQgYWJzdHJhY3RtZXRob2QKIAogCiBjbGFzcyBIVFRQU2VydmVyRHJpdmVy
KG9iamVjdCk6CisgICAgbmFtZSA9IE5vbmUKICAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYg
c2VydmUoc2VsZiwgd2ViUm9vdCk6CiAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9z
ZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5LnB5
CmluZGV4IGY4ZTg1MDY2NmVlZGI2NmI2MjkxM2ZkNDg4MDc5NzY5NmZjY2NiNTYuLjgxMGQ5NTQz
YjBjNTAwMTg2YTM5OGRlMGI1NDA5MWZjYjAyNmY2MmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2
ZXJfZHJpdmVyX2ZhY3RvcnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeS5w
eQpAQCAtNSwxMiArNSw3IEBAIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIAogZnJvbSB3ZWJraXRw
eS5iZW5jaG1hcmtfcnVubmVyLmdlbmVyaWNfZmFjdG9yeSBpbXBvcnQgR2VuZXJpY0ZhY3RvcnkK
LWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgbG9hZEpTT05Gcm9t
RmlsZQotCi0KLWRyaXZlckZpbGVOYW1lID0gJ2h0dHBfc2VydmVyX2RyaXZlcnMuanNvbicKIAog
CiBjbGFzcyBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeShHZW5lcmljRmFjdG9yeSk6Ci0KLSAgICBw
cm9kdWN0cyA9IGxvYWRKU09ORnJvbUZpbGUob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShf
X2ZpbGVfXyksIGRyaXZlckZpbGVOYW1lKSkKKyAgICBwcm9kdWN0cyA9IHt9CmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJp
dmVyL2h0dHBfc2VydmVyX2RyaXZlcnMuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVu
Y2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29u
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmIzYmNkY2I2OWQ0ZTU1MzFjNDk5ZWQ5
YTY3ZTgzZDJhNzcyOTg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZl
cl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29uCisrKyAvZGV2L251bGwKQEAgLTEsNiAr
MCwwIEBACi17Ci0gICJTaW1wbGVIVFRQU2VydmVyRHJpdmVyIjogewotICAgICJtb2R1bGVOYW1l
IjogIlNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIiLCAKLSAgICAiZmlsZVBhdGgiOiAiaHR0cF9zZXJ2
ZXJfZHJpdmVyLnNpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIiCi0gIH0KLX0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2
ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
YmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2Ry
aXZlci5weQppbmRleCA1MDU1MWU5ZGI5ODAwMzRlYTU4ZTcyZmMxZTNjODBlNzg4Y2E4MDkwLi42
NDk1NWRmOTE0NGQ1NDcwYzY0ODIwODlhYjc3ODA0ZDk5MzQ2YTlkIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3Np
bXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJp
dmVyLnB5CkBAIC0xOCw2ICsxOCw3IEBAIGNsYXNzIFNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIoSFRU
UFNlcnZlckRyaXZlcik6CiAKICAgICAiIiJUaGlzIGNsYXNzIGRlcGVuZHMgb24gdW5peCBlbnZp
cm9ubWVudCwgbmVlZCB0byBiZSBtb2RpZmllZCB0byBhY2hpZXZlIGNyb3NzcGxhdGZvcm0gY29t
cGFiaWxpdHkKICAgICAiIiIKKyAgICBuYW1lID0gJ1NpbXBsZUhUVFBTZXJ2ZXJEcml2ZXInCiAK
ICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYuc2VydmVyX3Byb2Nlc3MgPSBO
b25lCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
dXRpbHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvdXRpbHMu
cHkKaW5kZXggYmMzMjRlMjJjNzU5ZDgxYjA5YzgzNGNkNmY2MThhODcxN2RkZGVlYi4uMTBmZmI1
NTIyNWNjOGZkYWI2ZmEzYTlmZjc4YjljNzZmNzIzZGFkYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3V0aWxzLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGlscy5weQpAQCAtMSwyNSArMSwzMyBAQAog
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAKLWltcG9ydCBqc29uCitpbXBvcnQgaW1wCitpbXBvcnQg
aW5zcGVjdAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHNpZ25hbAogaW1wb3J0
IHNodXRpbAoraW1wb3J0IHN5cwogCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVf
XykKIAogCi1jbGFzcyBNb2R1bGVOb3RGb3VuZEVycm9yKEV4Y2VwdGlvbik6Ci0gICAgcGFzcwor
ZGVmIGluaGVyaXRfZnJvbShjaGlsZCwgcGFyZW50X25hbWUpOgorICAgIGlmIGluc3BlY3QuaXNj
bGFzcyhjaGlsZCk6CisgICAgICAgIGlmIHBhcmVudF9uYW1lIGluIFtjLl9fbmFtZV9fIGZvciBj
IGluIGluc3BlY3QuZ2V0bXJvKGNoaWxkKV06CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAg
IHJldHVybiBGYWxzZQogCiAKLWRlZiBsb2FkTW9kdWxlKG1vZHVsZURlc2MpOgotICAgIHRyeToK
LSAgICAgICAgcmV0ID0gZ2V0YXR0cihfX2ltcG9ydF9fKG1vZHVsZURlc2NbJ2ZpbGVQYXRoJ10s
IGdsb2JhbHMoKSwgbG9jYWxzKCksIG1vZHVsZURlc2NbJ21vZHVsZU5hbWUnXSwgLTEpLCBtb2R1
bGVEZXNjWydtb2R1bGVOYW1lJ10pCi0gICAgICAgIHJldHVybiByZXQKLSAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGVycm9yOgotICAgICAgICByYWlzZSBNb2R1bGVOb3RGb3VuZEVycm9yKCdFcnJv
ciBsb2FkaW5nIG1vZHVsZSAoJXMpIHdpdGggcGF0aCglcyk6IHslc30nICUgKG1vZHVsZURlc2Nb
J21vZHVsZU5hbWUnXSwgbW9kdWxlRGVzY1snZmlsZVBhdGgnXSwgZXJyb3IpKQorZGVmIGxvYWRf
c3ViY2xhc3NlcyhkaXJuYW1lLCBiYXNlX2NsYXNzX25hbWUsIGxvYWRlcik6CisgICAgZm9yIGZp
bGVuYW1lIGluIG9zLmxpc3RkaXIoZGlybmFtZSk6CisgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3
aXRoKCcucHknKSBhbmQgZmlsZW5hbWUgbm90IGluIFsnX19pbml0X18ucHknXToKKyAgICAgICAg
ICAgIG1vZHVsZV9uYW1lID0gZmlsZW5hbWVbOi0zXQorICAgICAgICAgICAgbW9kdWxlID0gaW1w
LmxvYWRfc291cmNlKG1vZHVsZV9uYW1lLCBvcy5wYXRoLmpvaW4oZGlybmFtZSwgZmlsZW5hbWUp
KQorICAgICAgICAgICAgZm9yIGl0ZW1fbmFtZSBpbiBkaXIobW9kdWxlKToKKyAgICAgICAgICAg
ICAgICBpdGVtID0gZ2V0YXR0cihtb2R1bGUsIGl0ZW1fbmFtZSkKKyAgICAgICAgICAgICAgICBp
ZiBpbmhlcml0X2Zyb20oaXRlbSwgYmFzZV9jbGFzc19uYW1lKToKKyAgICAgICAgICAgICAgICAg
ICAgbG9hZGVyKGl0ZW0pCiAKIAogZGVmIGdldFBhdGhGcm9tUHJvamVjdFJvb3QocmVsYXRpdmVQ
YXRoVG9Qcm9qZWN0Um9vdCk6CkBAIC0yOSwxNSArMzcsNiBAQCBkZWYgZ2V0UGF0aEZyb21Qcm9q
ZWN0Um9vdChyZWxhdGl2ZVBhdGhUb1Byb2plY3RSb290KToKICAgICByZXR1cm4gb3MucGF0aC5h
YnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmls
ZV9fKSksIHJlbGF0aXZlUGF0aFRvUHJvamVjdFJvb3QpKQogCiAKLWRlZiBsb2FkSlNPTkZyb21G
aWxlKGZpbGVQYXRoKToKLSAgICB0cnk6Ci0gICAgICAgIGpzb25PYmplY3QgPSBqc29uLmxvYWQo
b3BlbihmaWxlUGF0aCwgJ3InKSkKLSAgICAgICAgYXNzZXJ0KGpzb25PYmplY3QpCi0gICAgICAg
IHJldHVybiBqc29uT2JqZWN0Ci0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCJJbnZhbGlkIGpzb24gZm9ybWF0IG9yIGVtcHR5IGpzb24gd2Fz
IGZvdW5kIGluICVzIC0gRXJyb3I6ICVzIiAlIChmaWxlUGF0aCwgZXJyb3IpKQotCi0KIGRlZiBm
b3JjZVJlbW92ZShwYXRoKToKICAgICB0cnk6CiAgICAgICAgIHNodXRpbC5ybXRyZWUocGF0aCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255286</attachid>
            <date>2015-06-20 00:41:05 -0700</date>
            <delta_ts>2015-06-22 13:51:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146175-20150620004026.patch</filename>
            <type>text/plain</type>
            <size>22287</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1Nzg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2JmNjU4ZThjNTAyOGU4MDQyYzE5ZGQ2YzNmMjMwMDky
Y2IwODc0OS4uOWNjZDBhOWRmZDJhNzRkZDczNTk3NjE3ZmI2M2FiNmE2OWNlZWMxYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDE1LTA2LTE5ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCB0aGUgYnVnIGludHJvZHVjZWQgYnkgcGF0Y2ggMTQ2MTI1IGFuZCBwb2xpc2ggdGhl
IGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDYxNzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXggdGhlIGJ1ZyBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDE0NjEyNSB3aGljaCBmYWlscyB0aGlzIHNj
cmlwdCBhbmQgcG9saXNoIHRoZSBjb2RlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVyX2ZhY3Rv
cnkucHk6CisgICAgICAgIChCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeSk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL19faW5pdF9f
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcnMuanNvbjogUmVtb3ZlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIv
YnJvd3Nlcl9kcml2ZXJfZmFjdG9yeS5weToKKyAgICAgICAgKEJyb3dzZXJEcml2ZXJGYWN0b3J5
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9k
cml2ZXIvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVycy5qc29uOiBSZW1vdmVkLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9v
c3hfc2FmYXJpX2RyaXZlci5weToKKyAgICAgICAgKE9TWFNhZmFyaURyaXZlci5wcmVwYXJlRW52
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZ2VuZXJpY19m
YWN0b3J5LnB5OgorICAgICAgICAoR2VuZXJpY0ZhY3RvcnkpOgorICAgICAgICAoR2VuZXJpY0Zh
Y3RvcnkuY3JlYXRlKToKKyAgICAgICAgKEdlbmVyaWNGYWN0b3J5LmFkZF9wcm9kdWN0KToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJp
dmVyL2h0dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5LnB5OgorICAgICAgICAoSFRUUFNlcnZlckRy
aXZlckZhY3RvcnkpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9odHRwX3NlcnZlcl9kcml2ZXIvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2
ZXJzLmpzb246IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL3V0aWxzLnB5OgorICAgICAgICAoTW9kdWxlTm90Rm91bmRFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChsb2FkTW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKGlzX3N1YmNsYXNzKToK
KyAgICAgICAgKGxvYWRfc3ViY2xhc3Nlcyk6CisKIDIwMTUtMDYtMTkgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQgZml4IGFmdGVyIHIxNDYxMjUuCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2ht
YXJrX2J1aWxkZXIvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvX19pbml0X18ucHkKaW5kZXggYjM3NmJmMmJlYTJi
NmFmNWNlNzlkM2UzZDMzYzczYWRlYzQzNGYxOC4uYjgxYTM4M2RmNTI5NTkxNTRiYTRkNTJlNGU5
NDI1ZGE1MzQ5N2Y3NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9fX2luaXRfXy5w
eQpAQCAtMTEsMyArMTEsMTkgQEAKICMgY29kZSBpbiB0aGlzIGZpbGUgc28gdGhhdCBjYWxsZXJz
IGNhbiBvcHQtaW4gYXMgdGhleSB3YW50LiAgVGhpcyBhbHNvCiAjIGFsbG93cyBkaWZmZXJlbnQg
Y2FsbGVycyB0byBjaG9vc2UgZGlmZmVyZW50IGluaXRpYWxpemF0aW9uIGNvZGUsCiAjIGFzIG5l
Y2Vzc2FyeS4KK2ltcG9ydCBvcworaW1wb3J0IGltcAorCitmcm9tIHdlYmtpdHB5LmJlbmNobWFy
a19ydW5uZXIudXRpbHMgaW1wb3J0IGxvYWRfc3ViY2xhc3NlcworZnJvbSBiZW5jaG1hcmtfYnVp
bGRlcl9mYWN0b3J5IGltcG9ydCBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeQorCisKK2RlZiBiZW5j
aG1hcmtfYnVpbGRlcl9sb2FkZXIoYmVuY2htYXJrX2J1aWxkZXJfY2xhc3MpOgorICAgIGlmIGJl
bmNobWFya19idWlsZGVyX2NsYXNzLmJ1aWxkZXJfbmFtZToKKyAgICAgICAgQmVuY2htYXJrQnVp
bGRlckZhY3RvcnkuYWRkX3Byb2R1Y3QoW2JlbmNobWFya19idWlsZGVyX2NsYXNzLmJ1aWxkZXJf
bmFtZV0sIGJlbmNobWFya19idWlsZGVyX2NsYXNzKQorCisKK2xvYWRfc3ViY2xhc3NlcygKKyAg
ICBkaXJuYW1lPW9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKSwKKyAg
ICBiYXNlX2NsYXNzX25hbWU9J0dlbmVyaWNCZW5jaG1hcmtCdWlsZGVyJywKKyAgICBsb2FkZXI9
YmVuY2htYXJrX2J1aWxkZXJfbG9hZGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVy
X2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVu
Y2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeS5weQppbmRleCA5NjAxZDNm
MTVmMWYwMzY0MzM5YWUyNGQ0ZjhlZTFhYzg2NjIyNDczLi5jNjIwMGI5ZjdlZWNjMGFhOTg3NTcw
MThkMzA4ZjhmMTBiNmIyMDNmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9y
eS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2ht
YXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeS5weQpAQCAtNSwxMiArNSw4IEBA
IGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIAogZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVy
LmdlbmVyaWNfZmFjdG9yeSBpbXBvcnQgR2VuZXJpY0ZhY3RvcnkKLWZyb20gd2Via2l0cHkuYmVu
Y2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgbG9hZEpTT05Gcm9tRmlsZQotCi0KLWJ1aWxkZXJG
aWxlTmFtZSA9ICdiZW5jaG1hcmtfYnVpbGRlcnMuanNvbicKIAogCiBjbGFzcyBCZW5jaG1hcmtC
dWlsZGVyRmFjdG9yeShHZW5lcmljRmFjdG9yeSk6CiAKLSAgICBwcm9kdWN0cyA9IGxvYWRKU09O
RnJvbUZpbGUob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksIGJ1aWxkZXJG
aWxlTmFtZSkpCisgICAgcHJvZHVjdHMgPSB7fQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWls
ZGVycy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNo
bWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVycy5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxZjRiZGYzY2Y4ZmEwMjJiZDYwNTRiMWI5NmEwYTY0ZTdkMDNkMzFkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVp
bGRlcnMuanNvbgorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotewotICAgICJHZW5lcmlj
QmVuY2htYXJrQnVpbGRlciI6IHsKLSAgICAgICAgImZpbGVQYXRoIjogImJlbmNobWFya19idWls
ZGVyLmdlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIiLAotICAgICAgICAibW9kdWxlTmFtZSI6ICJH
ZW5lcmljQmVuY2htYXJrQnVpbGRlciIKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19i
ZW5jaG1hcmtfYnVpbGRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9iZW5jaG1hcmtfYnVpbGRlci9nZW5lcmljX2JlbmNobWFya19idWlsZGVyLnB5CmluZGV4
IDBlMGFjMzY5MTgxODVkNzdmYjNkMzVhOTVjZmNiYjAyMWUwYzA4MjcuLjY5ZTRlNjg1MjFmNTRj
NTlhNTJmYzgzY2IyMTkyZjA3MDFlZDk4ZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9nZW5lcmljX2JlbmNobWFy
a19idWlsZGVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9iZW5jaG1hcmtfYnVpbGRlci9nZW5lcmljX2JlbmNobWFya19idWlsZGVyLnB5CkBAIC0xNiw2
ICsxNiw4IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgR2Vu
ZXJpY0JlbmNobWFya0J1aWxkZXIob2JqZWN0KToKIAorICAgIGJ1aWxkZXJfbmFtZSA9ICdHZW5l
cmljQmVuY2htYXJrQnVpbGRlcicKKwogICAgIGRlZiBwcmVwYXJlKHNlbGYsIG5hbWUsIHBsYW4p
OgogICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgIHNlbGYud2ViUm9vdCA9IHRlbXBm
aWxlLm1rZHRlbXAoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weQppbmRleCA0N2U3OGJkNWEyMjJhNzBk
Y2NhMDAyNTliYTQ5ZjIyYjYxOGRmODFlLi4yNWNhMDM1Njk0NmFiZDRmNDFhZTMyMmZlOWEwYWM2
NTcxMWEyZjY2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvYmVuY2htYXJrX3J1bm5lci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weQpAQCAtMTYsNyArMTYsNyBAQCBmcm9t
IGJlbmNobWFya19idWlsZGVyLmJlbmNobWFya19idWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJlbmNo
bWFya0J1aWxkZXJGYWN0b3J5CiBmcm9tIGJlbmNobWFya19yZXN1bHRzIGltcG9ydCBCZW5jaG1h
cmtSZXN1bHRzCiBmcm9tIGJyb3dzZXJfZHJpdmVyLmJyb3dzZXJfZHJpdmVyX2ZhY3RvcnkgaW1w
b3J0IEJyb3dzZXJEcml2ZXJGYWN0b3J5CiBmcm9tIGh0dHBfc2VydmVyX2RyaXZlci5odHRwX3Nl
cnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBvcnQgSFRUUFNlcnZlckRyaXZlckZhY3RvcnkKLWZyb20g
dXRpbHMgaW1wb3J0IGxvYWRNb2R1bGUsIGdldFBhdGhGcm9tUHJvamVjdFJvb3QKK2Zyb20gdXRp
bHMgaW1wb3J0IGdldFBhdGhGcm9tUHJvamVjdFJvb3QKIGZyb20gdXRpbHMgaW1wb3J0IHRpbWVv
dXQKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYnJvd3Nlcl9kcml2ZXIvX19pbml0X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvX19pbml0X18ucHkKaW5kZXggYjM3NmJmMmJl
YTJiNmFmNWNlNzlkM2UzZDMzYzczYWRlYzQzNGYxOC4uYjExYzI4YTI2M2M1OWFiZDAyMTVjZDA3
OGJjZDU1OTg3YmViMGUwZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9fX2luaXRfXy5weQpA
QCAtMTEsMyArMTEsMTkgQEAKICMgY29kZSBpbiB0aGlzIGZpbGUgc28gdGhhdCBjYWxsZXJzIGNh
biBvcHQtaW4gYXMgdGhleSB3YW50LiAgVGhpcyBhbHNvCiAjIGFsbG93cyBkaWZmZXJlbnQgY2Fs
bGVycyB0byBjaG9vc2UgZGlmZmVyZW50IGluaXRpYWxpemF0aW9uIGNvZGUsCiAjIGFzIG5lY2Vz
c2FyeS4KK2ltcG9ydCBvcworaW1wb3J0IGltcAorCitmcm9tIHdlYmtpdHB5LmJlbmNobWFya19y
dW5uZXIudXRpbHMgaW1wb3J0IGxvYWRfc3ViY2xhc3NlcworZnJvbSBicm93c2VyX2RyaXZlcl9m
YWN0b3J5IGltcG9ydCBCcm93c2VyRHJpdmVyRmFjdG9yeQorCisKK2RlZiBicm93c2VyX2RyaXZl
cl9sb2FkZXIoYnJvd3Nlcl9kcml2ZXJfY2xhc3MpOgorICAgIGlmIGJyb3dzZXJfZHJpdmVyX2Ns
YXNzLnBsYXRmb3JtIGFuZCBicm93c2VyX2RyaXZlcl9jbGFzcy5icm93c2VyX25hbWU6CisgICAg
ICAgIEJyb3dzZXJEcml2ZXJGYWN0b3J5LmFkZF9wcm9kdWN0KFticm93c2VyX2RyaXZlcl9jbGFz
cy5wbGF0Zm9ybSwgYnJvd3Nlcl9kcml2ZXJfY2xhc3MuYnJvd3Nlcl9uYW1lXSwgYnJvd3Nlcl9k
cml2ZXJfY2xhc3MpCisKKworbG9hZF9zdWJjbGFzc2VzKAorICAgIGRpcm5hbWU9b3MucGF0aC5k
aXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpLAorICAgIGJhc2VfY2xhc3NfbmFtZT0n
QnJvd3NlckRyaXZlcicsCisgICAgbG9hZGVyPWJyb3dzZXJfZHJpdmVyX2xvYWRlcikKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2Ry
aXZlci9icm93c2VyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2RyaXZlci5weQppbmRleCA0MzdhOGNiY2Qz
OGFlMTQ2NzQxZTk0Yjc3NzEwNTMwY2M2MmUwZGM4Li4wZjU2YjgzNDZkMWMwNTk5MzRjY2MwYWVj
NGEwYzg0Mzc2NTc1Zjg5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXIucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJf
ZHJpdmVyLnB5CkBAIC00LDYgKzQsOCBAQCBpbXBvcnQgYWJjCiAKIAogY2xhc3MgQnJvd3NlckRy
aXZlcihvYmplY3QpOgorICAgIHBsYXRmb3JtID0gTm9uZQorICAgIGJyb3dzZXJfbmFtZSA9IE5v
bmUKIAogICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKICAgICBkZWYgcHJlcGFyZUVudihzZWxmLCBk
ZXZpY2VJRCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJfZmFjdG9yeS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2Ry
aXZlcl9mYWN0b3J5LnB5CmluZGV4IGExNDBlYzA3ZjM5OTFiN2VlNWY1YmQ2ODdmYTgzZjU5ZGIz
Mjk3N2UuLjE5MzE3MTI0YjMwYzBhYTA5MGEyYzVlMmY5NGFlZmFmY2E3YTUwYjkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZl
ci9icm93c2VyX2RyaXZlcl9mYWN0b3J5LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
YmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2RyaXZlcl9mYWN0b3J5LnB5
CkBAIC01LDE1ICs1LDExIEBAIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIAogZnJvbSB3ZWJraXRw
eS5iZW5jaG1hcmtfcnVubmVyLmdlbmVyaWNfZmFjdG9yeSBpbXBvcnQgR2VuZXJpY0ZhY3RvcnkK
LWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgbG9hZEpTT05Gcm9t
RmlsZQotCi0KLWRyaXZlckZpbGVOYW1lID0gJ2Jyb3dzZXJfZHJpdmVycy5qc29uJwogCiAKIGNs
YXNzIEJyb3dzZXJEcml2ZXJGYWN0b3J5KEdlbmVyaWNGYWN0b3J5KToKIAotICAgIHByb2R1Y3Rz
ID0gbG9hZEpTT05Gcm9tRmlsZShvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9f
KSwgZHJpdmVyRmlsZU5hbWUpKQorICAgIHByb2R1Y3RzID0ge30KIAogICAgIEBjbGFzc21ldGhv
ZAogICAgIGRlZiBhdmFpbGFibGVfcGxhdGZvcm1zKGNscyk6CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9k
cml2ZXJzLmpzb24gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJv
d3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJzLmpzb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGUyN2NiZmZiMjgzZmVmZWY0NTZlNDA2NThmOGZlMDFmMTY4ZjM1NzMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVycy5qc29u
CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotewotICAgICJvc3giOiB7Ci0gICAgICAg
ICJjaHJvbWUiOiB7Ci0gICAgICAgICAgICAibW9kdWxlTmFtZSI6ICJPU1hDaHJvbWVEcml2ZXIi
LCAKLSAgICAgICAgICAgICJmaWxlUGF0aCI6ICJicm93c2VyX2RyaXZlci5vc3hfY2hyb21lX2Ry
aXZlciIKLSAgICAgICAgfSwKLSAgICAgICAgImNocm9tZS1jYW5hcnkiOiB7Ci0gICAgICAgICAg
ICAibW9kdWxlTmFtZSI6ICJPU1hDaHJvbWVDYW5hcnlEcml2ZXIiLCAKLSAgICAgICAgICAgICJm
aWxlUGF0aCI6ICJicm93c2VyX2RyaXZlci5vc3hfY2hyb21lX2RyaXZlciIKLSAgICAgICAgfSwK
LSAgICAgICAgImZpcmVmb3giOiB7Ci0gICAgICAgICAgICAibW9kdWxlTmFtZSI6ICJPU1hGaXJl
Zm94RHJpdmVyIiwgCi0gICAgICAgICAgICAiZmlsZVBhdGgiOiAiYnJvd3Nlcl9kcml2ZXIub3N4
X2ZpcmVmb3hfZHJpdmVyIgotICAgICAgICB9LAotICAgICAgICAiZmlyZWZveC1uaWdodGx5Ijog
ewotICAgICAgICAgICAgIm1vZHVsZU5hbWUiOiAiT1NYRmlyZWZveE5pZ2h0bHlEcml2ZXIiLCAK
LSAgICAgICAgICAgICJmaWxlUGF0aCI6ICJicm93c2VyX2RyaXZlci5vc3hfZmlyZWZveF9kcml2
ZXIiCi0gICAgICAgIH0sCi0gICAgICAgICJzYWZhcmkiOiB7Ci0gICAgICAgICAgICAibW9kdWxl
TmFtZSI6ICJPU1hTYWZhcmlEcml2ZXIiLCAKLSAgICAgICAgICAgICJmaWxlUGF0aCI6ICJicm93
c2VyX2RyaXZlci5vc3hfc2FmYXJpX2RyaXZlciIKLSAgICAgICAgfQotICAgIH0gCi19CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9k
cml2ZXIvb3N4X2Jyb3dzZXJfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93c2VyX2RyaXZlci5weQppbmRleCAy
ZGM3ZWFhZTEzMDU2YmU5MDQxZmFmY2Q4Y2YyMTkxY2JiYWY2N2UzLi5mYTdhZGUxMjhkMmU0YzAy
YTZjODQyZDE1ODA3YThlNGI2MjJlOWM2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2Jyb3dzZXJfZHJpdmVyLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2Ry
aXZlci9vc3hfYnJvd3Nlcl9kcml2ZXIucHkKQEAgLTMsOSArMyw2IEBAIGltcG9ydCBsb2dnaW5n
CiBpbXBvcnQgb3MKIGltcG9ydCBzdWJwcm9jZXNzCiAKLWZyb20gQXBwS2l0IGltcG9ydCBOU1J1
bm5pbmdBcHBsaWNhdGlvbgotZnJvbSBBcHBLaXQgaW1wb3J0IE5TU2NyZWVuCi1mcm9tIFF1YXJ0
eiBpbXBvcnQgQ0dXYXJwTW91c2VDdXJzb3JQb3NpdGlvbgogZnJvbSBicm93c2VyX2RyaXZlciBp
bXBvcnQgQnJvd3NlckRyaXZlcgogCiAKQEAgLTE0LDkgKzExLDExIEBAIF9sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgT1NYQnJvd3NlckRyaXZlcihCcm93c2VyRHJp
dmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0gTm9uZQorICAgIHBsYXRmb3JtID0gJ29zeCcK
IAogICAgIGRlZiBwcmVwYXJlRW52KHNlbGYsIGRldmljZUlEKToKICAgICAgICAgc2VsZi5jbG9z
ZUJyb3dzZXJzKCkKKyAgICAgICAgZnJvbSBRdWFydHogaW1wb3J0IENHV2FycE1vdXNlQ3Vyc29y
UG9zaXRpb24KICAgICAgICAgQ0dXYXJwTW91c2VDdXJzb3JQb3NpdGlvbigoMTAsIDApKQogCiAg
ICAgZGVmIGNsb3NlQnJvd3NlcnMoc2VsZik6CkBAIC0zNyw2ICszNiw3IEBAIGNsYXNzIE9TWEJy
b3dzZXJEcml2ZXIoQnJvd3NlckRyaXZlcik6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHRl
cm1pbmF0ZVByb2Nlc3NlcyhjbHMsIGJ1bmRsZUlkZW50aWZpZXIpOgogICAgICAgICBfbG9nLmlu
Zm8oJ0Nsb3NpbmcgYWxsIHRlcm1pbmF0aW5nIGFsbCBwcm9jZXNzZXMgd2l0aCB0aGUgYnVuZGxl
IGlkZW50aWZpZXIgJXMnICUgYnVuZGxlSWRlbnRpZmllcikKKyAgICAgICAgZnJvbSBBcHBLaXQg
aW1wb3J0IE5TUnVubmluZ0FwcGxpY2F0aW9uCiAgICAgICAgIHByb2Nlc3NlcyA9IE5TUnVubmlu
Z0FwcGxpY2F0aW9uLnJ1bm5pbmdBcHBsaWNhdGlvbnNXaXRoQnVuZGxlSWRlbnRpZmllcl8oYnVu
ZGxlSWRlbnRpZmllcikKICAgICAgICAgZm9yIHByb2Nlc3MgaW4gcHJvY2Vzc2VzOgogICAgICAg
ICAgICAgcHJvY2Vzcy50ZXJtaW5hdGUoKQpAQCAtNDksNCArNDksNSBAQCBjbGFzcyBPU1hCcm93
c2VyRHJpdmVyKEJyb3dzZXJEcml2ZXIpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHNj
cmVlblNpemUoY2xzKToKKyAgICAgICAgZnJvbSBBcHBLaXQgaW1wb3J0IE5TU2NyZWVuCiAgICAg
ICAgIHJldHVybiBOU1NjcmVlbi5tYWluU2NyZWVuKCkuZnJhbWUoKS5zaXplCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIv
b3N4X2Nocm9tZV9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2Nocm9tZV9kcml2ZXIucHkKaW5kZXggMmQxODgyN2Zh
YzFjN2JkNmZkZGZmYjNlMmE0NmM1YThkYjJhNWJkNC4uNDM3ZjEwYWM2ZGI5NWUwN2I4MGQ4MmUz
ZTNlMmY4MGUyNTI2YTJiYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9jaHJvbWVfZHJpdmVyLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hf
Y2hyb21lX2RyaXZlci5weQpAQCAtMTMsNiArMTMsNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoX19uYW1lX18pCiAKIGNsYXNzIE9TWENocm9tZURyaXZlcihPU1hCcm93c2VyRHJpdmVyKToK
ICAgICBidW5kbGVJZGVudGlmaWVyID0gJ2NvbS5nb29nbGUuQ2hyb21lJworICAgIGJyb3dzZXJf
bmFtZSA9ICdjaHJvbWUnCiAKICAgICBkZWYgbGF1bmNoVXJsKHNlbGYsIHVybCwgYnJvd3NlckJ1
aWxkUGF0aCk6CiAgICAgICAgIHNlbGYubGF1bmNoUHJvY2VzcyhidWlsZERpcj1icm93c2VyQnVp
bGRQYXRoLCBhcHBOYW1lPSdHb29nbGUgQ2hyb21lLmFwcCcsIHVybD11cmwsIGFyZ3M9WyctLWFy
Z3MnLCAnLS1ob21lcGFnZScsIHVybCwgJy0td2luZG93LXNpemU9e3dpZHRofSx7aGVpZ2h0fScu
Zm9ybWF0KHdpZHRoPWludChzZWxmLnNjcmVlblNpemUoKS53aWR0aCksIGhlaWdodD1pbnQoc2Vs
Zi5zY3JlZW5TaXplKCkuaGVpZ2h0KSldKQpAQCAtMjAsNiArMjEsNyBAQCBjbGFzcyBPU1hDaHJv
bWVEcml2ZXIoT1NYQnJvd3NlckRyaXZlcik6CiAKIGNsYXNzIE9TWENocm9tZUNhbmFyeURyaXZl
cihPU1hCcm93c2VyRHJpdmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0gJ2NvbS5nb29nbGUu
Q2hyb21lLmNhbmFyeScKKyAgICBicm93c2VyX25hbWUgPSAnY2hyb21lLWNhbmFyeScKIAogICAg
IGRlZiBsYXVuY2hVcmwoc2VsZiwgdXJsLCBicm93c2VyQnVpbGRQYXRoKToKICAgICAgICAgc2Vs
Zi5sYXVuY2hQcm9jZXNzKGJ1aWxkRGlyPWJyb3dzZXJCdWlsZFBhdGgsIGFwcE5hbWU9J0dvb2ds
ZSBDaHJvbWUgQ2FuYXJ5LmFwcCcsIHVybD11cmwsIGFyZ3M9WyctLWFyZ3MnLCAnLS1ob21lcGFn
ZScsIHVybCwgJy0td2luZG93LXNpemU9e3dpZHRofSx7aGVpZ2h0fScuZm9ybWF0KHdpZHRoPWlu
dChzZWxmLnNjcmVlblNpemUoKS53aWR0aCksIGhlaWdodD1pbnQoc2VsZi5zY3JlZW5TaXplKCku
aGVpZ2h0KSldKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9maXJlZm94X2RyaXZlci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfZmlyZWZveF9k
cml2ZXIucHkKaW5kZXggYWI0OWM3ODllMzE2YzI1OTEzZDlkZDZlODliZjZlMGIwNzIzODdjYi4u
ZDA2MWVlNGNjMDAzZDdlMjdkYmUyOTdkMDk3MjM4ZmEyY2Q4OTNkOSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9m
aXJlZm94X2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2ZpcmVmb3hfZHJpdmVyLnB5CkBAIC0xMyw2ICsxMyw3
IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgT1NYRmlyZWZv
eERyaXZlcihPU1hCcm93c2VyRHJpdmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0gJ29yZy5t
b3ppbGxhLmZpcmVmb3gnCisgICAgYnJvd3Nlcl9uYW1lID0gJ2ZpcmVmb3gnCiAKICAgICBkZWYg
bGF1bmNoVXJsKHNlbGYsIHVybCwgYnJvd3NlckJ1aWxkUGF0aCk6CiAgICAgICAgIHNlbGYubGF1
bmNoUHJvY2VzcyhidWlsZERpcj1icm93c2VyQnVpbGRQYXRoLCBhcHBOYW1lPSdGaXJlZm94LmFw
cCcsIHVybD11cmwsIGFyZ3M9W3VybCwgJy0tYXJncycsICctd2lkdGgnLCBzdHIoaW50KHNlbGYu
c2NyZWVuU2l6ZSgpLndpZHRoKSksICctaGVpZ2h0Jywgc3RyKGludChzZWxmLnNjcmVlblNpemUo
KS5oZWlnaHQpKV0pCkBAIC0yMCw2ICsyMSw3IEBAIGNsYXNzIE9TWEZpcmVmb3hEcml2ZXIoT1NY
QnJvd3NlckRyaXZlcik6CiAKIGNsYXNzIE9TWEZpcmVmb3hOaWdodGx5RHJpdmVyKE9TWEJyb3dz
ZXJEcml2ZXIpOgogICAgIGJ1bmRsZUlkZW50aWZpZXIgPSAnb3JnLm1vemlsbGEubmlnaHRseScK
KyAgICBicm93c2VyX25hbWUgPSAnZmlyZWZveC1uaWdodGx5JwogCiAgICAgZGVmIGxhdW5jaFVy
bChzZWxmLCB1cmwsIGJyb3dzZXJCdWlsZFBhdGgpOgogICAgICAgICBzZWxmLmxhdW5jaFByb2Nl
c3MoYnVpbGREaXI9YnJvd3NlckJ1aWxkUGF0aCwgYXBwTmFtZT0nRmlyZWZveE5pZ2h0bHkuYXBw
JywgdXJsPXVybCwgYXJncz1bdXJsLCAnLS1hcmdzJywgJy13aWR0aCcsIHN0cihpbnQoc2VsZi5z
Y3JlZW5TaXplKCkud2lkdGgpKSwgJy1oZWlnaHQnLCBzdHIoaW50KHNlbGYuc2NyZWVuU2l6ZSgp
LmhlaWdodCkpXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZlci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2Ry
aXZlci5weQppbmRleCA3NDQyODQ3OGIzNjMzNzk2NzdlNzk4N2I1MWRiNGQ5YTU0MGE4MjJmLi5j
YTQ2MWVhOWVhMjBlOTE2MjJkYmEzZGNhNTM1MmE0M2NiMTdkMjdmIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3Nh
ZmFyaV9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVu
bmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9zYWZhcmlfZHJpdmVyLnB5CkBAIC0xNSw2ICsxNSw3IEBA
IF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgT1NYU2FmYXJpRHJp
dmVyKE9TWEJyb3dzZXJEcml2ZXIpOgogICAgIGJ1bmRsZUlkZW50aWZpZXIgPSAnY29tLmFwcGxl
LlNhZmFyaScKKyAgICBicm93c2VyX25hbWUgPSAnc2FmYXJpJwogCiAgICAgZGVmIHByZXBhcmVF
bnYoc2VsZiwgZGV2aWNlSUQpOgogICAgICAgICBzZWxmLnNhZmFyaVByb2Nlc3MgPSBOb25lCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZ2VuZXJp
Y19mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2dl
bmVyaWNfZmFjdG9yeS5weQppbmRleCBjZWJlY2I0Nzg0MDQyNDlkMmY4YjE3NTNiYTI2MGViMTEz
YzU3OGNjLi5hZjdjZTI4NjRjYTM2ZDJlMjY1YjFiYzdmYjlkY2ZkNzcxZDZhYmYzIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZ2VuZXJpY19mYWN0
b3J5LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9nZW5l
cmljX2ZhY3RvcnkucHkKQEAgLTMsOCArMyw2IEBACiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9z
CiAKLWZyb20gdXRpbHMgaW1wb3J0IGxvYWRNb2R1bGUsIE1vZHVsZU5vdEZvdW5kRXJyb3IKLQog
CiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKQEAgLTI2LDYgKzI0LDE1IEBA
IGNsYXNzIEdlbmVyaWNGYWN0b3J5KG9iamVjdCk6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVm
IGNyZWF0ZShjbHMsIGRlc2NyaXB0aW9ucyk6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHJl
dHVybiBsb2FkTW9kdWxlKGNscy5pdGVyYXRlR2V0SXRlbShjbHMucHJvZHVjdHMsIGRlc2NyaXB0
aW9ucykpKCkKKyAgICAgICAgICAgIHJldHVybiBjbHMuaXRlcmF0ZUdldEl0ZW0oY2xzLnByb2R1
Y3RzLCBkZXNjcmlwdGlvbnMpKCkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAg
ICAgIHJhaXNlCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgYWRkX3Byb2R1Y3QoY2xzLCBk
ZXNjcmlwdGlvbnMsIHByb2R1Y3QpOgorICAgICAgICBpdGVtID0gY2xzLnByb2R1Y3RzCisgICAg
ICAgIGZvciBkZXNjcmlwdGlvbiBpbiBkZXNjcmlwdGlvbnNbOi0xXToKKyAgICAgICAgICAgIGlm
IGRlc2NyaXB0aW9uIG5vdCBpbiBpdGVtOgorICAgICAgICAgICAgICAgIGl0ZW1bZGVzY3JpcHRp
b25dID0ge30KKyAgICAgICAgICAgIGl0ZW0gPSBpdGVtW2Rlc2NyaXB0aW9uXQorICAgICAgICBp
dGVtW2Rlc2NyaXB0aW9uc1stMV1dID0gcHJvZHVjdApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9fX2luaXRfXy5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9k
cml2ZXIvX19pbml0X18ucHkKaW5kZXggYjM3NmJmMmJlYTJiNmFmNWNlNzlkM2UzZDMzYzczYWRl
YzQzNGYxOC4uNzQyMWMxNmJiMWJkOGFlZmJmOTY5ODJiY2EwZThmMzU3YzBiYmRmMiAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVy
X2RyaXZlci9fX2luaXRfXy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL19faW5pdF9fLnB5CkBAIC0xMSwzICsxMSwxOSBA
QAogIyBjb2RlIGluIHRoaXMgZmlsZSBzbyB0aGF0IGNhbGxlcnMgY2FuIG9wdC1pbiBhcyB0aGV5
IHdhbnQuICBUaGlzIGFsc28KICMgYWxsb3dzIGRpZmZlcmVudCBjYWxsZXJzIHRvIGNob29zZSBk
aWZmZXJlbnQgaW5pdGlhbGl6YXRpb24gY29kZSwKICMgYXMgbmVjZXNzYXJ5LgoraW1wb3J0IG9z
CitpbXBvcnQgaW1wCisKK2Zyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBv
cnQgbG9hZF9zdWJjbGFzc2VzCitmcm9tIGh0dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5IGltcG9y
dCBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeQorCisKK2RlZiBodHRwX3NlcnZlcl9kcml2ZXJfbG9h
ZGVyKGh0dHBfc2VydmVyX2RyaXZlcl9jbGFzcyk6CisgICAgaWYgaHR0cF9zZXJ2ZXJfZHJpdmVy
X2NsYXNzLm5hbWU6CisgICAgICAgIEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5LmFkZF9wcm9kdWN0
KFtodHRwX3NlcnZlcl9kcml2ZXJfY2xhc3MubmFtZV0sIGh0dHBfc2VydmVyX2RyaXZlcl9jbGFz
cykKKworCitsb2FkX3N1YmNsYXNzZXMoCisgICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3Mu
cGF0aC5hYnNwYXRoKF9fZmlsZV9fKSksCisgICAgYmFzZV9jbGFzc19uYW1lPSdIVFRQU2VydmVy
RHJpdmVyJywKKyAgICBsb2FkZXI9aHR0cF9zZXJ2ZXJfZHJpdmVyX2xvYWRlcikKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9k
cml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkKaW5k
ZXggOWQyOWM2MzZiOTYwYjRjOGUyMDkyODIyZWI0YTI4YmI0N2Y2NWVmNC4uYWE3MDE5MGVhOGUy
NjU4MmYwOTFiYTgyMGVmOWFhZTUyZjU5MDI2NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9k
cml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0
dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkKQEAgLTQsNiArNCw3IEBAIGZy
b20gYWJjIGltcG9ydCBhYnN0cmFjdG1ldGhvZAogCiAKIGNsYXNzIEhUVFBTZXJ2ZXJEcml2ZXIo
b2JqZWN0KToKKyAgICBuYW1lID0gTm9uZQogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBz
ZXJ2ZShzZWxmLCB3ZWJSb290KToKICAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3Nl
cnZlcl9kcml2ZXJfZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkucHkK
aW5kZXggZjhlODUwNjY2ZWVkYjY2YjYyOTEzZmQ0ODgwNzk3Njk2ZmNjY2I1Ni4uODEwZDk1NDNi
MGM1MDAxODZhMzk4ZGUwYjU0MDkxZmNiMDI2ZjYyYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZl
cl9kcml2ZXJfZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5LnB5
CkBAIC01LDEyICs1LDcgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBvcwogCiBmcm9tIHdlYmtpdHB5
LmJlbmNobWFya19ydW5uZXIuZ2VuZXJpY19mYWN0b3J5IGltcG9ydCBHZW5lcmljRmFjdG9yeQot
ZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLnV0aWxzIGltcG9ydCBsb2FkSlNPTkZyb21G
aWxlCi0KLQotZHJpdmVyRmlsZU5hbWUgPSAnaHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29uJwogCiAK
IGNsYXNzIEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5KEdlbmVyaWNGYWN0b3J5KToKLQotICAgIHBy
b2R1Y3RzID0gbG9hZEpTT05Gcm9tRmlsZShvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9f
ZmlsZV9fKSwgZHJpdmVyRmlsZU5hbWUpKQorICAgIHByb2R1Y3RzID0ge30KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2
ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXJzLmpzb24K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiYjNiY2RjYjY5ZDRlNTUzMWM0OTllZDlh
NjdlODNkMmE3NzI5ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVy
X2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXJzLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSw2ICsw
LDAgQEAKLXsKLSAgIlNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIiOiB7Ci0gICAgIm1vZHVsZU5hbWUi
OiAiU2ltcGxlSFRUUFNlcnZlckRyaXZlciIsIAotICAgICJmaWxlUGF0aCI6ICJodHRwX3NlcnZl
cl9kcml2ZXIuc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlciIKLSAgfQotfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZl
ci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJp
dmVyLnB5CmluZGV4IDUwNTUxZTlkYjk4MDAzNGVhNThlNzJmYzFlM2M4MGU3ODhjYTgwOTAuLjY0
OTU1ZGY5MTQ0ZDU0NzBjNjQ4MjA4OWFiNzc4MDRkOTkzNDZhOWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2lt
cGxlX2h0dHBfc2VydmVyX2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2
ZXIucHkKQEAgLTE4LDYgKzE4LDcgQEAgY2xhc3MgU2ltcGxlSFRUUFNlcnZlckRyaXZlcihIVFRQ
U2VydmVyRHJpdmVyKToKIAogICAgICIiIlRoaXMgY2xhc3MgZGVwZW5kcyBvbiB1bml4IGVudmly
b25tZW50LCBuZWVkIHRvIGJlIG1vZGlmaWVkIHRvIGFjaGlldmUgY3Jvc3NwbGF0Zm9ybSBjb21w
YWJpbGl0eQogICAgICIiIgorICAgIG5hbWUgPSAnU2ltcGxlSFRUUFNlcnZlckRyaXZlcicKIAog
ICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgc2VsZi5zZXJ2ZXJfcHJvY2VzcyA9IE5v
bmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91
dGlscy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGlscy5w
eQppbmRleCBiYzMyNGUyMmM3NTlkODFiMDljODM0Y2Q2ZjYxOGE4NzE3ZGRkZWViLi5mZjkzYTlj
M2ZlYTE3ZGIzNzEyY2QzM2Q5NGU2NDMwMjk0YTIzNGQ0IDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvdXRpbHMucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3V0aWxzLnB5CkBAIC0xLDI1ICsxLDM1IEBACiAj
IS91c3IvYmluL2VudiBweXRob24KIAotaW1wb3J0IGpzb24KK2ltcG9ydCBpbXAKK2ltcG9ydCBp
bnNwZWN0CiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgc2lnbmFsCiBpbXBvcnQg
c2h1dGlsCitpbXBvcnQgc3lzCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQogCiAKLWNsYXNzIE1vZHVsZU5vdEZvdW5kRXJyb3IoRXhjZXB0aW9uKToKLSAgICBwYXNzCisj
IEJvcnJvdyBmb2xsb3dpbmcgY29kZSBmcm9tIHN0YWNrb3ZlcmZsb3cKKyMgTGluazogaHR0cDov
L3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTQ2MTM1Ni9pc3N1YmNsYXNzLXJldHVybnMt
Zmxhc2Utb24tdGhlLXNhbWUtY2xhc3MtaW1wb3J0ZWQtZnJvbS1kaWZmZXJlbnQtcGF0aHMKK2Rl
ZiBpc19zdWJjbGFzcyhjaGlsZCwgcGFyZW50X25hbWUpOgorICAgIGlmIGluc3BlY3QuaXNjbGFz
cyhjaGlsZCk6CisgICAgICAgIGlmIHBhcmVudF9uYW1lIGluIFtjbHMuX19uYW1lX18gZm9yIGNs
cyBpbiBpbnNwZWN0LmdldG1ybyhjaGlsZCldOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAg
ICByZXR1cm4gRmFsc2UKIAogCi1kZWYgbG9hZE1vZHVsZShtb2R1bGVEZXNjKToKLSAgICB0cnk6
Ci0gICAgICAgIHJldCA9IGdldGF0dHIoX19pbXBvcnRfXyhtb2R1bGVEZXNjWydmaWxlUGF0aCdd
LCBnbG9iYWxzKCksIGxvY2FscygpLCBtb2R1bGVEZXNjWydtb2R1bGVOYW1lJ10sIC0xKSwgbW9k
dWxlRGVzY1snbW9kdWxlTmFtZSddKQotICAgICAgICByZXR1cm4gcmV0Ci0gICAgZXhjZXB0IEV4
Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAgICAgcmFpc2UgTW9kdWxlTm90Rm91bmRFcnJvcignRXJy
b3IgbG9hZGluZyBtb2R1bGUgKCVzKSB3aXRoIHBhdGgoJXMpOiB7JXN9JyAlIChtb2R1bGVEZXNj
Wydtb2R1bGVOYW1lJ10sIG1vZHVsZURlc2NbJ2ZpbGVQYXRoJ10sIGVycm9yKSkKK2RlZiBsb2Fk
X3N1YmNsYXNzZXMoZGlybmFtZSwgYmFzZV9jbGFzc19uYW1lLCBsb2FkZXIpOgorICAgIGZvciBm
aWxlbmFtZSBpbiBvcy5saXN0ZGlyKGRpcm5hbWUpOgorICAgICAgICBpZiBmaWxlbmFtZS5lbmRz
d2l0aCgnLnB5JykgYW5kIGZpbGVuYW1lIG5vdCBpbiBbJ19faW5pdF9fLnB5J106CisgICAgICAg
ICAgICBtb2R1bGVfbmFtZSA9IGZpbGVuYW1lWzotM10KKyAgICAgICAgICAgIG1vZHVsZSA9IGlt
cC5sb2FkX3NvdXJjZShtb2R1bGVfbmFtZSwgb3MucGF0aC5qb2luKGRpcm5hbWUsIGZpbGVuYW1l
KSkKKyAgICAgICAgICAgIGZvciBpdGVtX25hbWUgaW4gZGlyKG1vZHVsZSk6CisgICAgICAgICAg
ICAgICAgaXRlbSA9IGdldGF0dHIobW9kdWxlLCBpdGVtX25hbWUpCisgICAgICAgICAgICAgICAg
aWYgaXNfc3ViY2xhc3MoaXRlbSwgYmFzZV9jbGFzc19uYW1lKToKKyAgICAgICAgICAgICAgICAg
ICAgbG9hZGVyKGl0ZW0pCiAKIAogZGVmIGdldFBhdGhGcm9tUHJvamVjdFJvb3QocmVsYXRpdmVQ
YXRoVG9Qcm9qZWN0Um9vdCk6CkBAIC0yOSwxNSArMzksNiBAQCBkZWYgZ2V0UGF0aEZyb21Qcm9q
ZWN0Um9vdChyZWxhdGl2ZVBhdGhUb1Byb2plY3RSb290KToKICAgICByZXR1cm4gb3MucGF0aC5h
YnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmls
ZV9fKSksIHJlbGF0aXZlUGF0aFRvUHJvamVjdFJvb3QpKQogCiAKLWRlZiBsb2FkSlNPTkZyb21G
aWxlKGZpbGVQYXRoKToKLSAgICB0cnk6Ci0gICAgICAgIGpzb25PYmplY3QgPSBqc29uLmxvYWQo
b3BlbihmaWxlUGF0aCwgJ3InKSkKLSAgICAgICAgYXNzZXJ0KGpzb25PYmplY3QpCi0gICAgICAg
IHJldHVybiBqc29uT2JqZWN0Ci0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCJJbnZhbGlkIGpzb24gZm9ybWF0IG9yIGVtcHR5IGpzb24gd2Fz
IGZvdW5kIGluICVzIC0gRXJyb3I6ICVzIiAlIChmaWxlUGF0aCwgZXJyb3IpKQotCi0KIGRlZiBm
b3JjZVJlbW92ZShwYXRoKToKICAgICB0cnk6CiAgICAgICAgIHNodXRpbC5ybXRyZWUocGF0aCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255366</attachid>
            <date>2015-06-22 13:51:26 -0700</date>
            <delta_ts>2015-06-22 18:03:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146175-20150622135050.patch</filename>
            <type>text/plain</type>
            <size>25896</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1Nzg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2JmNjU4ZThjNTAyOGU4MDQyYzE5ZGQ2YzNmMjMwMDky
Y2IwODc0OS4uOWEyMTIzNTZjZDAzN2NlNDliMDJmMGRhMzFjMzljYjJjNjNmYTYxMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3
IEBACisyMDE1LTA2LTIyICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgorCisgICAg
ICAgIEdldCByaWQgb2YgZmFjdG9yeSBqc29uIGZpbGVzIGluIGJlbmNobWFya19ydW5uZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjE3NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCByaWQgb2Yg
ZmFjdG9yeSBqc29uIGZpbGVzIGluIGJlbmNobWFya19ydW5uZXIgYW5kIHJlZmFjdG9yaW5nIHRo
ZSBjb2RlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jl
bmNobWFya19idWlsZGVyL19faW5pdF9fLnB5OgorICAgICAgICAoYmVuY2htYXJrX2J1aWxkZXJf
bG9hZGVyKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVu
Y2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeS5weToKKyAgICAgICAgKEJl
bmNobWFya0J1aWxkZXJGYWN0b3J5KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJzLmpzb246IFJl
bW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNo
bWFya19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHk6CisgICAgICAgIChHZW5l
cmljQmVuY2htYXJrQnVpbGRlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHk6CisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIu
X19pbml0X18pOgorICAgICAgICAoQmVuY2htYXJrUnVubmVyLmV4ZWN1dGUpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9fX2luaXRf
Xy5weToKKyAgICAgICAgKGJyb3dzZXJfZHJpdmVyX2xvYWRlcik6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVy
LnB5OgorICAgICAgICAoQnJvd3NlckRyaXZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyX2ZhY3Rvcnku
cHk6CisgICAgICAgIChCcm93c2VyRHJpdmVyRmFjdG9yeSk6CisgICAgICAgIChCcm93c2VyRHJp
dmVyRmFjdG9yeS5hdmFpbGFibGVfcGxhdGZvcm1zKToKKyAgICAgICAgKEJyb3dzZXJEcml2ZXJG
YWN0b3J5LmF2YWlsYWJsZV9icm93c2Vycyk6CisgICAgICAgIChCcm93c2VyRHJpdmVyRmFjdG9y
eS5hZGRfYnJvd3Nlcl9kcml2ZXIpOgorICAgICAgICAoQnJvd3NlckRyaXZlckZhY3RvcnkuZ2V0
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9k
cml2ZXIvYnJvd3Nlcl9kcml2ZXJzLmpzb246IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93c2VyX2RyaXZl
ci5weToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIpOgorICAgICAgICAoT1NYQnJvd3NlckRy
aXZlci5wcmVwYXJlRW52KToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIudGVybWluYXRlUHJv
Y2Vzc2VzKToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIuc2NyZWVuU2l6ZSk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9j
aHJvbWVfZHJpdmVyLnB5OgorICAgICAgICAoT1NYQ2hyb21lRHJpdmVyKToKKyAgICAgICAgKE9T
WENocm9tZUNhbmFyeURyaXZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9maXJlZm94X2RyaXZlci5weToKKyAgICAgICAg
KE9TWEZpcmVmb3hEcml2ZXIpOgorICAgICAgICAoT1NYRmlyZWZveE5pZ2h0bHlEcml2ZXIpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZl
ci9vc3hfc2FmYXJpX2RyaXZlci5weToKKyAgICAgICAgKE9TWFNhZmFyaURyaXZlcik6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2dlbmVyaWNfZmFjdG9yeS5w
eToKKyAgICAgICAgKEdlbmVyaWNGYWN0b3J5LmdldCk6CisgICAgICAgIChHZW5lcmljRmFjdG9y
eS5hZGQpOgorICAgICAgICAoR2VuZXJpY0ZhY3RvcnkuaXRlcmF0ZUdldEl0ZW0pOiBEZWxldGVk
LgorICAgICAgICAoR2VuZXJpY0ZhY3RvcnkuY3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL19faW5p
dF9fLnB5OgorICAgICAgICAoaHR0cF9zZXJ2ZXJfZHJpdmVyX2xvYWRlcik6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRw
X3NlcnZlcl9kcml2ZXIucHk6CisgICAgICAgIChIVFRQU2VydmVyRHJpdmVyKToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0
dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5LnB5OgorICAgICAgICAoSFRUUFNlcnZlckRyaXZlckZh
Y3RvcnkpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRw
X3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29uOiBSZW1vdmVkLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIv
c2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKFNpbXBsZUhUVFBTZXJ2ZXJE
cml2ZXIpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGls
cy5weToKKyAgICAgICAgKGlzX3N1YmNsYXNzKToKKyAgICAgICAgKGxvYWRfc3ViY2xhc3Nlcyk6
CisgICAgICAgIChNb2R1bGVOb3RGb3VuZEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKGxvYWRN
b2R1bGUpOiBEZWxldGVkLgorICAgICAgICAobG9hZEpTT05Gcm9tRmlsZSk6IERlbGV0ZWQuCisK
IDIwMTUtMDYtMTkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
QnVpbGQgZml4IGFmdGVyIHIxNDYxMjUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvX19pbml0X18ucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvX19p
bml0X18ucHkKaW5kZXggYjM3NmJmMmJlYTJiNmFmNWNlNzlkM2UzZDMzYzczYWRlYzQzNGYxOC4u
YTMyZjAwMmQxYjY4MmU2NmVhZmY5YTA1MGM3YjYyZjExMDhkMGQ2OCAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL19f
aW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9i
ZW5jaG1hcmtfYnVpbGRlci9fX2luaXRfXy5weQpAQCAtMTEsMyArMTEsMTggQEAKICMgY29kZSBp
biB0aGlzIGZpbGUgc28gdGhhdCBjYWxsZXJzIGNhbiBvcHQtaW4gYXMgdGhleSB3YW50LiAgVGhp
cyBhbHNvCiAjIGFsbG93cyBkaWZmZXJlbnQgY2FsbGVycyB0byBjaG9vc2UgZGlmZmVyZW50IGlu
aXRpYWxpemF0aW9uIGNvZGUsCiAjIGFzIG5lY2Vzc2FyeS4KK2ltcG9ydCBvcworCitmcm9tIHdl
YmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1wb3J0IGxvYWRfc3ViY2xhc3NlcworZnJv
bSBiZW5jaG1hcmtfYnVpbGRlcl9mYWN0b3J5IGltcG9ydCBCZW5jaG1hcmtCdWlsZGVyRmFjdG9y
eQorCisKK2RlZiBiZW5jaG1hcmtfYnVpbGRlcl9sb2FkZXIoYmVuY2htYXJrX2J1aWxkZXJfY2xh
c3MpOgorICAgIGlmIGJlbmNobWFya19idWlsZGVyX2NsYXNzLmJ1aWxkZXJfbmFtZToKKyAgICAg
ICAgQmVuY2htYXJrQnVpbGRlckZhY3RvcnkuYWRkKGJlbmNobWFya19idWlsZGVyX2NsYXNzLmJ1
aWxkZXJfbmFtZSwgYmVuY2htYXJrX2J1aWxkZXJfY2xhc3MpCisKKworbG9hZF9zdWJjbGFzc2Vz
KAorICAgIGRpcm5hbWU9b3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykp
LAorICAgIGJhc2VfY2xhc3NfbmFtZT0nR2VuZXJpY0JlbmNobWFya0J1aWxkZXInLAorICAgIGxv
YWRlcj1iZW5jaG1hcmtfYnVpbGRlcl9sb2FkZXIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1
aWxkZXJfZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcl9mYWN0b3J5LnB5CmluZGV4IDk2
MDFkM2YxNWYxZjAzNjQzMzlhZTI0ZDRmOGVlMWFjODY2MjI0NzMuLmM2MjAwYjlmN2VlY2MwYWE5
ODc1NzAxOGQzMDhmOGYxMGI2YjIwM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcl9m
YWN0b3J5LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9i
ZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcl9mYWN0b3J5LnB5CkBAIC01LDEyICs1
LDggQEAgaW1wb3J0IGpzb24KIGltcG9ydCBvcwogCiBmcm9tIHdlYmtpdHB5LmJlbmNobWFya19y
dW5uZXIuZ2VuZXJpY19mYWN0b3J5IGltcG9ydCBHZW5lcmljRmFjdG9yeQotZnJvbSB3ZWJraXRw
eS5iZW5jaG1hcmtfcnVubmVyLnV0aWxzIGltcG9ydCBsb2FkSlNPTkZyb21GaWxlCi0KLQotYnVp
bGRlckZpbGVOYW1lID0gJ2JlbmNobWFya19idWlsZGVycy5qc29uJwogCiAKIGNsYXNzIEJlbmNo
bWFya0J1aWxkZXJGYWN0b3J5KEdlbmVyaWNGYWN0b3J5KToKIAotICAgIHByb2R1Y3RzID0gbG9h
ZEpTT05Gcm9tRmlsZShvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgYnVp
bGRlckZpbGVOYW1lKSkKKyAgICBwcm9kdWN0cyA9IHt9CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJr
X2J1aWxkZXJzLmpzb24gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJzLmpzb24KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDFmNGJkZjNjZjhmYTAyMmJkNjA1NGIxYjk2YTBhNjRlN2QwM2QzMWQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFy
a19idWlsZGVycy5qc29uCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi17Ci0gICAgIkdl
bmVyaWNCZW5jaG1hcmtCdWlsZGVyIjogewotICAgICAgICAiZmlsZVBhdGgiOiAiYmVuY2htYXJr
X2J1aWxkZXIuZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlciIsCi0gICAgICAgICJtb2R1bGVOYW1l
IjogIkdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyIgotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9nZW5l
cmljX2JlbmNobWFya19idWlsZGVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHkK
aW5kZXggMGUwYWMzNjkxODE4NWQ3N2ZiM2QzNWE5NWNmY2JiMDIxZTBjMDgyNy4uNjllNGU2ODUy
MWY1NGM1OWE1MmZjODNjYjIxOTJmMDcwMWVkOThmNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2dlbmVyaWNfYmVu
Y2htYXJrX2J1aWxkZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2JlbmNobWFya19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHkKQEAg
LTE2LDYgKzE2LDggQEAgX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiBjbGFz
cyBHZW5lcmljQmVuY2htYXJrQnVpbGRlcihvYmplY3QpOgogCisgICAgYnVpbGRlcl9uYW1lID0g
J0dlbmVyaWNCZW5jaG1hcmtCdWlsZGVyJworCiAgICAgZGVmIHByZXBhcmUoc2VsZiwgbmFtZSwg
cGxhbik6CiAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAgICAgc2VsZi53ZWJSb290ID0g
dGVtcGZpbGUubWtkdGVtcCgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYmVuY2htYXJrX3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5CmluZGV4IDQ3ZTc4YmQ1YTIy
MmE3MGRjY2EwMDI1OWJhNDlmMjJiNjE4ZGY4MWUuLmQ0ZDhlOTI2MzUwMmUwYWMyMmVjNzZjNmJj
OGFhNjc1NjI2YjVhMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5CkBAIC0xNiw3ICsxNiw3IEBA
IGZyb20gYmVuY2htYXJrX2J1aWxkZXIuYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeSBpbXBvcnQg
QmVuY2htYXJrQnVpbGRlckZhY3RvcnkKIGZyb20gYmVuY2htYXJrX3Jlc3VsdHMgaW1wb3J0IEJl
bmNobWFya1Jlc3VsdHMKIGZyb20gYnJvd3Nlcl9kcml2ZXIuYnJvd3Nlcl9kcml2ZXJfZmFjdG9y
eSBpbXBvcnQgQnJvd3NlckRyaXZlckZhY3RvcnkKIGZyb20gaHR0cF9zZXJ2ZXJfZHJpdmVyLmh0
dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5IGltcG9ydCBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeQot
ZnJvbSB1dGlscyBpbXBvcnQgbG9hZE1vZHVsZSwgZ2V0UGF0aEZyb21Qcm9qZWN0Um9vdAorZnJv
bSB1dGlscyBpbXBvcnQgZ2V0UGF0aEZyb21Qcm9qZWN0Um9vdAogZnJvbSB1dGlscyBpbXBvcnQg
dGltZW91dAogCiAKQEAgLTM3LDggKzM3LDggQEAgY2xhc3MgQmVuY2htYXJrUnVubmVyKG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYucGxhblsnY291bnQnXSA9IGNvdW50T3ZlcnJp
ZGUKICAgICAgICAgICAgICAgICBpZiBodHRwU2VydmVyRHJpdmVyT3ZlcnJpZGU6CiAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucGxhblsnaHR0cF9zZXJ2ZXJfZHJpdmVyJ10gPSBodHRwU2VydmVy
RHJpdmVyT3ZlcnJpZGUKLSAgICAgICAgICAgICAgICBzZWxmLmJyb3dzZXJEcml2ZXIgPSBCcm93
c2VyRHJpdmVyRmFjdG9yeS5jcmVhdGUoW3BsYXRmb3JtLCBicm93c2VyXSkKLSAgICAgICAgICAg
ICAgICBzZWxmLmh0dHBTZXJ2ZXJEcml2ZXIgPSBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeS5jcmVh
dGUoW3NlbGYucGxhblsnaHR0cF9zZXJ2ZXJfZHJpdmVyJ11dKQorICAgICAgICAgICAgICAgIHNl
bGYuYnJvd3NlckRyaXZlciA9IEJyb3dzZXJEcml2ZXJGYWN0b3J5LmdldChwbGF0Zm9ybSwgYnJv
d3NlcikKKyAgICAgICAgICAgICAgICBzZWxmLmh0dHBTZXJ2ZXJEcml2ZXIgPSBIVFRQU2VydmVy
RHJpdmVyRmFjdG9yeS5nZXQoc2VsZi5wbGFuWydodHRwX3NlcnZlcl9kcml2ZXInXSkKICAgICAg
ICAgICAgICAgICBzZWxmLmh0dHBTZXJ2ZXJEcml2ZXIuc2V0RGV2aWNlSUQoZGV2aWNlSUQpCiAg
ICAgICAgICAgICAgICAgc2VsZi5idWlsZERpciA9IG9zLnBhdGguYWJzcGF0aChidWlsZERpcikg
aWYgYnVpbGREaXIgZWxzZSBOb25lCiAgICAgICAgICAgICAgICAgc2VsZi5vdXRwdXRGaWxlID0g
b3V0cHV0RmlsZQpAQCAtNjUsNyArNjUsNyBAQCBjbGFzcyBCZW5jaG1hcmtSdW5uZXIob2JqZWN0
KToKICAgICAgICAgX2xvZy5pbmZvKCdTdGFydCB0byBleGVjdXRlIHRoZSBwbGFuJykKICAgICAg
ICAgX2xvZy5pbmZvKCdTdGFydCBhIG5ldyBiZW5jaG1hcmsnKQogICAgICAgICByZXN1bHRzID0g
W10KLSAgICAgICAgc2VsZi5iZW5jaG1hcmtCdWlsZGVyID0gQmVuY2htYXJrQnVpbGRlckZhY3Rv
cnkuY3JlYXRlKFtzZWxmLnBsYW5bJ2JlbmNobWFya19idWlsZGVyJ11dKQorICAgICAgICBzZWxm
LmJlbmNobWFya0J1aWxkZXIgPSBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5nZXQoc2VsZi5wbGFu
WydiZW5jaG1hcmtfYnVpbGRlciddKQogCiAgICAgICAgIHdlYlJvb3QgPSBzZWxmLmJlbmNobWFy
a0J1aWxkZXIucHJlcGFyZShzZWxmLnBsYW5OYW1lLCBzZWxmLnBsYW4pCiAgICAgICAgIGZvciB4
IGluIHhyYW5nZShpbnQoc2VsZi5wbGFuWydjb3VudCddKSk6CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvX19pbml0X18u
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2
ZXIvX19pbml0X18ucHkKaW5kZXggYjM3NmJmMmJlYTJiNmFmNWNlNzlkM2UzZDMzYzczYWRlYzQz
NGYxOC4uMDEzYzI2NWU2NDA3MjI0ZTM5NjE1YmZjMmNlZTVjMmFjMWJmNzI3ZiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVy
L19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9icm93c2VyX2RyaXZlci9fX2luaXRfXy5weQpAQCAtMTEsMyArMTEsMTggQEAKICMgY29kZSBp
biB0aGlzIGZpbGUgc28gdGhhdCBjYWxsZXJzIGNhbiBvcHQtaW4gYXMgdGhleSB3YW50LiAgVGhp
cyBhbHNvCiAjIGFsbG93cyBkaWZmZXJlbnQgY2FsbGVycyB0byBjaG9vc2UgZGlmZmVyZW50IGlu
aXRpYWxpemF0aW9uIGNvZGUsCiAjIGFzIG5lY2Vzc2FyeS4KK2ltcG9ydCBvcworCitmcm9tIHdl
YmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1wb3J0IGxvYWRfc3ViY2xhc3NlcworZnJv
bSBicm93c2VyX2RyaXZlcl9mYWN0b3J5IGltcG9ydCBCcm93c2VyRHJpdmVyRmFjdG9yeQorCisK
K2RlZiBicm93c2VyX2RyaXZlcl9sb2FkZXIoYnJvd3Nlcl9kcml2ZXJfY2xhc3MpOgorICAgIGlm
IGJyb3dzZXJfZHJpdmVyX2NsYXNzLnBsYXRmb3JtIGFuZCBicm93c2VyX2RyaXZlcl9jbGFzcy5i
cm93c2VyX25hbWU6CisgICAgICAgIEJyb3dzZXJEcml2ZXJGYWN0b3J5LmFkZF9icm93c2VyX2Ry
aXZlcihicm93c2VyX2RyaXZlcl9jbGFzcy5wbGF0Zm9ybSwgYnJvd3Nlcl9kcml2ZXJfY2xhc3Mu
YnJvd3Nlcl9uYW1lLCBicm93c2VyX2RyaXZlcl9jbGFzcykKKworCitsb2FkX3N1YmNsYXNzZXMo
CisgICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSks
CisgICAgYmFzZV9jbGFzc19uYW1lPSdCcm93c2VyRHJpdmVyJywKKyAgICBsb2FkZXI9YnJvd3Nl
cl9kcml2ZXJfbG9hZGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyLnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJp
dmVyLnB5CmluZGV4IDQzN2E4Y2JjZDM4YWUxNDY3NDFlOTRiNzc3MTA1MzBjYzYyZTBkYzguLjBm
NTZiODM0NmQxYzA1OTkzNGNjYzBhZWM0YTBjODQzNzY1NzVmODkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2Vy
X2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXIucHkKQEAgLTQsNiArNCw4IEBAIGltcG9ydCBh
YmMKIAogCiBjbGFzcyBCcm93c2VyRHJpdmVyKG9iamVjdCk6CisgICAgcGxhdGZvcm0gPSBOb25l
CisgICAgYnJvd3Nlcl9uYW1lID0gTm9uZQogCiAgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAogICAg
IGRlZiBwcmVwYXJlRW52KHNlbGYsIGRldmljZUlEKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2RyaXZl
cl9mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jy
b3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyX2ZhY3RvcnkucHkKaW5kZXggYTE0MGVjMDdmMzk5
MWI3ZWU1ZjViZDY4N2ZhODNmNTlkYjMyOTc3ZS4uZTQ3YmViMzg4MmMzYmM1OWRmOWM0YmVkMGMz
ODkxNjNjMzU4YmRhZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyX2ZhY3RvcnkucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jy
b3dzZXJfZHJpdmVyX2ZhY3RvcnkucHkKQEAgLTQsMjUgKzQsMzAgQEAgaW1wb3J0IGxvZ2dpbmcK
IGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIAotZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVy
LmdlbmVyaWNfZmFjdG9yeSBpbXBvcnQgR2VuZXJpY0ZhY3RvcnkKLWZyb20gd2Via2l0cHkuYmVu
Y2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQgbG9hZEpTT05Gcm9tRmlsZQogCitjbGFzcyBCcm93
c2VyRHJpdmVyRmFjdG9yeSgpOgogCi1kcml2ZXJGaWxlTmFtZSA9ICdicm93c2VyX2RyaXZlcnMu
anNvbicKKyAgICBicm93c2VyX2RyaXZlcnMgPSB7fQorICAgIHBsYXRmb3JtcyA9IHNldCgpCisg
ICAgYnJvd3NlcnMgPSBzZXQoKQogCiAKLWNsYXNzIEJyb3dzZXJEcml2ZXJGYWN0b3J5KEdlbmVy
aWNGYWN0b3J5KToKLQotICAgIHByb2R1Y3RzID0gbG9hZEpTT05Gcm9tRmlsZShvcy5wYXRoLmpv
aW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgZHJpdmVyRmlsZU5hbWUpKQotCiAgICAgQGNs
YXNzbWV0aG9kCiAgICAgZGVmIGF2YWlsYWJsZV9wbGF0Zm9ybXMoY2xzKToKLSAgICAgICAgcmV0
dXJuIGNscy5wcm9kdWN0cy5rZXlzKCkKKyAgICAgICAgcmV0dXJuIGxpc3QoY2xzLnBsYXRmb3Jt
cykKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBhdmFpbGFibGVfYnJvd3NlcnMoY2xzKToK
LSAgICAgICAgYnJvd3NlcnMgPSBbXQotICAgICAgICBmb3IgcGxhdGZvcm0gaW4gY2xzLnByb2R1
Y3RzLnZhbHVlcygpOgotICAgICAgICAgICAgZm9yIGJyb3dzZXIgaW4gcGxhdGZvcm06Ci0gICAg
ICAgICAgICAgICAgYnJvd3NlcnMuYXBwZW5kKGJyb3dzZXIpCi0gICAgICAgIHJldHVybiBicm93
c2VycworICAgICAgICByZXR1cm4gbGlzdChjbHMuYnJvd3NlcnMpCisKKyAgICBAY2xhc3NtZXRo
b2QKKyAgICBkZWYgYWRkX2Jyb3dzZXJfZHJpdmVyKGNscywgcGxhdGZvcm0sIGJyb3dzZXJfbmFt
ZSwgYnJvd3Nlcl9kcml2ZXJfY2xhc3MpOgorICAgICAgICBjbHMucGxhdGZvcm1zLmFkZChwbGF0
Zm9ybSkKKyAgICAgICAgY2xzLmJyb3dzZXJzLmFkZChicm93c2VyX25hbWUpCisgICAgICAgIGlm
IHBsYXRmb3JtIG5vdCBpbiBjbHMuYnJvd3Nlcl9kcml2ZXJzOgorICAgICAgICAgICAgY2xzLmJy
b3dzZXJfZHJpdmVyc1twbGF0Zm9ybV0gPSB7fQorICAgICAgICBjbHMuYnJvd3Nlcl9kcml2ZXJz
W3BsYXRmb3JtXVticm93c2VyX25hbWVdID0gYnJvd3Nlcl9kcml2ZXJfY2xhc3MKKworICAgIEBj
bGFzc21ldGhvZAorICAgIGRlZiBnZXQoY2xzLCBwbGF0Zm9ybSwgYnJvd3Nlcl9uYW1lKToKKyAg
ICAgICAgcmV0dXJuIGNscy5icm93c2VyX2RyaXZlcnNbcGxhdGZvcm1dW2Jyb3dzZXJfbmFtZV0o
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jy
b3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVycy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVycy5qc29uCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjdjYmZmYjI4M2ZlZmVmNDU2ZTQwNjU4Zjhm
ZTAxZjE2OGYzNTczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZl
ci9icm93c2VyX2RyaXZlcnMuanNvbgorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLXsK
LSAgICAib3N4IjogewotICAgICAgICAiY2hyb21lIjogewotICAgICAgICAgICAgIm1vZHVsZU5h
bWUiOiAiT1NYQ2hyb21lRHJpdmVyIiwgCi0gICAgICAgICAgICAiZmlsZVBhdGgiOiAiYnJvd3Nl
cl9kcml2ZXIub3N4X2Nocm9tZV9kcml2ZXIiCi0gICAgICAgIH0sCi0gICAgICAgICJjaHJvbWUt
Y2FuYXJ5IjogewotICAgICAgICAgICAgIm1vZHVsZU5hbWUiOiAiT1NYQ2hyb21lQ2FuYXJ5RHJp
dmVyIiwgCi0gICAgICAgICAgICAiZmlsZVBhdGgiOiAiYnJvd3Nlcl9kcml2ZXIub3N4X2Nocm9t
ZV9kcml2ZXIiCi0gICAgICAgIH0sCi0gICAgICAgICJmaXJlZm94IjogewotICAgICAgICAgICAg
Im1vZHVsZU5hbWUiOiAiT1NYRmlyZWZveERyaXZlciIsIAotICAgICAgICAgICAgImZpbGVQYXRo
IjogImJyb3dzZXJfZHJpdmVyLm9zeF9maXJlZm94X2RyaXZlciIKLSAgICAgICAgfSwKLSAgICAg
ICAgImZpcmVmb3gtbmlnaHRseSI6IHsKLSAgICAgICAgICAgICJtb2R1bGVOYW1lIjogIk9TWEZp
cmVmb3hOaWdodGx5RHJpdmVyIiwgCi0gICAgICAgICAgICAiZmlsZVBhdGgiOiAiYnJvd3Nlcl9k
cml2ZXIub3N4X2ZpcmVmb3hfZHJpdmVyIgotICAgICAgICB9LAotICAgICAgICAic2FmYXJpIjog
ewotICAgICAgICAgICAgIm1vZHVsZU5hbWUiOiAiT1NYU2FmYXJpRHJpdmVyIiwgCi0gICAgICAg
ICAgICAiZmlsZVBhdGgiOiAiYnJvd3Nlcl9kcml2ZXIub3N4X3NhZmFyaV9kcml2ZXIiCi0gICAg
ICAgIH0KLSAgICB9IAotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93c2VyX2RyaXZlci5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfYnJv
d3Nlcl9kcml2ZXIucHkKaW5kZXggMmRjN2VhYWUxMzA1NmJlOTA0MWZhZmNkOGNmMjE5MWNiYmFm
NjdlMy4uZmE3YWRlMTI4ZDJlNGMwMmE2Yzg0MmQxNTgwN2E4ZTRiNjIyZTljNiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVy
L29zeF9icm93c2VyX2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2Jyb3dzZXJfZHJpdmVyLnB5CkBAIC0zLDkg
KzMsNiBAQCBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgc3VicHJvY2VzcwogCi1m
cm9tIEFwcEtpdCBpbXBvcnQgTlNSdW5uaW5nQXBwbGljYXRpb24KLWZyb20gQXBwS2l0IGltcG9y
dCBOU1NjcmVlbgotZnJvbSBRdWFydHogaW1wb3J0IENHV2FycE1vdXNlQ3Vyc29yUG9zaXRpb24K
IGZyb20gYnJvd3Nlcl9kcml2ZXIgaW1wb3J0IEJyb3dzZXJEcml2ZXIKIAogCkBAIC0xNCw5ICsx
MSwxMSBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIGNsYXNzIE9TWEJy
b3dzZXJEcml2ZXIoQnJvd3NlckRyaXZlcik6CiAgICAgYnVuZGxlSWRlbnRpZmllciA9IE5vbmUK
KyAgICBwbGF0Zm9ybSA9ICdvc3gnCiAKICAgICBkZWYgcHJlcGFyZUVudihzZWxmLCBkZXZpY2VJ
RCk6CiAgICAgICAgIHNlbGYuY2xvc2VCcm93c2VycygpCisgICAgICAgIGZyb20gUXVhcnR6IGlt
cG9ydCBDR1dhcnBNb3VzZUN1cnNvclBvc2l0aW9uCiAgICAgICAgIENHV2FycE1vdXNlQ3Vyc29y
UG9zaXRpb24oKDEwLCAwKSkKIAogICAgIGRlZiBjbG9zZUJyb3dzZXJzKHNlbGYpOgpAQCAtMzcs
NiArMzYsNyBAQCBjbGFzcyBPU1hCcm93c2VyRHJpdmVyKEJyb3dzZXJEcml2ZXIpOgogICAgIEBj
bGFzc21ldGhvZAogICAgIGRlZiB0ZXJtaW5hdGVQcm9jZXNzZXMoY2xzLCBidW5kbGVJZGVudGlm
aWVyKToKICAgICAgICAgX2xvZy5pbmZvKCdDbG9zaW5nIGFsbCB0ZXJtaW5hdGluZyBhbGwgcHJv
Y2Vzc2VzIHdpdGggdGhlIGJ1bmRsZSBpZGVudGlmaWVyICVzJyAlIGJ1bmRsZUlkZW50aWZpZXIp
CisgICAgICAgIGZyb20gQXBwS2l0IGltcG9ydCBOU1J1bm5pbmdBcHBsaWNhdGlvbgogICAgICAg
ICBwcm9jZXNzZXMgPSBOU1J1bm5pbmdBcHBsaWNhdGlvbi5ydW5uaW5nQXBwbGljYXRpb25zV2l0
aEJ1bmRsZUlkZW50aWZpZXJfKGJ1bmRsZUlkZW50aWZpZXIpCiAgICAgICAgIGZvciBwcm9jZXNz
IGluIHByb2Nlc3NlczoKICAgICAgICAgICAgIHByb2Nlc3MudGVybWluYXRlKCkKQEAgLTQ5LDQg
KzQ5LDUgQEAgY2xhc3MgT1NYQnJvd3NlckRyaXZlcihCcm93c2VyRHJpdmVyKToKIAogICAgIEBj
bGFzc21ldGhvZAogICAgIGRlZiBzY3JlZW5TaXplKGNscyk6CisgICAgICAgIGZyb20gQXBwS2l0
IGltcG9ydCBOU1NjcmVlbgogICAgICAgICByZXR1cm4gTlNTY3JlZW4ubWFpblNjcmVlbigpLmZy
YW1lKCkuc2l6ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9jaHJvbWVfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9jaHJvbWVfZHJp
dmVyLnB5CmluZGV4IDJkMTg4MjdmYWMxYzdiZDZmZGRmZmIzZTJhNDZjNWE4ZGIyYTViZDQuLjQz
N2YxMGFjNmRiOTVlMDdiODBkODJlM2UzZTJmODBlMjUyNmEyYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfY2hy
b21lX2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2Nocm9tZV9kcml2ZXIucHkKQEAgLTEzLDYgKzEzLDcgQEAg
X2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiBjbGFzcyBPU1hDaHJvbWVEcml2
ZXIoT1NYQnJvd3NlckRyaXZlcik6CiAgICAgYnVuZGxlSWRlbnRpZmllciA9ICdjb20uZ29vZ2xl
LkNocm9tZScKKyAgICBicm93c2VyX25hbWUgPSAnY2hyb21lJwogCiAgICAgZGVmIGxhdW5jaFVy
bChzZWxmLCB1cmwsIGJyb3dzZXJCdWlsZFBhdGgpOgogICAgICAgICBzZWxmLmxhdW5jaFByb2Nl
c3MoYnVpbGREaXI9YnJvd3NlckJ1aWxkUGF0aCwgYXBwTmFtZT0nR29vZ2xlIENocm9tZS5hcHAn
LCB1cmw9dXJsLCBhcmdzPVsnLS1hcmdzJywgJy0taG9tZXBhZ2UnLCB1cmwsICctLXdpbmRvdy1z
aXplPXt3aWR0aH0se2hlaWdodH0nLmZvcm1hdCh3aWR0aD1pbnQoc2VsZi5zY3JlZW5TaXplKCku
d2lkdGgpLCBoZWlnaHQ9aW50KHNlbGYuc2NyZWVuU2l6ZSgpLmhlaWdodCkpXSkKQEAgLTIwLDYg
KzIxLDcgQEAgY2xhc3MgT1NYQ2hyb21lRHJpdmVyKE9TWEJyb3dzZXJEcml2ZXIpOgogCiBjbGFz
cyBPU1hDaHJvbWVDYW5hcnlEcml2ZXIoT1NYQnJvd3NlckRyaXZlcik6CiAgICAgYnVuZGxlSWRl
bnRpZmllciA9ICdjb20uZ29vZ2xlLkNocm9tZS5jYW5hcnknCisgICAgYnJvd3Nlcl9uYW1lID0g
J2Nocm9tZS1jYW5hcnknCiAKICAgICBkZWYgbGF1bmNoVXJsKHNlbGYsIHVybCwgYnJvd3NlckJ1
aWxkUGF0aCk6CiAgICAgICAgIHNlbGYubGF1bmNoUHJvY2VzcyhidWlsZERpcj1icm93c2VyQnVp
bGRQYXRoLCBhcHBOYW1lPSdHb29nbGUgQ2hyb21lIENhbmFyeS5hcHAnLCB1cmw9dXJsLCBhcmdz
PVsnLS1hcmdzJywgJy0taG9tZXBhZ2UnLCB1cmwsICctLXdpbmRvdy1zaXplPXt3aWR0aH0se2hl
aWdodH0nLmZvcm1hdCh3aWR0aD1pbnQoc2VsZi5zY3JlZW5TaXplKCkud2lkdGgpLCBoZWlnaHQ9
aW50KHNlbGYuc2NyZWVuU2l6ZSgpLmhlaWdodCkpXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfZmlyZWZveF9k
cml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nl
cl9kcml2ZXIvb3N4X2ZpcmVmb3hfZHJpdmVyLnB5CmluZGV4IGFiNDljNzg5ZTMxNmMyNTkxM2Q5
ZGQ2ZTg5YmY2ZTBiMDcyMzg3Y2IuLmQwNjFlZTRjYzAwM2Q3ZTI3ZGJlMjk3ZDA5NzIzOGZhMmNk
ODkzZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9icm93c2VyX2RyaXZlci9vc3hfZmlyZWZveF9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9maXJlZm94X2Ry
aXZlci5weQpAQCAtMTMsNiArMTMsNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCiAKIGNsYXNzIE9TWEZpcmVmb3hEcml2ZXIoT1NYQnJvd3NlckRyaXZlcik6CiAgICAgYnVu
ZGxlSWRlbnRpZmllciA9ICdvcmcubW96aWxsYS5maXJlZm94JworICAgIGJyb3dzZXJfbmFtZSA9
ICdmaXJlZm94JwogCiAgICAgZGVmIGxhdW5jaFVybChzZWxmLCB1cmwsIGJyb3dzZXJCdWlsZFBh
dGgpOgogICAgICAgICBzZWxmLmxhdW5jaFByb2Nlc3MoYnVpbGREaXI9YnJvd3NlckJ1aWxkUGF0
aCwgYXBwTmFtZT0nRmlyZWZveC5hcHAnLCB1cmw9dXJsLCBhcmdzPVt1cmwsICctLWFyZ3MnLCAn
LXdpZHRoJywgc3RyKGludChzZWxmLnNjcmVlblNpemUoKS53aWR0aCkpLCAnLWhlaWdodCcsIHN0
cihpbnQoc2VsZi5zY3JlZW5TaXplKCkuaGVpZ2h0KSldKQpAQCAtMjAsNiArMjEsNyBAQCBjbGFz
cyBPU1hGaXJlZm94RHJpdmVyKE9TWEJyb3dzZXJEcml2ZXIpOgogCiBjbGFzcyBPU1hGaXJlZm94
TmlnaHRseURyaXZlcihPU1hCcm93c2VyRHJpdmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0g
J29yZy5tb3ppbGxhLm5pZ2h0bHknCisgICAgYnJvd3Nlcl9uYW1lID0gJ2ZpcmVmb3gtbmlnaHRs
eScKIAogICAgIGRlZiBsYXVuY2hVcmwoc2VsZiwgdXJsLCBicm93c2VyQnVpbGRQYXRoKToKICAg
ICAgICAgc2VsZi5sYXVuY2hQcm9jZXNzKGJ1aWxkRGlyPWJyb3dzZXJCdWlsZFBhdGgsIGFwcE5h
bWU9J0ZpcmVmb3hOaWdodGx5LmFwcCcsIHVybD11cmwsIGFyZ3M9W3VybCwgJy0tYXJncycsICct
d2lkdGgnLCBzdHIoaW50KHNlbGYuc2NyZWVuU2l6ZSgpLndpZHRoKSksICctaGVpZ2h0Jywgc3Ry
KGludChzZWxmLnNjcmVlblNpemUoKS5oZWlnaHQpKV0pCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3NhZmFyaV9k
cml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nl
cl9kcml2ZXIvb3N4X3NhZmFyaV9kcml2ZXIucHkKaW5kZXggNzQ0Mjg0NzhiMzYzMzc5Njc3ZTc5
ODdiNTFkYjRkOWE1NDBhODIyZi4uY2E0NjFlYTllYTIwZTkxNjIyZGJhM2RjYTUzNTJhNDNjYjE3
ZDI3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2Jyb3dzZXJfZHJpdmVyL29zeF9zYWZhcmlfZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZl
ci5weQpAQCAtMTUsNiArMTUsNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18p
CiAKIGNsYXNzIE9TWFNhZmFyaURyaXZlcihPU1hCcm93c2VyRHJpdmVyKToKICAgICBidW5kbGVJ
ZGVudGlmaWVyID0gJ2NvbS5hcHBsZS5TYWZhcmknCisgICAgYnJvd3Nlcl9uYW1lID0gJ3NhZmFy
aScKIAogICAgIGRlZiBwcmVwYXJlRW52KHNlbGYsIGRldmljZUlEKToKICAgICAgICAgc2VsZi5z
YWZhcmlQcm9jZXNzID0gTm9uZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2dlbmVyaWNfZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9nZW5lcmljX2ZhY3RvcnkucHkKaW5kZXggY2ViZWNiNDc4NDA0
MjQ5ZDJmOGIxNzUzYmEyNjBlYjExM2M1NzhjYy4uYjYzMTQwOTg5MDJlZmVhMDQ3ZjUwYjU2YWQz
MWRmYzBhYWQyYWM3NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2dlbmVyaWNfZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvZ2VuZXJpY19mYWN0b3J5LnB5CkBAIC0zLDggKzMsNiBAQAogaW1w
b3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogCi1mcm9tIHV0aWxzIGltcG9ydCBsb2FkTW9kdWxlLCBN
b2R1bGVOb3RGb3VuZEVycm9yCi0KIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQogCkBAIC0xNCwxOCArMTIsOSBAQCBjbGFzcyBHZW5lcmljRmFjdG9yeShvYmplY3QpOgogICAg
IHByb2R1Y3RzID0gTm9uZQogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGl0ZXJhdGVHZXRJ
dGVtKGNscywgb3B0aW9ucywga2V5cyk6Ci0gICAgICAgIHJldCA9IG9wdGlvbnMKLSAgICAgICAg
Zm9yIGtleSBpbiBrZXlzOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJldCA9
IHJldC5fX2dldGl0ZW1fXyhrZXkpCi0gICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgcmV0dXJuIHJldAorICAgIGRlZiBnZXQoY2xzLCBk
ZXNjcmlwdGlvbik6CisgICAgICAgIHJldHVybiBjbHMucHJvZHVjdHNbZGVzY3JpcHRpb25dKCkK
IAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBjcmVhdGUoY2xzLCBkZXNjcmlwdGlvbnMpOgot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gbG9hZE1vZHVsZShjbHMuaXRlcmF0ZUdl
dEl0ZW0oY2xzLnByb2R1Y3RzLCBkZXNjcmlwdGlvbnMpKSgpCi0gICAgICAgIGV4Y2VwdCBFeGNl
cHRpb246Ci0gICAgICAgICAgICByYWlzZQorICAgIGRlZiBhZGQoY2xzLCBkZXNjcmlwdGlvbiwg
cHJvZHVjdCk6CisgICAgICAgIGNscy5wcm9kdWN0c1tkZXNjcmlwdGlvbl0gPSBwcm9kdWN0CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9z
ZXJ2ZXJfZHJpdmVyL19faW5pdF9fLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9fX2luaXRfXy5weQppbmRleCBiMzc2YmYyYmVh
MmI2YWY1Y2U3OWQzZTNkMzNjNzNhZGVjNDM0ZjE4Li4xYTBkNmJkYWJlOWMxODgxOWZmZjZmNDM2
NWE0YTg0ZWVmOTVkYTBjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL19faW5pdF9fLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvX19pbml0
X18ucHkKQEAgLTExLDMgKzExLDE5IEBACiAjIGNvZGUgaW4gdGhpcyBmaWxlIHNvIHRoYXQgY2Fs
bGVycyBjYW4gb3B0LWluIGFzIHRoZXkgd2FudC4gIFRoaXMgYWxzbwogIyBhbGxvd3MgZGlmZmVy
ZW50IGNhbGxlcnMgdG8gY2hvb3NlIGRpZmZlcmVudCBpbml0aWFsaXphdGlvbiBjb2RlLAogIyBh
cyBuZWNlc3NhcnkuCitpbXBvcnQgb3MKK2ltcG9ydCBpbXAKKworZnJvbSB3ZWJraXRweS5iZW5j
aG1hcmtfcnVubmVyLnV0aWxzIGltcG9ydCBsb2FkX3N1YmNsYXNzZXMKK2Zyb20gaHR0cF9zZXJ2
ZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5CisKKworZGVm
IGh0dHBfc2VydmVyX2RyaXZlcl9sb2FkZXIoaHR0cF9zZXJ2ZXJfZHJpdmVyX2NsYXNzKToKKyAg
ICBpZiBodHRwX3NlcnZlcl9kcml2ZXJfY2xhc3MubmFtZToKKyAgICAgICAgSFRUUFNlcnZlckRy
aXZlckZhY3RvcnkuYWRkKGh0dHBfc2VydmVyX2RyaXZlcl9jbGFzcy5uYW1lLCBodHRwX3NlcnZl
cl9kcml2ZXJfY2xhc3MpCisKKworbG9hZF9zdWJjbGFzc2VzKAorICAgIGRpcm5hbWU9b3MucGF0
aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpLAorICAgIGJhc2VfY2xhc3NfbmFt
ZT0nSFRUUFNlcnZlckRyaXZlcicsCisgICAgbG9hZGVyPWh0dHBfc2VydmVyX2RyaXZlcl9sb2Fk
ZXIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
aHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJf
ZHJpdmVyLnB5CmluZGV4IDlkMjljNjM2Yjk2MGI0YzhlMjA5MjgyMmViNGEyOGJiNDdmNjVlZjQu
LmFhNzAxOTBlYThlMjY1ODJmMDkxYmE4MjBlZjlhYWU1MmY1OTAyNjcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIv
aHR0cF9zZXJ2ZXJfZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5CkBAIC00
LDYgKzQsNyBAQCBmcm9tIGFiYyBpbXBvcnQgYWJzdHJhY3RtZXRob2QKIAogCiBjbGFzcyBIVFRQ
U2VydmVyRHJpdmVyKG9iamVjdCk6CisgICAgbmFtZSA9IE5vbmUKICAgICBAYWJzdHJhY3RtZXRo
b2QKICAgICBkZWYgc2VydmUoc2VsZiwgd2ViUm9vdCk6CiAgICAgICAgIHBhc3MKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9k
cml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZl
cl9mYWN0b3J5LnB5CmluZGV4IGY4ZTg1MDY2NmVlZGI2NmI2MjkxM2ZkNDg4MDc5NzY5NmZjY2Ni
NTYuLjgxMGQ5NTQzYjBjNTAwMTg2YTM5OGRlMGI1NDA5MWZjYjAyNmY2MmIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2
ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2
ZXJfZmFjdG9yeS5weQpAQCAtNSwxMiArNSw3IEBAIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKIAog
ZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLmdlbmVyaWNfZmFjdG9yeSBpbXBvcnQgR2Vu
ZXJpY0ZhY3RvcnkKLWZyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQg
bG9hZEpTT05Gcm9tRmlsZQotCi0KLWRyaXZlckZpbGVOYW1lID0gJ2h0dHBfc2VydmVyX2RyaXZl
cnMuanNvbicKIAogCiBjbGFzcyBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeShHZW5lcmljRmFjdG9y
eSk6Ci0KLSAgICBwcm9kdWN0cyA9IGxvYWRKU09ORnJvbUZpbGUob3MucGF0aC5qb2luKG9zLnBh
dGguZGlybmFtZShfX2ZpbGVfXyksIGRyaXZlckZpbGVOYW1lKSkKKyAgICBwcm9kdWN0cyA9IHt9
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0
cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlcnMuanNvbiBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJf
ZHJpdmVycy5qc29uCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmIzYmNkY2I2OWQ0
ZTU1MzFjNDk5ZWQ5YTY3ZTgzZDJhNzcyOTg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29uCisrKyAvZGV2L251
bGwKQEAgLTEsNiArMCwwIEBACi17Ci0gICJTaW1wbGVIVFRQU2VydmVyRHJpdmVyIjogewotICAg
ICJtb2R1bGVOYW1lIjogIlNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIiLCAKLSAgICAiZmlsZVBhdGgi
OiAiaHR0cF9zZXJ2ZXJfZHJpdmVyLnNpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIiCi0gIH0KLX0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRw
X3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0
dHBfc2VydmVyX2RyaXZlci5weQppbmRleCA1MDU1MWU5ZGI5ODAwMzRlYTU4ZTcyZmMxZTNjODBl
Nzg4Y2E4MDkwLi42NDk1NWRmOTE0NGQ1NDcwYzY0ODIwODlhYjc3ODA0ZDk5MzQ2YTlkIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2
ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0
cF9zZXJ2ZXJfZHJpdmVyLnB5CkBAIC0xOCw2ICsxOCw3IEBAIGNsYXNzIFNpbXBsZUhUVFBTZXJ2
ZXJEcml2ZXIoSFRUUFNlcnZlckRyaXZlcik6CiAKICAgICAiIiJUaGlzIGNsYXNzIGRlcGVuZHMg
b24gdW5peCBlbnZpcm9ubWVudCwgbmVlZCB0byBiZSBtb2RpZmllZCB0byBhY2hpZXZlIGNyb3Nz
cGxhdGZvcm0gY29tcGFiaWxpdHkKICAgICAiIiIKKyAgICBuYW1lID0gJ1NpbXBsZUhUVFBTZXJ2
ZXJEcml2ZXInCiAKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYuc2VydmVy
X3Byb2Nlc3MgPSBOb25lCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvdXRpbHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvdXRpbHMucHkKaW5kZXggYmMzMjRlMjJjNzU5ZDgxYjA5YzgzNGNkNmY2MThhODcxN2Rk
ZGVlYi4uOTg1ZTJmZDQwMThiYWVlMDAxODg1YjMxZDlmZGI1ZTBkYTNlYTQyZCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3V0aWxzLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGlscy5weQpAQCAtMSwy
NSArMSwzMyBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAKLWltcG9ydCBqc29uCitpbXBvcnQg
aW1wCitpbXBvcnQgaW5zcGVjdAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHNp
Z25hbAogaW1wb3J0IHNodXRpbAoraW1wb3J0IHN5cwogCiAKIF9sb2cgPSBsb2dnaW5nLmdldExv
Z2dlcihfX25hbWVfXykKIAogCi1jbGFzcyBNb2R1bGVOb3RGb3VuZEVycm9yKEV4Y2VwdGlvbik6
Ci0gICAgcGFzcworIyBCb3Jyb3cgZm9sbG93aW5nIGNvZGUgZnJvbSBzdGFja292ZXJmbG93Cisj
IExpbms6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTE0NjEzNTYvaXNzdWJj
bGFzcy1yZXR1cm5zLWZsYXNlLW9uLXRoZS1zYW1lLWNsYXNzLWltcG9ydGVkLWZyb20tZGlmZmVy
ZW50LXBhdGhzCitkZWYgaXNfc3ViY2xhc3MoY2hpbGQsIHBhcmVudF9uYW1lKToKKyAgICByZXR1
cm4gaW5zcGVjdC5pc2NsYXNzKGNoaWxkKSBhbmQgcGFyZW50X25hbWUgaW4gW2Nscy5fX25hbWVf
XyBmb3IgY2xzIGluIGluc3BlY3QuZ2V0bXJvKGNoaWxkKV0KIAogCi1kZWYgbG9hZE1vZHVsZSht
b2R1bGVEZXNjKToKLSAgICB0cnk6Ci0gICAgICAgIHJldCA9IGdldGF0dHIoX19pbXBvcnRfXyht
b2R1bGVEZXNjWydmaWxlUGF0aCddLCBnbG9iYWxzKCksIGxvY2FscygpLCBtb2R1bGVEZXNjWydt
b2R1bGVOYW1lJ10sIC0xKSwgbW9kdWxlRGVzY1snbW9kdWxlTmFtZSddKQotICAgICAgICByZXR1
cm4gcmV0Ci0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnJvcjoKLSAgICAgICAgcmFpc2UgTW9k
dWxlTm90Rm91bmRFcnJvcignRXJyb3IgbG9hZGluZyBtb2R1bGUgKCVzKSB3aXRoIHBhdGgoJXMp
OiB7JXN9JyAlIChtb2R1bGVEZXNjWydtb2R1bGVOYW1lJ10sIG1vZHVsZURlc2NbJ2ZpbGVQYXRo
J10sIGVycm9yKSkKK2RlZiBsb2FkX3N1YmNsYXNzZXMoZGlybmFtZSwgYmFzZV9jbGFzc19uYW1l
LCBsb2FkZXIpOgorICAgIGZvciBmaWxlbmFtZSBpbiBvcy5saXN0ZGlyKGRpcm5hbWUpOgorICAg
ICAgICBpZiBub3QgZmlsZW5hbWUuZW5kc3dpdGgoJy5weScpIG9yIGZpbGVuYW1lIGluIFsnX19p
bml0X18ucHknXToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIG1vZHVsZV9uYW1lID0g
ZmlsZW5hbWVbOi0zXQorICAgICAgICBtb2R1bGUgPSBpbXAubG9hZF9zb3VyY2UobW9kdWxlX25h
bWUsIG9zLnBhdGguam9pbihkaXJuYW1lLCBmaWxlbmFtZSkpCisgICAgICAgIGZvciBpdGVtX25h
bWUgaW4gZGlyKG1vZHVsZSk6CisgICAgICAgICAgICBpdGVtID0gZ2V0YXR0cihtb2R1bGUsIGl0
ZW1fbmFtZSkKKyAgICAgICAgICAgIGlmIGlzX3N1YmNsYXNzKGl0ZW0sIGJhc2VfY2xhc3NfbmFt
ZSk6CisgICAgICAgICAgICAgICAgbG9hZGVyKGl0ZW0pCiAKIAogZGVmIGdldFBhdGhGcm9tUHJv
amVjdFJvb3QocmVsYXRpdmVQYXRoVG9Qcm9qZWN0Um9vdCk6CkBAIC0yOSwxNSArMzcsNiBAQCBk
ZWYgZ2V0UGF0aEZyb21Qcm9qZWN0Um9vdChyZWxhdGl2ZVBhdGhUb1Byb2plY3RSb290KToKICAg
ICByZXR1cm4gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUob3Mu
cGF0aC5hYnNwYXRoKF9fZmlsZV9fKSksIHJlbGF0aXZlUGF0aFRvUHJvamVjdFJvb3QpKQogCiAK
LWRlZiBsb2FkSlNPTkZyb21GaWxlKGZpbGVQYXRoKToKLSAgICB0cnk6Ci0gICAgICAgIGpzb25P
YmplY3QgPSBqc29uLmxvYWQob3BlbihmaWxlUGF0aCwgJ3InKSkKLSAgICAgICAgYXNzZXJ0KGpz
b25PYmplY3QpCi0gICAgICAgIHJldHVybiBqc29uT2JqZWN0Ci0gICAgZXhjZXB0IEV4Y2VwdGlv
biBhcyBlcnJvcjoKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJJbnZhbGlkIGpzb24gZm9ybWF0
IG9yIGVtcHR5IGpzb24gd2FzIGZvdW5kIGluICVzIC0gRXJyb3I6ICVzIiAlIChmaWxlUGF0aCwg
ZXJyb3IpKQotCi0KIGRlZiBmb3JjZVJlbW92ZShwYXRoKToKICAgICB0cnk6CiAgICAgICAgIHNo
dXRpbC5ybXRyZWUocGF0aCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255381</attachid>
            <date>2015-06-22 18:03:53 -0700</date>
            <delta_ts>2015-06-22 18:08:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146175-20150622180311.patch</filename>
            <type>text/plain</type>
            <size>25874</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1Nzg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2JmNjU4ZThjNTAyOGU4MDQyYzE5ZGQ2YzNmMjMwMDky
Y2IwODc0OS4uMWJlNDg3ZTQ1ZjhmMjU4YWQzMDg1OGRkMzY3YTcwOWRkMGZlOGMzYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDE1LTA2LTIyICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgorCisgICAg
ICAgIEdldCByaWQgb2YgZmFjdG9yeSBqc29uIGZpbGVzIGluIGJlbmNobWFya19ydW5uZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjE3NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCByaWQgb2Yg
ZmFjdG9yeSBqc29uIGZpbGVzIGluIGJlbmNobWFya19ydW5uZXIgYW5kIHJlZmFjdG9yaW5nIHRo
ZSBjb2RlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jl
bmNobWFya19idWlsZGVyL19faW5pdF9fLnB5OgorICAgICAgICAoYmVuY2htYXJrX2J1aWxkZXJf
bG9hZGVyKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVu
Y2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeS5weToKKyAgICAgICAgKEJl
bmNobWFya0J1aWxkZXJGYWN0b3J5KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJzLmpzb246IFJl
bW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNo
bWFya19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHk6CisgICAgICAgIChHZW5l
cmljQmVuY2htYXJrQnVpbGRlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHk6CisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIu
X19pbml0X18pOgorICAgICAgICAoQmVuY2htYXJrUnVubmVyLmV4ZWN1dGUpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9fX2luaXRf
Xy5weToKKyAgICAgICAgKGJyb3dzZXJfZHJpdmVyX2xvYWRlcik6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVy
LnB5OgorICAgICAgICAoQnJvd3NlckRyaXZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyX2ZhY3Rvcnku
cHk6CisgICAgICAgIChCcm93c2VyRHJpdmVyRmFjdG9yeSk6CisgICAgICAgIChCcm93c2VyRHJp
dmVyRmFjdG9yeS5hdmFpbGFibGVfcGxhdGZvcm1zKToKKyAgICAgICAgKEJyb3dzZXJEcml2ZXJG
YWN0b3J5LmF2YWlsYWJsZV9icm93c2Vycyk6CisgICAgICAgIChCcm93c2VyRHJpdmVyRmFjdG9y
eS5hZGRfYnJvd3Nlcl9kcml2ZXIpOgorICAgICAgICAoQnJvd3NlckRyaXZlckZhY3RvcnkuY3Jl
YXRlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nl
cl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJzLmpzb246IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93c2VyX2Ry
aXZlci5weToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIpOgorICAgICAgICAoT1NYQnJvd3Nl
ckRyaXZlci5wcmVwYXJlRW52KToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIudGVybWluYXRl
UHJvY2Vzc2VzKToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIuc2NyZWVuU2l6ZSk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29z
eF9jaHJvbWVfZHJpdmVyLnB5OgorICAgICAgICAoT1NYQ2hyb21lRHJpdmVyKToKKyAgICAgICAg
KE9TWENocm9tZUNhbmFyeURyaXZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9maXJlZm94X2RyaXZlci5weToKKyAgICAg
ICAgKE9TWEZpcmVmb3hEcml2ZXIpOgorICAgICAgICAoT1NYRmlyZWZveE5pZ2h0bHlEcml2ZXIp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2Ry
aXZlci9vc3hfc2FmYXJpX2RyaXZlci5weToKKyAgICAgICAgKE9TWFNhZmFyaURyaXZlcik6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2dlbmVyaWNfZmFjdG9y
eS5weToKKyAgICAgICAgKEdlbmVyaWNGYWN0b3J5LmNyZWF0ZSk6CisgICAgICAgIChHZW5lcmlj
RmFjdG9yeS5hZGQpOgorICAgICAgICAoR2VuZXJpY0ZhY3RvcnkuaXRlcmF0ZUdldEl0ZW0pOiBE
ZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRw
X3NlcnZlcl9kcml2ZXIvX19pbml0X18ucHk6CisgICAgICAgIChodHRwX3NlcnZlcl9kcml2ZXJf
bG9hZGVyKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0
cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKEhUVFBTZXJ2
ZXJEcml2ZXIpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9o
dHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkucHk6CisgICAgICAg
IChIVFRQU2VydmVyRHJpdmVyRmFjdG9yeSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXJzLmpz
b246IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5OgorICAgICAg
ICAoU2ltcGxlSFRUUFNlcnZlckRyaXZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3V0aWxzLnB5OgorICAgICAgICAoaXNfc3ViY2xhc3MpOgorICAgICAg
ICAobG9hZF9zdWJjbGFzc2VzKToKKyAgICAgICAgKE1vZHVsZU5vdEZvdW5kRXJyb3IpOiBEZWxl
dGVkLgorICAgICAgICAobG9hZE1vZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChsb2FkSlNPTkZy
b21GaWxlKTogRGVsZXRlZC4KKwogMjAxNS0wNi0xOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXggYWZ0ZXIgcjE0NjEyNS4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRl
ci9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9i
ZW5jaG1hcmtfYnVpbGRlci9fX2luaXRfXy5weQppbmRleCBiMzc2YmYyYmVhMmI2YWY1Y2U3OWQz
ZTNkMzNjNzNhZGVjNDM0ZjE4Li5hMzJmMDAyZDFiNjgyZTY2ZWFmZjlhMDUwYzdiNjJmMTEwOGQw
ZDY4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL19faW5pdF9fLnB5CkBAIC0xMSwz
ICsxMSwxOCBAQAogIyBjb2RlIGluIHRoaXMgZmlsZSBzbyB0aGF0IGNhbGxlcnMgY2FuIG9wdC1p
biBhcyB0aGV5IHdhbnQuICBUaGlzIGFsc28KICMgYWxsb3dzIGRpZmZlcmVudCBjYWxsZXJzIHRv
IGNob29zZSBkaWZmZXJlbnQgaW5pdGlhbGl6YXRpb24gY29kZSwKICMgYXMgbmVjZXNzYXJ5Lgor
aW1wb3J0IG9zCisKK2Zyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQg
bG9hZF9zdWJjbGFzc2VzCitmcm9tIGJlbmNobWFya19idWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJl
bmNobWFya0J1aWxkZXJGYWN0b3J5CisKKworZGVmIGJlbmNobWFya19idWlsZGVyX2xvYWRlcihi
ZW5jaG1hcmtfYnVpbGRlcl9jbGFzcyk6CisgICAgaWYgYmVuY2htYXJrX2J1aWxkZXJfY2xhc3Mu
YnVpbGRlcl9uYW1lOgorICAgICAgICBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5hZGQoYmVuY2ht
YXJrX2J1aWxkZXJfY2xhc3MuYnVpbGRlcl9uYW1lLCBiZW5jaG1hcmtfYnVpbGRlcl9jbGFzcykK
KworCitsb2FkX3N1YmNsYXNzZXMoCisgICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0
aC5hYnNwYXRoKF9fZmlsZV9fKSksCisgICAgYmFzZV9jbGFzc19uYW1lPSdHZW5lcmljQmVuY2ht
YXJrQnVpbGRlcicsCisgICAgbG9hZGVyPWJlbmNobWFya19idWlsZGVyX2xvYWRlcikKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtf
YnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcl9mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVy
X2ZhY3RvcnkucHkKaW5kZXggOTYwMWQzZjE1ZjFmMDM2NDMzOWFlMjRkNGY4ZWUxYWM4NjYyMjQ3
My4uYzYyMDBiOWY3ZWVjYzBhYTk4NzU3MDE4ZDMwOGY4ZjEwYjZiMjAzZiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVy
L2JlbmNobWFya19idWlsZGVyX2ZhY3RvcnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVyX2Zh
Y3RvcnkucHkKQEAgLTUsMTIgKzUsOCBAQCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiAKIGZyb20g
d2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci5nZW5lcmljX2ZhY3RvcnkgaW1wb3J0IEdlbmVyaWNG
YWN0b3J5Ci1mcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1wb3J0IGxvYWRK
U09ORnJvbUZpbGUKLQotCi1idWlsZGVyRmlsZU5hbWUgPSAnYmVuY2htYXJrX2J1aWxkZXJzLmpz
b24nCiAKIAogY2xhc3MgQmVuY2htYXJrQnVpbGRlckZhY3RvcnkoR2VuZXJpY0ZhY3RvcnkpOgog
Ci0gICAgcHJvZHVjdHMgPSBsb2FkSlNPTkZyb21GaWxlKG9zLnBhdGguam9pbihvcy5wYXRoLmRp
cm5hbWUoX19maWxlX18pLCBidWlsZGVyRmlsZU5hbWUpKQorICAgIHByb2R1Y3RzID0ge30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcnMuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcnMu
anNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWY0YmRmM2NmOGZhMDIyYmQ2MDU0
YjFiOTZhMGE2NGU3ZDAzZDMxZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2ht
YXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJzLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLXsKLSAgICAiR2VuZXJpY0JlbmNobWFya0J1aWxkZXIiOiB7Ci0gICAgICAgICJm
aWxlUGF0aCI6ICJiZW5jaG1hcmtfYnVpbGRlci5nZW5lcmljX2JlbmNobWFya19idWlsZGVyIiwK
LSAgICAgICAgIm1vZHVsZU5hbWUiOiAiR2VuZXJpY0JlbmNobWFya0J1aWxkZXIiCi0gICAgfQot
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jl
bmNobWFya19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19i
ZW5jaG1hcmtfYnVpbGRlci5weQppbmRleCAwZTBhYzM2OTE4MTg1ZDc3ZmIzZDM1YTk1Y2ZjYmIw
MjFlMGMwODI3Li42OWU0ZTY4NTIxZjU0YzU5YTUyZmM4M2NiMjE5MmYwNzAxZWQ5OGY2IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJr
X2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5j
aG1hcmtfYnVpbGRlci5weQpAQCAtMTYsNiArMTYsOCBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoX19uYW1lX18pCiAKIGNsYXNzIEdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyKG9iamVjdCk6CiAK
KyAgICBidWlsZGVyX25hbWUgPSAnR2VuZXJpY0JlbmNobWFya0J1aWxkZXInCisKICAgICBkZWYg
cHJlcGFyZShzZWxmLCBuYW1lLCBwbGFuKToKICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAg
ICAgICBzZWxmLndlYlJvb3QgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIu
cHkKaW5kZXggNDdlNzhiZDVhMjIyYTcwZGNjYTAwMjU5YmE0OWYyMmI2MThkZjgxZS4uODEwNTA3
MjU2ZjgyMGY5ZDQwZDI1MGEzNWI5MjU5NmQxYmE2MDUzNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIu
cHkKQEAgLTE2LDcgKzE2LDcgQEAgZnJvbSBiZW5jaG1hcmtfYnVpbGRlci5iZW5jaG1hcmtfYnVp
bGRlcl9mYWN0b3J5IGltcG9ydCBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeQogZnJvbSBiZW5jaG1h
cmtfcmVzdWx0cyBpbXBvcnQgQmVuY2htYXJrUmVzdWx0cwogZnJvbSBicm93c2VyX2RyaXZlci5i
cm93c2VyX2RyaXZlcl9mYWN0b3J5IGltcG9ydCBCcm93c2VyRHJpdmVyRmFjdG9yeQogZnJvbSBo
dHRwX3NlcnZlcl9kcml2ZXIuaHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEhUVFBT
ZXJ2ZXJEcml2ZXJGYWN0b3J5Ci1mcm9tIHV0aWxzIGltcG9ydCBsb2FkTW9kdWxlLCBnZXRQYXRo
RnJvbVByb2plY3RSb290Citmcm9tIHV0aWxzIGltcG9ydCBnZXRQYXRoRnJvbVByb2plY3RSb290
CiBmcm9tIHV0aWxzIGltcG9ydCB0aW1lb3V0CiAKIApAQCAtMzcsOCArMzcsOCBAQCBjbGFzcyBC
ZW5jaG1hcmtSdW5uZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5wbGFuWydj
b3VudCddID0gY291bnRPdmVycmlkZQogICAgICAgICAgICAgICAgIGlmIGh0dHBTZXJ2ZXJEcml2
ZXJPdmVycmlkZToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5wbGFuWydodHRwX3NlcnZlcl9k
cml2ZXInXSA9IGh0dHBTZXJ2ZXJEcml2ZXJPdmVycmlkZQotICAgICAgICAgICAgICAgIHNlbGYu
YnJvd3NlckRyaXZlciA9IEJyb3dzZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShbcGxhdGZvcm0sIGJy
b3dzZXJdKQotICAgICAgICAgICAgICAgIHNlbGYuaHR0cFNlcnZlckRyaXZlciA9IEhUVFBTZXJ2
ZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShbc2VsZi5wbGFuWydodHRwX3NlcnZlcl9kcml2ZXInXV0p
CisgICAgICAgICAgICAgICAgc2VsZi5icm93c2VyRHJpdmVyID0gQnJvd3NlckRyaXZlckZhY3Rv
cnkuY3JlYXRlKHBsYXRmb3JtLCBicm93c2VyKQorICAgICAgICAgICAgICAgIHNlbGYuaHR0cFNl
cnZlckRyaXZlciA9IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShzZWxmLnBsYW5bJ2h0
dHBfc2VydmVyX2RyaXZlciddKQogICAgICAgICAgICAgICAgIHNlbGYuaHR0cFNlcnZlckRyaXZl
ci5zZXREZXZpY2VJRChkZXZpY2VJRCkKICAgICAgICAgICAgICAgICBzZWxmLmJ1aWxkRGlyID0g
b3MucGF0aC5hYnNwYXRoKGJ1aWxkRGlyKSBpZiBidWlsZERpciBlbHNlIE5vbmUKICAgICAgICAg
ICAgICAgICBzZWxmLm91dHB1dEZpbGUgPSBvdXRwdXRGaWxlCkBAIC02NSw3ICs2NSw3IEBAIGNs
YXNzIEJlbmNobWFya1J1bm5lcihvYmplY3QpOgogICAgICAgICBfbG9nLmluZm8oJ1N0YXJ0IHRv
IGV4ZWN1dGUgdGhlIHBsYW4nKQogICAgICAgICBfbG9nLmluZm8oJ1N0YXJ0IGEgbmV3IGJlbmNo
bWFyaycpCiAgICAgICAgIHJlc3VsdHMgPSBbXQotICAgICAgICBzZWxmLmJlbmNobWFya0J1aWxk
ZXIgPSBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5jcmVhdGUoW3NlbGYucGxhblsnYmVuY2htYXJr
X2J1aWxkZXInXV0pCisgICAgICAgIHNlbGYuYmVuY2htYXJrQnVpbGRlciA9IEJlbmNobWFya0J1
aWxkZXJGYWN0b3J5LmNyZWF0ZShzZWxmLnBsYW5bJ2JlbmNobWFya19idWlsZGVyJ10pCiAKICAg
ICAgICAgd2ViUm9vdCA9IHNlbGYuYmVuY2htYXJrQnVpbGRlci5wcmVwYXJlKHNlbGYucGxhbk5h
bWUsIHNlbGYucGxhbikKICAgICAgICAgZm9yIHggaW4geHJhbmdlKGludChzZWxmLnBsYW5bJ2Nv
dW50J10pKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9icm93c2VyX2RyaXZlci9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
YmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9fX2luaXRfXy5weQppbmRleCBiMzc2YmYy
YmVhMmI2YWY1Y2U3OWQzZTNkMzNjNzNhZGVjNDM0ZjE4Li4wMTNjMjY1ZTY0MDcyMjRlMzk2MTVi
ZmMyY2VlNWMyYWMxYmY3MjdmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL19faW5pdF9fLnB5
CkBAIC0xMSwzICsxMSwxOCBAQAogIyBjb2RlIGluIHRoaXMgZmlsZSBzbyB0aGF0IGNhbGxlcnMg
Y2FuIG9wdC1pbiBhcyB0aGV5IHdhbnQuICBUaGlzIGFsc28KICMgYWxsb3dzIGRpZmZlcmVudCBj
YWxsZXJzIHRvIGNob29zZSBkaWZmZXJlbnQgaW5pdGlhbGl6YXRpb24gY29kZSwKICMgYXMgbmVj
ZXNzYXJ5LgoraW1wb3J0IG9zCisKK2Zyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGls
cyBpbXBvcnQgbG9hZF9zdWJjbGFzc2VzCitmcm9tIGJyb3dzZXJfZHJpdmVyX2ZhY3RvcnkgaW1w
b3J0IEJyb3dzZXJEcml2ZXJGYWN0b3J5CisKKworZGVmIGJyb3dzZXJfZHJpdmVyX2xvYWRlcihi
cm93c2VyX2RyaXZlcl9jbGFzcyk6CisgICAgaWYgYnJvd3Nlcl9kcml2ZXJfY2xhc3MucGxhdGZv
cm0gYW5kIGJyb3dzZXJfZHJpdmVyX2NsYXNzLmJyb3dzZXJfbmFtZToKKyAgICAgICAgQnJvd3Nl
ckRyaXZlckZhY3RvcnkuYWRkX2Jyb3dzZXJfZHJpdmVyKGJyb3dzZXJfZHJpdmVyX2NsYXNzLnBs
YXRmb3JtLCBicm93c2VyX2RyaXZlcl9jbGFzcy5icm93c2VyX25hbWUsIGJyb3dzZXJfZHJpdmVy
X2NsYXNzKQorCisKK2xvYWRfc3ViY2xhc3NlcygKKyAgICBkaXJuYW1lPW9zLnBhdGguZGlybmFt
ZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKSwKKyAgICBiYXNlX2NsYXNzX25hbWU9J0Jyb3dz
ZXJEcml2ZXInLAorICAgIGxvYWRlcj1icm93c2VyX2RyaXZlcl9sb2FkZXIpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIv
YnJvd3Nlcl9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXIucHkKaW5kZXggNDM3YThjYmNkMzhhZTE0
Njc0MWU5NGI3NzcxMDUzMGNjNjJlMGRjOC4uMGY1NmI4MzQ2ZDFjMDU5OTM0Y2NjMGFlYzRhMGM4
NDM3NjU3NWY4OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2RyaXZl
ci5weQpAQCAtNCw2ICs0LDggQEAgaW1wb3J0IGFiYwogCiAKIGNsYXNzIEJyb3dzZXJEcml2ZXIo
b2JqZWN0KToKKyAgICBwbGF0Zm9ybSA9IE5vbmUKKyAgICBicm93c2VyX25hbWUgPSBOb25lCiAK
ICAgICBAYWJjLmFic3RyYWN0bWV0aG9kCiAgICAgZGVmIHByZXBhcmVFbnYoc2VsZiwgZGV2aWNl
SUQpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyX2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJf
ZmFjdG9yeS5weQppbmRleCBhMTQwZWMwN2YzOTkxYjdlZTVmNWJkNjg3ZmE4M2Y1OWRiMzI5Nzdl
Li5kM2NjODVlOTM3YTY4YTZlYjIxYjljY2NjNWE0Y2YyOGMwOGE3OWRkIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJv
d3Nlcl9kcml2ZXJfZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJfZmFjdG9yeS5weQpAQCAt
NCwyNSArNCwzMCBAQCBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogCi1m
cm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIuZ2VuZXJpY19mYWN0b3J5IGltcG9ydCBHZW5l
cmljRmFjdG9yeQotZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLnV0aWxzIGltcG9ydCBs
b2FkSlNPTkZyb21GaWxlCiAKK2NsYXNzIEJyb3dzZXJEcml2ZXJGYWN0b3J5KCk6CiAKLWRyaXZl
ckZpbGVOYW1lID0gJ2Jyb3dzZXJfZHJpdmVycy5qc29uJworICAgIGJyb3dzZXJfZHJpdmVycyA9
IHt9CisgICAgcGxhdGZvcm1zID0gc2V0KCkKKyAgICBicm93c2VycyA9IHNldCgpCiAKIAotY2xh
c3MgQnJvd3NlckRyaXZlckZhY3RvcnkoR2VuZXJpY0ZhY3RvcnkpOgotCi0gICAgcHJvZHVjdHMg
PSBsb2FkSlNPTkZyb21GaWxlKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p
LCBkcml2ZXJGaWxlTmFtZSkpCi0KICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgYXZhaWxhYmxl
X3BsYXRmb3JtcyhjbHMpOgotICAgICAgICByZXR1cm4gY2xzLnByb2R1Y3RzLmtleXMoKQorICAg
ICAgICByZXR1cm4gbGlzdChjbHMucGxhdGZvcm1zKQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAg
ZGVmIGF2YWlsYWJsZV9icm93c2VycyhjbHMpOgotICAgICAgICBicm93c2VycyA9IFtdCi0gICAg
ICAgIGZvciBwbGF0Zm9ybSBpbiBjbHMucHJvZHVjdHMudmFsdWVzKCk6Ci0gICAgICAgICAgICBm
b3IgYnJvd3NlciBpbiBwbGF0Zm9ybToKLSAgICAgICAgICAgICAgICBicm93c2Vycy5hcHBlbmQo
YnJvd3NlcikKLSAgICAgICAgcmV0dXJuIGJyb3dzZXJzCisgICAgICAgIHJldHVybiBsaXN0KGNs
cy5icm93c2VycykKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBhZGRfYnJvd3Nlcl9kcml2
ZXIoY2xzLCBwbGF0Zm9ybSwgYnJvd3Nlcl9uYW1lLCBicm93c2VyX2RyaXZlcl9jbGFzcyk6Cisg
ICAgICAgIGNscy5wbGF0Zm9ybXMuYWRkKHBsYXRmb3JtKQorICAgICAgICBjbHMuYnJvd3NlcnMu
YWRkKGJyb3dzZXJfbmFtZSkKKyAgICAgICAgaWYgcGxhdGZvcm0gbm90IGluIGNscy5icm93c2Vy
X2RyaXZlcnM6CisgICAgICAgICAgICBjbHMuYnJvd3Nlcl9kcml2ZXJzW3BsYXRmb3JtXSA9IHt9
CisgICAgICAgIGNscy5icm93c2VyX2RyaXZlcnNbcGxhdGZvcm1dW2Jyb3dzZXJfbmFtZV0gPSBi
cm93c2VyX2RyaXZlcl9jbGFzcworCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGNyZWF0ZShj
bHMsIHBsYXRmb3JtLCBicm93c2VyX25hbWUpOgorICAgICAgICByZXR1cm4gY2xzLmJyb3dzZXJf
ZHJpdmVyc1twbGF0Zm9ybV1bYnJvd3Nlcl9uYW1lXSgpCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2
ZXJzLmpzb24gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nl
cl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJzLmpzb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGUyN2NiZmZiMjgzZmVmZWY0NTZlNDA2NThmOGZlMDFmMTY4ZjM1NzMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVycy5qc29uCisr
KyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotewotICAgICJvc3giOiB7Ci0gICAgICAgICJj
aHJvbWUiOiB7Ci0gICAgICAgICAgICAibW9kdWxlTmFtZSI6ICJPU1hDaHJvbWVEcml2ZXIiLCAK
LSAgICAgICAgICAgICJmaWxlUGF0aCI6ICJicm93c2VyX2RyaXZlci5vc3hfY2hyb21lX2RyaXZl
ciIKLSAgICAgICAgfSwKLSAgICAgICAgImNocm9tZS1jYW5hcnkiOiB7Ci0gICAgICAgICAgICAi
bW9kdWxlTmFtZSI6ICJPU1hDaHJvbWVDYW5hcnlEcml2ZXIiLCAKLSAgICAgICAgICAgICJmaWxl
UGF0aCI6ICJicm93c2VyX2RyaXZlci5vc3hfY2hyb21lX2RyaXZlciIKLSAgICAgICAgfSwKLSAg
ICAgICAgImZpcmVmb3giOiB7Ci0gICAgICAgICAgICAibW9kdWxlTmFtZSI6ICJPU1hGaXJlZm94
RHJpdmVyIiwgCi0gICAgICAgICAgICAiZmlsZVBhdGgiOiAiYnJvd3Nlcl9kcml2ZXIub3N4X2Zp
cmVmb3hfZHJpdmVyIgotICAgICAgICB9LAotICAgICAgICAiZmlyZWZveC1uaWdodGx5Ijogewot
ICAgICAgICAgICAgIm1vZHVsZU5hbWUiOiAiT1NYRmlyZWZveE5pZ2h0bHlEcml2ZXIiLCAKLSAg
ICAgICAgICAgICJmaWxlUGF0aCI6ICJicm93c2VyX2RyaXZlci5vc3hfZmlyZWZveF9kcml2ZXIi
Ci0gICAgICAgIH0sCi0gICAgICAgICJzYWZhcmkiOiB7Ci0gICAgICAgICAgICAibW9kdWxlTmFt
ZSI6ICJPU1hTYWZhcmlEcml2ZXIiLCAKLSAgICAgICAgICAgICJmaWxlUGF0aCI6ICJicm93c2Vy
X2RyaXZlci5vc3hfc2FmYXJpX2RyaXZlciIKLSAgICAgICAgfQotICAgIH0gCi19CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2
ZXIvb3N4X2Jyb3dzZXJfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93c2VyX2RyaXZlci5weQppbmRleCAyZGM3
ZWFhZTEzMDU2YmU5MDQxZmFmY2Q4Y2YyMTkxY2JiYWY2N2UzLi5mYTdhZGUxMjhkMmU0YzAyYTZj
ODQyZDE1ODA3YThlNGI2MjJlOWM2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2Jyb3dzZXJfZHJpdmVyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZl
ci9vc3hfYnJvd3Nlcl9kcml2ZXIucHkKQEAgLTMsOSArMyw2IEBAIGltcG9ydCBsb2dnaW5nCiBp
bXBvcnQgb3MKIGltcG9ydCBzdWJwcm9jZXNzCiAKLWZyb20gQXBwS2l0IGltcG9ydCBOU1J1bm5p
bmdBcHBsaWNhdGlvbgotZnJvbSBBcHBLaXQgaW1wb3J0IE5TU2NyZWVuCi1mcm9tIFF1YXJ0eiBp
bXBvcnQgQ0dXYXJwTW91c2VDdXJzb3JQb3NpdGlvbgogZnJvbSBicm93c2VyX2RyaXZlciBpbXBv
cnQgQnJvd3NlckRyaXZlcgogCiAKQEAgLTE0LDkgKzExLDExIEBAIF9sb2cgPSBsb2dnaW5nLmdl
dExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgT1NYQnJvd3NlckRyaXZlcihCcm93c2VyRHJpdmVy
KToKICAgICBidW5kbGVJZGVudGlmaWVyID0gTm9uZQorICAgIHBsYXRmb3JtID0gJ29zeCcKIAog
ICAgIGRlZiBwcmVwYXJlRW52KHNlbGYsIGRldmljZUlEKToKICAgICAgICAgc2VsZi5jbG9zZUJy
b3dzZXJzKCkKKyAgICAgICAgZnJvbSBRdWFydHogaW1wb3J0IENHV2FycE1vdXNlQ3Vyc29yUG9z
aXRpb24KICAgICAgICAgQ0dXYXJwTW91c2VDdXJzb3JQb3NpdGlvbigoMTAsIDApKQogCiAgICAg
ZGVmIGNsb3NlQnJvd3NlcnMoc2VsZik6CkBAIC0zNyw2ICszNiw3IEBAIGNsYXNzIE9TWEJyb3dz
ZXJEcml2ZXIoQnJvd3NlckRyaXZlcik6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHRlcm1p
bmF0ZVByb2Nlc3NlcyhjbHMsIGJ1bmRsZUlkZW50aWZpZXIpOgogICAgICAgICBfbG9nLmluZm8o
J0Nsb3NpbmcgYWxsIHRlcm1pbmF0aW5nIGFsbCBwcm9jZXNzZXMgd2l0aCB0aGUgYnVuZGxlIGlk
ZW50aWZpZXIgJXMnICUgYnVuZGxlSWRlbnRpZmllcikKKyAgICAgICAgZnJvbSBBcHBLaXQgaW1w
b3J0IE5TUnVubmluZ0FwcGxpY2F0aW9uCiAgICAgICAgIHByb2Nlc3NlcyA9IE5TUnVubmluZ0Fw
cGxpY2F0aW9uLnJ1bm5pbmdBcHBsaWNhdGlvbnNXaXRoQnVuZGxlSWRlbnRpZmllcl8oYnVuZGxl
SWRlbnRpZmllcikKICAgICAgICAgZm9yIHByb2Nlc3MgaW4gcHJvY2Vzc2VzOgogICAgICAgICAg
ICAgcHJvY2Vzcy50ZXJtaW5hdGUoKQpAQCAtNDksNCArNDksNSBAQCBjbGFzcyBPU1hCcm93c2Vy
RHJpdmVyKEJyb3dzZXJEcml2ZXIpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHNjcmVl
blNpemUoY2xzKToKKyAgICAgICAgZnJvbSBBcHBLaXQgaW1wb3J0IE5TU2NyZWVuCiAgICAgICAg
IHJldHVybiBOU1NjcmVlbi5tYWluU2NyZWVuKCkuZnJhbWUoKS5zaXplCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4
X2Nocm9tZV9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2Nocm9tZV9kcml2ZXIucHkKaW5kZXggMmQxODgyN2ZhYzFj
N2JkNmZkZGZmYjNlMmE0NmM1YThkYjJhNWJkNC4uNDM3ZjEwYWM2ZGI5NWUwN2I4MGQ4MmUzZTNl
MmY4MGUyNTI2YTJiYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9jaHJvbWVfZHJpdmVyLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfY2hy
b21lX2RyaXZlci5weQpAQCAtMTMsNiArMTMsNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIo
X19uYW1lX18pCiAKIGNsYXNzIE9TWENocm9tZURyaXZlcihPU1hCcm93c2VyRHJpdmVyKToKICAg
ICBidW5kbGVJZGVudGlmaWVyID0gJ2NvbS5nb29nbGUuQ2hyb21lJworICAgIGJyb3dzZXJfbmFt
ZSA9ICdjaHJvbWUnCiAKICAgICBkZWYgbGF1bmNoVXJsKHNlbGYsIHVybCwgYnJvd3NlckJ1aWxk
UGF0aCk6CiAgICAgICAgIHNlbGYubGF1bmNoUHJvY2VzcyhidWlsZERpcj1icm93c2VyQnVpbGRQ
YXRoLCBhcHBOYW1lPSdHb29nbGUgQ2hyb21lLmFwcCcsIHVybD11cmwsIGFyZ3M9WyctLWFyZ3Mn
LCAnLS1ob21lcGFnZScsIHVybCwgJy0td2luZG93LXNpemU9e3dpZHRofSx7aGVpZ2h0fScuZm9y
bWF0KHdpZHRoPWludChzZWxmLnNjcmVlblNpemUoKS53aWR0aCksIGhlaWdodD1pbnQoc2VsZi5z
Y3JlZW5TaXplKCkuaGVpZ2h0KSldKQpAQCAtMjAsNiArMjEsNyBAQCBjbGFzcyBPU1hDaHJvbWVE
cml2ZXIoT1NYQnJvd3NlckRyaXZlcik6CiAKIGNsYXNzIE9TWENocm9tZUNhbmFyeURyaXZlcihP
U1hCcm93c2VyRHJpdmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0gJ2NvbS5nb29nbGUuQ2hy
b21lLmNhbmFyeScKKyAgICBicm93c2VyX25hbWUgPSAnY2hyb21lLWNhbmFyeScKIAogICAgIGRl
ZiBsYXVuY2hVcmwoc2VsZiwgdXJsLCBicm93c2VyQnVpbGRQYXRoKToKICAgICAgICAgc2VsZi5s
YXVuY2hQcm9jZXNzKGJ1aWxkRGlyPWJyb3dzZXJCdWlsZFBhdGgsIGFwcE5hbWU9J0dvb2dsZSBD
aHJvbWUgQ2FuYXJ5LmFwcCcsIHVybD11cmwsIGFyZ3M9WyctLWFyZ3MnLCAnLS1ob21lcGFnZScs
IHVybCwgJy0td2luZG93LXNpemU9e3dpZHRofSx7aGVpZ2h0fScuZm9ybWF0KHdpZHRoPWludChz
ZWxmLnNjcmVlblNpemUoKS53aWR0aCksIGhlaWdodD1pbnQoc2VsZi5zY3JlZW5TaXplKCkuaGVp
Z2h0KSldKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVu
bmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9maXJlZm94X2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfZmlyZWZveF9kcml2
ZXIucHkKaW5kZXggYWI0OWM3ODllMzE2YzI1OTEzZDlkZDZlODliZjZlMGIwNzIzODdjYi4uZDA2
MWVlNGNjMDAzZDdlMjdkYmUyOTdkMDk3MjM4ZmEyY2Q4OTNkOSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9maXJl
Zm94X2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2ZpcmVmb3hfZHJpdmVyLnB5CkBAIC0xMyw2ICsxMyw3IEBA
IF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgT1NYRmlyZWZveERy
aXZlcihPU1hCcm93c2VyRHJpdmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0gJ29yZy5tb3pp
bGxhLmZpcmVmb3gnCisgICAgYnJvd3Nlcl9uYW1lID0gJ2ZpcmVmb3gnCiAKICAgICBkZWYgbGF1
bmNoVXJsKHNlbGYsIHVybCwgYnJvd3NlckJ1aWxkUGF0aCk6CiAgICAgICAgIHNlbGYubGF1bmNo
UHJvY2VzcyhidWlsZERpcj1icm93c2VyQnVpbGRQYXRoLCBhcHBOYW1lPSdGaXJlZm94LmFwcCcs
IHVybD11cmwsIGFyZ3M9W3VybCwgJy0tYXJncycsICctd2lkdGgnLCBzdHIoaW50KHNlbGYuc2Ny
ZWVuU2l6ZSgpLndpZHRoKSksICctaGVpZ2h0Jywgc3RyKGludChzZWxmLnNjcmVlblNpemUoKS5o
ZWlnaHQpKV0pCkBAIC0yMCw2ICsyMSw3IEBAIGNsYXNzIE9TWEZpcmVmb3hEcml2ZXIoT1NYQnJv
d3NlckRyaXZlcik6CiAKIGNsYXNzIE9TWEZpcmVmb3hOaWdodGx5RHJpdmVyKE9TWEJyb3dzZXJE
cml2ZXIpOgogICAgIGJ1bmRsZUlkZW50aWZpZXIgPSAnb3JnLm1vemlsbGEubmlnaHRseScKKyAg
ICBicm93c2VyX25hbWUgPSAnZmlyZWZveC1uaWdodGx5JwogCiAgICAgZGVmIGxhdW5jaFVybChz
ZWxmLCB1cmwsIGJyb3dzZXJCdWlsZFBhdGgpOgogICAgICAgICBzZWxmLmxhdW5jaFByb2Nlc3Mo
YnVpbGREaXI9YnJvd3NlckJ1aWxkUGF0aCwgYXBwTmFtZT0nRmlyZWZveE5pZ2h0bHkuYXBwJywg
dXJsPXVybCwgYXJncz1bdXJsLCAnLS1hcmdzJywgJy13aWR0aCcsIHN0cihpbnQoc2VsZi5zY3Jl
ZW5TaXplKCkud2lkdGgpKSwgJy1oZWlnaHQnLCBzdHIoaW50KHNlbGYuc2NyZWVuU2l6ZSgpLmhl
aWdodCkpXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZl
ci5weQppbmRleCA3NDQyODQ3OGIzNjMzNzk2NzdlNzk4N2I1MWRiNGQ5YTU0MGE4MjJmLi5jYTQ2
MWVhOWVhMjBlOTE2MjJkYmEzZGNhNTM1MmE0M2NiMTdkMjdmIDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X3NhZmFy
aV9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2Jyb3dzZXJfZHJpdmVyL29zeF9zYWZhcmlfZHJpdmVyLnB5CkBAIC0xNSw2ICsxNSw3IEBAIF9s
b2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgT1NYU2FmYXJpRHJpdmVy
KE9TWEJyb3dzZXJEcml2ZXIpOgogICAgIGJ1bmRsZUlkZW50aWZpZXIgPSAnY29tLmFwcGxlLlNh
ZmFyaScKKyAgICBicm93c2VyX25hbWUgPSAnc2FmYXJpJwogCiAgICAgZGVmIHByZXBhcmVFbnYo
c2VsZiwgZGV2aWNlSUQpOgogICAgICAgICBzZWxmLnNhZmFyaVByb2Nlc3MgPSBOb25lCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZ2VuZXJpY19m
YWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2dlbmVy
aWNfZmFjdG9yeS5weQppbmRleCBjZWJlY2I0Nzg0MDQyNDlkMmY4YjE3NTNiYTI2MGViMTEzYzU3
OGNjLi5iZGZmMzkyNzQ3NGQzMjdlYmYyMWE4MDg2NmI1ODNmYTAzODdmMTc3IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZ2VuZXJpY19mYWN0b3J5
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9nZW5lcmlj
X2ZhY3RvcnkucHkKQEAgLTMsOCArMyw2IEBACiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiAK
LWZyb20gdXRpbHMgaW1wb3J0IGxvYWRNb2R1bGUsIE1vZHVsZU5vdEZvdW5kRXJyb3IKLQogCiBf
bG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKQEAgLTE0LDE4ICsxMiw5IEBAIGNs
YXNzIEdlbmVyaWNGYWN0b3J5KG9iamVjdCk6CiAgICAgcHJvZHVjdHMgPSBOb25lCiAKICAgICBA
Y2xhc3NtZXRob2QKLSAgICBkZWYgaXRlcmF0ZUdldEl0ZW0oY2xzLCBvcHRpb25zLCBrZXlzKToK
LSAgICAgICAgcmV0ID0gb3B0aW9ucwotICAgICAgICBmb3Iga2V5IGluIGtleXM6Ci0gICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmV0ID0gcmV0Ll9fZ2V0aXRlbV9fKGtleSkKLSAg
ICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAg
ICByZXR1cm4gcmV0CisgICAgZGVmIGNyZWF0ZShjbHMsIGRlc2NyaXB0aW9uKToKKyAgICAgICAg
cmV0dXJuIGNscy5wcm9kdWN0c1tkZXNjcmlwdGlvbl0oKQogCiAgICAgQGNsYXNzbWV0aG9kCi0g
ICAgZGVmIGNyZWF0ZShjbHMsIGRlc2NyaXB0aW9ucyk6Ci0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIHJldHVybiBsb2FkTW9kdWxlKGNscy5pdGVyYXRlR2V0SXRlbShjbHMucHJvZHVjdHMsIGRl
c2NyaXB0aW9ucykpKCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHJh
aXNlCisgICAgZGVmIGFkZChjbHMsIGRlc2NyaXB0aW9uLCBwcm9kdWN0KToKKyAgICAgICAgY2xz
LnByb2R1Y3RzW2Rlc2NyaXB0aW9uXSA9IHByb2R1Y3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvX19pbml0X18u
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJf
ZHJpdmVyL19faW5pdF9fLnB5CmluZGV4IGIzNzZiZjJiZWEyYjZhZjVjZTc5ZDNlM2QzM2M3M2Fk
ZWM0MzRmMTguLjFhMGQ2YmRhYmU5YzE4ODE5ZmZmNmY0MzY1YTRhODRlZWY5NWRhMGMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZl
cl9kcml2ZXIvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9fX2luaXRfXy5weQpAQCAtMTEsMyArMTEsMTkg
QEAKICMgY29kZSBpbiB0aGlzIGZpbGUgc28gdGhhdCBjYWxsZXJzIGNhbiBvcHQtaW4gYXMgdGhl
eSB3YW50LiAgVGhpcyBhbHNvCiAjIGFsbG93cyBkaWZmZXJlbnQgY2FsbGVycyB0byBjaG9vc2Ug
ZGlmZmVyZW50IGluaXRpYWxpemF0aW9uIGNvZGUsCiAjIGFzIG5lY2Vzc2FyeS4KK2ltcG9ydCBv
cworaW1wb3J0IGltcAorCitmcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1w
b3J0IGxvYWRfc3ViY2xhc3NlcworZnJvbSBodHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9yeSBpbXBv
cnQgSFRUUFNlcnZlckRyaXZlckZhY3RvcnkKKworCitkZWYgaHR0cF9zZXJ2ZXJfZHJpdmVyX2xv
YWRlcihodHRwX3NlcnZlcl9kcml2ZXJfY2xhc3MpOgorICAgIGlmIGh0dHBfc2VydmVyX2RyaXZl
cl9jbGFzcy5uYW1lOgorICAgICAgICBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeS5hZGQoaHR0cF9z
ZXJ2ZXJfZHJpdmVyX2NsYXNzLm5hbWUsIGh0dHBfc2VydmVyX2RyaXZlcl9jbGFzcykKKworCits
b2FkX3N1YmNsYXNzZXMoCisgICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNw
YXRoKF9fZmlsZV9fKSksCisgICAgYmFzZV9jbGFzc19uYW1lPSdIVFRQU2VydmVyRHJpdmVyJywK
KyAgICBsb2FkZXI9aHR0cF9zZXJ2ZXJfZHJpdmVyX2xvYWRlcikKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0
cF9zZXJ2ZXJfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVu
bmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkKaW5kZXggOWQyOWM2
MzZiOTYwYjRjOGUyMDkyODIyZWI0YTI4YmI0N2Y2NWVmNC4uYWE3MDE5MGVhOGUyNjU4MmYwOTFi
YTgyMGVmOWFhZTUyZjU5MDI2NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVy
X2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkKQEAgLTQsNiArNCw3IEBAIGZyb20gYWJjIGlt
cG9ydCBhYnN0cmFjdG1ldGhvZAogCiAKIGNsYXNzIEhUVFBTZXJ2ZXJEcml2ZXIob2JqZWN0KToK
KyAgICBuYW1lID0gTm9uZQogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBzZXJ2ZShzZWxm
LCB3ZWJSb290KToKICAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2
ZXJfZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9o
dHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkucHkKaW5kZXggZjhl
ODUwNjY2ZWVkYjY2YjYyOTEzZmQ0ODgwNzk3Njk2ZmNjY2I1Ni4uODEwZDk1NDNiMGM1MDAxODZh
Mzk4ZGUwYjU0MDkxZmNiMDI2ZjYyYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXJf
ZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
aHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5LnB5CkBAIC01LDEy
ICs1LDcgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBvcwogCiBmcm9tIHdlYmtpdHB5LmJlbmNobWFy
a19ydW5uZXIuZ2VuZXJpY19mYWN0b3J5IGltcG9ydCBHZW5lcmljRmFjdG9yeQotZnJvbSB3ZWJr
aXRweS5iZW5jaG1hcmtfcnVubmVyLnV0aWxzIGltcG9ydCBsb2FkSlNPTkZyb21GaWxlCi0KLQot
ZHJpdmVyRmlsZU5hbWUgPSAnaHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29uJwogCiAKIGNsYXNzIEhU
VFBTZXJ2ZXJEcml2ZXJGYWN0b3J5KEdlbmVyaWNGYWN0b3J5KToKLQotICAgIHByb2R1Y3RzID0g
bG9hZEpTT05Gcm9tRmlsZShvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwg
ZHJpdmVyRmlsZU5hbWUpKQorICAgIHByb2R1Y3RzID0ge30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9z
ZXJ2ZXJfZHJpdmVycy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVu
bmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXJzLmpzb24KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiYjNiY2RjYjY5ZDRlNTUzMWM0OTllZDlhNjdlODNkMmE3
NzI5ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9o
dHRwX3NlcnZlcl9kcml2ZXJzLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLXsK
LSAgIlNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIiOiB7Ci0gICAgIm1vZHVsZU5hbWUiOiAiU2ltcGxl
SFRUUFNlcnZlckRyaXZlciIsIAotICAgICJmaWxlUGF0aCI6ICJodHRwX3NlcnZlcl9kcml2ZXIu
c2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlciIKLSAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVf
aHR0cF9zZXJ2ZXJfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5Cmlu
ZGV4IDUwNTUxZTlkYjk4MDAzNGVhNThlNzJmYzFlM2M4MGU3ODhjYTgwOTAuLjY0OTU1ZGY5MTQ0
ZDU0NzBjNjQ4MjA4OWFiNzc4MDRkOTkzNDZhOWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBf
c2VydmVyX2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkKQEAg
LTE4LDYgKzE4LDcgQEAgY2xhc3MgU2ltcGxlSFRUUFNlcnZlckRyaXZlcihIVFRQU2VydmVyRHJp
dmVyKToKIAogICAgICIiIlRoaXMgY2xhc3MgZGVwZW5kcyBvbiB1bml4IGVudmlyb25tZW50LCBu
ZWVkIHRvIGJlIG1vZGlmaWVkIHRvIGFjaGlldmUgY3Jvc3NwbGF0Zm9ybSBjb21wYWJpbGl0eQog
ICAgICIiIgorICAgIG5hbWUgPSAnU2ltcGxlSFRUUFNlcnZlckRyaXZlcicKIAogICAgIGRlZiBf
X2luaXRfXyhzZWxmKToKICAgICAgICAgc2VsZi5zZXJ2ZXJfcHJvY2VzcyA9IE5vbmUKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGlscy5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGlscy5weQppbmRleCBi
YzMyNGUyMmM3NTlkODFiMDljODM0Y2Q2ZjYxOGE4NzE3ZGRkZWViLi45ODVlMmZkNDAxOGJhZWUw
MDE4ODViMzFkOWZkYjVlMGRhM2VhNDJkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2JlbmNobWFya19ydW5uZXIvdXRpbHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL3V0aWxzLnB5CkBAIC0xLDI1ICsxLDMzIEBACiAjIS91c3IvYmlu
L2VudiBweXRob24KIAotaW1wb3J0IGpzb24KK2ltcG9ydCBpbXAKK2ltcG9ydCBpbnNwZWN0CiBp
bXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc2h1dGlsCitp
bXBvcnQgc3lzCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKLWNs
YXNzIE1vZHVsZU5vdEZvdW5kRXJyb3IoRXhjZXB0aW9uKToKLSAgICBwYXNzCisjIEJvcnJvdyBm
b2xsb3dpbmcgY29kZSBmcm9tIHN0YWNrb3ZlcmZsb3cKKyMgTGluazogaHR0cDovL3N0YWNrb3Zl
cmZsb3cuY29tL3F1ZXN0aW9ucy8xMTQ2MTM1Ni9pc3N1YmNsYXNzLXJldHVybnMtZmxhc2Utb24t
dGhlLXNhbWUtY2xhc3MtaW1wb3J0ZWQtZnJvbS1kaWZmZXJlbnQtcGF0aHMKK2RlZiBpc19zdWJj
bGFzcyhjaGlsZCwgcGFyZW50X25hbWUpOgorICAgIHJldHVybiBpbnNwZWN0LmlzY2xhc3MoY2hp
bGQpIGFuZCBwYXJlbnRfbmFtZSBpbiBbY2xzLl9fbmFtZV9fIGZvciBjbHMgaW4gaW5zcGVjdC5n
ZXRtcm8oY2hpbGQpXQogCiAKLWRlZiBsb2FkTW9kdWxlKG1vZHVsZURlc2MpOgotICAgIHRyeToK
LSAgICAgICAgcmV0ID0gZ2V0YXR0cihfX2ltcG9ydF9fKG1vZHVsZURlc2NbJ2ZpbGVQYXRoJ10s
IGdsb2JhbHMoKSwgbG9jYWxzKCksIG1vZHVsZURlc2NbJ21vZHVsZU5hbWUnXSwgLTEpLCBtb2R1
bGVEZXNjWydtb2R1bGVOYW1lJ10pCi0gICAgICAgIHJldHVybiByZXQKLSAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGVycm9yOgotICAgICAgICByYWlzZSBNb2R1bGVOb3RGb3VuZEVycm9yKCdFcnJv
ciBsb2FkaW5nIG1vZHVsZSAoJXMpIHdpdGggcGF0aCglcyk6IHslc30nICUgKG1vZHVsZURlc2Nb
J21vZHVsZU5hbWUnXSwgbW9kdWxlRGVzY1snZmlsZVBhdGgnXSwgZXJyb3IpKQorZGVmIGxvYWRf
c3ViY2xhc3NlcyhkaXJuYW1lLCBiYXNlX2NsYXNzX25hbWUsIGxvYWRlcik6CisgICAgZm9yIGZp
bGVuYW1lIGluIG9zLmxpc3RkaXIoZGlybmFtZSk6CisgICAgICAgIGlmIG5vdCBmaWxlbmFtZS5l
bmRzd2l0aCgnLnB5Jykgb3IgZmlsZW5hbWUgaW4gWydfX2luaXRfXy5weSddOgorICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgbW9kdWxlX25hbWUgPSBmaWxlbmFtZVs6LTNdCisgICAgICAg
IG1vZHVsZSA9IGltcC5sb2FkX3NvdXJjZShtb2R1bGVfbmFtZSwgb3MucGF0aC5qb2luKGRpcm5h
bWUsIGZpbGVuYW1lKSkKKyAgICAgICAgZm9yIGl0ZW1fbmFtZSBpbiBkaXIobW9kdWxlKToKKyAg
ICAgICAgICAgIGl0ZW0gPSBnZXRhdHRyKG1vZHVsZSwgaXRlbV9uYW1lKQorICAgICAgICAgICAg
aWYgaXNfc3ViY2xhc3MoaXRlbSwgYmFzZV9jbGFzc19uYW1lKToKKyAgICAgICAgICAgICAgICBs
b2FkZXIoaXRlbSkKIAogCiBkZWYgZ2V0UGF0aEZyb21Qcm9qZWN0Um9vdChyZWxhdGl2ZVBhdGhU
b1Byb2plY3RSb290KToKQEAgLTI5LDE1ICszNyw2IEBAIGRlZiBnZXRQYXRoRnJvbVByb2plY3RS
b290KHJlbGF0aXZlUGF0aFRvUHJvamVjdFJvb3QpOgogICAgIHJldHVybiBvcy5wYXRoLmFic3Bh
dGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18p
KSwgcmVsYXRpdmVQYXRoVG9Qcm9qZWN0Um9vdCkpCiAKIAotZGVmIGxvYWRKU09ORnJvbUZpbGUo
ZmlsZVBhdGgpOgotICAgIHRyeToKLSAgICAgICAganNvbk9iamVjdCA9IGpzb24ubG9hZChvcGVu
KGZpbGVQYXRoLCAncicpKQotICAgICAgICBhc3NlcnQoanNvbk9iamVjdCkKLSAgICAgICAgcmV0
dXJuIGpzb25PYmplY3QKLSAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycm9yOgotICAgICAgICBy
YWlzZSBFeGNlcHRpb24oIkludmFsaWQganNvbiBmb3JtYXQgb3IgZW1wdHkganNvbiB3YXMgZm91
bmQgaW4gJXMgLSBFcnJvcjogJXMiICUgKGZpbGVQYXRoLCBlcnJvcikpCi0KLQogZGVmIGZvcmNl
UmVtb3ZlKHBhdGgpOgogICAgIHRyeToKICAgICAgICAgc2h1dGlsLnJtdHJlZShwYXRoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255383</attachid>
            <date>2015-06-22 18:08:14 -0700</date>
            <delta_ts>2015-06-22 20:48:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146175-20150622180732.patch</filename>
            <type>text/plain</type>
            <size>25880</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1Nzg5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2JmNjU4ZThjNTAyOGU4MDQyYzE5ZGQ2YzNmMjMwMDky
Y2IwODc0OS4uMWJlNDg3ZTQ1ZjhmMjU4YWQzMDg1OGRkMzY3YTcwOWRkMGZlOGMzYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDE1LTA2LTIyICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgorCisgICAg
ICAgIEdldCByaWQgb2YgZmFjdG9yeSBqc29uIGZpbGVzIGluIGJlbmNobWFya19ydW5uZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjE3NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCByaWQgb2Yg
ZmFjdG9yeSBqc29uIGZpbGVzIGluIGJlbmNobWFya19ydW5uZXIgYW5kIHJlZmFjdG9yaW5nIHRo
ZSBjb2RlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jl
bmNobWFya19idWlsZGVyL19faW5pdF9fLnB5OgorICAgICAgICAoYmVuY2htYXJrX2J1aWxkZXJf
bG9hZGVyKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVu
Y2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJfZmFjdG9yeS5weToKKyAgICAgICAgKEJl
bmNobWFya0J1aWxkZXJGYWN0b3J5KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJzLmpzb246IFJl
bW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNo
bWFya19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHk6CisgICAgICAgIChHZW5l
cmljQmVuY2htYXJrQnVpbGRlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHk6CisgICAgICAgIChCZW5jaG1hcmtSdW5uZXIu
X19pbml0X18pOgorICAgICAgICAoQmVuY2htYXJrUnVubmVyLmV4ZWN1dGUpOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9fX2luaXRf
Xy5weToKKyAgICAgICAgKGJyb3dzZXJfZHJpdmVyX2xvYWRlcik6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVy
LnB5OgorICAgICAgICAoQnJvd3NlckRyaXZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyX2ZhY3Rvcnku
cHk6CisgICAgICAgIChCcm93c2VyRHJpdmVyRmFjdG9yeSk6CisgICAgICAgIChCcm93c2VyRHJp
dmVyRmFjdG9yeS5hdmFpbGFibGVfcGxhdGZvcm1zKToKKyAgICAgICAgKEJyb3dzZXJEcml2ZXJG
YWN0b3J5LmF2YWlsYWJsZV9icm93c2Vycyk6CisgICAgICAgIChCcm93c2VyRHJpdmVyRmFjdG9y
eS5hZGRfYnJvd3Nlcl9kcml2ZXIpOgorICAgICAgICAoQnJvd3NlckRyaXZlckZhY3RvcnkuY3Jl
YXRlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nl
cl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJzLmpzb246IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93c2VyX2Ry
aXZlci5weToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIpOgorICAgICAgICAoT1NYQnJvd3Nl
ckRyaXZlci5wcmVwYXJlRW52KToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIudGVybWluYXRl
UHJvY2Vzc2VzKToKKyAgICAgICAgKE9TWEJyb3dzZXJEcml2ZXIuc2NyZWVuU2l6ZSk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29z
eF9jaHJvbWVfZHJpdmVyLnB5OgorICAgICAgICAoT1NYQ2hyb21lRHJpdmVyKToKKyAgICAgICAg
KE9TWENocm9tZUNhbmFyeURyaXZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9maXJlZm94X2RyaXZlci5weToKKyAgICAg
ICAgKE9TWEZpcmVmb3hEcml2ZXIpOgorICAgICAgICAoT1NYRmlyZWZveE5pZ2h0bHlEcml2ZXIp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2Ry
aXZlci9vc3hfc2FmYXJpX2RyaXZlci5weToKKyAgICAgICAgKE9TWFNhZmFyaURyaXZlcik6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2dlbmVyaWNfZmFjdG9y
eS5weToKKyAgICAgICAgKEdlbmVyaWNGYWN0b3J5LmNyZWF0ZSk6CisgICAgICAgIChHZW5lcmlj
RmFjdG9yeS5hZGQpOgorICAgICAgICAoR2VuZXJpY0ZhY3RvcnkuaXRlcmF0ZUdldEl0ZW0pOiBE
ZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRw
X3NlcnZlcl9kcml2ZXIvX19pbml0X18ucHk6CisgICAgICAgIChodHRwX3NlcnZlcl9kcml2ZXJf
bG9hZGVyKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0
cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlci5weToKKyAgICAgICAgKEhUVFBTZXJ2
ZXJEcml2ZXIpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9o
dHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkucHk6CisgICAgICAg
IChIVFRQU2VydmVyRHJpdmVyRmFjdG9yeSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXJzLmpz
b246IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5OgorICAgICAg
ICAoU2ltcGxlSFRUUFNlcnZlckRyaXZlcik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL3V0aWxzLnB5OgorICAgICAgICAoaXNfc3ViY2xhc3MpOgorICAgICAg
ICAobG9hZF9zdWJjbGFzc2VzKToKKyAgICAgICAgKE1vZHVsZU5vdEZvdW5kRXJyb3IpOiBEZWxl
dGVkLgorICAgICAgICAobG9hZE1vZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChsb2FkSlNPTkZy
b21GaWxlKTogRGVsZXRlZC4KKwogMjAxNS0wNi0xOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXggYWZ0ZXIgcjE0NjEyNS4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRl
ci9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9i
ZW5jaG1hcmtfYnVpbGRlci9fX2luaXRfXy5weQppbmRleCBiMzc2YmYyYmVhMmI2YWY1Y2U3OWQz
ZTNkMzNjNzNhZGVjNDM0ZjE4Li5hMzJmMDAyZDFiNjgyZTY2ZWFmZjlhMDUwYzdiNjJmMTEwOGQw
ZDY4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YmVuY2htYXJrX2J1aWxkZXIvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL19faW5pdF9fLnB5CkBAIC0xMSwz
ICsxMSwxOCBAQAogIyBjb2RlIGluIHRoaXMgZmlsZSBzbyB0aGF0IGNhbGxlcnMgY2FuIG9wdC1p
biBhcyB0aGV5IHdhbnQuICBUaGlzIGFsc28KICMgYWxsb3dzIGRpZmZlcmVudCBjYWxsZXJzIHRv
IGNob29zZSBkaWZmZXJlbnQgaW5pdGlhbGl6YXRpb24gY29kZSwKICMgYXMgbmVjZXNzYXJ5Lgor
aW1wb3J0IG9zCisKK2Zyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGlscyBpbXBvcnQg
bG9hZF9zdWJjbGFzc2VzCitmcm9tIGJlbmNobWFya19idWlsZGVyX2ZhY3RvcnkgaW1wb3J0IEJl
bmNobWFya0J1aWxkZXJGYWN0b3J5CisKKworZGVmIGJlbmNobWFya19idWlsZGVyX2xvYWRlcihi
ZW5jaG1hcmtfYnVpbGRlcl9jbGFzcyk6CisgICAgaWYgYmVuY2htYXJrX2J1aWxkZXJfY2xhc3Mu
YnVpbGRlcl9uYW1lOgorICAgICAgICBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5hZGQoYmVuY2ht
YXJrX2J1aWxkZXJfY2xhc3MuYnVpbGRlcl9uYW1lLCBiZW5jaG1hcmtfYnVpbGRlcl9jbGFzcykK
KworCitsb2FkX3N1YmNsYXNzZXMoCisgICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0
aC5hYnNwYXRoKF9fZmlsZV9fKSksCisgICAgYmFzZV9jbGFzc19uYW1lPSdHZW5lcmljQmVuY2ht
YXJrQnVpbGRlcicsCisgICAgbG9hZGVyPWJlbmNobWFya19idWlsZGVyX2xvYWRlcikKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtf
YnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcl9mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVy
X2ZhY3RvcnkucHkKaW5kZXggOTYwMWQzZjE1ZjFmMDM2NDMzOWFlMjRkNGY4ZWUxYWM4NjYyMjQ3
My4uYzYyMDBiOWY3ZWVjYzBhYTk4NzU3MDE4ZDMwOGY4ZjEwYjZiMjAzZiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVy
L2JlbmNobWFya19idWlsZGVyX2ZhY3RvcnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19idWlsZGVyL2JlbmNobWFya19idWlsZGVyX2Zh
Y3RvcnkucHkKQEAgLTUsMTIgKzUsOCBAQCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiAKIGZyb20g
d2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci5nZW5lcmljX2ZhY3RvcnkgaW1wb3J0IEdlbmVyaWNG
YWN0b3J5Ci1mcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRpbHMgaW1wb3J0IGxvYWRK
U09ORnJvbUZpbGUKLQotCi1idWlsZGVyRmlsZU5hbWUgPSAnYmVuY2htYXJrX2J1aWxkZXJzLmpz
b24nCiAKIAogY2xhc3MgQmVuY2htYXJrQnVpbGRlckZhY3RvcnkoR2VuZXJpY0ZhY3RvcnkpOgog
Ci0gICAgcHJvZHVjdHMgPSBsb2FkSlNPTkZyb21GaWxlKG9zLnBhdGguam9pbihvcy5wYXRoLmRp
cm5hbWUoX19maWxlX18pLCBidWlsZGVyRmlsZU5hbWUpKQorICAgIHByb2R1Y3RzID0ge30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1h
cmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcnMuanNvbiBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfYnVpbGRlci9iZW5jaG1hcmtfYnVpbGRlcnMu
anNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWY0YmRmM2NmOGZhMDIyYmQ2MDU0
YjFiOTZhMGE2NGU3ZDAzZDMxZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2ht
YXJrX2J1aWxkZXIvYmVuY2htYXJrX2J1aWxkZXJzLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSw2
ICswLDAgQEAKLXsKLSAgICAiR2VuZXJpY0JlbmNobWFya0J1aWxkZXIiOiB7Ci0gICAgICAgICJm
aWxlUGF0aCI6ICJiZW5jaG1hcmtfYnVpbGRlci5nZW5lcmljX2JlbmNobWFya19idWlsZGVyIiwK
LSAgICAgICAgIm1vZHVsZU5hbWUiOiAiR2VuZXJpY0JlbmNobWFya0J1aWxkZXIiCi0gICAgfQot
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jl
bmNobWFya19idWlsZGVyL2dlbmVyaWNfYmVuY2htYXJrX2J1aWxkZXIucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19i
ZW5jaG1hcmtfYnVpbGRlci5weQppbmRleCAwZTBhYzM2OTE4MTg1ZDc3ZmIzZDM1YTk1Y2ZjYmIw
MjFlMGMwODI3Li42OWU0ZTY4NTIxZjU0YzU5YTUyZmM4M2NiMjE5MmYwNzAxZWQ5OGY2IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJr
X2J1aWxkZXIvZ2VuZXJpY19iZW5jaG1hcmtfYnVpbGRlci5weQorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYmVuY2htYXJrX2J1aWxkZXIvZ2VuZXJpY19iZW5j
aG1hcmtfYnVpbGRlci5weQpAQCAtMTYsNiArMTYsOCBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dn
ZXIoX19uYW1lX18pCiAKIGNsYXNzIEdlbmVyaWNCZW5jaG1hcmtCdWlsZGVyKG9iamVjdCk6CiAK
KyAgICBidWlsZGVyX25hbWUgPSAnR2VuZXJpY0JlbmNobWFya0J1aWxkZXInCisKICAgICBkZWYg
cHJlcGFyZShzZWxmLCBuYW1lLCBwbGFuKToKICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAg
ICAgICBzZWxmLndlYlJvb3QgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9iZW5jaG1hcmtfcnVubmVyLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIu
cHkKaW5kZXggNDdlNzhiZDVhMjIyYTcwZGNjYTAwMjU5YmE0OWYyMmI2MThkZjgxZS4uODEwNTA3
MjU2ZjgyMGY5ZDQwZDI1MGEzNWI5MjU5NmQxYmE2MDUzNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2JlbmNobWFya19ydW5uZXIu
cHkKQEAgLTE2LDcgKzE2LDcgQEAgZnJvbSBiZW5jaG1hcmtfYnVpbGRlci5iZW5jaG1hcmtfYnVp
bGRlcl9mYWN0b3J5IGltcG9ydCBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeQogZnJvbSBiZW5jaG1h
cmtfcmVzdWx0cyBpbXBvcnQgQmVuY2htYXJrUmVzdWx0cwogZnJvbSBicm93c2VyX2RyaXZlci5i
cm93c2VyX2RyaXZlcl9mYWN0b3J5IGltcG9ydCBCcm93c2VyRHJpdmVyRmFjdG9yeQogZnJvbSBo
dHRwX3NlcnZlcl9kcml2ZXIuaHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkgaW1wb3J0IEhUVFBT
ZXJ2ZXJEcml2ZXJGYWN0b3J5Ci1mcm9tIHV0aWxzIGltcG9ydCBsb2FkTW9kdWxlLCBnZXRQYXRo
RnJvbVByb2plY3RSb290Citmcm9tIHV0aWxzIGltcG9ydCBnZXRQYXRoRnJvbVByb2plY3RSb290
CiBmcm9tIHV0aWxzIGltcG9ydCB0aW1lb3V0CiAKIApAQCAtMzcsOCArMzcsOCBAQCBjbGFzcyBC
ZW5jaG1hcmtSdW5uZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5wbGFuWydj
b3VudCddID0gY291bnRPdmVycmlkZQogICAgICAgICAgICAgICAgIGlmIGh0dHBTZXJ2ZXJEcml2
ZXJPdmVycmlkZToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5wbGFuWydodHRwX3NlcnZlcl9k
cml2ZXInXSA9IGh0dHBTZXJ2ZXJEcml2ZXJPdmVycmlkZQotICAgICAgICAgICAgICAgIHNlbGYu
YnJvd3NlckRyaXZlciA9IEJyb3dzZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShbcGxhdGZvcm0sIGJy
b3dzZXJdKQotICAgICAgICAgICAgICAgIHNlbGYuaHR0cFNlcnZlckRyaXZlciA9IEhUVFBTZXJ2
ZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShbc2VsZi5wbGFuWydodHRwX3NlcnZlcl9kcml2ZXInXV0p
CisgICAgICAgICAgICAgICAgc2VsZi5icm93c2VyRHJpdmVyID0gQnJvd3NlckRyaXZlckZhY3Rv
cnkuY3JlYXRlKHBsYXRmb3JtLCBicm93c2VyKQorICAgICAgICAgICAgICAgIHNlbGYuaHR0cFNl
cnZlckRyaXZlciA9IEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5LmNyZWF0ZShzZWxmLnBsYW5bJ2h0
dHBfc2VydmVyX2RyaXZlciddKQogICAgICAgICAgICAgICAgIHNlbGYuaHR0cFNlcnZlckRyaXZl
ci5zZXREZXZpY2VJRChkZXZpY2VJRCkKICAgICAgICAgICAgICAgICBzZWxmLmJ1aWxkRGlyID0g
b3MucGF0aC5hYnNwYXRoKGJ1aWxkRGlyKSBpZiBidWlsZERpciBlbHNlIE5vbmUKICAgICAgICAg
ICAgICAgICBzZWxmLm91dHB1dEZpbGUgPSBvdXRwdXRGaWxlCkBAIC02NSw3ICs2NSw3IEBAIGNs
YXNzIEJlbmNobWFya1J1bm5lcihvYmplY3QpOgogICAgICAgICBfbG9nLmluZm8oJ1N0YXJ0IHRv
IGV4ZWN1dGUgdGhlIHBsYW4nKQogICAgICAgICBfbG9nLmluZm8oJ1N0YXJ0IGEgbmV3IGJlbmNo
bWFyaycpCiAgICAgICAgIHJlc3VsdHMgPSBbXQotICAgICAgICBzZWxmLmJlbmNobWFya0J1aWxk
ZXIgPSBCZW5jaG1hcmtCdWlsZGVyRmFjdG9yeS5jcmVhdGUoW3NlbGYucGxhblsnYmVuY2htYXJr
X2J1aWxkZXInXV0pCisgICAgICAgIHNlbGYuYmVuY2htYXJrQnVpbGRlciA9IEJlbmNobWFya0J1
aWxkZXJGYWN0b3J5LmNyZWF0ZShzZWxmLnBsYW5bJ2JlbmNobWFya19idWlsZGVyJ10pCiAKICAg
ICAgICAgd2ViUm9vdCA9IHNlbGYuYmVuY2htYXJrQnVpbGRlci5wcmVwYXJlKHNlbGYucGxhbk5h
bWUsIHNlbGYucGxhbikKICAgICAgICAgZm9yIHggaW4geHJhbmdlKGludChzZWxmLnBsYW5bJ2Nv
dW50J10pKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9icm93c2VyX2RyaXZlci9fX2luaXRfXy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
YmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9fX2luaXRfXy5weQppbmRleCBiMzc2YmYy
YmVhMmI2YWY1Y2U3OWQzZTNkMzNjNzNhZGVjNDM0ZjE4Li4wMTNjMjY1ZTY0MDcyMjRlMzk2MTVi
ZmMyY2VlNWMyYWMxYmY3MjdmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Jl
bmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL19faW5pdF9fLnB5
CkBAIC0xMSwzICsxMSwxOCBAQAogIyBjb2RlIGluIHRoaXMgZmlsZSBzbyB0aGF0IGNhbGxlcnMg
Y2FuIG9wdC1pbiBhcyB0aGV5IHdhbnQuICBUaGlzIGFsc28KICMgYWxsb3dzIGRpZmZlcmVudCBj
YWxsZXJzIHRvIGNob29zZSBkaWZmZXJlbnQgaW5pdGlhbGl6YXRpb24gY29kZSwKICMgYXMgbmVj
ZXNzYXJ5LgoraW1wb3J0IG9zCisKK2Zyb20gd2Via2l0cHkuYmVuY2htYXJrX3J1bm5lci51dGls
cyBpbXBvcnQgbG9hZF9zdWJjbGFzc2VzCitmcm9tIGJyb3dzZXJfZHJpdmVyX2ZhY3RvcnkgaW1w
b3J0IEJyb3dzZXJEcml2ZXJGYWN0b3J5CisKKworZGVmIGJyb3dzZXJfZHJpdmVyX2xvYWRlcihi
cm93c2VyX2RyaXZlcl9jbGFzcyk6CisgICAgaWYgYnJvd3Nlcl9kcml2ZXJfY2xhc3MucGxhdGZv
cm0gYW5kIGJyb3dzZXJfZHJpdmVyX2NsYXNzLmJyb3dzZXJfbmFtZToKKyAgICAgICAgQnJvd3Nl
ckRyaXZlckZhY3RvcnkuYWRkX2Jyb3dzZXJfZHJpdmVyKGJyb3dzZXJfZHJpdmVyX2NsYXNzLnBs
YXRmb3JtLCBicm93c2VyX2RyaXZlcl9jbGFzcy5icm93c2VyX25hbWUsIGJyb3dzZXJfZHJpdmVy
X2NsYXNzKQorCisKK2xvYWRfc3ViY2xhc3NlcygKKyAgICBkaXJuYW1lPW9zLnBhdGguZGlybmFt
ZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKSwKKyAgICBiYXNlX2NsYXNzX25hbWU9J0Jyb3dz
ZXJEcml2ZXInLAorICAgIGxvYWRlcj1icm93c2VyX2RyaXZlcl9sb2FkZXIpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIv
YnJvd3Nlcl9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5u
ZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXIucHkKaW5kZXggNDM3YThjYmNkMzhhZTE0
Njc0MWU5NGI3NzcxMDUzMGNjNjJlMGRjOC4uMGY1NmI4MzQ2ZDFjMDU5OTM0Y2NjMGFlYzRhMGM4
NDM3NjU3NWY4OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9icm93c2VyX2RyaXZl
ci5weQpAQCAtNCw2ICs0LDggQEAgaW1wb3J0IGFiYwogCiAKIGNsYXNzIEJyb3dzZXJEcml2ZXIo
b2JqZWN0KToKKyAgICBwbGF0Zm9ybSA9IE5vbmUKKyAgICBicm93c2VyX25hbWUgPSBOb25lCiAK
ICAgICBAYWJjLmFic3RyYWN0bWV0aG9kCiAgICAgZGVmIHByZXBhcmVFbnYoc2VsZiwgZGV2aWNl
SUQpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVyX2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJf
ZmFjdG9yeS5weQppbmRleCBhMTQwZWMwN2YzOTkxYjdlZTVmNWJkNjg3ZmE4M2Y1OWRiMzI5Nzdl
Li43YjI1NWQ3ODExNzAxNzJlMDFiOTQ4OGY3YzdlOTg4MTk5NmU1NGIzIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJv
d3Nlcl9kcml2ZXJfZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJfZmFjdG9yeS5weQpAQCAt
NCwyNSArNCwzMCBAQCBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogCi1m
cm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIuZ2VuZXJpY19mYWN0b3J5IGltcG9ydCBHZW5l
cmljRmFjdG9yeQotZnJvbSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLnV0aWxzIGltcG9ydCBs
b2FkSlNPTkZyb21GaWxlCiAKK2NsYXNzIEJyb3dzZXJEcml2ZXJGYWN0b3J5KG9iamVjdCk6CiAK
LWRyaXZlckZpbGVOYW1lID0gJ2Jyb3dzZXJfZHJpdmVycy5qc29uJworICAgIGJyb3dzZXJfZHJp
dmVycyA9IHt9CisgICAgcGxhdGZvcm1zID0gc2V0KCkKKyAgICBicm93c2VycyA9IHNldCgpCiAK
IAotY2xhc3MgQnJvd3NlckRyaXZlckZhY3RvcnkoR2VuZXJpY0ZhY3RvcnkpOgotCi0gICAgcHJv
ZHVjdHMgPSBsb2FkSlNPTkZyb21GaWxlKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19m
aWxlX18pLCBkcml2ZXJGaWxlTmFtZSkpCi0KICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgYXZh
aWxhYmxlX3BsYXRmb3JtcyhjbHMpOgotICAgICAgICByZXR1cm4gY2xzLnByb2R1Y3RzLmtleXMo
KQorICAgICAgICByZXR1cm4gbGlzdChjbHMucGxhdGZvcm1zKQogCiAgICAgQGNsYXNzbWV0aG9k
CiAgICAgZGVmIGF2YWlsYWJsZV9icm93c2VycyhjbHMpOgotICAgICAgICBicm93c2VycyA9IFtd
Ci0gICAgICAgIGZvciBwbGF0Zm9ybSBpbiBjbHMucHJvZHVjdHMudmFsdWVzKCk6Ci0gICAgICAg
ICAgICBmb3IgYnJvd3NlciBpbiBwbGF0Zm9ybToKLSAgICAgICAgICAgICAgICBicm93c2Vycy5h
cHBlbmQoYnJvd3NlcikKLSAgICAgICAgcmV0dXJuIGJyb3dzZXJzCisgICAgICAgIHJldHVybiBs
aXN0KGNscy5icm93c2VycykKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBhZGRfYnJvd3Nl
cl9kcml2ZXIoY2xzLCBwbGF0Zm9ybSwgYnJvd3Nlcl9uYW1lLCBicm93c2VyX2RyaXZlcl9jbGFz
cyk6CisgICAgICAgIGNscy5wbGF0Zm9ybXMuYWRkKHBsYXRmb3JtKQorICAgICAgICBjbHMuYnJv
d3NlcnMuYWRkKGJyb3dzZXJfbmFtZSkKKyAgICAgICAgaWYgcGxhdGZvcm0gbm90IGluIGNscy5i
cm93c2VyX2RyaXZlcnM6CisgICAgICAgICAgICBjbHMuYnJvd3Nlcl9kcml2ZXJzW3BsYXRmb3Jt
XSA9IHt9CisgICAgICAgIGNscy5icm93c2VyX2RyaXZlcnNbcGxhdGZvcm1dW2Jyb3dzZXJfbmFt
ZV0gPSBicm93c2VyX2RyaXZlcl9jbGFzcworCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGNy
ZWF0ZShjbHMsIHBsYXRmb3JtLCBicm93c2VyX25hbWUpOgorICAgICAgICByZXR1cm4gY2xzLmJy
b3dzZXJfZHJpdmVyc1twbGF0Zm9ybV1bYnJvd3Nlcl9uYW1lXSgpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvYnJvd3Nl
cl9kcml2ZXJzLmpzb24gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIv
YnJvd3Nlcl9kcml2ZXIvYnJvd3Nlcl9kcml2ZXJzLmpzb24KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGUyN2NiZmZiMjgzZmVmZWY0NTZlNDA2NThmOGZlMDFmMTY4ZjM1NzMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL2Jyb3dzZXJfZHJpdmVycy5q
c29uCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotewotICAgICJvc3giOiB7Ci0gICAg
ICAgICJjaHJvbWUiOiB7Ci0gICAgICAgICAgICAibW9kdWxlTmFtZSI6ICJPU1hDaHJvbWVEcml2
ZXIiLCAKLSAgICAgICAgICAgICJmaWxlUGF0aCI6ICJicm93c2VyX2RyaXZlci5vc3hfY2hyb21l
X2RyaXZlciIKLSAgICAgICAgfSwKLSAgICAgICAgImNocm9tZS1jYW5hcnkiOiB7Ci0gICAgICAg
ICAgICAibW9kdWxlTmFtZSI6ICJPU1hDaHJvbWVDYW5hcnlEcml2ZXIiLCAKLSAgICAgICAgICAg
ICJmaWxlUGF0aCI6ICJicm93c2VyX2RyaXZlci5vc3hfY2hyb21lX2RyaXZlciIKLSAgICAgICAg
fSwKLSAgICAgICAgImZpcmVmb3giOiB7Ci0gICAgICAgICAgICAibW9kdWxlTmFtZSI6ICJPU1hG
aXJlZm94RHJpdmVyIiwgCi0gICAgICAgICAgICAiZmlsZVBhdGgiOiAiYnJvd3Nlcl9kcml2ZXIu
b3N4X2ZpcmVmb3hfZHJpdmVyIgotICAgICAgICB9LAotICAgICAgICAiZmlyZWZveC1uaWdodGx5
IjogewotICAgICAgICAgICAgIm1vZHVsZU5hbWUiOiAiT1NYRmlyZWZveE5pZ2h0bHlEcml2ZXIi
LCAKLSAgICAgICAgICAgICJmaWxlUGF0aCI6ICJicm93c2VyX2RyaXZlci5vc3hfZmlyZWZveF9k
cml2ZXIiCi0gICAgICAgIH0sCi0gICAgICAgICJzYWZhcmkiOiB7Ci0gICAgICAgICAgICAibW9k
dWxlTmFtZSI6ICJPU1hTYWZhcmlEcml2ZXIiLCAKLSAgICAgICAgICAgICJmaWxlUGF0aCI6ICJi
cm93c2VyX2RyaXZlci5vc3hfc2FmYXJpX2RyaXZlciIKLSAgICAgICAgfQotICAgIH0gCi19CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nl
cl9kcml2ZXIvb3N4X2Jyb3dzZXJfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9icm93c2VyX2RyaXZlci5weQppbmRl
eCAyZGM3ZWFhZTEzMDU2YmU5MDQxZmFmY2Q4Y2YyMTkxY2JiYWY2N2UzLi5mYTdhZGUxMjhkMmU0
YzAyYTZjODQyZDE1ODA3YThlNGI2MjJlOWM2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2Jyb3dzZXJfZHJpdmVy
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2Vy
X2RyaXZlci9vc3hfYnJvd3Nlcl9kcml2ZXIucHkKQEAgLTMsOSArMyw2IEBAIGltcG9ydCBsb2dn
aW5nCiBpbXBvcnQgb3MKIGltcG9ydCBzdWJwcm9jZXNzCiAKLWZyb20gQXBwS2l0IGltcG9ydCBO
U1J1bm5pbmdBcHBsaWNhdGlvbgotZnJvbSBBcHBLaXQgaW1wb3J0IE5TU2NyZWVuCi1mcm9tIFF1
YXJ0eiBpbXBvcnQgQ0dXYXJwTW91c2VDdXJzb3JQb3NpdGlvbgogZnJvbSBicm93c2VyX2RyaXZl
ciBpbXBvcnQgQnJvd3NlckRyaXZlcgogCiAKQEAgLTE0LDkgKzExLDExIEBAIF9sb2cgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgT1NYQnJvd3NlckRyaXZlcihCcm93c2Vy
RHJpdmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0gTm9uZQorICAgIHBsYXRmb3JtID0gJ29z
eCcKIAogICAgIGRlZiBwcmVwYXJlRW52KHNlbGYsIGRldmljZUlEKToKICAgICAgICAgc2VsZi5j
bG9zZUJyb3dzZXJzKCkKKyAgICAgICAgZnJvbSBRdWFydHogaW1wb3J0IENHV2FycE1vdXNlQ3Vy
c29yUG9zaXRpb24KICAgICAgICAgQ0dXYXJwTW91c2VDdXJzb3JQb3NpdGlvbigoMTAsIDApKQog
CiAgICAgZGVmIGNsb3NlQnJvd3NlcnMoc2VsZik6CkBAIC0zNyw2ICszNiw3IEBAIGNsYXNzIE9T
WEJyb3dzZXJEcml2ZXIoQnJvd3NlckRyaXZlcik6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVm
IHRlcm1pbmF0ZVByb2Nlc3NlcyhjbHMsIGJ1bmRsZUlkZW50aWZpZXIpOgogICAgICAgICBfbG9n
LmluZm8oJ0Nsb3NpbmcgYWxsIHRlcm1pbmF0aW5nIGFsbCBwcm9jZXNzZXMgd2l0aCB0aGUgYnVu
ZGxlIGlkZW50aWZpZXIgJXMnICUgYnVuZGxlSWRlbnRpZmllcikKKyAgICAgICAgZnJvbSBBcHBL
aXQgaW1wb3J0IE5TUnVubmluZ0FwcGxpY2F0aW9uCiAgICAgICAgIHByb2Nlc3NlcyA9IE5TUnVu
bmluZ0FwcGxpY2F0aW9uLnJ1bm5pbmdBcHBsaWNhdGlvbnNXaXRoQnVuZGxlSWRlbnRpZmllcl8o
YnVuZGxlSWRlbnRpZmllcikKICAgICAgICAgZm9yIHByb2Nlc3MgaW4gcHJvY2Vzc2VzOgogICAg
ICAgICAgICAgcHJvY2Vzcy50ZXJtaW5hdGUoKQpAQCAtNDksNCArNDksNSBAQCBjbGFzcyBPU1hC
cm93c2VyRHJpdmVyKEJyb3dzZXJEcml2ZXIpOgogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVm
IHNjcmVlblNpemUoY2xzKToKKyAgICAgICAgZnJvbSBBcHBLaXQgaW1wb3J0IE5TU2NyZWVuCiAg
ICAgICAgIHJldHVybiBOU1NjcmVlbi5tYWluU2NyZWVuKCkuZnJhbWUoKS5zaXplCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2
ZXIvb3N4X2Nocm9tZV9kcml2ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2Nocm9tZV9kcml2ZXIucHkKaW5kZXggMmQxODgy
N2ZhYzFjN2JkNmZkZGZmYjNlMmE0NmM1YThkYjJhNWJkNC4uNDM3ZjEwYWM2ZGI5NWUwN2I4MGQ4
MmUzZTNlMmY4MGUyNTI2YTJiYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9jaHJvbWVfZHJpdmVyLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9v
c3hfY2hyb21lX2RyaXZlci5weQpAQCAtMTMsNiArMTMsNyBAQCBfbG9nID0gbG9nZ2luZy5nZXRM
b2dnZXIoX19uYW1lX18pCiAKIGNsYXNzIE9TWENocm9tZURyaXZlcihPU1hCcm93c2VyRHJpdmVy
KToKICAgICBidW5kbGVJZGVudGlmaWVyID0gJ2NvbS5nb29nbGUuQ2hyb21lJworICAgIGJyb3dz
ZXJfbmFtZSA9ICdjaHJvbWUnCiAKICAgICBkZWYgbGF1bmNoVXJsKHNlbGYsIHVybCwgYnJvd3Nl
ckJ1aWxkUGF0aCk6CiAgICAgICAgIHNlbGYubGF1bmNoUHJvY2VzcyhidWlsZERpcj1icm93c2Vy
QnVpbGRQYXRoLCBhcHBOYW1lPSdHb29nbGUgQ2hyb21lLmFwcCcsIHVybD11cmwsIGFyZ3M9Wyct
LWFyZ3MnLCAnLS1ob21lcGFnZScsIHVybCwgJy0td2luZG93LXNpemU9e3dpZHRofSx7aGVpZ2h0
fScuZm9ybWF0KHdpZHRoPWludChzZWxmLnNjcmVlblNpemUoKS53aWR0aCksIGhlaWdodD1pbnQo
c2VsZi5zY3JlZW5TaXplKCkuaGVpZ2h0KSldKQpAQCAtMjAsNiArMjEsNyBAQCBjbGFzcyBPU1hD
aHJvbWVEcml2ZXIoT1NYQnJvd3NlckRyaXZlcik6CiAKIGNsYXNzIE9TWENocm9tZUNhbmFyeURy
aXZlcihPU1hCcm93c2VyRHJpdmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0gJ2NvbS5nb29n
bGUuQ2hyb21lLmNhbmFyeScKKyAgICBicm93c2VyX25hbWUgPSAnY2hyb21lLWNhbmFyeScKIAog
ICAgIGRlZiBsYXVuY2hVcmwoc2VsZiwgdXJsLCBicm93c2VyQnVpbGRQYXRoKToKICAgICAgICAg
c2VsZi5sYXVuY2hQcm9jZXNzKGJ1aWxkRGlyPWJyb3dzZXJCdWlsZFBhdGgsIGFwcE5hbWU9J0dv
b2dsZSBDaHJvbWUgQ2FuYXJ5LmFwcCcsIHVybD11cmwsIGFyZ3M9WyctLWFyZ3MnLCAnLS1ob21l
cGFnZScsIHVybCwgJy0td2luZG93LXNpemU9e3dpZHRofSx7aGVpZ2h0fScuZm9ybWF0KHdpZHRo
PWludChzZWxmLnNjcmVlblNpemUoKS53aWR0aCksIGhlaWdodD1pbnQoc2VsZi5zY3JlZW5TaXpl
KCkuaGVpZ2h0KSldKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9maXJlZm94X2RyaXZlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfZmlyZWZv
eF9kcml2ZXIucHkKaW5kZXggYWI0OWM3ODllMzE2YzI1OTEzZDlkZDZlODliZjZlMGIwNzIzODdj
Yi4uZDA2MWVlNGNjMDAzZDdlMjdkYmUyOTdkMDk3MjM4ZmEyY2Q4OTNkOSAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2Jyb3dzZXJfZHJpdmVyL29z
eF9maXJlZm94X2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4X2ZpcmVmb3hfZHJpdmVyLnB5CkBAIC0xMyw2ICsx
Myw3IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgT1NYRmly
ZWZveERyaXZlcihPU1hCcm93c2VyRHJpdmVyKToKICAgICBidW5kbGVJZGVudGlmaWVyID0gJ29y
Zy5tb3ppbGxhLmZpcmVmb3gnCisgICAgYnJvd3Nlcl9uYW1lID0gJ2ZpcmVmb3gnCiAKICAgICBk
ZWYgbGF1bmNoVXJsKHNlbGYsIHVybCwgYnJvd3NlckJ1aWxkUGF0aCk6CiAgICAgICAgIHNlbGYu
bGF1bmNoUHJvY2VzcyhidWlsZERpcj1icm93c2VyQnVpbGRQYXRoLCBhcHBOYW1lPSdGaXJlZm94
LmFwcCcsIHVybD11cmwsIGFyZ3M9W3VybCwgJy0tYXJncycsICctd2lkdGgnLCBzdHIoaW50KHNl
bGYuc2NyZWVuU2l6ZSgpLndpZHRoKSksICctaGVpZ2h0Jywgc3RyKGludChzZWxmLnNjcmVlblNp
emUoKS5oZWlnaHQpKV0pCkBAIC0yMCw2ICsyMSw3IEBAIGNsYXNzIE9TWEZpcmVmb3hEcml2ZXIo
T1NYQnJvd3NlckRyaXZlcik6CiAKIGNsYXNzIE9TWEZpcmVmb3hOaWdodGx5RHJpdmVyKE9TWEJy
b3dzZXJEcml2ZXIpOgogICAgIGJ1bmRsZUlkZW50aWZpZXIgPSAnb3JnLm1vemlsbGEubmlnaHRs
eScKKyAgICBicm93c2VyX25hbWUgPSAnZmlyZWZveC1uaWdodGx5JwogCiAgICAgZGVmIGxhdW5j
aFVybChzZWxmLCB1cmwsIGJyb3dzZXJCdWlsZFBhdGgpOgogICAgICAgICBzZWxmLmxhdW5jaFBy
b2Nlc3MoYnVpbGREaXI9YnJvd3NlckJ1aWxkUGF0aCwgYXBwTmFtZT0nRmlyZWZveE5pZ2h0bHku
YXBwJywgdXJsPXVybCwgYXJncz1bdXJsLCAnLS1hcmdzJywgJy13aWR0aCcsIHN0cihpbnQoc2Vs
Zi5zY3JlZW5TaXplKCkud2lkdGgpKSwgJy1oZWlnaHQnLCBzdHIoaW50KHNlbGYuc2NyZWVuU2l6
ZSgpLmhlaWdodCkpXSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2ht
YXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJpX2RyaXZlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9icm93c2VyX2RyaXZlci9vc3hfc2FmYXJp
X2RyaXZlci5weQppbmRleCA3NDQyODQ3OGIzNjMzNzk2NzdlNzk4N2I1MWRiNGQ5YTU0MGE4MjJm
Li5jYTQ2MWVhOWVhMjBlOTE2MjJkYmEzZGNhNTM1MmE0M2NiMTdkMjdmIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvYnJvd3Nlcl9kcml2ZXIvb3N4
X3NhZmFyaV9kcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtf
cnVubmVyL2Jyb3dzZXJfZHJpdmVyL29zeF9zYWZhcmlfZHJpdmVyLnB5CkBAIC0xNSw2ICsxNSw3
IEBAIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgT1NYU2FmYXJp
RHJpdmVyKE9TWEJyb3dzZXJEcml2ZXIpOgogICAgIGJ1bmRsZUlkZW50aWZpZXIgPSAnY29tLmFw
cGxlLlNhZmFyaScKKyAgICBicm93c2VyX25hbWUgPSAnc2FmYXJpJwogCiAgICAgZGVmIHByZXBh
cmVFbnYoc2VsZiwgZGV2aWNlSUQpOgogICAgICAgICBzZWxmLnNhZmFyaVByb2Nlc3MgPSBOb25l
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZ2Vu
ZXJpY19mYWN0b3J5LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L2dlbmVyaWNfZmFjdG9yeS5weQppbmRleCBjZWJlY2I0Nzg0MDQyNDlkMmY4YjE3NTNiYTI2MGVi
MTEzYzU3OGNjLi5iZGZmMzkyNzQ3NGQzMjdlYmYyMWE4MDg2NmI1ODNmYTAzODdmMTc3IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvZ2VuZXJpY19m
YWN0b3J5LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9n
ZW5lcmljX2ZhY3RvcnkucHkKQEAgLTMsOCArMyw2IEBACiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0
IG9zCiAKLWZyb20gdXRpbHMgaW1wb3J0IGxvYWRNb2R1bGUsIE1vZHVsZU5vdEZvdW5kRXJyb3IK
LQogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKQEAgLTE0LDE4ICsxMiw5
IEBAIGNsYXNzIEdlbmVyaWNGYWN0b3J5KG9iamVjdCk6CiAgICAgcHJvZHVjdHMgPSBOb25lCiAK
ICAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgaXRlcmF0ZUdldEl0ZW0oY2xzLCBvcHRpb25zLCBr
ZXlzKToKLSAgICAgICAgcmV0ID0gb3B0aW9ucwotICAgICAgICBmb3Iga2V5IGluIGtleXM6Ci0g
ICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmV0ID0gcmV0Ll9fZ2V0aXRlbV9fKGtl
eSkKLSAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICByYWlzZQot
ICAgICAgICByZXR1cm4gcmV0CisgICAgZGVmIGNyZWF0ZShjbHMsIGRlc2NyaXB0aW9uKToKKyAg
ICAgICAgcmV0dXJuIGNscy5wcm9kdWN0c1tkZXNjcmlwdGlvbl0oKQogCiAgICAgQGNsYXNzbWV0
aG9kCi0gICAgZGVmIGNyZWF0ZShjbHMsIGRlc2NyaXB0aW9ucyk6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHJldHVybiBsb2FkTW9kdWxlKGNscy5pdGVyYXRlR2V0SXRlbShjbHMucHJvZHVj
dHMsIGRlc2NyaXB0aW9ucykpKCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAg
ICAgIHJhaXNlCisgICAgZGVmIGFkZChjbHMsIGRlc2NyaXB0aW9uLCBwcm9kdWN0KToKKyAgICAg
ICAgY2xzLnByb2R1Y3RzW2Rlc2NyaXB0aW9uXSA9IHByb2R1Y3QKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvX19p
bml0X18ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9z
ZXJ2ZXJfZHJpdmVyL19faW5pdF9fLnB5CmluZGV4IGIzNzZiZjJiZWEyYjZhZjVjZTc5ZDNlM2Qz
M2M3M2FkZWM0MzRmMTguLjFhMGQ2YmRhYmU5YzE4ODE5ZmZmNmY0MzY1YTRhODRlZWY5NWRhMGMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRw
X3NlcnZlcl9kcml2ZXIvX19pbml0X18ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
ZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9fX2luaXRfXy5weQpAQCAtMTEsMyAr
MTEsMTkgQEAKICMgY29kZSBpbiB0aGlzIGZpbGUgc28gdGhhdCBjYWxsZXJzIGNhbiBvcHQtaW4g
YXMgdGhleSB3YW50LiAgVGhpcyBhbHNvCiAjIGFsbG93cyBkaWZmZXJlbnQgY2FsbGVycyB0byBj
aG9vc2UgZGlmZmVyZW50IGluaXRpYWxpemF0aW9uIGNvZGUsCiAjIGFzIG5lY2Vzc2FyeS4KK2lt
cG9ydCBvcworaW1wb3J0IGltcAorCitmcm9tIHdlYmtpdHB5LmJlbmNobWFya19ydW5uZXIudXRp
bHMgaW1wb3J0IGxvYWRfc3ViY2xhc3NlcworZnJvbSBodHRwX3NlcnZlcl9kcml2ZXJfZmFjdG9y
eSBpbXBvcnQgSFRUUFNlcnZlckRyaXZlckZhY3RvcnkKKworCitkZWYgaHR0cF9zZXJ2ZXJfZHJp
dmVyX2xvYWRlcihodHRwX3NlcnZlcl9kcml2ZXJfY2xhc3MpOgorICAgIGlmIGh0dHBfc2VydmVy
X2RyaXZlcl9jbGFzcy5uYW1lOgorICAgICAgICBIVFRQU2VydmVyRHJpdmVyRmFjdG9yeS5hZGQo
aHR0cF9zZXJ2ZXJfZHJpdmVyX2NsYXNzLm5hbWUsIGh0dHBfc2VydmVyX2RyaXZlcl9jbGFzcykK
KworCitsb2FkX3N1YmNsYXNzZXMoCisgICAgZGlybmFtZT1vcy5wYXRoLmRpcm5hbWUob3MucGF0
aC5hYnNwYXRoKF9fZmlsZV9fKSksCisgICAgYmFzZV9jbGFzc19uYW1lPSdIVFRQU2VydmVyRHJp
dmVyJywKKyAgICBsb2FkZXI9aHR0cF9zZXJ2ZXJfZHJpdmVyX2xvYWRlcikKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2
ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkKaW5kZXgg
OWQyOWM2MzZiOTYwYjRjOGUyMDkyODIyZWI0YTI4YmI0N2Y2NWVmNC4uYWE3MDE5MGVhOGUyNjU4
MmYwOTFiYTgyMGVmOWFhZTUyZjU5MDI2NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2
ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBf
c2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXIucHkKQEAgLTQsNiArNCw3IEBAIGZyb20g
YWJjIGltcG9ydCBhYnN0cmFjdG1ldGhvZAogCiAKIGNsYXNzIEhUVFBTZXJ2ZXJEcml2ZXIob2Jq
ZWN0KToKKyAgICBuYW1lID0gTm9uZQogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBzZXJ2
ZShzZWxmLCB3ZWJSb290KToKICAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZl
cl9kcml2ZXJfZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyX2ZhY3RvcnkucHkKaW5k
ZXggZjhlODUwNjY2ZWVkYjY2YjYyOTEzZmQ0ODgwNzk3Njk2ZmNjY2I1Ni4uODEwZDk1NDNiMGM1
MDAxODZhMzk4ZGUwYjU0MDkxZmNiMDI2ZjYyYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9k
cml2ZXJfZmFjdG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19y
dW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyX2RyaXZlcl9mYWN0b3J5LnB5CkBA
IC01LDEyICs1LDcgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBvcwogCiBmcm9tIHdlYmtpdHB5LmJl
bmNobWFya19ydW5uZXIuZ2VuZXJpY19mYWN0b3J5IGltcG9ydCBHZW5lcmljRmFjdG9yeQotZnJv
bSB3ZWJraXRweS5iZW5jaG1hcmtfcnVubmVyLnV0aWxzIGltcG9ydCBsb2FkSlNPTkZyb21GaWxl
Ci0KLQotZHJpdmVyRmlsZU5hbWUgPSAnaHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29uJwogCiAKIGNs
YXNzIEhUVFBTZXJ2ZXJEcml2ZXJGYWN0b3J5KEdlbmVyaWNGYWN0b3J5KToKLQotICAgIHByb2R1
Y3RzID0gbG9hZEpTT05Gcm9tRmlsZShvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmls
ZV9fKSwgZHJpdmVyRmlsZU5hbWUpKQorICAgIHByb2R1Y3RzID0ge30KZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIv
aHR0cF9zZXJ2ZXJfZHJpdmVycy5qc29uIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1h
cmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9odHRwX3NlcnZlcl9kcml2ZXJzLmpzb24KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiYjNiY2RjYjY5ZDRlNTUzMWM0OTllZDlhNjdl
ODNkMmE3NzI5ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2Ry
aXZlci9odHRwX3NlcnZlcl9kcml2ZXJzLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAg
QEAKLXsKLSAgIlNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIiOiB7Ci0gICAgIm1vZHVsZU5hbWUiOiAi
U2ltcGxlSFRUUFNlcnZlckRyaXZlciIsIAotICAgICJmaWxlUGF0aCI6ICJodHRwX3NlcnZlcl9k
cml2ZXIuc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlciIKLSAgfQotfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9z
aW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5j
aG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVy
LnB5CmluZGV4IDUwNTUxZTlkYjk4MDAzNGVhNThlNzJmYzFlM2M4MGU3ODhjYTgwOTAuLjY0OTU1
ZGY5MTQ0ZDU0NzBjNjQ4MjA4OWFiNzc4MDRkOTkzNDZhOWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxl
X2h0dHBfc2VydmVyX2RyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNo
bWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIu
cHkKQEAgLTE4LDYgKzE4LDcgQEAgY2xhc3MgU2ltcGxlSFRUUFNlcnZlckRyaXZlcihIVFRQU2Vy
dmVyRHJpdmVyKToKIAogICAgICIiIlRoaXMgY2xhc3MgZGVwZW5kcyBvbiB1bml4IGVudmlyb25t
ZW50LCBuZWVkIHRvIGJlIG1vZGlmaWVkIHRvIGFjaGlldmUgY3Jvc3NwbGF0Zm9ybSBjb21wYWJp
bGl0eQogICAgICIiIgorICAgIG5hbWUgPSAnU2ltcGxlSFRUUFNlcnZlckRyaXZlcicKIAogICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgc2VsZi5zZXJ2ZXJfcHJvY2VzcyA9IE5vbmUK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGls
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci91dGlscy5weQpp
bmRleCBiYzMyNGUyMmM3NTlkODFiMDljODM0Y2Q2ZjYxOGE4NzE3ZGRkZWViLi45ODVlMmZkNDAx
OGJhZWUwMDE4ODViMzFkOWZkYjVlMGRhM2VhNDJkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvdXRpbHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3V0aWxzLnB5CkBAIC0xLDI1ICsxLDMzIEBACiAjIS91
c3IvYmluL2VudiBweXRob24KIAotaW1wb3J0IGpzb24KK2ltcG9ydCBpbXAKK2ltcG9ydCBpbnNw
ZWN0CiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc2h1
dGlsCitpbXBvcnQgc3lzCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQog
CiAKLWNsYXNzIE1vZHVsZU5vdEZvdW5kRXJyb3IoRXhjZXB0aW9uKToKLSAgICBwYXNzCisjIEJv
cnJvdyBmb2xsb3dpbmcgY29kZSBmcm9tIHN0YWNrb3ZlcmZsb3cKKyMgTGluazogaHR0cDovL3N0
YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTQ2MTM1Ni9pc3N1YmNsYXNzLXJldHVybnMtZmxh
c2Utb24tdGhlLXNhbWUtY2xhc3MtaW1wb3J0ZWQtZnJvbS1kaWZmZXJlbnQtcGF0aHMKK2RlZiBp
c19zdWJjbGFzcyhjaGlsZCwgcGFyZW50X25hbWUpOgorICAgIHJldHVybiBpbnNwZWN0LmlzY2xh
c3MoY2hpbGQpIGFuZCBwYXJlbnRfbmFtZSBpbiBbY2xzLl9fbmFtZV9fIGZvciBjbHMgaW4gaW5z
cGVjdC5nZXRtcm8oY2hpbGQpXQogCiAKLWRlZiBsb2FkTW9kdWxlKG1vZHVsZURlc2MpOgotICAg
IHRyeToKLSAgICAgICAgcmV0ID0gZ2V0YXR0cihfX2ltcG9ydF9fKG1vZHVsZURlc2NbJ2ZpbGVQ
YXRoJ10sIGdsb2JhbHMoKSwgbG9jYWxzKCksIG1vZHVsZURlc2NbJ21vZHVsZU5hbWUnXSwgLTEp
LCBtb2R1bGVEZXNjWydtb2R1bGVOYW1lJ10pCi0gICAgICAgIHJldHVybiByZXQKLSAgICBleGNl
cHQgRXhjZXB0aW9uIGFzIGVycm9yOgotICAgICAgICByYWlzZSBNb2R1bGVOb3RGb3VuZEVycm9y
KCdFcnJvciBsb2FkaW5nIG1vZHVsZSAoJXMpIHdpdGggcGF0aCglcyk6IHslc30nICUgKG1vZHVs
ZURlc2NbJ21vZHVsZU5hbWUnXSwgbW9kdWxlRGVzY1snZmlsZVBhdGgnXSwgZXJyb3IpKQorZGVm
IGxvYWRfc3ViY2xhc3NlcyhkaXJuYW1lLCBiYXNlX2NsYXNzX25hbWUsIGxvYWRlcik6CisgICAg
Zm9yIGZpbGVuYW1lIGluIG9zLmxpc3RkaXIoZGlybmFtZSk6CisgICAgICAgIGlmIG5vdCBmaWxl
bmFtZS5lbmRzd2l0aCgnLnB5Jykgb3IgZmlsZW5hbWUgaW4gWydfX2luaXRfXy5weSddOgorICAg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgbW9kdWxlX25hbWUgPSBmaWxlbmFtZVs6LTNdCisg
ICAgICAgIG1vZHVsZSA9IGltcC5sb2FkX3NvdXJjZShtb2R1bGVfbmFtZSwgb3MucGF0aC5qb2lu
KGRpcm5hbWUsIGZpbGVuYW1lKSkKKyAgICAgICAgZm9yIGl0ZW1fbmFtZSBpbiBkaXIobW9kdWxl
KToKKyAgICAgICAgICAgIGl0ZW0gPSBnZXRhdHRyKG1vZHVsZSwgaXRlbV9uYW1lKQorICAgICAg
ICAgICAgaWYgaXNfc3ViY2xhc3MoaXRlbSwgYmFzZV9jbGFzc19uYW1lKToKKyAgICAgICAgICAg
ICAgICBsb2FkZXIoaXRlbSkKIAogCiBkZWYgZ2V0UGF0aEZyb21Qcm9qZWN0Um9vdChyZWxhdGl2
ZVBhdGhUb1Byb2plY3RSb290KToKQEAgLTI5LDE1ICszNyw2IEBAIGRlZiBnZXRQYXRoRnJvbVBy
b2plY3RSb290KHJlbGF0aXZlUGF0aFRvUHJvamVjdFJvb3QpOgogICAgIHJldHVybiBvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19m
aWxlX18pKSwgcmVsYXRpdmVQYXRoVG9Qcm9qZWN0Um9vdCkpCiAKIAotZGVmIGxvYWRKU09ORnJv
bUZpbGUoZmlsZVBhdGgpOgotICAgIHRyeToKLSAgICAgICAganNvbk9iamVjdCA9IGpzb24ubG9h
ZChvcGVuKGZpbGVQYXRoLCAncicpKQotICAgICAgICBhc3NlcnQoanNvbk9iamVjdCkKLSAgICAg
ICAgcmV0dXJuIGpzb25PYmplY3QKLSAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycm9yOgotICAg
ICAgICByYWlzZSBFeGNlcHRpb24oIkludmFsaWQganNvbiBmb3JtYXQgb3IgZW1wdHkganNvbiB3
YXMgZm91bmQgaW4gJXMgLSBFcnJvcjogJXMiICUgKGZpbGVQYXRoLCBlcnJvcikpCi0KLQogZGVm
IGZvcmNlUmVtb3ZlKHBhdGgpOgogICAgIHRyeToKICAgICAgICAgc2h1dGlsLnJtdHJlZShwYXRo
KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>