<?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>90114</bug_id>
          
          <creation_ts>2012-06-27 17:03:16 -0700</creation_ts>
          <short_desc>IndexedDB: Keep direction on IDBCursor to avoid calls to back end</short_desc>
          <delta_ts>2012-06-29 20:09: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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>658986</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-27 17:03:16 -0700</bug_when>
    <thetext>IndexedDB: Keep direction on IDBCursor to avoid calls to back end</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658988</commentid>
    <comment_count>1</comment_count>
      <attachid>149825</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-27 17:06:57 -0700</bug_when>
    <thetext>Created attachment 149825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658996</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-27 17:10:43 -0700</bug_when>
    <thetext>alecflett@ - can you take a look?

I think this is the last of the simple ones. IDBTransactionBackendInterface::mode() will be difficult to remove as IDBObjectStoreBackendInterface is passed a IDBTransactionBackendInterface (for example). We&apos;ll have to solve the &quot;XXXImpl objects deserve XXXImpl pointers&quot; problem to clean that up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658998</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-27 17:14:07 -0700</bug_when>
    <thetext>alecflett@ - also, I&apos;m not sure why IDBCursor::stringToDirection() was an unsigned int rather than an enum value. Changing it didn&apos;t seem problematic (other than having to pick a default in the error case), and was necessary for making IDBRequest::setCursorTypeAndDirection() accept the enum w/o a cast.

Speaking of, the name setCursorTypeAndDirection() is wordy. setCursorInfo() ? setCursorDetails() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660605</commentid>
    <comment_count>4</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-06-29 10:24:23 -0700</bug_when>
    <thetext>LGTM with extra const&apos;ness on member variables</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660638</commentid>
    <comment_count>5</comment_count>
      <attachid>150218</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-29 11:05:25 -0700</bug_when>
    <thetext>Created attachment 150218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660639</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-29 11:06:02 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; LGTM with extra const&apos;ness on member variables

Added to IDBCursor::m_direction, also (based on offline discussion) went with setCursorDetails()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660642</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-29 11:06:21 -0700</bug_when>
    <thetext>tony@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660657</commentid>
    <comment_count>8</comment_count>
      <attachid>150218</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-06-29 11:28:10 -0700</bug_when>
    <thetext>Comment on attachment 150218
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBCursor.h:62
&gt; +    static IDBCursor::Direction stringToDirection(const String&amp; modeString, ExceptionCode&amp;);

Nit: I don&apos;t think you need the IDBCursor:: prefix here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660738</commentid>
    <comment_count>9</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-29 13:24:35 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; +    static IDBCursor::Direction stringToDirection(const String&amp; modeString, ExceptionCode&amp;);
&gt; 
&gt; Nit: I don&apos;t think you need the IDBCursor:: prefix here.

Apparently it is needed, otherwise it&apos;s trying to resolve WebCore::Direction - the return type part of the function declaration is outside the IDBCursor scope, or some such.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660739</commentid>
    <comment_count>10</comment_count>
      <attachid>150244</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-06-29 13:25:08 -0700</bug_when>
    <thetext>Created attachment 150244
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660949</commentid>
    <comment_count>11</comment_count>
      <attachid>150244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-29 20:09:49 -0700</bug_when>
    <thetext>Comment on attachment 150244
Patch for landing

Clearing flags on attachment: 150244

Committed r121612: &lt;http://trac.webkit.org/changeset/121612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660950</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-29 20:09:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149825</attachid>
            <date>2012-06-27 17:06:57 -0700</date>
            <delta_ts>2012-06-29 11:05:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90114-20120627170657.patch</filename>
            <type>text/plain</type>
            <size>20820</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTgxZGZkZGYyMDlmN2M1
ZTVkZjhiNjUyZTkzMTBhMjZiMTNhMmZjZS4uNTVhNDE3MDAyMDVkNDg5YWQ5NGQ4ZjhjYzlkMjgz
MjZlM2Y0MGU5ZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA2LTI3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBLZWVw
IGRpcmVjdGlvbiBvbiBJREJDdXJzb3IgdG8gYXZvaWQgY2FsbHMgdG8gYmFjayBlbmQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMTE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV0IElEQkN1cnNvciBo
YW5kbGUgZGlyZWN0aW9uKCkgYWNjZXNzb3IgbG9jYWxseSwgd2l0aG91dCBhIGNhbGwgdG8KKyAg
ICAgICAgdGhlIElEQkN1cnNvckJhY2tlbmRJbXBsIHdoaWNoIChpbiBzb21lIHBvcnRzKSBtYXkg
cmVzaWRlIGluIGEgZGlmZmVyZW50CisgICAgICAgIHByb2Nlc3MuIE5vdCBhIGhlYXZpbHkgY2Fs
bGVkIGZ1bmN0aW9uLCBidXQgZnVydGhlciByZWR1Y2VzIHRoZSBzdXJmYWNlCisgICAgICAgIGFy
ZWEgZXhwb3NlZCBieSB0aGUgWFhYSW50ZXJmYWNlIGNsYXNzZXMuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIC0gbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6SURCQ3Vyc29yKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkN1cnNvcjo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNv
cjo6c3RyaW5nVG9EaXJlY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5oOgorICAgICAgICAoSURCQ3Vyc29yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yQmFja2VuZEltcGwuaDoKKyAgICAgICAgKElEQkN1cnNvckJhY2tlbmRJbXBsKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmg6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcldpdGhWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkN1cnNvcldpdGhWYWx1ZTo6SURCQ3Vyc29yV2l0aFZhbHVlKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaDoKKyAgICAgICAgKElEQkN1
cnNvcldpdGhWYWx1ZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXg6Om9wZW5DdXJzb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCSW5kZXg6Om9wZW5LZXlDdXJzb3IpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3Jl
OjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SURCUmVxdWVzdDo6c2V0Q3Vyc29yVHlwZUFuZERpcmVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKElEQlJlcXVlc3QpOgorCiAyMDEyLTA2LTI3
ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIFJl
ZmFjdG9yIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCkgYW5kIFY4QmluZGluZ1Bl
cklzb2xhdGVEYXRhOjpnZXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzNjVkMGVi
M2NjYTUxZjJlZmJjNTI1YTIxN2MxYTM2MGViOWM1OWU4Li5jNWNiYmFkMWU1MTcxYmNkNmQ0ZjE1
NWUyMzEzY2I0NTYyOGE2NWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDEyLTA2LTI3ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgSW5kZXhlZERCOiBLZWVwIGRpcmVjdGlvbiBvbiBJREJDdXJzb3IgdG8gYXZvaWQg
Y2FsbHMgdG8gYmFjayBlbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkwMTE0CisKKyAgICAgICAgU3RvcCBwbHVtYmluZyBJREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlOjpkaXJlY3Rpb24oKSB0aHJvdWdoIEFQSS4KKyAgICAgICAgCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL0lEQkN1cnNvckJhY2tl
bmRQcm94eS5jcHA6CisgICAgICAgICogc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5oOgorICAg
ICAgICAoSURCQ3Vyc29yQmFja2VuZFByb3h5KToKKyAgICAgICAgKiBzcmMvV2ViSURCQ3Vyc29y
SW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYklEQkN1cnNvckltcGwuaDoKKyAgICAgICAgKFdl
YklEQkN1cnNvckltcGwpOgorCiAyMDEyLTA2LTI2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiAgUm9sbGVkIERFUFMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCBh
ZjFjNTA0NDQ3MzVlYjk0NjIzZmNiODg2YTY0NmYwNGJjYTY1ODA5Li5iZTM4ZjkyZWFmNjgwZDg3
ZjJmZTZiN2ZiMjM0MmM3ZDE0NjVlOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTQyLDkgKzQyLDkgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1QYXNzUmVmUHRyPElEQkN1cnNvcj4gSURCQ3Vyc29yOjpjcmVhdGUoUGFzc1Jl
ZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJREJSZXF1ZXN0KiByZXF1
ZXN0LCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQorUGFzc1Jl
ZlB0cjxJREJDdXJzb3I+IElEQkN1cnNvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZT4gYmFja2VuZCwgRGlyZWN0aW9uIGRpcmVjdGlvbiwgSURCUmVxdWVzdCog
cmVxdWVzdCwgSURCQW55KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1cnNvcihiYWNrZW5kLCByZXF1ZXN0LCBzb3Vy
Y2UsIHRyYW5zYWN0aW9uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3IoYmFj
a2VuZCwgZGlyZWN0aW9uLCByZXF1ZXN0LCBzb3VyY2UsIHRyYW5zYWN0aW9uKSk7CiB9CiAKIGNv
bnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCkKQEAgLTcyLDkgKzcy
LDEwIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25QcmV2VW5pcXVl
KCkKIH0KIAogCi1JREJDdXJzb3I6OklEQkN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlJlcXVlc3QqIHJlcXVlc3QsIElEQkFueSogc291cmNl
LCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCitJREJDdXJzb3I6OklEQkN1cnNvcihQYXNz
UmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIERpcmVjdGlvbiBkaXJl
Y3Rpb24sIElEQlJlcXVlc3QqIHJlcXVlc3QsIElEQkFueSogc291cmNlLCBJREJUcmFuc2FjdGlv
biogdHJhbnNhY3Rpb24pCiAgICAgOiBtX2JhY2tlbmQoYmFja2VuZCkKICAgICAsIG1fcmVxdWVz
dChyZXF1ZXN0KQorICAgICwgbV9kaXJlY3Rpb24oZGlyZWN0aW9uKQogICAgICwgbV9zb3VyY2Uo
c291cmNlKQogICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKICAgICAsIG1fdHJhbnNh
Y3Rpb25Ob3RpZmllcih0cmFuc2FjdGlvbiwgdGhpcykKQEAgLTk1LDcgKzk2LDcgQEAgY29uc3Qg
U3RyaW5nJiBJREJDdXJzb3I6OmRpcmVjdGlvbigpIGNvbnN0CiB7CiAgICAgSURCX1RSQUNFKCJJ
REJDdXJzb3I6OmRpcmVjdGlvbiIpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgZGlyZWN0aW9uID0gZGlyZWN0aW9uVG9TdHJpbmcobV9iYWNrZW5k
LT5kaXJlY3Rpb24oKSwgZWMpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGlyZWN0aW9uID0g
ZGlyZWN0aW9uVG9TdHJpbmcobV9kaXJlY3Rpb24sIGVjKTsKICAgICBBU1NFUlQoIWVjKTsKICAg
ICByZXR1cm4gZGlyZWN0aW9uOwogfQpAQCAtMjc5LDcgKzI4MCw3IEBAIFBhc3NSZWZQdHI8SURC
T2JqZWN0U3RvcmU+IElEQkN1cnNvcjo6ZWZmZWN0aXZlT2JqZWN0U3RvcmUoKQogICAgIHJldHVy
biBpbmRleC0+b2JqZWN0U3RvcmUoKTsKIH0KIAotdW5zaWduZWQgc2hvcnQgSURCQ3Vyc29yOjpz
dHJpbmdUb0RpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZywgRXhjZXB0aW9u
Q29kZSYgZWMpCitJREJDdXJzb3I6OkRpcmVjdGlvbiBJREJDdXJzb3I6OnN0cmluZ1RvRGlyZWN0
aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBpZiAoZGlyZWN0aW9uU3RyaW5nID09IElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpKQog
ICAgICAgICByZXR1cm4gSURCQ3Vyc29yOjpORVhUOwpAQCAtMjkxLDcgKzI5Miw3IEBAIHVuc2ln
bmVkIHNob3J0IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBkaXJl
Y3Rpb25TdHJpbmcsIEV4Y2VwCiAgICAgICAgIHJldHVybiBJREJDdXJzb3I6OlBSRVZfTk9fRFVQ
TElDQVRFOwogCiAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX1RZUEVfRVJSOwot
ICAgIHJldHVybiAwOworICAgIHJldHVybiBJREJDdXJzb3I6Ok5FWFQ7CiB9CiAKIGNvbnN0IEF0
b21pY1N0cmluZyYgSURCQ3Vyc29yOjpkaXJlY3Rpb25Ub1N0cmluZyh1bnNpZ25lZCBzaG9ydCBk
aXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJDdXJzb3IuaAppbmRleCA0ZjQ1NjRlZWI0MjEyN2FhODdiMDY5MzZiNTRlMDQz
ZjRlN2Y1NTg2Li43NWYzZjg1MTJjMGYxN2ZlMTEwNjA4MDdkYWY1ZTNjNDI0ZjFjNGUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApAQCAtNTksMTAg
KzU5LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBkaXJlY3Rp
b25QcmV2KCk7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZGlyZWN0aW9uUHJldlVu
aXF1ZSgpOwogCi0gICAgc3RhdGljIHVuc2lnbmVkIHNob3J0IHN0cmluZ1RvRGlyZWN0aW9uKGNv
bnN0IFN0cmluZyYgbW9kZVN0cmluZywgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBJREJD
dXJzb3I6OkRpcmVjdGlvbiBzdHJpbmdUb0RpcmVjdGlvbihjb25zdCBTdHJpbmcmIG1vZGVTdHJp
bmcsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBkaXJl
Y3Rpb25Ub1N0cmluZyh1bnNpZ25lZCBzaG9ydCBtb2RlLCBFeGNlcHRpb25Db2RlJik7CiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3I+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNv
ckJhY2tlbmRJbnRlcmZhY2U+LCBJREJSZXF1ZXN0KiwgSURCQW55KiBzb3VyY2UsIElEQlRyYW5z
YWN0aW9uKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgRGlyZWN0aW9uLCBJREJSZXF1ZXN0Kiwg
SURCQW55KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKik7CiAgICAgdmlydHVhbCB+SURCQ3Vyc29y
KCk7CiAKICAgICAvLyBGSVhNRTogVHJ5IHRvIG1vZGlmeSB0aGUgY29kZSBnZW5lcmF0b3Igc28g
dGhpcyBpcyB1bm5lZWRlZC4KQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogICAgIGJvb2wgdmFs
dWVJc0RpcnR5KCkgeyByZXR1cm4gbV92YWx1ZUlzRGlydHk7IH0KIAogcHJvdGVjdGVkOgotICAg
IElEQkN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBJREJSZXF1
ZXN0KiwgSURCQW55KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKik7CisgICAgSURCQ3Vyc29yKFBh
c3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIERpcmVjdGlvbiwgSURCUmVxdWVz
dCosIElEQkFueSogc291cmNlLCBJREJUcmFuc2FjdGlvbiopOwogICAgIHZpcnR1YWwgYm9vbCBp
c0tleUN1cnNvcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogcHJpdmF0ZToKQEAgLTk4LDYg
Kzk4LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
PiBtX2JhY2tlbmQ7CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IG1fcmVxdWVzdDsKKyAgICBEaXJl
Y3Rpb24gbV9kaXJlY3Rpb247CiAgICAgUmVmUHRyPElEQkFueT4gbV9zb3VyY2U7CiAgICAgUmVm
UHRyPElEQlRyYW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uOwogICAgIElEQlRyYW5zYWN0aW9uOjpP
cGVuQ3Vyc29yTm90aWZpZXIgbV90cmFuc2FjdGlvbk5vdGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3Bw
CmluZGV4IDBhMTRhNmYxYTFiNTkzMDBmOGJlOTg5ZDMyY2FlMWUwZmI5MzQzM2MuLmZlNTg5ODhl
NDJlMjhlMzIwMmJiYzYwN2ZmZDg2Y2VmMmEyNjM1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKQEAg
LTYzLDEyICs2Myw2IEBAIElEQkN1cnNvckJhY2tlbmRJbXBsOjp+SURCQ3Vyc29yQmFja2VuZElt
cGwoKQogICAgIG1fb2JqZWN0U3RvcmUuY2xlYXIoKTsKIH0KIAotdW5zaWduZWQgc2hvcnQgSURC
Q3Vyc29yQmFja2VuZEltcGw6OmRpcmVjdGlvbigpIGNvbnN0Ci17Ci0gICAgSURCX1RSQUNFKCJJ
REJDdXJzb3JCYWNrZW5kSW1wbDo6ZGlyZWN0aW9uIik7Ci0gICAgcmV0dXJuIG1fZGlyZWN0aW9u
OwotfQotCiBQYXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29yQmFja2VuZEltcGw6OmtleSgpIGNv
bnN0CiB7CiAgICAgSURCX1RSQUNFKCJJREJDdXJzb3JCYWNrZW5kSW1wbDo6a2V5Iik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5k
SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2Vu
ZEltcGwuaAppbmRleCA4OWRkZTRmMTEzOTZhZGIxOWYzYjlmN2U1MWQ4YjUxMjA3YTQzYWIyLi4x
NTMwMTZmMTI2NzBkZGIyN2RmOWE3MmRhNzg5YjZiY2EwODcxZWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmgK
QEAgLTUzLDcgKzUzLDYgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5JREJDdXJzb3JC
YWNrZW5kSW1wbCgpOwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24oKSBj
b25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25zdDsKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5KCkgY29uc3Q7CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJh
Y2tlbmRJbnRlcmZhY2UuaAppbmRleCA5NzEyMzI4MjZmZDdhNWQwM2I5NTU5OWM3MGQ5NWQ4MmFm
MTVkZDBlLi40OGQzYTE4MjlmNjU4OGVkZjYxOTczMzdmMzE4YjJjMDZlOTBiY2YzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZS5oCkBAIC01Myw3ICs1Myw2IEBAIHB1YmxpYzoKICAgICAgICAgT2Jq
ZWN0U3RvcmVDdXJzb3IKICAgICB9OwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
dmFsdWUoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmNwcAppbmRleCAzMGQyNDJjOTg2NTRkNGRlY2I0
MDFmNmM5ZDAzM2Y2MGI3NGM4MjE5Li5iOTBiYTNkOWI1MjY1MzE3MDkyYmJlNTU4MTc1MGRjMDI3
ODVkYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3JXaXRoVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvcldpdGhWYWx1ZS5jcHAKQEAgLTMzLDkgKzMzLDkgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1QYXNzUmVmUHRyPElEQkN1cnNvcldpdGhWYWx1ZT4gSURCQ3Vyc29yV2l0aFZh
bHVlOjpjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5k
LCBJREJSZXF1ZXN0KiByZXF1ZXN0LCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uKQorUGFzc1JlZlB0cjxJREJDdXJzb3JXaXRoVmFsdWU+IElEQkN1cnNvcldpdGhW
YWx1ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2Vu
ZCwgRGlyZWN0aW9uIGRpcmVjdGlvbiwgSURCUmVxdWVzdCogcmVxdWVzdCwgSURCQW55KiBzb3Vy
Y2UsIElEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IElEQkN1cnNvcldpdGhWYWx1ZShiYWNrZW5kLCByZXF1ZXN0LCBzb3VyY2UsIHRyYW5zYWN0
aW9uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3JXaXRoVmFsdWUoYmFja2Vu
ZCwgZGlyZWN0aW9uLCByZXF1ZXN0LCBzb3VyY2UsIHRyYW5zYWN0aW9uKSk7CiB9CiAKIFBhc3NS
ZWZQdHI8SURCQ3Vyc29yV2l0aFZhbHVlPiBJREJDdXJzb3JXaXRoVmFsdWU6OmZyb21DdXJzb3Io
UGFzc1JlZlB0cjxJREJDdXJzb3I+IHBycEN1cnNvcikKQEAgLTQ0LDggKzQ0LDggQEAgUGFzc1Jl
ZlB0cjxJREJDdXJzb3JXaXRoVmFsdWU+IElEQkN1cnNvcldpdGhWYWx1ZTo6ZnJvbUN1cnNvcihQ
YXNzUmVmUHRyPElEQkN1cnMKICAgICByZXR1cm4gY3Vyc29yV2l0aFZhbHVlLnJlbGVhc2UoKTsK
IH0KIAotSURCQ3Vyc29yV2l0aFZhbHVlOjpJREJDdXJzb3JXaXRoVmFsdWUoUGFzc1JlZlB0cjxJ
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJREJSZXF1ZXN0KiByZXF1ZXN0LCBJ
REJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQotICAgIDogSURCQ3Vy
c29yKGJhY2tlbmQsIHJlcXVlc3QsIHNvdXJjZSwgdHJhbnNhY3Rpb24pCitJREJDdXJzb3JXaXRo
VmFsdWU6OklEQkN1cnNvcldpdGhWYWx1ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRl
cmZhY2U+IGJhY2tlbmQsIERpcmVjdGlvbiBkaXJlY3Rpb24sIElEQlJlcXVlc3QqIHJlcXVlc3Qs
IElEQkFueSogc291cmNlLCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCisgICAgOiBJREJD
dXJzb3IoYmFja2VuZCwgZGlyZWN0aW9uLCByZXF1ZXN0LCBzb3VyY2UsIHRyYW5zYWN0aW9uKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3JXaXRoVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvcldpdGhWYWx1ZS5oCmluZGV4IDliMzk2YmEzNWFhMDZiMzkxNGUwNzJhNjgxZDcwNGUwNWNh
ZWY4Y2QuLmNiYjg1MGExY2QwMmYwYWEyMDk1MmYyY2ZkYjg4OGZjOGMwMjg2NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1
ZS5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCQ3Vy
c29yV2l0aFZhbHVlIDogcHVibGljIElEQkN1cnNvciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCQ3Vyc29yV2l0aFZhbHVlPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlPiwgSURCUmVxdWVzdCosIElEQkFueSogc291cmNlLCBJREJUcmFuc2Fj
dGlvbiopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvcldpdGhWYWx1ZT4gY3JlYXRl
KFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIERpcmVjdGlvbiwgSURCUmVx
dWVzdCosIElEQkFueSogc291cmNlLCBJREJUcmFuc2FjdGlvbiopOwogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPElEQkN1cnNvcldpdGhWYWx1ZT4gZnJvbUN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNv
cj4pOwogICAgIHZpcnR1YWwgfklEQkN1cnNvcldpdGhWYWx1ZSgpOwogCkBAIC00NSw3ICs0NSw3
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgaXNLZXlDdXJzb3IoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBmYWxzZTsgfQogCiBwcml2YXRlOgotICAgIElEQkN1cnNvcldpdGhWYWx1
ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBJREJSZXF1ZXN0KiwgSURC
QW55KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKik7CisgICAgSURCQ3Vyc29yV2l0aFZhbHVlKFBh
c3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIERpcmVjdGlvbiwgSURCUmVxdWVz
dCosIElEQkFueSogc291cmNlLCBJREJUcmFuc2FjdGlvbiopOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCSW5kZXguY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXgu
Y3BwCmluZGV4IGZkOTM5NDk0NzQ5MjcyMjU1OTE5ZGMzMDIyOGYzYzA1Yzk3OGQzMTguLmZmYjNm
ZTgyM2RjZWQ5YjYyNWU1NTcwMDhmOTllOTA3NDNiYWRiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKQEAgLTY5LDEyICs2OSwxMiBAQCBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIFBhcwogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpU
UkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICB1
bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24gPSBJREJDdXJzb3I6OnN0cmluZ1RvRGlyZWN0aW9uKGRp
cmVjdGlvblN0cmluZywgZWMpOworICAgIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbiA9
IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oZGlyZWN0aW9uU3RyaW5nLCBlYyk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1
ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBt
X3RyYW5zYWN0aW9uLmdldCgpKTsKLSAgICByZXF1ZXN0LT5zZXRDdXJzb3JUeXBlKElEQkN1cnNv
ckJhY2tlbmRJbnRlcmZhY2U6OkluZGV4Q3Vyc29yKTsKKyAgICByZXF1ZXN0LT5zZXRDdXJzb3JU
eXBlQW5kRGlyZWN0aW9uKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkluZGV4Q3Vyc29yLCBk
aXJlY3Rpb24pOwogICAgIG1fYmFja2VuZC0+b3BlbkN1cnNvcihrZXlSYW5nZSwgZGlyZWN0aW9u
LCByZXF1ZXN0LCBtX3RyYW5zYWN0aW9uLT5iYWNrZW5kKCksIGVjKTsKICAgICBpZiAoZWMpIHsK
ICAgICAgICAgcmVxdWVzdC0+bWFya0Vhcmx5RGVhdGgoKTsKQEAgLTE1MiwxMyArMTUyLDEyIEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6VFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0K
LSAgICB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24gPSBJREJDdXJzb3I6OnN0cmluZ1RvRGlyZWN0
aW9uKGRpcmVjdGlvblN0cmluZywgZWMpOworICAgIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVj
dGlvbiA9IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oZGlyZWN0aW9uU3RyaW5nLCBlYyk7
CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxJREJSZXF1ZXN0
PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRo
aXMpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKLSAgICByZXF1ZXN0LT5zZXRDdXJzb3JUeXBlKElE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5Q3Vyc29yKTsKKyAgICByZXF1ZXN0LT5z
ZXRDdXJzb3JUeXBlQW5kRGlyZWN0aW9uKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkluZGV4
S2V5Q3Vyc29yLCBkaXJlY3Rpb24pOwogICAgIG1fYmFja2VuZC0+b3BlbktleUN1cnNvcihrZXlS
YW5nZSwgZGlyZWN0aW9uLCByZXF1ZXN0LCBtX3RyYW5zYWN0aW9uLT5iYWNrZW5kKCksIGVjKTsK
ICAgICBpZiAoZWMpIHsKICAgICAgICAgcmVxdWVzdC0+bWFya0Vhcmx5RGVhdGgoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApp
bmRleCA2YzA2NDE1OTI5Y2U4YmI3Yzg1N2ExMWFlZjhkZDFmODFlMzMyMTUzLi4yNjQyMjUxNDBl
YWI2YjQ5YzZmMzE0NzI2NmJhOTY3ZjMyYWRlYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC0zNzUsMTIgKzM3NSwx
MiBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleAogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpUUkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KLSAgICB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24gPSBJREJDdXJzb3I6OnN0cmluZ1RvRGly
ZWN0aW9uKGRpcmVjdGlvblN0cmluZywgZWMpOworICAgIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRp
cmVjdGlvbiA9IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oZGlyZWN0aW9uU3RyaW5nLCBl
Yyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxJREJSZXF1
ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRl
KHRoaXMpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKLSAgICByZXF1ZXN0LT5zZXRDdXJzb3JUeXBl
KElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6Ok9iamVjdFN0b3JlQ3Vyc29yKTsKKyAgICByZXF1
ZXN0LT5zZXRDdXJzb3JUeXBlQW5kRGlyZWN0aW9uKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6
Ok9iamVjdFN0b3JlQ3Vyc29yLCBkaXJlY3Rpb24pOwogICAgIG1fYmFja2VuZC0+b3BlbkN1cnNv
cihyYW5nZSwgZGlyZWN0aW9uLCByZXF1ZXN0LCBtX3RyYW5zYWN0aW9uLT5iYWNrZW5kKCksIGVj
KTsKICAgICBpZiAoZWMpIHsKICAgICAgICAgcmVxdWVzdC0+bWFya0Vhcmx5RGVhdGgoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXgg
NzY2MjE1YmI5YzAwNWRhZTlhM2IwMTdmNWJlOTdiNzJiOTMyZGExNC4uZjdlNTFhY2UyZDg2NTUw
ZDVmOTI0ZDRiZmMzM2Q5NDUyYzYwMzU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTYxLDYgKzYxLDcgQEAgSURCUmVxdWVzdDo6
SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElE
QkFueT4gc291cmMKICAgICAsIG1fY3Vyc29yRmluaXNoZWQoZmFsc2UpCiAgICAgLCBtX2NvbnRl
eHRTdG9wcGVkKGZhbHNlKQogICAgICwgbV9jdXJzb3JUeXBlKElEQkN1cnNvckJhY2tlbmRJbnRl
cmZhY2U6OkludmFsaWRDdXJzb3JUeXBlKQorICAgICwgbV9jdXJzb3JEaXJlY3Rpb24oSURCQ3Vy
c29yOjpORVhUKQogICAgICwgbV9jdXJzb3IoMCkKIHsKICAgICBpZiAobV90cmFuc2FjdGlvbikg
ewpAQCAtMTg4LDEwICsxODksMTEgQEAgdm9pZCBJREJSZXF1ZXN0OjphYm9ydCgpCiAgICAgb25F
cnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9B
Qk9SVF9FUlIsICJUaGUgdHJhbnNhY3Rpb24gd2FzIGFib3J0ZWQsIHNvIHRoZSByZXF1ZXN0IGNh
bm5vdCBiZSBmdWxmaWxsZWQuIikpOwogfQogCi12b2lkIElEQlJlcXVlc3Q6OnNldEN1cnNvclR5
cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlKQordm9p
ZCBJREJSZXF1ZXN0OjpzZXRDdXJzb3JUeXBlQW5kRGlyZWN0aW9uKElEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2U6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGly
ZWN0aW9uKQogewogICAgIEFTU0VSVChtX2N1cnNvclR5cGUgPT0gSURCQ3Vyc29yQmFja2VuZElu
dGVyZmFjZTo6SW52YWxpZEN1cnNvclR5cGUpOwogICAgIG1fY3Vyc29yVHlwZSA9IGN1cnNvclR5
cGU7CisgICAgbV9jdXJzb3JEaXJlY3Rpb24gPSBkaXJlY3Rpb247CiB9CiAKIHZvaWQgSURCUmVx
dWVzdDo6c2V0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3IpCkBAIC0yMzgsOSAr
MjQwLDkgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogICAgIEFTU0VSVChtX2N1cnNvclR5cGUgIT0gSURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZTo6SW52YWxpZEN1cnNvclR5cGUpOwogICAgIFJlZlB0cjxJ
REJDdXJzb3I+IGN1cnNvcjsKICAgICBpZiAobV9jdXJzb3JUeXBlID09IElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U6OkluZGV4S2V5Q3Vyc29yKQotICAgICAgICBjdXJzb3IgPSBJREJDdXJzb3I6
OmNyZWF0ZShiYWNrZW5kLCB0aGlzLCBtX3NvdXJjZS5nZXQoKSwgbV90cmFuc2FjdGlvbi5nZXQo
KSk7CisgICAgICAgIGN1cnNvciA9IElEQkN1cnNvcjo6Y3JlYXRlKGJhY2tlbmQsIG1fY3Vyc29y
RGlyZWN0aW9uLCB0aGlzLCBtX3NvdXJjZS5nZXQoKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CiAg
ICAgZWxzZQotICAgICAgICBjdXJzb3IgPSBJREJDdXJzb3JXaXRoVmFsdWU6OmNyZWF0ZShiYWNr
ZW5kLCB0aGlzLCBtX3NvdXJjZS5nZXQoKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CisgICAgICAg
IGN1cnNvciA9IElEQkN1cnNvcldpdGhWYWx1ZTo6Y3JlYXRlKGJhY2tlbmQsIG1fY3Vyc29yRGly
ZWN0aW9uLCB0aGlzLCBtX3NvdXJjZS5nZXQoKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAg
c2V0UmVzdWx0Q3Vyc29yKGN1cnNvciwgbV9jdXJzb3JUeXBlKTsKIAogICAgIGVucXVldWVFdmVu
dChjcmVhdGVTdWNjZXNzRXZlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmgKaW5kZXggZTEwNGQ4ZjFlODE1Y2I1YzQ1N2Y2M2UxM2Q4NDk0M2Ji
MmNmOWJmZC4uOTJjYjNiNzE0M2FjZTkxYTE5ZWE2M2E0NmMzOWZiMTRiN2Q3Njg4OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaApAQCAtNDAsNiAr
NDAsNyBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSURCQW55LmgiCiAj
aW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNzMsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG1h
cmtFYXJseURlYXRoKCk7CiAgICAgYm9vbCByZXNldFJlYWR5U3RhdGUoSURCVHJhbnNhY3Rpb24q
KTsKLSAgICB2b2lkIHNldEN1cnNvclR5cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6Q3Vy
c29yVHlwZSk7CisgICAgdm9pZCBzZXRDdXJzb3JUeXBlQW5kRGlyZWN0aW9uKElEQkN1cnNvckJh
Y2tlbmRJbnRlcmZhY2U6OkN1cnNvclR5cGUsIElEQkN1cnNvcjo6RGlyZWN0aW9uKTsKICAgICB2
b2lkIHNldEN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvcj4pOwogICAgIHZvaWQgZmluaXNoQ3Vy
c29yKCk7CiAgICAgSURCQW55KiBzb3VyY2UoKTsKQEAgLTEzMyw2ICsxMzQsNyBAQCBwcml2YXRl
OgogCiAgICAgLy8gT25seSB1c2VkIGlmIHRoZSByZXN1bHQgdHlwZSB3aWxsIGJlIGEgY3Vyc29y
LgogICAgIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkN1cnNvclR5cGUgbV9jdXJzb3JUeXBl
OworICAgIElEQkN1cnNvcjo6RGlyZWN0aW9uIG1fY3Vyc29yRGlyZWN0aW9uOwogICAgIFJlZlB0
cjxJREJDdXJzb3I+IG1fY3Vyc29yOwogCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJn
ZXREYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29y
QmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJh
Y2tlbmRQcm94eS5jcHAKaW5kZXggMmE2MmI5MjZmNWY2NjRlZTZkNzQ5ZGQwNTAyNzc2N2VlMjU0
ZWY4Ni4uY2EzOTBiYTkwNzQyN2UwOGZkNDc4YmI5NWNmOWUyYzQxNmNkMmZmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3Bw
CkBAIC01NCwxMSArNTQsNiBAQCBJREJDdXJzb3JCYWNrZW5kUHJveHk6On5JREJDdXJzb3JCYWNr
ZW5kUHJveHkoKQogewogfQogCi11bnNpZ25lZCBzaG9ydCBJREJDdXJzb3JCYWNrZW5kUHJveHk6
OmRpcmVjdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faWRiQ3Vyc29yLT5kaXJlY3Rpb24o
KTsKLX0KLQogUGFzc1JlZlB0cjxJREJLZXk+IElEQkN1cnNvckJhY2tlbmRQcm94eTo6a2V5KCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9pZGJDdXJzb3ItPmtleSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaAppbmRleCAyNGEzZTQy
YzQ3YTdiNjFlYjY5MjEwMTBmN2NmMThmODAxOGY0NzM2Li45ZTRiNTcwMDgxMjZmMzk2Y2QxNGY2
MzNjNmEzYTQxZDZiNTkwMjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaApAQCAtNDIsNyArNDIsNiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlKFBhc3NPd25QdHI8V2ViSURCQ3Vyc29yPik7CiAgICAgdmlydHVhbCB+SURCQ3Vyc29yQmFj
a2VuZFByb3h5KCk7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigpIGNv
bnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+IGtleSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+IHByaW1hcnlLZXkoKSBj
b25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiB2YWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJDdXJzb3JJbXBsLmNwcAppbmRleCA2ZjEwZWZlOWUwOTZmOTNmZmQ1N2Q3NmVmZTkzMzQwNjli
ODc5MmFiLi5lOWMwZTA0YWYwMzczMjRjNDE2NGMzYzVhMTJjZDFiN2ExZmIxY2U4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmNwcApAQCAtNDcs
MTEgKzQ3LDYgQEAgV2ViSURCQ3Vyc29ySW1wbDo6fldlYklEQkN1cnNvckltcGwoKQogewogfQog
Ci11bnNpZ25lZCBzaG9ydCBXZWJJREJDdXJzb3JJbXBsOjpkaXJlY3Rpb24oKSBjb25zdAotewot
ICAgIHJldHVybiBtX2lkYkN1cnNvckJhY2tlbmQtPmRpcmVjdGlvbigpOwotfQotCiBXZWJJREJL
ZXkgV2ViSURCQ3Vyc29ySW1wbDo6a2V5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pZGJDdXJz
b3JCYWNrZW5kLT5rZXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkN1cnNvckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1
cnNvckltcGwuaAppbmRleCA0MTg2NzUxNDJjZGYxNTQwMTM5OTA3NzFmZjc3MzA5NDExZDk3NDc3
Li5mMGQzODdiNjIxOTc2ODdhODE2YWQxZGM3NTU1Y2RjMjdlZmJhZmM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCkBAIC00NCw3ICs0NCw2IEBA
IHB1YmxpYzoKICAgICBXZWJJREJDdXJzb3JJbXBsKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB+V2ViSURCQ3Vyc29ySW1w
bCgpOwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24oKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFdlYklEQktleSBrZXkoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYklEQktleSBw
cmltYXJ5S2V5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUg
dmFsdWUoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150218</attachid>
            <date>2012-06-29 11:05:25 -0700</date>
            <delta_ts>2012-06-29 13:25:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90114-20120629110525.patch</filename>
            <type>text/plain</type>
            <size>20998</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY2NGFjNWQ0Yjc4YWJm
NDNhMDVjZGY1Y2Y5ZTgyMDdlMTA5ZWU1NC4uYTU5YWJkNjA3ZDg1NjgyYWVlMjRlN2Q5MzViMTdi
NjY4ZDEzYzFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA2LTI3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBLZWVw
IGRpcmVjdGlvbiBvbiBJREJDdXJzb3IgdG8gYXZvaWQgY2FsbHMgdG8gYmFjayBlbmQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMTE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV0IElEQkN1cnNvciBo
YW5kbGUgZGlyZWN0aW9uKCkgYWNjZXNzb3IgbG9jYWxseSwgd2l0aG91dCBhIGNhbGwgdG8KKyAg
ICAgICAgdGhlIElEQkN1cnNvckJhY2tlbmRJbXBsIHdoaWNoIChpbiBzb21lIHBvcnRzKSBtYXkg
cmVzaWRlIGluIGEgZGlmZmVyZW50CisgICAgICAgIHByb2Nlc3MuIE5vdCBhIGhlYXZpbHkgY2Fs
bGVkIGZ1bmN0aW9uLCBidXQgZnVydGhlciByZWR1Y2VzIHRoZSBzdXJmYWNlCisgICAgICAgIGFy
ZWEgZXhwb3NlZCBieSB0aGUgWFhYSW50ZXJmYWNlIGNsYXNzZXMuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIC0gbm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgorCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6Y3JlYXRl
KTogQWNjZXB0IGRpcmVjdGlvbiwga25vd24gYXQgY3JlYXRpb24gdGltZS4KKyAgICAgICAgKFdl
YkNvcmU6OklEQkN1cnNvcjo6SURCQ3Vyc29yKTogU3Rhc2ggaW4gbWVtYmVyLgorICAgICAgICAo
V2ViQ29yZTo6SURCQ3Vyc29yOjpkaXJlY3Rpb24pOiBVc2UgbG9jYWwgY29weQorICAgICAgICAo
V2ViQ29yZTo6SURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlvbik6IFJldHVybiBlbnVtIHZhbHVl
LCBub3QgaW50LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oOgorICAg
ICAgICAoSURCQ3Vyc29yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JC
YWNrZW5kSW1wbC5jcHA6IFJlbW92ZSBhY2Nlc3Nvci4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCQ3Vyc29yQmFja2VuZElt
cGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZh
Y2UuaDogUmVtb3ZlIGFjY2Vzc29yLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvcldpdGhWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JXaXRoVmFsdWU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JXaXRoVmFsdWU6OklEQkN1cnNv
cldpdGhWYWx1ZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZh
bHVlLmg6CisgICAgICAgIChJREJDdXJzb3JXaXRoVmFsdWUpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkluZGV4LmNwcDogUHJlcCBJREJSZXF1ZXN0IHdpdGggY3Vyc29yIGRpcmVj
dGlvbiB0b28uCisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbkN1cnNvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNvcik6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OklEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmNwcDogU3Rhc2ggZGlyZWN0aW9uIGZvciBwZW5kaW5nIGN1cnNvciB0b28u
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OnNldEN1cnNvckRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6
SURCUmVxdWVzdDo6b25TdWNjZXNzKTogQXBwbHkgc3Rhc2hlZCBkaXJlY3Rpb24gdG8gbmV3IGN1
cnNvci4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAgICAg
IChJREJSZXF1ZXN0KToKKwogMjAxMi0wNi0yOSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMTUyMC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNGVmYTdkODc5ZTVkZWE2ZWY2YzJiYTA5ZTQxNWUz
MjY4MjJkMmUwNC4uNGJlZDk5Y2U0N2Q1YmMyZTlmNzEwYWExYWU0Y2I3ZDk0MzY0YzA1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNi0yNyAgSm9z
aHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogS2Vl
cCBkaXJlY3Rpb24gb24gSURCQ3Vyc29yIHRvIGF2b2lkIGNhbGxzIHRvIGJhY2sgZW5kCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDExNAorCisgICAg
ICAgIFN0b3AgcGx1bWJpbmcgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6ZGlyZWN0aW9uKCkg
dGhyb3VnaCBBUEkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBzcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKiBzcmMvSURC
Q3Vyc29yQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJDdXJzb3JCYWNrZW5kUHJveHkpOgor
ICAgICAgICAqIHNyYy9XZWJJREJDdXJzb3JJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViSURC
Q3Vyc29ySW1wbC5oOgorICAgICAgICAoV2ViSURCQ3Vyc29ySW1wbCk6CisKIDIwMTItMDYtMjkg
IEFteSBPdXN0ZXJob3V0ICA8YW91c3RlcmhAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERlbGV0
aW5nIHVudXNlZCBmdW5jdGlvbiBpbiBXZWJEZXZpY2VPcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYTVjYTVjNzllYTQx
OGNhNjZkZWVmNGUwNDYxNDkzYTU0OGViYjFiZi4uNWU5MDI1MTEyZWU2YmI5Y2Q5ODgwNTk1YTI5
MGU2MjkzZWNiN2EyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuY3BwCkBAIC00Miw5ICs0Miw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UGFzc1JlZlB0cjxJREJDdXJzb3I+IElEQkN1cnNvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURCUmVxdWVzdCogcmVxdWVzdCwgSURCQW55
KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKK1Bhc3NSZWZQdHI8SURCQ3Vy
c29yPiBJREJDdXJzb3I6OmNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZh
Y2U+IGJhY2tlbmQsIERpcmVjdGlvbiBkaXJlY3Rpb24sIElEQlJlcXVlc3QqIHJlcXVlc3QsIElE
QkFueSogc291cmNlLCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBJREJDdXJzb3IoYmFja2VuZCwgcmVxdWVzdCwgc291cmNlLCB0cmFuc2Fj
dGlvbikpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vyc29yKGJhY2tlbmQsIGRpcmVj
dGlvbiwgcmVxdWVzdCwgc291cmNlLCB0cmFuc2FjdGlvbikpOwogfQogCiBjb25zdCBBdG9taWNT
dHJpbmcmIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpCkBAIC03Miw5ICs3MiwxMCBAQCBjb25z
dCBBdG9taWNTdHJpbmcmIElEQkN1cnNvcjo6ZGlyZWN0aW9uUHJldlVuaXF1ZSgpCiB9CiAKIAot
SURCQ3Vyc29yOjpJREJDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
PiBiYWNrZW5kLCBJREJSZXF1ZXN0KiByZXF1ZXN0LCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uKQorSURCQ3Vyc29yOjpJREJDdXJzb3IoUGFzc1JlZlB0cjxJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBEaXJlY3Rpb24gZGlyZWN0aW9uLCBJREJS
ZXF1ZXN0KiByZXF1ZXN0LCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0
aW9uKQogICAgIDogbV9iYWNrZW5kKGJhY2tlbmQpCiAgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkK
KyAgICAsIG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAg
ICAsIG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCiAgICAgLCBtX3RyYW5zYWN0aW9uTm90aWZp
ZXIodHJhbnNhY3Rpb24sIHRoaXMpCkBAIC05NSw3ICs5Niw3IEBAIGNvbnN0IFN0cmluZyYgSURC
Q3Vyc29yOjpkaXJlY3Rpb24oKSBjb25zdAogewogICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yOjpk
aXJlY3Rpb24iKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGRpcmVjdGlvbiA9IGRpcmVjdGlvblRvU3RyaW5nKG1fYmFja2VuZC0+ZGlyZWN0aW9u
KCksIGVjKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvbiA9IGRpcmVjdGlvblRv
U3RyaW5nKG1fZGlyZWN0aW9uLCBlYyk7CiAgICAgQVNTRVJUKCFlYyk7CiAgICAgcmV0dXJuIGRp
cmVjdGlvbjsKIH0KQEAgLTI5Myw3ICsyOTQsNyBAQCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
PiBJREJDdXJzb3I6OmVmZmVjdGl2ZU9iamVjdFN0b3JlKCkKICAgICByZXR1cm4gaW5kZXgtPm9i
amVjdFN0b3JlKCk7CiB9CiAKLXVuc2lnbmVkIHNob3J0IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJl
Y3Rpb24oY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
SURCQ3Vyc29yOjpEaXJlY3Rpb24gSURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlvbihjb25zdCBT
dHJpbmcmIGRpcmVjdGlvblN0cmluZywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKGRp
cmVjdGlvblN0cmluZyA9PSBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKSkKICAgICAgICAgcmV0
dXJuIElEQkN1cnNvcjo6TkVYVDsKQEAgLTMwNSw3ICszMDYsNyBAQCB1bnNpZ25lZCBzaG9ydCBJ
REJDdXJzb3I6OnN0cmluZ1RvRGlyZWN0aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5n
LCBFeGNlcAogICAgICAgICByZXR1cm4gSURCQ3Vyc29yOjpQUkVWX05PX0RVUExJQ0FURTsKIAog
ICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9UWVBFX0VSUjsKLSAgICByZXR1cm4g
MDsKKyAgICByZXR1cm4gSURCQ3Vyc29yOjpORVhUOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcm
IElEQkN1cnNvcjo6ZGlyZWN0aW9uVG9TdHJpbmcodW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBF
eGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkN1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmgKaW5kZXggNGY0NTY0ZWViNDIxMjdhYTg3YjA2OTM2YjU0ZTA0M2Y0ZTdmNTU4Ni4u
ZmQ0NmNiYmNhMDdmNGYzMjMzNzI3MmZmNGNlNjEzYTZlNTI4MTg0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmgKQEAgLTU5LDEwICs1OSwxMCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZGlyZWN0aW9uUHJldigpOwog
ICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvblByZXZVbmlxdWUoKTsKIAot
ICAgIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBzdHJpbmdUb0RpcmVjdGlvbihjb25zdCBTdHJpbmcm
IG1vZGVTdHJpbmcsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgSURCQ3Vyc29yOjpEaXJl
Y3Rpb24gc3RyaW5nVG9EaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBtb2RlU3RyaW5nLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZGlyZWN0aW9uVG9TdHJp
bmcodW5zaWduZWQgc2hvcnQgbW9kZSwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlPiwgSURCUmVxdWVzdCosIElEQkFueSogc291cmNlLCBJREJUcmFuc2FjdGlvbiopOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvcj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZT4sIERpcmVjdGlvbiwgSURCUmVxdWVzdCosIElEQkFueSogc291
cmNlLCBJREJUcmFuc2FjdGlvbiopOwogICAgIHZpcnR1YWwgfklEQkN1cnNvcigpOwogCiAgICAg
Ly8gRklYTUU6IFRyeSB0byBtb2RpZnkgdGhlIGNvZGUgZ2VuZXJhdG9yIHNvIHRoaXMgaXMgdW5u
ZWVkZWQuCkBAIC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICBib29sIHZhbHVlSXNEaXJ0eSgp
IHsgcmV0dXJuIG1fdmFsdWVJc0RpcnR5OyB9CiAKIHByb3RlY3RlZDoKLSAgICBJREJDdXJzb3Io
UGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgSURCUmVxdWVzdCosIElEQkFu
eSogc291cmNlLCBJREJUcmFuc2FjdGlvbiopOworICAgIElEQkN1cnNvcihQYXNzUmVmUHRyPElE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBEaXJlY3Rpb24sIElEQlJlcXVlc3QqLCBJREJBbnkq
IHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNLZXlDdXJzb3Io
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKIHByaXZhdGU6CkBAIC05OCw2ICs5OCw3IEBAIHBy
aXZhdGU6CiAKICAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gbV9iYWNrZW5k
OwogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiBtX3JlcXVlc3Q7CisgICAgY29uc3QgRGlyZWN0aW9u
IG1fZGlyZWN0aW9uOwogICAgIFJlZlB0cjxJREJBbnk+IG1fc291cmNlOwogICAgIFJlZlB0cjxJ
REJUcmFuc2FjdGlvbj4gbV90cmFuc2FjdGlvbjsKICAgICBJREJUcmFuc2FjdGlvbjo6T3BlbkN1
cnNvck5vdGlmaWVyIG1fdHJhbnNhY3Rpb25Ob3RpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcAppbmRl
eCAwYTE0YTZmMWExYjU5MzAwZjhiZTk4OWQzMmNhZTFlMGZiOTM0MzNjLi5mZTU4OTg4ZTQyZTI4
ZTMyMDJiYmM2MDdmZmQ4NmNlZjJhMjYzNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCkBAIC02Mywx
MiArNjMsNiBAQCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6fklEQkN1cnNvckJhY2tlbmRJbXBsKCkK
ICAgICBtX29iamVjdFN0b3JlLmNsZWFyKCk7CiB9CiAKLXVuc2lnbmVkIHNob3J0IElEQkN1cnNv
ckJhY2tlbmRJbXBsOjpkaXJlY3Rpb24oKSBjb25zdAotewotICAgIElEQl9UUkFDRSgiSURCQ3Vy
c29yQmFja2VuZEltcGw6OmRpcmVjdGlvbiIpOwotICAgIHJldHVybiBtX2RpcmVjdGlvbjsKLX0K
LQogUGFzc1JlZlB0cjxJREJLZXk+IElEQkN1cnNvckJhY2tlbmRJbXBsOjprZXkoKSBjb25zdAog
ewogICAgIElEQl9UUkFDRSgiSURCQ3Vyc29yQmFja2VuZEltcGw6OmtleSIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBs
LmgKaW5kZXggODlkZGU0ZjExMzk2YWRiMTlmM2I5ZjdlNTFkOGI1MTIwN2E0M2FiMi4uMTUzMDE2
ZjEyNjcwZGRiMjdkZjlhNzJkYTc4OWI2YmNhMDg3MWViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCkBAIC01
Myw3ICs1Myw2IEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVhbCB+SURCQ3Vyc29yQmFja2Vu
ZEltcGwoKTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3Q7CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlKCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlLmgKaW5kZXggOTcxMjMyODI2ZmQ3YTVkMDNiOTU1OTljNzBkOTVkODJhZjE1ZGQw
ZS4uNDhkM2ExODI5ZjY1ODhlZGY2MTk3MzM3ZjMxOGIyYzA2ZTkwYmNmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2UuaApAQCAtNTMsNyArNTMsNiBAQCBwdWJsaWM6CiAgICAgICAgIE9iamVjdFN0
b3JlQ3Vyc29yCiAgICAgfTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVl
KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvcldpdGhWYWx1ZS5jcHAKaW5kZXggMzBkMjQyYzk4NjU0ZDRkZWNiNDAxZjZj
OWQwMzNmNjBiNzRjODIxOS4uYjkwYmEzZDliNTI2NTMxNzA5MmJiZTU1ODE3NTBkYzAyNzg1ZGFh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
V2l0aFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3JXaXRoVmFsdWUuY3BwCkBAIC0zMyw5ICszMyw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUGFzc1JlZlB0cjxJREJDdXJzb3JXaXRoVmFsdWU+IElEQkN1cnNvcldpdGhWYWx1ZTo6
Y3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURC
UmVxdWVzdCogcmVxdWVzdCwgSURCQW55KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKiB0cmFuc2Fj
dGlvbikKK1Bhc3NSZWZQdHI8SURCQ3Vyc29yV2l0aFZhbHVlPiBJREJDdXJzb3JXaXRoVmFsdWU6
OmNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIERp
cmVjdGlvbiBkaXJlY3Rpb24sIElEQlJlcXVlc3QqIHJlcXVlc3QsIElEQkFueSogc291cmNlLCBJ
REJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJ
REJDdXJzb3JXaXRoVmFsdWUoYmFja2VuZCwgcmVxdWVzdCwgc291cmNlLCB0cmFuc2FjdGlvbikp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vyc29yV2l0aFZhbHVlKGJhY2tlbmQsIGRp
cmVjdGlvbiwgcmVxdWVzdCwgc291cmNlLCB0cmFuc2FjdGlvbikpOwogfQogCiBQYXNzUmVmUHRy
PElEQkN1cnNvcldpdGhWYWx1ZT4gSURCQ3Vyc29yV2l0aFZhbHVlOjpmcm9tQ3Vyc29yKFBhc3NS
ZWZQdHI8SURCQ3Vyc29yPiBwcnBDdXJzb3IpCkBAIC00NCw4ICs0NCw4IEBAIFBhc3NSZWZQdHI8
SURCQ3Vyc29yV2l0aFZhbHVlPiBJREJDdXJzb3JXaXRoVmFsdWU6OmZyb21DdXJzb3IoUGFzc1Jl
ZlB0cjxJREJDdXJzCiAgICAgcmV0dXJuIGN1cnNvcldpdGhWYWx1ZS5yZWxlYXNlKCk7CiB9CiAK
LUlEQkN1cnNvcldpdGhWYWx1ZTo6SURCQ3Vyc29yV2l0aFZhbHVlKFBhc3NSZWZQdHI8SURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCwgSURCUmVxdWVzdCogcmVxdWVzdCwgSURCQW55
KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKLSAgICA6IElEQkN1cnNvcihi
YWNrZW5kLCByZXF1ZXN0LCBzb3VyY2UsIHRyYW5zYWN0aW9uKQorSURCQ3Vyc29yV2l0aFZhbHVl
OjpJREJDdXJzb3JXaXRoVmFsdWUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
PiBiYWNrZW5kLCBEaXJlY3Rpb24gZGlyZWN0aW9uLCBJREJSZXF1ZXN0KiByZXF1ZXN0LCBJREJB
bnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQorICAgIDogSURCQ3Vyc29y
KGJhY2tlbmQsIGRpcmVjdGlvbiwgcmVxdWVzdCwgc291cmNlLCB0cmFuc2FjdGlvbikKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
V2l0aFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JX
aXRoVmFsdWUuaAppbmRleCA5YjM5NmJhMzVhYTA2YjM5MTRlMDcyYTY4MWQ3MDRlMDVjYWVmOGNk
Li5jYmI4NTBhMWNkMDJmMGFhMjA5NTJmMmNmZGI4ODhmYzhjMDI4NjUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUuaApA
QCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElEQkN1cnNvcldp
dGhWYWx1ZSA6IHB1YmxpYyBJREJDdXJzb3IgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPElEQkN1cnNvcldpdGhWYWx1ZT4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2Vu
ZEludGVyZmFjZT4sIElEQlJlcXVlc3QqLCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24q
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JXaXRoVmFsdWU+IGNyZWF0ZShQYXNz
UmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBEaXJlY3Rpb24sIElEQlJlcXVlc3Qq
LCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJREJDdXJzb3JXaXRoVmFsdWU+IGZyb21DdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+KTsK
ICAgICB2aXJ0dWFsIH5JREJDdXJzb3JXaXRoVmFsdWUoKTsKIApAQCAtNDUsNyArNDUsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGlzS2V5Q3Vyc29yKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gZmFsc2U7IH0KIAogcHJpdmF0ZToKLSAgICBJREJDdXJzb3JXaXRoVmFsdWUoUGFz
c1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgSURCUmVxdWVzdCosIElEQkFueSog
c291cmNlLCBJREJUcmFuc2FjdGlvbiopOworICAgIElEQkN1cnNvcldpdGhWYWx1ZShQYXNzUmVm
UHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBEaXJlY3Rpb24sIElEQlJlcXVlc3QqLCBJ
REJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcApp
bmRleCBmZDkzOTQ5NDc0OTI3MjI1NTkxOWRjMzAyMjhmM2MwNWM5NzhkMzE4Li5mZWM5NjgwNGI2
NjkwMjQzM2QyY2VkYzljMmMzN2M0NGQ1YmVkYzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCkBAIC02OSwxMiArNjksMTIgQEAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBQYXMKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VFJBTlNB
Q1RJT05fSU5BQ1RJVkVfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgdW5zaWdu
ZWQgc2hvcnQgZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlvbihkaXJlY3Rp
b25TdHJpbmcsIGVjKTsKKyAgICBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBJREJD
dXJzb3I6OnN0cmluZ1RvRGlyZWN0aW9uKGRpcmVjdGlvblN0cmluZywgZWMpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9
IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgbV90cmFu
c2FjdGlvbi5nZXQoKSk7Ci0gICAgcmVxdWVzdC0+c2V0Q3Vyc29yVHlwZShJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlOjpJbmRleEN1cnNvcik7CisgICAgcmVxdWVzdC0+c2V0Q3Vyc29yRGV0YWls
cyhJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEN1cnNvciwgZGlyZWN0aW9uKTsKICAg
ICBtX2JhY2tlbmQtPm9wZW5DdXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgcmVxdWVzdCwgbV90
cmFuc2FjdGlvbi0+YmFja2VuZCgpLCBlYyk7CiAgICAgaWYgKGVjKSB7CiAgICAgICAgIHJlcXVl
c3QtPm1hcmtFYXJseURlYXRoKCk7CkBAIC0xNTIsMTMgKzE1MiwxMiBAQCBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsCiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9O
X0lOQUNUSVZFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotCi0gICAgdW5zaWduZWQg
c2hvcnQgZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlvbihkaXJlY3Rpb25T
dHJpbmcsIGVjKTsKKyAgICBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBJREJDdXJz
b3I6OnN0cmluZ1RvRGlyZWN0aW9uKGRpcmVjdGlvblN0cmluZywgZWMpOwogICAgIGlmIChlYykK
ICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElE
QlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgbV90cmFuc2Fj
dGlvbi5nZXQoKSk7Ci0gICAgcmVxdWVzdC0+c2V0Q3Vyc29yVHlwZShJREJDdXJzb3JCYWNrZW5k
SW50ZXJmYWNlOjpJbmRleEtleUN1cnNvcik7CisgICAgcmVxdWVzdC0+c2V0Q3Vyc29yRGV0YWls
cyhJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleUN1cnNvciwgZGlyZWN0aW9uKTsK
ICAgICBtX2JhY2tlbmQtPm9wZW5LZXlDdXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgcmVxdWVz
dCwgbV90cmFuc2FjdGlvbi0+YmFja2VuZCgpLCBlYyk7CiAgICAgaWYgKGVjKSB7CiAgICAgICAg
IHJlcXVlc3QtPm1hcmtFYXJseURlYXRoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKaW5kZXggNmMwNjQxNTkyOWNlOGJiN2M4
NTdhMTFhZWY4ZGQxZjgxZTMzMjE1My4uNjVmMjIyYmY4NTY1ZTZiMzAxZmFhNDU1ZGE3ZDhiMWYw
ZjMyNzI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9iamVjdFN0b3JlLmNwcApAQCAtMzc1LDEyICszNzUsMTIgQEAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXgKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VFJBTlNBQ1RJT05fSU5B
Q1RJVkVfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgdW5zaWduZWQgc2hvcnQg
ZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpzdHJpbmdUb0RpcmVjdGlvbihkaXJlY3Rpb25TdHJpbmcs
IGVjKTsKKyAgICBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBJREJDdXJzb3I6OnN0
cmluZ1RvRGlyZWN0aW9uKGRpcmVjdGlvblN0cmluZywgZWMpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVl
c3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgbV90cmFuc2FjdGlvbi5n
ZXQoKSk7Ci0gICAgcmVxdWVzdC0+c2V0Q3Vyc29yVHlwZShJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlOjpPYmplY3RTdG9yZUN1cnNvcik7CisgICAgcmVxdWVzdC0+c2V0Q3Vyc29yRGV0YWlscyhJ
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpPYmplY3RTdG9yZUN1cnNvciwgZGlyZWN0aW9uKTsK
ICAgICBtX2JhY2tlbmQtPm9wZW5DdXJzb3IocmFuZ2UsIGRpcmVjdGlvbiwgcmVxdWVzdCwgbV90
cmFuc2FjdGlvbi0+YmFja2VuZCgpLCBlYyk7CiAgICAgaWYgKGVjKSB7CiAgICAgICAgIHJlcXVl
c3QtPm1hcmtFYXJseURlYXRoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDBmZGE2ODFiOGM2NWQ3MDEzY2RjNGFhZjE5MWEwY2Mw
NzFkYjU1NTkuLjA4ODVjYWMxZWQzY2U4YThkM2NmNDZiZDEwZTBhNzUxZmU4ZGJlZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC02
MSw2ICs2MSw3IEBAIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjCiAgICAgLCBtX2N1cnNvckZpbmlz
aGVkKGZhbHNlKQogICAgICwgbV9jb250ZXh0U3RvcHBlZChmYWxzZSkKICAgICAsIG1fY3Vyc29y
VHlwZShJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbnZhbGlkQ3Vyc29yVHlwZSkKKyAgICAs
IG1fY3Vyc29yRGlyZWN0aW9uKElEQkN1cnNvcjo6TkVYVCkKICAgICAsIG1fY3Vyc29yKDApCiB7
CiAgICAgaWYgKG1fdHJhbnNhY3Rpb24pIHsKQEAgLTE4NywxMCArMTg4LDExIEBAIHZvaWQgSURC
UmVxdWVzdDo6YWJvcnQoKQogICAgIG9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSLCAiVGhlIHRyYW5zYWN0aW9uIHdhcyBh
Ym9ydGVkLCBzbyB0aGUgcmVxdWVzdCBjYW5ub3QgYmUgZnVsZmlsbGVkLiIpKTsKIH0KIAotdm9p
ZCBJREJSZXF1ZXN0OjpzZXRDdXJzb3JUeXBlKElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkN1
cnNvclR5cGUgY3Vyc29yVHlwZSkKK3ZvaWQgSURCUmVxdWVzdDo6c2V0Q3Vyc29yRGV0YWlscyhJ
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIElEQkN1cnNv
cjo6RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBBU1NFUlQobV9jdXJzb3JUeXBlID09IElE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkludmFsaWRDdXJzb3JUeXBlKTsKICAgICBtX2N1cnNv
clR5cGUgPSBjdXJzb3JUeXBlOworICAgIG1fY3Vyc29yRGlyZWN0aW9uID0gZGlyZWN0aW9uOwog
fQogCiB2b2lkIElEQlJlcXVlc3Q6OnNldEN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvcj4gY3Vy
c29yKQpAQCAtMjM3LDkgKzIzOSw5IEBAIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NS
ZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKICAgICBBU1NFUlQobV9j
dXJzb3JUeXBlICE9IElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U6OkludmFsaWRDdXJzb3JUeXBl
KTsKICAgICBSZWZQdHI8SURCQ3Vyc29yPiBjdXJzb3I7CiAgICAgaWYgKG1fY3Vyc29yVHlwZSA9
PSBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleUN1cnNvcikKLSAgICAgICAgY3Vy
c29yID0gSURCQ3Vyc29yOjpjcmVhdGUoYmFja2VuZCwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1f
dHJhbnNhY3Rpb24uZ2V0KCkpOworICAgICAgICBjdXJzb3IgPSBJREJDdXJzb3I6OmNyZWF0ZShi
YWNrZW5kLCBtX2N1cnNvckRpcmVjdGlvbiwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNh
Y3Rpb24uZ2V0KCkpOwogICAgIGVsc2UKLSAgICAgICAgY3Vyc29yID0gSURCQ3Vyc29yV2l0aFZh
bHVlOjpjcmVhdGUoYmFja2VuZCwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNhY3Rpb24u
Z2V0KCkpOworICAgICAgICBjdXJzb3IgPSBJREJDdXJzb3JXaXRoVmFsdWU6OmNyZWF0ZShiYWNr
ZW5kLCBtX2N1cnNvckRpcmVjdGlvbiwgdGhpcywgbV9zb3VyY2UuZ2V0KCksIG1fdHJhbnNhY3Rp
b24uZ2V0KCkpOwogICAgIHNldFJlc3VsdEN1cnNvcihjdXJzb3IsIG1fY3Vyc29yVHlwZSk7CiAK
ICAgICBlbnF1ZXVlRXZlbnQoY3JlYXRlU3VjY2Vzc0V2ZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IDg4YTdlNjBmMWU3MWY4NTE2
MDNkY2Y0MTQzMjRiODkyZTY0NzZmNDcuLjQ5MDcyNDRkNTdjY2M1ZmVjY2VmODc1YWFkZTEyMTFi
ZDU5YzAyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1
ZXN0LmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1
ZGUgIklEQkFueS5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIklEQkN1
cnNvci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTczLDcgKzc0LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBtYXJrRWFybHlEZWF0aCgpOwogICAgIGJvb2wgcmVzZXRSZWFkeVN0YXRl
KElEQlRyYW5zYWN0aW9uKik7Ci0gICAgdm9pZCBzZXRDdXJzb3JUeXBlKElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U6OkN1cnNvclR5cGUpOworICAgIHZvaWQgc2V0Q3Vyc29yRGV0YWlscyhJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JUeXBlLCBJREJDdXJzb3I6OkRpcmVjdGlvbik7
CiAgICAgdm9pZCBzZXRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+KTsKICAgICB2b2lkIGZp
bmlzaEN1cnNvcigpOwogICAgIElEQkFueSogc291cmNlKCk7CkBAIC0xMzQsNiArMTM1LDcgQEAg
cHJpdmF0ZToKIAogICAgIC8vIE9ubHkgdXNlZCBpZiB0aGUgcmVzdWx0IHR5cGUgd2lsbCBiZSBh
IGN1cnNvci4KICAgICBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JUeXBlIG1fY3Vy
c29yVHlwZTsKKyAgICBJREJDdXJzb3I6OkRpcmVjdGlvbiBtX2N1cnNvckRpcmVjdGlvbjsKICAg
ICBSZWZQdHI8SURCQ3Vyc29yPiBtX2N1cnNvcjsKIAogICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2
ZW50VGFyZ2V0RGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkN1cnNvckJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJD
dXJzb3JCYWNrZW5kUHJveHkuY3BwCmluZGV4IDJhNjJiOTI2ZjVmNjY0ZWU2ZDc0OWRkMDUwMjc3
NjdlZTI1NGVmODYuLmNhMzkwYmE5MDc0MjdlMDhmZDQ3OGJiOTVjZjllMmM0MTZjZDJmZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFBy
b3h5LmNwcApAQCAtNTQsMTEgKzU0LDYgQEAgSURCQ3Vyc29yQmFja2VuZFByb3h5Ojp+SURCQ3Vy
c29yQmFja2VuZFByb3h5KCkKIHsKIH0KIAotdW5zaWduZWQgc2hvcnQgSURCQ3Vyc29yQmFja2Vu
ZFByb3h5OjpkaXJlY3Rpb24oKSBjb25zdAotewotICAgIHJldHVybiBtX2lkYkN1cnNvci0+ZGly
ZWN0aW9uKCk7Ci19Ci0KIFBhc3NSZWZQdHI8SURCS2V5PiBJREJDdXJzb3JCYWNrZW5kUHJveHk6
OmtleSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faWRiQ3Vyc29yLT5rZXkoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmgKaW5kZXgg
MjRhM2U0MmM0N2E3YjYxZWI2OTIxMDEwZjdjZjE4ZjgwMThmNDczNi4uOWU0YjU3MDA4MTI2ZjM5
NmNkMTRmNjMzYzZhM2E0MWQ2YjU5MDI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ3Vyc29yQmFja2VuZFByb3h5LmgKQEAgLTQyLDcgKzQyLDYgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbnRlcmZh
Y2U+IGNyZWF0ZShQYXNzT3duUHRyPFdlYklEQkN1cnNvcj4pOwogICAgIHZpcnR1YWwgfklEQkN1
cnNvckJhY2tlbmRQcm94eSgpOwogCi0gICAgdmlydHVhbCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rp
b24oKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiBrZXko
KSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiBwcmltYXJ5
S2V5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gdmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAKaW5kZXggNmYxMGVmZTllMDk2ZjkzZmZkNTdkNzZlZmU5
MzM0MDY5Yjg3OTJhYi4uZTljMGUwNGFmMDM3MzI0YzQxNjRjM2M1YTEyY2QxYjdhMWZiMWNlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHAK
QEAgLTQ3LDExICs0Nyw2IEBAIFdlYklEQkN1cnNvckltcGw6On5XZWJJREJDdXJzb3JJbXBsKCkK
IHsKIH0KIAotdW5zaWduZWQgc2hvcnQgV2ViSURCQ3Vyc29ySW1wbDo6ZGlyZWN0aW9uKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9pZGJDdXJzb3JCYWNrZW5kLT5kaXJlY3Rpb24oKTsKLX0KLQog
V2ViSURCS2V5IFdlYklEQkN1cnNvckltcGw6OmtleSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
aWRiQ3Vyc29yQmFja2VuZC0+a2V5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJDdXJzb3JJbXBsLmgKaW5kZXggNDE4Njc1MTQyY2RmMTU0MDEzOTkwNzcxZmY3NzMwOTQx
MWQ5NzQ3Ny4uZjBkMzg3YjYyMTk3Njg3YTgxNmFkMWRjNzU1NWNkYzI3ZWZiYWZjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vyc29ySW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaApAQCAtNDQsNyAr
NDQsNiBAQCBwdWJsaWM6CiAgICAgV2ViSURCQ3Vyc29ySW1wbChXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4pOwogICAgIHZpcnR1YWwgfldlYklEQkN1
cnNvckltcGwoKTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBXZWJJREJLZXkga2V5KCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJJ
REJLZXkgcHJpbWFyeUtleSgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlIHZhbHVlKCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150244</attachid>
            <date>2012-06-29 13:25:08 -0700</date>
            <delta_ts>2012-06-29 20:09:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-90114-20120629132508.patch</filename>
            <type>text/plain</type>
            <size>20990</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY2NGFjNWQ0Yjc4YWJm
NDNhMDVjZGY1Y2Y5ZTgyMDdlMTA5ZWU1NC4uYzY4M2NkYjZkNjhjMGJkOWNkMmFlNTQ2NDZhZjIw
NWE2NDZlZGEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA2LTI3ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBLZWVw
IGRpcmVjdGlvbiBvbiBJREJDdXJzb3IgdG8gYXZvaWQgY2FsbHMgdG8gYmFjayBlbmQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMTE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBMZXQgSURCQ3Vyc29yIGhhbmRs
ZSBkaXJlY3Rpb24oKSBhY2Nlc3NvciBsb2NhbGx5LCB3aXRob3V0IGEgY2FsbCB0bworICAgICAg
ICB0aGUgSURCQ3Vyc29yQmFja2VuZEltcGwgd2hpY2ggKGluIHNvbWUgcG9ydHMpIG1heSByZXNp
ZGUgaW4gYSBkaWZmZXJlbnQKKyAgICAgICAgcHJvY2Vzcy4gTm90IGEgaGVhdmlseSBjYWxsZWQg
ZnVuY3Rpb24sIGJ1dCBmdXJ0aGVyIHJlZHVjZXMgdGhlIHN1cmZhY2UKKyAgICAgICAgYXJlYSBl
eHBvc2VkIGJ5IHRoZSBYWFhJbnRlcmZhY2UgY2xhc3Nlcy4KKworICAgICAgICBObyBuZXcgdGVz
dHMgLSBubyBmdW5jdGlvbmFsIGNoYW5nZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjpjcmVhdGUpOiBB
Y2NlcHQgZGlyZWN0aW9uLCBrbm93biBhdCBjcmVhdGlvbiB0aW1lLgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ3Vyc29yOjpJREJDdXJzb3IpOiBTdGFzaCBpbiBtZW1iZXIuCisgICAgICAgIChXZWJD
b3JlOjpJREJDdXJzb3I6OmRpcmVjdGlvbik6IFVzZSBsb2NhbCBjb3B5CisgICAgICAgIChXZWJD
b3JlOjpJREJDdXJzb3I6OnN0cmluZ1RvRGlyZWN0aW9uKTogUmV0dXJuIGVudW0gdmFsdWUsIG5v
dCBpbnQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmg6CisgICAgICAg
IChJREJDdXJzb3IpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tl
bmRJbXBsLmNwcDogUmVtb3ZlIGFjY2Vzc29yLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvckJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJDdXJzb3JCYWNrZW5kSW1wbCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5o
OiBSZW1vdmUgYWNjZXNzb3IuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
V2l0aFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcldpdGhWYWx1ZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcldpdGhWYWx1ZTo6SURCQ3Vyc29yV2l0
aFZhbHVlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JXaXRoVmFsdWUu
aDoKKyAgICAgICAgKElEQkN1cnNvcldpdGhWYWx1ZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXguY3BwOiBQcmVwIElEQlJlcXVlc3Qgd2l0aCBjdXJzb3IgZGlyZWN0aW9u
IHRvby4KKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpvcGVuQ3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkluZGV4OjpvcGVuS2V5Q3Vyc29yKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SURC
T2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuY3BwOiBTdGFzaCBkaXJlY3Rpb24gZm9yIHBlbmRpbmcgY3Vyc29yIHRvby4KKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCUmVxdWVzdDo6c2V0Q3Vyc29yRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpJREJS
ZXF1ZXN0OjpvblN1Y2Nlc3MpOiBBcHBseSBzdGFzaGVkIGRpcmVjdGlvbiB0byBuZXcgY3Vyc29y
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKElE
QlJlcXVlc3QpOgorCiAyMDEyLTA2LTI5ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIxNTIwLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCA0ZWZhN2Q4NzllNWRlYTZlZjZjMmJhMDllNDE1ZTMyNjgy
MmQyZTA0Li5hZGE3NDFlOTUyNWQ4NWE2N2M0MWFjZTI5MTI4OTE1OTQ5NDA0ODYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA2LTI3ICBKb3NodWEg
QmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBLZWVwIGRp
cmVjdGlvbiBvbiBJREJDdXJzb3IgdG8gYXZvaWQgY2FsbHMgdG8gYmFjayBlbmQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMTE0CisKKyAgICAgICAg
U3RvcCBwbHVtYmluZyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpkaXJlY3Rpb24oKSB0aHJv
dWdoIEFQSS4KKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgorCisgICAgICAgICog
c3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgICogc3JjL0lEQkN1cnNvckJh
Y2tlbmRQcm94eS5oOgorICAgICAgICAoSURCQ3Vyc29yQmFja2VuZFByb3h5KToKKyAgICAgICAg
KiBzcmMvV2ViSURCQ3Vyc29ySW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYklEQkN1cnNvcklt
cGwuaDoKKyAgICAgICAgKFdlYklEQkN1cnNvckltcGwpOgorCiAyMDEyLTA2LTI5ICBBbXkgT3Vz
dGVyaG91dCAgPGFvdXN0ZXJoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBEZWxldGluZyB1bnVz
ZWQgZnVuY3Rpb24gaW4gV2ViRGV2aWNlT3JpZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCmluZGV4IGE1Y2E1Yzc5ZWE0MThjYTY2ZGVl
ZjRlMDQ2MTQ5M2E1NDhlYmIxYmYuLjVlOTAyNTExMmVlNmJiOWNkOTg4MDU5NWEyOTBlNjI5M2Vj
YjdhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
LmNwcApAQCAtNDIsOSArNDIsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQ
dHI8SURCQ3Vyc29yPiBJREJDdXJzb3I6OmNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlJlcXVlc3QqIHJlcXVlc3QsIElEQkFueSogc291cmNl
LCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCitQYXNzUmVmUHRyPElEQkN1cnNvcj4gSURC
Q3Vyc29yOjpjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNr
ZW5kLCBEaXJlY3Rpb24gZGlyZWN0aW9uLCBJREJSZXF1ZXN0KiByZXF1ZXN0LCBJREJBbnkqIHNv
dXJjZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSURCQ3Vyc29yKGJhY2tlbmQsIHJlcXVlc3QsIHNvdXJjZSwgdHJhbnNhY3Rpb24pKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1cnNvcihiYWNrZW5kLCBkaXJlY3Rpb24sIHJl
cXVlc3QsIHNvdXJjZSwgdHJhbnNhY3Rpb24pKTsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJ
REJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKQpAQCAtNzIsOSArNzIsMTAgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBJREJDdXJzb3I6OmRpcmVjdGlvblByZXZVbmlxdWUoKQogfQogCiAKLUlEQkN1cnNv
cjo6SURCQ3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2Vu
ZCwgSURCUmVxdWVzdCogcmVxdWVzdCwgSURCQW55KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbikKK0lEQkN1cnNvcjo6SURCQ3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZT4gYmFja2VuZCwgRGlyZWN0aW9uIGRpcmVjdGlvbiwgSURCUmVxdWVzdCog
cmVxdWVzdCwgSURCQW55KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKICAg
ICA6IG1fYmFja2VuZChiYWNrZW5kKQogICAgICwgbV9yZXF1ZXN0KHJlcXVlc3QpCisgICAgLCBt
X2RpcmVjdGlvbihkaXJlY3Rpb24pCiAgICAgLCBtX3NvdXJjZShzb3VyY2UpCiAgICAgLCBtX3Ry
YW5zYWN0aW9uKHRyYW5zYWN0aW9uKQogICAgICwgbV90cmFuc2FjdGlvbk5vdGlmaWVyKHRyYW5z
YWN0aW9uLCB0aGlzKQpAQCAtOTUsNyArOTYsNyBAQCBjb25zdCBTdHJpbmcmIElEQkN1cnNvcjo6
ZGlyZWN0aW9uKCkgY29uc3QKIHsKICAgICBJREJfVFJBQ0UoIklEQkN1cnNvcjo6ZGlyZWN0aW9u
Iik7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBk
aXJlY3Rpb24gPSBkaXJlY3Rpb25Ub1N0cmluZyhtX2JhY2tlbmQtPmRpcmVjdGlvbigpLCBlYyk7
CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBkaXJlY3Rpb24gPSBkaXJlY3Rpb25Ub1N0cmluZyht
X2RpcmVjdGlvbiwgZWMpOwogICAgIEFTU0VSVCghZWMpOwogICAgIHJldHVybiBkaXJlY3Rpb247
CiB9CkBAIC0yOTMsNyArMjk0LDcgQEAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gSURCQ3Vy
c29yOjplZmZlY3RpdmVPYmplY3RTdG9yZSgpCiAgICAgcmV0dXJuIGluZGV4LT5vYmplY3RTdG9y
ZSgpOwogfQogCi11bnNpZ25lZCBzaG9ydCBJREJDdXJzb3I6OnN0cmluZ1RvRGlyZWN0aW9uKGNv
bnN0IFN0cmluZyYgZGlyZWN0aW9uU3RyaW5nLCBFeGNlcHRpb25Db2RlJiBlYykKK0lEQkN1cnNv
cjo6RGlyZWN0aW9uIElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBk
aXJlY3Rpb25TdHJpbmcsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmIChkaXJlY3Rpb25T
dHJpbmcgPT0gSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCkpCiAgICAgICAgIHJldHVybiBJREJD
dXJzb3I6Ok5FWFQ7CkBAIC0zMDUsNyArMzA2LDcgQEAgdW5zaWduZWQgc2hvcnQgSURCQ3Vyc29y
OjpzdHJpbmdUb0RpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlvblN0cmluZywgRXhjZXAK
ICAgICAgICAgcmV0dXJuIElEQkN1cnNvcjo6UFJFVl9OT19EVVBMSUNBVEU7CiAKICAgICBlYyA9
IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfVFlQRV9FUlI7Ci0gICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIElEQkN1cnNvcjo6TkVYVDsKIH0KIAogY29uc3QgQXRvbWljU3RyaW5nJiBJREJDdXJz
b3I6OmRpcmVjdGlvblRvU3RyaW5nKHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgRXhjZXB0aW9u
Q29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5o
CmluZGV4IDRmNDU2NGVlYjQyMTI3YWE4N2IwNjkzNmI1NGUwNDNmNGU3ZjU1ODYuLmZkNDZjYmJj
YTA3ZjRmMzIzMzcyNzJmZjRjZTYxM2E2ZTUyODE4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCkBAIC01OSwxMCArNTksMTAgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvblByZXYoKTsKICAgICBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBkaXJlY3Rpb25QcmV2VW5pcXVlKCk7CiAKLSAgICBzdGF0
aWMgdW5zaWduZWQgc2hvcnQgc3RyaW5nVG9EaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBtb2RlU3Ry
aW5nLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIElEQkN1cnNvcjo6RGlyZWN0aW9uIHN0
cmluZ1RvRGlyZWN0aW9uKGNvbnN0IFN0cmluZyYgbW9kZVN0cmluZywgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGRpcmVjdGlvblRvU3RyaW5nKHVuc2ln
bmVkIHNob3J0IG1vZGUsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PElEQkN1cnNvcj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4s
IElEQlJlcXVlc3QqLCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qKTsKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxJREJDdXJzb3I+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+LCBEaXJlY3Rpb24sIElEQlJlcXVlc3QqLCBJREJBbnkqIHNvdXJjZSwgSURC
VHJhbnNhY3Rpb24qKTsKICAgICB2aXJ0dWFsIH5JREJDdXJzb3IoKTsKIAogICAgIC8vIEZJWE1F
OiBUcnkgdG8gbW9kaWZ5IHRoZSBjb2RlIGdlbmVyYXRvciBzbyB0aGlzIGlzIHVubmVlZGVkLgpA
QCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB2YWx1ZUlzRGlydHkoKSB7IHJldHVy
biBtX3ZhbHVlSXNEaXJ0eTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgSURCQ3Vyc29yKFBhc3NSZWZQ
dHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIElEQlJlcXVlc3QqLCBJREJBbnkqIHNvdXJj
ZSwgSURCVHJhbnNhY3Rpb24qKTsKKyAgICBJREJDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlPiwgRGlyZWN0aW9uLCBJREJSZXF1ZXN0KiwgSURCQW55KiBzb3VyY2Us
IElEQlRyYW5zYWN0aW9uKik7CiAgICAgdmlydHVhbCBib29sIGlzS2V5Q3Vyc29yKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgpAQCAtOTgsNiArOTgsNyBAQCBwcml2YXRlOgog
CiAgICAgUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IG1fYmFja2VuZDsKICAgICBS
ZWZQdHI8SURCUmVxdWVzdD4gbV9yZXF1ZXN0OworICAgIGNvbnN0IERpcmVjdGlvbiBtX2RpcmVj
dGlvbjsKICAgICBSZWZQdHI8SURCQW55PiBtX3NvdXJjZTsKICAgICBSZWZQdHI8SURCVHJhbnNh
Y3Rpb24+IG1fdHJhbnNhY3Rpb247CiAgICAgSURCVHJhbnNhY3Rpb246Ok9wZW5DdXJzb3JOb3Rp
ZmllciBtX3RyYW5zYWN0aW9uTm90aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKaW5kZXggMGExNGE2
ZjFhMWI1OTMwMGY4YmU5ODlkMzJjYWUxZTBmYjkzNDMzYy4uZmU1ODk4OGU0MmUyOGUzMjAyYmJj
NjA3ZmZkODZjZWYyYTI2MzU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcApAQCAtNjMsMTIgKzYzLDYg
QEAgSURCQ3Vyc29yQmFja2VuZEltcGw6On5JREJDdXJzb3JCYWNrZW5kSW1wbCgpCiAgICAgbV9v
YmplY3RTdG9yZS5jbGVhcigpOwogfQogCi11bnNpZ25lZCBzaG9ydCBJREJDdXJzb3JCYWNrZW5k
SW1wbDo6ZGlyZWN0aW9uKCkgY29uc3QKLXsKLSAgICBJREJfVFJBQ0UoIklEQkN1cnNvckJhY2tl
bmRJbXBsOjpkaXJlY3Rpb24iKTsKLSAgICByZXR1cm4gbV9kaXJlY3Rpb247Ci19Ci0KIFBhc3NS
ZWZQdHI8SURCS2V5PiBJREJDdXJzb3JCYWNrZW5kSW1wbDo6a2V5KCkgY29uc3QKIHsKICAgICBJ
REJfVFJBQ0UoIklEQkN1cnNvckJhY2tlbmRJbXBsOjprZXkiKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCmluZGV4
IDg5ZGRlNGYxMTM5NmFkYjE5ZjNiOWY3ZTUxZDhiNTEyMDdhNDNhYjIuLjE1MzAxNmYxMjY3MGRk
YjI3ZGY5YTcyZGE3ODliNmJjYTA4NzFlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaApAQCAtNTMsNyArNTMs
NiBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1YWwgfklEQkN1cnNvckJhY2tlbmRJbXBsKCk7
CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigpIGNvbnN0OwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZS5oCmluZGV4IDk3MTIzMjgyNmZkN2E1ZDAzYjk1NTk5YzcwZDk1ZDgyYWYxNWRkMGUuLjQ4ZDNh
MTgyOWY2NTg4ZWRmNjE5NzMzN2YzMThiMmMwNmU5MGJjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlLmgKQEAgLTUzLDcgKzUzLDYgQEAgcHVibGljOgogICAgICAgICBPYmplY3RTdG9yZUN1cnNv
cgogICAgIH07CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSgpIGNvbnN0
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvcldpdGhWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3JXaXRoVmFsdWUuY3BwCmluZGV4IDMwZDI0MmM5ODY1NGQ0ZGVjYjQwMWY2YzlkMDMzZjYw
Yjc0YzgyMTkuLmI5MGJhM2Q5YjUyNjUzMTcwOTJiYmU1NTgxNzUwZGMwMjc4NWRhYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0
aFZhbHVlLmNwcApAQCAtMzMsOSArMzMsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBh
c3NSZWZQdHI8SURCQ3Vyc29yV2l0aFZhbHVlPiBJREJDdXJzb3JXaXRoVmFsdWU6OmNyZWF0ZShQ
YXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlJlcXVlc3Qq
IHJlcXVlc3QsIElEQkFueSogc291cmNlLCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCitQ
YXNzUmVmUHRyPElEQkN1cnNvcldpdGhWYWx1ZT4gSURCQ3Vyc29yV2l0aFZhbHVlOjpjcmVhdGUo
UGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBEaXJlY3Rpb24g
ZGlyZWN0aW9uLCBJREJSZXF1ZXN0KiByZXF1ZXN0LCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vyc29y
V2l0aFZhbHVlKGJhY2tlbmQsIHJlcXVlc3QsIHNvdXJjZSwgdHJhbnNhY3Rpb24pKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1cnNvcldpdGhWYWx1ZShiYWNrZW5kLCBkaXJlY3Rpb24s
IHJlcXVlc3QsIHNvdXJjZSwgdHJhbnNhY3Rpb24pKTsKIH0KIAogUGFzc1JlZlB0cjxJREJDdXJz
b3JXaXRoVmFsdWU+IElEQkN1cnNvcldpdGhWYWx1ZTo6ZnJvbUN1cnNvcihQYXNzUmVmUHRyPElE
QkN1cnNvcj4gcHJwQ3Vyc29yKQpAQCAtNDQsOCArNDQsOCBAQCBQYXNzUmVmUHRyPElEQkN1cnNv
cldpdGhWYWx1ZT4gSURCQ3Vyc29yV2l0aFZhbHVlOjpmcm9tQ3Vyc29yKFBhc3NSZWZQdHI8SURC
Q3VycwogICAgIHJldHVybiBjdXJzb3JXaXRoVmFsdWUucmVsZWFzZSgpOwogfQogCi1JREJDdXJz
b3JXaXRoVmFsdWU6OklEQkN1cnNvcldpdGhWYWx1ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tl
bmRJbnRlcmZhY2U+IGJhY2tlbmQsIElEQlJlcXVlc3QqIHJlcXVlc3QsIElEQkFueSogc291cmNl
LCBJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCi0gICAgOiBJREJDdXJzb3IoYmFja2VuZCwg
cmVxdWVzdCwgc291cmNlLCB0cmFuc2FjdGlvbikKK0lEQkN1cnNvcldpdGhWYWx1ZTo6SURCQ3Vy
c29yV2l0aFZhbHVlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4gYmFja2Vu
ZCwgRGlyZWN0aW9uIGRpcmVjdGlvbiwgSURCUmVxdWVzdCogcmVxdWVzdCwgSURCQW55KiBzb3Vy
Y2UsIElEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKKyAgICA6IElEQkN1cnNvcihiYWNrZW5k
LCBkaXJlY3Rpb24sIHJlcXVlc3QsIHNvdXJjZSwgdHJhbnNhY3Rpb24pCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvcldpdGhWYWx1
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVl
LmgKaW5kZXggOWIzOTZiYTM1YWEwNmIzOTE0ZTA3MmE2ODFkNzA0ZTA1Y2FlZjhjZC4uY2JiODUw
YTFjZDAyZjBhYTIwOTUyZjJjZmRiODg4ZmM4YzAyODY1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yV2l0aFZhbHVlLmgKQEAgLTM0LDcg
KzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJDdXJzb3JXaXRoVmFsdWUg
OiBwdWJsaWMgSURCQ3Vyc29yIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJD
dXJzb3JXaXRoVmFsdWU+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZh
Y2U+LCBJREJSZXF1ZXN0KiwgSURCQW55KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vyc29yV2l0aFZhbHVlPiBjcmVhdGUoUGFzc1JlZlB0cjxJ
REJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgRGlyZWN0aW9uLCBJREJSZXF1ZXN0KiwgSURCQW55
KiBzb3VyY2UsIElEQlRyYW5zYWN0aW9uKik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQ3Vy
c29yV2l0aFZhbHVlPiBmcm9tQ3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPik7CiAgICAgdmly
dHVhbCB+SURCQ3Vyc29yV2l0aFZhbHVlKCk7CiAKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgYm9vbCBpc0tleUN1cnNvcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IGZhbHNlOyB9CiAKIHByaXZhdGU6Ci0gICAgSURCQ3Vyc29yV2l0aFZhbHVlKFBhc3NSZWZQdHI8
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZT4sIElEQlJlcXVlc3QqLCBJREJBbnkqIHNvdXJjZSwg
SURCVHJhbnNhY3Rpb24qKTsKKyAgICBJREJDdXJzb3JXaXRoVmFsdWUoUGFzc1JlZlB0cjxJREJD
dXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgRGlyZWN0aW9uLCBJREJSZXF1ZXN0KiwgSURCQW55KiBz
b3VyY2UsIElEQlRyYW5zYWN0aW9uKik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKaW5kZXggZmQ5
Mzk0OTQ3NDkyNzIyNTU5MTlkYzMwMjI4ZjNjMDVjOTc4ZDMxOC4uZmVjOTY4MDRiNjY5MDI0MzNk
MmNlZGM5YzJjMzdjNDRkNWJlZGMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCSW5kZXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkluZGV4LmNwcApAQCAtNjksMTIgKzY5LDEyIEBAIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzCiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9OX0lO
QUNUSVZFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIHVuc2lnbmVkIHNob3J0
IGRpcmVjdGlvbiA9IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oZGlyZWN0aW9uU3RyaW5n
LCBlYyk7CisgICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpz
dHJpbmdUb0RpcmVjdGlvbihkaXJlY3Rpb25TdHJpbmcsIGVjKTsKICAgICBpZiAoZWMpCiAgICAg
ICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1
ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIG1fdHJhbnNhY3Rpb24u
Z2V0KCkpOwotICAgIHJlcXVlc3QtPnNldEN1cnNvclR5cGUoSURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZTo6SW5kZXhDdXJzb3IpOworICAgIHJlcXVlc3QtPnNldEN1cnNvckRldGFpbHMoSURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZTo6SW5kZXhDdXJzb3IsIGRpcmVjdGlvbik7CiAgICAgbV9iYWNr
ZW5kLT5vcGVuQ3Vyc29yKGtleVJhbmdlLCBkaXJlY3Rpb24sIHJlcXVlc3QsIG1fdHJhbnNhY3Rp
b24tPmJhY2tlbmQoKSwgZWMpOwogICAgIGlmIChlYykgewogICAgICAgICByZXF1ZXN0LT5tYXJr
RWFybHlEZWF0aCgpOwpAQCAtMTUyLDEzICsxNTIsMTIgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBJREJJbmRleDo6b3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LAogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpUUkFOU0FDVElPTl9JTkFDVElW
RV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLQotICAgIHVuc2lnbmVkIHNob3J0IGRp
cmVjdGlvbiA9IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oZGlyZWN0aW9uU3RyaW5nLCBl
Yyk7CisgICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpzdHJp
bmdUb0RpcmVjdGlvbihkaXJlY3Rpb25TdHJpbmcsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiAwOwogCiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0
OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIG1fdHJhbnNhY3Rpb24uZ2V0
KCkpOwotICAgIHJlcXVlc3QtPnNldEN1cnNvclR5cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZTo6SW5kZXhLZXlDdXJzb3IpOworICAgIHJlcXVlc3QtPnNldEN1cnNvckRldGFpbHMoSURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlDdXJzb3IsIGRpcmVjdGlvbik7CiAgICAgbV9i
YWNrZW5kLT5vcGVuS2V5Q3Vyc29yKGtleVJhbmdlLCBkaXJlY3Rpb24sIHJlcXVlc3QsIG1fdHJh
bnNhY3Rpb24tPmJhY2tlbmQoKSwgZWMpOwogICAgIGlmIChlYykgewogICAgICAgICByZXF1ZXN0
LT5tYXJrRWFybHlEZWF0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IDZjMDY0MTU5MjljZThiYjdjODU3YTExYWVm
OGRkMWY4MWUzMzIxNTMuLjY1ZjIyMmJmODU2NWU2YjMwMWZhYTQ1NWRhN2Q4YjFmMGYzMjcyNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZS5jcHAKQEAgLTM3NSwxMiArMzc1LDEyIEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURC
T2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4CiAg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VS
UjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
biA9IElEQkN1cnNvcjo6c3RyaW5nVG9EaXJlY3Rpb24oZGlyZWN0aW9uU3RyaW5nLCBlYyk7Cisg
ICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpzdHJpbmdUb0Rp
cmVjdGlvbihkaXJlY3Rpb25TdHJpbmcsIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
biAwOwogCiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVh
dGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwot
ICAgIHJlcXVlc3QtPnNldEN1cnNvclR5cGUoSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6T2Jq
ZWN0U3RvcmVDdXJzb3IpOworICAgIHJlcXVlc3QtPnNldEN1cnNvckRldGFpbHMoSURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZTo6T2JqZWN0U3RvcmVDdXJzb3IsIGRpcmVjdGlvbik7CiAgICAgbV9i
YWNrZW5kLT5vcGVuQ3Vyc29yKHJhbmdlLCBkaXJlY3Rpb24sIHJlcXVlc3QsIG1fdHJhbnNhY3Rp
b24tPmJhY2tlbmQoKSwgZWMpOwogICAgIGlmIChlYykgewogICAgICAgICByZXF1ZXN0LT5tYXJr
RWFybHlEZWF0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmNwcAppbmRleCAwZmRhNjgxYjhjNjVkNzAxM2NkYzRhYWYxOTFhMGNjMDcxZGI1NTU5
Li4wODg1Y2FjMWVkM2NlOGE4ZDNjZjQ2YmQxMGUwYTc1MWZlOGRiZWY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNjEsNiArNjEs
NyBAQCBJREJSZXF1ZXN0OjpJREJSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyYwogICAgICwgbV9jdXJzb3JGaW5pc2hlZChmYWxz
ZSkKICAgICAsIG1fY29udGV4dFN0b3BwZWQoZmFsc2UpCiAgICAgLCBtX2N1cnNvclR5cGUoSURC
Q3Vyc29yQmFja2VuZEludGVyZmFjZTo6SW52YWxpZEN1cnNvclR5cGUpCisgICAgLCBtX2N1cnNv
ckRpcmVjdGlvbihJREJDdXJzb3I6Ok5FWFQpCiAgICAgLCBtX2N1cnNvcigwKQogewogICAgIGlm
IChtX3RyYW5zYWN0aW9uKSB7CkBAIC0xODcsMTAgKzE4OCwxMSBAQCB2b2lkIElEQlJlcXVlc3Q6
OmFib3J0KCkKICAgICBvbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6SURCX0FCT1JUX0VSUiwgIlRoZSB0cmFuc2FjdGlvbiB3YXMgYWJvcnRlZCwg
c28gdGhlIHJlcXVlc3QgY2Fubm90IGJlIGZ1bGZpbGxlZC4iKSk7CiB9CiAKLXZvaWQgSURCUmVx
dWVzdDo6c2V0Q3Vyc29yVHlwZShJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JUeXBl
IGN1cnNvclR5cGUpCit2b2lkIElEQlJlcXVlc3Q6OnNldEN1cnNvckRldGFpbHMoSURCQ3Vyc29y
QmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSBjdXJzb3JUeXBlLCBJREJDdXJzb3I6OkRpcmVj
dGlvbiBkaXJlY3Rpb24pCiB7CiAgICAgQVNTRVJUKG1fY3Vyc29yVHlwZSA9PSBJREJDdXJzb3JC
YWNrZW5kSW50ZXJmYWNlOjpJbnZhbGlkQ3Vyc29yVHlwZSk7CiAgICAgbV9jdXJzb3JUeXBlID0g
Y3Vyc29yVHlwZTsKKyAgICBtX2N1cnNvckRpcmVjdGlvbiA9IGRpcmVjdGlvbjsKIH0KIAogdm9p
ZCBJREJSZXF1ZXN0OjpzZXRDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3I+IGN1cnNvcikKQEAg
LTIzNyw5ICsyMzksOSBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGJhY2tlbmQpCiAgICAgQVNTRVJUKG1fY3Vyc29yVHlw
ZSAhPSBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOjpJbnZhbGlkQ3Vyc29yVHlwZSk7CiAgICAg
UmVmUHRyPElEQkN1cnNvcj4gY3Vyc29yOwogICAgIGlmIChtX2N1cnNvclR5cGUgPT0gSURCQ3Vy
c29yQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlDdXJzb3IpCi0gICAgICAgIGN1cnNvciA9IElE
QkN1cnNvcjo6Y3JlYXRlKGJhY2tlbmQsIHRoaXMsIG1fc291cmNlLmdldCgpLCBtX3RyYW5zYWN0
aW9uLmdldCgpKTsKKyAgICAgICAgY3Vyc29yID0gSURCQ3Vyc29yOjpjcmVhdGUoYmFja2VuZCwg
bV9jdXJzb3JEaXJlY3Rpb24sIHRoaXMsIG1fc291cmNlLmdldCgpLCBtX3RyYW5zYWN0aW9uLmdl
dCgpKTsKICAgICBlbHNlCi0gICAgICAgIGN1cnNvciA9IElEQkN1cnNvcldpdGhWYWx1ZTo6Y3Jl
YXRlKGJhY2tlbmQsIHRoaXMsIG1fc291cmNlLmdldCgpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsK
KyAgICAgICAgY3Vyc29yID0gSURCQ3Vyc29yV2l0aFZhbHVlOjpjcmVhdGUoYmFja2VuZCwgbV9j
dXJzb3JEaXJlY3Rpb24sIHRoaXMsIG1fc291cmNlLmdldCgpLCBtX3RyYW5zYWN0aW9uLmdldCgp
KTsKICAgICBzZXRSZXN1bHRDdXJzb3IoY3Vyc29yLCBtX2N1cnNvclR5cGUpOwogCiAgICAgZW5x
dWV1ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCA4OGE3ZTYwZjFlNzFmODUxNjAzZGNmNDE0
MzI0Yjg5MmU2NDc2ZjQ3Li40OTA3MjQ0ZDU3Y2NjNWZlY2NlZjg3NWFhZGUxMjExYmQ1OWMwMmNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBA
IC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJJREJB
bnkuaCIKICNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJJREJDdXJzb3IuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Myw3ICs3NCw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgbWFya0Vhcmx5RGVhdGgoKTsKICAgICBib29sIHJlc2V0UmVhZHlTdGF0ZShJREJUcmFu
c2FjdGlvbiopOwotICAgIHZvaWQgc2V0Q3Vyc29yVHlwZShJREJDdXJzb3JCYWNrZW5kSW50ZXJm
YWNlOjpDdXJzb3JUeXBlKTsKKyAgICB2b2lkIHNldEN1cnNvckRldGFpbHMoSURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSwgSURCQ3Vyc29yOjpEaXJlY3Rpb24pOwogICAgIHZv
aWQgc2V0Q3Vyc29yKFBhc3NSZWZQdHI8SURCQ3Vyc29yPik7CiAgICAgdm9pZCBmaW5pc2hDdXJz
b3IoKTsKICAgICBJREJBbnkqIHNvdXJjZSgpOwpAQCAtMTM0LDYgKzEzNSw3IEBAIHByaXZhdGU6
CiAKICAgICAvLyBPbmx5IHVzZWQgaWYgdGhlIHJlc3VsdCB0eXBlIHdpbGwgYmUgYSBjdXJzb3Iu
CiAgICAgSURCQ3Vyc29yQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVHlwZSBtX2N1cnNvclR5cGU7
CisgICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gbV9jdXJzb3JEaXJlY3Rpb247CiAgICAgUmVmUHRy
PElEQkN1cnNvcj4gbV9jdXJzb3I7CiAKICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdl
dERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JC
YWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ3Vyc29yQmFj
a2VuZFByb3h5LmNwcAppbmRleCAyYTYyYjkyNmY1ZjY2NGVlNmQ3NDlkZDA1MDI3NzY3ZWUyNTRl
Zjg2Li5jYTM5MGJhOTA3NDI3ZTA4ZmQ0NzhiYjk1Y2Y5ZTJjNDE2Y2QyZmZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5jcHAK
QEAgLTU0LDExICs1NCw2IEBAIElEQkN1cnNvckJhY2tlbmRQcm94eTo6fklEQkN1cnNvckJhY2tl
bmRQcm94eSgpCiB7CiB9CiAKLXVuc2lnbmVkIHNob3J0IElEQkN1cnNvckJhY2tlbmRQcm94eTo6
ZGlyZWN0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pZGJDdXJzb3ItPmRpcmVjdGlvbigp
OwotfQotCiBQYXNzUmVmUHRyPElEQktleT4gSURCQ3Vyc29yQmFja2VuZFByb3h5OjprZXkoKSBj
b25zdAogewogICAgIHJldHVybiBtX2lkYkN1cnNvci0+a2V5KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDdXJzb3JCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkN1cnNvckJhY2tlbmRQcm94eS5oCmluZGV4IDI0YTNlNDJj
NDdhN2I2MWViNjkyMTAxMGY3Y2YxOGY4MDE4ZjQ3MzYuLjllNGI1NzAwODEyNmYzOTZjZDE0ZjYz
M2M2YTNhNDFkNmI1OTAyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkN1cnNvckJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkN1cnNvckJhY2tlbmRQcm94eS5oCkBAIC00Miw3ICs0Miw2IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBjcmVh
dGUoUGFzc093blB0cjxXZWJJREJDdXJzb3I+KTsKICAgICB2aXJ0dWFsIH5JREJDdXJzb3JCYWNr
ZW5kUHJveHkoKTsKIAotICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4ga2V5KCkgY29uc3Q7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJpbWFyeUtleSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IHZhbHVlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJDdXJzb3JJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkN1cnNvckltcGwuY3BwCmluZGV4IDZmMTBlZmU5ZTA5NmY5M2ZmZDU3ZDc2ZWZlOTMzNDA2OWI4
NzkyYWIuLmU5YzBlMDRhZjAzNzMyNGM0MTY0YzNjNWExMmNkMWI3YTFmYjFjZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuY3BwCkBAIC00Nywx
MSArNDcsNiBAQCBXZWJJREJDdXJzb3JJbXBsOjp+V2ViSURCQ3Vyc29ySW1wbCgpCiB7CiB9CiAK
LXVuc2lnbmVkIHNob3J0IFdlYklEQkN1cnNvckltcGw6OmRpcmVjdGlvbigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1faWRiQ3Vyc29yQmFja2VuZC0+ZGlyZWN0aW9uKCk7Ci19Ci0KIFdlYklEQktl
eSBXZWJJREJDdXJzb3JJbXBsOjprZXkoKSBjb25zdAogewogICAgIHJldHVybiBtX2lkYkN1cnNv
ckJhY2tlbmQtPmtleSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCQ3Vyc29ySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ3Vy
c29ySW1wbC5oCmluZGV4IDQxODY3NTE0MmNkZjE1NDAxMzk5MDc3MWZmNzczMDk0MTFkOTc0Nzcu
LmYwZDM4N2I2MjE5NzY4N2E4MTZhZDFkYzc1NTVjZGMyN2VmYmFmYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkN1cnNvckltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDdXJzb3JJbXBsLmgKQEAgLTQ0LDcgKzQ0LDYgQEAg
cHVibGljOgogICAgIFdlYklEQkN1cnNvckltcGwoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICB2aXJ0dWFsIH5XZWJJREJDdXJzb3JJbXBs
KCk7CiAKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbigpIGNvbnN0OwogICAg
IHZpcnR1YWwgV2ViSURCS2V5IGtleSgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViSURCS2V5IHBy
aW1hcnlLZXkoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB2
YWx1ZSgpIGNvbnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>