<?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>34282</bug_id>
          
          <creation_ts>2010-01-28 14:02:15 -0800</creation_ts>
          <short_desc>Simplify anonymous slot implementation</short_desc>
          <delta_ts>2010-01-28 16:52:23 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>185601</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-28 14:02:15 -0800</bug_when>
    <thetext>Simplify anonymous slot implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185603</commentid>
    <comment_count>1</comment_count>
      <attachid>47646</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-28 14:10:05 -0800</bug_when>
    <thetext>Created attachment 47646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185605</commentid>
    <comment_count>2</comment_count>
      <attachid>47646</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2010-01-28 14:21:17 -0800</bug_when>
    <thetext>Comment on attachment 47646
Patch

The hard coded &quot;, 0&quot; in JSCel / API wrappers is a little weird to me, I&apos;d move AnonymousSlotCount up from JSValue personally.  Your call.  r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185608</commentid>
    <comment_count>3</comment_count>
      <attachid>47646</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-28 14:29:55 -0800</bug_when>
    <thetext>Comment on attachment 47646
Patch

&gt;  PassRefPtr&lt;Structure&gt; JSByteArray::createStructure(JSValue prototype)
&gt;  {
&gt; -    PassRefPtr&lt;Structure&gt; result = Structure::create(prototype, TypeInfo(ObjectType, StructureFlags));
&gt; +    PassRefPtr&lt;Structure&gt; result = Structure::create(prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount);
&gt;      return result;
&gt;  }

Why the local variable? Normally we don&apos;t use PassRefPtr for local variables, and normally we wouldn&apos;t use a local variable at all for this case.

&gt; +        static const unsigned AnonymousSlotCount = 0;
&gt;      protected:

It&apos;s dangerous to have something like this as a public data member. It gives the wrong value if you use it on a base class of an object of a derived class. Can we make it protected instead? Maybe we can name it InitialAnonymousSlotCount too.

&gt;  Structure::~Structure()
&gt;  {
&gt;      if (m_previous) {
&gt; -        if (m_nameInPrevious)
&gt; -            m_previous-&gt;table.remove(make_pair(m_nameInPrevious.get(), m_attributesInPrevious), m_specificValueInPrevious);
&gt; -        else
&gt; -            m_previous-&gt;table.removeAnonymousSlotTransition(m_anonymousSlotsInPrevious);
&gt; +        ASSERT(m_nameInPrevious);
&gt; +        m_previous-&gt;table.remove(make_pair(m_nameInPrevious.get(), m_attributesInPrevious), m_specificValueInPrevious);
&gt;  
&gt;      }

You should remove that extra blank line.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185617</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-28 14:51:18 -0800</bug_when>
    <thetext>Committed r54022: &lt;http://trac.webkit.org/changeset/54022&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185644</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-28 16:52:23 -0800</bug_when>
    <thetext>This patch caused the qt-ews to continually fail to upload results to QueueStatusServer.  Not sure why.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47646</attachid>
            <date>2010-01-28 14:10:05 -0800</date>
            <delta_ts>2010-01-28 14:29:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34282-20100128141004.patch</filename>
            <type>text/plain</type>
            <size>45498</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuaCBi
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuaAppbmRleCBjNGJkN2Fk
Li5lNTI5OTQ3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0
cnVjdG9yLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5o
CkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKICAgICB7IAotICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSk7IAorICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8s
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50
KTsgCiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja0Z1bmN0aW9uLmggYi9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0
aW9uLmgKaW5kZXggMGNmMjVjNC4uMTBkYWU2YiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrRnVuY3Rpb24uaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgLy8gcmVmYWN0b3Ig
dGhlIGNvZGUgc28gdGhpcyBvdmVycmlkZSBpc24ndCBuZWNlc3NhcnkKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKICAgICB7
IAotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSk7IAorICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3Vz
U2xvdENvdW50KTsgCiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
T2JqZWN0LmgKaW5kZXggMmUyNTk5MS4uYWRiNWI2MCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIAogICAgIHsg
Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpKTsgCisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBCYXNlOjpBbm9u
eW1vdXNTbG90Q291bnQpOyAKICAgICB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAzMzQ5
MWU3Li4zM2RlZjI1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTYgQEAKKzIwMTAtMDEtMjggIE9s
aXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGlmeSBhbm9ueW1vdXMgc2xvdCBpbXBsZW1lbnRh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQy
ODIKKworICAgICAgICBBIGNsYXNzIG11c3Qgbm93IHNwZWNpZnkgdGhlIG51bWJlciBvZiBzbG90
cyBpdCBuZWVkcyBhdCBjb25zdHJ1Y3Rpb24gdGltZQorICAgICAgICByYXRoZXIgdGhhbiBsYXRl
ciBvbiB3aXRoIGEgdHJhbnNpdGlvbi4gIFRoaXMgbWFrZXMgbWFueSB0aGluZ3Mgc2ltcGxlciwK
KyAgICAgICAgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8gbmVlZCBhbiBhZGRpdGlvbmFsIHRyYW5zaXRp
b24gb24gb2JqZWN0IGNyZWF0aW9uIHRvCisgICAgICAgIGFkZCB0aGUgYW5vbnltb3VzIHNsb3Rz
LCBhbmQgd2UgcmVtb3ZlIHRoZSBuZWVkIGZvciBhIG51bWJlciBvZiB0cmFuc2l0aW9uCisgICAg
ICAgIHR5cGUgY2hlY2tzLiAKKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUp
OgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaDoKKyAgICAgICAgKEpTQzo6SlND
YWxsYmFja0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIEFQSS9KU0NhbGxi
YWNrT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIGRlYnVnZ2Vy
L0RlYnVnZ2VyQWN0aXZhdGlvbi5oOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246
OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAg
ICAgKEpTQzo6QXJndW1lbnRzOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
Qm9vbGVhbk9iamVjdC5oOgorICAgICAgICAoSlNDOjpCb29sZWFuT2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3RhbmNlLmg6CisgICAgICAgIChKU0M6
OkRhdGVJbnN0YW5jZTo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0RhdGVQ
cm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6RGF0ZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJl
KToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg6CisgICAgICAgIChKU0M6
OkZ1bmN0aW9uUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUv
R2V0dGVyU2V0dGVyLmg6CisgICAgICAgIChKU0M6OkdldHRlclNldHRlcjo6Y3JlYXRlU3RydWN0
dXJlKToKKyAgICAgICAgKiBydW50aW1lL0dsb2JhbEV2YWxGdW5jdGlvbi5oOgorICAgICAgICAo
SlNDOjpHbG9iYWxFdmFsRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmg6CisgICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246
OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5o
OgorICAgICAgICAoSlNDOjpKU0FQSVZhbHVlV3JhcHBlcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAg
ICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0FjdGl2YXRp
b246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6CisgICAg
ICAgIChKU0M6OkpTQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9K
U0J5dGVBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6
Y3JlYXRlRHVtbXlTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgor
ICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9KU05vdEFuT2JqZWN0Lmg6CisgICAg
ICAgIChKU0M6OkpTTm90QW5PYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVu
dGltZS9KU09OT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT05PYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OnB1dEFub255
bW91c1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmdldEFub255bW91c1ZhbHVlKToK
KyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaDoKKyAgICAgICAgKEpT
Qzo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNTdGF0aWNTY29w
ZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmg6
CisgICAgICAgIChKU0M6OkZpYmVyOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNWYXJpYWJsZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1ZhcmlhYmxlT2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNXcmFwcGVyT2JqZWN0Lmg6Cisg
ICAgICAgIChKU0M6OkpTV3JhcHBlck9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAg
KEpTQzo6SlNXcmFwcGVyT2JqZWN0OjpKU1dyYXBwZXJPYmplY3QpOgorICAgICAgICAqIHJ1bnRp
bWUvTWF0aE9iamVjdC5oOgorICAgICAgICAoSlNDOjpNYXRoT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUpOgorICAgICAgICAqIHJ1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpT
Qzo6TnVtYmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGlt
ZS9OdW1iZXJPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6TnVtYmVyT2JqZWN0OjpjcmVhdGVTdHJ1
Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaDoKKyAgICAgICAg
KEpTQzo6UmVnRXhwQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpjcmVhdGVT
dHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgIChK
U0M6OlN0cmluZ09iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0
cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmg6CisgICAgICAgIChKU0M6OlN0
cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOjpjcmVhdGVTdHJ1Y3R1cmUpOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
Ojp+U3RydWN0dXJlKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjptYXRlcmlhbGl6ZVByb3Bl
cnR5TWFwKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6YW5vbnltb3VzU2xv
dENvdW50KToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25UYWJsZS5oOgor
CiAyMDEwLTAxLTI3ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAg
V2luZG93cyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5leHAgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggN2M5M2Y2
NC4uMzgyMTk5MiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
CisrKyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMjg3LDcgKzI4Nyw2
IEBAIF9fWk4zSlNDOVN0cnVjdHVyZTE4c3RhcnRJZ25vcmluZ0xlYWtzRXYKIF9fWk4zSlNDOVN0
cnVjdHVyZTIxYWRkUHJvcGVydHlUcmFuc2l0aW9uRVBTMF9SS05TXzEwSWRlbnRpZmllckVqUE5T
XzZKU0NlbGxFUm0KIF9fWk4zSlNDOVN0cnVjdHVyZTIybWF0ZXJpYWxpemVQcm9wZXJ0eU1hcEV2
CiBfX1pOM0pTQzlTdHJ1Y3R1cmUyNWNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb25FUFMwX05TXzdK
U1ZhbHVlRQotX19aTjNKU0M5U3RydWN0dXJlMjdhZGRBbm9ueW1vdXNTbG90c1RyYW5zaXRpb25F
UFMwX2oKIF9fWk4zSlNDOVN0cnVjdHVyZTI3ZGVzcGVjaWZ5RGljdGlvbmFyeUZ1bmN0aW9uRVJL
TlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M5U3RydWN0dXJlMjdkZXNwZWNpZnlGdW5jdGlvblRy
YW5zaXRpb25FUFMwX1JLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M5U3RydWN0dXJlMjhhZGRQ
cm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uRVJLTlNfMTBJZGVudGlmaWVyRWpQTlNfNkpTQ2VsbEUK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5o
IGIvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKaW5kZXggMzU0
ZmNiOC4uMzkyNzAxNyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3Rp
dmF0aW9uLmgKQEAgLTUxLDcgKzUxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5
cGUpIAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpOyAKKyAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsgCiAgICAgICAgIH0KIAog
ICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDc4MzA0NGQu
Ljk3OTdlMDggMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgK
KysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaApAQCAtODUsNyArODUsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsgCi0gICAgICAg
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncykpOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50KTsgCiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKaW5kZXggNjljMmU1MS4uNGIwMmFjYiAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+
IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50KTsKICAgICAgICAgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVJbnN0YW5jZS5oCmluZGV4IGI4M2QyYmUuLjc3ZDQ2ZGUgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2UuaApAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3Jl
YXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpKTsKKyAg
ICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsKICAgICAgICAg
fQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlUHJvdG90eXBlLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaApp
bmRleCBmNTY1Nzc1Li42MTJjYTA2IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVQcm90b3R5cGUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5
cGUuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpKTsKKyAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsKICAgICAgICAgfQogCiAgICAgcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3Rv
dHlwZS5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oCmluZGV4
IGQxZDZhMWQuLmFmNzgzZjcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Qcm90b3R5cGUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90bykK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpOworICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5oIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAppbmRleCA2OGU5ZWEzLi5lN2I3YmI1IDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgc2V0U2V0dGVyKEpTT2JqZWN0KiBzZXR0ZXIpIHsg
bV9zZXR0ZXIgPSBzZXR0ZXI7IH0KICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKEdldHRlclNl
dHRlclR5cGUsIE92ZXJyaWRlc01hcmtDaGlsZHJlbikpOworICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oR2V0dGVyU2V0dGVyVHlwZSwgT3Zl
cnJpZGVzTWFya0NoaWxkcmVuKSwgMCk7CiAgICAgICAgIH0KICAgICBwcml2YXRlOgogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNHZXR0ZXJTZXR0ZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvR2xvYmFsRXZhbEZ1bmN0aW9uLmggYi9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0dsb2JhbEV2YWxGdW5jdGlvbi5oCmluZGV4IDM4OWIxYzMuLmExNGNlNGQgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2xvYmFsRXZhbEZ1bmN0aW9uLmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9HbG9iYWxFdmFsRnVuY3Rpb24uaApAQCAtMzcsNyArMzcs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsgCi0gICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBB
bm9ueW1vdXNTbG90Q291bnQpOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCmluZGV4IGZhMWU1YWEuLmQxOWI4MmIg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCisr
KyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCkBAIC00Miw3ICs0
Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIAogICAgICAgICB7IAotICAgICAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncykpOyAKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNT
bG90Q291bnQpOyAKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCmluZGV4IGFjYTU1MGUuLjE1MmY3ZjEgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmgKQEAgLTM5LDcgKzM5LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJl
PiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5k
VHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcykp
OworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUlu
Zm8oQ29tcG91bmRUeXBlLCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzKSwgMCk7CiAgICAgICAgIH0KIAogICAgICAgICAKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQWN0aXZhdGlvbi5oCmluZGV4IGVlOTgxOTEuLjc2MWJlZTQgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FjdGl2YXRpb24uaApAQCAtNjYsNyArNjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJu
ICZpbmZvOyB9CiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKIAotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHBy
b3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1
cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQpOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE5l
ZWRzVGhpc0NvbnZlcnNpb24gfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5oCmluZGV4IDY0YjJmZjEuLmFkNmVlODggMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5oCkBAIC04OCw3ICs4OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90
eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpOworICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQpOwogICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICBpbmxpbmUgdm9pZCBtYXJrQ2hpbGRyZW5EaXJlY3QoTWFya1N0YWNrJiBt
YXJrU3RhY2spOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJh
eS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAppbmRleCBmOGFi
MWU4Li44MDNhMDhjIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAt
NTMsNyArNTMsNyBAQCBKU0J5dGVBcnJheTo6fkpTQnl0ZUFycmF5KCkKIAogUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IEpTQnl0ZUFycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUp
CiB7Ci0gICAgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHJlc3VsdCA9IFN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpKTsKKyAgICBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gcmVzdWx0ID0gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NlbGwuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXgg
MzZiZmQ2Ni4uOGMxMGVkNCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGwuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC01Miw3ICs1Miw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVEdW1teVN0cnVjdHVyZSgpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShqc051bGwoKSwgVHlwZUluZm8oVW5zcGVjaWZp
ZWRUeXBlKSk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoanNOdWxsKCks
IFR5cGVJbmZvKFVuc3BlY2lmaWVkVHlwZSksIDApOwogICAgICAgICB9CiAKICAgICAgICAgLy8g
UXVlcnlpbmcgdGhlIHR5cGUuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IGJk
Yjc5YjguLjhjZDRiNTEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC02MSw3
ICs2MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKSAKICAgICAgICAgeyAK
LSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZv
KE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSk7IAorICAgICAgICAgICAgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQpOyAKICAgICAgICAgfQogCiAgICAgICAgIE5hdGl2ZUZ1
bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaAppbmRleCA5OGQ3ZWY4Li5iYmI2ZDVlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCkBAIC0yNjcsNyArMjY3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBw
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSk7CisgICAg
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIH0K
IAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5k
ZXggZDVmNDMwYy4uMzM5ZDQxZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05vdEFuT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0
LmgKQEAgLTYyLDcgKzYyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUs
IFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSk7CisgICAgICAgICAgICByZXR1
cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1
Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIH0KIAogICAgICBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAppbmRleCBlYzNmYTQwLi45MDVlNGJj
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtNDEsNyArNDEsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpKTsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xv
dENvdW50KTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyB2b2lkIG1hcmtTdHJpbmdpZmll
cnMoTWFya1N0YWNrJiwgU3RyaW5naWZpZXIqKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApp
bmRleCBkMDViMzc3Li41NzllMzg5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0y
MDYsNyArMjA2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSk7CisgICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIEFub255bW91c1Nsb3RDb3VudCk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIGZs
YXR0ZW5EaWN0aW9uYXJ5T2JqZWN0KCkKQEAgLTIxNCwxNiArMjE0LDE4IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICAgICAgbV9zdHJ1Y3R1cmUtPmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJl
KHRoaXMpOwogICAgICAgICB9CiAKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255
bW91c1Nsb3RDb3VudCA9IDA7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSAwOwogCi0gICAgICAgIHZvaWQgYWRkQW5vbnltb3Vz
U2xvdHModW5zaWduZWQgY291bnQpOwogICAgICAgICB2b2lkIHB1dEFub255bW91c1ZhbHVlKHVu
c2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlKQogICAgICAgICB7CisgICAgICAgICAgICBBU1NF
UlQoaW5kZXggPCBtX3N0cnVjdHVyZS0+YW5vbnltb3VzU2xvdENvdW50KCkpOwogICAgICAgICAg
ICAgKmxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KSA9IHZhbHVlOwogICAgICAgICB9CiAgICAgICAg
IEpTVmFsdWUgZ2V0QW5vbnltb3VzVmFsdWUodW5zaWduZWQgaW5kZXgpCiAgICAgICAgIHsKKyAg
ICAgICAgICAgIEFTU0VSVChpbmRleCA8IG1fc3RydWN0dXJlLT5hbm9ueW1vdXNTbG90Q291bnQo
KSk7CiAgICAgICAgICAgICByZXR1cm4gKmxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KTsKICAgICAg
ICAgfQogCkBAIC01MjgsMTcgKzUzMCw2IEBAIGlubGluZSB2b2lkIEpTT2JqZWN0OjpwdXREaXJl
Y3RJbnRlcm5hbChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpCiAgICAg
cHV0RGlyZWN0SW50ZXJuYWwocHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0cmlidXRlcywgZmFsc2Us
IHNsb3QsIGdldEpTRnVuY3Rpb24oZ2xvYmFsRGF0YSwgdmFsdWUpKTsKIH0KIAotaW5saW5lIHZv
aWQgSlNPYmplY3Q6OmFkZEFub255bW91c1Nsb3RzKHVuc2lnbmVkIGNvdW50KQotewotICAgIHNp
emVfdCBjdXJyZW50Q2FwYWNpdHkgPSBtX3N0cnVjdHVyZS0+cHJvcGVydHlTdG9yYWdlQ2FwYWNp
dHkoKTsKLSAgICBSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUgPSBTdHJ1Y3R1cmU6OmFkZEFu
b255bW91c1Nsb3RzVHJhbnNpdGlvbihtX3N0cnVjdHVyZSwgY291bnQpOwotCi0gICAgaWYgKGN1
cnJlbnRDYXBhY2l0eSAhPSBzdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5KCkpCi0g
ICAgICAgIGFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKGN1cnJlbnRDYXBhY2l0eSwgc3RydWN0dXJl
LT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKTsKLQotICAgIHNldFN0cnVjdHVyZShzdHJ1Y3R1
cmUucmVsZWFzZSgpKTsKLX0KLQogaW5saW5lIHZvaWQgSlNPYmplY3Q6OnB1dERpcmVjdChjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJp
YnV0ZXMsIGJvb2wgY2hlY2tSZWFkT25seSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAg
IEFTU0VSVCh2YWx1ZSk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJv
cGVydHlOYW1lSXRlcmF0b3IuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5oCmluZGV4IDUyOWFlOGIuLmNmNGIyY2QgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCisrKyBiL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC00Nyw3ICs0Nyw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICAKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBv
dW5kVHlwZSwgT3ZlcnJpZGVzTWFya0NoaWxkcmVuKSk7CisgICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIE92ZXJyaWRl
c01hcmtDaGlsZHJlbiksIDApOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCBib29sIGlz
UHJvcGVydHlOYW1lSXRlcmF0b3IoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCmluZGV4IDI1NDI4NzguLjRkMTU2
ZDQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVj
dC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCkBA
IC01Nyw3ICs1Nyw3IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYp
OwogICAgICAgICB2b2lkIHB1dFdpdGhBdHRyaWJ1dGVzKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBKU1ZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKIAotICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpKTsgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0
ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90
bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQpOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE5lZWRzVGhpc0Nv
bnZlcnNpb24gfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5h
bWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmgKaW5kZXggMWViYWJlOC4uYTZjOGY2ZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1N0cmluZy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJp
bmcuaApAQCAtMjk2LDcgKzI5Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIGNh
bkdldEluZGV4KHVuc2lnbmVkIGkpIHsgcmV0dXJuIGkgPCBtX3N0cmluZ0xlbmd0aDsgfQogICAg
ICAgICBKU1N0cmluZyogZ2V0SW5kZXgoRXhlY1N0YXRlKiwgdW5zaWduZWQpOwogCi0gICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJv
dG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBUeXBlSW5mbyhTdHJpbmdUeXBl
LCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBOZWVkc1RoaXNDb252ZXJzaW9uKSk7IH0K
KyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNW
YWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKFN0
cmluZ1R5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE5lZWRzVGhpc0NvbnZlcnNp
b24pLCAwKTsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZW51bSBWUHRyU3RlYWxpbmdIYWNr
VHlwZSB7IFZQdHJTdGVhbGluZ0hhY2sgfTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zhcmlh
YmxlT2JqZWN0LmgKaW5kZXggNzM3ODE2ZC4uNmM2NzljZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKQEAgLTU4LDcgKzU4LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUo
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1
cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCk7CiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNXcmFwcGVyT2JqZWN0LmgKaW5kZXggMTkxZmYzYi4uY2ExZWViMiAxMDA2NDQKLS0tIGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCkBAIC0zOCw5ICszOCwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVj
dHVyZShKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsgCi0gICAgICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncykpOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291
bnQpOwogICAgICAgICB9Ci0KKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBBbm9ueW1vdXNTbG90Q291bnQgPSAxICsgSlNPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudDsK
ICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQgbWFya0NoaWxkcmVuKE1hcmtTdGFj
ayYpOwogICAgICAgICAKQEAgLTUwLDcgKzUxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgaW5s
aW5lIEpTV3JhcHBlck9iamVjdDo6SlNXcmFwcGVyT2JqZWN0KE5vbk51bGxQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gc3RydWN0dXJlKQogICAgICAgICA6IEpTT2JqZWN0KHN0cnVjdHVyZSkKICAgICB7
Ci0gICAgICAgIGFkZEFub255bW91c1Nsb3RzKDEpOwogICAgICAgICBwdXRBbm9ueW1vdXNWYWx1
ZSgwLCBqc051bGwoKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hdGhPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCmlu
ZGV4IDdmNDc0YjguLmE5ZjcwMzEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWF0aE9iamVjdC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBA
IC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpOworICAgICAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQpOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKaW5kZXggY2YxOWI2
Zi4uNzIzYzRiMiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3Iu
aApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKICAgICAg
ICAgeyAKLSAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpKTsgCisgICAgICAgICAgICByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgQW5vbnltb3VzU2xvdENvdW50KTsgCiAgICAgICAgIH0KIAogICAgICAgICBlbnVtIHsgTmFO
VmFsdWUsIE5lZ0luZmluaXR5LCBQb3NJbmZpbml0eSwgTWF4VmFsdWUsIE1pblZhbHVlIH07CmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuaAppbmRleCA4MjIzYTkwLi42YzE4Y2RkIDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVh
dGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCBmOWNhOWNmLi44ZjRiZTcxIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC01OSw3ICs1OSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4g
Y3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncykpOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1v
dXNTbG90Q291bnQpOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggMzExN2M4
Ni4uNGFkMTFlZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC00OSw3
ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpOworICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQpOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCBiNzIwYjkwLi5lM2FkZDc3IDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSk7CisgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCk7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaCBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQuaAppbmRleCA2OWUxOTM5Li40M2MzZTM4IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVm
aW5lZC5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG8pIAog
ICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpOyAKKyAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQpOyAKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
IHwgU3RyaW5nT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0
dXJlLmNwcAppbmRleCAyYzU3N2RjLi43NzMzMGFhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwCkBAIC0xNTcsMTAgKzE1Nyw4IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKEpTVmFs
dWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8pCiBTdHJ1Y3R1cmU6On5TdHJ1
Y3R1cmUoKQogewogICAgIGlmIChtX3ByZXZpb3VzKSB7Ci0gICAgICAgIGlmIChtX25hbWVJblBy
ZXZpb3VzKQotICAgICAgICAgICAgbV9wcmV2aW91cy0+dGFibGUucmVtb3ZlKG1ha2VfcGFpciht
X25hbWVJblByZXZpb3VzLmdldCgpLCBtX2F0dHJpYnV0ZXNJblByZXZpb3VzKSwgbV9zcGVjaWZp
Y1ZhbHVlSW5QcmV2aW91cyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcHJldmlvdXMt
PnRhYmxlLnJlbW92ZUFub255bW91c1Nsb3RUcmFuc2l0aW9uKG1fYW5vbnltb3VzU2xvdHNJblBy
ZXZpb3VzKTsKKyAgICAgICAgQVNTRVJUKG1fbmFtZUluUHJldmlvdXMpOworICAgICAgICBtX3By
ZXZpb3VzLT50YWJsZS5yZW1vdmUobWFrZV9wYWlyKG1fbmFtZUluUHJldmlvdXMuZ2V0KCksIG1f
YXR0cmlidXRlc0luUHJldmlvdXMpLCBtX3NwZWNpZmljVmFsdWVJblByZXZpb3VzKTsKIAogICAg
IH0KICAgICAKQEAgLTI3NiwxMCArMjc0LDYgQEAgdm9pZCBTdHJ1Y3R1cmU6Om1hdGVyaWFsaXpl
UHJvcGVydHlNYXAoKQogCiAgICAgZm9yIChwdHJkaWZmX3QgaSA9IHN0cnVjdHVyZXMuc2l6ZSgp
IC0gMjsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgc3RydWN0dXJlID0gc3RydWN0dXJlc1tpXTsK
LSAgICAgICAgaWYgKCFzdHJ1Y3R1cmUtPm1fbmFtZUluUHJldmlvdXMpIHsKLSAgICAgICAgICAg
IG1fcHJvcGVydHlUYWJsZS0+YW5vbnltb3VzU2xvdENvdW50ICs9IHN0cnVjdHVyZS0+bV9hbm9u
eW1vdXNTbG90c0luUHJldmlvdXM7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQog
ICAgICAgICBzdHJ1Y3R1cmUtPm1fbmFtZUluUHJldmlvdXMtPnJlZigpOwogICAgICAgICBQcm9w
ZXJ0eU1hcEVudHJ5IGVudHJ5KHN0cnVjdHVyZS0+bV9uYW1lSW5QcmV2aW91cy5nZXQoKSwgc3Ry
dWN0dXJlLT5tX29mZnNldCwgc3RydWN0dXJlLT5tX2F0dHJpYnV0ZXNJblByZXZpb3VzLCBzdHJ1
Y3R1cmUtPm1fc3BlY2lmaWNWYWx1ZUluUHJldmlvdXMsICsrbV9wcm9wZXJ0eVRhYmxlLT5sYXN0
SW5kZXhVc2VkKTsKICAgICAgICAgaW5zZXJ0SW50b1Byb3BlcnR5TWFwSGFzaFRhYmxlKGVudHJ5
KTsKQEAgLTQ2Myw0OSArNDU3LDYgQEAgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IFN0cnVjdHVyZTo6
ZGVzcGVjaWZ5RnVuY3Rpb25UcmFuc2l0aW9uKFN0cnVjdHVyZSogc3RydWN0dXIKICAgICByZXR1
cm4gdHJhbnNpdGlvbi5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8U3RydWN0dXJlPiBTdHJ1
Y3R1cmU6OmFkZEFub255bW91c1Nsb3RzVHJhbnNpdGlvbihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
dW5zaWduZWQgY291bnQpCi17Ci0gICAgaWYgKFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9IHN0cnVj
dHVyZS0+dGFibGUuZ2V0QW5vbnltb3VzU2xvdFRyYW5zaXRpb24oY291bnQpKSB7Ci0gICAgICAg
IEFTU0VSVCh0cmFuc2l0aW9uLT5zdG9yZWRQcm90b3R5cGUoKSA9PSBzdHJ1Y3R1cmUtPnN0b3Jl
ZFByb3RvdHlwZSgpKTsKLSAgICAgICAgcmV0dXJuIHRyYW5zaXRpb247Ci0gICAgfQotICAgIEFT
U0VSVChjb3VudCk7Ci0gICAgQVNTRVJUKGNvdW50IDwgKCgxPDw2KSAtIDIpKTsKLSAgICBSZWZQ
dHI8U3RydWN0dXJlPiB0cmFuc2l0aW9uID0gY3JlYXRlKHN0cnVjdHVyZS0+bV9wcm90b3R5cGUs
IHN0cnVjdHVyZS0+dHlwZUluZm8oKSk7Ci0gICAgCi0gICAgdHJhbnNpdGlvbi0+bV9jYWNoZWRQ
cm90b3R5cGVDaGFpbiA9IHN0cnVjdHVyZS0+bV9jYWNoZWRQcm90b3R5cGVDaGFpbjsKLSAgICB0
cmFuc2l0aW9uLT5tX3ByZXZpb3VzID0gc3RydWN0dXJlOwotICAgIHRyYW5zaXRpb24tPm1fbmFt
ZUluUHJldmlvdXMgPSAwOwotICAgIHRyYW5zaXRpb24tPm1fYXR0cmlidXRlc0luUHJldmlvdXMg
PSAwOwotICAgIHRyYW5zaXRpb24tPm1fYW5vbnltb3VzU2xvdHNJblByZXZpb3VzID0gY291bnQ7
Ci0gICAgdHJhbnNpdGlvbi0+bV9zcGVjaWZpY1ZhbHVlSW5QcmV2aW91cyA9IDA7Ci0gICAgdHJh
bnNpdGlvbi0+bV9wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSA9IHN0cnVjdHVyZS0+bV9wcm9wZXJ0
eVN0b3JhZ2VDYXBhY2l0eTsKLSAgICB0cmFuc2l0aW9uLT5tX2hhc0dldHRlclNldHRlclByb3Bl
cnRpZXMgPSBzdHJ1Y3R1cmUtPm1faGFzR2V0dGVyU2V0dGVyUHJvcGVydGllczsKLSAgICB0cmFu
c2l0aW9uLT5tX2hhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzID0gc3RydWN0dXJlLT5tX2hhc05v
bkVudW1lcmFibGVQcm9wZXJ0aWVzOwotICAgIHRyYW5zaXRpb24tPm1fc3BlY2lmaWNGdW5jdGlv
blRocmFzaENvdW50ID0gc3RydWN0dXJlLT5tX3NwZWNpZmljRnVuY3Rpb25UaHJhc2hDb3VudDsK
LQotICAgIGlmIChzdHJ1Y3R1cmUtPm1fcHJvcGVydHlUYWJsZSkgewotICAgICAgICBpZiAoc3Ry
dWN0dXJlLT5tX2lzUGlubmVkUHJvcGVydHlUYWJsZSkKLSAgICAgICAgICAgIHRyYW5zaXRpb24t
Pm1fcHJvcGVydHlUYWJsZSA9IHN0cnVjdHVyZS0+Y29weVByb3BlcnR5VGFibGUoKTsKLSAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICB0cmFuc2l0aW9uLT5tX3Byb3BlcnR5VGFibGUgPSBzdHJ1
Y3R1cmUtPm1fcHJvcGVydHlUYWJsZTsKLSAgICAgICAgICAgIHN0cnVjdHVyZS0+bV9wcm9wZXJ0
eVRhYmxlID0gMDsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChzdHJ1Y3R1
cmUtPm1fcHJldmlvdXMpCi0gICAgICAgICAgICB0cmFuc2l0aW9uLT5tYXRlcmlhbGl6ZVByb3Bl
cnR5TWFwKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRyYW5zaXRpb24tPmNyZWF0ZVBy
b3BlcnR5TWFwSGFzaFRhYmxlKCk7Ci0gICAgfQotCi0gICAgdHJhbnNpdGlvbi0+YWRkQW5vbnlt
b3VzU2xvdHMoY291bnQpOwotICAgIGlmICh0cmFuc2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VTaXpl
KCkgPiB0cmFuc2l0aW9uLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpKQotICAgICAgICB0cmFu
c2l0aW9uLT5ncm93UHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkoKTsKLQotICAgIHN0cnVjdHVyZS0+
dGFibGUuYWRkQW5vbnltb3VzU2xvdFRyYW5zaXRpb24oY291bnQsIHRyYW5zaXRpb24uZ2V0KCkp
OwotICAgIHJldHVybiB0cmFuc2l0aW9uLnJlbGVhc2UoKTsgICAgCi19Ci0KIFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBTdHJ1Y3R1cmU6OmdldHRlclNldHRlclRyYW5zaXRpb24oU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCiB7CiAgICAgUmVmUHRyPFN0cnVjdHVyZT4gdHJhbnNpdGlvbiA9IGNyZWF0ZShz
dHJ1Y3R1cmUtPnN0b3JlZFByb3RvdHlwZSgpLCBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkpOwpAQCAt
ODgyLDExICs4MzMsNiBAQCBzaXplX3QgU3RydWN0dXJlOjpwdXQoY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBKU0NlbAogICAgIHJldHVybiBuZXdP
ZmZzZXQ7CiB9CiAKLXZvaWQgU3RydWN0dXJlOjphZGRBbm9ueW1vdXNTbG90cyh1bnNpZ25lZCBj
b3VudCkKLXsKLSAgICBtX3Byb3BlcnR5VGFibGUtPmFub255bW91c1Nsb3RDb3VudCArPSBjb3Vu
dDsKLX0KLQogYm9vbCBTdHJ1Y3R1cmU6Omhhc1RyYW5zaXRpb24oVVN0cmluZzo6UmVwKiByZXAs
IHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7CiAgICAgcmV0dXJuIHRhYmxlLmhhc1RyYW5zaXRpb24o
bWFrZV9wYWlyKHJlcCwgYXR0cmlidXRlcykpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgK
aW5kZXggNGNiZTZmZi4uZjczZjliOCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBA
IC02MCw5ICs2MCwxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIGZy
aWVuZCBjbGFzcyBKSVQ7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBTdHJ1Y3R1cmVUcmFuc2l0aW9u
VGFibGU7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlKEpTVmFs
dWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8pCisgICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFN0cnVjdHVyZT4gY3JlYXRlKEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBl
SW5mbyYgdHlwZUluZm8sIHVuc2lnbmVkIGFub255bW91c1Nsb3RDb3VudCkKICAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJ1Y3R1cmUocHJvdG90eXBlLCB0eXBl
SW5mbykpOworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSAobmV3IFN0cnVjdHVy
ZShwcm90b3R5cGUsIHR5cGVJbmZvKSk7CisgICAgICAgICAgICBpZiAoYW5vbnltb3VzU2xvdENv
dW50KSB7CisgICAgICAgICAgICAgICAgc3RydWN0dXJlLT5tYXRlcmlhbGl6ZVByb3BlcnR5TWFw
KCk7CisgICAgICAgICAgICAgICAgc3RydWN0dXJlLT5tX2lzUGlubmVkUHJvcGVydHlUYWJsZSA9
IHRydWU7CisgICAgICAgICAgICAgICAgc3RydWN0dXJlLT5tX3Byb3BlcnR5VGFibGUtPmFub255
bW91c1Nsb3RDb3VudCA9IGFub255bW91c1Nsb3RDb3VudDsKKyAgICAgICAgICAgICAgICAvLyBD
dXJyZW50bHkgd2UgZG9uJ3QgYWxsb3cgbW9yZSBhbm9ueW1vdXMgc2xvdHMgdGhhbiBmaXQgaW4g
dGhlIGlubGluZSBjYXBhY2l0eQorICAgICAgICAgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUtPnBy
b3BlcnR5U3RvcmFnZVNpemUoKSA8PSBzdHJ1Y3R1cmUtPnByb3BlcnR5U3RvcmFnZUNhcGFjaXR5
KCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKHN0cnVjdHVy
ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgdm9pZCBzdGFydElnbm9yaW5nTGVha3Mo
KTsKQEAgLTc1LDcgKzgzLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gcmVtb3ZlUHJvcGVydHlUcmFuc2l0aW9uKFN0cnVjdHVyZSosIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgc2l6ZV90JiBvZmZzZXQpOwogICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNoYW5nZVByb3RvdHlwZVRyYW5zaXRpb24oU3Ry
dWN0dXJlKiwgSlNWYWx1ZSBwcm90b3R5cGUpOwogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmU+IGRlc3BlY2lmeUZ1bmN0aW9uVHJhbnNpdGlvbihTdHJ1Y3R1cmUqLCBjb25zdCBJ
ZGVudGlmaWVyJik7Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVjdHVyZT4gYWRkQW5v
bnltb3VzU2xvdHNUcmFuc2l0aW9uKFN0cnVjdHVyZSosIHVuc2lnbmVkIGNvdW50KTsKICAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBnZXR0ZXJTZXR0ZXJUcmFuc2l0aW9uKFN0
cnVjdHVyZSopOwogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHRvQ2FjaGVh
YmxlRGljdGlvbmFyeVRyYW5zaXRpb24oU3RydWN0dXJlKik7CiAgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFN0cnVjdHVyZT4gdG9VbmNhY2hlYWJsZURpY3Rpb25hcnlUcmFuc2l0aW9uKFN0cnVj
dHVyZSopOwpAQCAtMTI4LDYgKzEzNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29s
IGhhc05vbkVudW1lcmFibGVQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNOb25FbnVt
ZXJhYmxlUHJvcGVydGllczsgfQogCiAgICAgICAgIGJvb2wgaGFzQW5vbnltb3VzU2xvdHMoKSBj
b25zdCB7IHJldHVybiBtX3Byb3BlcnR5VGFibGUgJiYgbV9wcm9wZXJ0eVRhYmxlLT5hbm9ueW1v
dXNTbG90Q291bnQ7IH0KKyAgICAgICAgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50KCkgY29u
c3QgeyByZXR1cm4gbV9wcm9wZXJ0eVRhYmxlID8gbV9wcm9wZXJ0eVRhYmxlLT5hbm9ueW1vdXNT
bG90Q291bnQgOiAwOyB9CiAgICAgICAgIAogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7
IHJldHVybiBtX3Byb3BlcnR5VGFibGUgPyAhbV9wcm9wZXJ0eVRhYmxlLT5rZXlDb3VudCA6IG1f
b2Zmc2V0ID09IG5vT2Zmc2V0OyB9CiAKQEAgLTEzOSw2ICsxNDcsMTEgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhQcm9wZXJ0eU5hbWVBcnJheSYsIEVu
dW1lcmF0aW9uTW9kZSBtb2RlKTsKICAgICAgICAgCiAgICAgcHJpdmF0ZToKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGUoSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0
IFR5cGVJbmZvJiB0eXBlSW5mbykKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTdHJ1Y3R1cmUocHJvdG90eXBlLCB0eXBlSW5mbykpOworICAgICAgICB9CisKICAg
ICAgICAgU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYpOwogICAg
ICAgICAKICAgICAgICAgdHlwZWRlZiBlbnVtIHsgCkBAIC0xNTAsNyArMTYzLDYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc2l6ZV90IHB1dChjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMsIEpTQ2VsbCogc3BlY2lmaWNWYWx1ZSk7CiAgICAg
ICAgIHNpemVfdCByZW1vdmUoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKLSAgICAg
ICAgdm9pZCBhZGRBbm9ueW1vdXNTbG90cyh1bnNpZ25lZCBzbG90Q291bnQpOwogCiAgICAgICAg
IHZvaWQgZXhwYW5kUHJvcGVydHlNYXBIYXNoVGFibGUoKTsKICAgICAgICAgdm9pZCByZWhhc2hQ
cm9wZXJ0eU1hcEhhc2hUYWJsZSgpOwpAQCAtMjE4LDkgKzIzMCw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogI2Vsc2UKICAgICAgICAgdW5zaWduZWQgbV9hdHRyaWJ1dGVzSW5QcmV2aW91cyA6IDc7CiAj
ZW5kaWYKLSAgICAgICAgdW5zaWduZWQgbV9hbm9ueW1vdXNTbG90c0luUHJldmlvdXMgOiA2Owog
ICAgICAgICB1bnNpZ25lZCBtX3NwZWNpZmljRnVuY3Rpb25UaHJhc2hDb3VudCA6IDI7Ci0gICAg
ICAgIC8vIDQgZnJlZSBiaXRzCisgICAgICAgIC8vIDEwIGZyZWUgYml0cwogICAgIH07CiAKICAg
ICBpbmxpbmUgc2l6ZV90IFN0cnVjdHVyZTo6Z2V0KGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlVHJhbnNp
dGlvblRhYmxlLmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZVRyYW5zaXRpb25U
YWJsZS5oCmluZGV4IDM1ZmI3ZTQuLjMyMGRiZGQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlLmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUuaApAQCAtNjksMzYgKzY5LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGUgewogICAg
ICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmUqPiBUcmFuc2l0aW9u
OwotICAgICAgICBzdHJ1Y3QgVHJhbnNpdGlvblRhYmxlIDogcHVibGljIEhhc2hNYXA8U3RydWN0
dXJlVHJhbnNpdGlvblRhYmxlSGFzaDo6S2V5LCBUcmFuc2l0aW9uLCBTdHJ1Y3R1cmVUcmFuc2l0
aW9uVGFibGVIYXNoLCBTdHJ1Y3R1cmVUcmFuc2l0aW9uVGFibGVIYXNoVHJhaXRzPiB7Ci0gICAg
ICAgICAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIFN0cnVjdHVyZSo+IEFub255bW91c1Ns
b3RNYXA7Ci0KLSAgICAgICAgICAgIHZvaWQgYWRkU2xvdFRyYW5zaXRpb24odW5zaWduZWQgY291
bnQsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IEFTU0VSVCghZ2V0U2xvdFRyYW5zaXRpb24oY291bnQpKTsKLSAgICAgICAgICAgICAgICBpZiAo
IW1fYW5vbnltb3VzU2xvdFRhYmxlKQotICAgICAgICAgICAgICAgICAgICBtX2Fub255bW91c1Ns
b3RUYWJsZS5zZXQobmV3IEFub255bW91c1Nsb3RNYXApOwotICAgICAgICAgICAgICAgIG1fYW5v
bnltb3VzU2xvdFRhYmxlLT5hZGQoY291bnQsIHN0cnVjdHVyZSk7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIHZvaWQgcmVtb3ZlU2xvdFRyYW5zaXRpb24odW5zaWduZWQgY291bnQpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGdldFNsb3RUcmFuc2l0aW9uKGNv
dW50KSk7Ci0gICAgICAgICAgICAgICAgbV9hbm9ueW1vdXNTbG90VGFibGUtPnJlbW92ZShjb3Vu
dCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFN0cnVjdHVyZSogZ2V0U2xvdFRyYW5z
aXRpb24odW5zaWduZWQgY291bnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaWYg
KCFtX2Fub255bW91c1Nsb3RUYWJsZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0K
LSAgICAgICAgICAgICAgICBBbm9ueW1vdXNTbG90TWFwOjppdGVyYXRvciBmaW5kID0gbV9hbm9u
eW1vdXNTbG90VGFibGUtPmZpbmQoY291bnQpOwotICAgICAgICAgICAgICAgIGlmIChmaW5kID09
IG1fYW5vbnltb3VzU2xvdFRhYmxlLT5lbmQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IDA7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZpbmQtPnNlY29uZDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgIE93blB0cjxBbm9ueW1vdXNTbG90TWFwPiBt
X2Fub255bW91c1Nsb3RUYWJsZTsKLSAgICAgICAgfTsKKyAgICAgICAgdHlwZWRlZiBIYXNoTWFw
PFN0cnVjdHVyZVRyYW5zaXRpb25UYWJsZUhhc2g6OktleSwgVHJhbnNpdGlvbiwgU3RydWN0dXJl
VHJhbnNpdGlvblRhYmxlSGFzaCwgU3RydWN0dXJlVHJhbnNpdGlvblRhYmxlSGFzaFRyYWl0cz4g
VHJhbnNpdGlvblRhYmxlOwogICAgIHB1YmxpYzoKICAgICAgICAgU3RydWN0dXJlVHJhbnNpdGlv
blRhYmxlKCkgewogICAgICAgICAgICAgbV90cmFuc2l0aW9ucy5tX3NpbmdsZVRyYW5zaXRpb24u
c2V0KDApOwpAQCAtMTU0LDI2ICsxMjUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCi0gICAgICAgIFN0cnVjdHVyZSogZ2V0QW5vbnltb3VzU2xvdFRyYW5z
aXRpb24odW5zaWduZWQgY291bnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh1c2luZ1Np
bmdsZVRyYW5zaXRpb25TbG90KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAg
ICAgICByZXR1cm4gdGFibGUoKS0+Z2V0U2xvdFRyYW5zaXRpb24oY291bnQpOwotICAgICAgICB9
Ci0KLSAgICAgICAgdm9pZCBhZGRBbm9ueW1vdXNTbG90VHJhbnNpdGlvbih1bnNpZ25lZCBjb3Vu
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh1c2lu
Z1NpbmdsZVRyYW5zaXRpb25TbG90KCkpCi0gICAgICAgICAgICAgICAgcmVpZnlTaW5nbGVUcmFu
c2l0aW9uKCk7Ci0gICAgICAgICAgICBBU1NFUlQoIXRhYmxlKCktPmdldFNsb3RUcmFuc2l0aW9u
KGNvdW50KSk7Ci0gICAgICAgICAgICB0YWJsZSgpLT5hZGRTbG90VHJhbnNpdGlvbihjb3VudCwg
c3RydWN0dXJlKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgdm9pZCByZW1vdmVBbm9u
eW1vdXNTbG90VHJhbnNpdGlvbih1bnNpZ25lZCBjb3VudCkKLSAgICAgICAgewotICAgICAgICAg
ICAgQVNTRVJUKCF1c2luZ1NpbmdsZVRyYW5zaXRpb25TbG90KCkpOwotICAgICAgICAgICAgdGFi
bGUoKS0+cmVtb3ZlU2xvdFRyYW5zaXRpb24oY291bnQpOwotICAgICAgICB9CiAgICAgcHJpdmF0
ZToKICAgICAgICAgVHJhbnNpdGlvblRhYmxlKiB0YWJsZSgpIGNvbnN0IHsgQVNTRVJUKCF1c2lu
Z1NpbmdsZVRyYW5zaXRpb25TbG90KCkpOyByZXR1cm4gbV90cmFuc2l0aW9ucy5tX3RhYmxlOyB9
CiAgICAgICAgIFN0cnVjdHVyZSogc2luZ2xlVHJhbnNpdGlvbigpIGNvbnN0IHsKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpp
bmRleCBmMTg3MzkyLi41ZWM1MjZhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VM
b2cKKysrIGIvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAt
MDEtMjggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGlmeSBhbm9ueW1vdXMgc2xvdCBp
bXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQyODIKKworICAgICAgICBVcGRhdGUgSlNHbHVlIFN0cnVjdHVyZSB1c2FnZSB0byBw
YXNzIHRoZSBhbm9ueW1vdXMgc2xvdCBjb3VudC4KKworICAgICAgICAqIFVzZXJPYmplY3RJbXAu
aDoKKyAgICAgICAgKFVzZXJPYmplY3RJbXA6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTAtMDEt
MTIgIEtlbnQgSGFuc2VuICA8a2VudC5oYW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdEdsdWUvVXNlck9i
amVjdEltcC5oIGIvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4IDY1NDFhODQu
LjZmODU3ZjkgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysg
Yi9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
cHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBPdmVycmlkZXNNYXJrQ2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzKSk7
CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc01hcmtDaGls
ZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMpLCBBbm9ueW1vdXNTbG90Q291bnQpOwog
ICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYWIwNWI4Yi4uZWQ2OGIxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0w
MS0yOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbXBsaWZ5IGFub255bW91cyBzbG90IGlt
cGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNDI4MgorCisgICAgICAgIFVwZGF0ZSB0aGUgV2ViQ29yZSBKUyBET00gYmluZGluZ3Mg
dG8gY29ycmVjdGx5IHBhc3MgYW5kCisgICAgICAgIHByb3BhZ2F0ZSB0aGUgYW5vbnltb3VzIHNs
b3QgY291bnQgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU9iamVjdFdpdGhHbG9iYWxQb2ludGVyOjpjcmVh
dGVTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ29uc3RydWN0b3JPYmplY3Q6OmNy
ZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5o
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAg
KiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9i
amNGYWxsYmFja09iamVjdEltcDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKiBicmlkZ2Uv
cnVudGltZV9hcnJheS5oOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgIChKU0M6
OlJ1bnRpbWVNZXRob2Q6OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfb2JqZWN0Lmg6CisgICAgICAgIChKU0M6OlJ1bnRpbWVPYmplY3RJbXA6OmNyZWF0ZVN0cnVj
dHVyZSk6CisKIDIwMTAtMDEtMjcgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oCmluZGV4IGUxN2I5ZmMuLjFlNzg4NDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuaApAQCAtODEsNyArODEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpT
VmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1
Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncykpOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVh
dGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQpOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CkBA
IC0xMTMsNyArMTEzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHB1YmxpYzoKICAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6
OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpT
dHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncykpOworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJl
RmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQpOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IGE4OTUxNzcuLjFiOTg2
YjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCkBAIC02MCw3ICs2MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6
OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpOyAKKyAg
ICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENv
dW50KTsgCiAgICAgICAgIH0KIAogICAgICAgICBET01XcmFwcGVyV29ybGQqIHdvcmxkKCkgeyBy
ZXR1cm4gbV93b3JsZC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KaW5kZXggYjEzNDUzOS4uZjIyZGYwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02MDMsNyArNjAzLDcgQEAgc3ViIEdlbmVy
YXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwKICAgICAgICAgIiAgICBzdGF0aWMg
UGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBw
cm90b3R5cGUpXG4iIC4KICAgICAgICAgIiAgICB7XG4iIC4KLSAgICAgICAgIiAgICAgICAgcmV0
dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpKTtcbiIgLgorICAgICAgICAiICAgICAgICByZXR1
cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCk7XG4iIC4KICAg
ICAgICAgIiAgICB9XG5cbiIpOwogCiAgICAgIyBtYXJrQ2hpbGRyZW4gZnVuY3Rpb24KQEAgLTgw
OCw3ICs4MDgsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LAogICAgICAgICAiICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIgLgogICAgICAgICAiICAgIHtcbiIg
LgotICAgICAgICAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5
cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpO1xuIiAu
CisgICAgICAgICIgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnlt
b3VzU2xvdENvdW50KTtcbiIgLgogICAgICAgICAiICAgIH1cbiIpOwogICAgIGlmICgkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEZWxlZ2F0aW5nUHJvdG90eXBlUHV0RnVuY3Rpb24i
fSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBwdXQo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
OjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CkBAIC0yMjQ4LDcgKzIyNDgs
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0
cnVjdHVyZShKU1ZhbHVlIHByb3RvKSAKICAgICB7IAotICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSk7IAor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsgCiAgICAgfQogICAgIAog
cHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUu
aCBiL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggNGRlMWNlNi4uMzU0
ODVhZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAorKysg
Yi9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMDQsNyArMTA0LDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1
cmUoSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpOwor
ICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCk7CiAgICAgfQogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IGMxYzRjODQuLjZjNmNhY2QgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX2FycmF5LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNWYWx1ZSBwcm90b3R5cGUp
CiAgICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncykpOworICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUocHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIEFub255bW91c1Nsb3RDb3VudCk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
bWV0aG9kLmgKaW5kZXggMTQ4YmUzMi4uOTE0YWIwMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9tZXRob2QuaAorKysgYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5o
CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cnVj
dHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpKTsKKyAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHByb3Rv
dHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90
Q291bnQpOwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmggYi9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDI1
OTE5NTQuLmVmNWEyZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0
LmgKKysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtNjEsNyArNjEsNyBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IGNyZWF0ZVN0cnVj
dHVyZShKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSk7
CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUsIFR5cGVJbmZvKE9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsKICAgICB9CiAK
IHByb3RlY3RlZDoK
</data>
<flag name="review"
          id="30154"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>