<?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>134237</bug_id>
          
          <creation_ts>2014-06-23 21:31:18 -0700</creation_ts>
          <short_desc>[Win] MSVC mishandles enums in bitfields - breaks Cross-Origin Access Control</short_desc>
          <delta_ts>2014-06-24 12:49:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>126972</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1017835</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-06-23 21:31:18 -0700</bug_when>
    <thetext>Consider this code in CrossOriginAccessControl.cpp (passesAccessControlCheck):

    if (accessControlOriginString == &quot;*&quot; &amp;&amp; includeCredentials == DoNotAllowStoredCredentials)

Amazingly, although includeCredentials is set to &apos;DoNotAllowStoredCredentials&apos;, this test failed:

&gt; p includeCredentials
DoNotAllowStoredCredentials | -2 (-1)
&gt; p DoNotAllowStoredCredentials
DoNotAllowStoredCredentials (1)
&gt; DoNotAllowStoredCredentials == includeCredentials
false

This change was introduced in http://trac.webkit.org/changeset/161958/trunk/Source/WebCore/loader/ResourceLoaderOptions.h.

MSVC does strange things with bit fields containing enumerations. This has been documented in a few places:

http://connect.microsoft.com/VisualStudio/feedback/details/828892/vc-2013-miscompilation-with-enums-and-bit-fields
http://objectmix.com/c/749570-enum-bitfield-visual-studio-bug-not-3.html

Small test case:

  #include &lt;iostream&gt;

  enum E {
    A = 0, B, C, D
  };

  struct S {
    E e : 2;
  };

  int main()
  {
      S s;
      s.e = D;
      std::cout &lt;&lt; s.e &lt;&lt; &apos; &apos; &lt;&lt; (s.e == D) &lt;&lt; std::endl;
  }

Output on MSVC: -1 0
Output on G++/clang++ (correct according to the C++ standard): 3 1

Microsoft appears to think this behavior is within specification, since their enumerated type is based on int, not unsigned. They use a sign bit, which means our one-bit enum fields only ever hold the sign bit resulting in weird behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017841</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-06-23 21:40:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/17430588&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017842</commentid>
    <comment_count>2</comment_count>
      <attachid>233680</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-06-23 21:48:44 -0700</bug_when>
    <thetext>Created attachment 233680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017935</commentid>
    <comment_count>3</comment_count>
      <attachid>233680</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-24 07:11:27 -0700</bug_when>
    <thetext>Comment on attachment 233680
Patch

I think what we usually do in cases like this is to just use unsigned integer types, let&apos;s do that instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017985</commentid>
    <comment_count>4</comment_count>
      <attachid>233714</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-06-24 10:01:05 -0700</bug_when>
    <thetext>Created attachment 233714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017986</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-06-24 10:01:43 -0700</bug_when>
    <thetext>I found a few other cases where this was happening and have expanded the bug to cover them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018014</commentid>
    <comment_count>6</comment_count>
      <attachid>233720</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-06-24 11:17:41 -0700</bug_when>
    <thetext>Created attachment 233720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018016</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-06-24 11:20:24 -0700</bug_when>
    <thetext>See also Bug 134252.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018026</commentid>
    <comment_count>8</comment_count>
      <attachid>233720</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-06-24 11:42:43 -0700</bug_when>
    <thetext>Comment on attachment 233720
Patch

r=me.  Fix Mac build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018063</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-06-24 12:49:53 -0700</bug_when>
    <thetext>Committed r170381: &lt;http://trac.webkit.org/changeset/170381&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233680</attachid>
            <date>2014-06-23 21:48:44 -0700</date>
            <delta_ts>2014-06-24 10:01:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134237-20140623214840.patch</filename>
            <type>text/plain</type>
            <size>2056</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDM0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE0LTA2LTIzICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIE1TVkMgbWlzaGFu
ZGxlcyBlbnVtcyBpbiBiaXRmaWVsZHMgLSBicmVha3MgQ3Jvc3MtT3JpZ2luIEFjY2VzcyBDb250
cm9sIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0
MjM3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNzQzMDU4OD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlck9w
dGlvbnMuaDogRXhwYW5kIE1TVkMgYml0IGZpZWxkIHNpemVzIHRvCisgICAgICAgIGhvbGQgdGhl
IHJlcXVpcmVkIHNpZ24gYml0LgorCiAyMDE0LTA2LTIzICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlq
QGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFwdGVyIGZvcndhcmQvYmFja3dhcmQgc2hvdWxkIHNl
ZWsgdG8gYmVnaW5uaW5nL2VuZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXJPcHRpb25zLmgJKHJldmlzaW9uIDE3MDI5OSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtODMsNiAr
ODMsNyBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zIHsKICAgICAgICAgLCByZXF1ZXN0
T3JpZ2luUG9saWN5KHJlcXVlc3RPcmlnaW5Qb2xpY3kpCiAgICAgewogICAgIH0KKyNpZiAhQ09N
UElMRVIoTVNWQykKICAgICBTZW5kQ2FsbGJhY2tQb2xpY3kgc2VuZExvYWRDYWxsYmFja3MgOiAx
OwogICAgIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzbmlmZkNvbnRlbnQgOiAxOwogICAgIERhdGFC
dWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGljeSA6IDE7CkBAIC05MCw2ICs5MSwxNSBA
QCBzdHJ1Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zIHsKICAgICBDbGllbnRDcmVkZW50aWFsUG9s
aWN5IGNsaWVudENyZWRlbnRpYWxQb2xpY3kgOiAyOyAvLyBXaGVuIHdlIHNob3VsZCBhc2sgdGhl
IGNsaWVudCBmb3IgY3JlZGVudGlhbHMgKGlmIHdlIGFsbG93IGNyZWRlbnRpYWxzIGF0IGFsbCku
CiAgICAgU2VjdXJpdHlDaGVja1BvbGljeSBzZWN1cml0eUNoZWNrIDogMTsKICAgICBSZXF1ZXN0
T3JpZ2luUG9saWN5IHJlcXVlc3RPcmlnaW5Qb2xpY3kgOiAyOworI2Vsc2UKKyAgICBTZW5kQ2Fs
bGJhY2tQb2xpY3kgc2VuZExvYWRDYWxsYmFja3MgOiAyOworICAgIENvbnRlbnRTbmlmZmluZ1Bv
bGljeSBzbmlmZkNvbnRlbnQgOiAyOworICAgIERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZl
cmluZ1BvbGljeSA6IDI7CisgICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA6
IDI7IC8vIFdoZXRoZXIgSFRUUCBjcmVkZW50aWFscyBhbmQgY29va2llcyBhcmUgc2VudCB3aXRo
IHRoZSByZXF1ZXN0LgorICAgIENsaWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlh
bFBvbGljeSA6IDM7IC8vIFdoZW4gd2Ugc2hvdWxkIGFzayB0aGUgY2xpZW50IGZvciBjcmVkZW50
aWFscyAoaWYgd2UgYWxsb3cgY3JlZGVudGlhbHMgYXQgYWxsKS4KKyAgICBTZWN1cml0eUNoZWNr
UG9saWN5IHNlY3VyaXR5Q2hlY2sgOiAyOworICAgIFJlcXVlc3RPcmlnaW5Qb2xpY3kgcmVxdWVz
dE9yaWdpblBvbGljeSA6IDM7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUg
ICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233714</attachid>
            <date>2014-06-24 10:01:05 -0700</date>
            <delta_ts>2014-06-24 11:17:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134237-20140624100100.patch</filename>
            <type>text/plain</type>
            <size>7013</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwMzY2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDE0LTA2LTI0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIFtXaW5dIE1TVkMgbWlzaGFuZGxlcyBlbnVtcyBpbiBiaXRmaWVsZHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDIzNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdXNlcyBvZiBlbnVt
IHR5cGVzIGluIGJpdCBmaWVsZHMgd2l0aCB1bnNpZ25lZCB0bworICAgICAgICBhdm9pZCBsb3Np
bmcgYSBiaXQgdG8gaG9sZCB0aGUgc2lnbiB2YWx1ZS4gVGhpcyBjYW4gcmVzdWx0CisgICAgICAg
IGluIFdpbmRvd3MgaW50ZXJwcmV0aW5nIHRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgaW1wcm9wZXJs
eS4KKworICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAgICAgICog
cGFyc2VyL05vZGVzLmg6CisKIDIwMTQtMDYtMjMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIElubGluZSB0aGUgVW5saW5rZWRJbnN0cnVjdGlvblN0cmVhbTo6
UmVhZGVyIGxvZ2ljLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVj
dHVyZVN0dWJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgJKHJldmlzaW9uIDE3MDM2MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDAsNyArMjAwLDcgQEAgc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvIHsKICAgICBDb2RlT3Jp
Z2luIGNvZGVPcmlnaW47CiAKICAgICBzdHJ1Y3QgewotICAgICAgICBTcGlsbFJlZ2lzdGVyc01v
ZGUgc3BpbGxNb2RlIDogODsKKyAgICAgICAgdW5zaWduZWQgc3BpbGxNb2RlIDogODsKICAgICAg
ICAgaW50OF90IGJhc2VHUFI7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgaW50OF90
IHZhbHVlVGFnR1BSOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAkocmV2
aXNpb24gMTcwMzYyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDQwLDcgKzEwNDAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgRXhwcmVzc2lvbk5vZGUqIG1fYmFzZTsKICAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fc3Vi
c2NyaXB0OwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKLSAgICAgICAgT3BlcmF0
b3IgbV9vcGVyYXRvciA6IDMwOworICAgICAgICB1bnNpZ25lZCBtX29wZXJhdG9yIDogMzA7CiAg
ICAgICAgIGJvb2wgbV9zdWJzY3JpcHRIYXNBc3NpZ25tZW50cyA6IDE7CiAgICAgICAgIGJvb2wg
bV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKICAgICB9OwpAQCAtMTA4Miw3ICsxMDgyLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX2Jhc2U7CiAgICAgICAg
IGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3Jp
Z2h0OwotICAgICAgICBPcGVyYXRvciBtX29wZXJhdG9yIDogMzE7CisgICAgICAgIHVuc2lnbmVk
IG1fb3BlcmF0b3IgOiAzMTsKICAgICAgICAgYm9vbCBtX3JpZ2h0SGFzQXNzaWdubWVudHMgOiAx
OwogICAgIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3MDM2NikKKysrIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE0LTA2
LTI0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5d
IE1TVkMgbWlzaGFuZGxlcyBlbnVtcyBpbiBiaXRmaWVsZHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDIzNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdXNlcyBvZiBlbnVtIHR5cGVzIGlu
IGJpdCBmaWVsZHMgd2l0aCB1bnNpZ25lZCB0bworICAgICAgICBhdm9pZCBsb3NpbmcgYSBiaXQg
dG8gaG9sZCB0aGUgc2lnbiB2YWx1ZS4gVGhpcyBjYW4gcmVzdWx0CisgICAgICAgIGluIFdpbmRv
d3MgaW50ZXJwcmV0aW5nIHRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgaW1wcm9wZXJseS4KKworICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5oOgorCiAyMDE0LTA2LTI0
ICBFdmEgQmFsYXpzZmFsdmkgIDxldmFiLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgRml4IHVudXNlZCBwYXJhbWV0ZXIgd2FybmluZ3MgaWYgaW5zcGVjdG9yIGlzIGRp
c2FibGVkCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25z
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyT3B0
aW9ucy5oCShyZXZpc2lvbiAxNzAzNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTgzLDEzICs4MywxMyBAQCBzdHJ1
Y3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zIHsKICAgICAgICAgLCByZXF1ZXN0T3JpZ2luUG9saWN5
KHJlcXVlc3RPcmlnaW5Qb2xpY3kpCiAgICAgewogICAgIH0KLSAgICBTZW5kQ2FsbGJhY2tQb2xp
Y3kgc2VuZExvYWRDYWxsYmFja3MgOiAxOwotICAgIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzbmlm
ZkNvbnRlbnQgOiAxOwotICAgIERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGlj
eSA6IDE7Ci0gICAgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA6IDE7IC8vIFdo
ZXRoZXIgSFRUUCBjcmVkZW50aWFscyBhbmQgY29va2llcyBhcmUgc2VudCB3aXRoIHRoZSByZXF1
ZXN0LgotICAgIENsaWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlhbFBvbGljeSA6
IDI7IC8vIFdoZW4gd2Ugc2hvdWxkIGFzayB0aGUgY2xpZW50IGZvciBjcmVkZW50aWFscyAoaWYg
d2UgYWxsb3cgY3JlZGVudGlhbHMgYXQgYWxsKS4KLSAgICBTZWN1cml0eUNoZWNrUG9saWN5IHNl
Y3VyaXR5Q2hlY2sgOiAxOwotICAgIFJlcXVlc3RPcmlnaW5Qb2xpY3kgcmVxdWVzdE9yaWdpblBv
bGljeSA6IDI7CisgICAgdW5zaWduZWQgc2VuZExvYWRDYWxsYmFja3MgOiAxOworICAgIHVuc2ln
bmVkIHNuaWZmQ29udGVudCA6IDE7CisgICAgdW5zaWduZWQgZGF0YUJ1ZmZlcmluZ1BvbGljeSA6
IDE7CisgICAgdW5zaWduZWQgYWxsb3dDcmVkZW50aWFscyA6IDE7IC8vIFdoZXRoZXIgSFRUUCBj
cmVkZW50aWFscyBhbmQgY29va2llcyBhcmUgc2VudCB3aXRoIHRoZSByZXF1ZXN0LgorICAgIHVu
c2lnbmVkIGNsaWVudENyZWRlbnRpYWxQb2xpY3kgOiAyOyAvLyBXaGVuIHdlIHNob3VsZCBhc2sg
dGhlIGNsaWVudCBmb3IgY3JlZGVudGlhbHMgKGlmIHdlIGFsbG93IGNyZWRlbnRpYWxzIGF0IGFs
bCkuCisgICAgdW5zaWduZWQgc2VjdXJpdHlDaGVjayA6IDE7CisgICAgdW5zaWduZWQgcmVxdWVz
dE9yaWdpblBvbGljeSA6IDI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlICAgIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
cXVlc3RCYXNlLmgJKHJldmlzaW9uIDE3MDM2MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTksNyAr
MjE5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBIVFRQSGVhZGVyTWFwIG1faHR0
cEhlYWRlckZpZWxkczsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gbV9yZXNwb25zZUNvbnRlbnRE
aXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheTsKICAgICAgICAgUmVmUHRyPEZvcm1EYXRh
PiBtX2h0dHBCb2R5OwotICAgICAgICBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBtX2NhY2hl
UG9saWN5IDogMzsKKyAgICAgICAgdW5zaWduZWQgbV9jYWNoZVBvbGljeSA6IDM7CiAgICAgICAg
IGJvb2wgbV9hbGxvd0Nvb2tpZXMgOiAxOwogICAgICAgICBtdXRhYmxlIGJvb2wgbV9yZXNvdXJj
ZVJlcXVlc3RVcGRhdGVkIDogMTsKICAgICAgICAgbXV0YWJsZSBib29sIG1fcGxhdGZvcm1SZXF1
ZXN0VXBkYXRlZCA6IDE7CkBAIC0yMzEsNyArMjMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgIGJvb2wgbV9oaWRkZW5Gcm9tSW5zcGVjdG9y
IDogMTsKICNlbmRpZgotICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0eSBtX3ByaW9yaXR5IDog
NDsKKyAgICAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlvcml0eSA6IDQ7IC8vIG5vdCB1
bnNpZ25lZCBiZWNhdXNlIFJlc291cmNlTG9hZFByaW9yaXR5IGhhcyBuZWdhdGl2ZSB2YWx1ZXMK
IAogICAgIHByaXZhdGU6CiAgICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgYXNSZXNvdXJj
ZVJlcXVlc3QoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lvbiAxNzAzNjIpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9uc2UuaAkod29y
a2luZyBjb3B5KQpAQCAtMTExLDcgKzExMSw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgYm9v
bCBwbGF0Zm9ybUNvbXBhcmUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgYik7CiAKLSAgICBJbml0TGV2ZWwgbV9pbml0TGV2ZWwgOiAzOworICAgIHVu
c2lnbmVkIG1faW5pdExldmVsIDogMzsKICAgICBib29sIG1fcGxhdGZvcm1SZXNwb25zZUlzVXBU
b0RhdGUgOiAxOwogCiAjaWYgVVNFKENGTkVUV09SSykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lvbiAxNzAzNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTI3Miw3ICsxMjcyLDcg
QEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKLSAgICBC
bGVuZE1vZGUgbV9ibGVuZE1vZGUgOiA1OworICAgIHVuc2lnbmVkIG1fYmxlbmRNb2RlIDogNTsK
ICAgICBib29sIG1faGFzTm90SXNvbGF0ZWRDb21wb3NpdGVkQmxlbmRpbmdEZXNjZW5kYW50cyA6
IDE7CiAgICAgYm9vbCBtX2hhc05vdElzb2xhdGVkQmxlbmRpbmdEZXNjZW5kYW50cyA6IDE7CiAg
ICAgYm9vbCBtX2hhc05vdElzb2xhdGVkQmxlbmRpbmdEZXNjZW5kYW50c1N0YXR1c0RpcnR5IDog
MTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuaAkocmV2aXNp
b24gMTcwMzYyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuaAko
d29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9yZXNl
dDogMTsKICAgICBib29sIG1fc3VzcGVuZGVkIDogMTsKICAgICBib29sIG1fc3RvcHBlZCA6IDE7
Ci0gICAgRU1hcnF1ZWVEaXJlY3Rpb24gbV9kaXJlY3Rpb24gOiA0OworICAgIEVNYXJxdWVlRGly
ZWN0aW9uIG1fZGlyZWN0aW9uIDogNDsgLy8gTm90IHVuc2lnbmVkIGJlY2F1c2UgRU1hcnF1ZWVE
aXJlY3Rpb24gaGFzIG5lZ2F0aXZlIHZhbHVlcwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233720</attachid>
            <date>2014-06-24 11:17:41 -0700</date>
            <delta_ts>2014-06-24 11:42:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134237-20140624111735.patch</filename>
            <type>text/plain</type>
            <size>39177</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwMzY2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDE0LTA2LTI0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIFtXaW5dIE1TVkMgbWlzaGFuZGxlcyBlbnVtcyBpbiBiaXRmaWVsZHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDIzNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdXNlcyBvZiBlbnVt
IHR5cGVzIGluIGJpdCBmaWVsZHMgd2l0aCB1bnNpZ25lZCB0bworICAgICAgICBhdm9pZCBsb3Np
bmcgYSBiaXQgdG8gaG9sZCB0aGUgc2lnbiB2YWx1ZS4gVGhpcyBjYW4gcmVzdWx0CisgICAgICAg
IGluIFdpbmRvd3MgaW50ZXJwcmV0aW5nIHRoZSB2YWx1ZSBvZiB0aGUgZmllbGQgaW1wcm9wZXJs
eS4KKworICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmg6CisgICAgICAgICog
cGFyc2VyL05vZGVzLmg6CisKIDIwMTQtMDYtMjMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBw
bGUuY29tPgogCiAgICAgICAgIElubGluZSB0aGUgVW5saW5rZWRJbnN0cnVjdGlvblN0cmVhbTo6
UmVhZGVyIGxvZ2ljLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVj
dHVyZVN0dWJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgJKHJldmlzaW9uIDE3MDM2MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDAsNyArMjAwLDcgQEAgc3RydWN0IFN0cnVjdHVyZVN0dWJJbmZvIHsKICAgICBDb2RlT3Jp
Z2luIGNvZGVPcmlnaW47CiAKICAgICBzdHJ1Y3QgewotICAgICAgICBTcGlsbFJlZ2lzdGVyc01v
ZGUgc3BpbGxNb2RlIDogODsKKyAgICAgICAgdW5zaWduZWQgc3BpbGxNb2RlIDogODsKICAgICAg
ICAgaW50OF90IGJhc2VHUFI7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgaW50OF90
IHZhbHVlVGFnR1BSOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkocmV2aXNpb24gMTcwMzYyKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDg0LDcgKzE0ODQsNyBAQCBSZWdpc3RlcklEKiBSZWFkTW9kaWZ5RG90Tm9kZTo6ZW1p
dEJ5dGVjCiAKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHN1YmV4cHJlc3Npb25E
aXZvdCgpLCBzdWJleHByZXNzaW9uU3RhcnQoKSwgc3ViZXhwcmVzc2lvbkVuZCgpKTsKICAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gdmFsdWUgPSBnZW5lcmF0b3IuZW1pdEdldEJ5SWQoZ2VuZXJhdG9y
LnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpLCBtX2lkZW50KTsKLSAgICBSZWdpc3Rl
cklEKiB1cGRhdGVkVmFsdWUgPSBlbWl0UmVhZE1vZGlmeUFzc2lnbm1lbnQoZ2VuZXJhdG9yLCBn
ZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHZhbHVlLmdldCgpKSwgdmFsdWUuZ2V0KCks
IG1fcmlnaHQsIG1fb3BlcmF0b3IsIE9wZXJhbmRUeXBlcyhSZXN1bHRUeXBlOjp1bmtub3duVHlw
ZSgpLCBtX3JpZ2h0LT5yZXN1bHREZXNjcmlwdG9yKCkpKTsKKyAgICBSZWdpc3RlcklEKiB1cGRh
dGVkVmFsdWUgPSBlbWl0UmVhZE1vZGlmeUFzc2lnbm1lbnQoZ2VuZXJhdG9yLCBnZW5lcmF0b3Iu
ZmluYWxEZXN0aW5hdGlvbihkc3QsIHZhbHVlLmdldCgpKSwgdmFsdWUuZ2V0KCksIG1fcmlnaHQs
IHN0YXRpY19jYXN0PEpTQzo6T3BlcmF0b3I+KG1fb3BlcmF0b3IpLCBPcGVyYW5kVHlwZXMoUmVz
dWx0VHlwZTo6dW5rbm93blR5cGUoKSwgbV9yaWdodC0+cmVzdWx0RGVzY3JpcHRvcigpKSk7CiAK
ICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwg
ZGl2b3RFbmQoKSk7CiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0UHV0QnlJZChiYXNlLmdldCgp
LCBtX2lkZW50LCB1cGRhdGVkVmFsdWUpOwpAQCAtMTUyMSw3ICsxNTIxLDcgQEAgUmVnaXN0ZXJJ
RCogUmVhZE1vZGlmeUJyYWNrZXROb2RlOjplbWl0QgogCiAgICAgZ2VuZXJhdG9yLmVtaXRFeHBy
ZXNzaW9uSW5mbyhzdWJleHByZXNzaW9uRGl2b3QoKSwgc3ViZXhwcmVzc2lvblN0YXJ0KCksIHN1
YmV4cHJlc3Npb25FbmQoKSk7CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHZhbHVlID0gZ2VuZXJh
dG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0
KCksIHByb3BlcnR5LmdldCgpKTsKLSAgICBSZWdpc3RlcklEKiB1cGRhdGVkVmFsdWUgPSBlbWl0
UmVhZE1vZGlmeUFzc2lnbm1lbnQoZ2VuZXJhdG9yLCBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlv
bihkc3QsIHZhbHVlLmdldCgpKSwgdmFsdWUuZ2V0KCksIG1fcmlnaHQsIG1fb3BlcmF0b3IsIE9w
ZXJhbmRUeXBlcyhSZXN1bHRUeXBlOjp1bmtub3duVHlwZSgpLCBtX3JpZ2h0LT5yZXN1bHREZXNj
cmlwdG9yKCkpKTsKKyAgICBSZWdpc3RlcklEKiB1cGRhdGVkVmFsdWUgPSBlbWl0UmVhZE1vZGlm
eUFzc2lnbm1lbnQoZ2VuZXJhdG9yLCBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIHZh
bHVlLmdldCgpKSwgdmFsdWUuZ2V0KCksIG1fcmlnaHQsIHN0YXRpY19jYXN0PEpTQzo6T3BlcmF0
b3I+KG1fb3BlcmF0b3IpLCBPcGVyYW5kVHlwZXMoUmVzdWx0VHlwZTo6dW5rbm93blR5cGUoKSwg
bV9yaWdodC0+cmVzdWx0RGVzY3JpcHRvcigpKSk7CiAKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJl
c3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CiAgICAgZ2VuZXJh
dG9yLmVtaXRQdXRCeVZhbChiYXNlLmdldCgpLCBwcm9wZXJ0eS5nZXQoKSwgdXBkYXRlZFZhbHVl
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgJKHJldmlzaW9uIDE3MDM2
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtMTA0MCw3ICsxMDQwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEV4cHJlc3Np
b25Ob2RlKiBtX2Jhc2U7CiAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBtX3N1YnNjcmlwdDsKICAg
ICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fcmlnaHQ7Ci0gICAgICAgIE9wZXJhdG9yIG1fb3BlcmF0
b3IgOiAzMDsKKyAgICAgICAgdW5zaWduZWQgbV9vcGVyYXRvciA6IDMwOwogICAgICAgICBib29s
IG1fc3Vic2NyaXB0SGFzQXNzaWdubWVudHMgOiAxOwogICAgICAgICBib29sIG1fcmlnaHRIYXNB
c3NpZ25tZW50cyA6IDE7CiAgICAgfTsKQEAgLTEwODIsNyArMTA4Miw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9iYXNlOwogICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiBtX2lkZW50OwogICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9yaWdodDsKLSAgICAg
ICAgT3BlcmF0b3IgbV9vcGVyYXRvciA6IDMxOworICAgICAgICB1bnNpZ25lZCBtX29wZXJhdG9y
IDogMzE7CiAgICAgICAgIGJvb2wgbV9yaWdodEhhc0Fzc2lnbm1lbnRzIDogMTsKICAgICB9Owog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzAzNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wNi0yNCAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBNU1ZDIG1pc2hh
bmRsZXMgZW51bXMgaW4gYml0ZmllbGRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzQyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZXBsYWNlIHVzZXMgb2YgZW51bSB0eXBlcyBpbiBiaXQgZmllbGRz
IHdpdGggdW5zaWduZWQgdG8KKyAgICAgICAgYXZvaWQgbG9zaW5nIGEgYml0IHRvIGhvbGQgdGhl
IHNpZ24gdmFsdWUuIFRoaXMgY2FuIHJlc3VsdAorICAgICAgICBpbiBXaW5kb3dzIGludGVycHJl
dGluZyB0aGUgdmFsdWUgb2YgdGhlIGZpZWxkIGltcHJvcGVybHkuCisKKyAgICAgICAgKiBsb2Fk
ZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlcXVlc3RCYXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlc3BvbnNlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuaDoKKwogMjAxNC0wNi0yNCAgRXZhIEJhbGF6
c2ZhbHZpICA8ZXZhYi51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIEZp
eCB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzIGlmIGluc3BlY3RvciBpcyBkaXNhYmxlZApJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAkocmV2aXNpb24gMTcwMzYy
KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjEsOCArMTIxLDggQEAgU3R5bGVDYWNoZWRJbWFnZVNldCogQ1NTSW1hZ2VTZXRW
YWx1ZTo6YwogICAgICAgICBJbWFnZVdpdGhTY2FsZSBpbWFnZSA9IGJlc3RJbWFnZUZvclNjYWxl
RmFjdG9yKCk7CiAgICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSwgb3B0aW9ucyk7
CiAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMoKS5jc3MpOwotICAgICAgICBpZiAob3B0aW9ucy5yZXF1ZXN0T3JpZ2luUG9saWN5ID09
IFBvdGVudGlhbGx5Q3Jvc3NPcmlnaW5FbmFibGVkKQotICAgICAgICAgICAgdXBkYXRlUmVxdWVz
dEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIGRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpLCBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpOworICAgICAg
ICBpZiAob3B0aW9ucy5yZXF1ZXN0T3JpZ2luUG9saWN5KCkgPT0gUG90ZW50aWFsbHlDcm9zc09y
aWdpbkVuYWJsZWQpCisgICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChy
ZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2lu
KCksIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscygpKTsKICAgICAgICAgaWYgKENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci0+cmVxdWVzdEltYWdl
KHJlcXVlc3QpKSB7CiAgICAgICAgICAgICBkZXRhY2hQZW5kaW5nSW1hZ2UoKTsKICAgICAgICAg
ICAgIG1faW1hZ2VTZXQgPSBTdHlsZUNhY2hlZEltYWdlU2V0OjpjcmVhdGUoY2FjaGVkSW1hZ2Uu
Z2V0KCksIGltYWdlLnNjYWxlRmFjdG9yLCB0aGlzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NJbWFnZVZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1hZ2VWYWx1ZS5jcHAJKHJldmlzaW9uIDE3MDM2MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NJbWFnZVZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsOCArODQsOCBAQCBTdHlsZUNh
Y2hlZEltYWdlKiBDU1NJbWFnZVZhbHVlOjpjYWNoZWRJCiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKG1faW5pdGlhdG9yTmFtZSk7CiAKLSAgICAgICAgaWYg
KG9wdGlvbnMucmVxdWVzdE9yaWdpblBvbGljeSA9PSBQb3RlbnRpYWxseUNyb3NzT3JpZ2luRW5h
YmxlZCkKLSAgICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3Qu
bXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLCBsb2FkZXItPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscyk7CisgICAgICAgIGlmIChvcHRpb25zLnJl
cXVlc3RPcmlnaW5Qb2xpY3koKSA9PSBQb3RlbnRpYWxseUNyb3NzT3JpZ2luRW5hYmxlZCkKKyAg
ICAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QubXV0YWJsZVJl
c291cmNlUmVxdWVzdCgpLCBsb2FkZXItPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG9w
dGlvbnMuYWxsb3dDcmVkZW50aWFscygpKTsKIAogICAgICAgICBpZiAoQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkSW1hZ2U+IGNhY2hlZEltYWdlID0gbG9hZGVyLT5yZXF1ZXN0SW1hZ2UocmVx
dWVzdCkpIHsKICAgICAgICAgICAgIGRldGFjaFBlbmRpbmdJbWFnZSgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAkocmV2aXNpb24gMTcwMzYyKQorKysgU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTM2LDggKzM1
MzYsOCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmxvYWRQZW5kaW5nU2hhcGVJbWFnCiAgICAgYXV0
byYgcGVuZGluZ0ltYWdlID0gdG9TdHlsZVBlbmRpbmdJbWFnZSgqaW1hZ2UpOwogCiAgICAgUmVz
b3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVs
dENhY2hlZFJlc291cmNlT3B0aW9ucygpOwotICAgIG9wdGlvbnMucmVxdWVzdE9yaWdpblBvbGlj
eSA9IFBvdGVudGlhbGx5Q3Jvc3NPcmlnaW5FbmFibGVkOwotICAgIG9wdGlvbnMuYWxsb3dDcmVk
ZW50aWFscyA9IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKKyAgICBvcHRpb25zLnNldFJl
cXVlc3RPcmlnaW5Qb2xpY3koUG90ZW50aWFsbHlDcm9zc09yaWdpbkVuYWJsZWQpOworICAgIG9w
dGlvbnMuc2V0QWxsb3dDcmVkZW50aWFscyhEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwog
CiAgICAgc2hhcGVWYWx1ZS0+c2V0SW1hZ2UobG9hZFBlbmRpbmdJbWFnZShwZW5kaW5nSW1hZ2Us
IG9wdGlvbnMpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxv
YWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVy
TG9hZGVyLmNwcAkocmV2aXNpb24gMTcwMzYyKQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlUmVhZGVyTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsMTAgKzkyLDEwIEBAIHZv
aWQgRmlsZVJlYWRlckxvYWRlcjo6c3RhcnQoU2NyaXB0RXhlY3UKICAgICAgICAgcmVxdWVzdC5z
ZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlJhbmdlLCBTdHJpbmc6OmZvcm1hdCgi
Ynl0ZXM9JWQtJWQiLCBtX3JhbmdlU3RhcnQsIG1fcmFuZ2VFbmQpKTsKIAogICAgIFRocmVhZGFi
bGVMb2FkZXJPcHRpb25zIG9wdGlvbnM7Ci0gICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9
IFNlbmRDYWxsYmFja3M7Ci0gICAgb3B0aW9ucy5zbmlmZkNvbnRlbnQgPSBEb05vdFNuaWZmQ29u
dGVudDsKKyAgICBvcHRpb25zLnNldFNlbmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxsYmFja3MpOwor
ICAgIG9wdGlvbnMuc2V0U25pZmZDb250ZW50KERvTm90U25pZmZDb250ZW50KTsKICAgICBvcHRp
b25zLnByZWZsaWdodFBvbGljeSA9IENvbnNpZGVyUHJlZmxpZ2h0OwotICAgIG9wdGlvbnMuYWxs
b3dDcmVkZW50aWFscyA9IEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CisgICAgb3B0aW9ucy5zZXRB
bGxvd0NyZWRlbnRpYWxzKEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwogICAgIG9wdGlvbnMuY3Jv
c3NPcmlnaW5SZXF1ZXN0UG9saWN5ID0gRGVueUNyb3NzT3JpZ2luUmVxdWVzdHM7CiAKICAgICBp
ZiAobV9jbGllbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclJlc291cmNlQWdlbnQuY3BwCShyZXZpc2lvbiAxNzAzNjIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc2MCw4ICs3NjAsOCBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmxvYWRSZXNv
dXJjCiAgICAgcmVxdWVzdC5zZXRIaWRkZW5Gcm9tSW5zcGVjdG9yKHRydWUpOwogCiAgICAgVGhy
ZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25zLnNlbmRMb2FkQ2FsbGJh
Y2tzID0gU2VuZENhbGxiYWNrczsgLy8gU28gd2UgcmVtb3ZlIHRoaXMgZnJvbSBtX2hpZGRlblJl
cXVlc3RJZGVudGlmaWVycyBvbiBjb21wbGV0aW9uLgotICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50
aWFscyA9IEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CisgICAgb3B0aW9ucy5zZXRTZW5kTG9hZENh
bGxiYWNrcyhTZW5kQ2FsbGJhY2tzKTsgLy8gU28gd2UgcmVtb3ZlIHRoaXMgZnJvbSBtX2hpZGRl
blJlcXVlc3RJZGVudGlmaWVycyBvbiBjb21wbGV0aW9uLgorICAgIG9wdGlvbnMuc2V0QWxsb3dD
cmVkZW50aWFscyhBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKICAgICBvcHRpb25zLmNyb3NzT3Jp
Z2luUmVxdWVzdFBvbGljeSA9IEFsbG93Q3Jvc3NPcmlnaW5SZXF1ZXN0czsKIAogICAgIC8vIElu
c3BlY3RvclRocmVhZGFibGVMb2FkZXJDbGllbnQgZGVsZXRlcyBpdHNlbGYgd2hlbiB0aGUgbG9h
ZCBjb21wbGV0ZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmNwcAkocmV2aXNpb24gMTcwMzYyKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTk5LDcgKzk5LDcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Om1ha2VDcm9zcwog
ICAgIEFTU0VSVChtX29wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID09IFVzZUFjY2Vz
c0NvbnRyb2wpOwogCiAgICAgT3duUHRyPFJlc291cmNlUmVxdWVzdD4gY3Jvc3NPcmlnaW5SZXF1
ZXN0ID0gYWRvcHRQdHIobmV3IFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSk7Ci0gICAgdXBkYXRl
UmVxdWVzdEZvckFjY2Vzc0NvbnRyb2woKmNyb3NzT3JpZ2luUmVxdWVzdCwgc2VjdXJpdHlPcmln
aW4oKSwgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpOworICAgIHVwZGF0ZVJlcXVlc3RGb3JB
Y2Nlc3NDb250cm9sKCpjcm9zc09yaWdpblJlcXVlc3QsIHNlY3VyaXR5T3JpZ2luKCksIG1fb3B0
aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCkpOwogCiAgICAgaWYgKChtX29wdGlvbnMucHJlZmxpZ2h0
UG9saWN5ID09IENvbnNpZGVyUHJlZmxpZ2h0ICYmIGlzU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NS
ZXF1ZXN0KGNyb3NzT3JpZ2luUmVxdWVzdC0+aHR0cE1ldGhvZCgpLCBjcm9zc09yaWdpblJlcXVl
c3QtPmh0dHBIZWFkZXJGaWVsZHMoKSkpIHx8IG1fb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPT0g
UHJldmVudFByZWZsaWdodCkKICAgICAgICAgbWFrZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVx
dWVzdCgqY3Jvc3NPcmlnaW5SZXF1ZXN0KTsKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIERvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcjo6bWFrZUNyb3NzCiAgICAgICAgIG1fc2ltcGxlUmVxdWVzdCA9
IGZhbHNlOwogICAgICAgICBtX2FjdHVhbFJlcXVlc3QgPSBjcm9zc09yaWdpblJlcXVlc3QucmVs
ZWFzZSgpOwogCi0gICAgICAgIGlmIChDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpz
aGFyZWQoKS5jYW5Ta2lwUHJlZmxpZ2h0KHNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG1f
YWN0dWFsUmVxdWVzdC0+dXJsKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLCBtX2FjdHVh
bFJlcXVlc3QtPmh0dHBNZXRob2QoKSwgbV9hY3R1YWxSZXF1ZXN0LT5odHRwSGVhZGVyRmllbGRz
KCkpKQorICAgICAgICBpZiAoQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2hhcmVk
KCkuY2FuU2tpcFByZWZsaWdodChzZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCBtX2FjdHVh
bFJlcXVlc3QtPnVybCgpLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscygpLCBtX2FjdHVhbFJl
cXVlc3QtPmh0dHBNZXRob2QoKSwgbV9hY3R1YWxSZXF1ZXN0LT5odHRwSGVhZGVyRmllbGRzKCkp
KQogICAgICAgICAgICAgcHJlZmxpZ2h0U3VjY2VzcygpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBtYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0V2l0aFByZWZsaWdodCgqbV9hY3R1YWxS
ZXF1ZXN0KTsKQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRl
cjo6cmVkaXJlY3RSCiAgICAgICAgICAgICBhbGxvd1JlZGlyZWN0ID0gU2NoZW1lUmVnaXN0cnk6
OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNDT1JTRW5hYmxlZChyZXF1ZXN0LnVybCgpLnByb3RvY29s
KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcmVxdWVzdC51cmwoKS51c2VyKCku
aXNFbXB0eSgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcmVxdWVzdC51cmwoKS5w
YXNzKCkuaXNFbXB0eSgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcGFzc2VzQWNj
ZXNzQ29udHJvbENoZWNrKHJlZGlyZWN0UmVzcG9uc2UsIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzLCBzZWN1cml0eU9yaWdpbigpLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlvbik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgcGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKHJl
ZGlyZWN0UmVzcG9uc2UsIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCksIHNlY3VyaXR5T3Jp
Z2luKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmIChhbGxvd1JlZGlyZWN0KSB7CkBAIC0yNDcsMTIgKzI0NywxMiBAQCB2b2lkIERvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoY29va2llLCBpZGVudGlmaWVyLCBs
b2FkZXIsIHJlc3BvbnNlLCAwKTsKICNlbmRpZgogCi0gICAgICAgIGlmICghcGFzc2VzQWNjZXNz
Q29udHJvbENoZWNrKHJlc3BvbnNlLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscywgc2VjdXJp
dHlPcmlnaW4oKSwgYWNjZXNzQ29udHJvbEVycm9yRGVzY3JpcHRpb24pKSB7CisgICAgICAgIGlm
ICghcGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKHJlc3BvbnNlLCBtX29wdGlvbnMuYWxsb3dDcmVk
ZW50aWFscygpLCBzZWN1cml0eU9yaWdpbigpLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlv
bikpIHsKICAgICAgICAgICAgIHByZWZsaWdodEZhaWx1cmUoaWRlbnRpZmllciwgcmVzcG9uc2Uu
dXJsKCksIGFjY2Vzc0NvbnRyb2xFcnJvckRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCi0gICAgICAgIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93Q3JlZGVudGlh
bHMgPSBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFsczsKKyAgICAgICAgU3RvcmVkQ3JlZGVudGlh
bHMgYWxsb3dDcmVkZW50aWFscyA9IG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCk7CiAgICAg
ICAgIGF1dG8gcHJlZmxpZ2h0UmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxDcm9zc09yaWdpblBy
ZWZsaWdodFJlc3VsdENhY2hlSXRlbT4oYWxsb3dDcmVkZW50aWFscyk7CiAgICAgICAgIGlmICgh
cHJlZmxpZ2h0UmVzdWx0LT5wYXJzZShyZXNwb25zZSwgYWNjZXNzQ29udHJvbEVycm9yRGVzY3Jp
cHRpb24pCiAgICAgICAgICAgICB8fCAhcHJlZmxpZ2h0UmVzdWx0LT5hbGxvd3NDcm9zc09yaWdp
bk1ldGhvZChtX2FjdHVhbFJlcXVlc3QtPmh0dHBNZXRob2QoKSwgYWNjZXNzQ29udHJvbEVycm9y
RGVzY3JpcHRpb24pCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVM
b2FkZXI6OmRpZFJlY2VpdgogICAgICAgICBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hl
OjpzaGFyZWQoKS5hcHBlbmRFbnRyeShzZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCBtX2Fj
dHVhbFJlcXVlc3QtPnVybCgpLCBzdGQ6Om1vdmUocHJlZmxpZ2h0UmVzdWx0KSk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgaWYgKCFtX3NhbWVPcmlnaW5SZXF1ZXN0ICYmIG1fb3B0aW9ucy5jcm9z
c09yaWdpblJlcXVlc3RQb2xpY3kgPT0gVXNlQWNjZXNzQ29udHJvbCkgewotICAgICAgICAgICAg
aWYgKCFwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2socmVzcG9uc2UsIG1fb3B0aW9ucy5hbGxvd0Ny
ZWRlbnRpYWxzLCBzZWN1cml0eU9yaWdpbigpLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlv
bikpIHsKKyAgICAgICAgICAgIGlmICghcGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKHJlc3BvbnNl
LCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscygpLCBzZWN1cml0eU9yaWdpbigpLCBhY2Nlc3ND
b250cm9sRXJyb3JEZXNjcmlwdGlvbikpIHsKICAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlk
RmFpbEFjY2Vzc0NvbnRyb2xDaGVjayhSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluV2ViS2l0SW50
ZXJuYWwsIDAsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCBhY2Nlc3NDb250cm9sRXJyb3JEZXNj
cmlwdGlvbikpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTM2
MywxOSArMzYzLDE5IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWUK
IHsKICAgICAvLyBBbnkgY3JlZGVudGlhbCBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0
aGUgY3Jvc3Mtc2l0ZSByZXF1ZXN0cy4KICAgICBjb25zdCBVUkwmIHJlcXVlc3RVUkwgPSByZXF1
ZXN0LnVybCgpOwotICAgIG1fb3B0aW9ucy5zZWN1cml0eUNoZWNrID0gc2VjdXJpdHlDaGVjazsK
KyAgICBtX29wdGlvbnMuc2V0U2VjdXJpdHlDaGVjayhzZWN1cml0eUNoZWNrKTsKICAgICBBU1NF
UlQobV9zYW1lT3JpZ2luUmVxdWVzdCB8fCByZXF1ZXN0VVJMLnVzZXIoKS5pc0VtcHR5KCkpOwog
ICAgIEFTU0VSVChtX3NhbWVPcmlnaW5SZXF1ZXN0IHx8IHJlcXVlc3RVUkwucGFzcygpLmlzRW1w
dHkoKSk7CiAKICAgICBpZiAobV9hc3luYykgewogICAgICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0
aW9ucyBvcHRpb25zID0gbV9vcHRpb25zOwotICAgICAgICBvcHRpb25zLmNsaWVudENyZWRlbnRp
YWxQb2xpY3kgPSBEb05vdEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHM7CisgICAg
ICAgIG9wdGlvbnMuc2V0Q2xpZW50Q3JlZGVudGlhbFBvbGljeShEb05vdEFza0NsaWVudEZvckNy
b3NzT3JpZ2luQ3JlZGVudGlhbHMpOwogICAgICAgICBpZiAobV9hY3R1YWxSZXF1ZXN0KSB7CiAg
ICAgICAgICAgICAvLyBEb24ndCBzbmlmZiBjb250ZW50IG9yIHNlbmQgbG9hZCBjYWxsYmFja3Mg
Zm9yIHRoZSBwcmVmbGlnaHQgcmVxdWVzdC4KLSAgICAgICAgICAgIG9wdGlvbnMuc2VuZExvYWRD
YWxsYmFja3MgPSBEb05vdFNlbmRDYWxsYmFja3M7Ci0gICAgICAgICAgICBvcHRpb25zLnNuaWZm
Q29udGVudCA9IERvTm90U25pZmZDb250ZW50OworICAgICAgICAgICAgb3B0aW9ucy5zZXRTZW5k
TG9hZENhbGxiYWNrcyhEb05vdFNlbmRDYWxsYmFja3MpOworICAgICAgICAgICAgb3B0aW9ucy5z
ZXRTbmlmZkNvbnRlbnQoRG9Ob3RTbmlmZkNvbnRlbnQpOwogICAgICAgICAgICAgLy8gS2VlcCBi
dWZmZXJpbmcgdGhlIGRhdGEgZm9yIHRoZSBwcmVmbGlnaHQgcmVxdWVzdC4KLSAgICAgICAgICAg
IG9wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9IEJ1ZmZlckRhdGE7CisgICAgICAgICAgICBv
cHRpb25zLnNldERhdGFCdWZmZXJpbmdQb2xpY3koQnVmZmVyRGF0YSk7CiAgICAgICAgIH0KIAog
ICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdChyZXF1ZXN0LCBvcHRpb25z
KTsKQEAgLTQwMiw3ICs0MDIsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9h
ZFJlcXVlCiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKICAgICB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIGxvbmc+OjptYXgoKTsK
ICAgICBpZiAobV9kb2N1bWVudC5mcmFtZSgpKQotICAgICAgICBpZGVudGlmaWVyID0gbV9kb2N1
bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5sb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KHJlcXVlc3Qs
IG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLCBtX29wdGlvbnMuY2xpZW50Q3JlZGVudGlhbFBv
bGljeSwgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKKyAgICAgICAgaWRlbnRpZmllciA9IG1fZG9j
dW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkubG9hZFJlc291cmNlU3luY2hyb25vdXNseShyZXF1ZXN0
LCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscygpLCBtX29wdGlvbnMuY2xpZW50Q3JlZGVudGlh
bFBvbGljeSgpLCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkb2N1bWVudFRocmVhZGFibGVMb2FkZXJTdGFydGVkTG9hZGluZ0ZvckNsaWVu
dCgmbV9kb2N1bWVudCwgaWRlbnRpZmllciwgbV9jbGllbnQpOwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDE3MDM2MikKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
MSw3ICsxMjEsNyBAQCBib29sIFJlc291cmNlTG9hZGVyOjppbml0KGNvbnN0IFJlc291cmNlCiAj
ZW5kaWYKICAgICAKICAgICBtX2RlZmVyc0xvYWRpbmcgPSBtX2ZyYW1lLT5wYWdlKCktPmRlZmVy
c0xvYWRpbmcoKTsKLSAgICBpZiAobV9vcHRpb25zLnNlY3VyaXR5Q2hlY2sgPT0gRG9TZWN1cml0
eUNoZWNrICYmICFtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNw
bGF5KGNsaWVudFJlcXVlc3QudXJsKCkpKSB7CisgICAgaWYgKG1fb3B0aW9ucy5zZWN1cml0eUNo
ZWNrKCkgPT0gRG9TZWN1cml0eUNoZWNrICYmICFtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpLT5jYW5EaXNwbGF5KGNsaWVudFJlcXVlc3QudXJsKCkpKSB7CiAgICAgICAgIEZy
YW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQobV9mcmFtZS5nZXQoKSwgY2xpZW50UmVx
dWVzdC51cmwoKS5zdHJpbmcoKSk7CiAgICAgICAgIHJlbGVhc2VSZXNvdXJjZXMoKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6
OnN0YXJ0KCkKICAgICB9CiAKICAgICBpZiAoIW1fcmVhY2hlZFRlcm1pbmFsU3RhdGUpCi0gICAg
ICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShtX2ZyYW1lLT5sb2FkZXIoKS5u
ZXR3b3JraW5nQ29udGV4dCgpLCBtX3JlcXVlc3QsIHRoaXMsIG1fZGVmZXJzTG9hZGluZywgbV9v
cHRpb25zLnNuaWZmQ29udGVudCA9PSBTbmlmZkNvbnRlbnQpOworICAgICAgICBtX2hhbmRsZSA9
IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9mcmFtZS0+bG9hZGVyKCkubmV0d29ya2luZ0NvbnRl
eHQoKSwgbV9yZXF1ZXN0LCB0aGlzLCBtX2RlZmVyc0xvYWRpbmcsIG1fb3B0aW9ucy5zbmlmZkNv
bnRlbnQoKSA9PSBTbmlmZkNvbnRlbnQpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpzZXRE
ZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzKQpAQCAtMjAwLDcgKzIwMCw3IEBAIEZyYW1lTG9hZGVy
KiBSZXNvdXJjZUxvYWRlcjo6ZnJhbWVMb2FkZXIKIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6c2V0
RGF0YUJ1ZmZlcmluZ1BvbGljeShEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2xp
Y3kpCiB7IAotICAgIG1fb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5ID0gZGF0YUJ1ZmZlcmlu
Z1BvbGljeTsgCisgICAgbV9vcHRpb25zLnNldERhdGFCdWZmZXJpbmdQb2xpY3koZGF0YUJ1ZmZl
cmluZ1BvbGljeSk7IAogCiAgICAgLy8gUmVzZXQgYW55IGFscmVhZHkgYnVmZmVyZWQgZGF0YQog
ICAgIGlmIChkYXRhQnVmZmVyaW5nUG9saWN5ID09IERvTm90QnVmZmVyRGF0YSkKQEAgLTIxNyw3
ICsyMTcsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU3dpdGNoVG9TdWJzdGl0CiAKIHZv
aWQgUmVzb3VyY2VMb2FkZXI6OmFkZERhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCB1bnNp
Z25lZCBsZW5ndGgsIFNoYXJlZEJ1ZmZlciogYnVmZmVyLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBh
eWxvYWRUeXBlKQogewotICAgIGlmIChtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9PSBE
b05vdEJ1ZmZlckRhdGEpCisgICAgaWYgKG1fb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5KCkg
PT0gRG9Ob3RCdWZmZXJEYXRhKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZGF0YVBheWxv
YWRUeXBlID09IERhdGFQYXlsb2FkV2hvbGVSZXNvdXJjZSkgewpAQCAtMjc1LDcgKzI3NSw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXMKICAgICAgICAgY3JlYXRl
ZFJlc291cmNlSWRlbnRpZmllciA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKG1fb3B0aW9ucy5z
ZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzKSB7CisgICAgaWYgKG1fb3B0aW9ucy5z
ZW5kTG9hZENhbGxiYWNrcygpID09IFNlbmRDYWxsYmFja3MpIHsKICAgICAgICAgaWYgKGNyZWF0
ZWRSZXNvdXJjZUlkZW50aWZpZXIpCiAgICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmll
cigpLmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KG1faWRlbnRpZmllciwgZG9jdW1l
bnRMb2FkZXIoKSwgcmVxdWVzdCk7CiAKQEAgLTMxMiw3ICszMTIsNyBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoCiAgICAgaWYgKEZvcm1EYXRhKiBkYXRhID0gbV9y
ZXF1ZXN0Lmh0dHBCb2R5KCkpCiAgICAgICAgIGRhdGEtPnJlbW92ZUdlbmVyYXRlZEZpbGVzSWZO
ZWVkZWQoKTsKICAgICAgICAgCi0gICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9
PSBTZW5kQ2FsbGJhY2tzKQorICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MoKSA9
PSBTZW5kQ2FsbGJhY2tzKQogICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRpZFJl
Y2VpdmVSZXNwb25zZSh0aGlzLCBtX3Jlc3BvbnNlKTsKIH0KIApAQCAtMzQ3LDcgKzM0Nyw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWYKICAgICAvLyBGSVhNRTog
SWYgd2UgZ2V0IGEgcmVzb3VyY2Ugd2l0aCBtb3JlIHRoYW4gMkIgYnl0ZXMsIHRoaXMgY29kZSB3
b24ndCBkbyB0aGUgcmlnaHQgdGhpbmcuCiAgICAgLy8gSG93ZXZlciwgd2l0aCB0b2RheSdzIGNv
bXB1dGVycyBhbmQgbmV0d29ya2luZyBzcGVlZHMsIHRoaXMgd29uJ3QgaGFwcGVuIGluIHByYWN0
aWNlLgogICAgIC8vIENvdWxkIGJlIGFuIGlzc3VlIHdpdGggYSBnaWFudCBsb2NhbCBmaWxlLgot
ICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPT0gU2VuZENhbGxiYWNrcyAmJiBt
X2ZyYW1lKQorICAgIGlmIChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MoKSA9PSBTZW5kQ2Fs
bGJhY2tzICYmIG1fZnJhbWUpCiAgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCkuZGlk
UmVjZWl2ZURhdGEodGhpcywgYnVmZmVyID8gYnVmZmVyLT5kYXRhKCkgOiBkYXRhLCBidWZmZXIg
PyBidWZmZXItPnNpemUoKSA6IGxlbmd0aCwgc3RhdGljX2Nhc3Q8aW50PihlbmNvZGVkRGF0YUxl
bmd0aCkpOwogfQogCkBAIC0zNzMsNyArMzczLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlk
RmluaXNoTG9hZGluZ09uZQogICAgIGlmIChtX25vdGlmaWVkTG9hZENvbXBsZXRlKQogICAgICAg
ICByZXR1cm47CiAgICAgbV9ub3RpZmllZExvYWRDb21wbGV0ZSA9IHRydWU7Ci0gICAgaWYgKG1f
b3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzKQorICAgIGlmIChtX29w
dGlvbnMuc2VuZExvYWRDYWxsYmFja3MoKSA9PSBTZW5kQ2FsbGJhY2tzKQogICAgICAgICBmcmFt
ZUxvYWRlcigpLT5ub3RpZmllcigpLmRpZEZpbmlzaExvYWQodGhpcywgZmluaXNoVGltZSk7CiB9
CiAKQEAgLTM5OSw3ICszOTksNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpjbGVhbnVwRm9yRXJy
b3IoY29uCiAgICAgaWYgKG1fbm90aWZpZWRMb2FkQ29tcGxldGUpCiAgICAgICAgIHJldHVybjsK
ICAgICBtX25vdGlmaWVkTG9hZENvbXBsZXRlID0gdHJ1ZTsKLSAgICBpZiAobV9vcHRpb25zLnNl
bmRMb2FkQ2FsbGJhY2tzID09IFNlbmRDYWxsYmFja3MgJiYgbV9pZGVudGlmaWVyKQorICAgIGlm
IChtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MoKSA9PSBTZW5kQ2FsbGJhY2tzICYmIG1faWRl
bnRpZmllcikKICAgICAgICAgZnJhbWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaWRGYWlsVG9Mb2Fk
KHRoaXMsIGVycm9yKTsKIH0KIApAQCAtNTM2LDcgKzUzNiw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
ZXI6OmNhbm5vdFNob3dVUkwoUmVzb3UKIAogYm9vbCBSZXNvdXJjZUxvYWRlcjo6c2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UoKQogewotICAgIGlmIChtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFs
cyA9PSBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpCisgICAgaWYgKG1fb3B0aW9ucy5hbGxv
d0NyZWRlbnRpYWxzKCkgPT0gRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgUmVmPFJlc291cmNlTG9hZGVyPiBwcm90ZWN0KCp0aGlz
KTsKQEAgLTU1MSw4ICs1NTEsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQXV0
aGVudGljCiAgICAgLy8gYW55dGhpbmcgaW5jbHVkaW5nIHBvc3NpYmx5IGRlcmVmaW5nIHRoaXM7
IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgUmFkYXIgMzI2NjIxNi4KICAgICBSZWY8UmVzb3VyY2VM
b2FkZXI+IHByb3RlY3QoKnRoaXMpOwogCi0gICAgaWYgKG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpIHsKLSAgICAgICAgaWYgKG1fb3B0aW9ucy5j
bGllbnRDcmVkZW50aWFsUG9saWN5ID09IEFza0NsaWVudEZvckFsbENyZWRlbnRpYWxzIHx8ICht
X29wdGlvbnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9PSBEb05vdEFza0NsaWVudEZvckNyb3Nz
T3JpZ2luQ3JlZGVudGlhbHMgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KS0+Y2FuUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QoKS51cmwoKSkpKSB7CisgICAgaWYgKG1fb3B0
aW9ucy5hbGxvd0NyZWRlbnRpYWxzKCkgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscykgeworICAg
ICAgICBpZiAobV9vcHRpb25zLmNsaWVudENyZWRlbnRpYWxQb2xpY3koKSA9PSBBc2tDbGllbnRG
b3JBbGxDcmVkZW50aWFscyB8fCAobV9vcHRpb25zLmNsaWVudENyZWRlbnRpYWxQb2xpY3koKSA9
PSBEb05vdEFza0NsaWVudEZvckNyb3NzT3JpZ2luQ3JlZGVudGlhbHMgJiYgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChvcmlnaW5hbFJlcXVlc3QoKS51
cmwoKSkpKSB7CiAgICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh0aGlzLCBjaGFsbGVuZ2UpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuaAkocmV2aXNpb24gMTcwMzYyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSwxMCArMTE5LDEwIEBAIHB1YmxpYzoKIAog
ICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0LnVybCgpOyB9CiAg
ICAgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxlLmdldCgp
OyB9Ci0gICAgYm9vbCBzaG91bGRTZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID09IFNlbmRDYWxsYmFja3M7IH0KLSAg
ICB2b2lkIHNldFNlbmRDYWxsYmFja1BvbGljeShTZW5kQ2FsbGJhY2tQb2xpY3kgc2VuZExvYWRD
YWxsYmFja3MpIHsgbV9vcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID0gc2VuZExvYWRDYWxsYmFj
a3M7IH0KLSAgICBib29sIHNob3VsZFNuaWZmQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0
aW9ucy5zbmlmZkNvbnRlbnQgPT0gU25pZmZDb250ZW50OyB9Ci0gICAgQ2xpZW50Q3JlZGVudGlh
bFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25z
LmNsaWVudENyZWRlbnRpYWxQb2xpY3k7IH0KKyAgICBib29sIHNob3VsZFNlbmRSZXNvdXJjZUxv
YWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3Mo
KSA9PSBTZW5kQ2FsbGJhY2tzOyB9CisgICAgdm9pZCBzZXRTZW5kQ2FsbGJhY2tQb2xpY3koU2Vu
ZENhbGxiYWNrUG9saWN5IHNlbmRMb2FkQ2FsbGJhY2tzKSB7IG1fb3B0aW9ucy5zZXRTZW5kTG9h
ZENhbGxiYWNrcyhzZW5kTG9hZENhbGxiYWNrcyk7IH0KKyAgICBib29sIHNob3VsZFNuaWZmQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5zbmlmZkNvbnRlbnQoKSA9PSBTbmlmZkNv
bnRlbnQ7IH0KKyAgICBDbGllbnRDcmVkZW50aWFsUG9saWN5IGNsaWVudENyZWRlbnRpYWxQb2xp
Y3koKSBjb25zdCB7IHJldHVybiBtX29wdGlvbnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSgpOyB9
CiAKICAgICBib29sIHJlYWNoZWRUZXJtaW5hbFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFj
aGVkVGVybWluYWxTdGF0ZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jl
c291cmNlTG9hZGVyT3B0aW9ucy5oCShyZXZpc2lvbiAxNzAzNjIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTYzLDMz
ICs2Myw0OSBAQCBlbnVtIFJlcXVlc3RPcmlnaW5Qb2xpY3kgewogCiBzdHJ1Y3QgUmVzb3VyY2VM
b2FkZXJPcHRpb25zIHsKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMoKQotICAgICAgICA6IHNl
bmRMb2FkQ2FsbGJhY2tzKERvTm90U2VuZENhbGxiYWNrcykKLSAgICAgICAgLCBzbmlmZkNvbnRl
bnQoRG9Ob3RTbmlmZkNvbnRlbnQpCi0gICAgICAgICwgZGF0YUJ1ZmZlcmluZ1BvbGljeShCdWZm
ZXJEYXRhKQotICAgICAgICAsIGFsbG93Q3JlZGVudGlhbHMoRG9Ob3RBbGxvd1N0b3JlZENyZWRl
bnRpYWxzKQotICAgICAgICAsIGNsaWVudENyZWRlbnRpYWxQb2xpY3koRG9Ob3RBc2tDbGllbnRG
b3JBbnlDcmVkZW50aWFscykKLSAgICAgICAgLCBzZWN1cml0eUNoZWNrKERvU2VjdXJpdHlDaGVj
aykKLSAgICAgICAgLCByZXF1ZXN0T3JpZ2luUG9saWN5KFVzZURlZmF1bHRPcmlnaW5SZXN0cmlj
dGlvbnNGb3JUeXBlKQorICAgICAgICA6IG1fc2VuZExvYWRDYWxsYmFja3MoRG9Ob3RTZW5kQ2Fs
bGJhY2tzKQorICAgICAgICAsIG1fc25pZmZDb250ZW50KERvTm90U25pZmZDb250ZW50KQorICAg
ICAgICAsIG1fZGF0YUJ1ZmZlcmluZ1BvbGljeShCdWZmZXJEYXRhKQorICAgICAgICAsIG1fYWxs
b3dDcmVkZW50aWFscyhEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpCisgICAgICAgICwgbV9j
bGllbnRDcmVkZW50aWFsUG9saWN5KERvTm90QXNrQ2xpZW50Rm9yQW55Q3JlZGVudGlhbHMpCisg
ICAgICAgICwgbV9zZWN1cml0eUNoZWNrKERvU2VjdXJpdHlDaGVjaykKKyAgICAgICAgLCBtX3Jl
cXVlc3RPcmlnaW5Qb2xpY3koVXNlRGVmYXVsdE9yaWdpblJlc3RyaWN0aW9uc0ZvclR5cGUpCiAg
ICAgewogICAgIH0KIAogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tQb2xp
Y3kgc2VuZExvYWRDYWxsYmFja3MsIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzbmlmZkNvbnRlbnQs
IERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGljeSwgU3RvcmVkQ3JlZGVudGlh
bHMgYWxsb3dDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSBjcmVkZW50aWFsUG9s
aWN5LCBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3VyaXR5Q2hlY2ssIFJlcXVlc3RPcmlnaW5Qb2xp
Y3kgcmVxdWVzdE9yaWdpblBvbGljeSkKLSAgICAgICAgOiBzZW5kTG9hZENhbGxiYWNrcyhzZW5k
TG9hZENhbGxiYWNrcykKLSAgICAgICAgLCBzbmlmZkNvbnRlbnQoc25pZmZDb250ZW50KQotICAg
ICAgICAsIGRhdGFCdWZmZXJpbmdQb2xpY3koZGF0YUJ1ZmZlcmluZ1BvbGljeSkKLSAgICAgICAg
LCBhbGxvd0NyZWRlbnRpYWxzKGFsbG93Q3JlZGVudGlhbHMpCi0gICAgICAgICwgY2xpZW50Q3Jl
ZGVudGlhbFBvbGljeShjcmVkZW50aWFsUG9saWN5KQotICAgICAgICAsIHNlY3VyaXR5Q2hlY2so
c2VjdXJpdHlDaGVjaykKLSAgICAgICAgLCByZXF1ZXN0T3JpZ2luUG9saWN5KHJlcXVlc3RPcmln
aW5Qb2xpY3kpCisgICAgICAgIDogbV9zZW5kTG9hZENhbGxiYWNrcyhzZW5kTG9hZENhbGxiYWNr
cykKKyAgICAgICAgLCBtX3NuaWZmQ29udGVudChzbmlmZkNvbnRlbnQpCisgICAgICAgICwgbV9k
YXRhQnVmZmVyaW5nUG9saWN5KGRhdGFCdWZmZXJpbmdQb2xpY3kpCisgICAgICAgICwgbV9hbGxv
d0NyZWRlbnRpYWxzKGFsbG93Q3JlZGVudGlhbHMpCisgICAgICAgICwgbV9jbGllbnRDcmVkZW50
aWFsUG9saWN5KGNyZWRlbnRpYWxQb2xpY3kpCisgICAgICAgICwgbV9zZWN1cml0eUNoZWNrKHNl
Y3VyaXR5Q2hlY2spCisgICAgICAgICwgbV9yZXF1ZXN0T3JpZ2luUG9saWN5KHJlcXVlc3RPcmln
aW5Qb2xpY3kpCiAgICAgewogICAgIH0KLSAgICBTZW5kQ2FsbGJhY2tQb2xpY3kgc2VuZExvYWRD
YWxsYmFja3MgOiAxOwotICAgIENvbnRlbnRTbmlmZmluZ1BvbGljeSBzbmlmZkNvbnRlbnQgOiAx
OwotICAgIERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGljeSA6IDE7Ci0gICAg
U3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscyA6IDE7IC8vIFdoZXRoZXIgSFRUUCBj
cmVkZW50aWFscyBhbmQgY29va2llcyBhcmUgc2VudCB3aXRoIHRoZSByZXF1ZXN0LgotICAgIENs
aWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlhbFBvbGljeSA6IDI7IC8vIFdoZW4g
d2Ugc2hvdWxkIGFzayB0aGUgY2xpZW50IGZvciBjcmVkZW50aWFscyAoaWYgd2UgYWxsb3cgY3Jl
ZGVudGlhbHMgYXQgYWxsKS4KLSAgICBTZWN1cml0eUNoZWNrUG9saWN5IHNlY3VyaXR5Q2hlY2sg
OiAxOwotICAgIFJlcXVlc3RPcmlnaW5Qb2xpY3kgcmVxdWVzdE9yaWdpblBvbGljeSA6IDI7CisK
KyAgICBTZW5kQ2FsbGJhY2tQb2xpY3kgc2VuZExvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxTZW5kQ2FsbGJhY2tQb2xpY3k+KG1fc2VuZExvYWRDYWxsYmFja3MpOyB9
CisgICAgdm9pZCBzZXRTZW5kTG9hZENhbGxiYWNrcyhTZW5kQ2FsbGJhY2tQb2xpY3kgYWxsb3cp
IHsgbV9zZW5kTG9hZENhbGxiYWNrcyA9IGFsbG93OyB9CisgICAgQ29udGVudFNuaWZmaW5nUG9s
aWN5IHNuaWZmQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbnRlbnRTbmlm
ZmluZ1BvbGljeT4obV9zbmlmZkNvbnRlbnQpOyB9CisgICAgdm9pZCBzZXRTbmlmZkNvbnRlbnQo
Q29udGVudFNuaWZmaW5nUG9saWN5IHBvbGljeSkgeyBtX3NuaWZmQ29udGVudCA9IHBvbGljeTsg
fQorICAgIERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGljeSgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PERhdGFCdWZmZXJpbmdQb2xpY3k+KG1fZGF0YUJ1ZmZlcmluZ1Bv
bGljeSk7IH0KKyAgICB2b2lkIHNldERhdGFCdWZmZXJpbmdQb2xpY3koRGF0YUJ1ZmZlcmluZ1Bv
bGljeSBwb2xpY3kpIHsgbV9kYXRhQnVmZmVyaW5nUG9saWN5ID0gcG9saWN5OyB9CisgICAgU3Rv
cmVkQ3JlZGVudGlhbHMgYWxsb3dDcmVkZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PFN0b3JlZENyZWRlbnRpYWxzPihtX2FsbG93Q3JlZGVudGlhbHMpOyB9CisgICAgdm9pZCBz
ZXRBbGxvd0NyZWRlbnRpYWxzKFN0b3JlZENyZWRlbnRpYWxzIGFsbG93KSB7IG1fYWxsb3dDcmVk
ZW50aWFscyA9IGFsbG93OyB9CisgICAgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVk
ZW50aWFsUG9saWN5KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q2xpZW50Q3JlZGVudGlh
bFBvbGljeT4obV9jbGllbnRDcmVkZW50aWFsUG9saWN5KTsgfQorICAgIHZvaWQgc2V0Q2xpZW50
Q3JlZGVudGlhbFBvbGljeShDbGllbnRDcmVkZW50aWFsUG9saWN5IHBvbGljeSkgeyBtX2NsaWVu
dENyZWRlbnRpYWxQb2xpY3kgPSBwb2xpY3k7IH0KKyAgICBTZWN1cml0eUNoZWNrUG9saWN5IHNl
Y3VyaXR5Q2hlY2soKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTZWN1cml0eUNoZWNrUG9s
aWN5PihtX3NlY3VyaXR5Q2hlY2spOyB9CisgICAgdm9pZCBzZXRTZWN1cml0eUNoZWNrKFNlY3Vy
aXR5Q2hlY2tQb2xpY3kgY2hlY2spIHsgbV9zZWN1cml0eUNoZWNrID0gY2hlY2s7IH0KKyAgICBS
ZXF1ZXN0T3JpZ2luUG9saWN5IHJlcXVlc3RPcmlnaW5Qb2xpY3koKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxSZXF1ZXN0T3JpZ2luUG9saWN5PihtX3JlcXVlc3RPcmlnaW5Qb2xpY3kpOyB9
CisgICAgdm9pZCBzZXRSZXF1ZXN0T3JpZ2luUG9saWN5KFJlcXVlc3RPcmlnaW5Qb2xpY3kgcG9s
aWN5KSB7IG1fcmVxdWVzdE9yaWdpblBvbGljeSA9IHBvbGljeTsgfQorCisgICAgdW5zaWduZWQg
bV9zZW5kTG9hZENhbGxiYWNrcyA6IDE7CisgICAgdW5zaWduZWQgbV9zbmlmZkNvbnRlbnQgOiAx
OworICAgIHVuc2lnbmVkIG1fZGF0YUJ1ZmZlcmluZ1BvbGljeSA6IDE7CisgICAgdW5zaWduZWQg
bV9hbGxvd0NyZWRlbnRpYWxzIDogMTsgLy8gV2hldGhlciBIVFRQIGNyZWRlbnRpYWxzIGFuZCBj
b29raWVzIGFyZSBzZW50IHdpdGggdGhlIHJlcXVlc3QuCisgICAgdW5zaWduZWQgbV9jbGllbnRD
cmVkZW50aWFsUG9saWN5IDogMjsgLy8gV2hlbiB3ZSBzaG91bGQgYXNrIHRoZSBjbGllbnQgZm9y
IGNyZWRlbnRpYWxzIChpZiB3ZSBhbGxvdyBjcmVkZW50aWFscyBhdCBhbGwpLgorICAgIHVuc2ln
bmVkIG1fc2VjdXJpdHlDaGVjayA6IDE7CisgICAgdW5zaWduZWQgbV9yZXF1ZXN0T3JpZ2luUG9s
aWN5IDogMjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUgICAgCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAJKHJldmlz
aW9uIDE3MDM2MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNv
dXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBDYWNoZWRSYXdS
ZXNvdXJjZTo6YWRkRGF0YUJ1ZmZlcihSZQogICAgIGlmIChkYXRhKQogICAgICAgICBzZXRFbmNv
ZGVkU2l6ZShkYXRhLT5zaXplKCkpOwogICAgIG5vdGlmeUNsaWVudHNEYXRhV2FzUmVjZWl2ZWQo
aW5jcmVtZW50YWxEYXRhLCBpbmNyZW1lbnRhbERhdGFMZW5ndGgpOwotICAgIGlmIChtX29wdGlv
bnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9PSBEb05vdEJ1ZmZlckRhdGEpIHsKKyAgICBpZiAobV9v
cHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3koKSA9PSBEb05vdEJ1ZmZlckRhdGEpIHsKICAgICAg
ICAgaWYgKG1fbG9hZGVyKQogICAgICAgICAgICAgbV9sb2FkZXItPnNldERhdGFCdWZmZXJpbmdQ
b2xpY3koRG9Ob3RCdWZmZXJEYXRhKTsKICAgICAgICAgY2xlYXIoKTsKQEAgLTg0LDcgKzg0LDcg
QEAgdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6YWRkRGF0YShjb25zdCBjaAogdm9pZCBDYWNoZWRS
YXdSZXNvdXJjZTo6ZmluaXNoTG9hZGluZyhSZXNvdXJjZUJ1ZmZlciogZGF0YSkKIHsKICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcHJvdGVjdCh0aGlzKTsKLSAg
ICBEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2xpY3kgPSBtX29wdGlvbnMuZGF0
YUJ1ZmZlcmluZ1BvbGljeTsKKyAgICBEYXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQ
b2xpY3kgPSBtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSgpOwogICAgIGlmIChkYXRhQnVm
ZmVyaW5nUG9saWN5ID09IEJ1ZmZlckRhdGEpIHsKICAgICAgICAgbV9kYXRhID0gZGF0YTsKIApA
QCAtOTYsNyArOTYsNyBAQCB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpmaW5pc2hMb2FkaW5nKFJl
CiAgICAgfQogCiAgICAgQ2FjaGVkUmVzb3VyY2U6OmZpbmlzaExvYWRpbmcoZGF0YSk7Ci0gICAg
aWYgKGRhdGFCdWZmZXJpbmdQb2xpY3kgPT0gQnVmZmVyRGF0YSAmJiBtX29wdGlvbnMuZGF0YUJ1
ZmZlcmluZ1BvbGljeSA9PSBEb05vdEJ1ZmZlckRhdGEpIHsKKyAgICBpZiAoZGF0YUJ1ZmZlcmlu
Z1BvbGljeSA9PSBCdWZmZXJEYXRhICYmIG1fb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5KCkg
PT0gRG9Ob3RCdWZmZXJEYXRhKSB7CiAgICAgICAgIGlmIChtX2xvYWRlcikKICAgICAgICAgICAg
IG1fbG9hZGVyLT5zZXREYXRhQnVmZmVyaW5nUG9saWN5KERvTm90QnVmZmVyRGF0YSk7CiAgICAg
ICAgIGNsZWFyKCk7CkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBDYWNoZWRSYXdSZXNvdXJjZTo6
c2V0RGVmZXJzTG9hZGluZwogCiB2b2lkIENhY2hlZFJhd1Jlc291cmNlOjpzZXREYXRhQnVmZmVy
aW5nUG9saWN5KERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGljeSkKIHsKLSAg
ICBtX29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9IGRhdGFCdWZmZXJpbmdQb2xpY3k7Cisg
ICAgbV9vcHRpb25zLnNldERhdGFCdWZmZXJpbmdQb2xpY3koZGF0YUJ1ZmZlcmluZ1BvbGljeSk7
CiB9CiAKIHN0YXRpYyBib29sIHNob3VsZElnbm9yZUhlYWRlckZvckNhY2hlUmV1c2UoY29uc3Qg
U3RyaW5nJiBoZWFkZXJOYW1lKQpAQCAtMjIzLDcgKzIyMyw3IEBAIHN0YXRpYyBib29sIHNob3Vs
ZElnbm9yZUhlYWRlckZvckNhY2hlUmUKIAogYm9vbCBDYWNoZWRSYXdSZXNvdXJjZTo6Y2FuUmV1
c2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0KSBjb25zdAogewotICAgIGlmICht
X29wdGlvbnMuZGF0YUJ1ZmZlcmluZ1BvbGljeSA9PSBEb05vdEJ1ZmZlckRhdGEpCisgICAgaWYg
KG1fb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5KCkgPT0gRG9Ob3RCdWZmZXJEYXRhKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9yZXNvdXJjZVJlcXVlc3QuaHR0cE1ldGhv
ZCgpICE9IG5ld1JlcXVlc3QuaHR0cE1ldGhvZCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCShyZXZpc2lvbiAxNzAzNjIpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNTgsNyArMjU4LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRS
ZXNvdXJjZQogICAgIH0KIAogICAgIEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciA9IGNhY2hlZFJl
c291cmNlTG9hZGVyLT5mcmFtZSgpLT5sb2FkZXIoKTsKLSAgICBpZiAob3B0aW9ucy5zZWN1cml0
eUNoZWNrID09IERvU2VjdXJpdHlDaGVjayAmJiAoZnJhbWVMb2FkZXIuc3RhdGUoKSA9PSBGcmFt
ZVN0YXRlUHJvdmlzaW9uYWwgfHwgIWZyYW1lTG9hZGVyLmFjdGl2ZURvY3VtZW50TG9hZGVyKCkg
fHwgZnJhbWVMb2FkZXIuYWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+aXNTdG9wcGluZygpKSkgewor
ICAgIGlmIChvcHRpb25zLnNlY3VyaXR5Q2hlY2soKSA9PSBEb1NlY3VyaXR5Q2hlY2sgJiYgKGZy
YW1lTG9hZGVyLnN0YXRlKCkgPT0gRnJhbWVTdGF0ZVByb3Zpc2lvbmFsIHx8ICFmcmFtZUxvYWRl
ci5hY3RpdmVEb2N1bWVudExvYWRlcigpIHx8IGZyYW1lTG9hZGVyLmFjdGl2ZURvY3VtZW50TG9h
ZGVyKCktPmlzU3RvcHBpbmcoKSkpIHsKICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuaAkocmV2aXNpb24gMTcwMzYyKQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMCw4ICsy
MTAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgeyByZXR1cm4g
bV9zdGF0dXMgPT0gTG9hZEVycm9yIHx8IG1fc3RhdHVzID09IERlY29kZUVycm9yOyB9CiAgICAg
Ym9vbCBsb2FkRmFpbGVkT3JDYW5jZWxlZCgpIHsgcmV0dXJuICFtX2Vycm9yLmlzTnVsbCgpOyB9
CiAKLSAgICBib29sIHNob3VsZFNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJl
dHVybiBtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPT0gU2VuZENhbGxiYWNrczsgfQotICAg
IERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0YUJ1ZmZlcmluZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJu
IG1fb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5OyB9CisgICAgYm9vbCBzaG91bGRTZW5kUmVz
b3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLnNlbmRMb2FkQ2Fs
bGJhY2tzKCkgPT0gU2VuZENhbGxiYWNrczsgfQorICAgIERhdGFCdWZmZXJpbmdQb2xpY3kgZGF0
YUJ1ZmZlcmluZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5kYXRhQnVmZmVyaW5n
UG9saWN5KCk7IH0KICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRhKCkg
eyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMTcwMzYyKQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzIzLDcgKzMyMyw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2EK
ICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4dFRy
YWNrUmVzb3VyY2U6CiAjZW5kaWYKLSAgICAgICAgaWYgKG9wdGlvbnMucmVxdWVzdE9yaWdpblBv
bGljeSA9PSBSZXN0cmljdFRvU2FtZU9yaWdpbiAmJiAhbV9kb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKS0+Y2FuUmVxdWVzdCh1cmwpKSB7CisgICAgICAgIGlmIChvcHRpb25zLnJlcXVlc3RPcmln
aW5Qb2xpY3koKSA9PSBSZXN0cmljdFRvU2FtZU9yaWdpbiAmJiAhbV9kb2N1bWVudC0+c2VjdXJp
dHlPcmlnaW4oKS0+Y2FuUmVxdWVzdCh1cmwpKSB7CiAgICAgICAgICAgICBwcmludEFjY2Vzc0Rl
bmllZE1lc3NhZ2UodXJsKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NmL1Jlc291cmNlTG9hZGVyQ0ZOZXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jZi9SZXNvdXJjZUxvYWRlckNGTmV0
LmNwcAkocmV2aXNpb24gMTcwMzYyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NmL1Jlc291
cmNlTG9hZGVyQ0ZOZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogYm9vbCBSZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ2FjaGVSZXNwb25z
ZShSZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgY2FjaGVkUmVzcG9uc2Up
CiB7Ci0gICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBEb05vdFNlbmRDYWxs
YmFja3MpCisgICAgaWYgKG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcygpID09IERvTm90U2Vu
ZENhbGxiYWNrcykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBDRlVSTFJlc3BvbnNlUmVmIHJl
c3BvbnNlID0gQ0ZDYWNoZWRVUkxSZXNwb25zZUdldFdyYXBwZWRSZXNwb25zZShjYWNoZWRSZXNw
b25zZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcAkocmV2aXNpb24gMTcw
MzYyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyOCwxMiArMTI4LDEyIEBAIHZvaWQgRXZlbnRTb3VyY2U6OmNvbm5lY3QoKQogICAg
IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3Vy
aXR5T3JpZ2luKCk7CiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwotICAg
IG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOwotICAgIG9wdGlvbnMu
c25pZmZDb250ZW50ID0gRG9Ob3RTbmlmZkNvbnRlbnQ7Ci0gICAgb3B0aW9ucy5hbGxvd0NyZWRl
bnRpYWxzID0gKG9yaWdpbi0+Y2FuUmVxdWVzdChtX3VybCkgfHwgbV93aXRoQ3JlZGVudGlhbHMp
ID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsK
KyAgICBvcHRpb25zLnNldFNlbmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxsYmFja3MpOworICAgIG9w
dGlvbnMuc2V0U25pZmZDb250ZW50KERvTm90U25pZmZDb250ZW50KTsKKyAgICBvcHRpb25zLnNl
dEFsbG93Q3JlZGVudGlhbHMoKG9yaWdpbi0+Y2FuUmVxdWVzdChtX3VybCkgfHwgbV93aXRoQ3Jl
ZGVudGlhbHMpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVk
ZW50aWFscyk7CiAgICAgb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPSBQcmV2ZW50UHJlZmxpZ2h0
OwogICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID0gVXNlQWNjZXNzQ29udHJv
bDsKLSAgICBvcHRpb25zLmRhdGFCdWZmZXJpbmdQb2xpY3kgPSBEb05vdEJ1ZmZlckRhdGE7Cisg
ICAgb3B0aW9ucy5zZXREYXRhQnVmZmVyaW5nUG9saWN5KERvTm90QnVmZmVyRGF0YSk7CiAgICAg
b3B0aW9ucy5zZWN1cml0eU9yaWdpbiA9IG9yaWdpbjsKIAogICAgIG1fbG9hZGVyID0gVGhyZWFk
YWJsZUxvYWRlcjo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhpcywgcmVxdWVz
dCwgb3B0aW9ucyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVxdWVzdEJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAJKHJldmlzaW9uIDE3MDM2MikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE1MCw3ICsxNTAsNyBAQCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGlj
eSBSZXNvdXJjZVJlcXVlCiB7CiAgICAgdXBkYXRlUmVzb3VyY2VSZXF1ZXN0KCk7IAogICAgIAot
ICAgIHJldHVybiBtX2NhY2hlUG9saWN5OyAKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVzb3Vy
Y2VSZXF1ZXN0Q2FjaGVQb2xpY3k+KG1fY2FjaGVQb2xpY3kpOwogfQogCiB2b2lkIFJlc291cmNl
UmVxdWVzdEJhc2U6OnNldENhY2hlUG9saWN5KFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5IGNh
Y2hlUG9saWN5KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlcXVlc3RCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgJKHJldmlzaW9uIDE3MDM2MikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTksNyArMjE5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBIVFRQ
SGVhZGVyTWFwIG1faHR0cEhlYWRlckZpZWxkczsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gbV9y
ZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheTsKICAgICAgICAg
UmVmUHRyPEZvcm1EYXRhPiBtX2h0dHBCb2R5OwotICAgICAgICBSZXNvdXJjZVJlcXVlc3RDYWNo
ZVBvbGljeSBtX2NhY2hlUG9saWN5IDogMzsKKyAgICAgICAgdW5zaWduZWQgbV9jYWNoZVBvbGlj
eSA6IDM7CiAgICAgICAgIGJvb2wgbV9hbGxvd0Nvb2tpZXMgOiAxOwogICAgICAgICBtdXRhYmxl
IGJvb2wgbV9yZXNvdXJjZVJlcXVlc3RVcGRhdGVkIDogMTsKICAgICAgICAgbXV0YWJsZSBib29s
IG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCA6IDE7CkBAIC0yMzEsNyArMjMxLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgIGJvb2wgbV9oaWRk
ZW5Gcm9tSW5zcGVjdG9yIDogMTsKICNlbmRpZgotICAgICAgICBSZXNvdXJjZUxvYWRQcmlvcml0
eSBtX3ByaW9yaXR5IDogNDsKKyAgICAgICAgUmVzb3VyY2VMb2FkUHJpb3JpdHkgbV9wcmlvcml0
eSA6IDQ7IC8vIG5vdCB1bnNpZ25lZCBiZWNhdXNlIFJlc291cmNlTG9hZFByaW9yaXR5IGhhcyBu
ZWdhdGl2ZSB2YWx1ZXMKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgYXNSZXNvdXJjZVJlcXVlc3QoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCShyZXZpc2lv
biAxNzAzNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
UmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTExLDcgKzExMSw3IEBAIHByaXZhdGU6CiAK
ICAgICBzdGF0aWMgYm9vbCBwbGF0Zm9ybUNvbXBhcmUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
YSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYik7CiAKLSAgICBJbml0TGV2ZWwgbV9pbml0TGV2
ZWwgOiAzOworICAgIHVuc2lnbmVkIG1faW5pdExldmVsIDogMzsKICAgICBib29sIG1fcGxhdGZv
cm1SZXNwb25zZUlzVXBUb0RhdGUgOiAxOwogCiAjaWYgVVNFKENGTkVUV09SSykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lvbiAxNzAzNjIpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MTI3Miw3ICsxMjcyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19DT01Q
T1NJVElORykKLSAgICBCbGVuZE1vZGUgbV9ibGVuZE1vZGUgOiA1OworICAgIHVuc2lnbmVkIG1f
YmxlbmRNb2RlIDogNTsKICAgICBib29sIG1faGFzTm90SXNvbGF0ZWRDb21wb3NpdGVkQmxlbmRp
bmdEZXNjZW5kYW50cyA6IDE7CiAgICAgYm9vbCBtX2hhc05vdElzb2xhdGVkQmxlbmRpbmdEZXNj
ZW5kYW50cyA6IDE7CiAgICAgYm9vbCBtX2hhc05vdElzb2xhdGVkQmxlbmRpbmdEZXNjZW5kYW50
c1N0YXR1c0RpcnR5IDogMTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
YXJxdWVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1h
cnF1ZWUuaAkocmV2aXNpb24gMTcwMzYyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1hcnF1ZWUuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9yZXNldDogMTsKICAgICBib29sIG1fc3VzcGVuZGVkIDogMTsKICAgICBib29s
IG1fc3RvcHBlZCA6IDE7Ci0gICAgRU1hcnF1ZWVEaXJlY3Rpb24gbV9kaXJlY3Rpb24gOiA0Owor
ICAgIEVNYXJxdWVlRGlyZWN0aW9uIG1fZGlyZWN0aW9uIDogNDsgLy8gTm90IHVuc2lnbmVkIGJl
Y2F1c2UgRU1hcnF1ZWVEaXJlY3Rpb24gaGFzIG5lZ2F0aXZlIHZhbHVlcwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3Jp
cHRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
U2NyaXB0TG9hZGVyLmNwcAkocmV2aXNpb24gMTcwMzYyKQorKysgU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw5ICs2NCw5
IEBAIHZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkU3luY2hyb25vdXMKICAgICBBU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc1dvcmtl
ckdsb2JhbFNjb3BlKCkpOwogCiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsK
LSAgICBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwor
ICAgIG9wdGlvbnMuc2V0QWxsb3dDcmVkZW50aWFscyhBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsK
ICAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IGNyb3NzT3JpZ2luUmVxdWVz
dFBvbGljeTsKLSAgICBvcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID0gU2VuZENhbGxiYWNrczsK
KyAgICBvcHRpb25zLnNldFNlbmRMb2FkQ2FsbGJhY2tzKFNlbmRDYWxsYmFja3MpOwogCiAgICAg
V29ya2VyVGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSh0b1dvcmtl
ckdsb2JhbFNjb3BlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLCAqcmVxdWVzdCwgKnRoaXMsIG9w
dGlvbnMpOwogfQpAQCAtODIsOSArODIsOSBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6bG9h
ZEFzeW5jaHJvbm91CiAgICAgICAgIHJldHVybjsKIAogICAgIFRocmVhZGFibGVMb2FkZXJPcHRp
b25zIG9wdGlvbnM7Ci0gICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID0gQWxsb3dTdG9yZWRD
cmVkZW50aWFsczsKKyAgICBvcHRpb25zLnNldEFsbG93Q3JlZGVudGlhbHMoQWxsb3dTdG9yZWRD
cmVkZW50aWFscyk7CiAgICAgb3B0aW9ucy5jcm9zc09yaWdpblJlcXVlc3RQb2xpY3kgPSBjcm9z
c09yaWdpblJlcXVlc3RQb2xpY3k7Ci0gICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNl
bmRDYWxsYmFja3M7CisgICAgb3B0aW9ucy5zZXRTZW5kTG9hZENhbGxiYWNrcyhTZW5kQ2FsbGJh
Y2tzKTsKIAogICAgIC8vIER1cmluZyBjcmVhdGUsIGNhbGxiYWNrcyBtYXkgaGFwcGVuIHdoaWNo
IHJlbW92ZSB0aGUgbGFzdCByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3QuCiAgICAgUmVmPFdvcmtl
clNjcmlwdExvYWRlcj4gcHJvdGVjdCgqdGhpcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDE3MDM2MikKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1NiwxMCArNzU2LDEwIEBAIHZv
aWQgWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoRXhjZXAKICAgICAgICAgcmVxdWVzdC5z
ZXRIVFRQSGVhZGVyRmllbGRzKG1fcmVxdWVzdEhlYWRlcnMpOwogCiAgICAgVGhyZWFkYWJsZUxv
YWRlck9wdGlvbnMgb3B0aW9uczsKLSAgICBvcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID0gU2Vu
ZENhbGxiYWNrczsKLSAgICBvcHRpb25zLnNuaWZmQ29udGVudCA9IERvTm90U25pZmZDb250ZW50
OworICAgIG9wdGlvbnMuc2V0U2VuZExvYWRDYWxsYmFja3MoU2VuZENhbGxiYWNrcyk7CisgICAg
b3B0aW9ucy5zZXRTbmlmZkNvbnRlbnQoRG9Ob3RTbmlmZkNvbnRlbnQpOwogICAgIG9wdGlvbnMu
cHJlZmxpZ2h0UG9saWN5ID0gdXBsb2FkRXZlbnRzID8gRm9yY2VQcmVmbGlnaHQgOiBDb25zaWRl
clByZWZsaWdodDsKLSAgICBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPSAobV9zYW1lT3JpZ2lu
UmVxdWVzdCB8fCBtX2luY2x1ZGVDcmVkZW50aWFscykgPyBBbGxvd1N0b3JlZENyZWRlbnRpYWxz
IDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOworICAgIG9wdGlvbnMuc2V0QWxsb3dDcmVk
ZW50aWFscygobV9zYW1lT3JpZ2luUmVxdWVzdCB8fCBtX2luY2x1ZGVDcmVkZW50aWFscykgPyBB
bGxvd1N0b3JlZENyZWRlbnRpYWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKICAg
ICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IFVzZUFjY2Vzc0NvbnRyb2w7CiAg
ICAgb3B0aW9ucy5zZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luKCk7CiAjaWYgRU5BQkxF
KFJFU09VUkNFX1RJTUlORykK
</data>
<flag name="review"
          id="258209"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>