<?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>89530</bug_id>
          
          <creation_ts>2012-06-19 16:46:55 -0700</creation_ts>
          <short_desc>Web Inspector: Allow module injections into the InjectedScript</short_desc>
          <delta_ts>2012-06-20 12:12:35 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>89107</dependson>
          <blocked>88973</blocked>
    
    <blocked>89592</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrey Adaikin">aandrey</reporter>
          <assigned_to name="Andrey Adaikin">aandrey</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>652977</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-06-19 16:46:55 -0700</bug_when>
    <thetext>Add a new InjectedModule abstract class that inherits InjectedScriptBase to reuse implementation, and which javascript code is injected via InjectedScript&apos;s addModule.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652994</commentid>
    <comment_count>1</comment_count>
      <attachid>148460</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-06-19 16:56:35 -0700</bug_when>
    <thetext>Created attachment 148460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653041</commentid>
    <comment_count>2</comment_count>
      <attachid>148460</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-19 17:38:25 -0700</bug_when>
    <thetext>Comment on attachment 148460
Patch

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

&gt; Source/WebCore/inspector/InjectedModule.h:42
&gt; +class InjectedModule : public InjectedScriptBase {

InjectedScriptModule

&gt; Source/WebCore/inspector/InjectedModule.h:49
&gt; +    friend void InjectedScript::injectModule(InjectedModule&amp;, bool&amp;);

friend class InjectedScript

&gt; Source/WebCore/inspector/InjectedScript.cpp:242
&gt; +    ASSERT(!hasNoValue());

I would try to hold all the module-related logic in a single location. (InjectedScriptModule). Eventually, we might want to make generic injected script a module itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653121</commentid>
    <comment_count>3</comment_count>
      <attachid>148491</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-06-19 20:12:16 -0700</bug_when>
    <thetext>Created attachment 148491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653258</commentid>
    <comment_count>4</comment_count>
      <attachid>148491</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-06-20 00:10:22 -0700</bug_when>
    <thetext>Comment on attachment 148491
Patch

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

&gt; Source/WebCore/inspector/InjectedScriptBase.h:53
&gt; +    virtual String name() const = 0;

Just pass it as a constructor parameter?

&gt; Source/WebCore/inspector/InjectedScriptBase.h:70
&gt; +    friend class InjectedScriptModule;

I&apos;d rather introduce protected method initialize(ScriptObject, inspectedStateAccessCheck)

&gt; Source/WebCore/inspector/InjectedScriptModule.cpp:51
&gt; +    ASSERT(!injectedScript.hasNoValue());

If InjectedScript is required we may have injectModule method defined on InjectedScript and avoid this check and InjectedScriptManager parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653570</commentid>
    <comment_count>5</comment_count>
      <attachid>148491</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-06-20 09:56:21 -0700</bug_when>
    <thetext>Comment on attachment 148491
Patch

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

&gt;&gt; Source/WebCore/inspector/InjectedScriptBase.h:53
&gt;&gt; +    virtual String name() const = 0;
&gt; 
&gt; Just pass it as a constructor parameter?

Done.

&gt;&gt; Source/WebCore/inspector/InjectedScriptBase.h:70
&gt;&gt; +    friend class InjectedScriptModule;
&gt; 
&gt; I&apos;d rather introduce protected method initialize(ScriptObject, inspectedStateAccessCheck)

Done.

&gt;&gt; Source/WebCore/inspector/InjectedScriptModule.cpp:51
&gt;&gt; +    ASSERT(!injectedScript.hasNoValue());
&gt; 
&gt; If InjectedScript is required we may have injectModule method defined on InjectedScript and avoid this check and InjectedScriptManager parameter.

The previous attachment does suggest a solution with injectModule defined on the InjectedScript. But ultimately we would like the InjectedScript be a module itself (e.g. smth like GenericInjectedScriptModule), and prohibit it to inject other modules. The &quot;injectModule&quot; method will be in a separate entity (let it call InjectedModuleManager) that will be also shared across all modules to reuse methods like bindObject, wrapObject and etc.

In other words, now we have: InjectedScript = GenericInjectedScriptModule + InjectedModuleManager, which should be split up accordingly in a future refactoring. Thus, not having the &quot;injectModule&quot; method defined on InjectedScript helps the future efforts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653575</commentid>
    <comment_count>6</comment_count>
      <attachid>148589</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-06-20 10:04:05 -0700</bug_when>
    <thetext>Created attachment 148589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653689</commentid>
    <comment_count>7</comment_count>
      <attachid>148589</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-20 11:28:23 -0700</bug_when>
    <thetext>Comment on attachment 148589
Patch

Clearing flags on attachment: 148589

Committed r120842: &lt;http://trac.webkit.org/changeset/120842&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653690</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-20 11:28:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148460</attachid>
            <date>2012-06-19 16:56:35 -0700</date>
            <delta_ts>2012-06-19 20:12:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89530-20120619165635.patch</filename>
            <type>text/plain</type>
            <size>24428</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEyNTA4MmE5OWU3YzMx
ZjdmOThlNzc2MzYxZmRiMTU5OWM4Njk4Zi4uNDZmYWUxODg2NjM5M2ZlZWY0YTZkOWFiODc2ZjNj
ZTk3NjA1ODI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU4IEBACiAyMDEyLTA2LTE5ICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFsbG93IG1vZHVsZSBpbmplY3Rpb25zIGludG8gdGhlIEluamVjdGVkU2NyaXB0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTUzMAorCisgICAg
ICAgIEFkZCBhIG5ldyBJbmplY3RlZE1vZHVsZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGluaGVyaXRz
IEluamVjdGVkU2NyaXB0QmFzZQorICAgICAgICB0byByZXVzZSBpbXBsZW1lbnRhdGlvbiwgYW5k
IHdoaWNoIGphdmFzY3JpcHQgY29kZSBpcyBpbmplY3RlZCB2aWEKKyAgICAgICAgSW5qZWN0ZWRT
Y3JpcHQncyBhZGRNb2R1bGUuCisgICAgICAgIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L1NjcmlwdE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRPYmplY3Q6OlNjcmlw
dE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3Jp
cHRPYmplY3QuaDoKKyAgICAgICAgKFNjcmlwdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRPYmplY3Q6OlNjcmlwdE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE9iamVjdDo6U2NyaXB0T2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdE9iamVj
dC5oOgorICAgICAgICAoU2NyaXB0T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdE9i
amVjdDo6flNjcmlwdE9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkTW9kdWxl
LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
QmFzZS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZE1v
ZHVsZTo6SW5qZWN0ZWRNb2R1bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZE1vZHVs
ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRC
YXNlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEluamVjdGVkTW9kdWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkluamVjdGVkTW9kdWxlOjpJbmplY3RlZE1vZHVsZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluamVj
dGVkU2NyaXB0OjpoYXNNb2R1bGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbmplY3RlZFNjcmlwdDo6aW5qZWN0TW9kdWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5qZWN0ZWRTY3JpcHQ6Om5hbWUpOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5qZWN0ZWRTY3JpcHRCYXNlOjpzZXRJbmplY3RlZFNjcmlwdE9iamVjdCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0
aW9uV2l0aEV2YWxFbmFibGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRC
YXNlLmg6CisgICAgICAgIChJbmplY3RlZFNjcmlwdEJhc2UpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKC4pOgorCisyMDEyLTA2LTE5ICBB
bmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEV4dHJhY3QgSW5qZWN0ZWRTY3JpcHRCYXNlIGNsYXNzIGZyb20gdGhlIEluamVjdGVk
U2NyaXB0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
OTEwNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDFjYjEwMzE0MDIzZWFjNzdjMTcwM2U0ZWRj
NjY5MGE5MGI4MDc0OGEuLjA2NTBlZTEyNzA1NjAxYzUxOGE1Yzc2NGY3MmZjMzc5NmVjZWRkMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC05MzAsNiArOTMwLDcgQEAgU0VUKFdlYkNvcmVfU09V
UkNFUwogICAgIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwCiAgICAgaW5zcGVjdG9y
L0RPTVBhdGNoU3VwcG9ydC5jcHAKICAgICBpbnNwZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5LmNw
cAorICAgIGluc3BlY3Rvci9JbmplY3RlZE1vZHVsZS5jcHAKICAgICBpbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuY3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKICAgICBp
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggMzZjZTEwNTBhNDFmZDM2M2FkNmUwOTE4NGI1MDk2MmQ0MWY2M2FkOS4uYTAyN2E1
MTRkYzliMDE2NmVhMDc0OTBlYTZjMzQ4Njg1YWE1NDczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC0yNjUzLDYgKzI2NTMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01XcmFwcGVyVmlzaXRvci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5LmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0lkZW50aWZpZXJzRmFjdG9yeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRNb2R1bGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRNb2R1bGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmlu
ZGV4IDZlYWNkNWRlNjY1Y2E2MmY2NzAzY2QxOGFhZjM5ZjVjODVmMzllMDYuLjUzM2E2MmQwMTU1
NzRlNmM2OGRkMjVhNjk4MjQxZWI2MTM1OWM4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODkwLDYgKzg5
MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3Bw
IFwKICAgICBpbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcCBcCiAgICAgaW5zcGVjdG9yL0lk
ZW50aWZpZXJzRmFjdG9yeS5jcHAgXAorICAgIGluc3BlY3Rvci9JbmplY3RlZE1vZHVsZS5jcHAg
XAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAgXAogICAgIGluc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdEJhc2UuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNw
cCBcCkBAIC0yMDM4LDYgKzIwMzksNyBAQCBIRUFERVJTICs9IFwKICAgICBpbnNwZWN0b3IvRE9N
UGF0Y2hTdXBwb3J0LmggXAogICAgIGluc3BlY3Rvci9ET01XcmFwcGVyVmlzaXRvci5oIFwKICAg
ICBpbnNwZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5LmggXAorICAgIGluc3BlY3Rvci9JbmplY3Rl
ZE1vZHVsZS5oIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCBcCiAgICAgaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0QmFzZS5oIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRI
b3N0LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGIwYzcyYmMzMWQ5N2NlMWQwYTA1NjhmNTM4YTcz
YzBiYjE1ZWMzYzYuLjFkOTU0YjlhNmNlZWI0ZjE5M2NkYzEzN2FlYTljZWU3OGJiYjA4MjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTI3NjMsNiArMjc2Myw4IEBACiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0RPTVdyYXBwZXJWaXNpdG9yLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JZGVudGlm
aWVyc0ZhY3RvcnkuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSWRlbnRpZmllcnNGYWN0
b3J5LmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9JbmplY3RlZE1vZHVsZS5jcHAnLAorICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbmplY3RlZE1vZHVsZS5oJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCA2MTllODI5Zjc5NTYxODk1ZWVjZGRmMjQzMzg2NjkxNDRlMjQyZDUzLi4xYWVjZTQ5NDJkYWQz
MTM4NGZlMGNkNmU2ZTNjMjQxMGI4Zjk5NjVhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzMzMTUsNiArNzMzMTUsMzAgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluamVj
dGVkTW9kdWxlLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlBy
b2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5caW5zcGVjdG9yXEluamVjdGVkTW9kdWxlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbmplY3RlZFNjcmlwdC5jcHAi
CiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlOGI1ZmQyNGIwYzNlMWNmODNi
MGZlN2Y2N2U5NzdlMjJiMDIwZWQuLjFjOGM2Zjk2NzZmYWE3NWEyNDdiODk2ZDk4MDY2YzFkOGFh
YTRiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTQ0NjcsNiArNDQ2Nyw4IEBACiAJCUFBNEMzQTc3MEIyQjE2NzkwMDIzMzRB
MiAvKiBTdHlsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEFBNEMzQTc1MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQuaCAqLzsg
fTsKIAkJQUFCNjA1NEUxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0QmFzZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUI2MDU0QTE1
ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcCAqLzsgfTsKIAkJQUFCNjA1
NEYxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0QmFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFCNjA1NEIxNTg3NEM1ODAwN0I1MDMx
IC8qIEluamVjdGVkU2NyaXB0QmFzZS5oICovOyB9OworCQlBQUI2MDU1MDE1ODc0QzU4MDA3QjUw
MzEgLyogSW5qZWN0ZWRNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQUFCNjA1NEMxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkTW9kdWxl
LmNwcCAqLzsgfTsKKwkJQUFCNjA1NTExNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkTW9kdWxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUI2MDU0
RDE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRNb2R1bGUuaCAqLzsgfTsJCQogCQlBQUQ3NjZF
QjE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yV2ViR0xBZ2VudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUQ3NjZFODE1N0U1MDJGMDBFODU0
MjMgLyogSW5zcGVjdG9yV2ViR0xBZ2VudC5jcHAgKi87IH07CiAJCUFBRDc2NkVDMTU3RTUwMkYw
MEU4NTQyMyAvKiBJbnNwZWN0b3JXZWJHTEFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUQ3NjZFOTE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVj
dG9yV2ViR0xBZ2VudC5oICovOyB9OwogCQlBQUQ3NjZFRDE1N0U1MDJGMDBFODU0MjMgLyogSW5z
cGVjdG9yV2ViR0xJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEFBRDc2NkVBMTU3RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JX
ZWJHTEluc3RydW1lbnRhdGlvbi5oICovOyB9OwpAQCAtMTE0ODAsNiArMTE0ODIsOCBAQAogCQlB
QTkxMjc1MDE1N0UzNUE1MDA0NTRFNTQgLyogSW5qZWN0ZWRXZWJHTFNjcmlwdFNvdXJjZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFdlYkdMU2NyaXB0U291cmNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBQjYwNTRBMTU4NzRDNTgwMDdCNTAz
MSAvKiBJbmplY3RlZFNjcmlwdEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQUFCNjA1NEIxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0QmFzZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZFNjcmlwdEJhc2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQUFCNjA1NEMxNTg3NEM1ODAwN0I1MDMxIC8qIElu
amVjdGVkTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
amVjdGVkTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCUFBQjYwNTRE
MTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZE1vZHVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbmplY3RlZE1vZHVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBQUQ3NjZFODE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yV2ViR0xBZ2VudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JXZWJHTEFnZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUFENzY2RTkxNTdFNTAyRjAwRTg1
NDIzIC8qIEluc3BlY3RvcldlYkdMQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5zcGVjdG9yV2ViR0xBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBQUQ3NjZFQTE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yV2ViR0xJbnN0cnVtZW50YXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yV2ViR0xJbnN0
cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDA3LDYgKzE0
NDExLDggQEAKIAkJCQlGMzVBRTVBQjE0OTI1RjVCMDA0RDU3NzYgLyogRE9NV3JhcHBlclZpc2l0
b3IuaCAqLywKIAkJCQk1OTEzQTIzRjEzRDQ5RUJBMDBGNUIwNUMgLyogSWRlbnRpZmllcnNGYWN0
b3J5LmNwcCAqLywKIAkJCQk1OTEzQTI0MDEzRDQ5RUJBMDBGNUIwNUMgLyogSWRlbnRpZmllcnNG
YWN0b3J5LmggKi8sCisJCQkJQUFCNjA1NEMxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkTW9k
dWxlLmNwcCAqLywKKyAJCQkJQUFCNjA1NEQxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkTW9k
dWxlLmggKi8sCiAJCQkJRjM2NDRBRkQxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0
LmNwcCAqLywKIAkJCQlGMzY0NEFGRTExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQu
aCAqLywKIAkJCQlBQUI2MDU0QTE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNl
LmNwcCAqLywKQEAgLTIzMzI4LDYgKzIzMzM0LDcgQEAKIAkJCQk0QjM0ODA5NDBFRUY1MEQ0MDBB
QzFCNDEgLyogSW1hZ2VTb3VyY2VDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUxMTgwRTZF
MURBNzAwQkY2MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
QjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUFBQjYwNTUxMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZE1vZHVsZS5o
IGluIEhlYWRlcnMgKi8sCQkJCQogCQkJCUYzNjQ0QjAwMTExOTgwNTkwMEUwRDUzNyAvKiBJbmpl
Y3RlZFNjcmlwdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUFCNjA1NEYxNTg3NEM1ODAwN0I1MDMx
IC8qIEluamVjdGVkU2NyaXB0QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc2RkExMEJG
MDhFRDAwQTAyNzZFIC8qIEluamVjdGVkU2NyaXB0SG9zdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NjQ2Nyw2ICsyNjQ3NCw3IEBACiAJCQkJNEIzNDgwOTMwRUVGNTBENDAwQUMxQjQxIC8qIEltYWdl
U291cmNlQ0dNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTZGRTExNzBFNkUxREE3MDBCRjYw
ODggLyogSW1wbGljaXRBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREIyM0MyQ0Iw
QTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUFBQjYwNTUwMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZE1vZHVsZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGMzY0NEFGRjExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3Jp
cHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUFCNjA1NEUxNTg3NEM1ODAwN0I1MDMxIC8qIElu
amVjdGVkU2NyaXB0QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzZGOTEwQkYwOEVE
MDBBMDI3NkUgLyogSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5jcHAKaW5kZXggMWZjZDljYjgwMjYz
NDkwOTdhYTYyYzJkODE5NTBlMjAyZjEzNDE1YS4uMGNmYjgyYjZlNzAxMTFhYjM2ZjE5ODZkZjYw
NmQ4YmMyNWJlMGZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmpl
Y3QuY3BwCkBAIC01MCw2ICs1MCwxMiBAQCBTY3JpcHRPYmplY3Q6OlNjcmlwdE9iamVjdChTY3Jp
cHRTdGF0ZSogc2NyaXB0U3RhdGUsIEpTT2JqZWN0KiBvYmplY3QpCiB7CiB9CiAKK1NjcmlwdE9i
amVjdDo6U2NyaXB0T2JqZWN0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgU2NyaXB0
VmFsdWUmIHNjcmlwdFZhbHVlKQorICAgIDogU2NyaXB0VmFsdWUoc2NyaXB0U3RhdGUtPmdsb2Jh
bERhdGEoKSwgc2NyaXB0VmFsdWUuanNWYWx1ZSgpKQorICAgICwgbV9zY3JpcHRTdGF0ZShzY3Jp
cHRTdGF0ZSkKK3sKK30KKwogc3RhdGljIGJvb2wgaGFuZGxlRXhjZXB0aW9uKFNjcmlwdFN0YXRl
KiBzY3JpcHRTdGF0ZSkKIHsKICAgICBpZiAoIXNjcmlwdFN0YXRlLT5oYWRFeGNlcHRpb24oKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmgKaW5kZXggZWIwMmU5Yjdh
ZDU5MDk1ZDRiZjQxZTZlMjc1YjI3MWIzNzlhNTRjYy4uMmMxYWU0ZDMzM2Q0ZjVlMzUzZWE2NDY1
MDhmNDliZDRjZTljYTdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2Jq
ZWN0LmgKQEAgLTQ0LDcgKzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNj
cmlwdE9iamVjdCA6IHB1YmxpYyBTY3JpcHRWYWx1ZSB7CiAgICAgcHVibGljOgogICAgICAgICBT
Y3JpcHRPYmplY3QoU2NyaXB0U3RhdGUqLCBKU0M6OkpTT2JqZWN0Kik7Ci0gICAgICAgIFNjcmlw
dE9iamVjdCgpIHt9CisgICAgICAgIFNjcmlwdE9iamVjdChTY3JpcHRTdGF0ZSosIGNvbnN0IFNj
cmlwdFZhbHVlJik7CisgICAgICAgIFNjcmlwdE9iamVjdCgpIHsgfQogICAgICAgICBKU0M6OkpT
T2JqZWN0KiBqc09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGFzT2JqZWN0KGpzVmFsdWUoKSk7IH0K
ICAgICAgICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zY3Jp
cHRTdGF0ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0T2JqZWN0LmNw
cAppbmRleCAzZDM4YTllZWNlZjkwMDRmNGE2ZjZlNTNlYTA3MmIwZjhlMjJmYjg2Li4wMjY2ZGY0
OGU5ZGJlNjAwMzZmMjMwMmFmM2MzZjgwOGY4ZTczMjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5jcHAKQEAgLTUxLDYgKzUxLDEyIEBAIFNjcmlwdE9iamVj
dDo6U2NyaXB0T2JqZWN0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiB2OE9iCiB7CiB9CiAKK1NjcmlwdE9iamVjdDo6U2NyaXB0T2JqZWN0KFNjcmlwdFN0
YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgU2NyaXB0VmFsdWUmIHNjcmlwdFZhbHVlKQorICAgIDog
U2NyaXB0VmFsdWUoc2NyaXB0VmFsdWUpCisgICAgLCBtX3NjcmlwdFN0YXRlKHNjcmlwdFN0YXRl
KQoreworfQorCiB2ODo6TG9jYWw8djg6Ok9iamVjdD4gU2NyaXB0T2JqZWN0Ojp2OE9iamVjdCgp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKHY4VmFsdWUoKS0+SXNPYmplY3QoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5oCmluZGV4IDQ1NDFhYjA4ODMzM2E5YjM0YzIy
MTg3MDFmYWE3OGI4ZjM1Y2JlYjguLjFjNDdhNjBjMGYzZTdlZTg4OWY5OTYwZjNiZGExMGYxYTFj
ODIzOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5oCkBAIC00
Myw4ICs0Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTY3JpcHRPYmplY3Qg
OiBwdWJsaWMgU2NyaXB0VmFsdWUgewogICAgIHB1YmxpYzoKICAgICAgICAgU2NyaXB0T2JqZWN0
KFNjcmlwdFN0YXRlKiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CisgICAgICAgIFNjcmlwdE9i
amVjdChTY3JpcHRTdGF0ZSosIGNvbnN0IFNjcmlwdFZhbHVlJik7CiAgICAgICAgIFNjcmlwdE9i
amVjdCgpIDogbV9zY3JpcHRTdGF0ZSgwKSB7IH07Ci0gICAgICAgIHZpcnR1YWwgflNjcmlwdE9i
amVjdCgpIHt9CisgICAgICAgIHZpcnR1YWwgflNjcmlwdE9iamVjdCgpIHsgfQogCiAgICAgICAg
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PiB2OE9iamVjdCgpIGNvbnN0OwogICAgICAgICBTY3JpcHRT
dGF0ZSogc2NyaXB0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdFN0YXRlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRNb2R1bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkTW9kdWxlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZWUw
YmZlMjAwODYwY2UyMTE2OWJmYTFjNjQyYzdhNzBlMGY5MmNhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkTW9kdWxlLmNwcApAQCAtMCwwICsxLDQ4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1
ZGUgIkluamVjdGVkTW9kdWxlLmgiCisKKyNpbmNsdWRlICJTY3JpcHRPYmplY3QuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitJbmplY3RlZE1vZHVsZTo6SW5qZWN0ZWRNb2R1bGUoSW5zcGVj
dGVkU3RhdGVBY2Nlc3NDaGVjayBhY2Nlc3NDaGVjaykKKyAgICA6IEluamVjdGVkU2NyaXB0QmFz
ZShTY3JpcHRPYmplY3QoKSwgYWNjZXNzQ2hlY2spCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRNb2R1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbmplY3RlZE1vZHVsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZTkzYzkxMDM2MmE1MDkzNjUyZDdi
NDBkZDI0Y2EyMzIwOTJiOTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRNb2R1bGUuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJbmplY3RlZE1v
ZHVsZV9oCisjZGVmaW5lIEluamVjdGVkTW9kdWxlX2gKKworI2luY2x1ZGUgIkluamVjdGVkU2Ny
aXB0LmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRCYXNlLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgRU5BQkxFKElOU1BFQ1RP
UikKKworY2xhc3MgSW5qZWN0ZWRNb2R1bGUgOiBwdWJsaWMgSW5qZWN0ZWRTY3JpcHRCYXNlIHsK
K3B1YmxpYzoKKyAgICBJbmplY3RlZE1vZHVsZSgpIHsgfQorCisgICAgdmlydHVhbCBTdHJpbmcg
c291cmNlKCkgY29uc3QgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgZnJpZW5kIHZvaWQgSW5qZWN0
ZWRTY3JpcHQ6OmluamVjdE1vZHVsZShJbmplY3RlZE1vZHVsZSYsIGJvb2wmKTsKKyAgICBleHBs
aWNpdCBJbmplY3RlZE1vZHVsZShJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrKTsKK307CisKKyNl
bmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKaW5kZXggY2VlZTM2MjRiNWIzN2NkZTAzOGM2
MWU5NzkxZmRhYTdhM2RkNjc0NS4uZDQ4NzQ3MTQwNTgyYjc2M2VmZmZhMTIwNGMwMDgxMzJkZDkz
NDk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCkBA
IC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgogCisjaW5jbHVk
ZSAiSW5qZWN0ZWRNb2R1bGUuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdEhvc3QuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJOb2RlLmgiCkBAIC0yMzYsNiAr
MjM3LDMzIEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6OnJlbGVhc2VPYmplY3RHcm91cChjb25zdCBT
dHJpbmcmIG9iamVjdEdyb3VwKQogICAgIEFTU0VSVCghaGFkRXhjZXB0aW9uKTsKIH0KIAorYm9v
bCBJbmplY3RlZFNjcmlwdDo6aGFzTW9kdWxlKGNvbnN0IEluamVjdGVkTW9kdWxlJiBtb2R1bGUp
IGNvbnN0Cit7CisgICAgQVNTRVJUKCFoYXNOb1ZhbHVlKCkpOworICAgIFNjcmlwdEZ1bmN0aW9u
Q2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAibW9kdWxlIik7CisgICAgZnVu
Y3Rpb24uYXBwZW5kQXJndW1lbnQobW9kdWxlLm5hbWUoKSk7CisgICAgYm9vbCBoYWRFeGNlcHRp
b24gPSBmYWxzZTsKKyAgICBTY3JpcHRWYWx1ZSByZXN1bHRWYWx1ZSA9IGNhbGxGdW5jdGlvbldp
dGhFdmFsRW5hYmxlZChmdW5jdGlvbiwgaGFkRXhjZXB0aW9uKTsKKyAgICBBU1NFUlQoIWhhZEV4
Y2VwdGlvbik7CisgICAgcmV0dXJuICFyZXN1bHRWYWx1ZS5oYXNOb1ZhbHVlKCkgJiYgcmVzdWx0
VmFsdWUuaXNPYmplY3QoKTsKK30KKwordm9pZCBJbmplY3RlZFNjcmlwdDo6aW5qZWN0TW9kdWxl
KEluamVjdGVkTW9kdWxlJiBtb2R1bGUsIGJvb2wmIGhhZEV4Y2VwdGlvbikKK3sKKyAgICBBU1NF
UlQoIWhhc05vVmFsdWUoKSk7CisgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVj
dGVkU2NyaXB0T2JqZWN0KCksICJpbmplY3RNb2R1bGUiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRB
cmd1bWVudChtb2R1bGUubmFtZSgpKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChtb2R1
bGUuc291cmNlKCkpOworICAgIFNjcmlwdFZhbHVlIHJlc3VsdFZhbHVlID0gY2FsbEZ1bmN0aW9u
V2l0aEV2YWxFbmFibGVkKGZ1bmN0aW9uLCBoYWRFeGNlcHRpb24pOworICAgIGlmIChoYWRFeGNl
cHRpb24gfHwgcmVzdWx0VmFsdWUuaGFzTm9WYWx1ZSgpIHx8ICFyZXN1bHRWYWx1ZS5pc09iamVj
dCgpKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBoYWRFeGNlcHRp
b24gPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFNjcmlwdE9iamVjdCBtb2R1
bGVPYmplY3Qoc2NyaXB0U3RhdGUoKSwgcmVzdWx0VmFsdWUpOworICAgIG1vZHVsZS5zZXRJbmpl
Y3RlZFNjcmlwdE9iamVjdChtb2R1bGVPYmplY3QpOworfQorCiBTY3JpcHRWYWx1ZSBJbmplY3Rl
ZFNjcmlwdDo6bm9kZUFzU2NyaXB0VmFsdWUoTm9kZSogbm9kZSkKIHsKICAgICByZXR1cm4gSW5q
ZWN0ZWRTY3JpcHRIb3N0Ojpub2RlQXNTY3JpcHRWYWx1ZShzY3JpcHRTdGF0ZSgpLCBub2RlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKaW5kZXggYWE5YzgzZTg1
NzVjNzRiNzZkOWZlMDNkMDY5ZDE2ODQzMDczNWFjOC4uZWQ1Njg3ZDQ3MWM2NDc0NmFmYTE0MjIx
NmI3NzQ2YWNmZTc1OTg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0LmgKQEAgLTQyLDYgKzQyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJ
bmplY3RlZE1vZHVsZTsKIGNsYXNzIE5vZGU7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7
CiAKQEAgLTUyLDYgKzUzLDggQEAgcHVibGljOgogICAgIEluamVjdGVkU2NyaXB0KCk7CiAgICAg
fkluamVjdGVkU2NyaXB0KCkgeyB9CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBuYW1lKCkgY29uc3Qg
eyByZXR1cm4gIkluamVjdGVkU2NyaXB0IjsgfQorCiAgICAgdm9pZCBldmFsdWF0ZShFcnJvclN0
cmluZyosCiAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCiAgICAg
ICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLApAQCAtOTMsNiArOTYsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBpbnNwZWN0Tm9kZShOb2RlKik7CiAgICAgdm9pZCByZWxlYXNl
T2JqZWN0R3JvdXAoY29uc3QgU3RyaW5nJik7CiAKKyAgICBib29sIGhhc01vZHVsZShjb25zdCBJ
bmplY3RlZE1vZHVsZSYpIGNvbnN0OworICAgIHZvaWQgaW5qZWN0TW9kdWxlKEluamVjdGVkTW9k
dWxlJiwgYm9vbCYgaGFkRXhjZXB0aW9uKTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgSW5qZWN0
ZWRTY3JpcHQgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjppbmplY3RlZFNjcmlwdEZvcihTY3JpcHRT
dGF0ZSopOwogICAgIEluamVjdGVkU2NyaXB0KFNjcmlwdE9iamVjdCwgSW5zcGVjdGVkU3RhdGVB
Y2Nlc3NDaGVjayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dEJhc2UuY3BwCmluZGV4IGNlODc4YWIxNzRkYWJiN2FjZDBmNGZhYmI0YzliYzc5N2Q1ZGFjMzYu
LjIwNjk1YWYxMjA2M2VjOTYxYWJiNGE5ZDZjYmEyYzcxZTU0YjhkNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCkBAIC01NCw2ICs1NCwx
MSBAQCBJbmplY3RlZFNjcmlwdEJhc2U6OkluamVjdGVkU2NyaXB0QmFzZShTY3JpcHRPYmplY3Qg
aW5qZWN0ZWRTY3JpcHRPYmplY3QsIEluc3BlYwogewogfQogCit2b2lkIEluamVjdGVkU2NyaXB0
QmFzZTo6c2V0SW5qZWN0ZWRTY3JpcHRPYmplY3QoU2NyaXB0T2JqZWN0JiBzY3JpcHRPYmplY3Qp
Cit7CisgICAgbV9pbmplY3RlZFNjcmlwdE9iamVjdCA9IHNjcmlwdE9iamVjdDsKK30KKwogYm9v
bCBJbmplY3RlZFNjcmlwdEJhc2U6OmNhbkFjY2Vzc0luc3BlY3RlZFdpbmRvdygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1faW5zcGVjdGVkU3RhdGVBY2Nlc3NDaGVjayhtX2luamVjdGVkU2NyaXB0
T2JqZWN0LnNjcmlwdFN0YXRlKCkpOwpAQCAtNjcsNyArNzIsNyBAQCBjb25zdCBTY3JpcHRPYmpl
Y3QmIEluamVjdGVkU2NyaXB0QmFzZTo6aW5qZWN0ZWRTY3JpcHRPYmplY3QoKSBjb25zdAogU2Ny
aXB0VmFsdWUgSW5qZWN0ZWRTY3JpcHRCYXNlOjpjYWxsRnVuY3Rpb25XaXRoRXZhbEVuYWJsZWQo
U2NyaXB0RnVuY3Rpb25DYWxsJiBmdW5jdGlvbiwgYm9vbCYgaGFkRXhjZXB0aW9uKSBjb25zdAog
ewogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbVNjcmlwdFN0YXRlKG1faW5qZWN0ZWRTY3JpcHRPYmpl
Y3Quc2NyaXB0U3RhdGUoKSk7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNv
b2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENhbGxGdW5jdGlvbihzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCAiSW5qZWN0ZWRTY3JpcHQiLCAxKTsKKyAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
Q2FsbEZ1bmN0aW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIG5hbWUoKSwgMSk7CiAKICAgICBT
Y3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUgPSBtX2luamVjdGVkU2NyaXB0T2JqZWN0LnNjcmlwdFN0
YXRlKCk7CiAgICAgYm9vbCBldmFsSXNEaXNhYmxlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5oCmluZGV4IDM4ZDU0NWVmOTJmYjM3NmQz
MWNlMjgyN2Q2YjFhMDcyYThmMjdhOTMuLmRkYTczZGQ4ZDJlNzExZmI4MWIyZGU0YmY1Mzg3NWRh
NThmM2VkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRC
YXNlLmgKQEAgLTQ5LDYgKzQ5LDggQEAgY2xhc3MgSW5qZWN0ZWRTY3JpcHRCYXNlIHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5JbmplY3RlZFNjcmlwdEJhc2UoKSB7IH0KIAorICAgIHZpcnR1YWwg
U3RyaW5nIG5hbWUoKSBjb25zdCA9IDA7CisKICAgICBib29sIGhhc05vVmFsdWUoKSBjb25zdCB7
IHJldHVybiBtX2luamVjdGVkU2NyaXB0T2JqZWN0Lmhhc05vVmFsdWUoKTsgfQogICAgIFNjcmlw
dFN0YXRlKiBzY3JpcHRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRPYmpl
Y3Quc2NyaXB0U3RhdGUoKTsgfQogCkBAIC01Nyw2ICs1OSw3IEBAIHByb3RlY3RlZDoKICAgICBJ
bmplY3RlZFNjcmlwdEJhc2UoKTsKICAgICBJbmplY3RlZFNjcmlwdEJhc2UoU2NyaXB0T2JqZWN0
LCBJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrKTsKIAorICAgIHZvaWQgc2V0SW5qZWN0ZWRTY3Jp
cHRPYmplY3QoU2NyaXB0T2JqZWN0Jik7CiAgICAgYm9vbCBjYW5BY2Nlc3NJbnNwZWN0ZWRXaW5k
b3coKSBjb25zdDsKICAgICBjb25zdCBTY3JpcHRPYmplY3QmIGluamVjdGVkU2NyaXB0T2JqZWN0
KCkgY29uc3Q7CiAgICAgU2NyaXB0VmFsdWUgY2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFibGVkKFNj
cmlwdEZ1bmN0aW9uQ2FsbCYsIGJvb2wmIGhhZEV4Y2VwdGlvbikgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggYWU0Yzk3
OGNmM2YyZTRlNzkxNmQzMWQ4MzA1MGFhZjM2ZjQyYWNjYy4uNzllNjU2MmFlYzE2MjU3MGU4Y2My
MjM0MDIzZjI2M2RhMDE5YmExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtNDAsNiArNDAsNyBAQCB2YXIgSW5qZWN0ZWRTY3Jp
cHQgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5faWRUb1dyYXBwZWRPYmplY3QgPSB7fTsKICAgICB0
aGlzLl9pZFRvT2JqZWN0R3JvdXBOYW1lID0ge307CiAgICAgdGhpcy5fb2JqZWN0R3JvdXBzID0g
e307CisgICAgdGhpcy5fbW9kdWxlcyA9IHt9OwogfQogCiBJbmplY3RlZFNjcmlwdC5wcmltaXRp
dmVUeXBlcyA9IHsKQEAgLTQxMSw2ICs0MTIsMTkgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBl
ID0gewogICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0sCiAKKyAgICBtb2R1bGU6IGZ1bmN0
aW9uKG5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fbW9kdWxlc1tuYW1lXTsKKyAg
ICB9LAorIAorICAgIGluamVjdE1vZHVsZTogZnVuY3Rpb24obmFtZSwgc291cmNlKQorICAgIHsK
KyAgICAgICAgZGVsZXRlIHRoaXMuX21vZHVsZXNbbmFtZV07CisgICAgICAgIHZhciBtb2R1bGUg
PSBldmFsKCIoIiArIHNvdXJjZSArICIpIik7CisgICAgICAgIHRoaXMuX21vZHVsZXNbbmFtZV0g
PSBtb2R1bGU7CisgICAgICAgIHJldHVybiBtb2R1bGU7CisgICAgfSwKKwogICAgIF9pc0RlZmlu
ZWQ6IGZ1bmN0aW9uKG9iamVjdCkKICAgICB7CiAgICAgICAgIHJldHVybiBvYmplY3QgfHwgdGhp
cy5faXNIVE1MQWxsQ29sbGVjdGlvbihvYmplY3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148491</attachid>
            <date>2012-06-19 20:12:16 -0700</date>
            <delta_ts>2012-06-20 10:04:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89530-20120619201216.patch</filename>
            <type>text/plain</type>
            <size>25180</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEyNTA4MmE5OWU3YzMx
ZjdmOThlNzc2MzYxZmRiMTU5OWM4Njk4Zi4uMzUwZDkzODNiNTA1NmIwYWQ3MzYyZjRkMjdmYTNk
YTQwZjVmMDNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU3IEBACiAyMDEyLTA2LTE5ICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFsbG93IG1vZHVsZSBpbmplY3Rpb25zIGludG8gdGhlIEluamVjdGVkU2NyaXB0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTUzMAorCisgICAg
ICAgIEFkZCBhIG5ldyBJbmplY3RlZFNjcmlwdE1vZHVsZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGlu
aGVyaXRzIEluamVjdGVkU2NyaXB0QmFzZQorICAgICAgICB0byByZXVzZSBpbXBsZW1lbnRhdGlv
biwgYW5kIHdoaWNoIGphdmFzY3JpcHQgY29kZSBpcyBpbmplY3RlZCB2aWEKKyAgICAgICAgSW5q
ZWN0ZWRTY3JpcHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0T2JqZWN0OjpTY3JpcHRPYmplY3QpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0Lmg6Cisg
ICAgICAgIChTY3JpcHRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0T2JqZWN0OjpT
Y3JpcHRPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRPYmplY3Q6OlNjcmlwdE9iamVjdCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuaDoKKyAgICAgICAg
KFNjcmlwdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRPYmplY3Q6On5TY3JpcHRP
YmplY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHA6CisgICAgICAg
ICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0OjpuYW1lKToKKyAgICAgICAgKEluamVjdGVkU2Ny
aXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFi
bGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKEluamVjdGVkU2NyaXB0QmFzZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0TWFuYWdlcjo6aW5zcGVj
dGVkU3RhdGVBY2Nlc3NDaGVjayk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
TW9kdWxlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0QmFzZS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmpl
Y3RlZFNjcmlwdE1vZHVsZTo6SW5qZWN0ZWRTY3JpcHRNb2R1bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5qZWN0ZWRTY3JpcHRNb2R1bGU6OmVuc3VyZUluamVjdGVkKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KEluamVjdGVkU2NyaXB0TW9kdWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRTb3VyY2UuanM6CisgICAgICAgICguKToKKworMjAxMi0wNi0xOSAgQW5kcmV5IEFkYWlraW4g
IDxhYW5kcmV5QGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFeHRyYWN0
IEluamVjdGVkU2NyaXB0QmFzZSBjbGFzcyBmcm9tIHRoZSBJbmplY3RlZFNjcmlwdAogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxMDcKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCAxY2IxMDMxNDAyM2VhYzc3YzE3MDNlNGVkYzY2OTBhOTBiODA3NDhh
Li4wYTI5NTllMWE3NzcxNDQ1Y2E5ODhmYjdhNGViZWE3ZDk0YjdmMTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtOTMwLDYgKzkzMCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBpbnNw
ZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcAogICAgIGluc3BlY3Rvci9ET01QYXRjaFN1cHBv
cnQuY3BwCiAgICAgaW5zcGVjdG9yL0lkZW50aWZpZXJzRmFjdG9yeS5jcHAKKyAgICBpbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmNwcAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCiAgICAgaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0SG9zdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDM2Y2UxMDUwYTQxZmQzNjNhZDZlMDkxODRiNTA5NjJkNDFmNjNhZDkuLjdkMTI1Y2ZmNzkwY2Yy
OWMwMzMzNWRiMDRmNmQ3MTYyZWRiMmUyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMjY1Myw2ICsyNjUzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvRE9NV3JhcHBlclZpc2l0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0lkZW50aWZpZXJzRmFjdG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JZGVudGlmaWVyc0ZhY3RvcnkuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0TW9kdWxlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0TW9kdWxlLmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQppbmRleCA2ZWFjZDVkZTY2NWNhNjJmNjcwM2NkMThhYWYzOWY1Yzg1ZjM5ZTA2Li45MWRhZGVk
MmQ5MGExYmRhMTU3MThjNGY5MGQzMzMyOGQyZDdlODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg5MCw2
ICs4OTAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVy
LmNwcCBcCiAgICAgaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAgXAogICAgIGluc3BlY3Rv
ci9JZGVudGlmaWVyc0ZhY3RvcnkuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRN
b2R1bGUuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIFwKICAgICBpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0SG9zdC5jcHAgXApAQCAtMjAzOCw2ICsyMDM5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaW5z
cGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5oIFwKICAgICBpbnNwZWN0b3IvRE9NV3JhcHBlclZpc2l0
b3IuaCBcCiAgICAgaW5zcGVjdG9yL0lkZW50aWZpZXJzRmFjdG9yeS5oIFwKKyAgICBpbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaCBcCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmggXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuaCBcCiAgICAgaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0SG9zdC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBiMGM3MmJjMzFkOTdj
ZTFkMGEwNTY4ZjUzOGE3M2MwYmIxNWVjM2M2Li4xOTdlMGFkYjIzMDA5ZTc3NzA2ZWUzMjZjZWMx
ZjNkOTgyYTM5ZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNzYzLDYgKzI3NjMsOCBAQAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9ET01XcmFwcGVyVmlzaXRvci5oJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0lkZW50aWZpZXJzRmFjdG9yeS5oJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRNb2R1bGUuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRN
b2R1bGUuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNjE5ZTgyOWY3OTU2MTg5NWVlY2RkZjI0MzM4
NjY5MTQ0ZTI0MmQ1My4uMzA0OTllODg4MzA1NTAwNjYyNzg0ZTQwNDkyZTEwN2VmNDFhMDExNiAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTcz
MzE1LDYgKzczMzE1LDMwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHAiCisJCQkJPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbmplY3Rl
ZFNjcmlwdE1vZHVsZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5qZWN0ZWRTY3JpcHQuY3BwIgogCQkJCT4KIAkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBiZThiNWZkMjRiMGMzZTFjZjgzYjBmZTdmNjdlOTc3ZTIyYjAy
MGVkLi41NzE2MzA5M2FjODVlMjk2MTcwYzgzNWE1NzcxODVkNjk2M2I0NzBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NDY3
LDYgKzQ0NjcsOCBAQAogCQlBQTRDM0E3NzBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTRDM0E3
NTBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmggKi87IH07CiAJCUFBQjYwNTRFMTU4
NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFCNjA1NEExNTg3NEM1ODAwN0I1MDMxIC8q
IEluamVjdGVkU2NyaXB0QmFzZS5jcHAgKi87IH07CiAJCUFBQjYwNTRGMTU4NzRDNTgwMDdCNTAz
MSAvKiBJbmplY3RlZFNjcmlwdEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFBQjYwNTRCMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlw
dEJhc2UuaCAqLzsgfTsKKwkJQUFCNjA1NTAxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2Ny
aXB0TW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFBQjYwNTRDMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHAg
Ki87IH07CisJCUFBQjYwNTUxMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdE1vZHVs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFCNjA1
NEQxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmggKi87IH07CiAJCUFB
RDc2NkVCMTU3RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JXZWJHTEFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBRDc2NkU4MTU3RTUwMkYw
MEU4NTQyMyAvKiBJbnNwZWN0b3JXZWJHTEFnZW50LmNwcCAqLzsgfTsKIAkJQUFENzY2RUMxNTdF
NTAyRjAwRTg1NDIzIC8qIEluc3BlY3RvcldlYkdMQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBRDc2NkU5MTU3RTUwMkYwMEU4NTQyMyAvKiBJ
bnNwZWN0b3JXZWJHTEFnZW50LmggKi87IH07CiAJCUFBRDc2NkVEMTU3RTUwMkYwMEU4NTQyMyAv
KiBJbnNwZWN0b3JXZWJHTEluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFENzY2RUExNTdFNTAyRjAwRTg1NDIzIC8qIEluc3Bl
Y3RvcldlYkdMSW5zdHJ1bWVudGF0aW9uLmggKi87IH07CkBAIC0xMTQ4MCw2ICsxMTQ4Miw4IEBA
CiAJCUFBOTEyNzUwMTU3RTM1QTUwMDQ1NEU1NCAvKiBJbmplY3RlZFdlYkdMU2NyaXB0U291cmNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkV2ViR0xTY3JpcHRT
b3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUFCNjA1NEExNTg3NEM1ODAw
N0I1MDMxIC8qIEluamVjdGVkU2NyaXB0QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmplY3RlZFNjcmlwdEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBQUI2MDU0QjE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0QmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQUI2MDU0QzE1ODc0QzU4MDA3QjUwMzEg
LyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworIAkJQUFCNjA1NEQxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0TW9kdWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0TW9kdWxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBRDc2NkU4MTU3RTUwMkYwMEU4NTQy
MyAvKiBJbnNwZWN0b3JXZWJHTEFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluc3BlY3RvcldlYkdMQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBQUQ3NjZFOTE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yV2ViR0xBZ2VudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JXZWJHTEFnZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBRDc2NkVBMTU3RTUwMkYwMEU4NTQyMyAv
KiBJbnNwZWN0b3JXZWJHTEluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnNwZWN0b3JXZWJHTEluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQ0MTYsNiArMTQ0MjAsOCBAQAogCQkJCTdBMEU3NkY4MTBCRjA4
RUQwMEEwMjc2RSAvKiBJbmplY3RlZFNjcmlwdEhvc3QuaWRsICovLAogCQkJCUYzMTYzOTY5MTMy
OTQ4MUEwMEE2NDlDQiAvKiBJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwICovLAogCQkJCUYzMTYz
OTZBMTMyOTQ4MUEwMEE2NDlDQiAvKiBJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCAqLywKKwkJCQlB
QUI2MDU0QzE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwICovLAor
IAkJCQlBQUI2MDU0RDE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaCAq
LywKIAkJCQk3QTU2M0Y5NTEyREY1QzkxMDBGNDUzNkQgLyogSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMgKi8sCiAJCQkJQUE5MDMwRkUxNTdFMTZBMDAwMjc2MjQ3IC8qIEluamVjdGVkV2ViR0xTY3Jp
cHRTb3VyY2UuanMgKi8sCiAJCQkJMUM0MzVDRDQxNEU4NTQ1QjAwNEUxMEVBIC8qIEluc3BlY3Rv
ci0wLjEuanNvbiAqLywKQEAgLTIzMzMyLDYgKzIzMzM4LDcgQEAKIAkJCQlBQUI2MDU0RjE1ODc0
QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QTBFNzZGQTEwQkYwOEVEMDBBMDI3NkUgLyogSW5qZWN0ZWRTY3JpcHRIb3N0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGMzE2Mzk2QzEzMjk0ODFBMDBBNjQ5Q0IgLyogSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBQUI2MDU1MTE1ODc0QzU4MDA3QjUwMzEgLyogSW5q
ZWN0ZWRTY3JpcHRNb2R1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUU1MEExNTVBMDUw
MDBBNDIzNCAvKiBJbmxpbmVCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVB
MDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U3ODkx
NjExMjBENjA4MDA2MEVDRTUgLyogSW5saW5lSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAt
MjY0NzEsNiArMjY0NzgsNyBAQAogCQkJCUFBQjYwNTRFMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmpl
Y3RlZFNjcmlwdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0EwRTc2RjkxMEJGMDhFRDAw
QTAyNzZFIC8qIEluamVjdGVkU2NyaXB0SG9zdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzE2
Mzk2QjEzMjk0ODFBMDBBNjQ5Q0IgLyogSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUFBQjYwNTUwMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdE1v
ZHVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENGRjVFNjBBMTU1QTA1MDAwQTQyMzQgLyog
SW5saW5lQm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4Q0ZGNUU0MEExNTVBMDUwMDBBNDIz
NCAvKiBJbmxpbmVGbG93Qm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUE0ODU5MDk3RDkz
MDIwMDk0QzlFNCAvKiBJbmxpbmVUZXh0Qm94LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5jcHAKaW5kZXggMWZjZDljYjgwMjYzNDkw
OTdhYTYyYzJkODE5NTBlMjAyZjEzNDE1YS4uMGNmYjgyYjZlNzAxMTFhYjM2ZjE5ODZkZjYwNmQ4
YmMyNWJlMGZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3Qu
Y3BwCkBAIC01MCw2ICs1MCwxMiBAQCBTY3JpcHRPYmplY3Q6OlNjcmlwdE9iamVjdChTY3JpcHRT
dGF0ZSogc2NyaXB0U3RhdGUsIEpTT2JqZWN0KiBvYmplY3QpCiB7CiB9CiAKK1NjcmlwdE9iamVj
dDo6U2NyaXB0T2JqZWN0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgU2NyaXB0VmFs
dWUmIHNjcmlwdFZhbHVlKQorICAgIDogU2NyaXB0VmFsdWUoc2NyaXB0U3RhdGUtPmdsb2JhbERh
dGEoKSwgc2NyaXB0VmFsdWUuanNWYWx1ZSgpKQorICAgICwgbV9zY3JpcHRTdGF0ZShzY3JpcHRT
dGF0ZSkKK3sKK30KKwogc3RhdGljIGJvb2wgaGFuZGxlRXhjZXB0aW9uKFNjcmlwdFN0YXRlKiBz
Y3JpcHRTdGF0ZSkKIHsKICAgICBpZiAoIXNjcmlwdFN0YXRlLT5oYWRFeGNlcHRpb24oKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmgKaW5kZXggZWIwMmU5YjdhZDU5
MDk1ZDRiZjQxZTZlMjc1YjI3MWIzNzlhNTRjYy4uMmMxYWU0ZDMzM2Q0ZjVlMzUzZWE2NDY1MDhm
NDliZDRjZTljYTdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0
LmgKQEAgLTQ0LDcgKzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNjcmlw
dE9iamVjdCA6IHB1YmxpYyBTY3JpcHRWYWx1ZSB7CiAgICAgcHVibGljOgogICAgICAgICBTY3Jp
cHRPYmplY3QoU2NyaXB0U3RhdGUqLCBKU0M6OkpTT2JqZWN0Kik7Ci0gICAgICAgIFNjcmlwdE9i
amVjdCgpIHt9CisgICAgICAgIFNjcmlwdE9iamVjdChTY3JpcHRTdGF0ZSosIGNvbnN0IFNjcmlw
dFZhbHVlJik7CisgICAgICAgIFNjcmlwdE9iamVjdCgpIHsgfQogICAgICAgICBKU0M6OkpTT2Jq
ZWN0KiBqc09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGFzT2JqZWN0KGpzVmFsdWUoKSk7IH0KICAg
ICAgICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRT
dGF0ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0T2JqZWN0LmNwcApp
bmRleCAzZDM4YTllZWNlZjkwMDRmNGE2ZjZlNTNlYTA3MmIwZjhlMjJmYjg2Li4wMjY2ZGY0OGU5
ZGJlNjAwMzZmMjMwMmFmM2MzZjgwOGY4ZTczMjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdE9iamVjdC5jcHAKQEAgLTUxLDYgKzUxLDEyIEBAIFNjcmlwdE9iamVjdDo6
U2NyaXB0T2JqZWN0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB2OE9iCiB7CiB9CiAKK1NjcmlwdE9iamVjdDo6U2NyaXB0T2JqZWN0KFNjcmlwdFN0YXRl
KiBzY3JpcHRTdGF0ZSwgY29uc3QgU2NyaXB0VmFsdWUmIHNjcmlwdFZhbHVlKQorICAgIDogU2Ny
aXB0VmFsdWUoc2NyaXB0VmFsdWUpCisgICAgLCBtX3NjcmlwdFN0YXRlKHNjcmlwdFN0YXRlKQor
eworfQorCiB2ODo6TG9jYWw8djg6Ok9iamVjdD4gU2NyaXB0T2JqZWN0Ojp2OE9iamVjdCgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKHY4VmFsdWUoKS0+SXNPYmplY3QoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5oCmluZGV4IDQ1NDFhYjA4ODMzM2E5YjM0YzIyMTg3
MDFmYWE3OGI4ZjM1Y2JlYjguLjFjNDdhNjBjMGYzZTdlZTg4OWY5OTYwZjNiZGExMGYxYTFjODIz
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5oCkBAIC00Myw4
ICs0Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTY3JpcHRPYmplY3QgOiBw
dWJsaWMgU2NyaXB0VmFsdWUgewogICAgIHB1YmxpYzoKICAgICAgICAgU2NyaXB0T2JqZWN0KFNj
cmlwdFN0YXRlKiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CisgICAgICAgIFNjcmlwdE9iamVj
dChTY3JpcHRTdGF0ZSosIGNvbnN0IFNjcmlwdFZhbHVlJik7CiAgICAgICAgIFNjcmlwdE9iamVj
dCgpIDogbV9zY3JpcHRTdGF0ZSgwKSB7IH07Ci0gICAgICAgIHZpcnR1YWwgflNjcmlwdE9iamVj
dCgpIHt9CisgICAgICAgIHZpcnR1YWwgflNjcmlwdE9iamVjdCgpIHsgfQogCiAgICAgICAgIHY4
OjpMb2NhbDx2ODo6T2JqZWN0PiB2OE9iamVjdCgpIGNvbnN0OwogICAgICAgICBTY3JpcHRTdGF0
ZSogc2NyaXB0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdFN0YXRlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAppbmRleCBjZWVlMzYyNGI1YjM3
Y2RlMDM4YzYxZTk3OTFmZGFhN2EzZGQ2NzQ1Li5mNDg4ZjQ1MGUzYTUwZDQyNDYxMWM2OGU0ZGM5
ZDFmODNlMWJkMmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgogCiAj
aW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0LmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRN
b2R1bGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJOb2RlLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0LmgKaW5kZXggYWE5YzgzZTg1NzVjNzRiNzZkOWZlMDNkMDY5ZDE2ODQzMDcz
NWFjOC4uNzRlODU5NDVmMTQ5Yjg2YTZlN2UwOWY5YTI2MDhjMGJkMjgzMmUzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKQEAgLTQyLDYgKzQyLDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBJbmplY3RlZFNjcmlwdE1vZHVsZTsKIGNsYXNz
IE5vZGU7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKQEAgLTUyLDYgKzUzLDggQEAg
cHVibGljOgogICAgIEluamVjdGVkU2NyaXB0KCk7CiAgICAgfkluamVjdGVkU2NyaXB0KCkgeyB9
CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gIkluamVjdGVkU2Ny
aXB0IjsgfQorCiAgICAgdm9pZCBldmFsdWF0ZShFcnJvclN0cmluZyosCiAgICAgICAgICAgICAg
ICAgICBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCiAgICAgICAgICAgICAgICAgICBjb25zdCBT
dHJpbmcmIG9iamVjdEdyb3VwLApAQCAtOTQsNiArOTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZWxlYXNlT2JqZWN0R3JvdXAoY29uc3QgU3RyaW5nJik7CiAKIHByaXZhdGU6CisgICAgZnJpZW5k
IGNsYXNzIEluamVjdGVkU2NyaXB0TW9kdWxlOwogICAgIGZyaWVuZCBJbmplY3RlZFNjcmlwdCBJ
bmplY3RlZFNjcmlwdE1hbmFnZXI6OmluamVjdGVkU2NyaXB0Rm9yKFNjcmlwdFN0YXRlKik7CiAg
ICAgSW5qZWN0ZWRTY3JpcHQoU2NyaXB0T2JqZWN0LCBJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNr
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNw
cAppbmRleCBjZTg3OGFiMTc0ZGFiYjdhY2QwZjRmYWJiNGM5YmM3OTdkNWRhYzM2Li4xNjBjNTcw
MTVlZmEzNTk4ODIyODM1MGJkNGQ3M2M4ZWIzZjE4OTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApAQCAtNjcsNyArNjcsNyBAQCBjb25z
dCBTY3JpcHRPYmplY3QmIEluamVjdGVkU2NyaXB0QmFzZTo6aW5qZWN0ZWRTY3JpcHRPYmplY3Qo
KSBjb25zdAogU2NyaXB0VmFsdWUgSW5qZWN0ZWRTY3JpcHRCYXNlOjpjYWxsRnVuY3Rpb25XaXRo
RXZhbEVuYWJsZWQoU2NyaXB0RnVuY3Rpb25DYWxsJiBmdW5jdGlvbiwgYm9vbCYgaGFkRXhjZXB0
aW9uKSBjb25zdAogewogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbVNjcmlwdFN0YXRlKG1faW5qZWN0
ZWRTY3JpcHRPYmplY3Quc2NyaXB0U3RhdGUoKSk7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENhbGxGdW5j
dGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0LCAiSW5qZWN0ZWRTY3JpcHQiLCAxKTsKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsQ2FsbEZ1bmN0aW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIG5hbWUoKSwg
MSk7CiAKICAgICBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUgPSBtX2luamVjdGVkU2NyaXB0T2Jq
ZWN0LnNjcmlwdFN0YXRlKCk7CiAgICAgYm9vbCBldmFsSXNEaXNhYmxlZCA9IGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5oCmluZGV4IDM4ZDU0
NWVmOTJmYjM3NmQzMWNlMjgyN2Q2YjFhMDcyYThmMjdhOTMuLjcxMjczMDNlZGQ2OTYwOWZkM2Uz
ZjY4NDdlYTE0OGM2NGMzMzZhMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRCYXNlLmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBJbmplY3RlZFNjcmlwdE1vZHVsZTsKIGNsYXNzIEluc3BlY3RvclZhbHVlOwog
Y2xhc3MgU2NyaXB0RnVuY3Rpb25DYWxsOwogCkBAIC00OSw2ICs1MCw4IEBAIGNsYXNzIEluamVj
dGVkU2NyaXB0QmFzZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SW5qZWN0ZWRTY3JpcHRCYXNl
KCkgeyB9CiAKKyAgICB2aXJ0dWFsIFN0cmluZyBuYW1lKCkgY29uc3QgPSAwOworCiAgICAgYm9v
bCBoYXNOb1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3RlZFNjcmlwdE9iamVjdC5oYXNO
b1ZhbHVlKCk7IH0KICAgICBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX2luamVjdGVkU2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCk7IH0KIApAQCAtNjQsNiArNjcs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBtYWtlRXZhbENhbGwoRXJyb3JTdHJpbmcqLCBTY3Jp
cHRGdW5jdGlvbkNhbGwmLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVj
dD4qIHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3duKTsKIAog
cHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgSW5qZWN0ZWRTY3JpcHRNb2R1bGU7CiAgICAgU2Ny
aXB0T2JqZWN0IG1faW5qZWN0ZWRTY3JpcHRPYmplY3Q7CiAgICAgSW5zcGVjdGVkU3RhdGVBY2Nl
c3NDaGVjayBtX2luc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oCmluZGV4IGFjYjk2NjY1NTFm
ODliMTJhOTAzMzJlY2NkMGUyYjhhMjYyZWRmOTMuLjcyNmJiMzcxYTljOTMxOTgwYWRjODYyMzA3
MWViNTI1MjdhYmY2ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmgKQEAgLTY4LDggKzY4LDEwIEBAIHB1YmxpYzoKICAgICBTY3JpcHRP
YmplY3Qgd3JhcFdlYkdMUmVuZGVyaW5nQ29udGV4dEZvckluc3RydW1lbnRhdGlvbihjb25zdCBT
Y3JpcHRPYmplY3QmKTsKICNlbmRpZgogCi1wcml2YXRlOgogICAgIHR5cGVkZWYgYm9vbCAoKklu
c3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2spKFNjcmlwdFN0YXRlKik7CisgICAgSW5zcGVjdGVkU3Rh
dGVBY2Nlc3NDaGVjayBpbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrKCkgY29uc3QgeyByZXR1cm4g
bV9pbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrOyB9CisKK3ByaXZhdGU6CiAgICAgZXhwbGljaXQg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKEluc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2spOwogCiAgICAg
U3RyaW5nIGluamVjdGVkU2NyaXB0U291cmNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TW9kdWxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWRkZmVhNWYxZTRh
NDAyMjMxMmU3MmY4MzU2Y2VhZTIxNWU5NGNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TW9kdWxlLmNwcApAQCAtMCwwICsxLDc4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUg
IkluamVjdGVkU2NyaXB0TW9kdWxlLmgiCisKKyNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgor
I2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgorI2luY2x1ZGUgIlNjcmlwdEZ1bmN0
aW9uQ2FsbC5oIgorI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0luamVjdGVkU2NyaXB0TW9kdWxlOjpJbmplY3RlZFNjcmlwdE1vZHVsZSgpCit7Cit9
CisKK3ZvaWQgSW5qZWN0ZWRTY3JpcHRNb2R1bGU6OmVuc3VyZUluamVjdGVkKEluamVjdGVkU2Ny
aXB0TWFuYWdlciYgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBTY3JpcHRTdGF0ZSogc2NyaXB0U3Rh
dGUpCit7CisgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBpbmplY3RlZFNjcmlw
dE1hbmFnZXIuaW5qZWN0ZWRTY3JpcHRGb3Ioc2NyaXB0U3RhdGUpOworICAgIEFTU0VSVCghaW5q
ZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKTsKKyAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9W
YWx1ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogTWFrZSB0aGUgSW5qZWN0
ZWRTY3JpcHQgYSBtb2R1bGUgaXRzZWxmLgorICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlv
bihpbmplY3RlZFNjcmlwdC5pbmplY3RlZFNjcmlwdE9iamVjdCgpLCAibW9kdWxlIik7CisgICAg
ZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQobmFtZSgpKTsKKyAgICBib29sIGhhZEV4Y2VwdGlvbiA9
IGZhbHNlOworICAgIFNjcmlwdFZhbHVlIHJlc3VsdFZhbHVlID0gaW5qZWN0ZWRTY3JpcHQuY2Fs
bEZ1bmN0aW9uV2l0aEV2YWxFbmFibGVkKGZ1bmN0aW9uLCBoYWRFeGNlcHRpb24pOworICAgIEFT
U0VSVCghaGFkRXhjZXB0aW9uKTsKKyAgICBpZiAoaGFkRXhjZXB0aW9uIHx8IHJlc3VsdFZhbHVl
Lmhhc05vVmFsdWUoKSB8fCAhcmVzdWx0VmFsdWUuaXNPYmplY3QoKSkgeworICAgICAgICBTY3Jp
cHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHQuaW5qZWN0ZWRTY3JpcHRPYmpl
Y3QoKSwgImluamVjdE1vZHVsZSIpOworICAgICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChu
YW1lKCkpOworICAgICAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChzb3VyY2UoKSk7CisgICAg
ICAgIHJlc3VsdFZhbHVlID0gaW5qZWN0ZWRTY3JpcHQuY2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFi
bGVkKGZ1bmN0aW9uLCBoYWRFeGNlcHRpb24pOworICAgICAgICBpZiAoaGFkRXhjZXB0aW9uIHx8
IHJlc3VsdFZhbHVlLmhhc05vVmFsdWUoKSB8fCAhcmVzdWx0VmFsdWUuaXNPYmplY3QoKSkgewor
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBtX2luamVjdGVkU2NyaXB0T2JqZWN0ID0gU2NyaXB0T2Jq
ZWN0KHNjcmlwdFN0YXRlLCByZXN1bHRWYWx1ZSk7CisgICAgbV9pbnNwZWN0ZWRTdGF0ZUFjY2Vz
c0NoZWNrID0gaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2so
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BF
Q1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dE1vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TW9kdWxl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjY0OGMwODI2MTdiYTM5MjVmODk2ZjM4YThmZDViZDdiOTk1YzdjZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dE1vZHVsZS5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEluamVjdGVkU2NyaXB0TW9kdWxlX2gK
KyNkZWZpbmUgSW5qZWN0ZWRTY3JpcHRNb2R1bGVfaAorCisjaW5jbHVkZSAiSW5qZWN0ZWRTY3Jp
cHRCYXNlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTY3JpcHRT
dGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEluamVjdGVkU2NyaXB0TWFu
YWdlcjsKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKK2NsYXNzIEluamVjdGVkU2NyaXB0TW9k
dWxlIDogcHVibGljIEluamVjdGVkU2NyaXB0QmFzZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCBT
dHJpbmcgc291cmNlKCkgY29uc3QgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgLy8gRG8gbm90IGV4
cG9zZSB0aGUgY29uc3RydWN0b3IgaW4gY2hpbGQgY2xhc3NlcyBhcyB3ZWxsLiBJbnN0ZWFkIHBy
b3ZpZGUKKyAgICAvLyBhIHN0YXRpYyBmYWN0b3J5IG1ldGhvZCB0aGF0IHdvdWxkIGNyZWF0ZSBh
IG5ldyBpbnN0YW5jZSBvZiB0aGUgY2xhc3MKKyAgICAvLyBhbmQgY2FsbCBpdHMgZW5zdXJlSW5q
ZWN0ZWQoKSBtZXRob2QgaW1tZWRpYXRlbHkuCisgICAgSW5qZWN0ZWRTY3JpcHRNb2R1bGUoKTsK
KyAgICB2b2lkIGVuc3VyZUluamVjdGVkKEluamVjdGVkU2NyaXB0TWFuYWdlciYsIFNjcmlwdFN0
YXRlKik7Cit9OworCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJj
ZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpp
bmRleCBhZTRjOTc4Y2YzZjJlNGU3OTE2ZDMxZDgzMDUwYWFmMzZmNDJhY2NjLi43OWU2NTYyYWVj
MTYyNTcwZThjYzIyMzQwMjNmMjYzZGEwMTliYTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCkBAIC00MCw2ICs0MCw3IEBAIHZhciBJ
bmplY3RlZFNjcmlwdCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9pZFRvV3JhcHBlZE9iamVjdCA9
IHt9OwogICAgIHRoaXMuX2lkVG9PYmplY3RHcm91cE5hbWUgPSB7fTsKICAgICB0aGlzLl9vYmpl
Y3RHcm91cHMgPSB7fTsKKyAgICB0aGlzLl9tb2R1bGVzID0ge307CiB9CiAKIEluamVjdGVkU2Ny
aXB0LnByaW1pdGl2ZVR5cGVzID0gewpAQCAtNDExLDYgKzQxMiwxOSBAQCBJbmplY3RlZFNjcmlw
dC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgfSwKIAorICAgIG1v
ZHVsZTogZnVuY3Rpb24obmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9tb2R1bGVz
W25hbWVdOworICAgIH0sCisgCisgICAgaW5qZWN0TW9kdWxlOiBmdW5jdGlvbihuYW1lLCBzb3Vy
Y2UpCisgICAgeworICAgICAgICBkZWxldGUgdGhpcy5fbW9kdWxlc1tuYW1lXTsKKyAgICAgICAg
dmFyIG1vZHVsZSA9IGV2YWwoIigiICsgc291cmNlICsgIikiKTsKKyAgICAgICAgdGhpcy5fbW9k
dWxlc1tuYW1lXSA9IG1vZHVsZTsKKyAgICAgICAgcmV0dXJuIG1vZHVsZTsKKyAgICB9LAorCiAg
ICAgX2lzRGVmaW5lZDogZnVuY3Rpb24ob2JqZWN0KQogICAgIHsKICAgICAgICAgcmV0dXJuIG9i
amVjdCB8fCB0aGlzLl9pc0hUTUxBbGxDb2xsZWN0aW9uKG9iamVjdCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148589</attachid>
            <date>2012-06-20 10:04:05 -0700</date>
            <delta_ts>2012-06-20 11:28:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89530-20120620100405.patch</filename>
            <type>text/plain</type>
            <size>26914</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNzY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjEyNTA4MmE5OWU3YzMx
ZjdmOThlNzc2MzYxZmRiMTU5OWM4Njk4Zi4uMzUwZDkzODNiNTA1NmIwYWQ3MzYyZjRkMjdmYTNk
YTQwZjVmMDNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU3IEBACiAyMDEyLTA2LTE5ICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFsbG93IG1vZHVsZSBpbmplY3Rpb25zIGludG8gdGhlIEluamVjdGVkU2NyaXB0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTUzMAorCisgICAg
ICAgIEFkZCBhIG5ldyBJbmplY3RlZFNjcmlwdE1vZHVsZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGlu
aGVyaXRzIEluamVjdGVkU2NyaXB0QmFzZQorICAgICAgICB0byByZXVzZSBpbXBsZW1lbnRhdGlv
biwgYW5kIHdoaWNoIGphdmFzY3JpcHQgY29kZSBpcyBpbmplY3RlZCB2aWEKKyAgICAgICAgSW5q
ZWN0ZWRTY3JpcHQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0T2JqZWN0OjpTY3JpcHRPYmplY3QpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0Lmg6Cisg
ICAgICAgIChTY3JpcHRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0T2JqZWN0OjpT
Y3JpcHRPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRPYmplY3Q6OlNjcmlwdE9iamVjdCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuaDoKKyAgICAgICAg
KFNjcmlwdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRPYmplY3Q6On5TY3JpcHRP
YmplY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHA6CisgICAgICAg
ICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0OjpuYW1lKToKKyAgICAgICAgKEluamVjdGVkU2Ny
aXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFi
bGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKEluamVjdGVkU2NyaXB0QmFzZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0TWFuYWdlcjo6aW5zcGVj
dGVkU3RhdGVBY2Nlc3NDaGVjayk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
TW9kdWxlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0QmFzZS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmpl
Y3RlZFNjcmlwdE1vZHVsZTo6SW5qZWN0ZWRTY3JpcHRNb2R1bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5qZWN0ZWRTY3JpcHRNb2R1bGU6OmVuc3VyZUluamVjdGVkKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KEluamVjdGVkU2NyaXB0TW9kdWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRTb3VyY2UuanM6CisgICAgICAgICguKToKKworMjAxMi0wNi0xOSAgQW5kcmV5IEFkYWlraW4g
IDxhYW5kcmV5QGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFeHRyYWN0
IEluamVjdGVkU2NyaXB0QmFzZSBjbGFzcyBmcm9tIHRoZSBJbmplY3RlZFNjcmlwdAogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxMDcKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCAxY2IxMDMxNDAyM2VhYzc3YzE3MDNlNGVkYzY2OTBhOTBiODA3NDhh
Li4wYTI5NTllMWE3NzcxNDQ1Y2E5ODhmYjdhNGViZWE3ZDk0YjdmMTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtOTMwLDYgKzkzMCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBpbnNw
ZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcAogICAgIGluc3BlY3Rvci9ET01QYXRjaFN1cHBv
cnQuY3BwCiAgICAgaW5zcGVjdG9yL0lkZW50aWZpZXJzRmFjdG9yeS5jcHAKKyAgICBpbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmNwcAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCiAgICAgaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0SG9zdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDM2Y2UxMDUwYTQxZmQzNjNhZDZlMDkxODRiNTA5NjJkNDFmNjNhZDkuLjdkMTI1Y2ZmNzkwY2Yy
OWMwMzMzNWRiMDRmNmQ3MTYyZWRiMmUyNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMjY1Myw2ICsyNjUzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvRE9NV3JhcHBlclZpc2l0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0lkZW50aWZpZXJzRmFjdG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JZGVudGlmaWVyc0ZhY3RvcnkuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0TW9kdWxlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0TW9kdWxlLmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQppbmRleCA2ZWFjZDVkZTY2NWNhNjJmNjcwM2NkMThhYWYzOWY1Yzg1ZjM5ZTA2Li45MWRhZGVk
MmQ5MGExYmRhMTU3MThjNGY5MGQzMzMyOGQyZDdlODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg5MCw2
ICs4OTAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVy
LmNwcCBcCiAgICAgaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAgXAogICAgIGluc3BlY3Rv
ci9JZGVudGlmaWVyc0ZhY3RvcnkuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRN
b2R1bGUuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIFwKICAgICBpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0SG9zdC5jcHAgXApAQCAtMjAzOCw2ICsyMDM5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaW5z
cGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5oIFwKICAgICBpbnNwZWN0b3IvRE9NV3JhcHBlclZpc2l0
b3IuaCBcCiAgICAgaW5zcGVjdG9yL0lkZW50aWZpZXJzRmFjdG9yeS5oIFwKKyAgICBpbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaCBcCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmggXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuaCBcCiAgICAgaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0SG9zdC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBiMGM3MmJjMzFkOTdj
ZTFkMGEwNTY4ZjUzOGE3M2MwYmIxNWVjM2M2Li4xOTdlMGFkYjIzMDA5ZTc3NzA2ZWUzMjZjZWMx
ZjNkOTgyYTM5ZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yNzYzLDYgKzI3NjMsOCBAQAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9ET01XcmFwcGVyVmlzaXRvci5oJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvSWRlbnRpZmllcnNGYWN0b3J5LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0lkZW50aWZpZXJzRmFjdG9yeS5oJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRNb2R1bGUuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRN
b2R1bGUuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNjE5ZTgyOWY3OTU2MTg5NWVlY2RkZjI0MzM4
NjY5MTQ0ZTI0MmQ1My4uMzA0OTllODg4MzA1NTAwNjYyNzg0ZTQwNDkyZTEwN2VmNDFhMDExNiAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTcz
MzE1LDYgKzczMzE1LDMwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHAiCisJCQkJPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbmplY3Rl
ZFNjcmlwdE1vZHVsZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5qZWN0ZWRTY3JpcHQuY3BwIgogCQkJCT4KIAkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBiZThiNWZkMjRiMGMzZTFjZjgzYjBmZTdmNjdlOTc3ZTIyYjAy
MGVkLi41NzE2MzA5M2FjODVlMjk2MTcwYzgzNWE1NzcxODVkNjk2M2I0NzBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NDY3
LDYgKzQ0NjcsOCBAQAogCQlBQTRDM0E3NzBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTRDM0E3
NTBCMkIxNjc5MDAyMzM0QTIgLyogU3R5bGVFbGVtZW50LmggKi87IH07CiAJCUFBQjYwNTRFMTU4
NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFCNjA1NEExNTg3NEM1ODAwN0I1MDMxIC8q
IEluamVjdGVkU2NyaXB0QmFzZS5jcHAgKi87IH07CiAJCUFBQjYwNTRGMTU4NzRDNTgwMDdCNTAz
MSAvKiBJbmplY3RlZFNjcmlwdEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEFBQjYwNTRCMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlw
dEJhc2UuaCAqLzsgfTsKKwkJQUFCNjA1NTAxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2Ny
aXB0TW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEFBQjYwNTRDMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdE1vZHVsZS5jcHAg
Ki87IH07CisJCUFBQjYwNTUxMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdE1vZHVs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFCNjA1
NEQxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0TW9kdWxlLmggKi87IH07CiAJCUFB
RDc2NkVCMTU3RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JXZWJHTEFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBRDc2NkU4MTU3RTUwMkYw
MEU4NTQyMyAvKiBJbnNwZWN0b3JXZWJHTEFnZW50LmNwcCAqLzsgfTsKIAkJQUFENzY2RUMxNTdF
NTAyRjAwRTg1NDIzIC8qIEluc3BlY3RvcldlYkdMQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBRDc2NkU5MTU3RTUwMkYwMEU4NTQyMyAvKiBJ
bnNwZWN0b3JXZWJHTEFnZW50LmggKi87IH07CiAJCUFBRDc2NkVEMTU3RTUwMkYwMEU4NTQyMyAv
KiBJbnNwZWN0b3JXZWJHTEluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFENzY2RUExNTdFNTAyRjAwRTg1NDIzIC8qIEluc3Bl
Y3RvcldlYkdMSW5zdHJ1bWVudGF0aW9uLmggKi87IH07CkBAIC0xMTQ4MCw2ICsxMTQ4Miw4IEBA
CiAJCUFBOTEyNzUwMTU3RTM1QTUwMDQ1NEU1NCAvKiBJbmplY3RlZFdlYkdMU2NyaXB0U291cmNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkV2ViR0xTY3JpcHRT
b3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUFCNjA1NEExNTg3NEM1ODAw
N0I1MDMxIC8qIEluamVjdGVkU2NyaXB0QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmplY3RlZFNjcmlwdEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBQUI2MDU0QjE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0QmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBQUI2MDU0QzE1ODc0QzU4MDA3QjUwMzEg
LyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworIAkJQUFCNjA1NEQxNTg3NEM1ODAwN0I1MDMxIC8qIEluamVjdGVkU2NyaXB0TW9kdWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0TW9kdWxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBRDc2NkU4MTU3RTUwMkYwMEU4NTQy
MyAvKiBJbnNwZWN0b3JXZWJHTEFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluc3BlY3RvcldlYkdMQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBQUQ3NjZFOTE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yV2ViR0xBZ2VudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JXZWJHTEFnZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBRDc2NkVBMTU3RTUwMkYwMEU4NTQyMyAv
KiBJbnNwZWN0b3JXZWJHTEluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnNwZWN0b3JXZWJHTEluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTQ0MTYsNiArMTQ0MjAsOCBAQAogCQkJCTdBMEU3NkY4MTBCRjA4
RUQwMEEwMjc2RSAvKiBJbmplY3RlZFNjcmlwdEhvc3QuaWRsICovLAogCQkJCUYzMTYzOTY5MTMy
OTQ4MUEwMEE2NDlDQiAvKiBJbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwICovLAogCQkJCUYzMTYz
OTZBMTMyOTQ4MUEwMEE2NDlDQiAvKiBJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCAqLywKKwkJCQlB
QUI2MDU0QzE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuY3BwICovLAor
IAkJCQlBQUI2MDU0RDE1ODc0QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaCAq
LywKIAkJCQk3QTU2M0Y5NTEyREY1QzkxMDBGNDUzNkQgLyogSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMgKi8sCiAJCQkJQUE5MDMwRkUxNTdFMTZBMDAwMjc2MjQ3IC8qIEluamVjdGVkV2ViR0xTY3Jp
cHRTb3VyY2UuanMgKi8sCiAJCQkJMUM0MzVDRDQxNEU4NTQ1QjAwNEUxMEVBIC8qIEluc3BlY3Rv
ci0wLjEuanNvbiAqLywKQEAgLTIzMzMyLDYgKzIzMzM4LDcgQEAKIAkJCQlBQUI2MDU0RjE1ODc0
QzU4MDA3QjUwMzEgLyogSW5qZWN0ZWRTY3JpcHRCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QTBFNzZGQTEwQkYwOEVEMDBBMDI3NkUgLyogSW5qZWN0ZWRTY3JpcHRIb3N0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGMzE2Mzk2QzEzMjk0ODFBMDBBNjQ5Q0IgLyogSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBQUI2MDU1MTE1ODc0QzU4MDA3QjUwMzEgLyogSW5q
ZWN0ZWRTY3JpcHRNb2R1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUU1MEExNTVBMDUw
MDBBNDIzNCAvKiBJbmxpbmVCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGNUUzMEExNTVB
MDUwMDBBNDIzNCAvKiBJbmxpbmVGbG93Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U3ODkx
NjExMjBENjA4MDA2MEVDRTUgLyogSW5saW5lSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAt
MjY0NzEsNiArMjY0NzgsNyBAQAogCQkJCUFBQjYwNTRFMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmpl
Y3RlZFNjcmlwdEJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0EwRTc2RjkxMEJGMDhFRDAw
QTAyNzZFIC8qIEluamVjdGVkU2NyaXB0SG9zdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzE2
Mzk2QjEzMjk0ODFBMDBBNjQ5Q0IgLyogSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUFBQjYwNTUwMTU4NzRDNTgwMDdCNTAzMSAvKiBJbmplY3RlZFNjcmlwdE1v
ZHVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENGRjVFNjBBMTU1QTA1MDAwQTQyMzQgLyog
SW5saW5lQm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4Q0ZGNUU0MEExNTVBMDUwMDBBNDIz
NCAvKiBJbmxpbmVGbG93Qm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUE0ODU5MDk3RDkz
MDIwMDk0QzlFNCAvKiBJbmxpbmVUZXh0Qm94LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5jcHAKaW5kZXggMWZjZDljYjgwMjYzNDkw
OTdhYTYyYzJkODE5NTBlMjAyZjEzNDE1YS4uMGNmYjgyYjZlNzAxMTFhYjM2ZjE5ODZkZjYwNmQ4
YmMyNWJlMGZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRPYmplY3Qu
Y3BwCkBAIC01MCw2ICs1MCwxMiBAQCBTY3JpcHRPYmplY3Q6OlNjcmlwdE9iamVjdChTY3JpcHRT
dGF0ZSogc2NyaXB0U3RhdGUsIEpTT2JqZWN0KiBvYmplY3QpCiB7CiB9CiAKK1NjcmlwdE9iamVj
dDo6U2NyaXB0T2JqZWN0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgY29uc3QgU2NyaXB0VmFs
dWUmIHNjcmlwdFZhbHVlKQorICAgIDogU2NyaXB0VmFsdWUoc2NyaXB0U3RhdGUtPmdsb2JhbERh
dGEoKSwgc2NyaXB0VmFsdWUuanNWYWx1ZSgpKQorICAgICwgbV9zY3JpcHRTdGF0ZShzY3JpcHRT
dGF0ZSkKK3sKK30KKwogc3RhdGljIGJvb2wgaGFuZGxlRXhjZXB0aW9uKFNjcmlwdFN0YXRlKiBz
Y3JpcHRTdGF0ZSkKIHsKICAgICBpZiAoIXNjcmlwdFN0YXRlLT5oYWRFeGNlcHRpb24oKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0LmgKaW5kZXggZWIwMmU5YjdhZDU5
MDk1ZDRiZjQxZTZlMjc1YjI3MWIzNzlhNTRjYy4uMmMxYWU0ZDMzM2Q0ZjVlMzUzZWE2NDY1MDhm
NDliZDRjZTljYTdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0T2JqZWN0
LmgKQEAgLTQ0LDcgKzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNjcmlw
dE9iamVjdCA6IHB1YmxpYyBTY3JpcHRWYWx1ZSB7CiAgICAgcHVibGljOgogICAgICAgICBTY3Jp
cHRPYmplY3QoU2NyaXB0U3RhdGUqLCBKU0M6OkpTT2JqZWN0Kik7Ci0gICAgICAgIFNjcmlwdE9i
amVjdCgpIHt9CisgICAgICAgIFNjcmlwdE9iamVjdChTY3JpcHRTdGF0ZSosIGNvbnN0IFNjcmlw
dFZhbHVlJik7CisgICAgICAgIFNjcmlwdE9iamVjdCgpIHsgfQogICAgICAgICBKU0M6OkpTT2Jq
ZWN0KiBqc09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGFzT2JqZWN0KGpzVmFsdWUoKSk7IH0KICAg
ICAgICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRT
dGF0ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0T2JqZWN0LmNwcApp
bmRleCAzZDM4YTllZWNlZjkwMDRmNGE2ZjZlNTNlYTA3MmIwZjhlMjJmYjg2Li4wMjY2ZGY0OGU5
ZGJlNjAwMzZmMjMwMmFmM2MzZjgwOGY4ZTczMjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1NjcmlwdE9iamVjdC5jcHAKQEAgLTUxLDYgKzUxLDEyIEBAIFNjcmlwdE9iamVjdDo6
U2NyaXB0T2JqZWN0KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB2OE9iCiB7CiB9CiAKK1NjcmlwdE9iamVjdDo6U2NyaXB0T2JqZWN0KFNjcmlwdFN0YXRl
KiBzY3JpcHRTdGF0ZSwgY29uc3QgU2NyaXB0VmFsdWUmIHNjcmlwdFZhbHVlKQorICAgIDogU2Ny
aXB0VmFsdWUoc2NyaXB0VmFsdWUpCisgICAgLCBtX3NjcmlwdFN0YXRlKHNjcmlwdFN0YXRlKQor
eworfQorCiB2ODo6TG9jYWw8djg6Ok9iamVjdD4gU2NyaXB0T2JqZWN0Ojp2OE9iamVjdCgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKHY4VmFsdWUoKS0+SXNPYmplY3QoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5oCmluZGV4IDQ1NDFhYjA4ODMzM2E5YjM0YzIyMTg3
MDFmYWE3OGI4ZjM1Y2JlYjguLjFjNDdhNjBjMGYzZTdlZTg4OWY5OTYwZjNiZGExMGYxYTFjODIz
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdE9iamVjdC5oCkBAIC00Myw4
ICs0Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBTY3JpcHRPYmplY3QgOiBw
dWJsaWMgU2NyaXB0VmFsdWUgewogICAgIHB1YmxpYzoKICAgICAgICAgU2NyaXB0T2JqZWN0KFNj
cmlwdFN0YXRlKiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CisgICAgICAgIFNjcmlwdE9iamVj
dChTY3JpcHRTdGF0ZSosIGNvbnN0IFNjcmlwdFZhbHVlJik7CiAgICAgICAgIFNjcmlwdE9iamVj
dCgpIDogbV9zY3JpcHRTdGF0ZSgwKSB7IH07Ci0gICAgICAgIHZpcnR1YWwgflNjcmlwdE9iamVj
dCgpIHt9CisgICAgICAgIHZpcnR1YWwgflNjcmlwdE9iamVjdCgpIHsgfQogCiAgICAgICAgIHY4
OjpMb2NhbDx2ODo6T2JqZWN0PiB2OE9iamVjdCgpIGNvbnN0OwogICAgICAgICBTY3JpcHRTdGF0
ZSogc2NyaXB0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdFN0YXRlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAppbmRleCBjZWVlMzYyNGI1YjM3
Y2RlMDM4YzYxZTk3OTFmZGFhN2EzZGQ2NzQ1Li5kZDQ3ZGMyYTY5ZjY3OTM5ZTFlNGIzMDk1MWQw
ZTE2MDJjMTNhYzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgogCiAj
aW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRIb3N0LmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRN
b2R1bGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJOb2RlLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKQEAgLTUwLDExICs1MSwxMiBAQCB1c2luZyBX
ZWJDb3JlOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0OwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBJbmplY3RlZFNjcmlwdDo6SW5qZWN0ZWRTY3JpcHQoKQorICAgIDogSW5qZWN0
ZWRTY3JpcHRCYXNlKCJJbmplY3RlZFNjcmlwdCIpCiB7CiB9CiAKIEluamVjdGVkU2NyaXB0OjpJ
bmplY3RlZFNjcmlwdChTY3JpcHRPYmplY3QgaW5qZWN0ZWRTY3JpcHRPYmplY3QsIEluc3BlY3Rl
ZFN0YXRlQWNjZXNzQ2hlY2sgYWNjZXNzQ2hlY2spCi0gICAgOiBJbmplY3RlZFNjcmlwdEJhc2Uo
aW5qZWN0ZWRTY3JpcHRPYmplY3QsIGFjY2Vzc0NoZWNrKQorICAgIDogSW5qZWN0ZWRTY3JpcHRC
YXNlKCJJbmplY3RlZFNjcmlwdCIsIGluamVjdGVkU2NyaXB0T2JqZWN0LCBhY2Nlc3NDaGVjaykK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAppbmRleCBh
YTljODNlODU3NWM3NGI3NmQ5ZmUwM2QwNjlkMTY4NDMwNzM1YWM4Li4wYjQ0ZjM3Y2IxNjUwZjAz
ZmVmNDA3Y2I1NTY1ZDQ1MDQ5ODc5YzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuaApAQCAtNDIsNiArNDIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIEluamVjdGVkU2NyaXB0TW9kdWxlOwogY2xhc3MgTm9kZTsKIGNsYXNzIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTsKIApAQCAtOTQsNiArOTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWxl
YXNlT2JqZWN0R3JvdXAoY29uc3QgU3RyaW5nJik7CiAKIHByaXZhdGU6CisgICAgZnJpZW5kIGNs
YXNzIEluamVjdGVkU2NyaXB0TW9kdWxlOwogICAgIGZyaWVuZCBJbmplY3RlZFNjcmlwdCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXI6OmluamVjdGVkU2NyaXB0Rm9yKFNjcmlwdFN0YXRlKik7CiAgICAg
SW5qZWN0ZWRTY3JpcHQoU2NyaXB0T2JqZWN0LCBJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApp
bmRleCBjZTg3OGFiMTc0ZGFiYjdhY2QwZjRmYWJiNGM5YmM3OTdkNWRhYzM2Li5mZTBiNDI4MTI2
ZWM4OWNiMDQ0ZGY3NWYyNjY5NzMxOTVmMmZmMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApAQCAtNDMsMTcgKzQzLDI1IEBAIHVzaW5n
IFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotSW5qZWN0ZWRTY3JpcHRCYXNlOjpJbmplY3RlZFNjcmlwdEJhc2UoKQot
ICAgIDogbV9pbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrKDApCitJbmplY3RlZFNjcmlwdEJhc2U6
OkluamVjdGVkU2NyaXB0QmFzZShjb25zdCBTdHJpbmcmIG5hbWUpCisgICAgOiBtX25hbWUobmFt
ZSkKKyAgICAsIG1faW5zcGVjdGVkU3RhdGVBY2Nlc3NDaGVjaygwKQogewogfQogCi1JbmplY3Rl
ZFNjcmlwdEJhc2U6OkluamVjdGVkU2NyaXB0QmFzZShTY3JpcHRPYmplY3QgaW5qZWN0ZWRTY3Jp
cHRPYmplY3QsIEluc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2sgYWNjZXNzQ2hlY2spCi0gICAgOiBt
X2luamVjdGVkU2NyaXB0T2JqZWN0KGluamVjdGVkU2NyaXB0T2JqZWN0KQorSW5qZWN0ZWRTY3Jp
cHRCYXNlOjpJbmplY3RlZFNjcmlwdEJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBTY3JpcHRPYmpl
Y3QgaW5qZWN0ZWRTY3JpcHRPYmplY3QsIEluc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2sgYWNjZXNz
Q2hlY2spCisgICAgOiBtX25hbWUobmFtZSkKKyAgICAsIG1faW5qZWN0ZWRTY3JpcHRPYmplY3Qo
aW5qZWN0ZWRTY3JpcHRPYmplY3QpCiAgICAgLCBtX2luc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2so
YWNjZXNzQ2hlY2spCiB7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRTY3JpcHRCYXNlOjppbml0aWFsaXpl
KFNjcmlwdE9iamVjdCBpbmplY3RlZFNjcmlwdE9iamVjdCwgSW5zcGVjdGVkU3RhdGVBY2Nlc3ND
aGVjayBhY2Nlc3NDaGVjaykKK3sKKyAgICBtX2luamVjdGVkU2NyaXB0T2JqZWN0ID0gaW5qZWN0
ZWRTY3JpcHRPYmplY3Q7CisgICAgbV9pbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrID0gYWNjZXNz
Q2hlY2s7Cit9CisKIGJvb2wgSW5qZWN0ZWRTY3JpcHRCYXNlOjpjYW5BY2Nlc3NJbnNwZWN0ZWRX
aW5kb3coKSBjb25zdAogewogICAgIHJldHVybiBtX2luc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2so
bV9pbmplY3RlZFNjcmlwdE9iamVjdC5zY3JpcHRTdGF0ZSgpKTsKQEAgLTY3LDcgKzc1LDcgQEAg
Y29uc3QgU2NyaXB0T2JqZWN0JiBJbmplY3RlZFNjcmlwdEJhc2U6OmluamVjdGVkU2NyaXB0T2Jq
ZWN0KCkgY29uc3QKIFNjcmlwdFZhbHVlIEluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9u
V2l0aEV2YWxFbmFibGVkKFNjcmlwdEZ1bmN0aW9uQ2FsbCYgZnVuY3Rpb24sIGJvb2wmIGhhZEV4
Y2VwdGlvbikgY29uc3QKIHsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21TY3JpcHRTdGF0ZShtX2lu
amVjdGVkU2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCkpOwotICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxDYWxs
RnVuY3Rpb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgIkluamVjdGVkU2NyaXB0IiwgMSk7Cisg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbENhbGxGdW5jdGlvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBuYW1l
KCksIDEpOwogCiAgICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlID0gbV9pbmplY3RlZFNjcmlw
dE9iamVjdC5zY3JpcHRTdGF0ZSgpOwogICAgIGJvb2wgZXZhbElzRGlzYWJsZWQgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuaAppbmRleCAz
OGQ1NDVlZjkyZmIzNzZkMzFjZTI4MjdkNmIxYTA3MmE4ZjI3YTkzLi4wNDA3Zjg5N2U3ODU3OGQ5
MmI2ZjA0OTdlY2RjODI0YjYyOGUxODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0QmFzZS5oCkBAIC00OSwxNCArNDksMTYgQEAgY2xhc3MgSW5qZWN0ZWRT
Y3JpcHRCYXNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JbmplY3RlZFNjcmlwdEJhc2UoKSB7
IH0KIAorICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQog
ICAgIGJvb2wgaGFzTm9WYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRPYmpl
Y3QuaGFzTm9WYWx1ZSgpOyB9CiAgICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbmplY3RlZFNjcmlwdE9iamVjdC5zY3JpcHRTdGF0ZSgpOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICB0eXBlZGVmIGJvb2wgKCpJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrKShTY3Jp
cHRTdGF0ZSopOwotICAgIEluamVjdGVkU2NyaXB0QmFzZSgpOwotICAgIEluamVjdGVkU2NyaXB0
QmFzZShTY3JpcHRPYmplY3QsIEluc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2spOworICAgIEluamVj
dGVkU2NyaXB0QmFzZShjb25zdCBTdHJpbmcmIG5hbWUpOworICAgIEluamVjdGVkU2NyaXB0QmFz
ZShjb25zdCBTdHJpbmcmIG5hbWUsIFNjcmlwdE9iamVjdCwgSW5zcGVjdGVkU3RhdGVBY2Nlc3ND
aGVjayk7CiAKKyAgICB2b2lkIGluaXRpYWxpemUoU2NyaXB0T2JqZWN0LCBJbnNwZWN0ZWRTdGF0
ZUFjY2Vzc0NoZWNrKTsKICAgICBib29sIGNhbkFjY2Vzc0luc3BlY3RlZFdpbmRvdygpIGNvbnN0
OwogICAgIGNvbnN0IFNjcmlwdE9iamVjdCYgaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSBjb25zdDsK
ICAgICBTY3JpcHRWYWx1ZSBjYWxsRnVuY3Rpb25XaXRoRXZhbEVuYWJsZWQoU2NyaXB0RnVuY3Rp
b25DYWxsJiwgYm9vbCYgaGFkRXhjZXB0aW9uKSBjb25zdDsKQEAgLTY0LDYgKzY2LDcgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgbWFrZUV2YWxDYWxsKEVycm9yU3RyaW5nKiwgU2NyaXB0RnVuY3Rp
b25DYWxsJiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+KiByZXN1
bHQsIFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8Ym9vbD4qIHdhc1Rocm93bik7CiAKIHByaXZhdGU6
CisgICAgU3RyaW5nIG1fbmFtZTsKICAgICBTY3JpcHRPYmplY3QgbV9pbmplY3RlZFNjcmlwdE9i
amVjdDsKICAgICBJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrIG1faW5zcGVjdGVkU3RhdGVBY2Nl
c3NDaGVjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLmgKaW5kZXggYWNiOTY2NjU1MWY4OWIxMmE5MDMzMmVjY2QwZTJiOGEyNjJlZGY5
My4uNzI2YmIzNzFhOWM5MzE5ODBhZGM4NjIzMDcxZWI1MjUyN2FiZjY4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaApAQCAtNjgsOCAr
NjgsMTAgQEAgcHVibGljOgogICAgIFNjcmlwdE9iamVjdCB3cmFwV2ViR0xSZW5kZXJpbmdDb250
ZXh0Rm9ySW5zdHJ1bWVudGF0aW9uKGNvbnN0IFNjcmlwdE9iamVjdCYpOwogI2VuZGlmCiAKLXBy
aXZhdGU6CiAgICAgdHlwZWRlZiBib29sICgqSW5zcGVjdGVkU3RhdGVBY2Nlc3NDaGVjaykoU2Ny
aXB0U3RhdGUqKTsKKyAgICBJbnNwZWN0ZWRTdGF0ZUFjY2Vzc0NoZWNrIGluc3BlY3RlZFN0YXRl
QWNjZXNzQ2hlY2soKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RlZFN0YXRlQWNjZXNzQ2hlY2s7
IH0KKworcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbmplY3RlZFNjcmlwdE1hbmFnZXIoSW5zcGVj
dGVkU3RhdGVBY2Nlc3NDaGVjayk7CiAKICAgICBTdHJpbmcgaW5qZWN0ZWRTY3JpcHRTb3VyY2Uo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1v
ZHVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNb2R1bGUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRiMTYzZjk4ODIwMzkzYjAxZjJjY2ZjODc5ZDM3M2Y4MjkyZTlmMjcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRNb2R1bGUuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNb2R1bGUuaCIKKwor
I2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiU2NyaXB0RnVuY3Rpb25DYWxsLmgiCisjaW5jbHVkZSAiU2NyaXB0
T2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW5qZWN0ZWRTY3JpcHRNb2R1bGU6
OkluamVjdGVkU2NyaXB0TW9kdWxlKGNvbnN0IFN0cmluZyYgbmFtZSkKKyAgICA6IEluamVjdGVk
U2NyaXB0QmFzZShuYW1lKQoreworfQorCit2b2lkIEluamVjdGVkU2NyaXB0TW9kdWxlOjplbnN1
cmVJbmplY3RlZChJbmplY3RlZFNjcmlwdE1hbmFnZXImIGluamVjdGVkU2NyaXB0TWFuYWdlciwg
U2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlKQoreworICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVk
U2NyaXB0ID0gaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmluamVjdGVkU2NyaXB0Rm9yKHNjcmlwdFN0
YXRlKTsKKyAgICBBU1NFUlQoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSk7CisgICAgaWYg
KGluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
RklYTUU6IE1ha2UgdGhlIEluamVjdGVkU2NyaXB0IGEgbW9kdWxlIGl0c2VsZi4KKyAgICBTY3Jp
cHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHQuaW5qZWN0ZWRTY3JpcHRPYmpl
Y3QoKSwgIm1vZHVsZSIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KG5hbWUoKSk7Cisg
ICAgYm9vbCBoYWRFeGNlcHRpb24gPSBmYWxzZTsKKyAgICBTY3JpcHRWYWx1ZSByZXN1bHRWYWx1
ZSA9IGluamVjdGVkU2NyaXB0LmNhbGxGdW5jdGlvbldpdGhFdmFsRW5hYmxlZChmdW5jdGlvbiwg
aGFkRXhjZXB0aW9uKTsKKyAgICBBU1NFUlQoIWhhZEV4Y2VwdGlvbik7CisgICAgaWYgKGhhZEV4
Y2VwdGlvbiB8fCByZXN1bHRWYWx1ZS5oYXNOb1ZhbHVlKCkgfHwgIXJlc3VsdFZhbHVlLmlzT2Jq
ZWN0KCkpIHsKKyAgICAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVjdGVkU2Ny
aXB0LmluamVjdGVkU2NyaXB0T2JqZWN0KCksICJpbmplY3RNb2R1bGUiKTsKKyAgICAgICAgZnVu
Y3Rpb24uYXBwZW5kQXJndW1lbnQobmFtZSgpKTsKKyAgICAgICAgZnVuY3Rpb24uYXBwZW5kQXJn
dW1lbnQoc291cmNlKCkpOworICAgICAgICByZXN1bHRWYWx1ZSA9IGluamVjdGVkU2NyaXB0LmNh
bGxGdW5jdGlvbldpdGhFdmFsRW5hYmxlZChmdW5jdGlvbiwgaGFkRXhjZXB0aW9uKTsKKyAgICAg
ICAgaWYgKGhhZEV4Y2VwdGlvbiB8fCByZXN1bHRWYWx1ZS5oYXNOb1ZhbHVlKCkgfHwgIXJlc3Vs
dFZhbHVlLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgU2NyaXB0T2JqZWN0
IG1vZHVsZU9iamVjdChzY3JpcHRTdGF0ZSwgcmVzdWx0VmFsdWUpOworICAgIGluaXRpYWxpemUo
bW9kdWxlT2JqZWN0LCBpbmplY3RlZFNjcmlwdE1hbmFnZXIuaW5zcGVjdGVkU3RhdGVBY2Nlc3ND
aGVjaygpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdE1vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
TW9kdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM1NGEwYmY0YTZkNWNiZWViODRlNTgyZTlmYWU5ZmIwZjU3
ZGNkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdE1vZHVsZS5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEluamVjdGVkU2NyaXB0TW9k
dWxlX2gKKyNkZWZpbmUgSW5qZWN0ZWRTY3JpcHRNb2R1bGVfaAorCisjaW5jbHVkZSAiSW5qZWN0
ZWRTY3JpcHRCYXNlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJT
Y3JpcHRTdGF0ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEluamVjdGVkU2Ny
aXB0TWFuYWdlcjsKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKK2NsYXNzIEluamVjdGVkU2Ny
aXB0TW9kdWxlIDogcHVibGljIEluamVjdGVkU2NyaXB0QmFzZSB7CitwdWJsaWM6CisgICAgdmly
dHVhbCBTdHJpbmcgc291cmNlKCkgY29uc3QgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgLy8gRG8g
bm90IGV4cG9zZSBjb25zdHJ1Y3RvciBpbiB0aGUgY2hpbGQgY2xhc3NlcyBhcyB3ZWxsLiBJbnN0
ZWFkIHByb3ZpZGUKKyAgICAvLyBhIHN0YXRpYyBmYWN0b3J5IG1ldGhvZCB0aGF0IHdvdWxkIGNy
ZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgY2xhc3MKKyAgICAvLyBhbmQgY2FsbCBpdHMgZW5z
dXJlSW5qZWN0ZWQoKSBtZXRob2QgaW1tZWRpYXRlbHkuCisgICAgSW5qZWN0ZWRTY3JpcHRNb2R1
bGUoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIGVuc3VyZUluamVjdGVkKEluamVjdGVk
U2NyaXB0TWFuYWdlciYsIFNjcmlwdFN0YXRlKik7Cit9OworCisjZW5kaWYKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRleCBhZTRjOTc4Y2YzZjJlNGU3OTE2ZDMxZDgzMDUw
YWFmMzZmNDJhY2NjLi43OWU2NTYyYWVjMTYyNTcwZThjYzIyMzQwMjNmMjYzZGEwMTliYTE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpz
CkBAIC00MCw2ICs0MCw3IEBAIHZhciBJbmplY3RlZFNjcmlwdCA9IGZ1bmN0aW9uKCkKICAgICB0
aGlzLl9pZFRvV3JhcHBlZE9iamVjdCA9IHt9OwogICAgIHRoaXMuX2lkVG9PYmplY3RHcm91cE5h
bWUgPSB7fTsKICAgICB0aGlzLl9vYmplY3RHcm91cHMgPSB7fTsKKyAgICB0aGlzLl9tb2R1bGVz
ID0ge307CiB9CiAKIEluamVjdGVkU2NyaXB0LnByaW1pdGl2ZVR5cGVzID0gewpAQCAtNDExLDYg
KzQxMiwxOSBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBv
YmplY3Q7CiAgICAgfSwKIAorICAgIG1vZHVsZTogZnVuY3Rpb24obmFtZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiB0aGlzLl9tb2R1bGVzW25hbWVdOworICAgIH0sCisgCisgICAgaW5qZWN0TW9k
dWxlOiBmdW5jdGlvbihuYW1lLCBzb3VyY2UpCisgICAgeworICAgICAgICBkZWxldGUgdGhpcy5f
bW9kdWxlc1tuYW1lXTsKKyAgICAgICAgdmFyIG1vZHVsZSA9IGV2YWwoIigiICsgc291cmNlICsg
IikiKTsKKyAgICAgICAgdGhpcy5fbW9kdWxlc1tuYW1lXSA9IG1vZHVsZTsKKyAgICAgICAgcmV0
dXJuIG1vZHVsZTsKKyAgICB9LAorCiAgICAgX2lzRGVmaW5lZDogZnVuY3Rpb24ob2JqZWN0KQog
ICAgIHsKICAgICAgICAgcmV0dXJuIG9iamVjdCB8fCB0aGlzLl9pc0hUTUxBbGxDb2xsZWN0aW9u
KG9iamVjdCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>