<?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>112279</bug_id>
          
          <creation_ts>2013-03-13 12:54:05 -0700</creation_ts>
          <short_desc>Small ResourceLoader cleanups</short_desc>
          <delta_ts>2015-11-12 22:10:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>854504</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-13 12:54:05 -0700</bug_when>
    <thetext>Two small ResourceLoader cleanups I noticed were worthwhile while working on a larger patch:

1 - Classes that derive from ResourceLoader should use OVERRIDE on the virtual methods they override.  Important for catching mistakes in future refactoring.
2 - the &quot;bool allAtOnce&quot; flag is mysterious when reading code that has just &quot;true&quot; or &quot;false&quot;, so change it to an enum that encapsulates what it means.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854515</commentid>
    <comment_count>1</comment_count>
      <attachid>192972</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-13 12:59:39 -0700</bug_when>
    <thetext>Created attachment 192972
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854523</commentid>
    <comment_count>2</comment_count>
      <attachid>192972</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-03-13 13:03:35 -0700</bug_when>
    <thetext>Comment on attachment 192972
Patch v1

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

r=me

&gt; Source/WebCore/loader/ResourceLoaderTypes.h:27
&gt; +#ifndef ResourceLoaderTypes_h
&gt; +#define ResourceLoaderTypes_h

Are more types going in this header? If not, it should be named &quot;DataPayloadType.h&quot;.

&gt; Source/WebCore/loader/ResourceLoaderTypes.h:32
&gt; +//  - DataPayloadWholeResource is expected when the buffer points to a whole resource. There will only be one such didReceiveData callback for the load.

&quot;is expected&quot; is a little strong in this context. DataPayloadWholeResource is an optimization that happens sometimes. We don&apos;t have a specific expectation about how often. I would say, &quot;DataPayloadWholeResource indicates that the buffer points...&quot;.

&gt; Source/WebCore/loader/ResourceLoaderTypes.h:33
&gt; +//  - DataPayloadBytes is expected when the buffer points to a range of bytes, which may or may not be a whole resource.

I would use &quot;indicates&quot; here as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854527</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-13 13:08:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 192972 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192972&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/loader/ResourceLoaderTypes.h:27
&gt; &gt; +#ifndef ResourceLoaderTypes_h
&gt; &gt; +#define ResourceLoaderTypes_h
&gt; 
&gt; Are more types going in this header? If not, it should be named &quot;DataPayloadType.h&quot;.

At least one other will be in the extremely near future.

&gt; 
&gt; &gt; Source/WebCore/loader/ResourceLoaderTypes.h:32
&gt; &gt; +//  - DataPayloadWholeResource is expected when the buffer points to a whole resource. There will only be one such didReceiveData callback for the load.
&gt; 
&gt; &quot;is expected&quot; is a little strong in this context. DataPayloadWholeResource is an optimization that happens sometimes. We don&apos;t have a specific expectation about how often. I would say, &quot;DataPayloadWholeResource indicates that the buffer points...&quot;.
&gt; 
&gt; &gt; Source/WebCore/loader/ResourceLoaderTypes.h:33
&gt; &gt; +//  - DataPayloadBytes is expected when the buffer points to a range of bytes, which may or may not be a whole resource.
&gt; 
&gt; I would use &quot;indicates&quot; here as well.

Done and done.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854650</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-13 14:39:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/145753, but I accidentally hadn&apos;t git commited the comment change.  Will follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854656</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-13 14:43:35 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/145755 to fix the comment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192972</attachid>
            <date>2013-03-13 12:59:39 -0700</date>
            <delta_ts>2013-03-13 13:03:35 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>26112</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmYzQ5M2M0Li4wY2JlOGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTMtMDMtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFNtYWxsIFJlc291cmNlTG9hZGVyIGNsZWFudXBzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyMjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChSZWZhY3RvciB3aXRoIG5v
IGJlaGF2aW9yIGNoYW5nZSkuCisKKyAgICAgICAgMSAtIEFkZCAiT1ZFUlJJREUiIHRvIHZpcnR1
YWwgbWV0aG9kcyBpbiBzdWJjbGFzc2VzIG9mIFJlc291cmNlTG9hZGVyIHRvIGNhdGNoIGZ1dHVy
ZSBtaXN0YWtlcy4KKyAgICAgICAgMiAtIFJlcGxhY2UgdGhlICJib29sIGFsbEF0T25jZSIgZmxh
ZyB3aXRoIGEgZGVzY3JpcHRpdmUgZW51bSB0byBtYWtlIHJlYWRpbmcgY29kZSBlYXNpZXIuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwor
ICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6c3Vic3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkKToKKwor
ICAgICAgICAqIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgor
ICAgICAgICAqIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oOgorCisgICAgICAg
ICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
TG9hZGVyOjphZGREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlRGF0YSk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAg
ICogbG9hZGVyL1Jlc291cmNlTG9hZGVyVHlwZXMuaDogQWRkZWQuCisKKyAgICAgICAgKiBsb2Fk
ZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2Fk
ZXIuaDoKKwogMjAxMy0wMy0xMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gU2V0IHVwIHRoZSBsaWJQbGF0Zm9ybUd0ay5sYSBsaWJyYXJ5CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBmNWVkMWQzLi5lM2RmOWVlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MDg1LDYgKzQwODUsNyBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmggXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlclR5cGVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWROb3RpZmllci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRO
b3RpZmllci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQppbmRleCBiZmI4N2FjLi4zOTFkZGQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAg
LTIwODcsNiArMjA4Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGxvYWRlci9Qcm9ncmVzc1RyYWNr
ZXIuaCBcCiAgICAgbG9hZGVyL1Jlc291cmNlQnVmZmVyLmggXAogICAgIGxvYWRlci9SZXNvdXJj
ZUxvYWRlci5oIFwKKyAgICBsb2FkZXIvUmVzb3VyY2VMb2FkZXJUeXBlcy5oIFwKICAgICBsb2Fk
ZXIvU3VicmVzb3VyY2VMb2FkZXIuaCBcCiAgICAgbG9hZGVyL1N1YnN0aXR1dGVEYXRhLmggXAog
ICAgIGxvYWRlci9UZXh0UmVzb3VyY2VEZWNvZGVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRk
NWYyYmUuLjJhN2NlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIwOTMsNiArMjA5Myw3IEBACiAg
ICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAnLAogICAgICAgICAg
ICAgJ2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9SZXNv
dXJjZUxvYWRlck9wdGlvbnMuaCcsCisgICAgICAgICAgICAnbG9hZGVyL1Jlc291cmNlTG9hZGVy
VHlwZXMuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1NpbmtEb2N1bWVudC5jcHAnLAogICAgICAg
ICAgICAgJ2xvYWRlci9TaW5rRG9jdW1lbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL1N1YmZy
YW1lTG9hZGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IDJmODQ2YmIuLmViNTZkZmYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yODA4Myw2ICsyODA4MywxMCBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcUmVzb3Vy
Y2VMb2FkZXJUeXBlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxsb2FkZXJcUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwIgogCQkJCT4KIAkJCTwv
RmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBhMmI4YTAzLi44YjE0MTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjUxLDYgKzE2NTEsNyBAQAogCQk1
MUFCQUUxRTEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFCQUUxQzEwM0MxOTEzMDA4
QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggKi87IH07CiAJCTUxQUJBRTFGMTAzQzE5MTMw
MDhDNTI2MCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFCQUUxRDEwM0MxOTEzMDA4QzUyNjAgLyog
U29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwICovOyB9OwogCQk1MUFCRjY0RDE2MzkyRTI4MDAx
MzJBN0EgLyogTG9hZGVyU3RyYXRlZ3kuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFBQkY2NEMxNjM5MkUyODAwMTMyQTdBIC8qIExvYWRlclN0cmF0
ZWd5LmNwcCAqLzsgfTsKKwkJNTFBRjUwMzYxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9h
ZGVyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxQUY1MDM1MTZGMTAwRjYwMDk1QjJFOCAvKiBSZXNvdXJjZUxvYWRlclR5cGVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFCMjQxN0IwRDkz
MUYzRjAwRTgzRjVDIC8qIExlZ2FjeVdlYkFyY2hpdmVNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUIyNDE3QTBEOTMxRjNGMDBFODNGNUMgLyog
TGVnYWN5V2ViQXJjaGl2ZU1hYy5tbSAqLzsgfTsKIAkJNTFCRTM3RTAwREFFRTAwRTAwMTA4NUZD
IC8qIFN0b3JhZ2VBcmVhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MUJFMzdERTBEQUVFMDBFMDAxMDg1RkMgLyogU3RvcmFnZUFyZWEuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUMwQUEzOTBGMkFB
MTBBMDAxNjQ4QzIgLyogQ2FjaGVkRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBBQTM4MEYyQUExMEEwMDE2NDhDMiAvKiBDYWNoZWRGcmFt
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05
MTMxLDYgKzkxMzIsNyBAQAogCQk1MUFCQUUxQzEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3Ry
ZWFtSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0cmVh
bUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFCQUUxRDEwM0MxOTEz
MDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQ0ZOZXQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFCRjY0QzE2MzkyRTI4MDAxMzJBN0EgLyogTG9hZGVy
U3RyYXRlZ3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9hZGVy
U3RyYXRlZ3kuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MUFGNTAzNTE2RjEw
MEY2MDA5NUIyRTggLyogUmVzb3VyY2VMb2FkZXJUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxQjI0MTdBMEQ5MzFGM0YwMEU4M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZlTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGVnYWN5V2ViQXJj
aGl2ZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFCRTM3REUwREFFRTAw
RTAwMTA4NUZDIC8qIFN0b3JhZ2VBcmVhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0b3JhZ2VBcmVhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQzBBQTM4
MEYyQUExMEEwMDE2NDhDMiAvKiBDYWNoZWRGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDYWNoZWRGcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjE1NDEsNiArMjE1NDMsNyBAQAogCQkJCTUxNEJDODQxMTYxQ0YwNUMwMDRENTJGNCAvKiBSZXNv
dXJjZUJ1ZmZlci5oICovLAogCQkJCTkzRTIyN0RFMEFGNTg5QUQwMEQ0ODMyNCAvKiBSZXNvdXJj
ZUxvYWRlci5jcHAgKi8sCiAJCQkJNjU2RDM3MjcwQURCQTVERTAwQTQ1NTREIC8qIFJlc291cmNl
TG9hZGVyLmggKi8sCisJCQkJNTFBRjUwMzUxNkYxMDBGNjAwOTVCMkU4IC8qIFJlc291cmNlTG9h
ZGVyVHlwZXMuaCAqLywKIAkJCQlEMEEzQTczMDE0MDVBMzk4MDBGQjhFRDMgLyogUmVzb3VyY2VM
b2FkZXJPcHRpb25zLmggKi8sCiAJCQkJOTczRTMyNTQxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291
cmNlTG9hZE5vdGlmaWVyLmNwcCAqLywKIAkJCQk5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyog
UmVzb3VyY2VMb2FkTm90aWZpZXIuaCAqLywKQEAgLTI0MzIwLDYgKzI0MzIzLDcgQEAKIAkJCQk4
NUQ3OUFERTBBQ0ExN0VCMDBGMDJGQzUgLyogRE9NU1ZHVHJhbnNmb3JtYWJsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODU0MTYzOTgwQUM3MTg2ODAwMDFFMDFCIC8qIERPTVNWR1RyYW5zZm9ybUlu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTQxNjM2QjBBQzcxODBCMDAwMUUwMUIgLyog
RE9NU1ZHVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTFBRjUwMzYxNkYxMDBG
NjAwOTVCMkU4IC8qIFJlc291cmNlTG9hZGVyVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1
NDE2Mzk3MEFDNzE4NjgwMDAxRTAxQiAvKiBET01TVkdUcmFuc2Zvcm1MaXN0SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTg1OUQ2MkJBMEFEODg4RUYwMDAxMjk5NSAvKiBET01TVkdUUmVm
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU5RDYyRUIwQUQ4ODkyNzAwMDEyOTk1IC8q
IERPTVNWR1RSZWZFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggNDRhMjkxZS4uMjVkMmI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC02ODEsNyArNjgxLDcgQEAg
dm9pZCBEb2N1bWVudExvYWRlcjo6c3Vic3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVk
KFRpbWVyPERvY3VtZW50TG9hZGVyPioKICAgICAgICAgICAgIGlmIChsb2FkZXItPnJlYWNoZWRU
ZXJtaW5hbFN0YXRlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBs
b2FkZXItPmRpZFJlY2VpdmVEYXRhKGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpLCBkYXRhLT5z
aXplKCksIHRydWUpOworICAgICAgICAgICAgbG9hZGVyLT5kaWRSZWNlaXZlRGF0YShkYXRhLT5k
YXRhKCksIGRhdGEtPnNpemUoKSwgZGF0YS0+c2l6ZSgpLCBEYXRhUGF5bG9hZFdob2xlUmVzb3Vy
Y2UpOwogCiAgICAgICAgICAgICAvLyBDYWxsaW5nIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YSBjYW4gZW5kIHVwIGNhbmNlbGxpbmcgdGhlIGxvYWQsCiAgICAgICAgICAgICAvLyBzbyB3
ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZSBsb2FkZXIgaGFzIHJlYWNoZWQgaXRzIHRlcm1pbmFsIHN0
YXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlci5jcHAKaW5kZXggZTk2MDYwOS4uOTY0M2NkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCkBAIC05MywxMyAr
OTMsMTMgQEAgdm9pZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3AKICAgICAgICAgY2FuY2VsKGZyYW1lTG9h
ZGVyKCktPmNsaWVudCgpLT5maWxlRG9lc05vdEV4aXN0RXJyb3IocmVzcG9uc2UpKTsKIH0KIAot
dm9pZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hh
ciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFs
bEF0T25jZSkKK3ZvaWQgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0
aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKIHsKICAgICBSZWZQdHI8TmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXI+IHByb3RlY3QodGhpcyk7CiAKICAgICBtX2NsaWVudC0+ZGlk
UmVjZWl2ZURhdGEodGhpcywgZGF0YSwgbGVuZ3RoKTsKICAgICAKLSAgICBSZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRP
bmNlKTsKKyAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoZGF0YSwgbGVuZ3RoLCBl
bmNvZGVkRGF0YUxlbmd0aCwgZGF0YVBheWxvYWRUeXBlKTsKIH0KIAogdm9pZCBOZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgK
aW5kZXggYjczMjFmNy4uOGYwZmE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmgKQEAgLTU2LDE3ICs1NiwxNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0RvbmUoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwgbG9uZyBsb25nIGVuY29kZWRE
YXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0
IFJlc291cmNlRXJyb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZURhdGEoY29uc3QgY2hhciosIGludCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBE
YXRhUGF5bG9hZFR5cGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKGRvdWJsZSBmaW5pc2hUaW1lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFp
bChjb25zdCBSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVs
ZWFzZVJlc291cmNlcygpOworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCkgT1ZF
UlJJREU7CiAKICAgICBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcihGcmFtZSosIE5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbENhbmNl
bChjb25zdCBSZXNvdXJjZUVycm9yJik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25z
dCBSZXNvdXJjZUVycm9yJik7CisgICAgdmlydHVhbCB2b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVz
b3VyY2VFcnJvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3Qg
UmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwogCiAgICAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXJDbGllbnQqIG1fY2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDEwYjRhNzkuLjNmNmNkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmNwcApAQCAtMjAwLDEyICsyMDAsMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRl
cjo6c2V0RGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJp
bmdQb2wKIH0KICAgICAKIAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6YWRkRGF0YShjb25zdCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6
OmFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRh
dGFQYXlsb2FkVHlwZSkKIHsKICAgICBpZiAobV9vcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kg
PT0gRG9Ob3RCdWZmZXJEYXRhKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYWxsQXRPbmNl
KSB7CisgICAgaWYgKGRhdGFQYXlsb2FkVHlwZSA9PSBEYXRhUGF5bG9hZFdob2xlUmVzb3VyY2Up
IHsKICAgICAgICAgbV9yZXNvdXJjZURhdGEgPSBSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlKGRhdGEs
IGxlbmd0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yODcsNyArMjg3LDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHIpCiAgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZFJlY2VpdmVSZXNw
b25zZSh0aGlzLCBtX3Jlc3BvbnNlKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWRE
YXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0
YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKIHsKICAgICAvLyBUaGUg
Zm9sbG93aW5nIGFzc2VydGlvbnMgYXJlIG5vdCBxdWl0ZSB2YWxpZCBoZXJlLCBzaW5jZSBhIHN1
YmNsYXNzCiAgICAgLy8gbWlnaHQgb3ZlcnJpZGUgZGlkUmVjZWl2ZURhdGEgaW4gYSB3YXkgdGhh
dCBpbnZhbGlkYXRlcyB0aGVtLiBUaGlzCkBAIC0yOTksNyArMjk5LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9u
ZyBsb25nIGVuY28KICAgICAvLyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgZGVyZWZpbmcg
dGhpczsgb25lIGV4YW1wbGUgb2YgdGhpcyBpcyBSYWRhciAzMjY2MjE2LgogICAgIFJlZlB0cjxS
ZXNvdXJjZUxvYWRlcj4gcHJvdGVjdG9yKHRoaXMpOwogCi0gICAgYWRkRGF0YShkYXRhLCBsZW5n
dGgsIGFsbEF0T25jZSk7CisgICAgYWRkRGF0YShkYXRhLCBsZW5ndGgsIGRhdGFQYXlsb2FkVHlw
ZSk7CiAgICAgLy8gRklYTUU6IElmIHdlIGdldCBhIHJlc291cmNlIHdpdGggbW9yZSB0aGFuIDJC
IGJ5dGVzLCB0aGlzIGNvZGUgd29uJ3QgZG8gdGhlIHJpZ2h0IHRoaW5nLgogICAgIC8vIEhvd2V2
ZXIsIHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5kIG5ldHdvcmtpbmcgc3BlZWRzLCB0aGlzIHdv
bid0IGhhcHBlbiBpbiBwcmFjdGljZS4KICAgICAvLyBDb3VsZCBiZSBhbiBpc3N1ZSB3aXRoIGEg
Z2lhbnQgbG9jYWwgZmlsZS4KQEAgLTQ2NSw3ICs0NjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJgogdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBpbnQgZW5jb2RlZERhdGFMZW5ndGgpCiB7
CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZURhdGEobV9mcmFtZS5nZXQoKSwgaWRl
bnRpZmllcigpLCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgZGlkUmVjZWl2ZURhdGEoZGF0YSwg
bGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgZmFsc2UpOworICAgIGRpZFJlY2VpdmVEYXRhKGRh
dGEsIGxlbmd0aCwgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOwogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YShjb29raWUpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IGE4OWZhYzAuLjcz
NTZlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0zMSw2ICsz
MSw3IEBACiAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyVHlwZXMuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNl
LmgiCiAKQEAgLTcyLDcgKzczLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNl
UmVzb3VyY2VzKCk7CiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UoKSBjb25z
dDsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGREYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGJvb2wgYWxs
QXRPbmNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YShjb25zdCBjaGFyKiwgaW50LCBEYXRh
UGF5bG9hZFR5cGUpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gcmVz
b3VyY2VEYXRhKCk7CiAgICAgdm9pZCBjbGVhclJlc291cmNlRGF0YSgpOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1N1YnJlc291cmNlTG9hZGVyKCk7CkBAIC04MCw3ICs4MSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcg
dG90YWxCeXRlc1RvQmVTZW50KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoY29uc3QgY2hhciosIGludCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFs
bEF0T25jZSk7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBp
bnQsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGNvbnN0IGNoYXIqLCBpbnQpIHsg
fQogICAgIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKGNvbnN0IGNoYXIqLCBpbnQpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlclR5cGVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJUeXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjg0NDg1NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJUeXBlcy5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFJlc291cmNlTG9hZGVyVHlwZXNfaAorI2RlZmluZSBSZXNvdXJjZUxv
YWRlclR5cGVzX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBEYXRhUGF5bG9hZFR5cGUg
ZGVzY3JpYmVzIHRoZSBuYXR1cmUgb2YgYW4gaW52b2NhdGlvbiBvZiB0aGUgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVEYXRhIGNhbGxiYWNrLgorLy8gIC0gRGF0YVBheWxvYWRXaG9sZVJlc291
cmNlIGlzIGV4cGVjdGVkIHdoZW4gdGhlIGJ1ZmZlciBwb2ludHMgdG8gYSB3aG9sZSByZXNvdXJj
ZS4gVGhlcmUgd2lsbCBvbmx5IGJlIG9uZSBzdWNoIGRpZFJlY2VpdmVEYXRhIGNhbGxiYWNrIGZv
ciB0aGUgbG9hZC4KKy8vICAtIERhdGFQYXlsb2FkQnl0ZXMgaXMgZXhwZWN0ZWQgd2hlbiB0aGUg
YnVmZmVyIHBvaW50cyB0byBhIHJhbmdlIG9mIGJ5dGVzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBi
ZSBhIHdob2xlIHJlc291cmNlLgorLy8gICAgVGhlcmUgbWF5IGhhdmUgYmVlbiBwcmV2aW91cyBk
aWRSZWNlaWV2ZURhdGEgY2FsbGJhY2tzLCBhbmQgdGhlcmUgbWF5IGJlIGZ1dHVyZSBkaWRSZWNl
aWV2ZURhdGEgY2FsbGJhY2tzLgorCitlbnVtIERhdGFQYXlsb2FkVHlwZSB7CisgICAgRGF0YVBh
eWxvYWRXaG9sZVJlc291cmNlLAorICAgIERhdGFQYXlsb2FkQnl0ZXMsCit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZXNvdXJjZUxvYWRlclR5cGVzX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDY5MmJiOTcuLjQ1
MWNiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApA
QCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICBjaGVja0ZvckhUVFBT
dGF0dXNDb2RlRXJyb3IoKTsKIH0KIAotdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRh
TGVuZ3RoLCBib29sIGFsbEF0T25jZSkKK3ZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0
YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKIHsKICAgICBpZiAobV9y
ZXNvdXJjZS0+cmVzcG9uc2UoKS5odHRwU3RhdHVzQ29kZSgpID49IDQwMCAmJiAhbV9yZXNvdXJj
ZS0+c2hvdWxkSWdub3JlSFRUUFN0YXR1c0NvZGVFcnJvcnMoKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMjIzLDcgKzIyMyw3IEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlCiAgICAgLy8gUmVmZXJl
bmNlIHRoZSBvYmplY3QgaW4gdGhpcyBtZXRob2Qgc2luY2UgdGhlIGFkZGl0aW9uYWwgcHJvY2Vz
c2luZyBjYW4gZG8KICAgICAvLyBhbnl0aGluZyBpbmNsdWRpbmcgcmVtb3ZpbmcgdGhlIGxhc3Qg
cmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIDMyNjYyMTYu
CiAgICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwotICAgIGFkZERh
dGEoZGF0YSwgbGVuZ3RoLCBhbGxBdE9uY2UpOworICAgIGFkZERhdGEoZGF0YSwgbGVuZ3RoLCBk
YXRhUGF5bG9hZFR5cGUpOwogICAgIGlmICghbV9sb2FkaW5nTXVsdGlwYXJ0Q29udGVudCkKICAg
ICAgICAgc2VuZERhdGFUb1Jlc291cmNlKGRhdGEsIGxlbmd0aCk7CiAgICAgaWYgKHNob3VsZFNl
bmRSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSAmJiBtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvU3VicmVzb3VyY2VMb2FkZXIuaAppbmRleCBhMDYwMGVkLi5mYmU3ZGZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaApAQCAtNTUsMjYgKzU1LDI2IEBAIHBy
aXZhdGU6CiAgICAgU3VicmVzb3VyY2VMb2FkZXIoRnJhbWUqLCBDYWNoZWRSZXNvdXJjZSosIGNv
bnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwogICAgIHZpcnR1YWwgflN1YnJlc291cmNlTG9h
ZGVyKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaW5pdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsK
LQotICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcg
bG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlRGF0YShjb25zdCBjaGFyKiwgaW50LCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIGJv
b2wgYWxsQXRPbmNlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRh
KGNvbnN0IGNoYXIqLCBpbnQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRv
dWJsZSBmaW5pc2hUaW1lKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJj
ZUVycm9yJik7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIHsg
fQorICAgIHZpcnR1YWwgYm9vbCBpbml0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIE9WRVJSSURF
OworCisgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5z
aWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxv
bmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGNvbnN0IGNoYXIqLCBpbnQp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5p
c2hUaW1lKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJj
ZUVycm9yJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVz
b3VyY2VFcnJvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3Qg
UmVzb3VyY2VFcnJvciYpIE9WRVJSSURFIHsgfQogCiAjaWYgVVNFKE5FVFdPUktfQ0ZEQVRBX0FS
UkFZX0NBTExCQUNLKQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0RhdGFBcnJheSgpIHsgcmV0
dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5
UmVmKTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNEYXRhQXJyYXkoKSBPVkVSUklERSB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhQXJyYXkoQ0ZBcnJh
eVJlZikgT1ZFUlJJREU7CiAjZW5kaWYKICNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkRG93bmxvYWREYXRhKGludCk7CisgICAgdmlydHVhbCB2b2lkIGRpZERvd25s
b2FkRGF0YShpbnQpIE9WRVJSSURFOwogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIHJlbGVhc2VS
ZXNvdXJjZXMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZVJlc291cmNlcygpIE9WRVJSSURF
OwogCiAgICAgYm9vbCBjaGVja0ZvckhUVFBTdGF0dXNDb2RlRXJyb3IoKTsKICAgICB2b2lkIHNl
bmREYXRhVG9SZXNvdXJjZShjb25zdCBjaGFyKiwgaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzYzNlYmIx
Li5iZDBjYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDMtMTMgIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFNtYWxsIFJlc291cmNlTG9h
ZGVyIGNsZWFudXBzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEyMjc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVwbGFjZSB0aGUgImJvb2wgYWxsQXRPbmNlIiBmbGFnIHdpdGggYSBkZXNjcmlwdGl2
ZSBlbnVtIHRvIG1ha2UgcmVhZGluZyBjb2RlIGVhc2llci4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluOiBHZXQgcmlkIG9mIHRoZSAiYWxsQXRPbmNlIiBm
bGFnIHNpbmNlIGl0IHdhcyBhbHdheXMgZmFsc2UuCisKIDIwMTMtMDMtMTIgIFphbiBEb2JlcnNl
ayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFNldCB1cCB0aGUgbGli
UGxhdGZvcm1HdGsubGEgbGlicmFyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNjBmNWZlMi4uZWFiMmU5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0
YSwgaW4KICAgICAvLyBTdWNoIGJ1ZmZlcmluZyB3aWxsIG5lZWQgdG8gYmUgdGhyZWFkIHNhZmUs
IGFzIHRoaXMgY2FsbGJhY2sgaXMgaGFwcGVuaW5nIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQuCiAg
ICAgCiAgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEpLCBsZW5ndGgpOwotICAgIHNlbmRBYm9ydGluZ09u
RmFpbHVyZShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVEYXRhKGRhdGFS
ZWZlcmVuY2UsIGVuY29kZWREYXRhTGVuZ3RoLCBmYWxzZSkpOworICAgIHNlbmRBYm9ydGluZ09u
RmFpbHVyZShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVEYXRhKGRhdGFS
ZWZlcmVuY2UsIGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRp
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLmNwcAppbmRleCBjOWM4YjMwLi4wZWM4ZTE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAK
QEAgLTg3LDEwICs4NywxMCBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291cmNlUmVzcAogICAgIG1fY29yZUxv
YWRlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlQ29weSk7CiB9CiAKLXZvaWQgV2ViUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2Um
IGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKQordm9pZCBX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVy
ZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBMT0coTmV0d29y
aywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEgb2Ygc2l6
ZSAlaSBmb3IgJyVzJyIsIChpbnQpZGF0YS5zaXplKCksIG1fY29yZUxvYWRlci0+dXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgbV9jb3JlTG9hZGVyLT5kaWRSZWNlaXZlRGF0YShy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpLCBl
bmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNlKTsKKyAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2Vp
dmVEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5z
aXplKCksIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKIH0KIAogdm9pZCBX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBmaW5pc2hUaW1l
KQpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNvdXJjZShjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kCiAgICAgICAgIC8v
IEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IEdpdmUgUmVzb3VyY2VMb2FkZXIgdGhlIGFiaWxpdHkg
dG8gdGFrZSBSZXNvdXJjZUJ1ZmZlciBhcmd1bWVudHMuCiAgICAgICAgIC8vIFRoYXQgd2lsbCBh
bGxvdyB1cyB0byBwYXNzIGl0IGFsb25nIHRvIENhY2hlZFJlc291cmNlcyBhbmQgYWxsb3cgdGhl
bSB0byBoYW5nIG9uIHRvIHRoZSBzaGFyZWQgbWVtb3J5IGJlaGluZCB0aGUgc2NlbmVzLgogICAg
ICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBQYXNzIGFsb25nIHRoZSBjb3JyZWN0IHZh
bHVlIGZvciBlbmNvZGVkRGF0YUxlbmd0aC4KLSAgICAgICAgbV9jb3JlTG9hZGVyLT5kaWRSZWNl
aXZlRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihyZXNvdXJjZS0+ZGF0YSgpKSwg
cmVzb3VyY2UtPnNpemUoKSwgLTEgLyogZW5jb2RlZERhdGFMZW5ndGggKi8gLCB0cnVlKTsKKyAg
ICAgICAgbV9jb3JlTG9hZGVyLT5kaWRSZWNlaXZlRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0
IGNoYXIqPihyZXNvdXJjZS0+ZGF0YSgpKSwgcmVzb3VyY2UtPnNpemUoKSwgLTEgLyogZW5jb2Rl
ZERhdGFMZW5ndGggKi8gLCBEYXRhUGF5bG9hZFdob2xlUmVzb3VyY2UpOwogICAgIH0KIAogICAg
IG1fY29yZUxvYWRlci0+ZGlkRmluaXNoTG9hZGluZyhmaW5pc2hUaW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5k
ZXggMDNlODI3MS4uZWNiMDNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2Us
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCk7CiAgICAgdm9pZCBkaWRSZWNl
aXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBjb25zdCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYpOwotICAgIHZvaWQgZGlkUmVj
ZWl2ZURhdGEoY29uc3QgQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERh
dGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0
IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKICAg
ICB2b2lkIGRpZEZpbmlzaFJlc291cmNlTG9hZChkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdm9p
ZCBkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAg
ICB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZShjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxl
JiwgZG91YmxlIGZpbmlzaFRpbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCmluZGV4
IGVhZDU3YTguLjQ1YzRmYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KQEAgLTI3
LDcgKzI3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUmVzb3VyY2VMb2FkZXIgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFdlJ2xsIG5lZWQgbXVjaCBtb3JlIGdy
YW51bGFyaXR5IGZvciByZXNwb25zZSBtZXNzYWdlcy4KICAgICBXaWxsU2VuZFJlcXVlc3QoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
cmVkaXJlY3RSZXNwb25zZSkgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0
KQogICAgIERpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8oV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBj
ZXJ0aWZpY2F0ZUluZm8pCi0gICAgRGlkUmVjZWl2ZURhdGEoQ29yZUlQQzo6RGF0YVJlZmVyZW5j
ZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKKyAgICBE
aWRSZWNlaXZlRGF0YShDb3JlSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2Rl
ZERhdGFMZW5ndGgpCiAgICAgRGlkRmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBmaW5pc2hUaW1l
KQogICAgIERpZEZhaWxSZXNvdXJjZUxvYWQoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikK
ICAgICAK
</data>
<flag name="review"
          id="214367"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>