<?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>141186</bug_id>
          
          <creation_ts>2015-02-02 19:55:54 -0800</creation_ts>
          <short_desc>Drop ResourceLoadPriorityUnresolved resource load priority and use Optional&lt;&gt; instead</short_desc>
          <delta_ts>2015-02-03 21:21:13 -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>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>
          <dependson>141230</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1066333</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-02 19:55:54 -0800</bug_when>
    <thetext>Make ResourceLoadPriorityUnresolved a CachedResourceRequest-specific priority as it is not a valid value for ResourceRequest. This makes it clearer ResourceRequest::priority() cannot be ResourceLoadPriorityUnresolved and thus cannot be negative.

A new CachedResourceLoadPriority enum is introduced for CachedResourceRequest&apos;s priority. ResourceLoadPriorityUnresolved is also renamed to CachedResourceLoadPriorityTypeDefault as it makes its meaning clearer. If CachedResourceLoadPriorityTypeDefault priority is set on the CachedResourceRequest, it is later going to be converted to a ResourceLoadPriority by selecting the default priority for the CachedResource&apos;s type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066351</commentid>
    <comment_count>1</comment_count>
      <attachid>245923</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-02 20:58:20 -0800</bug_when>
    <thetext>Created attachment 245923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066395</commentid>
    <comment_count>2</comment_count>
      <attachid>245923</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-02-03 02:45:52 -0800</bug_when>
    <thetext>Comment on attachment 245923
Patch

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

&gt; Source/WebCore/platform/network/ResourceLoadPriority.h:44
&gt; +enum CachedResourceLoadPriority {
&gt; +    CachedResourceLoadPriorityTypeDefault = -1,
&gt; +    CachedResourceLoadPriorityVeryLow = 0,
&gt; +    CachedResourceLoadPriorityLow,
&gt; +    CachedResourceLoadPriorityMedium,
&gt; +    CachedResourceLoadPriorityHigh,
&gt; +    CachedResourceLoadPriorityVeryHigh,
&gt; +};
&gt; +
&gt;  enum ResourceLoadPriority {
&gt; -    // The unresolved priority is here for the convenience of the clients. It should not be passed to the ResourceLoadScheduler.
&gt; -    ResourceLoadPriorityUnresolved = -1,
&gt; -    ResourceLoadPriorityVeryLow = 0,
&gt; +    ResourceLoadPriorityVeryLow,
&gt;      ResourceLoadPriorityLow,
&gt;      ResourceLoadPriorityMedium,
&gt;      ResourceLoadPriorityHigh,

It seems pretty unfortunate to have two of these. Could we find other solution, for example by replacing uses of CachedResourceLoadPriority with Optional&lt;ResourceLoadPriority&gt;?

Defining CachedResourceLoadPriority here is a (minor) platform violation. Nothing in platform/ shouldn&apos;t know about CachedResources. The definition should probably be in CachedResources.h or thereabouts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066555</commentid>
    <comment_count>3</comment_count>
      <attachid>245964</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-03 13:54:41 -0800</bug_when>
    <thetext>Created attachment 245964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066606</commentid>
    <comment_count>4</comment_count>
      <attachid>245964</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-02-03 15:34:44 -0800</bug_when>
    <thetext>Comment on attachment 245964
Patch

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

&gt; Source/WebCore/loader/cache/CachedResourceRequest.h:54
&gt; +    void setPriority(Optional&lt;ResourceLoadPriority&gt; priority) { m_priority = WTF::move(priority); }

I can&apos;t find any clients for this. Maybe it is not used and could be removed?

&gt; Source/WebCore/platform/network/ResourceRequestBase.h:226
&gt; +        unsigned m_allowCookies : 1;
&gt; +        mutable unsigned m_resourceRequestUpdated : 1;
&gt; +        mutable unsigned m_platformRequestUpdated : 1;
&gt; +        mutable unsigned m_resourceRequestBodyUpdated : 1;
&gt; +        mutable unsigned m_platformRequestBodyUpdated : 1;
&gt; +        unsigned m_reportUploadProgress : 1;
&gt; +        unsigned m_reportLoadTiming : 1;
&gt; +        unsigned m_reportRawHeaders : 1;
&gt; +        unsigned m_hiddenFromInspector : 1;
&gt; +        unsigned m_priority : 4;

These could probably just be regular fields instead of bitfields. I don&apos;t think there is meaningful memory savings here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066608</commentid>
    <comment_count>5</comment_count>
      <attachid>245978</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-03 15:38:46 -0800</bug_when>
    <thetext>Created attachment 245978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066609</commentid>
    <comment_count>6</comment_count>
      <attachid>245979</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-02-03 15:39:49 -0800</bug_when>
    <thetext>Created attachment 245979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066660</commentid>
    <comment_count>7</comment_count>
      <attachid>245979</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-03 17:24:08 -0800</bug_when>
    <thetext>Comment on attachment 245979
Patch

Clearing flags on attachment: 245979

Committed r179584: &lt;http://trac.webkit.org/changeset/179584&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066661</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-03 17:24:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245923</attachid>
            <date>2015-02-02 20:58:20 -0800</date>
            <delta_ts>2015-02-03 13:54:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141186-20150202205821.patch</filename>
            <type>text/plain</type>
            <size>22073</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2NmMjNjNWU5ZjZkZDcy
NmM4ZjJiMjc5MWE0YjRkNGY2NGJhYWU1NS4uOGFjNjA5MWQ4MWVhZjQ3NDRjZGE1ZmI2Zjk5MjRj
MTdjOWZlOGRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDE1LTAyLTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgTWFrZSBSZXNvdXJjZUxvYWRQ
cmlvcml0eVVucmVzb2x2ZWQgYSBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qtc3BlY2lmaWMgcHJpb3Jp
dHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTE4
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
UmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIGEgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LXNw
ZWNpZmljCisgICAgICAgIHByaW9yaXR5IGFzIGl0IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBS
ZXNvdXJjZVJlcXVlc3QuIFRoaXMgbWFrZXMgaXQKKyAgICAgICAgY2xlYXJlciBSZXNvdXJjZVJl
cXVlc3Q6OnByaW9yaXR5KCkgY2Fubm90IGJlCisgICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5
VW5yZXNvbHZlZCBhbmQgdGh1cyBjYW5ub3QgYmUgbmVnYXRpdmUuCisKKyAgICAgICAgQSBuZXcg
Q2FjaGVkUmVzb3VyY2VMb2FkUHJpb3JpdHkgZW51bSBpcyBpbnRyb2R1Y2VkIGZvcgorICAgICAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QncyBwcmlvcml0eS4gUmVzb3VyY2VMb2FkUHJpb3JpdHlV
bnJlc29sdmVkIGlzCisgICAgICAgIGFsc28gcmVuYW1lZCB0byBDYWNoZWRSZXNvdXJjZUxvYWRQ
cmlvcml0eVR5cGVEZWZhdWx0IGFzIGl0IG1ha2VzIGl0cworICAgICAgICBtZWFuaW5nIGNsZWFy
ZXI6IGlmIENhY2hlZFJlc291cmNlTG9hZFByaW9yaXR5VHlwZURlZmF1bHQgcHJpb3JpdHkgaXMK
KyAgICAgICAgc2V0IG9uIHRoZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3QsIGl0IGlzIGxhdGVyIGdv
aW5nIHRvIGJlIGNvbnZlcnRlZAorICAgICAgICB0byBhIFJlc291cmNlTG9hZFByaW9yaXR5IGJ5
IHNlbGVjdGluZyB0aGUgZGVmYXVsdCBwcmlvcml0eSBmb3IgdGhlCisgICAgICAgIENhY2hlZFJl
c291cmNlJ3MgdHlwZS4KKworMjAxNS0wMi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCiAgICAgICAgIEFkZCBkaWFnbm9zdGljIGxvZ2dpbmcgZm9yIFJlc291cmNlUmVzcG9u
c2UncyBzb3VyY2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MTE3MAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTk2MzIwODA+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYzZkOGQ1OTI0NDk3MGU1M2VkNzJkMDlmNDc4YzY4Yzk4ZWJiZmY3Zi4uOTU1ZWZjM2Q1ZmI5
Zjc3ZDI4M2RlZDM5NGE3Y2Q1MDcxMDI5YzBhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIwIEBA
CiAyMDE1LTAyLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAg
TWFrZSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgYSBDYWNoZWRSZXNvdXJjZVJlcXVl
c3Qtc3BlY2lmaWMgcHJpb3JpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0MTE4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN0b3AgaGFuZGxpbmcgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVk
IHByaW9yaXR5IGFzIGl0IGlzIG5vdCBhIHZhbGlkCisgICAgICAgIHByaW9yaXR5IGZvciBSZXNv
dXJjZVJlcXVlc3QuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OnJldHJpZXZlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQpOgor
CisyMDE1LTAyLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAg
TWFrZSBOZXR3b3JrQ2FjaGUncyBjb25zdHJ1Y3RvciBwcml2YXRlCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDExODEKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDAwOTFhNzFmYWNhYzQwMjVjZTA3MTVhMGEwZWM3
MzFhMmQ4N2E3ZDYuLmQ4NWYxMDRjYTJlNmRkMDFmMmFjY2RlZTA3ZWE4MDUwNjJlYTFhMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTIyOSw3ICsyMjksNyBA
QCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAgICAgICAgIGFkZFBlbmRpbmdTaGVl
dChpc0FjdGl2ZSA/IEFjdGl2ZVNoZWV0IDogSW5hY3RpdmVTaGVldCk7CiAKICAgICAgICAgLy8g
TG9hZCBzdHlsZXNoZWV0cyB0aGF0IGFyZSBub3QgbmVlZGVkIGZvciB0aGUgcmVuZGVyaW5nIGlt
bWVkaWF0ZWx5IHdpdGggbG93IHByaW9yaXR5LgotICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0
eSBwcmlvcml0eSA9IGlzQWN0aXZlID8gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIDog
UmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OworICAgICAgICBDYWNoZWRSZXNvdXJjZUxvYWRQ
cmlvcml0eSBwcmlvcml0eSA9IGlzQWN0aXZlID8gQ2FjaGVkUmVzb3VyY2VMb2FkUHJpb3JpdHlU
eXBlRGVmYXVsdCA6IENhY2hlZFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKICAgICAgICAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCku
Y29tcGxldGVVUkwodXJsKSksIGNoYXJzZXQsIHByaW9yaXR5KTsKICAgICAgICAgcmVxdWVzdC5z
ZXRJbml0aWF0b3IodGhpcyk7CiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLmNh
Y2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggMmZmYWY2MGI1ZDlmYzkzNzM1MzQ3NzJl
MmU4MGIyYTUxODg3N2M0OS4uNTM4ODhhNjhmZThjMDQyMTFmMjRjMmExNGRlNmUyOTQ5MzFjM2Y1
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtMTA1LDEyICsxMDUsMTIg
QEAgYm9vbCBMaW5rTG9hZGVyOjpsb2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiByZWxB
dHRyaWJ1dGUsIGNvbnN0IFN0cmluZyYgdHkKICAgICBpZiAoKHJlbEF0dHJpYnV0ZS5tX2lzTGlu
a1ByZWZldGNoIHx8IHJlbEF0dHJpYnV0ZS5tX2lzTGlua1N1YnJlc291cmNlKSAmJiBocmVmLmlz
VmFsaWQoKSAmJiBkb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICBpZiAoIW1fY2xpZW50LT5z
aG91bGRMb2FkTGluaygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBSZXNv
dXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZl
ZDsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkgPSBDYWNoZWRS
ZXNvdXJjZUxvYWRQcmlvcml0eVR5cGVEZWZhdWx0OwogICAgICAgICBDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlID0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDsKICAgICAgICAgLy8gV2Ug
b25seSBtYWtlIG9uZSByZXF1ZXN0IHRvIHRoZSBjYWNoZWRyZXNvdXJjZWxvZGFlciBpZiBtdWx0
aXBsZSByZWwgdHlwZXMgYXJlCiAgICAgICAgIC8vIHNwZWNpZmllZCwgCiAgICAgICAgIGlmIChy
ZWxBdHRyaWJ1dGUubV9pc0xpbmtTdWJyZXNvdXJjZSkgewotICAgICAgICAgICAgcHJpb3JpdHkg
PSBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKKyAgICAgICAgICAgIHByaW9yaXR5ID0gQ2FjaGVk
UmVzb3VyY2VMb2FkUHJpb3JpdHlMb3c7CiAgICAgICAgICAgICB0eXBlID0gQ2FjaGVkUmVzb3Vy
Y2U6OkxpbmtTdWJyZXNvdXJjZTsKICAgICAgICAgfQogICAgICAgICBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QgbGlua1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCho
cmVmKSksIHByaW9yaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZFNjaGVkdWxlci5jcHAKaW5kZXggNTFhZWI4NDY4MDQ4ZDQzZGI2MWQyYWI4YTQyNjI0MGNkYWI4
OTIzYy4uYjNlYWZlOGZmYjliYjUzODQxMDE2ZTM4OGZhODU5ZmMxZjdjNWEwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTE2Myw3
ICsxNjMsNiBAQCB2b2lkIFJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291
cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlcikKICNlbmRpZgogCiAgICAgUmVzb3VyY2VMb2FkUHJp
b3JpdHkgcHJpb3JpdHkgPSByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLnByaW9yaXR5KCk7Ci0g
ICAgQVNTRVJUKHByaW9yaXR5ICE9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CiAK
ICAgICBib29sIGhhZFJlcXVlc3RzID0gaG9zdC0+aGFzUmVxdWVzdHMoKTsKICAgICBob3N0LT5z
Y2hlZHVsZShyZXNvdXJjZUxvYWRlciwgcHJpb3JpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggOTcxZDg2NDk0NTk5ZDkwZDZhOTky
ODk3ZmU2MzY2ZTFhZTA4Y2MxOS4uMGJmMGYwOTVjZjUzMWI5YTNhZWQ2Njc2MmY3ODE5Yjk5NmQw
NzJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwCkBAIC03MzYsMTEgKzczNiwyOCBAQCB1bnNpZ25lZCBDYWNoZWRSZXNvdXJjZTo6b3Zlcmhl
YWRTaXplKCkgY29uc3QKICAgICByZXR1cm4gc2l6ZW9mKENhY2hlZFJlc291cmNlKSArIG1fcmVz
cG9uc2UubWVtb3J5VXNhZ2UoKSArIGtBdmVyYWdlQ2xpZW50c0hhc2hNYXBTaXplICsgbV9yZXNv
dXJjZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkubGVuZ3RoKCkgKiAyOwogfQogCi12b2lkIENhY2hl
ZFJlc291cmNlOjpzZXRMb2FkUHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgbG9hZFByaW9y
aXR5KQotewotICAgIGlmIChsb2FkUHJpb3JpdHkgPT0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJl
c29sdmVkKQotICAgICAgICBsb2FkUHJpb3JpdHkgPSBkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJj
ZVR5cGUodHlwZSgpKTsKLSAgICBtX2xvYWRQcmlvcml0eSA9IGxvYWRQcmlvcml0eTsKK3ZvaWQg
Q2FjaGVkUmVzb3VyY2U6OnNldExvYWRQcmlvcml0eShDYWNoZWRSZXNvdXJjZUxvYWRQcmlvcml0
eSBsb2FkUHJpb3JpdHkpCit7CisgICAgc3dpdGNoIChsb2FkUHJpb3JpdHkpIHsKKyAgICBjYXNl
IENhY2hlZFJlc291cmNlTG9hZFByaW9yaXR5VHlwZURlZmF1bHQ6CisgICAgICAgIG1fbG9hZFBy
aW9yaXR5ID0gZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKHR5cGUoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OgorICAg
ICAgICBtX2xvYWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZUxvYWRQcmlvcml0eUxvdzoKKyAgICAg
ICAgbV9sb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bToKKyAgICAgICAg
bV9sb2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2g6CisgICAgICAgIG1f
bG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIENhY2hlZFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUhpZ2g6CisgICAgICAgIG1f
bG9hZFByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5SGlnaDsKKyAgICAgICAgYnJl
YWs7CisgICAgfQogfQogCiBpbmxpbmUgQ2FjaGVkUmVzb3VyY2U6OkNhbGxiYWNrOjpDYWxsYmFj
ayhDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIENhY2hlZFJlc291cmNlQ2xpZW50JiBjbGllbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGU3
ODRkMWY2MWY5NmY0ZWM5YWU3MDYxOTZlNzY5MDQxMDcwNGQyMWEuLjkxMGE1N2Q2YzNhNTUzMTQ2
OGIzYTEyNWQwNjFiYjRkNjM1Nzk5MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGljOgogICAgIFR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFR5cGU+KG1fdHlwZSk7IH0KICAgICAK
ICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBsb2FkUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBt
X2xvYWRQcmlvcml0eTsgfQotICAgIHZvaWQgc2V0TG9hZFByaW9yaXR5KFJlc291cmNlTG9hZFBy
aW9yaXR5KTsKKyAgICB2b2lkIHNldExvYWRQcmlvcml0eShDYWNoZWRSZXNvdXJjZUxvYWRQcmlv
cml0eSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZENsaWVudChDYWNoZWRSZXNvdXJj
ZUNsaWVudCopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQ2xpZW50KENhY2hlZFJl
c291cmNlQ2xpZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IDM4OWU1MzExMjViNjVlNzhiZGZlYmIwYmJm
NjBkMWY0MGI5MGIzZmUuLjcyMDA1MTE4MWVkOTJhYTNhZmYwZmM4MTY0ZGJjMjVmNjA5MDJkOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3Vy
Y2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJl
c291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29u
c3QgU3RyaW5nJiBjaGFyc2V0LCBDYWNoZWRSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkK
ICAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKICAgICAsIG1fY2hhcnNl
dChjaGFyc2V0KQogICAgICwgbV9vcHRpb25zKENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0
Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpCkBAIC00NSwxMyArNDUsMTMgQEAgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXNvdXJjZVJlcXUKIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJl
cXVlc3QpCiAgICAgLCBtX29wdGlvbnMob3B0aW9ucykKLSAgICAsIG1fcHJpb3JpdHkoUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKQorICAgICwgbV9wcmlvcml0eShDYWNoZWRSZXNvdXJj
ZUxvYWRQcmlvcml0eVR5cGVEZWZhdWx0KQogICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQogICAg
ICwgbV9kZWZlcihOb0RlZmVyKQogewogfQogCi1DYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hl
ZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCwgQ2FjaGVkUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiAgICAgOiBtX3Jlc291cmNl
UmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCiAgICAgLCBtX29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkKICAgICAsIG1fcHJpb3JpdHko
cHJpb3JpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmgKaW5kZXggZTAxMWQzODRjNmExYjAzYWZmMjVkMzRhYjkxZDNhYzBkYmU2
Yzg5YS4uNTU5NzA2NzhlMDIwZDA3MjI2MzI5ZGQ5Y2Q5MTkzM2JhZGRjNTE1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApA
QCAtNDAsOSArNDAsOSBAQCBjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgewogcHVibGljOgog
ICAgIGVudW0gRGVmZXJPcHRpb24geyBOb0RlZmVyLCBEZWZlcnJlZEJ5Q2xpZW50IH07CiAKLSAg
ICBleHBsaWNpdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgU3RyaW5nJiBjaGFyc2V0ID0gU3RyaW5nKCksIFJlc291cmNlTG9hZFByaW9yaXR5ID0g
UmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKTsKKyAgICBleHBsaWNpdCBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0
ID0gU3RyaW5nKCksIENhY2hlZFJlc291cmNlTG9hZFByaW9yaXR5ID0gQ2FjaGVkUmVzb3VyY2VM
b2FkUHJpb3JpdHlUeXBlRGVmYXVsdCk7CiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwotICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQ
cmlvcml0eSk7CisgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIENhY2hlZFJlc291cmNlTG9hZFByaW9yaXR5KTsKICAgICB+Q2FjaGVkUmVzb3VyY2VSZXF1
ZXN0KCk7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QmIG11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSB7
IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQpAQCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRDaGFyc2V0KGNvbnN0IFN0cmluZyYgY2hhcnNldCkgeyBtX2NoYXJzZXQgPSBj
aGFyc2V0OyB9CiAgICAgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKCkgY29u
c3QgeyByZXR1cm4gbV9vcHRpb25zOyB9CiAgICAgdm9pZCBzZXRPcHRpb25zKGNvbnN0IFJlc291
cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykgeyBtX29wdGlvbnMgPSBvcHRpb25zOyB9Ci0gICAg
dm9pZCBzZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkgeyBtX3ByaW9y
aXR5ID0gcHJpb3JpdHk7IH0KLSAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJpb3JpdHk7IH0KKyAgICB2b2lkIHNldFByaW9yaXR5KENhY2hlZFJl
c291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KSB7IG1fcHJpb3JpdHkgPSBwcmlvcml0eTsgfQor
ICAgIENhY2hlZFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4g
bV9wcmlvcml0eTsgfQogICAgIGJvb2wgZm9yUHJlbG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9y
UHJlbG9hZDsgfQogICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29sIGZvclByZWxvYWQpIHsgbV9m
b3JQcmVsb2FkID0gZm9yUHJlbG9hZDsgfQogICAgIERlZmVyT3B0aW9uIGRlZmVyKCkgY29uc3Qg
eyByZXR1cm4gbV9kZWZlcjsgfQpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIFJlc291
cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKICAgICBTdHJpbmcgbV9jaGFyc2V0OwogICAg
IFJlc291cmNlTG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7Ci0gICAgUmVzb3VyY2VMb2FkUHJpb3Jp
dHkgbV9wcmlvcml0eTsKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5
OwogICAgIGJvb2wgbV9mb3JQcmVsb2FkOwogICAgIERlZmVyT3B0aW9uIG1fZGVmZXI7CiAgICAg
UmVmUHRyPEVsZW1lbnQ+IG1faW5pdGlhdG9yRWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkUHJpb3JpdHkuaAppbmRleCA1YTcx
MDRmOTdiMTI5MjhmMDFjMzFkZTA3YzZjM2UxMjM1YWY3MWFlLi4xMjMxNTBhZThkYjFkODhlNjI3
ZTQwYTYwMjRlOWU1MWM1YTliMGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlTG9hZFByaW9yaXR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRQcmlvcml0eS5oCkBAIC0yOCwxMCArMjgsMTcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIENhY2hlZFJlc291cmNlTG9hZFByaW9yaXR5
IHsKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRQcmlvcml0eVR5cGVEZWZhdWx0ID0gLTEsCisgICAg
Q2FjaGVkUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93ID0gMCwKKyAgICBDYWNoZWRSZXNvdXJj
ZUxvYWRQcmlvcml0eUxvdywKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bSwK
KyAgICBDYWNoZWRSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2gsCisgICAgQ2FjaGVkUmVzb3VyY2VM
b2FkUHJpb3JpdHlWZXJ5SGlnaCwKK307CisKIGVudW0gUmVzb3VyY2VMb2FkUHJpb3JpdHkgewot
ICAgIC8vIFRoZSB1bnJlc29sdmVkIHByaW9yaXR5IGlzIGhlcmUgZm9yIHRoZSBjb252ZW5pZW5j
ZSBvZiB0aGUgY2xpZW50cy4gSXQgc2hvdWxkIG5vdCBiZSBwYXNzZWQgdG8gdGhlIFJlc291cmNl
TG9hZFNjaGVkdWxlci4KLSAgICBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgPSAtMSwK
LSAgICBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3cgPSAwLAorICAgIFJlc291cmNlTG9hZFBy
aW9yaXR5VmVyeUxvdywKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdywKICAgICBSZXNvdXJj
ZUxvYWRQcmlvcml0eU1lZGl1bSwKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2gsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RC
YXNlLmNwcAppbmRleCAwOWQ4ZmIxMjBjZjViNzY0ZDU3MWIwMTVmZTJiNDc5OTJhOTcyMzdlLi4z
MTMyMGQ1YjA0ZjEzNDUxOGM0MmRlMzcxNWI4NWNlOTFiOWEzMzM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAK
QEAgLTQzNyw3ICs0MzcsNyBAQCBSZXNvdXJjZUxvYWRQcmlvcml0eSBSZXNvdXJjZVJlcXVlc3RC
YXNlOjpwcmlvcml0eSgpIGNvbnN0CiB7CiAgICAgdXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCk7CiAK
LSAgICByZXR1cm4gbV9wcmlvcml0eTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVzb3VyY2VM
b2FkUHJpb3JpdHk+KG1fcHJpb3JpdHkpOwogfQogCiB2b2lkIFJlc291cmNlUmVxdWVzdEJhc2U6
OnNldFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQpAQCAtNDQ4LDYgKzQ0
OCw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0UHJpb3JpdHkoUmVzb3VyY2VMb2Fk
UHJpb3JpdHkgcHJpb3JpdHkpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJpb3JpdHkgPSBw
cmlvcml0eTsKKyAgICBBU1NFUlQobV9wcmlvcml0eSA9PSBwcmlvcml0eSk7IC8vIE1ha2Ugc3Vy
ZSBpdCBmaXRzIGluIGJpdGZpZWxkLgogCiAgICAgaWYgKHVybCgpLnByb3RvY29sSXNJbkhUVFBG
YW1pbHkoKSkKICAgICAgICAgbV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkID0gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFz
ZS5oCmluZGV4IDliNWU3OTcwNzE4YjA0NGQ5YzM0ZjIyYzdiZDhlZTA1NThlNjYwNmYuLjM5MjBk
MmI5YjBiNTdjZDdlODFkNzExZWU2MDMzZjM0NDg4ZmEzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC0yMTQs
MTYgKzIxNCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+
IG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXk7CiAgICAg
ICAgIFJlZlB0cjxGb3JtRGF0YT4gbV9odHRwQm9keTsKICAgICAgICAgdW5zaWduZWQgbV9jYWNo
ZVBvbGljeSA6IDM7Ci0gICAgICAgIGJvb2wgbV9hbGxvd0Nvb2tpZXMgOiAxOwotICAgICAgICBt
dXRhYmxlIGJvb2wgbV9yZXNvdXJjZVJlcXVlc3RVcGRhdGVkIDogMTsKLSAgICAgICAgbXV0YWJs
ZSBib29sIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCA6IDE7Ci0gICAgICAgIG11dGFibGUgYm9v
bCBtX3Jlc291cmNlUmVxdWVzdEJvZHlVcGRhdGVkIDogMTsKLSAgICAgICAgbXV0YWJsZSBib29s
IG1fcGxhdGZvcm1SZXF1ZXN0Qm9keVVwZGF0ZWQgOiAxOwotICAgICAgICBib29sIG1fcmVwb3J0
VXBsb2FkUHJvZ3Jlc3MgOiAxOwotICAgICAgICBib29sIG1fcmVwb3J0TG9hZFRpbWluZyA6IDE7
Ci0gICAgICAgIGJvb2wgbV9yZXBvcnRSYXdIZWFkZXJzIDogMTsKLSAgICAgICAgYm9vbCBtX2hp
ZGRlbkZyb21JbnNwZWN0b3IgOiAxOwotICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3By
aW9yaXR5IDogNDsgLy8gbm90IHVuc2lnbmVkIGJlY2F1c2UgUmVzb3VyY2VMb2FkUHJpb3JpdHkg
aGFzIG5lZ2F0aXZlIHZhbHVlcworICAgICAgICB1bnNpZ25lZCBtX2FsbG93Q29va2llcyA6IDE7
CisgICAgICAgIG11dGFibGUgdW5zaWduZWQgbV9yZXNvdXJjZVJlcXVlc3RVcGRhdGVkIDogMTsK
KyAgICAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQgOiAxOwor
ICAgICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fcmVzb3VyY2VSZXF1ZXN0Qm9keVVwZGF0ZWQgOiAx
OworICAgICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fcGxhdGZvcm1SZXF1ZXN0Qm9keVVwZGF0ZWQg
OiAxOworICAgICAgICB1bnNpZ25lZCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzIDogMTsKKyAgICAg
ICAgdW5zaWduZWQgbV9yZXBvcnRMb2FkVGltaW5nIDogMTsKKyAgICAgICAgdW5zaWduZWQgbV9y
ZXBvcnRSYXdIZWFkZXJzIDogMTsKKyAgICAgICAgdW5zaWduZWQgbV9oaWRkZW5Gcm9tSW5zcGVj
dG9yIDogMTsKKyAgICAgICAgdW5zaWduZWQgbV9wcmlvcml0eSA6IDQ7CiAKICAgICBwcml2YXRl
OgogICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGFzUmVzb3VyY2VSZXF1ZXN0KCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlUmVxdWVzdENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCmluZGV4IGM2NDc1ZGZkY2FjZWVjMTI4YTExM2UwM2Jk
NmU3MmVhMzdmZjUyMWMuLmI2ODU3ZTc5NTBjNzcxNDczMmJmMjFmMjIzMmEwOWMyYzlhMzViY2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VS
ZXF1ZXN0Q0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCkBAIC0yNzQsMTEgKzI3NCw4IEBAIHZvaWQgUmVzb3Vy
Y2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpCiAgICAgfQogICAgIG1fYWxsb3dD
b29raWVzID0gQ0ZVUkxSZXF1ZXN0U2hvdWxkSGFuZGxlSFRUUENvb2tpZXMobV9jZlJlcXVlc3Qu
Z2V0KCkpOwogCi0gICAgaWYgKHJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkgewotICAgICAg
ICBhdXRvIHByaW9yaXR5ID0gdG9SZXNvdXJjZUxvYWRQcmlvcml0eSh3a0dldEhUVFBSZXF1ZXN0
UHJpb3JpdHkobV9jZlJlcXVlc3QuZ2V0KCkpKTsKLSAgICAgICAgaWYgKHByaW9yaXR5ID4gUmVz
b3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKQotICAgICAgICAgICAgbV9wcmlvcml0eSA9IHBy
aW9yaXR5OwotICAgIH0KKyAgICBpZiAocmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQorICAg
ICAgICBtX3ByaW9yaXR5ID0gdG9SZXNvdXJjZUxvYWRQcmlvcml0eSh3a0dldEhUVFBSZXF1ZXN0
UHJpb3JpdHkobV9jZlJlcXVlc3QuZ2V0KCkpKTsKIAogICAgIG1faHR0cEhlYWRlckZpZWxkcy5j
bGVhcigpOwogICAgIGlmIChDRkRpY3Rpb25hcnlSZWYgaGVhZGVycyA9IENGVVJMUmVxdWVzdENv
cHlBbGxIVFRQSGVhZGVyRmllbGRzKG1fY2ZSZXF1ZXN0LmdldCgpKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5l
dC5oCmluZGV4IGFmNWQzOGFlODNiNjBkYzg5ZDdhNjZiNDc0NGI2NzI4ZTE0NGM3OTAuLjc2OWM4
ZTU5NjQ2OTE4ZWMyNWEwOTAxYWYxNmRhY2YzYjAyYzlmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgK
QEAgLTQ0LDggKzQ0LDYgQEAgQ0ZVUkxSZXF1ZXN0UmVmIGNmVVJMUmVxdWVzdChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmKTsKIGlubGluZSBSZXNvdXJjZUxvYWRQcmlvcml0eSB0b1Jlc291cmNlTG9h
ZFByaW9yaXR5KGludCBwcmlvcml0eSkKIHsKICAgICBzd2l0Y2ggKHByaW9yaXR5KSB7Ci0gICAg
Y2FzZSAtMToKLSAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZDsK
ICAgICBjYXNlIDA6CiAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3c7
CiAgICAgY2FzZSAxOgpAQCAtNjUsOCArNjMsNiBAQCBpbmxpbmUgUmVzb3VyY2VMb2FkUHJpb3Jp
dHkgdG9SZXNvdXJjZUxvYWRQcmlvcml0eShpbnQgcHJpb3JpdHkpCiBpbmxpbmUgaW50IHRvUGxh
dGZvcm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiB7CiAg
ICAgc3dpdGNoIChwcmlvcml0eSkgewotICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJl
c29sdmVkOgotICAgICAgICByZXR1cm4gLTE7CiAgICAgY2FzZSBSZXNvdXJjZUxvYWRQcmlvcml0
eVZlcnlMb3c6CiAgICAgICAgIHJldHVybiAwOwogICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3Jp
dHlMb3c6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1Jlc291cmNlUmVxdWVzdENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQppbmRleCAwYTYwOWZjMjc1MDU5ZGQ1Mjhm
Y2QxODgyNGQ3NTkwOTgyOWY3YThmLi5kNzc3YTAzMWI3NTk5NDUwNTg2NmFkYWJkMDU3MzRlN2M5
MGQ2YTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1Jlc291cmNlUmVxdWVzdENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KQEAgLTc4LDExICs3OCw4IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpCiAgICAgICAgIG1f
aHR0cE1ldGhvZCA9IG1ldGhvZDsKICAgICBtX2FsbG93Q29va2llcyA9IFttX25zUmVxdWVzdC5n
ZXQoKSBIVFRQU2hvdWxkSGFuZGxlQ29va2llc107CiAKLSAgICBpZiAocmVzb3VyY2VQcmlvcml0
aWVzRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8gcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFBy
aW9yaXR5KHdrR2V0SFRUUFJlcXVlc3RQcmlvcml0eShbbV9uc1JlcXVlc3QuZ2V0KCkgX0NGVVJM
UmVxdWVzdF0pKTsKLSAgICAgICAgaWYgKHByaW9yaXR5ID4gUmVzb3VyY2VMb2FkUHJpb3JpdHlV
bnJlc29sdmVkKQotICAgICAgICAgICAgbV9wcmlvcml0eSA9IHByaW9yaXR5OwotICAgIH0KKyAg
ICBpZiAocmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQorICAgICAgICBtX3ByaW9yaXR5ID0g
dG9SZXNvdXJjZUxvYWRQcmlvcml0eSh3a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkoW21fbnNSZXF1
ZXN0LmdldCgpIF9DRlVSTFJlcXVlc3RdKSk7CiAKICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuY2xl
YXIoKTsKICAgICBbW21fbnNSZXF1ZXN0IGFsbEhUVFBIZWFkZXJGaWVsZHNdIGVudW1lcmF0ZUtl
eXNBbmRPYmplY3RzVXNpbmdCbG9jazogXihOU1N0cmluZyAqbmFtZSwgTlNTdHJpbmcgKnZhbHVl
LCBCT09MICopIHsKQEAgLTE0NSw3ICsxNDIsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9V
cGRhdGVQbGF0Zm9ybVJlcXVlc3QoKQogICAgICAgICB3a0hUVFBSZXF1ZXN0RW5hYmxlUGlwZWxp
bmluZyhbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdKTsKIAogICAgIGlmIChSZXNvdXJjZVJlcXVl
c3Q6OnJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKLSAgICAgICAgd2tTZXRIVFRQUmVxdWVz
dFByaW9yaXR5KFtuc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0sIHRvUGxhdGZvcm1SZXF1ZXN0UHJp
b3JpdHkobV9wcmlvcml0eSkpOworICAgICAgICB3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkoW25z
UmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShwcmlvcml0
eSgpKSk7CiAKICAgICBbbnNSZXF1ZXN0IHNldENhY2hlUG9saWN5OihOU1VSTFJlcXVlc3RDYWNo
ZVBvbGljeSljYWNoZVBvbGljeSgpXTsKICAgICB3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENh
Y2hpbmcoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNDRjODM0
NWNmZDRiNTAwYzFkNzcwOTE5OTQwODU0YjVkZTgyYWQxNi4uM2ZhMDkzNGVmYjQxZTk1ZTIwZjE0
MDFkYmI1MzA3YTVmZGJjNjRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMTMyLDggKzEzMiw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGlubGluZSBTb3VwTWVzc2FnZVByaW9yaXR5IHRvU291cE1lc3Nh
Z2VQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKIHsKICAgICBzd2l0Y2gg
KHByaW9yaXR5KSB7Ci0gICAgY2FzZSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQ6Ci0g
ICAgICAgIHJldHVybiBTT1VQX01FU1NBR0VfUFJJT1JJVFlfTk9STUFMOwogICAgIGNhc2UgUmVz
b3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OgogICAgICAgICByZXR1cm4gU09VUF9NRVNTQUdFX1BS
SU9SSVRZX1ZFUllfTE9XOwogICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3c6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cAppbmRleCBjYjAzOGU2N2U0ZWJkYWJiOWZlY2FhYzk1YmFmMmE5NjQyNzgwZWJiLi45OTRhMmUx
ZTEwZTRmMWQ3Zjc2MGJjYTVkNTM5MGZkMGRiNDY2ODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKQEAgLTIxNyw3ICsy
MTcsNyBAQCB2b2lkIE5ldHdvcmtDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIHN0ZAogewogICAgIEFTU0VSVChpc0VuYWJsZWQo
KSk7CiAKLSAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSByZXRyaWV2aW5n
ICVzIHByaW9yaXR5ICVkIiwgb3JpZ2luYWxSZXF1ZXN0LnVybCgpLnN0cmluZygpLmFzY2lpKCku
ZGF0YSgpLCBvcmlnaW5hbFJlcXVlc3QucHJpb3JpdHkoKSk7CisgICAgTE9HKE5ldHdvcmtDYWNo
ZSwgIihOZXR3b3JrUHJvY2VzcykgcmV0cmlldmluZyAlcyBwcmlvcml0eSAldSIsIG9yaWdpbmFs
UmVxdWVzdC51cmwoKS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgb3JpZ2luYWxSZXF1ZXN0LnBy
aW9yaXR5KCkpOwogCiAgICAgaWYgKCFjYW5SZXRyaWV2ZShvcmlnaW5hbFJlcXVlc3QpKSB7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIHZv
aWQgTmV0d29ya0NhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwgc3RkCiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICBhdXRvIGVs
YXBzZWRNUyA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNl
Y29uZHM+KHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnRUaW1lKS5jb3Vu
dCgpOwogI2VuZGlmCi0gICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3Mp
IHJldHJpZXZlIGNvbXBsZXRlIHN1Y2Nlc3M9JWQgcHJpb3JpdHk9JWQgdGltZT0lbGxkbXMiLCBz
dWNjZXNzLCBjYXB0dXJlLT5vcmlnaW5hbFJlcXVlc3QucHJpb3JpdHkoKSwgZWxhcHNlZE1TKTsK
KyAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgcmV0cmlldmUgY29t
cGxldGUgc3VjY2Vzcz0lZCBwcmlvcml0eT0ldSB0aW1lPSVsbGRtcyIsIHN1Y2Nlc3MsIGNhcHR1
cmUtPm9yaWdpbmFsUmVxdWVzdC5wcmlvcml0eSgpLCBlbGFwc2VkTVMpOwogICAgICAgICBjYXB0
dXJlLT5jb21wbGV0aW9uSGFuZGxlcihXVEY6Om1vdmUoZGVjb2RlZEVudHJ5KSk7CiAgICAgICAg
IHJldHVybiBzdWNjZXNzOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRl
eCA4MDI0NWZiNmJmZTBmYWVmZmI1OGYzZjk3MzYxZjdhMjlmOWU1MTgyLi45MjUyNzllMzA5NjEz
OWE2NjhhZDk5MTMwMGJhNGNkMWEwODMxNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cApAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hl
ZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBDYWNoCiAgICAgfQogI2Vu
ZGlmCiAKLSAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgc2NoZWR1bGVk
IHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIHdpdGggcHJpb3JpdHkgJWkiLCByZXNvdXJjZUxvYWRl
ci0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVzb3VyY2VMb2FkZXItPnJlcXVlc3Qo
KS5wcmlvcml0eSgpKTsKKyAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2Vzcykg
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUg
c2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIHdpdGggcHJpb3JpdHkgJXUiLCByZXNv
dXJjZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVzb3VyY2VMb2FkZXIt
PnJlcXVlc3QoKS5wcmlvcml0eSgpKTsKIAogICAgIENvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250
ZW50U25pZmZpbmdQb2xpY3kgPSByZXNvdXJjZUxvYWRlci0+c2hvdWxkU25pZmZDb250ZW50KCkg
PyBTbmlmZkNvbnRlbnQgOiBEb05vdFNuaWZmQ29udGVudDsKICAgICBTdG9yZWRDcmVkZW50aWFs
cyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzID0gcmVzb3VyY2VMb2FkZXItPnNob3VsZFVzZUNyZWRl
bnRpYWxTdG9yYWdlKCkgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245964</attachid>
            <date>2015-02-03 13:54:41 -0800</date>
            <delta_ts>2015-02-03 15:38:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141186-20150203135440.patch</filename>
            <type>text/plain</type>
            <size>21614</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThlMTQwNWVmMjYyMzVi
MmIyYjA0N2UzNmVmNjViMjNhOTUyMTY3YS4uNDRiMTlhNDFkNTJkMWJkNDRiOGJkYTJjMjVhOTZi
MGYwNzU1ZWI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTAyLTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZXNvdXJjZUxvYWRQ
cmlvcml0eVVucmVzb2x2ZWQgcmVzb3VyY2UgbG9hZCBwcmlvcml0eSBhbmQgdXNlIE9wdGlvbmFs
PD4gaW5zdGVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQxMTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRHJvcCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgcmVzb3VyY2UgbG9hZCBwcmlv
cml0eSB2YWx1ZSBhbmQgdXNlCisgICAgICAgIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5
PiB3aGVuIG5lZWRlZCBpbnN0ZWFkLiBJZiB0aGUgT3B0aW9uYWwKKyAgICAgICAgZG9lc24ndCBo
YXZlIGEgdmFsdWUsIHRoZW4gaXQgbWVhbnMgaXQgaXMgdW5yZXNvbHZlZC4gSGF2aW5nCisgICAg
ICAgIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCBpbiBSZXNvdXJjZUxvYWRQcmlvcml0
eSB3YXMgY29uZnVzaW5nCisgICAgICAgIGJlY2F1c2UgdGhpcyB2YWx1ZSBpcyBvbmx5IHZhbGlk
IGluIENhY2hlZFJlc291cmNlUmVxdWVzdCwgaXQgaXMgbm90CisgICAgICAgIGEgdmFsaWQgdmFs
dWUgaW4gQ2FjaGVkUmVzb3VyY2Ugb3IgaW4gUmVzb3VyY2VSZXF1ZXN0LiBBZnRlciB0aGlzCisg
ICAgICAgIHJlZmFjdG9yaW5nLCBpdCBub3cgYmVjb21lcyBtb3JlIG9idmlvdXMuCisKIDIwMTUt
MDItMDMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNzk1NDguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTIyM2IxMzQx
ZWY0N2MyNzMxN2JhODg5OGFlOGM3NzUzYzM1YWFmMi4uNDIzZmUyNzk1YzUxYTc4ZjM3OWFjMGE4
NDA5ZTQ1MzQ0ZTM5MDdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTAyLTAz
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZXNvdXJj
ZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgcmVzb3VyY2UgbG9hZCBwcmlvcml0eSBhbmQgdXNlIE9w
dGlvbmFsPD4gaW5zdGVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQxMTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXBkYXRlIGNvZGUgbm93IHRoYXQgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkIGlzIG5vdCBsb25nZXIgYQorICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBlbnVtIHZh
bHVlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhY2hlOjpyZXRyaWV2ZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKToKKwogMjAxNS0w
Mi0wMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgTWVtb3J5
IGNhY2hlIGZvciByZXNvdXJjZXMgcGVuZGluZyBkaXNrIHdyaXRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggMDA5MWE3MWZhY2FjNDAyNWNlMDcxNWEwYTBlYzcz
MWEyZDg3YTdkNi4uMGFkMTM3OGRlNDk3MWI1YTlmYWNmZDkyOTc3OGVmYjE1ZDAzMzVmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMjI5LDcgKzIyOSw5IEBA
IHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKICAgICAgICAgYWRkUGVuZGluZ1NoZWV0
KGlzQWN0aXZlID8gQWN0aXZlU2hlZXQgOiBJbmFjdGl2ZVNoZWV0KTsKIAogICAgICAgICAvLyBM
b2FkIHN0eWxlc2hlZXRzIHRoYXQgYXJlIG5vdCBuZWVkZWQgZm9yIHRoZSByZW5kZXJpbmcgaW1t
ZWRpYXRlbHkgd2l0aCBsb3cgcHJpb3JpdHkuCi0gICAgICAgIFJlc291cmNlTG9hZFByaW9yaXR5
IHByaW9yaXR5ID0gaXNBY3RpdmUgPyBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgOiBS
ZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3c7CisgICAgICAgIE9wdGlvbmFsPFJlc291cmNlTG9h
ZFByaW9yaXR5PiBwcmlvcml0eTsKKyAgICAgICAgaWYgKCFpc0FjdGl2ZSkKKyAgICAgICAgICAg
IHByaW9yaXR5ID0gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OwogICAgICAgICBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS5jb21wbGV0
ZVVSTCh1cmwpKSwgY2hhcnNldCwgcHJpb3JpdHkpOwogICAgICAgICByZXF1ZXN0LnNldEluaXRp
YXRvcih0aGlzKTsKICAgICAgICAgbV9jYWNoZWRTaGVldCA9IGRvY3VtZW50KCkuY2FjaGVkUmVz
b3VyY2VMb2FkZXIoKS5yZXF1ZXN0Q1NTU3R5bGVTaGVldChyZXF1ZXN0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9MaW5rTG9hZGVyLmNwcAppbmRleCAyZmZhZjYwYjVkOWZjOTM3MzUzNDc3MmUyZTgwYjJh
NTE4ODc3YzQ5Li5jNmQwMmY0MjJjMjdmMmIyYTQ0Y2FlNTdhZmI5ZWZhZWE4ZTY5ZmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgYm9vbCBM
aW5rTG9hZGVyOjpsb2FkTGluayhjb25zdCBMaW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1dGUs
IGNvbnN0IFN0cmluZyYgdHkKICAgICBpZiAoKHJlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZWZldGNo
IHx8IHJlbEF0dHJpYnV0ZS5tX2lzTGlua1N1YnJlc291cmNlKSAmJiBocmVmLmlzVmFsaWQoKSAm
JiBkb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICBpZiAoIW1fY2xpZW50LT5zaG91bGRMb2Fk
TGluaygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZDsKKyAgICAg
ICAgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IHByaW9yaXR5OwogICAgICAgICBDYWNo
ZWRSZXNvdXJjZTo6VHlwZSB0eXBlID0gQ2FjaGVkUmVzb3VyY2U6OkxpbmtQcmVmZXRjaDsKICAg
ICAgICAgLy8gV2Ugb25seSBtYWtlIG9uZSByZXF1ZXN0IHRvIHRoZSBjYWNoZWRyZXNvdXJjZWxv
ZGFlciBpZiBtdWx0aXBsZSByZWwgdHlwZXMgYXJlCiAgICAgICAgIC8vIHNwZWNpZmllZCwgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4
IDUxYWViODQ2ODA0OGQ0M2RiNjFkMmFiOGE0MjYyNDBjZGFiODkyM2MuLmIzZWFmZThmZmI5YmI1
Mzg0MTAxNmUzODhmYTg1OWZjMWY3YzVhMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCkBAIC0xNjMsNyArMTYzLDYgQEAgdm9pZCBSZXNv
dXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VM
b2FkZXIpCiAjZW5kaWYKIAogICAgIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5ID0gcmVz
b3VyY2VMb2FkZXItPnJlcXVlc3QoKS5wcmlvcml0eSgpOwotICAgIEFTU0VSVChwcmlvcml0eSAh
PSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOwogCiAgICAgYm9vbCBoYWRSZXF1ZXN0
cyA9IGhvc3QtPmhhc1JlcXVlc3RzKCk7CiAgICAgaG9zdC0+c2NoZWR1bGUocmVzb3VyY2VMb2Fk
ZXIsIHByaW9yaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2UuY3BwCmluZGV4IDk3MWQ4NjQ5NDU5OWQ5MGQ2YTk5Mjg5N2ZlNjM2NmUxYWUwOGNjMTku
LjY1OTU1ZTA5ZTIxZDVmZGU4NDVlNjk4ODc1NTA2NThhZTljNTJjYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtNzM2LDExICs3MzYs
MTIgQEAgdW5zaWduZWQgQ2FjaGVkUmVzb3VyY2U6Om92ZXJoZWFkU2l6ZSgpIGNvbnN0CiAgICAg
cmV0dXJuIHNpemVvZihDYWNoZWRSZXNvdXJjZSkgKyBtX3Jlc3BvbnNlLm1lbW9yeVVzYWdlKCkg
KyBrQXZlcmFnZUNsaWVudHNIYXNoTWFwU2l6ZSArIG1fcmVzb3VyY2VSZXF1ZXN0LnVybCgpLnN0
cmluZygpLmxlbmd0aCgpICogMjsKIH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZTo6c2V0TG9hZFBy
aW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5IGxvYWRQcmlvcml0eSkKK3ZvaWQgQ2FjaGVkUmVz
b3VyY2U6OnNldExvYWRQcmlvcml0eShjb25zdCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0
eT4mIGxvYWRQcmlvcml0eSkKIHsKLSAgICBpZiAobG9hZFByaW9yaXR5ID09IFJlc291cmNlTG9h
ZFByaW9yaXR5VW5yZXNvbHZlZCkKLSAgICAgICAgbG9hZFByaW9yaXR5ID0gZGVmYXVsdFByaW9y
aXR5Rm9yUmVzb3VyY2VUeXBlKHR5cGUoKSk7Ci0gICAgbV9sb2FkUHJpb3JpdHkgPSBsb2FkUHJp
b3JpdHk7CisgICAgaWYgKGxvYWRQcmlvcml0eSkKKyAgICAgICAgbV9sb2FkUHJpb3JpdHkgPSBs
b2FkUHJpb3JpdHkudmFsdWUoKTsKKyAgICBlbHNlCisgICAgICAgIG1fbG9hZFByaW9yaXR5ID0g
ZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3VyY2VUeXBlKHR5cGUoKSk7CiB9CiAKIGlubGluZSBDYWNo
ZWRSZXNvdXJjZTo6Q2FsbGJhY2s6OkNhbGxiYWNrKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwg
Q2FjaGVkUmVzb3VyY2VDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggZTc4NGQxZjYxZjk2ZjRlYzlhZTcwNjE5NmU3Njkw
NDEwNzA0ZDIxYS4uNjZkMjljYzc0MDliYzI4YjNjYmUzNWUzYTMwZTE4MDU4MjQ5MTk0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTExNyw3
ICsxMTcsNyBAQCBwdWJsaWM6CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8VHlwZT4obV90eXBlKTsgfQogICAgIAogICAgIFJlc291cmNlTG9hZFByaW9yaXR5IGxv
YWRQcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZFByaW9yaXR5OyB9Ci0gICAgdm9pZCBz
ZXRMb2FkUHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkpOworICAgIHZvaWQgc2V0TG9hZFBy
aW9yaXR5KGNvbnN0IE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiYpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBhZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUNsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggMTA2NTlmZGE5MjY5ODUyZDEyOGNkNjgxYzM5YWY0ODI5Nzg5OWQ0MS4uZTY5
ODlkNTQ1NTA0YmVhNDZmMTIxZWE0Y2M4ODkwOGQ1ZmJhYjQ2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC00NTIs
NyArNDUyLDcgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGUKIHsKICAgICBVUkwgdXJsID0gcmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwoKTsKICAgICAKLSAgICBMT0coUmVzb3VyY2VMb2Fk
aW5nLCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSAnJXMnLCBjaGFyc2V0
ICclcycsIHByaW9yaXR5PSVkLCBmb3JQcmVsb2FkPSV1IiwgdXJsLnN0cmluZ0NlbnRlckVsbGlw
c2l6ZWRUb0xlbmd0aCgpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5jaGFyc2V0KCkubGF0aW4x
KCkuZGF0YSgpLCByZXF1ZXN0LnByaW9yaXR5KCksIHJlcXVlc3QuZm9yUHJlbG9hZCgpKTsKKyAg
ICBMT0coUmVzb3VyY2VMb2FkaW5nLCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNv
dXJjZSAnJXMnLCBjaGFyc2V0ICclcycsIHByaW9yaXR5PSVkLCBmb3JQcmVsb2FkPSV1IiwgdXJs
LnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVz
dC5jaGFyc2V0KCkubGF0aW4xKCkuZGF0YSgpLCByZXF1ZXN0LnByaW9yaXR5KCkgPyByZXF1ZXN0
LnByaW9yaXR5KCkudmFsdWUoKSA6IC0xLCByZXF1ZXN0LmZvclByZWxvYWQoKSk7CiAgICAgCiAg
ICAgLy8gSWYgb25seSB0aGUgZnJhZ21lbnQgaWRlbnRpZmllcnMgZGlmZmVyLCBpdCBpcyB0aGUg
c2FtZSByZXNvdXJjZS4KICAgICB1cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJhZ21lbnRJZGVu
dGlmaWVySWZOZWVkZWQodXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggMzg5ZTUzMTEyNWI2NWU3OGJkZmVi
YjBiYmY2MGQxZjQwYjkwYjNmZS4uNTNhNTNlNWZmNDg2YzlhNWRmYmNiZjFhZjI2MmQ2Y2Y4MmNj
YWZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1DYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBS
ZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK0NhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0
LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiBw
cmlvcml0eSkKICAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKICAgICAs
IG1fY2hhcnNldChjaGFyc2V0KQogICAgICwgbV9vcHRpb25zKENhY2hlZFJlc291cmNlTG9hZGVy
OjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpCkBAIC00NSwxMyArNDUsMTIgQEAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXNvdXJjZVJlcXUKIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCiAgICAgOiBtX3Jlc291cmNlUmVxdWVzdChy
ZXNvdXJjZVJlcXVlc3QpCiAgICAgLCBtX29wdGlvbnMob3B0aW9ucykKLSAgICAsIG1fcHJpb3Jp
dHkoUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKQogICAgICwgbV9mb3JQcmVsb2FkKGZh
bHNlKQogICAgICwgbV9kZWZlcihOb0RlZmVyKQogewogfQogCi1DYWNoZWRSZXNvdXJjZVJlcXVl
c3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNl
UmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRSZXNvdXJjZVJl
cXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291
cmNlUmVxdWVzdCwgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IHByaW9yaXR5KQogICAg
IDogbV9yZXNvdXJjZVJlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQogICAgICwgbV9vcHRpb25zKENh
Y2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpCiAgICAg
LCBtX3ByaW9yaXR5KHByaW9yaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCmluZGV4IGUwMTFkMzg0YzZhMWIwM2FmZjI1ZDM0
YWI5MWQzYWMwZGJlNmM4OWEuLmI5NTg1OTU0OTdjNzRlNDQ5ZjM1ZTFmOWQ5ZDliOTFkNmQ5YTk1
NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgKQEAgLTQwLDkgKzQwLDkgQEAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
IHsKIHB1YmxpYzoKICAgICBlbnVtIERlZmVyT3B0aW9uIHsgTm9EZWZlciwgRGVmZXJyZWRCeUNs
aWVudCB9OwogCi0gICAgZXhwbGljaXQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNldCA9IFN0cmluZygpLCBSZXNvdXJjZUxv
YWRQcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CisgICAgZXhwbGlj
aXQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgY2hhcnNldCA9IFN0cmluZygpLCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4g
PSBOdWxsb3B0KTsKICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlTG9hZFByaW9yaXR5KTsKKyAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0aW9uYWw8
UmVzb3VyY2VMb2FkUHJpb3JpdHk+KTsKICAgICB+Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KCk7CiAK
ICAgICBSZXNvdXJjZVJlcXVlc3QmIG11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSB7IHJldHVybiBt
X3Jlc291cmNlUmVxdWVzdDsgfQpAQCAtNTEsOCArNTEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRDaGFyc2V0KGNvbnN0IFN0cmluZyYgY2hhcnNldCkgeyBtX2NoYXJzZXQgPSBjaGFyc2V0OyB9
CiAgICAgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1
cm4gbV9vcHRpb25zOyB9CiAgICAgdm9pZCBzZXRPcHRpb25zKGNvbnN0IFJlc291cmNlTG9hZGVy
T3B0aW9ucyYgb3B0aW9ucykgeyBtX29wdGlvbnMgPSBvcHRpb25zOyB9Ci0gICAgdm9pZCBzZXRQ
cmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkgeyBtX3ByaW9yaXR5ID0gcHJp
b3JpdHk7IH0KLSAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSgpIGNvbnN0IHsgcmV0
dXJuIG1fcHJpb3JpdHk7IH0KKyAgICB2b2lkIHNldFByaW9yaXR5KE9wdGlvbmFsPFJlc291cmNl
TG9hZFByaW9yaXR5PiBwcmlvcml0eSkgeyBtX3ByaW9yaXR5ID0gV1RGOjptb3ZlKHByaW9yaXR5
KTsgfQorICAgIGNvbnN0IE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiYgcHJpb3JpdHko
KSBjb25zdCB7IHJldHVybiBtX3ByaW9yaXR5OyB9CiAgICAgYm9vbCBmb3JQcmVsb2FkKCkgY29u
c3QgeyByZXR1cm4gbV9mb3JQcmVsb2FkOyB9CiAgICAgdm9pZCBzZXRGb3JQcmVsb2FkKGJvb2wg
Zm9yUHJlbG9hZCkgeyBtX2ZvclByZWxvYWQgPSBmb3JQcmVsb2FkOyB9CiAgICAgRGVmZXJPcHRp
b24gZGVmZXIoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyOyB9CkBAIC02NSw3ICs2NSw3IEBAIHBy
aXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwogICAgIFN0cmlu
ZyBtX2NoYXJzZXQ7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKLSAgICBS
ZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5OworICAgIE9wdGlvbmFsPFJlc291cmNlTG9h
ZFByaW9yaXR5PiBtX3ByaW9yaXR5OwogICAgIGJvb2wgbV9mb3JQcmVsb2FkOwogICAgIERlZmVy
T3B0aW9uIG1fZGVmZXI7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1faW5pdGlhdG9yRWxlbWVudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2Fk
UHJpb3JpdHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2Fk
UHJpb3JpdHkuaAppbmRleCA1YTcxMDRmOTdiMTI5MjhmMDFjMzFkZTA3YzZjM2UxMjM1YWY3MWFl
Li42ZDFkYzViNjQ1MWRjOGZmODdmNWE0NjdkM2ZhY2Q2ODY5N2MzYmFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9hZFByaW9yaXR5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRQcmlvcml0eS5o
CkBAIC0yOSw5ICsyOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gUmVzb3VyY2VM
b2FkUHJpb3JpdHkgewotICAgIC8vIFRoZSB1bnJlc29sdmVkIHByaW9yaXR5IGlzIGhlcmUgZm9y
IHRoZSBjb252ZW5pZW5jZSBvZiB0aGUgY2xpZW50cy4gSXQgc2hvdWxkIG5vdCBiZSBwYXNzZWQg
dG8gdGhlIFJlc291cmNlTG9hZFNjaGVkdWxlci4KLSAgICBSZXNvdXJjZUxvYWRQcmlvcml0eVVu
cmVzb2x2ZWQgPSAtMSwKLSAgICBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3cgPSAwLAorICAg
IFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdywKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eUxv
dywKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bSwKICAgICBSZXNvdXJjZUxvYWRQcmlv
cml0eUhpZ2gsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVxdWVzdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAppbmRleCAwOWQ4ZmIxMjBjZjViNzY0ZDU3MWIwMTVmZTJi
NDc5OTJhOTcyMzdlLi45NGRjY2I5YzZhNGYxYTNkODZjMzE0YzNkZjc4NDM5MjliYWI2MTBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVz
dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAKQEAgLTQzNyw3ICs0MzcsNyBAQCBSZXNvdXJjZUxvYWRQcmlvcml0eSBS
ZXNvdXJjZVJlcXVlc3RCYXNlOjpwcmlvcml0eSgpIGNvbnN0CiB7CiAgICAgdXBkYXRlUmVzb3Vy
Y2VSZXF1ZXN0KCk7CiAKLSAgICByZXR1cm4gbV9wcmlvcml0eTsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8UmVzb3VyY2VMb2FkUHJpb3JpdHk+KG1fcHJpb3JpdHkpOwogfQogCiB2b2lkIFJlc291
cmNlUmVxdWVzdEJhc2U6OnNldFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5
KQpAQCAtNDQ4LDYgKzQ0OCw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0UHJpb3Jp
dHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fcHJpb3JpdHkgPSBwcmlvcml0eTsKKyAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8UmVzb3VyY2VM
b2FkUHJpb3JpdHk+KG1fcHJpb3JpdHkpID09IHByaW9yaXR5KTsgLy8gTWFrZSBzdXJlIGl0IGZp
dHMgaW4gdGhlIGJpdGZpZWxkLgogCiAgICAgaWYgKHVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1p
bHkoKSkKICAgICAgICAgbV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5o
CmluZGV4IDliNWU3OTcwNzE4YjA0NGQ5YzM0ZjIyYzdiZDhlZTA1NThlNjYwNmYuLjM5MjBkMmI5
YjBiNTdjZDdlODFkNzExZWU2MDMzZjM0NDg4ZmEzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC0yMTQsMTYg
KzIxNCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG1f
cmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXk7CiAgICAgICAg
IFJlZlB0cjxGb3JtRGF0YT4gbV9odHRwQm9keTsKICAgICAgICAgdW5zaWduZWQgbV9jYWNoZVBv
bGljeSA6IDM7Ci0gICAgICAgIGJvb2wgbV9hbGxvd0Nvb2tpZXMgOiAxOwotICAgICAgICBtdXRh
YmxlIGJvb2wgbV9yZXNvdXJjZVJlcXVlc3RVcGRhdGVkIDogMTsKLSAgICAgICAgbXV0YWJsZSBi
b29sIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCA6IDE7Ci0gICAgICAgIG11dGFibGUgYm9vbCBt
X3Jlc291cmNlUmVxdWVzdEJvZHlVcGRhdGVkIDogMTsKLSAgICAgICAgbXV0YWJsZSBib29sIG1f
cGxhdGZvcm1SZXF1ZXN0Qm9keVVwZGF0ZWQgOiAxOwotICAgICAgICBib29sIG1fcmVwb3J0VXBs
b2FkUHJvZ3Jlc3MgOiAxOwotICAgICAgICBib29sIG1fcmVwb3J0TG9hZFRpbWluZyA6IDE7Ci0g
ICAgICAgIGJvb2wgbV9yZXBvcnRSYXdIZWFkZXJzIDogMTsKLSAgICAgICAgYm9vbCBtX2hpZGRl
bkZyb21JbnNwZWN0b3IgOiAxOwotICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9y
aXR5IDogNDsgLy8gbm90IHVuc2lnbmVkIGJlY2F1c2UgUmVzb3VyY2VMb2FkUHJpb3JpdHkgaGFz
IG5lZ2F0aXZlIHZhbHVlcworICAgICAgICB1bnNpZ25lZCBtX2FsbG93Q29va2llcyA6IDE7Cisg
ICAgICAgIG11dGFibGUgdW5zaWduZWQgbV9yZXNvdXJjZVJlcXVlc3RVcGRhdGVkIDogMTsKKyAg
ICAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQgOiAxOworICAg
ICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fcmVzb3VyY2VSZXF1ZXN0Qm9keVVwZGF0ZWQgOiAxOwor
ICAgICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fcGxhdGZvcm1SZXF1ZXN0Qm9keVVwZGF0ZWQgOiAx
OworICAgICAgICB1bnNpZ25lZCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzIDogMTsKKyAgICAgICAg
dW5zaWduZWQgbV9yZXBvcnRMb2FkVGltaW5nIDogMTsKKyAgICAgICAgdW5zaWduZWQgbV9yZXBv
cnRSYXdIZWFkZXJzIDogMTsKKyAgICAgICAgdW5zaWduZWQgbV9oaWRkZW5Gcm9tSW5zcGVjdG9y
IDogMTsKKyAgICAgICAgdW5zaWduZWQgbV9wcmlvcml0eSA6IDQ7CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIGFzUmVzb3VyY2VSZXF1ZXN0KCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVxdWVzdENGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCmluZGV4IGM2NDc1ZGZkY2FjZWVjMTI4YTExM2UwM2JkNmU3
MmVhMzdmZjUyMWMuLmI2ODU3ZTc5NTBjNzcxNDczMmJmMjFmMjIzMmEwOWMyYzlhMzViY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Q0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwCkBAIC0yNzQsMTEgKzI3NCw4IEBAIHZvaWQgUmVzb3VyY2VS
ZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpCiAgICAgfQogICAgIG1fYWxsb3dDb29r
aWVzID0gQ0ZVUkxSZXF1ZXN0U2hvdWxkSGFuZGxlSFRUUENvb2tpZXMobV9jZlJlcXVlc3QuZ2V0
KCkpOwogCi0gICAgaWYgKHJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkgewotICAgICAgICBh
dXRvIHByaW9yaXR5ID0gdG9SZXNvdXJjZUxvYWRQcmlvcml0eSh3a0dldEhUVFBSZXF1ZXN0UHJp
b3JpdHkobV9jZlJlcXVlc3QuZ2V0KCkpKTsKLSAgICAgICAgaWYgKHByaW9yaXR5ID4gUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKQotICAgICAgICAgICAgbV9wcmlvcml0eSA9IHByaW9y
aXR5OwotICAgIH0KKyAgICBpZiAocmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQorICAgICAg
ICBtX3ByaW9yaXR5ID0gdG9SZXNvdXJjZUxvYWRQcmlvcml0eSh3a0dldEhUVFBSZXF1ZXN0UHJp
b3JpdHkobV9jZlJlcXVlc3QuZ2V0KCkpKTsKIAogICAgIG1faHR0cEhlYWRlckZpZWxkcy5jbGVh
cigpOwogICAgIGlmIChDRkRpY3Rpb25hcnlSZWYgaGVhZGVycyA9IENGVVJMUmVxdWVzdENvcHlB
bGxIVFRQSGVhZGVyRmllbGRzKG1fY2ZSZXF1ZXN0LmdldCgpKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5o
CmluZGV4IGFmNWQzOGFlODNiNjBkYzg5ZDdhNjZiNDc0NGI2NzI4ZTE0NGM3OTAuLjc2OWM4ZTU5
NjQ2OTE4ZWMyNWEwOTAxYWYxNmRhY2YzYjAyYzlmMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgKQEAg
LTQ0LDggKzQ0LDYgQEAgQ0ZVUkxSZXF1ZXN0UmVmIGNmVVJMUmVxdWVzdChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKTsKIGlubGluZSBSZXNvdXJjZUxvYWRQcmlvcml0eSB0b1Jlc291cmNlTG9hZFBy
aW9yaXR5KGludCBwcmlvcml0eSkKIHsKICAgICBzd2l0Y2ggKHByaW9yaXR5KSB7Ci0gICAgY2Fz
ZSAtMToKLSAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZDsKICAg
ICBjYXNlIDA6CiAgICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3c7CiAg
ICAgY2FzZSAxOgpAQCAtNjUsOCArNjMsNiBAQCBpbmxpbmUgUmVzb3VyY2VMb2FkUHJpb3JpdHkg
dG9SZXNvdXJjZUxvYWRQcmlvcml0eShpbnQgcHJpb3JpdHkpCiBpbmxpbmUgaW50IHRvUGxhdGZv
cm1SZXF1ZXN0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiB7CiAgICAg
c3dpdGNoIChwcmlvcml0eSkgewotICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29s
dmVkOgotICAgICAgICByZXR1cm4gLTE7CiAgICAgY2FzZSBSZXNvdXJjZUxvYWRQcmlvcml0eVZl
cnlMb3c6CiAgICAgICAgIHJldHVybiAwOwogICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHlM
b3c6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jl
c291cmNlUmVxdWVzdENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQppbmRleCAwYTYwOWZjMjc1MDU5ZGQ1MjhmY2Qx
ODgyNGQ3NTkwOTgyOWY3YThmLi5kNzc3YTAzMWI3NTk5NDUwNTg2NmFkYWJkMDU3MzRlN2M5MGQ2
YTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jl
c291cmNlUmVxdWVzdENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KQEAgLTc4LDExICs3OCw4IEBAIHZvaWQg
UmVzb3VyY2VSZXF1ZXN0Ojpkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpCiAgICAgICAgIG1faHR0
cE1ldGhvZCA9IG1ldGhvZDsKICAgICBtX2FsbG93Q29va2llcyA9IFttX25zUmVxdWVzdC5nZXQo
KSBIVFRQU2hvdWxkSGFuZGxlQ29va2llc107CiAKLSAgICBpZiAocmVzb3VyY2VQcmlvcml0aWVz
RW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8gcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9y
aXR5KHdrR2V0SFRUUFJlcXVlc3RQcmlvcml0eShbbV9uc1JlcXVlc3QuZ2V0KCkgX0NGVVJMUmVx
dWVzdF0pKTsKLSAgICAgICAgaWYgKHByaW9yaXR5ID4gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJl
c29sdmVkKQotICAgICAgICAgICAgbV9wcmlvcml0eSA9IHByaW9yaXR5OwotICAgIH0KKyAgICBp
ZiAocmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQorICAgICAgICBtX3ByaW9yaXR5ID0gdG9S
ZXNvdXJjZUxvYWRQcmlvcml0eSh3a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkoW21fbnNSZXF1ZXN0
LmdldCgpIF9DRlVSTFJlcXVlc3RdKSk7CiAKICAgICBtX2h0dHBIZWFkZXJGaWVsZHMuY2xlYXIo
KTsKICAgICBbW21fbnNSZXF1ZXN0IGFsbEhUVFBIZWFkZXJGaWVsZHNdIGVudW1lcmF0ZUtleXNB
bmRPYmplY3RzVXNpbmdCbG9jazogXihOU1N0cmluZyAqbmFtZSwgTlNTdHJpbmcgKnZhbHVlLCBC
T09MICopIHsKQEAgLTE0NSw3ICsxNDIsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRh
dGVQbGF0Zm9ybVJlcXVlc3QoKQogICAgICAgICB3a0hUVFBSZXF1ZXN0RW5hYmxlUGlwZWxpbmlu
ZyhbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdKTsKIAogICAgIGlmIChSZXNvdXJjZVJlcXVlc3Q6
OnJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKLSAgICAgICAgd2tTZXRIVFRQUmVxdWVzdFBy
aW9yaXR5KFtuc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0sIHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3Jp
dHkobV9wcmlvcml0eSkpOworICAgICAgICB3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkoW25zUmVx
dWVzdCBfQ0ZVUkxSZXF1ZXN0XSwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShwcmlvcml0eSgp
KSk7CiAKICAgICBbbnNSZXF1ZXN0IHNldENhY2hlUG9saWN5OihOU1VSTFJlcXVlc3RDYWNoZVBv
bGljeSljYWNoZVBvbGljeSgpXTsKICAgICB3a0NGVVJMUmVxdWVzdEFsbG93QWxsUG9zdENhY2hp
bmcoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKaW5kZXggNDRjODM0NWNm
ZDRiNTAwYzFkNzcwOTE5OTQwODU0YjVkZTgyYWQxNi4uM2ZhMDkzNGVmYjQxZTk1ZTIwZjE0MDFk
YmI1MzA3YTVmZGJjNjRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMTMyLDggKzEzMiw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGlubGluZSBTb3VwTWVzc2FnZVByaW9yaXR5IHRvU291cE1lc3NhZ2VQ
cmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKIHsKICAgICBzd2l0Y2ggKHBy
aW9yaXR5KSB7Ci0gICAgY2FzZSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQ6Ci0gICAg
ICAgIHJldHVybiBTT1VQX01FU1NBR0VfUFJJT1JJVFlfTk9STUFMOwogICAgIGNhc2UgUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlWZXJ5TG93OgogICAgICAgICByZXR1cm4gU09VUF9NRVNTQUdFX1BSSU9S
SVRZX1ZFUllfTE9XOwogICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3c6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3Bw
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcApp
bmRleCA3ZTRlNmM0OGMwZTQ5NDExOTZkZWZhZmQ4ZTM3N2QxMDllNjI2YmI3Li44MWYyNGE0ZTM3
NmJjYjdmYjYwMDJmMzUwYTMyOGY2ZmE4M2U5MjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAKQEAgLTIxOCw3ICsyMTgs
NyBAQCB2b2lkIE5ldHdvcmtDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIHN0ZAogewogICAgIEFTU0VSVChpc0VuYWJsZWQoKSk7
CiAKLSAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSByZXRyaWV2aW5nICVz
IHByaW9yaXR5ICVkIiwgb3JpZ2luYWxSZXF1ZXN0LnVybCgpLnN0cmluZygpLmFzY2lpKCkuZGF0
YSgpLCBvcmlnaW5hbFJlcXVlc3QucHJpb3JpdHkoKSk7CisgICAgTE9HKE5ldHdvcmtDYWNoZSwg
IihOZXR3b3JrUHJvY2VzcykgcmV0cmlldmluZyAlcyBwcmlvcml0eSAldSIsIG9yaWdpbmFsUmVx
dWVzdC51cmwoKS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSwgb3JpZ2luYWxSZXF1ZXN0LnByaW9y
aXR5KCkpOwogCiAgICAgaWYgKCFjYW5SZXRyaWV2ZShvcmlnaW5hbFJlcXVlc3QpKSB7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIHZvaWQg
TmV0d29ya0NhY2hlOjpyZXRyaWV2ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9y
aWdpbmFsUmVxdWVzdCwgc3RkCiAjaWYgIUxPR19ESVNBQkxFRAogICAgICAgICBhdXRvIGVsYXBz
ZWRNUyA9IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHM+KHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnRUaW1lKS5jb3VudCgp
OwogI2VuZGlmCi0gICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIHJl
dHJpZXZlIGNvbXBsZXRlIHN1Y2Nlc3M9JWQgcHJpb3JpdHk9JWQgdGltZT0lbGxkbXMiLCBzdWNj
ZXNzLCBjYXB0dXJlLT5vcmlnaW5hbFJlcXVlc3QucHJpb3JpdHkoKSwgZWxhcHNlZE1TKTsKKyAg
ICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgcmV0cmlldmUgY29tcGxl
dGUgc3VjY2Vzcz0lZCBwcmlvcml0eT0ldSB0aW1lPSVsbGRtcyIsIHN1Y2Nlc3MsIGNhcHR1cmUt
Pm9yaWdpbmFsUmVxdWVzdC5wcmlvcml0eSgpLCBlbGFwc2VkTVMpOwogICAgICAgICBjYXB0dXJl
LT5jb21wbGV0aW9uSGFuZGxlcihXVEY6Om1vdmUoZGVjb2RlZEVudHJ5KSk7CiAgICAgICAgIHJl
dHVybiBzdWNjZXNzOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCA4
MDI0NWZiNmJmZTBmYWVmZmI1OGYzZjk3MzYxZjdhMjlmOWU1MTgyLi45MjUyNzllMzA5NjEzOWE2
NjhhZDk5MTMwMGJhNGNkMWEwODMxNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApA
QCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVs
ZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBDYWNoCiAgICAgfQogI2VuZGlm
CiAKLSAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgc2NoZWR1bGVkIHdp
dGggdGhlIE5ldHdvcmtQcm9jZXNzIHdpdGggcHJpb3JpdHkgJWkiLCByZXNvdXJjZUxvYWRlci0+
dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVzb3VyY2VMb2FkZXItPnJlcXVlc3QoKS5w
cmlvcml0eSgpKTsKKyAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgc2No
ZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIHdpdGggcHJpb3JpdHkgJXUiLCByZXNvdXJj
ZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVzb3VyY2VMb2FkZXItPnJl
cXVlc3QoKS5wcmlvcml0eSgpKTsKIAogICAgIENvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50
U25pZmZpbmdQb2xpY3kgPSByZXNvdXJjZUxvYWRlci0+c2hvdWxkU25pZmZDb250ZW50KCkgPyBT
bmlmZkNvbnRlbnQgOiBEb05vdFNuaWZmQ29udGVudDsKICAgICBTdG9yZWRDcmVkZW50aWFscyBh
bGxvd1N0b3JlZENyZWRlbnRpYWxzID0gcmVzb3VyY2VMb2FkZXItPnNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlKCkgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENy
ZWRlbnRpYWxzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245978</attachid>
            <date>2015-02-03 15:38:46 -0800</date>
            <delta_ts>2015-02-03 15:39:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141186-20150203153845.patch</filename>
            <type>text/plain</type>
            <size>22074</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ1ZGQ4MjE3ZjE1YTQ1
NGZlYmJiNzc1NTMyZTkyOWJlNTc1OTgzZS4uM2YzNGJlZmI4YzM2MmFjODFiM2NhZjM4YThmOWE3
MTAzZDdlMmNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTAyLTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZXNvdXJjZUxvYWRQ
cmlvcml0eVVucmVzb2x2ZWQgcmVzb3VyY2UgbG9hZCBwcmlvcml0eSBhbmQgdXNlIE9wdGlvbmFs
PD4gaW5zdGVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQxMTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAg
ICAgRHJvcCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgcmVzb3VyY2UgbG9hZCBwcmlv
cml0eSB2YWx1ZSBhbmQgdXNlCisgICAgICAgIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5
PiB3aGVuIG5lZWRlZCBpbnN0ZWFkLiBJZiB0aGUgT3B0aW9uYWwKKyAgICAgICAgZG9lc24ndCBo
YXZlIGEgdmFsdWUsIHRoZW4gaXQgbWVhbnMgaXQgaXMgdW5yZXNvbHZlZC4gSGF2aW5nCisgICAg
ICAgIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCBpbiBSZXNvdXJjZUxvYWRQcmlvcml0
eSB3YXMgY29uZnVzaW5nCisgICAgICAgIGJlY2F1c2UgdGhpcyB2YWx1ZSBpcyBvbmx5IHZhbGlk
IGluIENhY2hlZFJlc291cmNlUmVxdWVzdCwgaXQgaXMgbm90CisgICAgICAgIGEgdmFsaWQgdmFs
dWUgaW4gQ2FjaGVkUmVzb3VyY2Ugb3IgaW4gUmVzb3VyY2VSZXF1ZXN0LiBBZnRlciB0aGlzCisg
ICAgICAgIHJlZmFjdG9yaW5nLCBpdCBub3cgYmVjb21lcyBtb3JlIG9idmlvdXMuCisKIDIwMTUt
MDItMDMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU21hcnQg
cXVvdGluZyBjb3VsZCBtb3ZlIHRoZSBjYXJldCBiYWNrd2FyZHMgaW4gc29tZSBjb25maWd1cmF0
aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDk2N2I2MTkyZTRiNWNjMThkMDlhMWExNWUxYTFlOTgxNzkzMjNi
YWYuLjY2ZjZhMzZmYzBjMDc4YjAwOWY3YTY2YThmNmEwYzY0NzE4NDMzNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAxNS0wMi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIERyb3AgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIHJlc291
cmNlIGxvYWQgcHJpb3JpdHkgYW5kIHVzZSBPcHRpb25hbDw+IGluc3RlYWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTE4NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIG5vdyB0aGF0
IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCBpcyBub3QgbG9uZ2VyIGEKKyAgICAgICAg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgZW51bSB2YWx1ZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6cmV0cmlldmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXI6OnNjaGVkdWxlTG9hZCk6CisKIDIwMTUtMDItMDMgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNz
Lndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIENvbnZlcnQgV2ViSW5zcGVjdG9yUHJveHkgdG8g
dXNlIFdLV2ViVmlldyBBUEkgZm9yIHRoZSBpbnNwZWN0b3IgdmlldwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDAwOTFhNzFmYWNhYzQwMjVjZTA3MTVhMGEwZWM3
MzFhMmQ4N2E3ZDYuLjBhZDEzNzhkZTQ5NzFiNWE5ZmFjZmQ5Mjk3NzhlZmIxNWQwMzM1ZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTIyOSw3ICsyMjksOSBA
QCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAgICAgICAgIGFkZFBlbmRpbmdTaGVl
dChpc0FjdGl2ZSA/IEFjdGl2ZVNoZWV0IDogSW5hY3RpdmVTaGVldCk7CiAKICAgICAgICAgLy8g
TG9hZCBzdHlsZXNoZWV0cyB0aGF0IGFyZSBub3QgbmVlZGVkIGZvciB0aGUgcmVuZGVyaW5nIGlt
bWVkaWF0ZWx5IHdpdGggbG93IHByaW9yaXR5LgotICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0
eSBwcmlvcml0eSA9IGlzQWN0aXZlID8gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIDog
UmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OworICAgICAgICBPcHRpb25hbDxSZXNvdXJjZUxv
YWRQcmlvcml0eT4gcHJpb3JpdHk7CisgICAgICAgIGlmICghaXNBY3RpdmUpCisgICAgICAgICAg
ICBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKICAgICAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCkuY29tcGxl
dGVVUkwodXJsKSksIGNoYXJzZXQsIHByaW9yaXR5KTsKICAgICAgICAgcmVxdWVzdC5zZXRJbml0
aWF0b3IodGhpcyk7CiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLmNhY2hlZFJl
c291cmNlTG9hZGVyKCkucmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggMmZmYWY2MGI1ZDlmYzkzNzM1MzQ3NzJlMmU4MGIy
YTUxODg3N2M0OS4uYzZkMDJmNDIyYzI3ZjJiMmE0NGNhZTU3YWZiOWVmYWVhOGU2OWZjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wg
TGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRl
LCBjb25zdCBTdHJpbmcmIHR5CiAgICAgaWYgKChyZWxBdHRyaWJ1dGUubV9pc0xpbmtQcmVmZXRj
aCB8fCByZWxBdHRyaWJ1dGUubV9pc0xpbmtTdWJyZXNvdXJjZSkgJiYgaHJlZi5pc1ZhbGlkKCkg
JiYgZG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgaWYgKCFtX2NsaWVudC0+c2hvdWxkTG9h
ZExpbmsoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgUmVzb3VyY2VMb2Fk
UHJpb3JpdHkgcHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQ7CisgICAg
ICAgIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiBwcmlvcml0eTsKICAgICAgICAgQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSA9IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g7CiAg
ICAgICAgIC8vIFdlIG9ubHkgbWFrZSBvbmUgcmVxdWVzdCB0byB0aGUgY2FjaGVkcmVzb3VyY2Vs
b2RhZXIgaWYgbXVsdGlwbGUgcmVsIHR5cGVzIGFyZQogICAgICAgICAvLyBzcGVjaWZpZWQsIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRl
eCA1MWFlYjg0NjgwNDhkNDNkYjYxZDJhYjhhNDI2MjQwY2RhYjg5MjNjLi5iM2VhZmU4ZmZiOWJi
NTM4NDEwMTZlMzg4ZmE4NTlmYzFmN2M1YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMTYzLDcgKzE2Myw2IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNl
TG9hZGVyKQogI2VuZGlmCiAKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSA9IHJl
c291cmNlTG9hZGVyLT5yZXF1ZXN0KCkucHJpb3JpdHkoKTsKLSAgICBBU1NFUlQocHJpb3JpdHkg
IT0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKTsKIAogICAgIGJvb2wgaGFkUmVxdWVz
dHMgPSBob3N0LT5oYXNSZXF1ZXN0cygpOwogICAgIGhvc3QtPnNjaGVkdWxlKHJlc291cmNlTG9h
ZGVyLCBwcmlvcml0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmNwcAppbmRleCA5NzFkODY0OTQ1OTlkOTBkNmE5OTI4OTdmZTYzNjZlMWFlMDhjYzE5
Li42NTk1NWUwOWUyMWQ1ZmRlODQ1ZTY5ODg3NTUwNjU4YWU5YzUyY2FmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTczNiwxMSArNzM2
LDEyIEBAIHVuc2lnbmVkIENhY2hlZFJlc291cmNlOjpvdmVyaGVhZFNpemUoKSBjb25zdAogICAg
IHJldHVybiBzaXplb2YoQ2FjaGVkUmVzb3VyY2UpICsgbV9yZXNwb25zZS5tZW1vcnlVc2FnZSgp
ICsga0F2ZXJhZ2VDbGllbnRzSGFzaE1hcFNpemUgKyBtX3Jlc291cmNlUmVxdWVzdC51cmwoKS5z
dHJpbmcoKS5sZW5ndGgoKSAqIDI7CiB9CiAKLXZvaWQgQ2FjaGVkUmVzb3VyY2U6OnNldExvYWRQ
cmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBsb2FkUHJpb3JpdHkpCit2b2lkIENhY2hlZFJl
c291cmNlOjpzZXRMb2FkUHJpb3JpdHkoY29uc3QgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3Jp
dHk+JiBsb2FkUHJpb3JpdHkpCiB7Ci0gICAgaWYgKGxvYWRQcmlvcml0eSA9PSBSZXNvdXJjZUxv
YWRQcmlvcml0eVVucmVzb2x2ZWQpCi0gICAgICAgIGxvYWRQcmlvcml0eSA9IGRlZmF1bHRQcmlv
cml0eUZvclJlc291cmNlVHlwZSh0eXBlKCkpOwotICAgIG1fbG9hZFByaW9yaXR5ID0gbG9hZFBy
aW9yaXR5OworICAgIGlmIChsb2FkUHJpb3JpdHkpCisgICAgICAgIG1fbG9hZFByaW9yaXR5ID0g
bG9hZFByaW9yaXR5LnZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICBtX2xvYWRQcmlvcml0eSA9
IGRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0eXBlKCkpOwogfQogCiBpbmxpbmUgQ2Fj
aGVkUmVzb3VyY2U6OkNhbGxiYWNrOjpDYWxsYmFjayhDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2Us
IENhY2hlZFJlc291cmNlQ2xpZW50JiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGU3ODRkMWY2MWY5NmY0ZWM5YWU3MDYxOTZlNzY5
MDQxMDcwNGQyMWEuLjY2ZDI5Y2M3NDA5YmMyOGIzY2JlMzVlM2EzMGUxODA1ODI0OTE5NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0xMTcs
NyArMTE3LDcgQEAgcHVibGljOgogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PFR5cGU+KG1fdHlwZSk7IH0KICAgICAKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBs
b2FkUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX2xvYWRQcmlvcml0eTsgfQotICAgIHZvaWQg
c2V0TG9hZFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5KTsKKyAgICB2b2lkIHNldExvYWRQ
cmlvcml0eShjb25zdCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4mKTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgYWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50Kik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDEwNjU5ZmRhOTI2OTg1MmQxMjhjZDY4MWMzOWFmNDgyOTc4OTlkNDEuLmU2
OTg5ZDU0NTUwNGJlYTQ2ZjEyMWVhNGNjODg5MDhkNWZiYWI0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNDUy
LDcgKzQ1Miw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiB7CiAgICAgVVJMIHVybCA9IHJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCk7CiAgICAgCi0gICAgTE9HKFJlc291cmNlTG9h
ZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyVzJywgY2hhcnNl
dCAnJXMnLCBwcmlvcml0eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVybC5zdHJpbmdDZW50ZXJFbGxp
cHNpemVkVG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QuY2hhcnNldCgpLmxhdGlu
MSgpLmRhdGEoKSwgcmVxdWVzdC5wcmlvcml0eSgpLCByZXF1ZXN0LmZvclByZWxvYWQoKSk7Cisg
ICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVz
b3VyY2UgJyVzJywgY2hhcnNldCAnJXMnLCBwcmlvcml0eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVy
bC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVl
c3QuY2hhcnNldCgpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5wcmlvcml0eSgpID8gcmVxdWVz
dC5wcmlvcml0eSgpLnZhbHVlKCkgOiAtMSwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpOwogICAgIAog
ICAgIC8vIElmIG9ubHkgdGhlIGZyYWdtZW50IGlkZW50aWZpZXJzIGRpZmZlciwgaXQgaXMgdGhl
IHNhbWUgcmVzb3VyY2UuCiAgICAgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRl
bnRpZmllcklmTmVlZGVkKHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IDM4OWU1MzExMjViNjVlNzhiZGZl
YmIwYmJmNjBkMWY0MGI5MGIzZmUuLjUzYTUzZTVmZjQ4NmM5YTVkZmJjYmYxYWYyNjJkNmNmODJj
Y2FmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4g
cHJpb3JpdHkpCiAgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCiAgICAg
LCBtX2NoYXJzZXQoY2hhcnNldCkKICAgICAsIG1fb3B0aW9ucyhDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQpAQCAtNDUsMTMgKzQ1LDEyIEBAIENh
Y2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVzb3VyY2VSZXF1CiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291
cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3Qg
UmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3Qo
cmVzb3VyY2VSZXF1ZXN0KQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCi0gICAgLCBtX3ByaW9y
aXR5KFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCkKICAgICAsIG1fZm9yUHJlbG9hZChm
YWxzZSkKICAgICAsIG1fZGVmZXIoTm9EZWZlcikKIHsKIH0KIAotQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJj
ZVJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQorQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QsIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiBwcmlvcml0eSkKICAg
ICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKICAgICAsIG1fb3B0aW9ucyhD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQogICAg
ICwgbV9wcmlvcml0eShwcmlvcml0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAppbmRleCBlMDExZDM4NGM2YTFiMDNhZmYyNWQz
NGFiOTFkM2FjMGRiZTZjODlhLi5iOTU4NTk1NDk3Yzc0ZTQ0OWYzNWUxZjlkOWQ5YjkxZDZkOWE5
NTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5oCkBAIC00MCw5ICs0MCw5IEBAIGNsYXNzIENhY2hlZFJlc291cmNlUmVxdWVz
dCB7CiBwdWJsaWM6CiAgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVkQnlD
bGllbnQgfTsKIAotICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQgPSBTdHJpbmcoKSwgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOworICAgIGV4cGxp
Y2l0IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIGNoYXJzZXQgPSBTdHJpbmcoKSwgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+
ID0gTnVsbG9wdCk7CiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwotICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlvcml0eSk7Cisg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE9wdGlvbmFs
PFJlc291cmNlTG9hZFByaW9yaXR5Pik7CiAgICAgfkNhY2hlZFJlc291cmNlUmVxdWVzdCgpOwog
CiAgICAgUmVzb3VyY2VSZXF1ZXN0JiBtdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkgeyByZXR1cm4g
bV9yZXNvdXJjZVJlcXVlc3Q7IH0KQEAgLTUxLDggKzUxLDggQEAgcHVibGljOgogICAgIHZvaWQg
c2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQpIHsgbV9jaGFyc2V0ID0gY2hhcnNldDsg
fQogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9uczsgfQogICAgIHZvaWQgc2V0T3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRpb25zID0gb3B0aW9uczsgfQotICAgIHZvaWQgc2V0
UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpIHsgbV9wcmlvcml0eSA9IHBy
aW9yaXR5OyB9Ci0gICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkoKSBjb25zdCB7IHJl
dHVybiBtX3ByaW9yaXR5OyB9CisgICAgdm9pZCBzZXRQcmlvcml0eShPcHRpb25hbDxSZXNvdXJj
ZUxvYWRQcmlvcml0eT4gcHJpb3JpdHkpIHsgbV9wcmlvcml0eSA9IFdURjo6bW92ZShwcmlvcml0
eSk7IH0KKyAgICBjb25zdCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4mIHByaW9yaXR5
KCkgY29uc3QgeyByZXR1cm4gbV9wcmlvcml0eTsgfQogICAgIGJvb2wgZm9yUHJlbG9hZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9yUHJlbG9hZDsgfQogICAgIHZvaWQgc2V0Rm9yUHJlbG9hZChib29s
IGZvclByZWxvYWQpIHsgbV9mb3JQcmVsb2FkID0gZm9yUHJlbG9hZDsgfQogICAgIERlZmVyT3B0
aW9uIGRlZmVyKCkgY29uc3QgeyByZXR1cm4gbV9kZWZlcjsgfQpAQCAtNjUsNyArNjUsNyBAQCBw
cml2YXRlOgogICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291cmNlUmVxdWVzdDsKICAgICBTdHJp
bmcgbV9jaGFyc2V0OwogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBtX29wdGlvbnM7Ci0gICAg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlvcml0eTsKKyAgICBPcHRpb25hbDxSZXNvdXJjZUxv
YWRQcmlvcml0eT4gbV9wcmlvcml0eTsKICAgICBib29sIG1fZm9yUHJlbG9hZDsKICAgICBEZWZl
ck9wdGlvbiBtX2RlZmVyOwogICAgIFJlZlB0cjxFbGVtZW50PiBtX2luaXRpYXRvckVsZW1lbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9h
ZFByaW9yaXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlTG9h
ZFByaW9yaXR5LmgKaW5kZXggNWE3MTA0Zjk3YjEyOTI4ZjAxYzMxZGUwN2M2YzNlMTIzNWFmNzFh
ZS4uNmQxZGM1YjY0NTFkYzhmZjg3ZjVhNDY3ZDNmYWNkNjg2OTdjM2JhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRQcmlvcml0eS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkUHJpb3JpdHku
aApAQCAtMjksOSArMjksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIFJlc291cmNl
TG9hZFByaW9yaXR5IHsKLSAgICAvLyBUaGUgdW5yZXNvbHZlZCBwcmlvcml0eSBpcyBoZXJlIGZv
ciB0aGUgY29udmVuaWVuY2Ugb2YgdGhlIGNsaWVudHMuIEl0IHNob3VsZCBub3QgYmUgcGFzc2Vk
IHRvIHRoZSBSZXNvdXJjZUxvYWRTY2hlZHVsZXIuCi0gICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlV
bnJlc29sdmVkID0gLTEsCi0gICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93ID0gMCwKKyAg
ICBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3csCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlM
b3csCiAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlNZWRpdW0sCiAgICAgUmVzb3VyY2VMb2FkUHJp
b3JpdHlIaWdoLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMDlkOGZiMTIwY2Y1Yjc2NGQ1NzFiMDE1ZmUy
YjQ3OTkyYTk3MjM3ZS4uOTRkY2NiOWM2YTRmMWEzZDg2YzMxNGMzZGY3ODQzOTI5YmFiNjEwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVxdWVzdEJhc2UuY3BwCkBAIC00MzcsNyArNDM3LDcgQEAgUmVzb3VyY2VMb2FkUHJpb3JpdHkg
UmVzb3VyY2VSZXF1ZXN0QmFzZTo6cHJpb3JpdHkoKSBjb25zdAogewogICAgIHVwZGF0ZVJlc291
cmNlUmVxdWVzdCgpOwogCi0gICAgcmV0dXJuIG1fcHJpb3JpdHk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFJlc291cmNlTG9hZFByaW9yaXR5PihtX3ByaW9yaXR5KTsKIH0KIAogdm9pZCBSZXNv
dXJjZVJlcXVlc3RCYXNlOjpzZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0
eSkKQEAgLTQ0OCw2ICs0NDgsNyBAQCB2b2lkIFJlc291cmNlUmVxdWVzdEJhc2U6OnNldFByaW9y
aXR5KFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3ByaW9yaXR5ID0gcHJpb3JpdHk7CisgICAgQVNTRVJUKHN0YXRpY19jYXN0PFJlc291cmNl
TG9hZFByaW9yaXR5PihtX3ByaW9yaXR5KSA9PSBwcmlvcml0eSk7IC8vIE1ha2Ugc3VyZSBpdCBm
aXRzIGluIHRoZSBiaXRmaWVsZC4KIAogICAgIGlmICh1cmwoKS5wcm90b2NvbElzSW5IVFRQRmFt
aWx5KCkpCiAgICAgICAgIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCA9IGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2Uu
aAppbmRleCA5YjVlNzk3MDcxOGIwNDRkOWMzNGYyMmM3YmQ4ZWUwNTU4ZTY2MDZmLi4zOTIwZDJi
OWIwYjU3Y2Q3ZTgxZDcxMWVlNjAzM2YzNDQ4OGZhM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtMjE0LDE2
ICsyMTQsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBWZWN0b3I8U3RyaW5nPiBt
X3Jlc3BvbnNlQ29udGVudERpc3Bvc2l0aW9uRW5jb2RpbmdGYWxsYmFja0FycmF5OwogICAgICAg
ICBSZWZQdHI8Rm9ybURhdGE+IG1faHR0cEJvZHk7CiAgICAgICAgIHVuc2lnbmVkIG1fY2FjaGVQ
b2xpY3kgOiAzOwotICAgICAgICBib29sIG1fYWxsb3dDb29raWVzIDogMTsKLSAgICAgICAgbXV0
YWJsZSBib29sIG1fcmVzb3VyY2VSZXF1ZXN0VXBkYXRlZCA6IDE7Ci0gICAgICAgIG11dGFibGUg
Ym9vbCBtX3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQgOiAxOwotICAgICAgICBtdXRhYmxlIGJvb2wg
bV9yZXNvdXJjZVJlcXVlc3RCb2R5VXBkYXRlZCA6IDE7Ci0gICAgICAgIG11dGFibGUgYm9vbCBt
X3BsYXRmb3JtUmVxdWVzdEJvZHlVcGRhdGVkIDogMTsKLSAgICAgICAgYm9vbCBtX3JlcG9ydFVw
bG9hZFByb2dyZXNzIDogMTsKLSAgICAgICAgYm9vbCBtX3JlcG9ydExvYWRUaW1pbmcgOiAxOwot
ICAgICAgICBib29sIG1fcmVwb3J0UmF3SGVhZGVycyA6IDE7Ci0gICAgICAgIGJvb2wgbV9oaWRk
ZW5Gcm9tSW5zcGVjdG9yIDogMTsKLSAgICAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlv
cml0eSA6IDQ7IC8vIG5vdCB1bnNpZ25lZCBiZWNhdXNlIFJlc291cmNlTG9hZFByaW9yaXR5IGhh
cyBuZWdhdGl2ZSB2YWx1ZXMKKyAgICAgICAgdW5zaWduZWQgbV9hbGxvd0Nvb2tpZXMgOiAxOwor
ICAgICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fcmVzb3VyY2VSZXF1ZXN0VXBkYXRlZCA6IDE7Cisg
ICAgICAgIG11dGFibGUgdW5zaWduZWQgbV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkIDogMTsKKyAg
ICAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX3Jlc291cmNlUmVxdWVzdEJvZHlVcGRhdGVkIDogMTsK
KyAgICAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX3BsYXRmb3JtUmVxdWVzdEJvZHlVcGRhdGVkIDog
MTsKKyAgICAgICAgdW5zaWduZWQgbV9yZXBvcnRVcGxvYWRQcm9ncmVzcyA6IDE7CisgICAgICAg
IHVuc2lnbmVkIG1fcmVwb3J0TG9hZFRpbWluZyA6IDE7CisgICAgICAgIHVuc2lnbmVkIG1fcmVw
b3J0UmF3SGVhZGVycyA6IDE7CisgICAgICAgIHVuc2lnbmVkIG1faGlkZGVuRnJvbUluc3BlY3Rv
ciA6IDE7CisgICAgICAgIHVuc2lnbmVkIG1fcHJpb3JpdHkgOiA0OwogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBhc1Jlc291cmNlUmVxdWVzdCgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZVJlcXVlc3RDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlUmVxdWVzdENGTmV0LmNwcAppbmRleCBjNjQ3NWRmZGNhY2VlYzEyOGExMTNlMDNiZDZl
NzJlYTM3ZmY1MjFjLi5mNmYyYmMwZjBjYmIzMzUxZWFlMDU2NmFlZGUyZjQ3MmJmN2IyMjNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVx
dWVzdENGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlUmVxdWVzdENGTmV0LmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgUmVzb3VyY2VS
ZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpCiAgICAgICAgIHdrSFRUUFJlcXVlc3RF
bmFibGVQaXBlbGluaW5nKGNmUmVxdWVzdCk7CiAKICAgICBpZiAocmVzb3VyY2VQcmlvcml0aWVz
RW5hYmxlZCgpKQotICAgICAgICB3a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkoY2ZSZXF1ZXN0LCB0
b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KG1fcHJpb3JpdHkpKTsKKyAgICAgICAgd2tTZXRIVFRQ
UmVxdWVzdFByaW9yaXR5KGNmUmVxdWVzdCwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShwcmlv
cml0eSgpKSk7CiAKICNpZiAhUExBVEZPUk0oV0lOKQogICAgIHdrQ0ZVUkxSZXF1ZXN0QWxsb3dB
bGxQb3N0Q2FjaGluZyhjZlJlcXVlc3QpOwpAQCAtMjc0LDExICsyNzQsOCBAQCB2b2lkIFJlc291
cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogICAgIH0KICAgICBtX2FsbG93
Q29va2llcyA9IENGVVJMUmVxdWVzdFNob3VsZEhhbmRsZUhUVFBDb29raWVzKG1fY2ZSZXF1ZXN0
LmdldCgpKTsKIAotICAgIGlmIChyZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCkpIHsKLSAgICAg
ICAgYXV0byBwcmlvcml0eSA9IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkod2tHZXRIVFRQUmVxdWVz
dFByaW9yaXR5KG1fY2ZSZXF1ZXN0LmdldCgpKSk7Ci0gICAgICAgIGlmIChwcmlvcml0eSA+IFJl
c291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCkKLSAgICAgICAgICAgIG1fcHJpb3JpdHkgPSBw
cmlvcml0eTsKLSAgICB9CisgICAgaWYgKHJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKKyAg
ICAgICAgbV9wcmlvcml0eSA9IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkod2tHZXRIVFRQUmVxdWVz
dFByaW9yaXR5KG1fY2ZSZXF1ZXN0LmdldCgpKSk7CiAKICAgICBtX2h0dHBIZWFkZXJGaWVsZHMu
Y2xlYXIoKTsKICAgICBpZiAoQ0ZEaWN0aW9uYXJ5UmVmIGhlYWRlcnMgPSBDRlVSTFJlcXVlc3RD
b3B5QWxsSFRUUEhlYWRlckZpZWxkcyhtX2NmUmVxdWVzdC5nZXQoKSkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZO
ZXQuaAppbmRleCBhZjVkMzhhZTgzYjYwZGM4OWQ3YTY2YjQ3NDRiNjcyOGUxNDRjNzkwLi43Njlj
OGU1OTY0NjkxOGVjMjVhMDkwMWFmMTZkYWNmM2IwMmM5ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5o
CkBAIC00NCw4ICs0NCw2IEBAIENGVVJMUmVxdWVzdFJlZiBjZlVSTFJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0Jik7CiBpbmxpbmUgUmVzb3VyY2VMb2FkUHJpb3JpdHkgdG9SZXNvdXJjZUxv
YWRQcmlvcml0eShpbnQgcHJpb3JpdHkpCiB7CiAgICAgc3dpdGNoIChwcmlvcml0eSkgewotICAg
IGNhc2UgLTE6Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQ7
CiAgICAgY2FzZSAwOgogICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93
OwogICAgIGNhc2UgMToKQEAgLTY1LDggKzYzLDYgQEAgaW5saW5lIFJlc291cmNlTG9hZFByaW9y
aXR5IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkoaW50IHByaW9yaXR5KQogaW5saW5lIGludCB0b1Bs
YXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQogewog
ICAgIHN3aXRjaCAocHJpb3JpdHkpIHsKLSAgICBjYXNlIFJlc291cmNlTG9hZFByaW9yaXR5VW5y
ZXNvbHZlZDoKLSAgICAgICAgcmV0dXJuIC0xOwogICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3Jp
dHlWZXJ5TG93OgogICAgICAgICByZXR1cm4gMDsKICAgICBjYXNlIFJlc291cmNlTG9hZFByaW9y
aXR5TG93OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KaW5kZXggMGE2MDlmYzI3NTA1OWRkNTI4
ZmNkMTg4MjRkNzU5MDk4MjlmN2E4Zi4uZDc3N2EwMzFiNzU5OTQ1MDU4NjZhZGFiZDA1NzM0ZTdj
OTBkNmEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCkBAIC03OCwxMSArNzgsOCBAQCB2
b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVSZXNvdXJjZVJlcXVlc3QoKQogICAgICAgICBt
X2h0dHBNZXRob2QgPSBtZXRob2Q7CiAgICAgbV9hbGxvd0Nvb2tpZXMgPSBbbV9uc1JlcXVlc3Qu
Z2V0KCkgSFRUUFNob3VsZEhhbmRsZUNvb2tpZXNdOwogCi0gICAgaWYgKHJlc291cmNlUHJpb3Jp
dGllc0VuYWJsZWQoKSkgewotICAgICAgICBhdXRvIHByaW9yaXR5ID0gdG9SZXNvdXJjZUxvYWRQ
cmlvcml0eSh3a0dldEhUVFBSZXF1ZXN0UHJpb3JpdHkoW21fbnNSZXF1ZXN0LmdldCgpIF9DRlVS
TFJlcXVlc3RdKSk7Ci0gICAgICAgIGlmIChwcmlvcml0eSA+IFJlc291cmNlTG9hZFByaW9yaXR5
VW5yZXNvbHZlZCkKLSAgICAgICAgICAgIG1fcHJpb3JpdHkgPSBwcmlvcml0eTsKLSAgICB9Cisg
ICAgaWYgKHJlc291cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKKyAgICAgICAgbV9wcmlvcml0eSA9
IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkod2tHZXRIVFRQUmVxdWVzdFByaW9yaXR5KFttX25zUmVx
dWVzdC5nZXQoKSBfQ0ZVUkxSZXF1ZXN0XSkpOwogCiAgICAgbV9odHRwSGVhZGVyRmllbGRzLmNs
ZWFyKCk7CiAgICAgW1ttX25zUmVxdWVzdCBhbGxIVFRQSGVhZGVyRmllbGRzXSBlbnVtZXJhdGVL
ZXlzQW5kT2JqZWN0c1VzaW5nQmxvY2s6IF4oTlNTdHJpbmcgKm5hbWUsIE5TU3RyaW5nICp2YWx1
ZSwgQk9PTCAqKSB7CkBAIC0xNDUsNyArMTQyLDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRv
VXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkKICAgICAgICAgd2tIVFRQUmVxdWVzdEVuYWJsZVBpcGVs
aW5pbmcoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSk7CiAKICAgICBpZiAoUmVzb3VyY2VSZXF1
ZXN0OjpyZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCkpCi0gICAgICAgIHdrU2V0SFRUUFJlcXVl
c3RQcmlvcml0eShbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCB0b1BsYXRmb3JtUmVxdWVzdFBy
aW9yaXR5KG1fcHJpb3JpdHkpKTsKKyAgICAgICAgd2tTZXRIVFRQUmVxdWVzdFByaW9yaXR5KFtu
c1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0sIHRvUGxhdGZvcm1SZXF1ZXN0UHJpb3JpdHkocHJpb3Jp
dHkoKSkpOwogCiAgICAgW25zUmVxdWVzdCBzZXRDYWNoZVBvbGljeTooTlNVUkxSZXF1ZXN0Q2Fj
aGVQb2xpY3kpY2FjaGVQb2xpY3koKV07CiAgICAgd2tDRlVSTFJlcXVlc3RBbGxvd0FsbFBvc3RD
YWNoaW5nKFtuc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCmluZGV4IDQ0Yzgz
NDVjZmQ0YjUwMGMxZDc3MDkxOTk0MDg1NGI1ZGU4MmFkMTYuLjNmYTA5MzRlZmI0MWU5NWUyMGYx
NDAxZGJiNTMwN2E1ZmRiYzY0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTEzMiw4ICsxMzIsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBpbmxpbmUgU291cE1lc3NhZ2VQcmlvcml0eSB0b1NvdXBNZXNz
YWdlUHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiB7CiAgICAgc3dpdGNo
IChwcmlvcml0eSkgewotICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkOgot
ICAgICAgICByZXR1cm4gU09VUF9NRVNTQUdFX1BSSU9SSVRZX05PUk1BTDsKICAgICBjYXNlIFJl
c291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzoKICAgICAgICAgcmV0dXJuIFNPVVBfTUVTU0FHRV9Q
UklPUklUWV9WRVJZX0xPVzsKICAgICBjYXNlIFJlc291cmNlTG9hZFByaW9yaXR5TG93OgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5j
cHAKaW5kZXggN2U0ZTZjNDhjMGU0OTQxMTk2ZGVmYWZkOGUzNzdkMTA5ZTYyNmJiNy4uODFmMjRh
NGUzNzZiY2I3ZmI2MDAyZjM1MGEzMjhmNmZhODNlOTIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuY3BwCkBAIC0yMTgsNyAr
MjE4LDcgQEAgdm9pZCBOZXR3b3JrQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBzdGQKIHsKICAgICBBU1NFUlQoaXNFbmFibGVk
KCkpOwogCi0gICAgTE9HKE5ldHdvcmtDYWNoZSwgIihOZXR3b3JrUHJvY2VzcykgcmV0cmlldmlu
ZyAlcyBwcmlvcml0eSAlZCIsIG9yaWdpbmFsUmVxdWVzdC51cmwoKS5zdHJpbmcoKS5hc2NpaSgp
LmRhdGEoKSwgb3JpZ2luYWxSZXF1ZXN0LnByaW9yaXR5KCkpOworICAgIExPRyhOZXR3b3JrQ2Fj
aGUsICIoTmV0d29ya1Byb2Nlc3MpIHJldHJpZXZpbmcgJXMgcHJpb3JpdHkgJXUiLCBvcmlnaW5h
bFJlcXVlc3QudXJsKCkuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCksIG9yaWdpbmFsUmVxdWVzdC5w
cmlvcml0eSgpKTsKIAogICAgIGlmICghY2FuUmV0cmlldmUob3JpZ2luYWxSZXF1ZXN0KSkgewog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKQEAgLTI0OSw3ICsyNDksNyBAQCB2
b2lkIE5ldHdvcmtDYWNoZTo6cmV0cmlldmUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsIHN0ZAogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgYXV0byBl
bGFwc2VkTVMgPSBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlz
ZWNvbmRzPihzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSAtIHN0YXJ0VGltZSkuY291
bnQoKTsKICNlbmRpZgotICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNz
KSByZXRyaWV2ZSBjb21wbGV0ZSBzdWNjZXNzPSVkIHByaW9yaXR5PSVkIHRpbWU9JWxsZG1zIiwg
c3VjY2VzcywgY2FwdHVyZS0+b3JpZ2luYWxSZXF1ZXN0LnByaW9yaXR5KCksIGVsYXBzZWRNUyk7
CisgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nlc3MpIHJldHJpZXZlIGNv
bXBsZXRlIHN1Y2Nlc3M9JWQgcHJpb3JpdHk9JXUgdGltZT0lbGxkbXMiLCBzdWNjZXNzLCBjYXB0
dXJlLT5vcmlnaW5hbFJlcXVlc3QucHJpb3JpdHkoKSwgZWxhcHNlZE1TKTsKICAgICAgICAgY2Fw
dHVyZS0+Y29tcGxldGlvbkhhbmRsZXIoV1RGOjptb3ZlKGRlY29kZWRFbnRyeSkpOwogICAgICAg
ICByZXR1cm4gc3VjY2VzczsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5k
ZXggODAyNDVmYjZiZmUwZmFlZmZiNThmM2Y5NzM2MWY3YTI5ZjllNTE4Mi4uOTI1Mjc5ZTMwOTYx
MzlhNjY4YWQ5OTEzMDBiYTRjZDFhMDgzMTc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2No
ZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgQ2FjaAogICAgIH0KICNl
bmRpZgogCi0gICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291
cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIHNjaGVkdWxl
ZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyB3aXRoIHByaW9yaXR5ICVpIiwgcmVzb3VyY2VMb2Fk
ZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0
KCkucHJpb3JpdHkoKSk7CisgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3Mp
IFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJl
IHNjaGVkdWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyB3aXRoIHByaW9yaXR5ICV1IiwgcmVz
b3VyY2VMb2FkZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHJlc291cmNlTG9hZGVy
LT5yZXF1ZXN0KCkucHJpb3JpdHkoKSk7CiAKICAgICBDb250ZW50U25pZmZpbmdQb2xpY3kgY29u
dGVudFNuaWZmaW5nUG9saWN5ID0gcmVzb3VyY2VMb2FkZXItPnNob3VsZFNuaWZmQ29udGVudCgp
ID8gU25pZmZDb250ZW50IDogRG9Ob3RTbmlmZkNvbnRlbnQ7CiAgICAgU3RvcmVkQ3JlZGVudGlh
bHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IHJlc291cmNlTG9hZGVyLT5zaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSgpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9y
ZWRDcmVkZW50aWFsczsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245979</attachid>
            <date>2015-02-03 15:39:49 -0800</date>
            <delta_ts>2015-02-03 17:24:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141186-20150203153949.patch</filename>
            <type>text/plain</type>
            <size>21973</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ1ZGQ4MjE3ZjE1YTQ1
NGZlYmJiNzc1NTMyZTkyOWJlNTc1OTgzZS4uM2YzNGJlZmI4YzM2MmFjODFiM2NhZjM4YThmOWE3
MTAzZDdlMmNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE1LTAyLTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBSZXNvdXJjZUxvYWRQ
cmlvcml0eVVucmVzb2x2ZWQgcmVzb3VyY2UgbG9hZCBwcmlvcml0eSBhbmQgdXNlIE9wdGlvbmFs
PD4gaW5zdGVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQxMTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAg
ICAgRHJvcCBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQgcmVzb3VyY2UgbG9hZCBwcmlv
cml0eSB2YWx1ZSBhbmQgdXNlCisgICAgICAgIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5
PiB3aGVuIG5lZWRlZCBpbnN0ZWFkLiBJZiB0aGUgT3B0aW9uYWwKKyAgICAgICAgZG9lc24ndCBo
YXZlIGEgdmFsdWUsIHRoZW4gaXQgbWVhbnMgaXQgaXMgdW5yZXNvbHZlZC4gSGF2aW5nCisgICAg
ICAgIFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCBpbiBSZXNvdXJjZUxvYWRQcmlvcml0
eSB3YXMgY29uZnVzaW5nCisgICAgICAgIGJlY2F1c2UgdGhpcyB2YWx1ZSBpcyBvbmx5IHZhbGlk
IGluIENhY2hlZFJlc291cmNlUmVxdWVzdCwgaXQgaXMgbm90CisgICAgICAgIGEgdmFsaWQgdmFs
dWUgaW4gQ2FjaGVkUmVzb3VyY2Ugb3IgaW4gUmVzb3VyY2VSZXF1ZXN0LiBBZnRlciB0aGlzCisg
ICAgICAgIHJlZmFjdG9yaW5nLCBpdCBub3cgYmVjb21lcyBtb3JlIG9idmlvdXMuCisKIDIwMTUt
MDItMDMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU21hcnQg
cXVvdGluZyBjb3VsZCBtb3ZlIHRoZSBjYXJldCBiYWNrd2FyZHMgaW4gc29tZSBjb25maWd1cmF0
aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDk2N2I2MTkyZTRiNWNjMThkMDlhMWExNWUxYTFlOTgxNzkzMjNi
YWYuLjY2ZjZhMzZmYzBjMDc4YjAwOWY3YTY2YThmNmEwYzY0NzE4NDMzNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAxNS0wMi0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIERyb3AgUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIHJlc291
cmNlIGxvYWQgcHJpb3JpdHkgYW5kIHVzZSBPcHRpb25hbDw+IGluc3RlYWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTE4NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIG5vdyB0aGF0
IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCBpcyBub3QgbG9uZ2VyIGEKKyAgICAgICAg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgZW51bSB2YWx1ZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6cmV0cmlldmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXI6OnNjaGVkdWxlTG9hZCk6CisKIDIwMTUtMDItMDMgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNz
Lndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIENvbnZlcnQgV2ViSW5zcGVjdG9yUHJveHkgdG8g
dXNlIFdLV2ViVmlldyBBUEkgZm9yIHRoZSBpbnNwZWN0b3IgdmlldwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDAwOTFhNzFmYWNhYzQwMjVjZTA3MTVhMGEwZWM3
MzFhMmQ4N2E3ZDYuLjBhZDEzNzhkZTQ5NzFiNWE5ZmFjZmQ5Mjk3NzhlZmIxNWQwMzM1ZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTIyOSw3ICsyMjksOSBA
QCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAgICAgICAgIGFkZFBlbmRpbmdTaGVl
dChpc0FjdGl2ZSA/IEFjdGl2ZVNoZWV0IDogSW5hY3RpdmVTaGVldCk7CiAKICAgICAgICAgLy8g
TG9hZCBzdHlsZXNoZWV0cyB0aGF0IGFyZSBub3QgbmVlZGVkIGZvciB0aGUgcmVuZGVyaW5nIGlt
bWVkaWF0ZWx5IHdpdGggbG93IHByaW9yaXR5LgotICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0
eSBwcmlvcml0eSA9IGlzQWN0aXZlID8gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkIDog
UmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93OworICAgICAgICBPcHRpb25hbDxSZXNvdXJjZUxv
YWRQcmlvcml0eT4gcHJpb3JpdHk7CisgICAgICAgIGlmICghaXNBY3RpdmUpCisgICAgICAgICAg
ICBwcmlvcml0eSA9IFJlc291cmNlTG9hZFByaW9yaXR5VmVyeUxvdzsKICAgICAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCkuY29tcGxl
dGVVUkwodXJsKSksIGNoYXJzZXQsIHByaW9yaXR5KTsKICAgICAgICAgcmVxdWVzdC5zZXRJbml0
aWF0b3IodGhpcyk7CiAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSBkb2N1bWVudCgpLmNhY2hlZFJl
c291cmNlTG9hZGVyKCkucmVxdWVzdENTU1N0eWxlU2hlZXQocmVxdWVzdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggMmZmYWY2MGI1ZDlmYzkzNzM1MzQ3NzJlMmU4MGIy
YTUxODg3N2M0OS4uYzZkMDJmNDIyYzI3ZjJiMmE0NGNhZTU3YWZiOWVmYWVhOGU2OWZjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIGJvb2wg
TGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRl
LCBjb25zdCBTdHJpbmcmIHR5CiAgICAgaWYgKChyZWxBdHRyaWJ1dGUubV9pc0xpbmtQcmVmZXRj
aCB8fCByZWxBdHRyaWJ1dGUubV9pc0xpbmtTdWJyZXNvdXJjZSkgJiYgaHJlZi5pc1ZhbGlkKCkg
JiYgZG9jdW1lbnQtPmZyYW1lKCkpIHsKICAgICAgICAgaWYgKCFtX2NsaWVudC0+c2hvdWxkTG9h
ZExpbmsoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgUmVzb3VyY2VMb2Fk
UHJpb3JpdHkgcHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQ7CisgICAg
ICAgIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiBwcmlvcml0eTsKICAgICAgICAgQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSA9IENhY2hlZFJlc291cmNlOjpMaW5rUHJlZmV0Y2g7CiAg
ICAgICAgIC8vIFdlIG9ubHkgbWFrZSBvbmUgcmVxdWVzdCB0byB0aGUgY2FjaGVkcmVzb3VyY2Vs
b2RhZXIgaWYgbXVsdGlwbGUgcmVsIHR5cGVzIGFyZQogICAgICAgICAvLyBzcGVjaWZpZWQsIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRl
eCA1MWFlYjg0NjgwNDhkNDNkYjYxZDJhYjhhNDI2MjQwY2RhYjg5MjNjLi5iM2VhZmU4ZmZiOWJi
NTM4NDEwMTZlMzg4ZmE4NTlmYzFmN2M1YTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMTYzLDcgKzE2Myw2IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNl
TG9hZGVyKQogI2VuZGlmCiAKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSA9IHJl
c291cmNlTG9hZGVyLT5yZXF1ZXN0KCkucHJpb3JpdHkoKTsKLSAgICBBU1NFUlQocHJpb3JpdHkg
IT0gUmVzb3VyY2VMb2FkUHJpb3JpdHlVbnJlc29sdmVkKTsKIAogICAgIGJvb2wgaGFkUmVxdWVz
dHMgPSBob3N0LT5oYXNSZXF1ZXN0cygpOwogICAgIGhvc3QtPnNjaGVkdWxlKHJlc291cmNlTG9h
ZGVyLCBwcmlvcml0eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmNwcAppbmRleCA5NzFkODY0OTQ1OTlkOTBkNmE5OTI4OTdmZTYzNjZlMWFlMDhjYzE5
Li42NTk1NWUwOWUyMWQ1ZmRlODQ1ZTY5ODg3NTUwNjU4YWU5YzUyY2FmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTczNiwxMSArNzM2
LDEyIEBAIHVuc2lnbmVkIENhY2hlZFJlc291cmNlOjpvdmVyaGVhZFNpemUoKSBjb25zdAogICAg
IHJldHVybiBzaXplb2YoQ2FjaGVkUmVzb3VyY2UpICsgbV9yZXNwb25zZS5tZW1vcnlVc2FnZSgp
ICsga0F2ZXJhZ2VDbGllbnRzSGFzaE1hcFNpemUgKyBtX3Jlc291cmNlUmVxdWVzdC51cmwoKS5z
dHJpbmcoKS5sZW5ndGgoKSAqIDI7CiB9CiAKLXZvaWQgQ2FjaGVkUmVzb3VyY2U6OnNldExvYWRQ
cmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBsb2FkUHJpb3JpdHkpCit2b2lkIENhY2hlZFJl
c291cmNlOjpzZXRMb2FkUHJpb3JpdHkoY29uc3QgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3Jp
dHk+JiBsb2FkUHJpb3JpdHkpCiB7Ci0gICAgaWYgKGxvYWRQcmlvcml0eSA9PSBSZXNvdXJjZUxv
YWRQcmlvcml0eVVucmVzb2x2ZWQpCi0gICAgICAgIGxvYWRQcmlvcml0eSA9IGRlZmF1bHRQcmlv
cml0eUZvclJlc291cmNlVHlwZSh0eXBlKCkpOwotICAgIG1fbG9hZFByaW9yaXR5ID0gbG9hZFBy
aW9yaXR5OworICAgIGlmIChsb2FkUHJpb3JpdHkpCisgICAgICAgIG1fbG9hZFByaW9yaXR5ID0g
bG9hZFByaW9yaXR5LnZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICBtX2xvYWRQcmlvcml0eSA9
IGRlZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSh0eXBlKCkpOwogfQogCiBpbmxpbmUgQ2Fj
aGVkUmVzb3VyY2U6OkNhbGxiYWNrOjpDYWxsYmFjayhDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2Us
IENhY2hlZFJlc291cmNlQ2xpZW50JiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IGU3ODRkMWY2MWY5NmY0ZWM5YWU3MDYxOTZlNzY5
MDQxMDcwNGQyMWEuLjY2ZDI5Y2M3NDA5YmMyOGIzY2JlMzVlM2EzMGUxODA1ODI0OTE5NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC0xMTcs
NyArMTE3LDcgQEAgcHVibGljOgogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PFR5cGU+KG1fdHlwZSk7IH0KICAgICAKICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBs
b2FkUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX2xvYWRQcmlvcml0eTsgfQotICAgIHZvaWQg
c2V0TG9hZFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5KTsKKyAgICB2b2lkIHNldExvYWRQ
cmlvcml0eShjb25zdCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4mKTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgYWRkQ2xpZW50KENhY2hlZFJlc291cmNlQ2xpZW50Kik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDEwNjU5ZmRhOTI2OTg1MmQxMjhjZDY4MWMzOWFmNDgyOTc4OTlkNDEuLmU2
OTg5ZDU0NTUwNGJlYTQ2ZjEyMWVhNGNjODg5MDhkNWZiYWI0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtNDUy
LDcgKzQ1Miw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiB7CiAgICAgVVJMIHVybCA9IHJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkudXJsKCk7CiAgICAgCi0gICAgTE9HKFJlc291cmNlTG9h
ZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UgJyVzJywgY2hhcnNl
dCAnJXMnLCBwcmlvcml0eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVybC5zdHJpbmdDZW50ZXJFbGxp
cHNpemVkVG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVlc3QuY2hhcnNldCgpLmxhdGlu
MSgpLmRhdGEoKSwgcmVxdWVzdC5wcmlvcml0eSgpLCByZXF1ZXN0LmZvclByZWxvYWQoKSk7Cisg
ICAgTE9HKFJlc291cmNlTG9hZGluZywgIkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVz
b3VyY2UgJyVzJywgY2hhcnNldCAnJXMnLCBwcmlvcml0eT0lZCwgZm9yUHJlbG9hZD0ldSIsIHVy
bC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKS5sYXRpbjEoKS5kYXRhKCksIHJlcXVl
c3QuY2hhcnNldCgpLmxhdGluMSgpLmRhdGEoKSwgcmVxdWVzdC5wcmlvcml0eSgpID8gcmVxdWVz
dC5wcmlvcml0eSgpLnZhbHVlKCkgOiAtMSwgcmVxdWVzdC5mb3JQcmVsb2FkKCkpOwogICAgIAog
ICAgIC8vIElmIG9ubHkgdGhlIGZyYWdtZW50IGlkZW50aWZpZXJzIGRpZmZlciwgaXQgaXMgdGhl
IHNhbWUgcmVzb3VyY2UuCiAgICAgdXJsID0gTWVtb3J5Q2FjaGU6OnJlbW92ZUZyYWdtZW50SWRl
bnRpZmllcklmTmVlZGVkKHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IDM4OWU1MzExMjViNjVlNzhiZGZl
YmIwYmJmNjBkMWY0MGI5MGIzZmUuLjUzYTUzZTVmZjQ4NmM5YTVkZmJjYmYxYWYyNjJkNmNmODJj
Y2FmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwg
UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCitDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4g
cHJpb3JpdHkpCiAgICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCiAgICAg
LCBtX2NoYXJzZXQoY2hhcnNldCkKICAgICAsIG1fb3B0aW9ucyhDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQpAQCAtNDUsMTMgKzQ1LDEyIEBAIENh
Y2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVzb3VyY2VSZXF1CiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291
cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3Qg
UmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKQogICAgIDogbV9yZXNvdXJjZVJlcXVlc3Qo
cmVzb3VyY2VSZXF1ZXN0KQogICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCi0gICAgLCBtX3ByaW9y
aXR5KFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCkKICAgICAsIG1fZm9yUHJlbG9hZChm
YWxzZSkKICAgICAsIG1fZGVmZXIoTm9EZWZlcikKIHsKIH0KIAotQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJj
ZVJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQorQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNv
dXJjZVJlcXVlc3QsIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiBwcmlvcml0eSkKICAg
ICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKICAgICAsIG1fb3B0aW9ucyhD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQogICAg
ICwgbV9wcmlvcml0eShwcmlvcml0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAppbmRleCBlMDExZDM4NGM2YTFiMDNhZmYyNWQz
NGFiOTFkM2FjMGRiZTZjODlhLi45OTM4YzA4OTZjZTlhMTg1Yjg5M2UzYTlmMzE4NmJhODUxZTc0
NjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5oCkBAIC00MCw5ICs0MCw5IEBAIGNsYXNzIENhY2hlZFJlc291cmNlUmVxdWVz
dCB7CiBwdWJsaWM6CiAgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVkQnlD
bGllbnQgfTsKIAotICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQgPSBTdHJpbmcoKSwgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOworICAgIGV4cGxp
Y2l0IENhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIGNoYXJzZXQgPSBTdHJpbmcoKSwgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+
ID0gTnVsbG9wdCk7CiAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwotICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxvYWRQcmlvcml0eSk7Cisg
ICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE9wdGlvbmFs
PFJlc291cmNlTG9hZFByaW9yaXR5Pik7CiAgICAgfkNhY2hlZFJlc291cmNlUmVxdWVzdCgpOwog
CiAgICAgUmVzb3VyY2VSZXF1ZXN0JiBtdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkgeyByZXR1cm4g
bV9yZXNvdXJjZVJlcXVlc3Q7IH0KQEAgLTUxLDggKzUxLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQpIHsgbV9jaGFyc2V0ID0gY2hhcnNldDsg
fQogICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fb3B0aW9uczsgfQogICAgIHZvaWQgc2V0T3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRpb25zID0gb3B0aW9uczsgfQotICAgIHZvaWQgc2V0
UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpIHsgbV9wcmlvcml0eSA9IHBy
aW9yaXR5OyB9Ci0gICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkoKSBjb25zdCB7IHJl
dHVybiBtX3ByaW9yaXR5OyB9CisgICAgY29uc3QgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3Jp
dHk+JiBwcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpb3JpdHk7IH0KICAgICBib29sIGZv
clByZWxvYWQoKSBjb25zdCB7IHJldHVybiBtX2ZvclByZWxvYWQ7IH0KICAgICB2b2lkIHNldEZv
clByZWxvYWQoYm9vbCBmb3JQcmVsb2FkKSB7IG1fZm9yUHJlbG9hZCA9IGZvclByZWxvYWQ7IH0K
ICAgICBEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KQEAgLTY1
LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVl
c3Q7CiAgICAgU3RyaW5nIG1fY2hhcnNldDsKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgbV9v
cHRpb25zOwotICAgIFJlc291cmNlTG9hZFByaW9yaXR5IG1fcHJpb3JpdHk7CisgICAgT3B0aW9u
YWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IG1fcHJpb3JpdHk7CiAgICAgYm9vbCBtX2ZvclByZWxv
YWQ7CiAgICAgRGVmZXJPcHRpb24gbV9kZWZlcjsKICAgICBSZWZQdHI8RWxlbWVudD4gbV9pbml0
aWF0b3JFbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUxvYWRQcmlvcml0eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUxvYWRQcmlvcml0eS5oCmluZGV4IDVhNzEwNGY5N2IxMjkyOGYwMWMzMWRlMDdj
NmMzZTEyMzVhZjcxYWUuLjZkMWRjNWI2NDUxZGM4ZmY4N2Y1YTQ2N2QzZmFjZDY4Njk3YzNiYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2Fk
UHJpb3JpdHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
TG9hZFByaW9yaXR5LmgKQEAgLTI5LDkgKzI5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ZW51bSBSZXNvdXJjZUxvYWRQcmlvcml0eSB7Ci0gICAgLy8gVGhlIHVucmVzb2x2ZWQgcHJpb3Jp
dHkgaXMgaGVyZSBmb3IgdGhlIGNvbnZlbmllbmNlIG9mIHRoZSBjbGllbnRzLiBJdCBzaG91bGQg
bm90IGJlIHBhc3NlZCB0byB0aGUgUmVzb3VyY2VMb2FkU2NoZWR1bGVyLgotICAgIFJlc291cmNl
TG9hZFByaW9yaXR5VW5yZXNvbHZlZCA9IC0xLAotICAgIFJlc291cmNlTG9hZFByaW9yaXR5VmVy
eUxvdyA9IDAsCisgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHlWZXJ5TG93LAogICAgIFJlc291cmNl
TG9hZFByaW9yaXR5TG93LAogICAgIFJlc291cmNlTG9hZFByaW9yaXR5TWVkaXVtLAogICAgIFJl
c291cmNlTG9hZFByaW9yaXR5SGlnaCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCmluZGV4IDA5ZDhmYjEyMGNmNWI3
NjRkNTcxYjAxNWZlMmI0Nzk5MmE5NzIzN2UuLjk0ZGNjYjljNmE0ZjFhM2Q4NmMzMTRjM2RmNzg0
MzkyOWJhYjYxMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcApAQCAtNDM3LDcgKzQzNyw3IEBAIFJlc291cmNl
TG9hZFByaW9yaXR5IFJlc291cmNlUmVxdWVzdEJhc2U6OnByaW9yaXR5KCkgY29uc3QKIHsKICAg
ICB1cGRhdGVSZXNvdXJjZVJlcXVlc3QoKTsKIAotICAgIHJldHVybiBtX3ByaW9yaXR5OworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxSZXNvdXJjZUxvYWRQcmlvcml0eT4obV9wcmlvcml0eSk7CiB9
CiAKIHZvaWQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJp
b3JpdHkgcHJpb3JpdHkpCkBAIC00NDgsNiArNDQ4LDcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3RC
YXNlOjpzZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgbV9wcmlvcml0eSA9IHByaW9yaXR5OworICAgIEFTU0VSVChzdGF0aWNf
Y2FzdDxSZXNvdXJjZUxvYWRQcmlvcml0eT4obV9wcmlvcml0eSkgPT0gcHJpb3JpdHkpOyAvLyBN
YWtlIHN1cmUgaXQgZml0cyBpbiB0aGUgYml0ZmllbGQuCiAKICAgICBpZiAodXJsKCkucHJvdG9j
b2xJc0luSFRUUEZhbWlseSgpKQogICAgICAgICBtX3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQgPSBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXF1ZXN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlcXVlc3RCYXNlLmgKaW5kZXggOWI1ZTc5NzA3MThiMDQ0ZDljMzRmMjJjN2JkOGVlMDU1OGU2
NjA2Zi4uMzkyMGQyYjliMGI1N2NkN2U4MWQ3MTFlZTYwMzNmMzQ0ODhmYTNiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNl
LmgKQEAgLTIxNCwxNiArMjE0LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVmVj
dG9yPFN0cmluZz4gbV9yZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tB
cnJheTsKICAgICAgICAgUmVmUHRyPEZvcm1EYXRhPiBtX2h0dHBCb2R5OwogICAgICAgICB1bnNp
Z25lZCBtX2NhY2hlUG9saWN5IDogMzsKLSAgICAgICAgYm9vbCBtX2FsbG93Q29va2llcyA6IDE7
Ci0gICAgICAgIG11dGFibGUgYm9vbCBtX3Jlc291cmNlUmVxdWVzdFVwZGF0ZWQgOiAxOwotICAg
ICAgICBtdXRhYmxlIGJvb2wgbV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkIDogMTsKLSAgICAgICAg
bXV0YWJsZSBib29sIG1fcmVzb3VyY2VSZXF1ZXN0Qm9keVVwZGF0ZWQgOiAxOwotICAgICAgICBt
dXRhYmxlIGJvb2wgbV9wbGF0Zm9ybVJlcXVlc3RCb2R5VXBkYXRlZCA6IDE7Ci0gICAgICAgIGJv
b2wgbV9yZXBvcnRVcGxvYWRQcm9ncmVzcyA6IDE7Ci0gICAgICAgIGJvb2wgbV9yZXBvcnRMb2Fk
VGltaW5nIDogMTsKLSAgICAgICAgYm9vbCBtX3JlcG9ydFJhd0hlYWRlcnMgOiAxOwotICAgICAg
ICBib29sIG1faGlkZGVuRnJvbUluc3BlY3RvciA6IDE7Ci0gICAgICAgIFJlc291cmNlTG9hZFBy
aW9yaXR5IG1fcHJpb3JpdHkgOiA0OyAvLyBub3QgdW5zaWduZWQgYmVjYXVzZSBSZXNvdXJjZUxv
YWRQcmlvcml0eSBoYXMgbmVnYXRpdmUgdmFsdWVzCisgICAgICAgIHVuc2lnbmVkIG1fYWxsb3dD
b29raWVzIDogMTsKKyAgICAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX3Jlc291cmNlUmVxdWVzdFVw
ZGF0ZWQgOiAxOworICAgICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fcGxhdGZvcm1SZXF1ZXN0VXBk
YXRlZCA6IDE7CisgICAgICAgIG11dGFibGUgdW5zaWduZWQgbV9yZXNvdXJjZVJlcXVlc3RCb2R5
VXBkYXRlZCA6IDE7CisgICAgICAgIG11dGFibGUgdW5zaWduZWQgbV9wbGF0Zm9ybVJlcXVlc3RC
b2R5VXBkYXRlZCA6IDE7CisgICAgICAgIHVuc2lnbmVkIG1fcmVwb3J0VXBsb2FkUHJvZ3Jlc3Mg
OiAxOworICAgICAgICB1bnNpZ25lZCBtX3JlcG9ydExvYWRUaW1pbmcgOiAxOworICAgICAgICB1
bnNpZ25lZCBtX3JlcG9ydFJhd0hlYWRlcnMgOiAxOworICAgICAgICB1bnNpZ25lZCBtX2hpZGRl
bkZyb21JbnNwZWN0b3IgOiAxOworICAgICAgICB1bnNpZ25lZCBtX3ByaW9yaXR5IDogNDsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgYXNSZXNvdXJjZVJl
cXVlc3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKaW5kZXggYzY0NzVkZmRjYWNlZWMx
MjhhMTEzZTAzYmQ2ZTcyZWEzN2ZmNTIxYy4uZjZmMmJjMGYwY2JiMzM1MWVhZTA1NjZhZWRlMmY0
NzJiZjdiMjIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2
b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKQogICAgICAgICB3
a0hUVFBSZXF1ZXN0RW5hYmxlUGlwZWxpbmluZyhjZlJlcXVlc3QpOwogCiAgICAgaWYgKHJlc291
cmNlUHJpb3JpdGllc0VuYWJsZWQoKSkKLSAgICAgICAgd2tTZXRIVFRQUmVxdWVzdFByaW9yaXR5
KGNmUmVxdWVzdCwgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShtX3ByaW9yaXR5KSk7CisgICAg
ICAgIHdrU2V0SFRUUFJlcXVlc3RQcmlvcml0eShjZlJlcXVlc3QsIHRvUGxhdGZvcm1SZXF1ZXN0
UHJpb3JpdHkocHJpb3JpdHkoKSkpOwogCiAjaWYgIVBMQVRGT1JNKFdJTikKICAgICB3a0NGVVJM
UmVxdWVzdEFsbG93QWxsUG9zdENhY2hpbmcoY2ZSZXF1ZXN0KTsKQEAgLTI3NCwxMSArMjc0LDgg
QEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCkKICAgICB9
CiAgICAgbV9hbGxvd0Nvb2tpZXMgPSBDRlVSTFJlcXVlc3RTaG91bGRIYW5kbGVIVFRQQ29va2ll
cyhtX2NmUmVxdWVzdC5nZXQoKSk7CiAKLSAgICBpZiAocmVzb3VyY2VQcmlvcml0aWVzRW5hYmxl
ZCgpKSB7Ci0gICAgICAgIGF1dG8gcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KHdr
R2V0SFRUUFJlcXVlc3RQcmlvcml0eShtX2NmUmVxdWVzdC5nZXQoKSkpOwotICAgICAgICBpZiAo
cHJpb3JpdHkgPiBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpCi0gICAgICAgICAgICBt
X3ByaW9yaXR5ID0gcHJpb3JpdHk7Ci0gICAgfQorICAgIGlmIChyZXNvdXJjZVByaW9yaXRpZXNF
bmFibGVkKCkpCisgICAgICAgIG1fcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KHdr
R2V0SFRUUFJlcXVlc3RQcmlvcml0eShtX2NmUmVxdWVzdC5nZXQoKSkpOwogCiAgICAgbV9odHRw
SGVhZGVyRmllbGRzLmNsZWFyKCk7CiAgICAgaWYgKENGRGljdGlvbmFyeVJlZiBoZWFkZXJzID0g
Q0ZVUkxSZXF1ZXN0Q29weUFsbEhUVFBIZWFkZXJGaWVsZHMobV9jZlJlcXVlc3QuZ2V0KCkpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVxdWVzdENGTmV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlUmVxdWVzdENGTmV0LmgKaW5kZXggYWY1ZDM4YWU4M2I2MGRjODlkN2E2NmI0NzQ0YjY3Mjhl
MTQ0Yzc5MC4uNzY5YzhlNTk2NDY5MThlYzI1YTA5MDFhZjE2ZGFjZjNiMDJjOWYwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RD
Rk5ldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VS
ZXF1ZXN0Q0ZOZXQuaApAQCAtNDQsOCArNDQsNiBAQCBDRlVSTFJlcXVlc3RSZWYgY2ZVUkxSZXF1
ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogaW5saW5lIFJlc291cmNlTG9hZFByaW9yaXR5
IHRvUmVzb3VyY2VMb2FkUHJpb3JpdHkoaW50IHByaW9yaXR5KQogewogICAgIHN3aXRjaCAocHJp
b3JpdHkpIHsKLSAgICBjYXNlIC0xOgotICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3Jp
dHlVbnJlc29sdmVkOwogICAgIGNhc2UgMDoKICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9hZFBy
aW9yaXR5VmVyeUxvdzsKICAgICBjYXNlIDE6CkBAIC02NSw4ICs2Myw2IEBAIGlubGluZSBSZXNv
dXJjZUxvYWRQcmlvcml0eSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KGludCBwcmlvcml0eSkKIGlu
bGluZSBpbnQgdG9QbGF0Zm9ybVJlcXVlc3RQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBw
cmlvcml0eSkKIHsKICAgICBzd2l0Y2ggKHByaW9yaXR5KSB7Ci0gICAgY2FzZSBSZXNvdXJjZUxv
YWRQcmlvcml0eVVucmVzb2x2ZWQ6Ci0gICAgICAgIHJldHVybiAtMTsKICAgICBjYXNlIFJlc291
cmNlTG9hZFByaW9yaXR5VmVyeUxvdzoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgY2FzZSBSZXNv
dXJjZUxvYWRQcmlvcml0eUxvdzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCmluZGV4IDBhNjA5
ZmMyNzUwNTlkZDUyOGZjZDE4ODI0ZDc1OTA5ODI5ZjdhOGYuLmQ3NzdhMDMxYjc1OTk0NTA1ODY2
YWRhYmQwNTczNGU3YzkwZDZhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQpAQCAtNzgs
MTEgKzc4LDggQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUmVzb3VyY2VSZXF1ZXN0
KCkKICAgICAgICAgbV9odHRwTWV0aG9kID0gbWV0aG9kOwogICAgIG1fYWxsb3dDb29raWVzID0g
W21fbnNSZXF1ZXN0LmdldCgpIEhUVFBTaG91bGRIYW5kbGVDb29raWVzXTsKIAotICAgIGlmIChy
ZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCkpIHsKLSAgICAgICAgYXV0byBwcmlvcml0eSA9IHRv
UmVzb3VyY2VMb2FkUHJpb3JpdHkod2tHZXRIVFRQUmVxdWVzdFByaW9yaXR5KFttX25zUmVxdWVz
dC5nZXQoKSBfQ0ZVUkxSZXF1ZXN0XSkpOwotICAgICAgICBpZiAocHJpb3JpdHkgPiBSZXNvdXJj
ZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpCi0gICAgICAgICAgICBtX3ByaW9yaXR5ID0gcHJpb3Jp
dHk7Ci0gICAgfQorICAgIGlmIChyZXNvdXJjZVByaW9yaXRpZXNFbmFibGVkKCkpCisgICAgICAg
IG1fcHJpb3JpdHkgPSB0b1Jlc291cmNlTG9hZFByaW9yaXR5KHdrR2V0SFRUUFJlcXVlc3RQcmlv
cml0eShbbV9uc1JlcXVlc3QuZ2V0KCkgX0NGVVJMUmVxdWVzdF0pKTsKIAogICAgIG1faHR0cEhl
YWRlckZpZWxkcy5jbGVhcigpOwogICAgIFtbbV9uc1JlcXVlc3QgYWxsSFRUUEhlYWRlckZpZWxk
c10gZW51bWVyYXRlS2V5c0FuZE9iamVjdHNVc2luZ0Jsb2NrOiBeKE5TU3RyaW5nICpuYW1lLCBO
U1N0cmluZyAqdmFsdWUsIEJPT0wgKikgewpAQCAtMTQ1LDcgKzE0Miw3IEBAIHZvaWQgUmVzb3Vy
Y2VSZXF1ZXN0Ojpkb1VwZGF0ZVBsYXRmb3JtUmVxdWVzdCgpCiAgICAgICAgIHdrSFRUUFJlcXVl
c3RFbmFibGVQaXBlbGluaW5nKFtuc1JlcXVlc3QgX0NGVVJMUmVxdWVzdF0pOwogCiAgICAgaWYg
KFJlc291cmNlUmVxdWVzdDo6cmVzb3VyY2VQcmlvcml0aWVzRW5hYmxlZCgpKQotICAgICAgICB3
a1NldEhUVFBSZXF1ZXN0UHJpb3JpdHkoW25zUmVxdWVzdCBfQ0ZVUkxSZXF1ZXN0XSwgdG9QbGF0
Zm9ybVJlcXVlc3RQcmlvcml0eShtX3ByaW9yaXR5KSk7CisgICAgICAgIHdrU2V0SFRUUFJlcXVl
c3RQcmlvcml0eShbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdLCB0b1BsYXRmb3JtUmVxdWVzdFBy
aW9yaXR5KHByaW9yaXR5KCkpKTsKIAogICAgIFtuc1JlcXVlc3Qgc2V0Q2FjaGVQb2xpY3k6KE5T
VVJMUmVxdWVzdENhY2hlUG9saWN5KWNhY2hlUG9saWN5KCldOwogICAgIHdrQ0ZVUkxSZXF1ZXN0
QWxsb3dBbGxQb3N0Q2FjaGluZyhbbnNSZXF1ZXN0IF9DRlVSTFJlcXVlc3RdKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3Qu
aAppbmRleCA0NGM4MzQ1Y2ZkNGI1MDBjMWQ3NzA5MTk5NDA4NTRiNWRlODJhZDE2Li4zZmEwOTM0
ZWZiNDFlOTVlMjBmMTQwMWRiYjUzMDdhNWZkYmM2NGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oCkBAIC0xMzIs
OCArMTMyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogaW5saW5lIFNvdXBNZXNzYWdlUHJpb3Jp
dHkgdG9Tb3VwTWVzc2FnZVByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQog
ewogICAgIHN3aXRjaCAocHJpb3JpdHkpIHsKLSAgICBjYXNlIFJlc291cmNlTG9hZFByaW9yaXR5
VW5yZXNvbHZlZDoKLSAgICAgICAgcmV0dXJuIFNPVVBfTUVTU0FHRV9QUklPUklUWV9OT1JNQUw7
CiAgICAgY2FzZSBSZXNvdXJjZUxvYWRQcmlvcml0eVZlcnlMb3c6CiAgICAgICAgIHJldHVybiBT
T1VQX01FU1NBR0VfUFJJT1JJVFlfVkVSWV9MT1c7CiAgICAgY2FzZSBSZXNvdXJjZUxvYWRQcmlv
cml0eUxvdzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuY3BwCmluZGV4IDdlNGU2YzQ4YzBlNDk0MTE5NmRlZmFmZDhlMzc3ZDEwOWU2
MjZiYjcuLjgxZjI0YTRlMzc2YmNiN2ZiNjAwMmYzNTBhMzI4ZjZmYTgzZTkyMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmNw
cApAQCAtMjE4LDcgKzIxOCw3IEBAIHZvaWQgTmV0d29ya0NhY2hlOjpyZXRyaWV2ZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgc3RkCiB7CiAgICAgQVNT
RVJUKGlzRW5hYmxlZCgpKTsKIAotICAgIExPRyhOZXR3b3JrQ2FjaGUsICIoTmV0d29ya1Byb2Nl
c3MpIHJldHJpZXZpbmcgJXMgcHJpb3JpdHkgJWQiLCBvcmlnaW5hbFJlcXVlc3QudXJsKCkuc3Ry
aW5nKCkuYXNjaWkoKS5kYXRhKCksIG9yaWdpbmFsUmVxdWVzdC5wcmlvcml0eSgpKTsKKyAgICBM
T0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNzKSByZXRyaWV2aW5nICVzIHByaW9yaXR5
ICV1Iiwgb3JpZ2luYWxSZXF1ZXN0LnVybCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBvcmln
aW5hbFJlcXVlc3QucHJpb3JpdHkoKSk7CiAKICAgICBpZiAoIWNhblJldHJpZXZlKG9yaWdpbmFs
UmVxdWVzdCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CkBAIC0yNDks
NyArMjQ5LDcgQEAgdm9pZCBOZXR3b3JrQ2FjaGU6OnJldHJpZXZlKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBzdGQKICNpZiAhTE9HX0RJU0FCTEVECiAg
ICAgICAgIGF1dG8gZWxhcHNlZE1TID0gc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpj
aHJvbm86Om1pbGxpc2Vjb25kcz4oc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgLSBz
dGFydFRpbWUpLmNvdW50KCk7CiAjZW5kaWYKLSAgICAgICAgTE9HKE5ldHdvcmtDYWNoZSwgIihO
ZXR3b3JrUHJvY2VzcykgcmV0cmlldmUgY29tcGxldGUgc3VjY2Vzcz0lZCBwcmlvcml0eT0lZCB0
aW1lPSVsbGRtcyIsIHN1Y2Nlc3MsIGNhcHR1cmUtPm9yaWdpbmFsUmVxdWVzdC5wcmlvcml0eSgp
LCBlbGFwc2VkTVMpOworICAgICAgICBMT0coTmV0d29ya0NhY2hlLCAiKE5ldHdvcmtQcm9jZXNz
KSByZXRyaWV2ZSBjb21wbGV0ZSBzdWNjZXNzPSVkIHByaW9yaXR5PSV1IHRpbWU9JWxsZG1zIiwg
c3VjY2VzcywgY2FwdHVyZS0+b3JpZ2luYWxSZXF1ZXN0LnByaW9yaXR5KCksIGVsYXBzZWRNUyk7
CiAgICAgICAgIGNhcHR1cmUtPmNvbXBsZXRpb25IYW5kbGVyKFdURjo6bW92ZShkZWNvZGVkRW50
cnkpKTsKICAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwCmluZGV4IDgwMjQ1ZmI2YmZlMGZhZWZmYjU4ZjNmOTczNjFmN2EyOWY5ZTUxODIu
LjkyNTI3OWUzMDk2MTM5YTY2OGFkOTkxMzAwYmE0Y2QxYTA4MzE3NmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIENh
Y2gKICAgICB9CiAjZW5kaWYKIAotICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9j
ZXNzKSBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2ls
bCBiZSBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlvcml0eSAlaSIs
IHJlc291cmNlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCByZXNvdXJjZUxv
YWRlci0+cmVxdWVzdCgpLnByaW9yaXR5KCkpOworICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywg
IihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZCwgdXJs
ICclcycgd2lsbCBiZSBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlv
cml0eSAldSIsIHJlc291cmNlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBy
ZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLnByaW9yaXR5KCkpOwogCiAgICAgQ29udGVudFNuaWZm
aW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IHJlc291cmNlTG9hZGVyLT5zaG91bGRT
bmlmZkNvbnRlbnQoKSA/IFNuaWZmQ29udGVudCA6IERvTm90U25pZmZDb250ZW50OwogICAgIFN0
b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMgPSByZXNvdXJjZUxvYWRlci0+
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSA/IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBE
b05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>