<?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>93205</bug_id>
          
          <creation_ts>2012-08-05 12:12:36 -0700</creation_ts>
          <short_desc>Refactor console logging out of CSPDirectiveList into ContentSecurityPolicy</short_desc>
          <delta_ts>2012-08-08 04:57:04 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>93197</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>687627</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-05 12:12:36 -0700</bug_when>
    <thetext>Currently, CSPDirectiveList is the only piece of ContentSecurityPolicy&apos;s architecture that can log to the console. I think we can improve the situation by extracting the logging functions and moving them to the policy object, and then teaching each of the lower-level objects about the policy in which they live.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687869</commentid>
    <comment_count>1</comment_count>
      <attachid>156624</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-06 01:45:08 -0700</bug_when>
    <thetext>Created attachment 156624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687870</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-06 01:47:18 -0700</bug_when>
    <thetext>Hey Adam, this is a pass at the refactoring I asked you about over the weekend. In a nut, it replaces the dependence on ScriptExecutionContext with a dependence on ContentSecurityPolicy, adding a few new methods to CSP in order to route a few of the context-relevant requests through the policy object.

Not high priority, so just take a look whenever you have a chance. :)  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689482</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-07 15:26:33 -0700</bug_when>
    <thetext>Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690042</commentid>
    <comment_count>4</comment_count>
      <attachid>156624</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-08 01:27:16 -0700</bug_when>
    <thetext>Comment on attachment 156624
Patch

Danke! CQ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690159</commentid>
    <comment_count>5</comment_count>
      <attachid>156624</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 04:57:00 -0700</bug_when>
    <thetext>Comment on attachment 156624
Patch

Clearing flags on attachment: 156624

Committed r125021: &lt;http://trac.webkit.org/changeset/125021&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690160</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 04:57:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156624</attachid>
            <date>2012-08-06 01:45:08 -0700</date>
            <delta_ts>2012-08-08 04:57:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93205-20120806104444.patch</filename>
            <type>text/plain</type>
            <size>24791</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzE3NGRiNzI0NjFmNjg3
ZmYyYzhiYzQ5Mzg5YWM3MWFiYzc1ZWRkNi4uN2FlMDVlNTRhMjAxNjAxMzhhZmQ0NGEyOWE0M2Fh
ODQ1ZGM5ZGViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDEyLTA4LTA2ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVmYWN0b3IgY29uc29sZSBs
b2dnaW5nIG91dCBvZiBDU1BEaXJlY3RpdmVMaXN0IGludG8gQ29udGVudFNlY3VyaXR5UG9saWN5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzIwNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGN1cnJl
bnRseSBwYXNzIGEgcHJvdGVjdGVkIHJlc291cmNlJ3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBk
b3duCisgICAgICAgIGludG8gQ1NQRGlyZWN0aXZlTGlzdCBpbiBvcmRlciB0byBsb2cgZXJyb3Jz
LCBncmFiIHRoZSBTZWN1cml0eU9yaWdpbiwKKyAgICAgICAgcmVzb2x2ZSByZWxhdGl2ZSBVUkxz
LCBhbmQgb25lIG9yIHR3byBvdGhlciBiaXRzLiBUaGlzIGltcGxlbWVudGF0aW9uCisgICAgICAg
IHJlcXVpcmVzIHVzIHRvIG1haW50YWluIHN0YXRlIGluc2lkZSBvZiBsb3ctbGV2ZWwgb2JqZWN0
cyB0aGF0IHNob3VsZG4ndAorICAgICAgICByZWFsbHkga25vdyBhYm91dCB0aGUgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgYW5kIG1ha2VzIGxvZ2dpbmcgZXJyb3JzCisgICAgICAgIGRpZmZpY3Vs
dCwgYXMgQ1NQRGlyZWN0aXZlTGlzdCBpcyB0aGUgb25seSBwaWVjZSBvZiB0aGUgcHV6emxlIHRo
YXQgY2FuCisgICAgICAgIGludGVyYWN0IHdpdGggdGhlIGNvbnNvbGUuCisKKyAgICAgICAgVGhp
cyBwYXRjaCByZW1vdmVzIHRoZSBkZXBlbmRlbmNlIG9uIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IHJlcGxhY2luZworICAgICAgICBpdCB3aXRoIGEgcG9pbnRlciB0byB0aGUgQ29udGVudFNlY3Vy
aXR5UG9saWN5IG9iamVjdCBpdHNlbGYuIFRoZSBsb3ctCisgICAgICAgIGxldmVsIG9iamVjdHMg
bGlrZSBDU1BEaXJlY3RpdmVMaXN0IG5vdyBtYWtlIHJlcXVlc3RzIHRvIHRoZSBwb2xpY3kKKyAg
ICAgICAgb2JqZWN0LCB3aGljaCB1bmRlcnN0YW5kcyBob3cgdG8gcmVzb2x2ZSB0aGVtLiBUaGlz
IGdpdmVzIGEgY2xlYW5lcgorICAgICAgICBzZXBhcmF0aW9uIGJldHdlZW4gdGhlIENTUCBpbXBs
ZW1lbnRhdGlvbiBhbmQgdGhlIHJlc3Qgb2YgV2ViQ29yZSwgYW5kCisgICAgICAgIG9wZW5zIHRo
ZSBkb29yIGZvciBmdXR1cmUgcGF0Y2hlcyB0aGF0IHRlYWNoIHRoZSByZW1haW5pbmcgbG93LWxl
dmVsCisgICAgICAgIG9iamVjdHMgYWJvdXQgdGhlIHBvbGljeSBpbiB3aGljaCB0aGV5J3JlIGNv
bnRhaW5lZCBpbiBvcmRlciB0byBpbXByb3ZlCisgICAgICAgIGVycm9yIGxvZ2dpbmcuCisKKyAg
ICAgICAgVGhpcyBzaG91bGQgYmUgYSBwdXJlbHkgaW50ZXJuYWwgcmVmYWN0b3Jpbmcgb2YgdGhl
IGxvY2F0aW9uIGZyb20gd2hpY2gKKyAgICAgICAgd2FybmluZ3MgYXJlIGxvZ2dlZCB0byB0aGUg
Y29uc29sZS4gTm8gbmV3IHRlc3RzIGhhdmUgYmVlbiBhZGRlZDsgdGhlCisgICAgICAgIGJlaGF2
aW9yIHNob3VsZCBiZSBjb3ZlcmVkIGJ5IHRoZSBleGlzdGluZyBDU1AgdGVzdHMuCisKKyAgICAg
ICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChDU1BTb3VyY2VM
aXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTUFNvdXJjZUxpc3Q6OkNTUFNvdXJjZUxpc3QpOgor
ICAgICAgICAgICAgUGFzcyB0aGUgcG9saWN5IG9iamVjdCBpbnRvIENTUFNvdXJjZUxpc3QsIHJh
dGhlciB0aGFuIGEgcG9pbnRlciB0bworICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC4KKyAgICAgICAgKFdlYkNvcmU6OkNTUFNvdXJjZUxpc3Q6OnBhcnNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTUFNvdXJjZUxpc3Q6OmFkZFNvdXJjZVNlbGYpOgorICAgICAgICAgICAgUmVhZCB0
aGUgU2VjdXJpdHlPcmlnaW4gZnJvbSB0aGUgcG9saWN5IG9iamVjdCwgcmF0aGVyIHRoYW4gZnJv
bSB0aGUKKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisgICAgICAgIChXZWJD
b3JlOjpDU1BEaXJlY3RpdmU6OkNTUERpcmVjdGl2ZSk6CisgICAgICAgICAgICBQYXNzIHRoZSBw
b2xpY3kgb2JqZWN0IGludG8gQ1NQRGlyZWN0aXZlLCByYXRoZXIgdGhhbiBhIHBvaW50ZXIgdG8K
KyAgICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuIFVzZSBpdCB0byByZWFkIHRoZSBw
cm90ZWN0ZWQgcmVzb3VyY2UncworICAgICAgICAgICAgVVJMLgorICAgICAgICAoQ1NQRGlyZWN0
aXZlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpDU1BEaXJlY3Rp
dmVMaXN0KToKKyAgICAgICAgICAgIFBhc3MgdGhlIHBvbGljeSBvYmplY3QgaW50byBDU1BTb3Vy
Y2VMaXN0LCByYXRoZXIgdGhhbiBhIHBvaW50ZXIgdG8KKyAgICAgICAgICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuCisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUp
OgorICAgICAgICAgICAgTW92ZSB0aGUgZW5mb3JjZW1lbnQgb2YgZXZhbCByZXN0cmljdGlvbnMg
b3V0IG9mIENTUERpcmVjdGl2ZUxpc3QsCisgICAgICAgICAgICBhbmQgaW50byBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeS4KKyAgICAgICAgKFdlYkNvcmU6OkNT
UERpcmVjdGl2ZUxpc3Q6OnJlcG9ydFZpb2xhdGlvbik6CisgICAgICAgICAgICBNb3ZlIG1vc3Qg
b2YgdGhlIGxvZ2ljIG91dCBvZiB0aGlzIG1ldGhvZCwgYW5kIGludG8KKyAgICAgICAgICAgIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6
Q1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VEaXJlY3RpdmUpOgorICAgICAgICAgICAgVXNlIHRoZSBw
b2xpY3kgb2JqZWN0IGZvciBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0aXZl
TGlzdDo6cGFyc2VSZXBvcnRVUkkpOgorICAgICAgICAgICAgVXNlIHRoZSBwb2xpY3kgb2JqZWN0
IGZvciBsb2dnaW5nLCBhbmQgVVJMIGNvbXBsZXRpb24uCisgICAgICAgIChXZWJDb3JlOjpDU1BE
aXJlY3RpdmVMaXN0OjpwYXJzZVNjcmlwdE5vbmNlKToKKyAgICAgICAgICAgIFVzZSB0aGUgcG9s
aWN5IG9iamVjdCBmb3IgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZUxp
c3Q6OnNldENTUERpcmVjdGl2ZSk6CisgICAgICAgICAgICBVc2UgdGhlIHBvbGljeSBvYmplY3Qg
Zm9yIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmVMaXN0OjphcHBseVNh
bmRib3hQb2xpY3kpOgorICAgICAgICAgICAgVXNlIHRoZSBwb2xpY3kgb2JqZWN0IGZvciBsb2dn
aW5nLCBhbmQgbW92ZSBlbmZvcmNlbWVudCB0bworICAgICAgICAgICAgQ29udGVudFNlY3VyaXR5
UG9saWN5OjplbmZvcmNlU2FuZGJveEZsYWdzLgorICAgICAgICAoV2ViQ29yZTo6Q1NQRGlyZWN0
aXZlTGlzdDo6YWRkRGlyZWN0aXZlKToKKyAgICAgICAgICAgIFVzZSB0aGUgcG9saWN5IG9iamVj
dCBmb3IgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6
ZGlkUmVjZWl2ZUhlYWRlcik6CisgICAgICAgICAgICBQYXNzIHRoZSBwb2xpY3kgb2JqZWN0IHRv
IENTUERpcmVjdGl2ZUxpc3QsIGFuZCBkaXNhYmxlIGV2YWwgaWYKKyAgICAgICAgICAgIG5lY2Vz
c2FyeSBhZnRlciBwYXJzaW5nIHRoZSBwb2xpY3kuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
U2VjdXJpdHlQb2xpY3k6OnNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Ojp1cmwpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5Ojpjb21wbGV0ZVVSTCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmVuZm9yY2VTYW5kYm94RmxhZ3MpOgorICAgICAg
ICAgICAgTW92ZSB0aGUgZW5mb3JjZW1lbnQgb2YgdGhlIHNhbmRib3ggZGlyZWN0aXZlIG91dCBv
ZgorICAgICAgICAgICAgQ1NQRGlyZWN0aXZlTGlzdCBhbmQgaW50byB0aGUgcG9saWN5IG9iamVj
dC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VmlvbGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0VW5y
ZWNvZ25pemVkRGlyZWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBv
bGljeTo6cmVwb3J0RHVwbGljYXRlRGlyZWN0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRTZWN1cml0eVBvbGljeTo6cmVwb3J0SW52YWxpZE5vbmNlKToKKyAgICAgICAgICAgIE1vdmUg
Q1NQRGlyZWN0aXZlTGlzdDo6bG9nWFhYIG91dCB0byB0aGUgcG9saWN5IG9iamVjdC4gVGhlCisg
ICAgICAgICAgICBkaXJlY3RpdmUgbGlzdCBpcyBub3cgcmVzcG9uc2libGUgZm9yIHJlcG9ydGlu
ZyBlcnJvcnMgYW5kCisgICAgICAgICAgICB2aW9sYXRpb25zOyB0aGUgcG9saWN5IGRlY2lkZXMg
d2hhdCB0byBkbyB3aXRoIHRoZW0uCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OmxvZ1RvQ29uc29sZSk6CisgICAgICAgICAgICBXcmFwIHRoZSBjYWxsIHRvIGFkZENv
bnNvbGVNZXNzYWdlIHRvIG1ha2UgaXQgc2ltcGxlciBmb3IgdGhlCisgICAgICAgICAgICB2YXJp
b3VzIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cmVwb3J0WFhYIG1ldGhvZHMuCisgICAgICAgICog
cGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEy
LTA4LTA1ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hy
b21pdW0td2luXSBVc2Ugc3lzdGVtIGxvY2FsZSBmb3IgbnVtYmVyIHJlcHJlc2VudGF0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggODQz
MWI0YzI1NDQ4ZDc2NTczMDFlY2YwOWM0Yzg0YzBmZjkyZDhjZS4uODBiN2RhMTJjNDBiMDMzMjM5
MjUwYTdlZjk0NzYzNzhlMTdmNjQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVu
dFNlY3VyaXR5UG9saWN5LmNwcApAQCAtMTg1LDcgKzE4NSw3IEBAIHByaXZhdGU6CiAKIGNsYXNz
IENTUFNvdXJjZUxpc3QgewogcHVibGljOgotICAgIGV4cGxpY2l0IENTUFNvdXJjZUxpc3QoU2Vj
dXJpdHlPcmlnaW4qKTsKKyAgICBleHBsaWNpdCBDU1BTb3VyY2VMaXN0KENvbnRlbnRTZWN1cml0
eVBvbGljeSopOwogCiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmKTsKICAgICBib29sIG1h
dGNoZXMoY29uc3QgS1VSTCYpOwpAQCAtMjA2LDE1ICsyMDYsMTUgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGFkZFNvdXJjZVVuc2FmZUlubGluZSgpOwogICAgIHZvaWQgYWRkU291cmNlVW5zYWZlRXZh
bCgpOwogCi0gICAgU2VjdXJpdHlPcmlnaW4qIG1fb3JpZ2luOworICAgIENvbnRlbnRTZWN1cml0
eVBvbGljeSogbV9wb2xpY3k7CiAgICAgVmVjdG9yPENTUFNvdXJjZT4gbV9saXN0OwogICAgIGJv
b2wgbV9hbGxvd1N0YXI7CiAgICAgYm9vbCBtX2FsbG93SW5saW5lOwogICAgIGJvb2wgbV9hbGxv
d0V2YWw7CiB9OwogCi1DU1BTb3VyY2VMaXN0OjpDU1BTb3VyY2VMaXN0KFNlY3VyaXR5T3JpZ2lu
KiBvcmlnaW4pCi0gICAgOiBtX29yaWdpbihvcmlnaW4pCitDU1BTb3VyY2VMaXN0OjpDU1BTb3Vy
Y2VMaXN0KENvbnRlbnRTZWN1cml0eVBvbGljeSogcG9saWN5KQorICAgIDogbV9wb2xpY3kocG9s
aWN5KQogICAgICwgbV9hbGxvd1N0YXIoZmFsc2UpCiAgICAgLCBtX2FsbG93SW5saW5lKGZhbHNl
KQogICAgICwgbV9hbGxvd0V2YWwoZmFsc2UpCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBDU1BT
b3VyY2VMaXN0OjpwYXJzZShjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQpCiAK
ICAgICAgICAgaWYgKHBhcnNlU291cmNlKGJlZ2luU291cmNlLCBwb3NpdGlvbiwgc2NoZW1lLCBo
b3N0LCBwb3J0LCBob3N0SGFzV2lsZGNhcmQsIHBvcnRIYXNXaWxkY2FyZCkpIHsKICAgICAgICAg
ICAgIGlmIChzY2hlbWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHNjaGVtZSA9IG1fb3Jp
Z2luLT5wcm90b2NvbCgpOworICAgICAgICAgICAgICAgIHNjaGVtZSA9IG1fcG9saWN5LT5zZWN1
cml0eU9yaWdpbigpLT5wcm90b2NvbCgpOwogICAgICAgICAgICAgbV9saXN0LmFwcGVuZChDU1BT
b3VyY2Uoc2NoZW1lLCBob3N0LCBwb3J0LCBob3N0SGFzV2lsZGNhcmQsIHBvcnRIYXNXaWxkY2Fy
ZCkpOwogICAgICAgICB9CiAKQEAgLTQ5Niw3ICs0OTYsNyBAQCBib29sIENTUFNvdXJjZUxpc3Q6
OnBhcnNlUG9ydChjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQsIGludCYgcG9y
dCwgYgogCiB2b2lkIENTUFNvdXJjZUxpc3Q6OmFkZFNvdXJjZVNlbGYoKQogewotICAgIG1fbGlz
dC5hcHBlbmQoQ1NQU291cmNlKG1fb3JpZ2luLT5wcm90b2NvbCgpLCBtX29yaWdpbi0+aG9zdCgp
LCBtX29yaWdpbi0+cG9ydCgpLCBmYWxzZSwgZmFsc2UpKTsKKyAgICBtX2xpc3QuYXBwZW5kKENT
UFNvdXJjZShtX3BvbGljeS0+c2VjdXJpdHlPcmlnaW4oKS0+cHJvdG9jb2woKSwgbV9wb2xpY3kt
PnNlY3VyaXR5T3JpZ2luKCktPmhvc3QoKSwgbV9wb2xpY3ktPnNlY3VyaXR5T3JpZ2luKCktPnBv
cnQoKSwgZmFsc2UsIGZhbHNlKSk7CiB9CiAKIHZvaWQgQ1NQU291cmNlTGlzdDo6YWRkU291cmNl
U3RhcigpCkBAIC01MTYsMTAgKzUxNiwxMCBAQCB2b2lkIENTUFNvdXJjZUxpc3Q6OmFkZFNvdXJj
ZVVuc2FmZUV2YWwoKQogCiBjbGFzcyBDU1BEaXJlY3RpdmUgewogcHVibGljOgotICAgIENTUERp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgICAgIDogbV9zb3VyY2VMaXN0KGNvbnRleHQt
PnNlY3VyaXR5T3JpZ2luKCkpCisgICAgQ1NQRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgQ29udGVudFNlY3VyaXR5UG9saWN5KiBwb2xpY3kpCisgICAg
ICAgIDogbV9zb3VyY2VMaXN0KHBvbGljeSkKICAgICAgICAgLCBtX3RleHQobmFtZSArICcgJyAr
IHZhbHVlKQotICAgICAgICAsIG1fc2VsZlVSTChjb250ZXh0LT51cmwoKSkKKyAgICAgICAgLCBt
X3NlbGZVUkwocG9saWN5LT51cmwoKSkKICAgICB7CiAgICAgICAgIG1fc291cmNlTGlzdC5wYXJz
ZSh2YWx1ZSk7CiAgICAgfQpAQCAtNTQyLDcgKzU0Miw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIENT
UERpcmVjdGl2ZUxpc3QgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPENTUERpcmVj
dGl2ZUxpc3Q+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiwg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKKyAgICBzdGF0aWMgUGFzc093blB0
cjxDU1BEaXJlY3RpdmVMaXN0PiBjcmVhdGUoQ29udGVudFNlY3VyaXR5UG9saWN5KiwgY29uc3Qg
U3RyaW5nJiwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKIAogICAgIGNvbnN0
IFN0cmluZyYgaGVhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9oZWFkZXI7IH0KICAgICBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgaGVhZGVyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVwb3J0T25seSA/IENvbnRlbnRTZWN1cml0eVBvbGljeTo6UmVwb3J0T25seSA6IENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6RW5mb3JjZVBvbGljeTsgfQpAQCAtNTY2LDcgKzU2Niw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGdhdGhlclJlcG9ydFVSSXMoRE9NU3RyaW5nTGlzdCYpIGNvbnN0OwogCiBw
cml2YXRlOgotICAgIGV4cGxpY2l0IENTUERpcmVjdGl2ZUxpc3QoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopOworICAgIGV4cGxpY2l0IENTUERpcmVjdGl2ZUxpc3QoQ29udGVudFNlY3VyaXR5UG9s
aWN5Kik7CiAKICAgICB2b2lkIHBhcnNlKGNvbnN0IFN0cmluZyYpOwogCkBAIC01ODAsOSArNTgw
LDYgQEAgcHJpdmF0ZToKIAogICAgIENTUERpcmVjdGl2ZSogb3BlcmF0aXZlRGlyZWN0aXZlKENT
UERpcmVjdGl2ZSopIGNvbnN0OwogICAgIHZvaWQgcmVwb3J0VmlvbGF0aW9uKGNvbnN0IFN0cmlu
ZyYgZGlyZWN0aXZlVGV4dCwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVzc2FnZSwgY29uc3QgS1VS
TCYgYmxvY2tlZFVSTCA9IEtVUkwoKSwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMID0gU3RyaW5n
KCksIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUgPSBXVEY6Ok9yZGluYWxO
dW1iZXI6OmJlZm9yZUZpcnN0KCksIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDApIGNv
bnN0OwotICAgIHZvaWQgbG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFt
ZSkgY29uc3Q7Ci0gICAgdm9pZCBsb2dEdXBsaWNhdGVEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBu
YW1lKSBjb25zdDsKLSAgICB2b2lkIGxvZ0ludmFsaWROb25jZShjb25zdCBTdHJpbmcmIG5vbmNl
KSBjb25zdDsKIAogICAgIGJvb2wgY2hlY2tFdmFsKENTUERpcmVjdGl2ZSopIGNvbnN0OwogICAg
IGJvb2wgY2hlY2tJbmxpbmUoQ1NQRGlyZWN0aXZlKikgY29uc3Q7CkBAIC01OTYsNyArNTkzLDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZGVueUlmRW5mb3JjaW5nUG9saWN5KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXBvcnRPbmx5OyB9CiAKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisgICAgQ29udGVudFNlY3VyaXR5UG9saWN5KiBtX3BvbGlj
eTsKICAgICBTdHJpbmcgbV9oZWFkZXI7CiAKICAgICBib29sIG1fcmVwb3J0T25seTsKQEAgLTYx
Niw5NyArNjEzLDM1IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fc2NyaXB0Tm9uY2U7CiB9Owog
Ci1DU1BEaXJlY3RpdmVMaXN0OjpDU1BEaXJlY3RpdmVMaXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCi0gICAgOiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKK0NTUERpcmVjdGl2ZUxpc3Q6OkNTUERpcmVjdGl2
ZUxpc3QoQ29udGVudFNlY3VyaXR5UG9saWN5KiBwb2xpY3kpCisgICAgOiBtX3BvbGljeShwb2xp
Y3kpCiAgICAgLCBtX3JlcG9ydE9ubHkoZmFsc2UpCiAgICAgLCBtX2hhdmVTYW5kYm94UG9saWN5
KGZhbHNlKQogewogfQogCi1QYXNzT3duUHRyPENTUERpcmVjdGl2ZUxpc3Q+IENTUERpcmVjdGl2
ZUxpc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250
ZXh0LCBjb25zdCBTdHJpbmcmIGhlYWRlciwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJU
eXBlIHR5cGUpCitQYXNzT3duUHRyPENTUERpcmVjdGl2ZUxpc3Q+IENTUERpcmVjdGl2ZUxpc3Q6
OmNyZWF0ZShDb250ZW50U2VjdXJpdHlQb2xpY3kqIHBvbGljeSwgY29uc3QgU3RyaW5nJiBoZWFk
ZXIsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSB0eXBlKQogewotICAgIE93blB0
cjxDU1BEaXJlY3RpdmVMaXN0PiBwb2xpY3kgPSBhZG9wdFB0cihuZXcgQ1NQRGlyZWN0aXZlTGlz
dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KSk7Ci0gICAgcG9saWN5LT5wYXJzZShoZWFkZXIpOwot
ICAgIHBvbGljeS0+bV9oZWFkZXIgPSBoZWFkZXI7CisgICAgT3duUHRyPENTUERpcmVjdGl2ZUxp
c3Q+IGRpcmVjdGl2ZXMgPSBhZG9wdFB0cihuZXcgQ1NQRGlyZWN0aXZlTGlzdChwb2xpY3kpKTsK
KyAgICBkaXJlY3RpdmVzLT5wYXJzZShoZWFkZXIpOworICAgIGRpcmVjdGl2ZXMtPm1faGVhZGVy
ID0gaGVhZGVyOwogCiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OlJlcG9ydE9ubHk6Ci0gICAgICAgIHBvbGljeS0+bV9yZXBvcnRPbmx5ID0gdHJ1
ZTsKLSAgICAgICAgcmV0dXJuIHBvbGljeS5yZWxlYXNlKCk7CisgICAgICAgIGRpcmVjdGl2ZXMt
Pm1fcmVwb3J0T25seSA9IHRydWU7CisgICAgICAgIHJldHVybiBkaXJlY3RpdmVzLnJlbGVhc2Uo
KTsKICAgICBjYXNlIENvbnRlbnRTZWN1cml0eVBvbGljeTo6RW5mb3JjZVBvbGljeToKLSAgICAg
ICAgQVNTRVJUKCFwb2xpY3ktPm1fcmVwb3J0T25seSk7CisgICAgICAgIEFTU0VSVCghZGlyZWN0
aXZlcy0+bV9yZXBvcnRPbmx5KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgaWYgKCFw
b2xpY3ktPmNoZWNrRXZhbChwb2xpY3ktPm9wZXJhdGl2ZURpcmVjdGl2ZShwb2xpY3ktPm1fc2Ny
aXB0U3JjLmdldCgpKSkpCi0gICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRpc2FibGVF
dmFsKCk7Ci0KLSAgICByZXR1cm4gcG9saWN5LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gZGlyZWN0
aXZlcy5yZWxlYXNlKCk7CiB9CiAKIHZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6cmVwb3J0VmlvbGF0
aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4dCwgY29uc3QgU3RyaW5nJiBjb25zb2xlTWVz
c2FnZSwgY29uc3QgS1VSTCYgYmxvY2tlZFVSTCwgY29uc3QgU3RyaW5nJiBjb250ZXh0VVJMLCBj
b25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNvbnRleHRMaW5lLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gY2FsbFN0YWNrKSBjb25zdAogewogICAgIFN0cmluZyBtZXNzYWdlID0gbV9yZXBv
cnRPbmx5ID8gIltSZXBvcnQgT25seV0gIiArIGNvbnNvbGVNZXNzYWdlIDogY29uc29sZU1lc3Nh
Z2U7Ci0gICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwg
Y29udGV4dFVSTCwgY29udGV4dExpbmUub25lQmFzZWRJbnQoKSwgY2FsbFN0YWNrKTsKLQotICAg
IGlmIChtX3JlcG9ydFVSSXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBG
SVhNRTogU3VwcG9ydCBzZW5kaW5nIHJlcG9ydHMgZnJvbSB3b3JrZXIuCi0gICAgaWYgKCFtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQpOwotICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpOwot
ICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFdlIG5lZWQgdG8gYmUg
Y2FyZWZ1bCBoZXJlIHdoZW4gZGVjaWRpbmcgd2hhdCBpbmZvcm1hdGlvbiB0byBzZW5kIHRvIHRo
ZQotICAgIC8vIHJlcG9ydC11cmkuIEN1cnJlbnRseSwgd2Ugc2VuZCBvbmx5IHRoZSBjdXJyZW50
IGRvY3VtZW50J3MgVVJMIGFuZCB0aGUKLSAgICAvLyBkaXJlY3RpdmUgdGhhdCB3YXMgdmlvbGF0
ZWQuIFRoZSBkb2N1bWVudCdzIFVSTCBpcyBzYWZlIHRvIHNlbmQgYmVjYXVzZQotICAgIC8vIGl0
J3MgdGhlIGRvY3VtZW50IGl0c2VsZiB0aGF0J3MgcmVxdWVzdGluZyB0aGF0IGl0IGJlIHNlbnQu
IFlvdSBjb3VsZAotICAgIC8vIG1ha2UgYW4gYXJndW1lbnQgdGhhdCB3ZSBzaG91bGRuJ3Qgc2Vu
ZCBIVFRQUyBkb2N1bWVudCBVUkxzIHRvIEhUVFAKLSAgICAvLyByZXBvcnQtdXJpcyAoZm9yIHRo
ZSBzYW1lIHJlYXNvbnMgdGhhdCB3ZSBzdXByZXNzIHRoZSBSZWZlcmVyIGluIHRoYXQKLSAgICAv
LyBjYXNlKSwgYnV0IHRoZSBSZWZlcmVyIGlzIHNlbnQgaW1wbGljaXRseSB3aGVyZWFzIHRoaXMg
cmVxdWVzdCBpcyBvbmx5Ci0gICAgLy8gc2VudCBleHBsaWNpdGx5LiBBcyBmb3Igd2hpY2ggZGly
ZWN0aXZlIHdhcyB2aW9sYXRlZCwgdGhhdCdzIHByZXR0eQotICAgIC8vIGhhcm1sZXNzIGluZm9y
bWF0aW9uLgotCi0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3NwUmVwb3J0ID0gSW5zcGVj
dG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICBjc3BSZXBvcnQtPnNldFN0cmluZygiZG9jdW1lbnQt
dXJpIiwgZG9jdW1lbnQtPnVybCgpLnN0cmlwcGVkRm9yVXNlQXNSZWZlcnJlcigpKTsKLSAgICBT
dHJpbmcgcmVmZXJyZXIgPSBkb2N1bWVudC0+cmVmZXJyZXIoKTsKLSAgICBpZiAoIXJlZmVycmVy
LmlzRW1wdHkoKSkKLSAgICAgICAgY3NwUmVwb3J0LT5zZXRTdHJpbmcoInJlZmVycmVyIiwgcmVm
ZXJyZXIpOwotICAgIGlmICghZGlyZWN0aXZlVGV4dC5pc0VtcHR5KCkpCi0gICAgICAgIGNzcFJl
cG9ydC0+c2V0U3RyaW5nKCJ2aW9sYXRlZC1kaXJlY3RpdmUiLCBkaXJlY3RpdmVUZXh0KTsKLSAg
ICBjc3BSZXBvcnQtPnNldFN0cmluZygib3JpZ2luYWwtcG9saWN5IiwgbV9oZWFkZXIpOwotICAg
IGlmIChibG9ja2VkVVJMLmlzVmFsaWQoKSkKLSAgICAgICAgY3NwUmVwb3J0LT5zZXRTdHJpbmco
ImJsb2NrZWQtdXJpIiwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QoYmxv
Y2tlZFVSTCkgPyBibG9ja2VkVVJMLnN0cmlwcGVkRm9yVXNlQXNSZWZlcnJlcigpIDogU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZShibG9ja2VkVVJMKS0+dG9TdHJpbmcoKSk7Ci0KLSAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiByZXBvcnRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
OwotICAgIHJlcG9ydE9iamVjdC0+c2V0T2JqZWN0KCJjc3AtcmVwb3J0IiwgY3NwUmVwb3J0LnJl
bGVhc2UoKSk7Ci0KLSAgICBSZWZQdHI8Rm9ybURhdGE+IHJlcG9ydCA9IEZvcm1EYXRhOjpjcmVh
dGUocmVwb3J0T2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCkpOwotCi0gICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX3JlcG9ydFVSSXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIFBpbmdMb2Fk
ZXI6OnJlcG9ydENvbnRlbnRTZWN1cml0eVBvbGljeVZpb2xhdGlvbihmcmFtZSwgbV9yZXBvcnRV
UklzW2ldLCByZXBvcnQpOwotfQotCi12b2lkIENTUERpcmVjdGl2ZUxpc3Q6OmxvZ1VucmVjb2du
aXplZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Ci17Ci0gICAgU3RyaW5nIG1l
c3NhZ2UgPSBtYWtlU3RyaW5nKCJVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kg
ZGlyZWN0aXZlICciLCBuYW1lLCAiJy5cbiIpOwotICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOwotfQotCi12b2lkIENTUERpcmVjdGl2ZUxpc3Q6Omxv
Z0R1cGxpY2F0ZURpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Ci17Ci0gICAgU3Ry
aW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJJZ25vcmluZyBkdXBsaWNhdGUgQ29udGVudC1TZWN1
cml0eS1Qb2xpY3kgZGlyZWN0aXZlICciLCBuYW1lLCAiJy5cbiIpOwotICAgIG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNz
YWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOwotfQotCi12b2lkIENTUERpcmVj
dGl2ZUxpc3Q6OmxvZ0ludmFsaWROb25jZShjb25zdCBTdHJpbmcmIG5vbmNlKSBjb25zdAotewot
ICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiSWdub3JpbmcgaW52YWxpZCBDb250ZW50
IFNlY3VyaXR5IFBvbGljeSBzY3JpcHQgbm9uY2U6ICciLCBub25jZSwgIicuXG4iKTsKLSAgICBt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKKyAgICBtX3Bv
bGljeS0+cmVwb3J0VmlvbGF0aW9uKGRpcmVjdGl2ZVRleHQsIG1lc3NhZ2UsIGJsb2NrZWRVUkws
IG1fcmVwb3J0VVJJcywgbV9oZWFkZXIsIGNvbnRleHRVUkwsIGNvbnRleHRMaW5lLCBjYWxsU3Rh
Y2spOwogfQogCiBib29sIENTUERpcmVjdGl2ZUxpc3Q6OmNoZWNrRXZhbChDU1BEaXJlY3RpdmUq
IGRpcmVjdGl2ZSkgY29uc3QKQEAgLTk1MSw3ICs4ODYsNyBAQCBib29sIENTUERpcmVjdGl2ZUxp
c3Q6OnBhcnNlRGlyZWN0aXZlKGNvbnN0IFVDaGFyKiBiZWdpbiwgY29uc3QgVUNoYXIqIGVuZCwg
U3RyaQogCiAgICAgaWYgKCFza2lwRXhhY3RseTxpc0FTQ0lJU3BhY2U+KHBvc2l0aW9uLCBlbmQp
KSB7CiAgICAgICAgIHNraXBXaGlsZTxpc05vdEFTQ0lJU3BhY2U+KHBvc2l0aW9uLCBlbmQpOwot
ICAgICAgICBsb2dVbnJlY29nbml6ZWREaXJlY3RpdmUoU3RyaW5nKG5hbWVCZWdpbiwgcG9zaXRp
b24gLSBuYW1lQmVnaW4pKTsKKyAgICAgICAgbV9wb2xpY3ktPnJlcG9ydFVucmVjb2duaXplZERp
cmVjdGl2ZShTdHJpbmcobmFtZUJlZ2luLCBwb3NpdGlvbiAtIG5hbWVCZWdpbikpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC05NzQsNyArOTA5LDcgQEAgYm9vbCBDU1BEaXJl
Y3RpdmVMaXN0OjpwYXJzZURpcmVjdGl2ZShjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFy
KiBlbmQsIFN0cmkKIHZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VSZXBvcnRVUkkoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewogICAgIGlmICghbV9yZXBvcnRV
UklzLmlzRW1wdHkoKSkgewotICAgICAgICBsb2dEdXBsaWNhdGVEaXJlY3RpdmUobmFtZSk7Cisg
ICAgICAgIG1fcG9saWN5LT5yZXBvcnREdXBsaWNhdGVEaXJlY3RpdmUobmFtZSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgY29uc3QgVUNoYXIqIHBvc2l0aW9uID0gdmFsdWUuY2hhcmFj
dGVycygpOwpAQCAtOTg4LDcgKzkyMyw3IEBAIHZvaWQgQ1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VS
ZXBvcnRVUkkoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogCiAgICAg
ICAgIGlmICh1cmxCZWdpbiA8IHBvc2l0aW9uKSB7CiAgICAgICAgICAgICBTdHJpbmcgdXJsID0g
U3RyaW5nKHVybEJlZ2luLCBwb3NpdGlvbiAtIHVybEJlZ2luKTsKLSAgICAgICAgICAgIG1fcmVw
b3J0VVJJcy5hcHBlbmQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jb21wbGV0ZVVSTCh1cmwp
KTsKKyAgICAgICAgICAgIG1fcmVwb3J0VVJJcy5hcHBlbmQobV9wb2xpY3ktPmNvbXBsZXRlVVJM
KHVybCkpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtOTk2LDcgKzkzMSw3IEBAIHZvaWQgQ1NQ
RGlyZWN0aXZlTGlzdDo6cGFyc2VSZXBvcnRVUkkoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHZhbHVlKQogdm9pZCBDU1BEaXJlY3RpdmVMaXN0OjpwYXJzZVNjcmlwdE5vbmNlKGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAoIW1fc2Ny
aXB0Tm9uY2UuaXNOdWxsKCkpIHsKLSAgICAgICAgbG9nRHVwbGljYXRlRGlyZWN0aXZlKG5hbWUp
OworICAgICAgICBtX3BvbGljeS0+cmVwb3J0RHVwbGljYXRlRGlyZWN0aXZlKG5hbWUpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMDA3LDcgKzk0Miw3IEBAIHZvaWQgQ1NQRGlyZWN0
aXZlTGlzdDo6cGFyc2VTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCiAgICAgc2tpcFdoaWxlPGlzQVNDSUlTcGFjZT4ocG9zaXRpb24sIGVuZCk7CiAg
ICAgY29uc3QgVUNoYXIqIG5vbmNlQmVnaW4gPSBwb3NpdGlvbjsKICAgICBpZiAocG9zaXRpb24g
PT0gZW5kKSB7Ci0gICAgICAgIGxvZ0ludmFsaWROb25jZShTdHJpbmcoKSk7CisgICAgICAgIG1f
cG9saWN5LT5yZXBvcnRJbnZhbGlkTm9uY2UoU3RyaW5nKCkpOwogICAgICAgICBtX3NjcmlwdE5v
bmNlID0gIiI7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDE5LDcgKzk1NCw3IEBAIHZv
aWQgQ1NQRGlyZWN0aXZlTGlzdDo6cGFyc2VTY3JpcHROb25jZShjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgLy8gYW4gZXJyb3IuCiAgICAgc2tpcFdoaWxlPGlz
QVNDSUlTcGFjZT4ocG9zaXRpb24sIGVuZCk7CiAgICAgaWYgKHBvc2l0aW9uIDwgZW5kKSB7Ci0g
ICAgICAgIGxvZ0ludmFsaWROb25jZSh2YWx1ZSk7CisgICAgICAgIG1fcG9saWN5LT5yZXBvcnRJ
bnZhbGlkTm9uY2UodmFsdWUpOwogICAgICAgICBtX3NjcmlwdE5vbmNlID0gIiI7CiAgICAgfSBl
bHNlCiAgICAgICAgIG1fc2NyaXB0Tm9uY2UgPSBub25jZTsKQEAgLTEwMjgsMjAgKzk2MywyMCBA
QCB2b2lkIENTUERpcmVjdGl2ZUxpc3Q6OnBhcnNlU2NyaXB0Tm9uY2UoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQogdm9pZCBDU1BEaXJlY3RpdmVMaXN0OjpzZXRDU1BE
aXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBPd25QdHI8
Q1NQRGlyZWN0aXZlPiYgZGlyZWN0aXZlKQogewogICAgIGlmIChkaXJlY3RpdmUpIHsKLSAgICAg
ICAgbG9nRHVwbGljYXRlRGlyZWN0aXZlKG5hbWUpOworICAgICAgICBtX3BvbGljeS0+cmVwb3J0
RHVwbGljYXRlRGlyZWN0aXZlKG5hbWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGRp
cmVjdGl2ZSA9IGFkb3B0UHRyKG5ldyBDU1BEaXJlY3RpdmUobmFtZSwgdmFsdWUsIG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkpOworICAgIGRpcmVjdGl2ZSA9IGFkb3B0UHRyKG5ldyBDU1BEaXJl
Y3RpdmUobmFtZSwgdmFsdWUsIG1fcG9saWN5KSk7CiB9CiAKIHZvaWQgQ1NQRGlyZWN0aXZlTGlz
dDo6YXBwbHlTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBz
YW5kYm94UG9saWN5KQogewogICAgIGlmIChtX2hhdmVTYW5kYm94UG9saWN5KSB7Ci0gICAgICAg
IGxvZ0R1cGxpY2F0ZURpcmVjdGl2ZShuYW1lKTsKKyAgICAgICAgbV9wb2xpY3ktPnJlcG9ydER1
cGxpY2F0ZURpcmVjdGl2ZShuYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX2hh
dmVTYW5kYm94UG9saWN5ID0gdHJ1ZTsKLSAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmVu
Zm9yY2VTYW5kYm94RmxhZ3MoU2VjdXJpdHlDb250ZXh0OjpwYXJzZVNhbmRib3hQb2xpY3koc2Fu
ZGJveFBvbGljeSkpOworICAgIG1fcG9saWN5LT5lbmZvcmNlU2FuZGJveEZsYWdzKFNlY3VyaXR5
Q29udGV4dDo6cGFyc2VTYW5kYm94UG9saWN5KHNhbmRib3hQb2xpY3kpKTsKIH0KIAogdm9pZCBD
U1BEaXJlY3RpdmVMaXN0OjphZGREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHZhbHVlKQpAQCAtMTA5MCw3ICsxMDI1LDcgQEAgdm9pZCBDU1BEaXJlY3RpdmVMaXN0
OjphZGREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQog
ICAgICAgICBwYXJzZVNjcmlwdE5vbmNlKG5hbWUsIHZhbHVlKTsKICNlbmRpZgogICAgIGVsc2UK
LSAgICAgICAgbG9nVW5yZWNvZ25pemVkRGlyZWN0aXZlKG5hbWUpOworICAgICAgICBtX3BvbGlj
eS0+cmVwb3J0VW5yZWNvZ25pemVkRGlyZWN0aXZlKG5hbWUpOwogfQogCiBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQpAQCAtMTEyMywxMyArMTA1OCwxNiBAQCB2b2lkIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlciwg
SGVhZGVyVHlwZSB0eQogCiAgICAgICAgIC8vIGhlYWRlcjEsaGVhZGVyMiBPUiBoZWFkZXIxCiAg
ICAgICAgIC8vICAgICAgICBeICAgICAgICAgICAgICAgICAgXgotICAgICAgICBtX3BvbGljaWVz
LmFwcGVuZChDU1BEaXJlY3RpdmVMaXN0OjpjcmVhdGUobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBTdHJpbmcoYmVnaW4sIHBvc2l0aW9uIC0gYmVnaW4pLCB0eXBlKSk7CisgICAgICAgIG1fcG9s
aWNpZXMuYXBwZW5kKENTUERpcmVjdGl2ZUxpc3Q6OmNyZWF0ZSh0aGlzLCBTdHJpbmcoYmVnaW4s
IHBvc2l0aW9uIC0gYmVnaW4pLCB0eXBlKSk7CiAKICAgICAgICAgLy8gU2tpcCB0aGUgY29tbWEs
IGFuZCBiZWdpbiB0aGUgbmV4dCBoZWFkZXIgZnJvbSB0aGUgY3VycmVudCBwb3NpdGlvbi4KICAg
ICAgICAgQVNTRVJUKHBvc2l0aW9uID09IGVuZCB8fCAqcG9zaXRpb24gPT0gJywnKTsKICAgICAg
ICAgc2tpcEV4YWN0bHkocG9zaXRpb24sIGVuZCwgJywnKTsKICAgICAgICAgYmVnaW4gPSBwb3Np
dGlvbjsKICAgICB9CisKKyAgICBpZiAoIWFsbG93RXZhbCgwLCBTdXBwcmVzc1JlcG9ydCkpCisg
ICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGlzYWJsZUV2YWwoKTsKIH0KIAogdm9p
ZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNldE92ZXJyaWRlQWxsb3dJbmxpbmVTdHlsZShib29s
IHZhbHVlKQpAQCAtMTI3Myw0ICsxMjExLDkzIEBAIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5
OjpnYXRoZXJSZXBvcnRVUklzKERPTVN0cmluZ0xpc3QmIGxpc3QpIGNvbnN0CiAgICAgICAgIG1f
cG9saWNpZXNbaV0uZ2V0KCktPmdhdGhlclJlcG9ydFVSSXMobGlzdCk7CiB9CiAKK1NlY3VyaXR5
T3JpZ2luKiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnNlY3VyaXR5T3JpZ2luKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0eU9yaWdpbigpOwor
fQorCitjb25zdCBLVVJMJiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnVybCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+dXJsKCk7Cit9CisKK0tVUkwgQ29u
dGVudFNlY3VyaXR5UG9saWN5Ojpjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5jb21wbGV0ZVVSTCh1cmwp
OworfQorCit2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZW5mb3JjZVNhbmRib3hGbGFncyhT
YW5kYm94RmxhZ3MgbWFzaykgY29uc3QKK3sKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmVuZm9yY2VTYW5kYm94RmxhZ3MobWFzayk7Cit9CisKK3ZvaWQgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpyZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0LCBjb25zdCBT
dHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBLVVJMJiBibG9ja2VkVVJMLCBjb25zdCBWZWN0
b3I8S1VSTD4mIHJlcG9ydFVSSXMsIGNvbnN0IFN0cmluZyYgaGVhZGVyLCBjb25zdCBTdHJpbmcm
IGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYgY29udGV4dExpbmUsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spIGNvbnN0Cit7CisgICAgbG9nVG9Db25z
b2xlKGNvbnNvbGVNZXNzYWdlLCBjb250ZXh0VVJMLCBjb250ZXh0TGluZSwgY2FsbFN0YWNrKTsK
KworICAgIGlmIChyZXBvcnRVUklzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gRklYTUU6IFN1cHBvcnQgc2VuZGluZyByZXBvcnRzIGZyb20gd29ya2VyLgorICAgIGlmICgh
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERvY3VtZW50Kj4obV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUo
KTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBuZWVkIHRv
IGJlIGNhcmVmdWwgaGVyZSB3aGVuIGRlY2lkaW5nIHdoYXQgaW5mb3JtYXRpb24gdG8gc2VuZCB0
byB0aGUKKyAgICAvLyByZXBvcnQtdXJpLiBDdXJyZW50bHksIHdlIHNlbmQgb25seSB0aGUgY3Vy
cmVudCBkb2N1bWVudCdzIFVSTCBhbmQgdGhlCisgICAgLy8gZGlyZWN0aXZlIHRoYXQgd2FzIHZp
b2xhdGVkLiBUaGUgZG9jdW1lbnQncyBVUkwgaXMgc2FmZSB0byBzZW5kIGJlY2F1c2UKKyAgICAv
LyBpdCdzIHRoZSBkb2N1bWVudCBpdHNlbGYgdGhhdCdzIHJlcXVlc3RpbmcgdGhhdCBpdCBiZSBz
ZW50LiBZb3UgY291bGQKKyAgICAvLyBtYWtlIGFuIGFyZ3VtZW50IHRoYXQgd2Ugc2hvdWxkbid0
IHNlbmQgSFRUUFMgZG9jdW1lbnQgVVJMcyB0byBIVFRQCisgICAgLy8gcmVwb3J0LXVyaXMgKGZv
ciB0aGUgc2FtZSByZWFzb25zIHRoYXQgd2Ugc3VwcmVzcyB0aGUgUmVmZXJlciBpbiB0aGF0Cisg
ICAgLy8gY2FzZSksIGJ1dCB0aGUgUmVmZXJlciBpcyBzZW50IGltcGxpY2l0bHkgd2hlcmVhcyB0
aGlzIHJlcXVlc3QgaXMgb25seQorICAgIC8vIHNlbnQgZXhwbGljaXRseS4gQXMgZm9yIHdoaWNo
IGRpcmVjdGl2ZSB3YXMgdmlvbGF0ZWQsIHRoYXQncyBwcmV0dHkKKyAgICAvLyBoYXJtbGVzcyBp
bmZvcm1hdGlvbi4KKworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNzcFJlcG9ydCA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgY3NwUmVwb3J0LT5zZXRTdHJpbmcoImRvY3Vt
ZW50LXVyaSIsIGRvY3VtZW50LT51cmwoKS5zdHJpcHBlZEZvclVzZUFzUmVmZXJyZXIoKSk7Cisg
ICAgU3RyaW5nIHJlZmVycmVyID0gZG9jdW1lbnQtPnJlZmVycmVyKCk7CisgICAgaWYgKCFyZWZl
cnJlci5pc0VtcHR5KCkpCisgICAgICAgIGNzcFJlcG9ydC0+c2V0U3RyaW5nKCJyZWZlcnJlciIs
IHJlZmVycmVyKTsKKyAgICBpZiAoIWRpcmVjdGl2ZVRleHQuaXNFbXB0eSgpKQorICAgICAgICBj
c3BSZXBvcnQtPnNldFN0cmluZygidmlvbGF0ZWQtZGlyZWN0aXZlIiwgZGlyZWN0aXZlVGV4dCk7
CisgICAgY3NwUmVwb3J0LT5zZXRTdHJpbmcoIm9yaWdpbmFsLXBvbGljeSIsIGhlYWRlcik7Cisg
ICAgaWYgKGJsb2NrZWRVUkwuaXNWYWxpZCgpKQorICAgICAgICBjc3BSZXBvcnQtPnNldFN0cmlu
ZygiYmxvY2tlZC11cmkiLCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChi
bG9ja2VkVVJMKSA/IGJsb2NrZWRVUkwuc3RyaXBwZWRGb3JVc2VBc1JlZmVycmVyKCkgOiBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKGJsb2NrZWRVUkwpLT50b1N0cmluZygpKTsKKworICAgIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IHJlcG9ydE9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCk7CisgICAgcmVwb3J0T2JqZWN0LT5zZXRPYmplY3QoImNzcC1yZXBvcnQiLCBjc3BSZXBvcnQu
cmVsZWFzZSgpKTsKKworICAgIFJlZlB0cjxGb3JtRGF0YT4gcmVwb3J0ID0gRm9ybURhdGE6OmNy
ZWF0ZShyZXBvcnRPYmplY3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKSk7CisKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHJlcG9ydFVSSXMuc2l6ZSgpOyArK2kpCisgICAgICAgIFBpbmdMb2Fk
ZXI6OnJlcG9ydENvbnRlbnRTZWN1cml0eVBvbGljeVZpb2xhdGlvbihmcmFtZSwgcmVwb3J0VVJJ
c1tpXSwgcmVwb3J0KTsKK30KKwordm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydFVu
cmVjb2duaXplZERpcmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Cit7CisgICAgU3Ry
aW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJVbnJlY29nbml6ZWQgQ29udGVudC1TZWN1cml0eS1Q
b2xpY3kgZGlyZWN0aXZlICciLCBuYW1lLCAiJy5cbiIpOworICAgIGxvZ1RvQ29uc29sZShtZXNz
YWdlKTsKK30KKwordm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydER1cGxpY2F0ZURp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Cit7CisgICAgU3RyaW5nIG1lc3NhZ2Ug
PSBtYWtlU3RyaW5nKCJJZ25vcmluZyBkdXBsaWNhdGUgQ29udGVudC1TZWN1cml0eS1Qb2xpY3kg
ZGlyZWN0aXZlICciLCBuYW1lLCAiJy5cbiIpOworICAgIGxvZ1RvQ29uc29sZShtZXNzYWdlKTsK
K30KKwordm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnJlcG9ydEludmFsaWROb25jZShjb25z
dCBTdHJpbmcmIG5vbmNlKSBjb25zdAoreworICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmlu
ZygiSWdub3JpbmcgaW52YWxpZCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBzY3JpcHQgbm9uY2U6
ICciLCBub25jZSwgIicuXG4iKTsKKyAgICBsb2dUb0NvbnNvbGUobWVzc2FnZSk7Cit9CisKK3Zv
aWQgQ29udGVudFNlY3VyaXR5UG9saWN5Ojpsb2dUb0NvbnNvbGUoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwsIGNvbnN0IFdURjo6T3JkaW5hbE51bWJlciYg
Y29udGV4dExpbmUsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spIGNvbnN0
Cit7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwg
Y29udGV4dFVSTCwgY29udGV4dExpbmUub25lQmFzZWRJbnQoKSwgY2FsbFN0YWNrKTsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3ku
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5kZXggY2Ri
NmI1Zjg5OGFlZTQ0MzMxN2Y4NmFjMTZmZjJlNDEwMDZlNGRjZS4uMzEyZWM1MTFmYjIxMDA3YjEy
MzE5ZTBjNTBhMjA5MDJiZmMxNTU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZW50U2VjdXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRT
ZWN1cml0eVBvbGljeS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0UG9zaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC00Miw3ICs0Myw5IEBAIGNsYXNz
IENTUERpcmVjdGl2ZUxpc3Q7CiBjbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiBjbGFzcyBET01TdHJp
bmdMaXN0OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNzIFNlY3VyaXR5T3Jp
Z2luOwogCit0eXBlZGVmIGludCBTYW5kYm94RmxhZ3M7CiB0eXBlZGVmIFZlY3RvcjxPd25QdHI8
Q1NQRGlyZWN0aXZlTGlzdD4gPiBDU1BEaXJlY3RpdmVMaXN0VmVjdG9yOwogCiBjbGFzcyBDb250
ZW50U2VjdXJpdHlQb2xpY3kgewpAQCAtOTMsOSArOTYsMjEgQEAgcHVibGljOgogICAgIGJvb2wg
aXNBY3RpdmUoKSBjb25zdDsKICAgICB2b2lkIGdhdGhlclJlcG9ydFVSSXMoRE9NU3RyaW5nTGlz
dCYpIGNvbnN0OwogCisgICAgdm9pZCByZXBvcnREdXBsaWNhdGVEaXJlY3RpdmUoY29uc3QgU3Ry
aW5nJikgY29uc3Q7CisgICAgdm9pZCByZXBvcnRJbnZhbGlkTm9uY2UoY29uc3QgU3RyaW5nJikg
Y29uc3Q7CisgICAgdm9pZCByZXBvcnRVbnJlY29nbml6ZWREaXJlY3RpdmUoY29uc3QgU3RyaW5n
JikgY29uc3Q7CisgICAgdm9pZCByZXBvcnRWaW9sYXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3Rp
dmVUZXh0LCBjb25zdCBTdHJpbmcmIGNvbnNvbGVNZXNzYWdlLCBjb25zdCBLVVJMJiBibG9ja2Vk
VVJMLCBjb25zdCBWZWN0b3I8S1VSTD4mIHJlcG9ydFVSSXMsIGNvbnN0IFN0cmluZyYgaGVhZGVy
LCBjb25zdCBTdHJpbmcmIGNvbnRleHRVUkwgPSBTdHJpbmcoKSwgY29uc3QgV1RGOjpPcmRpbmFs
TnVtYmVyJiBjb250ZXh0TGluZSA9IFdURjo6T3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCkgY29uc3Q7CisKKyAgICBjb25zdCBLVVJM
JiB1cmwoKSBjb25zdDsKKyAgICBLVVJMIGNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0
OworICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0OworICAgIHZvaWQg
ZW5mb3JjZVNhbmRib3hGbGFncyhTYW5kYm94RmxhZ3MpIGNvbnN0OworCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IENvbnRlbnRTZWN1cml0eVBvbGljeShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CiAKKyAgICB2b2lkIGxvZ1RvQ29uc29sZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgY29udGV4dFVSTCA9IFN0cmluZygpLCBjb25zdCBXVEY6Ok9yZGluYWxOdW1iZXImIGNv
bnRleHRMaW5lID0gV1RGOjpPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpLCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gPSAwKSBjb25zdDsKKwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKICAgICBib29sIG1fb3ZlcnJpZGVJbmxpbmVT
dHlsZUFsbG93ZWQ7CiAgICAgQ1NQRGlyZWN0aXZlTGlzdFZlY3RvciBtX3BvbGljaWVzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>