<?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>46906</bug_id>
          
          <creation_ts>2010-09-30 08:49:42 -0700</creation_ts>
          <short_desc>Rename get* and open*Cursor per the spec on IDBIndex</short_desc>
          <delta_ts>2010-10-05 10:17:54 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>andreip</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>287569</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-30 08:49:42 -0700</bug_when>
    <thetext>The spec changed so that:
IDBIndex.get -&gt; getKey
IDBIndex.getObject -&gt; get
IDBIndex.openCursor -&gt; openKeyCursor
IDBIndex.openObjectCursor -&gt; openCursor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287570</commentid>
    <comment_count>1</comment_count>
      <attachid>69339</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-30 08:51:56 -0700</bug_when>
    <thetext>Created attachment 69339
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287591</commentid>
    <comment_count>2</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-09-30 09:33:33 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288277</commentid>
    <comment_count>3</comment_count>
      <attachid>69339</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-10-01 09:11:10 -0700</bug_when>
    <thetext>Comment on attachment 69339
patch

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

&gt; WebCore/ChangeLog:13
&gt; +

Should mention the tests that cover this

&gt; WebKit/chromium/public/WebIDBIndex.h:68
&gt; +        openKeyCursor(range, direction, callbacks, transaction);

Should we call openObjectCursor()?

&gt; WebKit/chromium/public/WebIDBIndex.h:77
&gt; +        getKey(range, callbacks, transaction);

Shouldn&apos;t we call getObject()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289106</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-04 13:37:47 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 69339 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=69339&amp;action=review
&gt; 
&gt; &gt; WebCore/ChangeLog:13
&gt; &gt; +
&gt; 
&gt; Should mention the tests that cover this

Will do.
 
&gt; &gt; WebKit/chromium/public/WebIDBIndex.h:68
&gt; &gt; +        openKeyCursor(range, direction, callbacks, transaction);
&gt; 
&gt; Should we call openObjectCursor()?
&gt; 
&gt; &gt; WebKit/chromium/public/WebIDBIndex.h:77
&gt; &gt; +        getKey(range, callbacks, transaction);
&gt; 
&gt; Shouldn&apos;t we call getObject()?

Nope..this is temp code to get around webkit roll issues.  What currently (in chromium) is ___ should be ___Key</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289150</commentid>
    <comment_count>5</comment_count>
      <attachid>69684</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-04 14:38:17 -0700</bug_when>
    <thetext>Created attachment 69684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289711</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-05 10:17:54 -0700</bug_when>
    <thetext>Committed r69123: &lt;http://trac.webkit.org/changeset/69123&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69339</attachid>
            <date>2010-09-30 08:51:56 -0700</date>
            <delta_ts>2010-10-04 14:38:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a</filename>
            <type>text/plain</type>
            <size>28928</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZWE3ZDFkLi40YzdmZGEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDkt
MzAgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIGdldCogYW5kIG9wZW4qQ3Vy
c29yIHBlciB0aGUgc3BlYyBvbiBJREJJbmRleAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY5MDYKKworICAgICAgICBUaGUgc3BlYyBjaGFuZ2VkIHNv
IHRoYXQ6CisgICAgICAgIElEQkluZGV4LmdldCAtPiBnZXRLZXkKKyAgICAgICAgSURCSW5kZXgu
Z2V0T2JqZWN0IC0+IGdldAorICAgICAgICBJREJJbmRleC5vcGVuQ3Vyc29yIC0+IG9wZW5LZXlD
dXJzb3IKKyAgICAgICAgSURCSW5kZXgub3Blbk9iamVjdEN1cnNvciAtPiBvcGVuQ3Vyc29yCisK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3MtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy5odG1sOgorICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sOgorCiAyMDEwLTA5LTI5ICBKZXJl
bXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW5kZXgtYmFzaWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2luZGV4LWJhc2ljcy1leHBlY3RlZC50eHQKaW5kZXggZDhkNmRjYy4uOGIwMDgzZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3MtZXhw
ZWN0ZWQudHh0CkBAIC04Niw5ICs4Niw5IEBAIFBBU1MgJ2tleVBhdGgnIGluIGluZGV4T2JqZWN0
IGlzIHRydWUKIFBBU1MgaW5kZXhPYmplY3Qua2V5UGF0aCBpcyAieCIKIFBBU1MgJ3VuaXF1ZScg
aW4gaW5kZXhPYmplY3QgaXMgdHJ1ZQogUEFTUyBpbmRleE9iamVjdC51bmlxdWUgaXMgZmFsc2UK
LVBBU1MgJ29wZW5PYmplY3RDdXJzb3InIGluIGluZGV4T2JqZWN0IGlzIHRydWUKK1BBU1MgJ29w
ZW5LZXlDdXJzb3InIGluIGluZGV4T2JqZWN0IGlzIHRydWUKIFBBU1MgJ29wZW5DdXJzb3InIGlu
IGluZGV4T2JqZWN0IGlzIHRydWUKLVBBU1MgJ2dldE9iamVjdCcgaW4gaW5kZXhPYmplY3QgaXMg
dHJ1ZQorUEFTUyAnZ2V0S2V5JyBpbiBpbmRleE9iamVjdCBpcyB0cnVlCiBQQVNTICdnZXQnIGlu
IGluZGV4T2JqZWN0IGlzIHRydWUKIGV2ZW50LnNvdXJjZS5hZGQoe3g6ICd2YWx1ZScsIHk6ICd6
enonfSwgJ2tleScpCiBQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCkBAIC0xMjQs
NyArMTI0LDcgQEAgUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1Mg
J3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCiBQQVNTIGV2ZW50LnRhcmdldC5y
ZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCiAKLWluZGV4T2JqZWN0LmdldCgndmFsdWUn
KQoraW5kZXhPYmplY3QuZ2V0S2V5KCd2YWx1ZScpCiBQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3Vs
dCBpcyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAncmVhZHlT
dGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTE0Miw3ICsxNDIsNyBAQCBQQVNTICdyZWFkeVN0
YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQogUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0
ZSBpcyBldmVudC50YXJnZXQuRE9ORQogCiBQQVNTIGV2ZW50LnJlc3VsdCBpcyAia2V5IgotaW5k
ZXhPYmplY3QuZ2V0T2JqZWN0KCd2YWx1ZScpCitpbmRleE9iamVjdC5nZXQoJ3ZhbHVlJykKIFBB
U1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKIFBBU1MgJ29uZXJyb3InIGluIHJlc3Vs
dCBpcyB0cnVlCiBQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQpAQCAtMTYxLDcg
KzE2MSw3IEBAIFBBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRP
TkUKIAogUEFTUyBldmVudC5yZXN1bHQueCBpcyAidmFsdWUiCiBQQVNTIGV2ZW50LnJlc3VsdC55
IGlzICJ6enoiCi1pbmRleE9iamVjdC5nZXQoJ2RvZXMgbm90IGV4aXN0JykKK2luZGV4T2JqZWN0
LmdldEtleSgnZG9lcyBub3QgZXhpc3QnKQogUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMg
dHJ1ZQogUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKIFBBU1MgJ3JlYWR5U3RhdGUn
IGluIHJlc3VsdCBpcyB0cnVlCkBAIC0xNzksNyArMTc5LDcgQEAgUEFTUyAncmVhZHlTdGF0ZScg
aW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMg
ZXZlbnQudGFyZ2V0LkRPTkUKIAogUEFTUyBldmVudC5jb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0
aW9uLk5PVF9GT1VORF9FUlIKLWluZGV4T2JqZWN0LmdldE9iamVjdCgnZG9lcyBub3QgZXhpc3Qn
KQoraW5kZXhPYmplY3QuZ2V0KCdkb2VzIG5vdCBleGlzdCcpCiBQQVNTICdvbnN1Y2Nlc3MnIGlu
IHJlc3VsdCBpcyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAn
cmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTE5Nyw3ICsxOTcsNyBAQCBQQVNTICdy
ZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQogUEFTUyBldmVudC50YXJnZXQucmVh
ZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQogCiBQQVNTIGV2ZW50LmNvZGUgaXMgSURCRGF0
YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgotaW5kZXhPYmplY3Qub3BlbkN1cnNvcigpCitp
bmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKCkKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlz
IHRydWUKIFBBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdyZWFkeVN0YXRl
JyBpbiByZXN1bHQgaXMgdHJ1ZQpAQCAtMjU1LDcgKzI1NSw3IEBAIFBBU1MgJ3JlYWR5U3RhdGUn
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCiBQQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlz
IGV2ZW50LnRhcmdldC5ET05FCiAKIFBBU1MgZXZlbnQucmVzdWx0ID09PSBudWxsIGlzIHRydWUK
LWluZGV4T2JqZWN0Lm9wZW5PYmplY3RDdXJzb3IoKQoraW5kZXhPYmplY3Qub3BlbkN1cnNvcigp
CiBQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiBy
ZXN1bHQgaXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy5odG1sIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtYmFzaWNzLmh0bWwKaW5kZXggM2M4
YTYwMS4uNzJiNThkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
aW5kZXgtYmFzaWNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5k
ZXgtYmFzaWNzLmh0bWwKQEAgLTc2LDkgKzc2LDkgQEAgZnVuY3Rpb24gYWRkRGF0YSgpCiAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbmRleE9iamVjdC5rZXlQYXRoIiwgIngiKTsKICAgICBz
aG91bGRCZVRydWUoIid1bmlxdWUnIGluIGluZGV4T2JqZWN0Iik7CiAgICAgc2hvdWxkQmVGYWxz
ZSgiaW5kZXhPYmplY3QudW5pcXVlIik7Ci0gICAgc2hvdWxkQmVUcnVlKCInb3Blbk9iamVjdEN1
cnNvcicgaW4gaW5kZXhPYmplY3QiKTsKKyAgICBzaG91bGRCZVRydWUoIidvcGVuS2V5Q3Vyc29y
JyBpbiBpbmRleE9iamVjdCIpOwogICAgIHNob3VsZEJlVHJ1ZSgiJ29wZW5DdXJzb3InIGluIGlu
ZGV4T2JqZWN0Iik7Ci0gICAgc2hvdWxkQmVUcnVlKCInZ2V0T2JqZWN0JyBpbiBpbmRleE9iamVj
dCIpOworICAgIHNob3VsZEJlVHJ1ZSgiJ2dldEtleScgaW4gaW5kZXhPYmplY3QiKTsKICAgICBz
aG91bGRCZVRydWUoIidnZXQnIGluIGluZGV4T2JqZWN0Iik7CiAKICAgICByZXN1bHQgPSBldmFs
QW5kTG9nKCJldmVudC5zb3VyY2UuYWRkKHt4OiAndmFsdWUnLCB5OiAnenp6J30sICdrZXknKSIp
OwpAQCAtMTAxLDcgKzEwMSw3IEBAIGZ1bmN0aW9uIGdldERhdGEoKQogewogICAgIHZlcmlmeVN1
Y2Nlc3NFdmVudChldmVudCk7CiAKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleE9iamVj
dC5nZXQoJ3ZhbHVlJykiKTsKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleE9iamVjdC5n
ZXRLZXkoJ3ZhbHVlJykiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKICAgICByZXN1bHQu
b25zdWNjZXNzID0gZ2V0T2JqZWN0RGF0YTsKICAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0
ZWRFcnJvckNhbGxiYWNrOwpAQCAtMTEyLDcgKzExMiw3IEBAIGZ1bmN0aW9uIGdldE9iamVjdERh
dGEoKQogICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CiAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJldmVudC5yZXN1bHQiLCAia2V5Iik7CiAKLSAgICByZXN1bHQgPSBldmFsQW5kTG9n
KCJpbmRleE9iamVjdC5nZXRPYmplY3QoJ3ZhbHVlJykiKTsKKyAgICByZXN1bHQgPSBldmFsQW5k
TG9nKCJpbmRleE9iamVjdC5nZXQoJ3ZhbHVlJykiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0
KTsKICAgICByZXN1bHQub25zdWNjZXNzID0gZ2V0RGF0YUZhaWw7CiAgICAgcmVzdWx0Lm9uZXJy
b3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKQEAgLTEyNCw3ICsxMjQsNyBAQCBmdW5jdGlv
biBnZXREYXRhRmFpbCgpCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5yZXN1bHQu
eCIsICJ2YWx1ZSIpOwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQucmVzdWx0Lnki
LCAienp6Iik7CiAKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleE9iamVjdC5nZXQoJ2Rv
ZXMgbm90IGV4aXN0JykiKTsKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleE9iamVjdC5n
ZXRLZXkoJ2RvZXMgbm90IGV4aXN0JykiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKICAg
ICByZXN1bHQub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKICAgICByZXN1
bHQub25lcnJvciA9IGdldE9iamVjdERhdGFGYWlsOwpAQCAtMTM1LDE4ICsxMzUsMTggQEAgZnVu
Y3Rpb24gZ2V0T2JqZWN0RGF0YUZhaWwoKQogICAgIHZlcmlmeUVycm9yRXZlbnQoZXZlbnQpOwog
ICAgIHNob3VsZEJlKCJldmVudC5jb2RlIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VO
RF9FUlIiKTsKIAotICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4T2JqZWN0LmdldE9iamVj
dCgnZG9lcyBub3QgZXhpc3QnKSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4T2Jq
ZWN0LmdldCgnZG9lcyBub3QgZXhpc3QnKSIpOwogICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOwog
ICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOwotICAgIHJl
c3VsdC5vbmVycm9yID0gb3BlbkN1cnNvcjsKKyAgICByZXN1bHQub25lcnJvciA9IG9wZW5LZXlD
dXJzb3I7CiB9CiAKLWZ1bmN0aW9uIG9wZW5DdXJzb3IoKQorZnVuY3Rpb24gb3BlbktleUN1cnNv
cigpCiB7CiAgICAgdmVyaWZ5RXJyb3JFdmVudChldmVudCk7CiAgICAgc2hvdWxkQmUoImV2ZW50
LmNvZGUiLCAiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogCi0gICAgd2lu
ZG93LnJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4T2JqZWN0Lm9wZW5DdXJzb3IoKSIpOworICAg
IHdpbmRvdy5yZXN1bHQgPSBldmFsQW5kTG9nKCJpbmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKCki
KTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKICAgICByZXN1bHQub25zdWNjZXNzID0gY3Vy
c29yMUNvbnRpbnVlOwogICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CkBAIC0xODMsNyArMTgzLDcgQEAgZnVuY3Rpb24gb3Blbk9iamVjdEN1cnNvcigpCiAgICAg
dmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKICAgICBzaG91bGRCZVRydWUoImV2ZW50LnJlc3Vs
dCA9PT0gbnVsbCIpOwogCi0gICAgd2luZG93LnJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4T2Jq
ZWN0Lm9wZW5PYmplY3RDdXJzb3IoKSIpOworICAgIHdpbmRvdy5yZXN1bHQgPSBldmFsQW5kTG9n
KCJpbmRleE9iamVjdC5vcGVuQ3Vyc29yKCkiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsK
ICAgICByZXN1bHQub25zdWNjZXNzID0gY3Vyc29yMkNvbnRpbnVlOwogICAgIHJlc3VsdC5vbmVy
cm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9pbmRleC1jdXJzb3IuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCmluZGV4IDY2YjZkYzYuLjQyMTlkNjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sCkBAIC0y
MDYsNyArMjA2LDcgQEAgZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQogICAgIGVsc2UKICAgICAgICAg
a2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5yaWdodEJvdW5kKHRlc3REYXRhW3VwcGVyXSwgdXBwZXJJ
c09wZW4pOwogIAotICAgIHZhciByZXF1ZXN0ID0gaW5kZXhPYmplY3Qub3BlbkN1cnNvcihrZXlS
YW5nZSwgYXNjZW5kaW5nID8gSURCQ3Vyc29yLk5FWFQgOiBJREJDdXJzb3IuUFJFVik7CisgICAg
dmFyIHJlcXVlc3QgPSBpbmRleE9iamVjdC5vcGVuS2V5Q3Vyc29yKGtleVJhbmdlLCBhc2NlbmRp
bmcgPyBJREJDdXJzb3IuTkVYVCA6IElEQkN1cnNvci5QUkVWKTsKICAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGN1cnNvckl0ZXJhdGlvbjsKICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMjVhODBhMy4uMTkzMDdmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0w
OS0zMCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgZ2V0KiBhbmQgb3BlbipD
dXJzb3IgcGVyIHRoZSBzcGVjIG9uIElEQkluZGV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjkwNgorCisgICAgICAgIFRoZSBzcGVjIGNoYW5nZWQg
c28gdGhhdDoKKyAgICAgICAgSURCSW5kZXguZ2V0IC0+IGdldEtleQorICAgICAgICBJREJJbmRl
eC5nZXRPYmplY3QgLT4gZ2V0CisgICAgICAgIElEQkluZGV4Lm9wZW5DdXJzb3IgLT4gb3Blbktl
eUN1cnNvcgorICAgICAgICBJREJJbmRleC5vcGVuT2JqZWN0Q3Vyc29yIC0+IG9wZW5DdXJzb3IK
KworICAgICAgICAqIHN0b3JhZ2UvSURCSW5kZXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
SW5kZXg6Om9wZW5DdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXg6Om9wZW5LZXlD
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXg6OmdldCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJJbmRleDo6Z2V0S2V5KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkluZGV4Lmg6Cisg
ICAgICAgICogc3RvcmFnZS9JREJJbmRleC5pZGw6CisgICAgICAgICogc3RvcmFnZS9JREJJbmRl
eEJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4QmFja2VuZEltcGw6
Om9wZW5DdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6b3Bl
bktleUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbXBsOjpnZXQp
OgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6Z2V0S2V5KToKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQkluZGV4QmFja2VuZEltcGwuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lE
QkluZGV4QmFja2VuZEludGVyZmFjZS5oOgorCiAyMDEwLTA5LTI5ICBKZXJlbXkgT3Jsb3cgIDxq
b3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJJbmRleC5jcHAKaW5kZXggOGQ3ODQ2Ni4uYmFhZWYwYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdG9yYWdlL0lEQkluZGV4LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXgu
Y3BwCkBAIC00OSwzMSArNDksMzEgQEAgSURCSW5kZXg6On5JREJJbmRleCgpCiB7CiB9CiAKLVBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5PYmplY3RDdXJzb3IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2Us
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5k
ZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbikKIHsKICAg
ICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0
LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7Ci0gICAgbV9iYWNr
ZW5kLT5vcGVuT2JqZWN0Q3Vyc29yKGtleVJhbmdlLCBkaXJlY3Rpb24sIHJlcXVlc3QsIG1fdHJh
bnNhY3Rpb24uZ2V0KCkpOworICAgIG1fYmFja2VuZC0+b3BlbkN1cnNvcihrZXlSYW5nZSwgZGly
ZWN0aW9uLCByZXF1ZXN0LCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKICAgICByZXR1cm4gcmVxdWVz
dDsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3BlbkN1cnNvcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlS
YW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJ
REJJbmRleDo6b3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
KQogewogICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRl
KGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKLSAg
ICBtX2JhY2tlbmQtPm9wZW5DdXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgcmVxdWVzdCwgbV90
cmFuc2FjdGlvbi5nZXQoKSk7CisgICAgbV9iYWNrZW5kLT5vcGVuS2V5Q3Vyc29yKGtleVJhbmdl
LCBkaXJlY3Rpb24sIHJlcXVlc3QsIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwogICAgIHJldHVybiBy
ZXF1ZXN0OwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXRPYmplY3Qo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkK
K1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQogewogICAgIFJlZlB0cjxJREJS
ZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3Jl
YXRlKHRoaXMpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKLSAgICBtX2JhY2tlbmQtPmdldE9iamVj
dChrZXksIHJlcXVlc3QsIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOworICAgIG1fYmFja2VuZC0+Z2V0
KGtleSwgcmVxdWVzdCwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7
CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQorUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBJREJJbmRleDo6Z2V0S2V5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCiB7CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJl
cXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyks
IG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgIG1fYmFja2VuZC0+Z2V0KGtleSwgcmVxdWVzdCwg
bV90cmFuc2FjdGlvbi5nZXQoKSk7CisgICAgbV9iYWNrZW5kLT5nZXRLZXkoa2V5LCByZXF1ZXN0
LCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5k
ZXguaAppbmRleCBiMjU4MDc3Li5hZTM5YzEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2Uv
SURCSW5kZXguaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaApAQCAtNDksMTAgKzQ5
LDEwIEBAIHB1YmxpYzoKICAgICBTdHJpbmcga2V5UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFj
a2VuZC0+a2V5UGF0aCgpOyB9CiAgICAgYm9vbCB1bmlxdWUoKSBjb25zdCB7IHJldHVybiBtX2Jh
Y2tlbmQtPnVuaXF1ZSgpOyB9CiAKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5PYmpl
Y3RDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+
ID0gMCwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uID0gSURCQ3Vyc29yOjpORVhUKTsKICAgICBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+ID0gMCwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uID0g
SURCQ3Vyc29yOjpORVhUKTsKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldE9iamVjdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+KTsKKyAgICBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IG9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+ID0gMCwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uID0gSURC
Q3Vyc29yOjpORVhUKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+KTsKKyAgICBQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IGdldEtleShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+
KTsKIAogcHJpdmF0ZToKICAgICBJREJJbmRleChQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZElu
dGVyZmFjZT4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24pOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmlkbCBiL1dlYkNvcmUvc3RvcmFn
ZS9JREJJbmRleC5pZGwKaW5kZXggYmEzZWNlYS4uYjA1NDhhZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQkluZGV4LmlkbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaWRs
CkBAIC0zNCwxMCArMzQsMTAgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiB1bmlxdWU7CiAKICAgICAgICAgLy8gRklYTUU6IEFsbCBvZiB0aGVz
ZSBzaG91bGQgcmFpc2Ugb24gY2VydGFpbiBlcnJvcnMuCi0gICAgICAgIFtDYWxsV2l0aD1TY3Jp
cHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5PYmplY3RDdXJzb3IoaW4gW09wdGlv
bmFsXSBJREJLZXlSYW5nZSByYW5nZSwgaW4gW09wdGlvbmFsXSB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24pOwogICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVx
dWVzdCBvcGVuQ3Vyc29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtPcHRp
b25hbF0gdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKTsKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0T2JqZWN0KGluIElEQktleSBrZXkpOwor
ICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBvcGVu
S2V5Q3Vyc29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2UgcmFuZ2UsIGluIFtPcHRpb25hbF0g
dW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0KGluIElEQktleSBrZXkpOworICAgICAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBnZXRLZXkoaW4gSURCS2V5
IGtleSk7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4
QmFja2VuZEltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4QmFja2VuZEltcGwuY3Bw
CmluZGV4IDE4ZTI0YjIuLmNhMmFmZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJJ
bmRleEJhY2tlbmRJbXBsLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5k
SW1wbC5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIElEQkluZGV4QmFja2VuZEltcGw6Om9w
ZW5DdXJzb3JJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cgogICAg
IGNhbGxiYWNrcy0+b25TdWNjZXNzKGN1cnNvci5yZWxlYXNlKCkpOwogfQogCi12b2lkIElEQklu
ZGV4QmFja2VuZEltcGw6Om9wZW5PYmplY3RDdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
cHJwS2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+IHBycENhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFu
c2FjdGlvblB0cikKK3ZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6b3BlbkN1cnNvcihQYXNzUmVm
UHRyPElEQktleVJhbmdlPiBwcnBLZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uUHRyKQogewogICAgIFJlZlB0cjxJREJJbmRleEJhY2tl
bmRJbXBsPiBpbmRleCA9IHRoaXM7CiAgICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9
IHBycEtleVJhbmdlOwpAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1w
bDo6b3Blbk9iamVjdEN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiBwcnBLZXlSYW5nZSwK
ICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0FMTE9XRURfRVJSLCAiR2V0IG11c3QgYmUgY2FsbGVkIGlu
IHRoZSBjb250ZXh0IG9mIGEgdHJhbnNhY3Rpb24uIikpOwogfQogCi12b2lkIElEQkluZGV4QmFj
a2VuZEltcGw6Om9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcHJwS2V5UmFuZ2Us
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENh
bGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvblB0cikK
K3ZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6b3BlbktleUN1cnNvcihQYXNzUmVmUHRyPElEQktl
eVJhbmdlPiBwcnBLZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqIHRyYW5zYWN0aW9uUHRyKQogewogICAgIFJlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiBp
bmRleCA9IHRoaXM7CiAgICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IHBycEtleVJh
bmdlOwpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6Z2V0SW50
ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCSW5kCiAgICAgQVNT
RVJUKHF1ZXJ5LnN0ZXAoKSAhPSBTUUxSZXN1bHRSb3cpOwogfQogCi12b2lkIElEQkluZGV4QmFj
a2VuZEltcGw6OmdldE9iamVjdChQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqIHRyYW5zYWN0aW9uKQordm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpnZXQoUGFzc1JlZlB0
cjxJREJLZXk+IHBycEtleSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbikKIHsKICAgICBSZWZQ
dHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gaW5kZXggPSB0aGlzOwogICAgIFJlZlB0cjxJREJLZXk+
IGtleSA9IHBycEtleTsKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIElEQkluZGV4QmFja2VuZElt
cGw6OmdldE9iamVjdChQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBQYXNzUmVmUHRyPElEQkNh
bAogICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElE
QkRhdGFiYXNlRXhjZXB0aW9uOjpOT1RfQUxMT1dFRF9FUlIsICJHZXQgbXVzdCBiZSBjYWxsZWQg
aW4gdGhlIGNvbnRleHQgb2YgYSB0cmFuc2FjdGlvbi4iKSk7CiB9CiAKLXZvaWQgSURCSW5kZXhC
YWNrZW5kSW1wbDo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSog
dHJhbnNhY3Rpb24pCit2b2lkIElEQkluZGV4QmFja2VuZEltcGw6OmdldEtleShQYXNzUmVmUHRy
PElEQktleT4gcHJwS2V5LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKQogewogICAgIFJlZlB0
cjxJREJJbmRleEJhY2tlbmRJbXBsPiBpbmRleCA9IHRoaXM7CiAgICAgUmVmUHRyPElEQktleT4g
a2V5ID0gcHJwS2V5OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4QmFja2Vu
ZEltcGwuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbXBsLmgKaW5kZXggMmQw
NmM2OS4uOGQ1NjEyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4QmFja2Vu
ZEltcGwuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW1wbC5oCkBAIC01
NCwxMCArNTQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGtleVBhdGgoKSB7IHJl
dHVybiBtX2tleVBhdGg7IH0KICAgICB2aXJ0dWFsIGJvb2wgdW5pcXVlKCkgeyByZXR1cm4gbV91
bmlxdWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuT2JqZWN0Q3Vyc29yKFBhc3NSZWZQdHI8
SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7CiAgICAgdmlydHVhbCB2
b2lkIG9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0IGRp
cmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T2JqZWN0KFBhc3NSZWZQdHI8SURCS2V5
PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbktleUN1cnNvcihQYXNzUmVmUHRyPElEQktleVJh
bmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOwogICAgIHZpcnR1YWwgdm9pZCBnZXQo
UGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSopOworICAgIHZpcnR1YWwgdm9pZCBnZXRLZXkoUGFzc1JlZlB0
cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSopOwogCiAgICAgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3Rv
cmUoKSBjb25zdCB7IHJldHVybiBtX29iamVjdFN0b3JlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCBmYTM5NWEwLi43OThjYTM4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgKKysr
IGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4QmFja2VuZEludGVyZmFjZS5oCkBAIC00NywxMCAr
NDcsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGtleVBhdGgoKSA9IDA7CiAgICAg
dmlydHVhbCBib29sIHVuaXF1ZSgpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBvcGVuT2JqZWN0
Q3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24s
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBn
ZXRPYmplY3QoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb3Bl
bktleUN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0
aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KFBhc3NSZWZQdHI8SURCS2V5PiwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEtleShQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKikgPSAwOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDg1MWNhOC4uODZi
MDkwNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTAtMDktMzAgIEplcmVteSBP
cmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIGdldCogYW5kIG9wZW4qQ3Vyc29yIHBlciB0aGUg
c3BlYyBvbiBJREJJbmRleAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDY5MDYKKworICAgICAgICBUaGUgc3BlYyBjaGFuZ2VkIHNvIHRoYXQ6CisgICAg
ICAgIElEQkluZGV4LmdldCAtPiBnZXRLZXkKKyAgICAgICAgSURCSW5kZXguZ2V0T2JqZWN0IC0+
IGdldAorICAgICAgICBJREJJbmRleC5vcGVuQ3Vyc29yIC0+IG9wZW5LZXlDdXJzb3IKKyAgICAg
ICAgSURCSW5kZXgub3Blbk9iamVjdEN1cnNvciAtPiBvcGVuQ3Vyc29yCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViSURCSW5kZXguaDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXg6Om9wZW5D
dXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJJbmRleDo6b3BlbktleUN1cnNvcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4OjpnZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJJbmRleDo6Z2V0S2V5KToKKyAgICAgICAgKiBzcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kUHJveHk6Om9wZW5DdXJzb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kUHJveHk6Om9wZW5LZXlDdXJzb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kUHJveHk6OmdldCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJJbmRleEJhY2tlbmRQcm94eTo6Z2V0S2V5KToKKyAgICAgICAgKiBzcmMvSURC
SW5kZXhCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXhJbXBsOjpvcGVuT2JqZWN0Q3Vyc29yKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXhJbXBsOjpvcGVuS2V5Q3Vyc29yKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCSW5kZXhJbXBsOjpnZXRPYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJJbmRleEltcGw6OmdldEtleSk6CisgICAgICAgICogc3JjL1dlYklEQkluZGV4SW1wbC5o
OgorCiAyMDEwLTA5LTI5ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJJbmRleC5oCmluZGV4IGU1MmI0ODcuLjBkMTU0MWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCSW5kZXguaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YklEQkluZGV4LmgKQEAgLTYxLDEwICs2MSwyNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKKyAgICAvLyBGSVhNRTogb3Blbk9iamVjdEN1cnNvciAtPiBvcGVuQ3Vy
c29yIGFuZCBnZXRPYmplY3QgLT4gZ2V0LgogICAgIHZpcnR1YWwgdm9pZCBvcGVuT2JqZWN0Q3Vy
c29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJ
REJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYpIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoY29uc3QgV2ViSURC
S2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyosIGNv
bnN0IFdlYklEQlRyYW5zYWN0aW9uJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYgcmFuZ2Us
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNv
bnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKKyAgICB7CisgICAgICAgIG9wZW5L
ZXlDdXJzb3IocmFuZ2UsIGRpcmVjdGlvbiwgY2FsbGJhY2tzLCB0cmFuc2FjdGlvbik7CisgICAg
fQorICAgIHZpcnR1YWwgdm9pZCBvcGVuS2V5Q3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiBy
YW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNr
cywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQorICAgIHsKKyAgICAgICAg
b3BlbkN1cnNvcihyYW5nZSwgZGlyZWN0aW9uLCBjYWxsYmFja3MsIHRyYW5zYWN0aW9uKTsKKyAg
ICB9CiAgICAgdmlydHVhbCB2b2lkIGdldE9iamVjdChjb25zdCBXZWJJREJLZXkmLCBXZWJJREJD
YWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGdldChjb25zdCBXZWJJREJLZXkmLCBXZWJJ
REJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYpIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIGdldChjb25zdCBXZWJJREJLZXkmIHJh
bmdlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uKQorICAgIHsKKyAgICAgICAgZ2V0S2V5KHJhbmdlLCBjYWxsYmFja3MsIHRy
YW5zYWN0aW9uKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIGdldEtleShjb25zdCBXZWJJREJL
ZXkmIHJhbmdlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uKQorICAgIHsKKyAgICAgICAgZ2V0KHJhbmdlLCBjYWxsYmFja3Ms
IHRyYW5zYWN0aW9uKTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHAKaW5kZXggOGYyNmJmMS4u
NzEwZTQwOCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQ
cm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5j
cHAKQEAgLTczLDcgKzczLDcgQEAgYm9vbCBJREJJbmRleEJhY2tlbmRQcm94eTo6dW5pcXVlKCkK
ICAgICByZXR1cm4gbV93ZWJJREJJbmRleC0+dW5pcXVlKCk7CiB9CiAKLXZvaWQgSURCSW5kZXhC
YWNrZW5kUHJveHk6Om9wZW5PYmplY3RDdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbikK
K3ZvaWQgSURCSW5kZXhCYWNrZW5kUHJveHk6Om9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4ga2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFu
c2FjdGlvbikKIHsKICAgICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVk
IHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAog
ICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9i
amVjdHMuCkBAIC04MSwxNSArODEsMTUgQEAgdm9pZCBJREJJbmRleEJhY2tlbmRQcm94eTo6b3Bl
bk9iamVjdEN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgdW4KICAgICBt
X3dlYklEQkluZGV4LT5vcGVuT2JqZWN0Q3Vyc29yKGtleVJhbmdlLCBkaXJlY3Rpb24sIG5ldyBX
ZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJ
REJUcmFuc2FjdGlvbigpKTsKIH0KIAotdm9pZCBJREJJbmRleEJhY2tlbmRQcm94eTo6b3BlbkN1
cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGly
ZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKQordm9pZCBJREJJbmRleEJhY2tlbmRQcm94
eTo6b3BlbktleUN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgdW5zaWdu
ZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKQogewogICAgIC8vIFRo
ZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEg
cHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCiAgICAgLy8gYWxsIGltcGxlbWVudGF0
aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KICAgICBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5z
YWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCSW5kZXgtPm9w
ZW5DdXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2Fs
bGJhY2tzKSwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCkpOworICAg
IG1fd2ViSURCSW5kZXgtPm9wZW5LZXlDdXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgbmV3IFdl
YklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdlYklE
QlRyYW5zYWN0aW9uKCkpOwogfQogCi12b2lkIElEQkluZGV4QmFja2VuZFByb3h5OjpnZXRPYmpl
Y3QoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxi
YWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbikKK3ZvaWQg
SURCSW5kZXhCYWNrZW5kUHJveHk6OmdldChQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqIHRyYW5zYWN0aW9uKQogewogICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1
YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVu
ZGVyZXIsCiAgICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUg
cHJveHkgb2JqZWN0cy4KQEAgLTk3LDEyICs5NywxMiBAQCB2b2lkIElEQkluZGV4QmFja2VuZFBy
b3h5OjpnZXRPYmplY3QoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJDYWxs
YgogICAgIG1fd2ViSURCSW5kZXgtPmdldE9iamVjdChrZXksIG5ldyBXZWJJREJDYWxsYmFja3NJ
bXBsKGNhbGxiYWNrcyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigp
KTsKIH0KIAotdm9pZCBJREJJbmRleEJhY2tlbmRQcm94eTo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5
PiBrZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24pCit2b2lkIElEQkluZGV4QmFja2VuZFByb3h5
OjpnZXRLZXkoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbikK
IHsKICAgICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEg
cG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAogICAgIC8vIGFs
bCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCiAg
ICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNf
Y2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dl
YklEQkluZGV4LT5nZXQoa2V5LCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAq
dHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSk7CisgICAgbV93ZWJJREJJ
bmRleC0+Z2V0S2V5KGtleSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRy
YW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFj
a2VuZFByb3h5LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmgK
aW5kZXggMDMxZWQ0MC4uYTNmMjljZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJJbmRleEJhY2tlbmRQcm94eS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhC
YWNrZW5kUHJveHkuaApAQCAtNDYsMTAgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0
cmluZyBrZXlQYXRoKCk7CiAgICAgdmlydHVhbCBib29sIHVuaXF1ZSgpOwogCi0gICAgdmlydHVh
bCB2b2lkIG9wZW5PYmplY3RDdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihQYXNzUmVm
UHRyPElEQktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOwotICAgIHZpcnR1
YWwgdm9pZCBnZXRPYmplY3QoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOworICAgIHZpcnR1YWwgdm9p
ZCBvcGVuS2V5Q3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBk
aXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlKik7CiAgICAgdmlydHVhbCB2b2lkIGdldChQYXNzUmVmUHRyPElEQktleT4sIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7
CisgICAgdmlydHVhbCB2b2lkIGdldEtleShQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7CiAKIHByaXZh
dGU6CiAgICAgSURCSW5kZXhCYWNrZW5kUHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQklu
ZGV4Pik7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5j
cHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5jcHAKaW5kZXggODc5NTc3
OC4uNGY2NjNkMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleElt
cGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmNwcApAQCAt
NjgsMjQgKzY4LDI0IEBAIGJvb2wgV2ViSURCSW5kZXhJbXBsOjp1bmlxdWUoKSBjb25zdAogICAg
IHJldHVybiBtX2JhY2tlbmQtPnVuaXF1ZSgpOwogfQogCi12b2lkIFdlYklEQkluZGV4SW1wbDo6
b3BlbkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0
IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbikKK3ZvaWQgV2ViSURCSW5kZXhJbXBsOjpvcGVuT2JqZWN0Q3Vy
c29yKGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0
aW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uKQogewogICAgIG1fYmFja2VuZC0+b3BlbkN1cnNvcihrZXlSYW5nZSwgZGly
ZWN0aW9uLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcyksIHRyYW5zYWN0aW9u
LmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpKTsKIH0KIAotdm9pZCBXZWJJREJJ
bmRleEltcGw6Om9wZW5PYmplY3RDdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdl
LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBj
b25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit2b2lkIFdlYklEQkluZGV4SW1w
bDo6b3BlbktleUN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklE
QlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICBtX2JhY2tlbmQtPm9wZW5PYmplY3RD
dXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxs
YmFja3MpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSk7
CisgICAgbV9iYWNrZW5kLT5vcGVuS2V5Q3Vyc29yKGtleVJhbmdlLCBkaXJlY3Rpb24sIElEQkNh
bGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkpOwogfQogCiB2b2lkIFdlYklEQkluZGV4SW1wbDo6Z2V0
T2JqZWN0KGNvbnN0IFdlYklEQktleSYga2V5UmFuZ2UsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7Ci0gICAgbV9iYWNr
ZW5kLT5nZXRPYmplY3Qoa2V5UmFuZ2UsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJh
Y2tzKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkpOwor
ICAgIG1fYmFja2VuZC0+Z2V0KGtleVJhbmdlLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNh
bGxiYWNrcyksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgp
KTsKIH0KIAotdm9pZCBXZWJJREJJbmRleEltcGw6OmdldChjb25zdCBXZWJJREJLZXkmIGtleVJh
bmdlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uKQordm9pZCBXZWJJREJJbmRleEltcGw6OmdldEtleShjb25zdCBXZWJJREJL
ZXkmIGtleVJhbmdlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJh
bnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewotICAgIG1fYmFja2VuZC0+Z2V0KGtleVJhbmdlLCBJ
REJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcyksIHRyYW5zYWN0aW9uLmdldElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpKTsKKyAgICBtX2JhY2tlbmQtPmdldEtleShrZXlS
YW5nZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpLCB0cmFuc2FjdGlvbi5n
ZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBs
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5oCmluZGV4IGNiMmVmYzcu
LmU4MjAzZjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBs
LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaApAQCAtNDcsOSAr
NDcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHVuaXF1ZSgpIGNvbnN0OwogCiAgICAg
dmlydHVhbCB2b2lkIG9wZW5PYmplY3RDdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJik7IAotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGNvbnN0IFdlYklEQktleVJh
bmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBX
ZWJJREJUcmFuc2FjdGlvbiYpOworICAgIHZpcnR1YWwgdm9pZCBvcGVuS2V5Q3Vyc29yKGNvbnN0
IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFj
a3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRPYmpl
Y3QoY29uc3QgV2ViSURCS2V5JiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNh
Y3Rpb24mKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0KGNvbnN0IFdlYklEQktleSYsIFdlYklEQkNh
bGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJik7CisgICAgdmlydHVhbCB2b2lkIGdl
dEtleShjb25zdCBXZWJJREJLZXkmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFu
c2FjdGlvbiYpOwogCiBwcml2YXRlOgogICAgIFdURjo6UmVmUHRyPFdlYkNvcmU6OklEQkluZGV4
QmFja2VuZEludGVyZmFjZT4gbV9iYWNrZW5kOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69684</attachid>
            <date>2010-10-04 14:38:17 -0700</date>
            <delta_ts>2010-10-04 14:43:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46906-20101004143816.patch</filename>
            <type>text/plain</type>
            <size>30106</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MjcyNDM4NjE4OGFmNTEwOTNhOGUxMGZkOTNjMmM5NWE1MzcxMTZiLi4zZTdkYjI0
NWFkODUzOWM0OGQ2ODcwMzkyZTAyOTZkMzRmOTE0Y2EwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMTAtMDQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIGdldCogYW5k
IG9wZW4qQ3Vyc29yIHBlciB0aGUgc3BlYyBvbiBJREJJbmRleAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY5MDYKKworICAgICAgICBUaGUgc3BlYyBj
aGFuZ2VkIHNvIHRoYXQ6CisgICAgICAgIElEQkluZGV4LmdldCAtPiBnZXRLZXkKKyAgICAgICAg
SURCSW5kZXguZ2V0T2JqZWN0IC0+IGdldAorICAgICAgICBJREJJbmRleC5vcGVuQ3Vyc29yIC0+
IG9wZW5LZXlDdXJzb3IKKyAgICAgICAgSURCSW5kZXgub3Blbk9iamVjdEN1cnNvciAtPiBvcGVu
Q3Vyc29yCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3MtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWJhc2ljcy5odG1sOgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1sOgorCiAyMDEwLTEw
LTA0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pbmRleC1iYXNpY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvaW5kZXgtYmFzaWNzLWV4cGVjdGVkLnR4dAppbmRleCBkOGQ2ZGNjNTdiYTAyZWMyYmIw
YjM4NjliNDgyM2RiYzI4MWZjOWExLi44YjAwODNkOWJkNGFhYWY0NzM4YjUxZDIwZTg0NTg1NzQ1
ZmFhYjIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1i
YXNpY3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lu
ZGV4LWJhc2ljcy1leHBlY3RlZC50eHQKQEAgLTg2LDkgKzg2LDkgQEAgUEFTUyAna2V5UGF0aCcg
aW4gaW5kZXhPYmplY3QgaXMgdHJ1ZQogUEFTUyBpbmRleE9iamVjdC5rZXlQYXRoIGlzICJ4Igog
UEFTUyAndW5pcXVlJyBpbiBpbmRleE9iamVjdCBpcyB0cnVlCiBQQVNTIGluZGV4T2JqZWN0LnVu
aXF1ZSBpcyBmYWxzZQotUEFTUyAnb3Blbk9iamVjdEN1cnNvcicgaW4gaW5kZXhPYmplY3QgaXMg
dHJ1ZQorUEFTUyAnb3BlbktleUN1cnNvcicgaW4gaW5kZXhPYmplY3QgaXMgdHJ1ZQogUEFTUyAn
b3BlbkN1cnNvcicgaW4gaW5kZXhPYmplY3QgaXMgdHJ1ZQotUEFTUyAnZ2V0T2JqZWN0JyBpbiBp
bmRleE9iamVjdCBpcyB0cnVlCitQQVNTICdnZXRLZXknIGluIGluZGV4T2JqZWN0IGlzIHRydWUK
IFBBU1MgJ2dldCcgaW4gaW5kZXhPYmplY3QgaXMgdHJ1ZQogZXZlbnQuc291cmNlLmFkZCh7eDog
J3ZhbHVlJywgeTogJ3p6eid9LCAna2V5JykKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlz
IHRydWUKQEAgLTEyNCw3ICsxMjQsNyBAQCBQQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQg
aXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1Mg
ZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKIAotaW5kZXhPYmpl
Y3QuZ2V0KCd2YWx1ZScpCitpbmRleE9iamVjdC5nZXRLZXkoJ3ZhbHVlJykKIFBBU1MgJ29uc3Vj
Y2VzcycgaW4gcmVzdWx0IGlzIHRydWUKIFBBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVl
CiBQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQpAQCAtMTQyLDcgKzE0Miw3IEBA
IFBBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCiBQQVNTIGV2ZW50LnRh
cmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCiAKIFBBU1MgZXZlbnQucmVzdWx0
IGlzICJrZXkiCi1pbmRleE9iamVjdC5nZXRPYmplY3QoJ3ZhbHVlJykKK2luZGV4T2JqZWN0Lmdl
dCgndmFsdWUnKQogUEFTUyAnb25zdWNjZXNzJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAnb25l
cnJvcicgaW4gcmVzdWx0IGlzIHRydWUKIFBBU1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0
cnVlCkBAIC0xNjEsNyArMTYxLDcgQEAgUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBl
dmVudC50YXJnZXQuRE9ORQogCiBQQVNTIGV2ZW50LnJlc3VsdC54IGlzICJ2YWx1ZSIKIFBBU1Mg
ZXZlbnQucmVzdWx0LnkgaXMgInp6eiIKLWluZGV4T2JqZWN0LmdldCgnZG9lcyBub3QgZXhpc3Qn
KQoraW5kZXhPYmplY3QuZ2V0S2V5KCdkb2VzIG5vdCBleGlzdCcpCiBQQVNTICdvbnN1Y2Nlc3Mn
IGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFT
UyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKQEAgLTE3OSw3ICsxNzksNyBAQCBQQVNT
ICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQogUEFTUyBldmVudC50YXJnZXQu
cmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQogCiBQQVNTIGV2ZW50LmNvZGUgaXMgSURC
RGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUgotaW5kZXhPYmplY3QuZ2V0T2JqZWN0KCdk
b2VzIG5vdCBleGlzdCcpCitpbmRleE9iamVjdC5nZXQoJ2RvZXMgbm90IGV4aXN0JykKIFBBU1Mg
J29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKIFBBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBp
cyB0cnVlCiBQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQpAQCAtMTk3LDcgKzE5
Nyw3IEBAIFBBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCiBQQVNTIGV2
ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCiAKIFBBU1MgZXZlbnQu
Y29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSCi1pbmRleE9iamVjdC5v
cGVuQ3Vyc29yKCkKK2luZGV4T2JqZWN0Lm9wZW5LZXlDdXJzb3IoKQogUEFTUyAnb25zdWNjZXNz
JyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAnb25lcnJvcicgaW4gcmVzdWx0IGlzIHRydWUKIFBB
U1MgJ3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCkBAIC0yNTUsNyArMjU1LDcgQEAgUEFT
UyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1MgZXZlbnQudGFyZ2V0
LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKIAogUEFTUyBldmVudC5yZXN1bHQgPT09
IG51bGwgaXMgdHJ1ZQotaW5kZXhPYmplY3Qub3Blbk9iamVjdEN1cnNvcigpCitpbmRleE9iamVj
dC5vcGVuQ3Vyc29yKCkKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKIFBBU1Mg
J29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQg
aXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgt
YmFzaWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3Mu
aHRtbAppbmRleCAzYzhhNjAxZTM1OWEzODBmMTMwNDJlNjE4NWE0MWI4YWEwNjE2NzMwLi43MmI1
OGQ0ZGM3YmY2MDA2ZDNjYTU2ZjZiOGRhMDE1NDE3MmRiMDU0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3MuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC1iYXNpY3MuaHRtbApAQCAtNzYsOSArNzYsOSBAQCBm
dW5jdGlvbiBhZGREYXRhKCkKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImluZGV4T2JqZWN0
LmtleVBhdGgiLCAieCIpOwogICAgIHNob3VsZEJlVHJ1ZSgiJ3VuaXF1ZScgaW4gaW5kZXhPYmpl
Y3QiKTsKICAgICBzaG91bGRCZUZhbHNlKCJpbmRleE9iamVjdC51bmlxdWUiKTsKLSAgICBzaG91
bGRCZVRydWUoIidvcGVuT2JqZWN0Q3Vyc29yJyBpbiBpbmRleE9iamVjdCIpOworICAgIHNob3Vs
ZEJlVHJ1ZSgiJ29wZW5LZXlDdXJzb3InIGluIGluZGV4T2JqZWN0Iik7CiAgICAgc2hvdWxkQmVU
cnVlKCInb3BlbkN1cnNvcicgaW4gaW5kZXhPYmplY3QiKTsKLSAgICBzaG91bGRCZVRydWUoIidn
ZXRPYmplY3QnIGluIGluZGV4T2JqZWN0Iik7CisgICAgc2hvdWxkQmVUcnVlKCInZ2V0S2V5JyBp
biBpbmRleE9iamVjdCIpOwogICAgIHNob3VsZEJlVHJ1ZSgiJ2dldCcgaW4gaW5kZXhPYmplY3Qi
KTsKIAogICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImV2ZW50LnNvdXJjZS5hZGQoe3g6ICd2YWx1
ZScsIHk6ICd6enonfSwgJ2tleScpIik7CkBAIC0xMDEsNyArMTAxLDcgQEAgZnVuY3Rpb24gZ2V0
RGF0YSgpCiB7CiAgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50KTsKIAotICAgIHJlc3VsdCA9
IGV2YWxBbmRMb2coImluZGV4T2JqZWN0LmdldCgndmFsdWUnKSIpOworICAgIHJlc3VsdCA9IGV2
YWxBbmRMb2coImluZGV4T2JqZWN0LmdldEtleSgndmFsdWUnKSIpOwogICAgIHZlcmlmeVJlc3Vs
dChyZXN1bHQpOwogICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBnZXRPYmplY3REYXRhOwogICAgIHJl
c3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CkBAIC0xMTIsNyArMTEyLDcg
QEAgZnVuY3Rpb24gZ2V0T2JqZWN0RGF0YSgpCiAgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50
KTsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnJlc3VsdCIsICJrZXkiKTsKIAot
ICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4T2JqZWN0LmdldE9iamVjdCgndmFsdWUnKSIp
OworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4T2JqZWN0LmdldCgndmFsdWUnKSIpOwog
ICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOwogICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBnZXREYXRh
RmFpbDsKICAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwpAQCAt
MTI0LDcgKzEyNCw3IEBAIGZ1bmN0aW9uIGdldERhdGFGYWlsKCkKICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImV2ZW50LnJlc3VsdC54IiwgInZhbHVlIik7CiAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJldmVudC5yZXN1bHQueSIsICJ6enoiKTsKIAotICAgIHJlc3VsdCA9IGV2YWxBbmRM
b2coImluZGV4T2JqZWN0LmdldCgnZG9lcyBub3QgZXhpc3QnKSIpOworICAgIHJlc3VsdCA9IGV2
YWxBbmRMb2coImluZGV4T2JqZWN0LmdldEtleSgnZG9lcyBub3QgZXhpc3QnKSIpOwogICAgIHZl
cmlmeVJlc3VsdChyZXN1bHQpOwogICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3Vj
Y2Vzc0NhbGxiYWNrOwogICAgIHJlc3VsdC5vbmVycm9yID0gZ2V0T2JqZWN0RGF0YUZhaWw7CkBA
IC0xMzUsMTggKzEzNSwxOCBAQCBmdW5jdGlvbiBnZXRPYmplY3REYXRhRmFpbCgpCiAgICAgdmVy
aWZ5RXJyb3JFdmVudChldmVudCk7CiAgICAgc2hvdWxkQmUoImV2ZW50LmNvZGUiLCAiSURCRGF0
YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiIpOwogCi0gICAgcmVzdWx0ID0gZXZhbEFuZExv
ZygiaW5kZXhPYmplY3QuZ2V0T2JqZWN0KCdkb2VzIG5vdCBleGlzdCcpIik7CisgICAgcmVzdWx0
ID0gZXZhbEFuZExvZygiaW5kZXhPYmplY3QuZ2V0KCdkb2VzIG5vdCBleGlzdCcpIik7CiAgICAg
dmVyaWZ5UmVzdWx0KHJlc3VsdCk7CiAgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRT
dWNjZXNzQ2FsbGJhY2s7Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSBvcGVuQ3Vyc29yOworICAgIHJl
c3VsdC5vbmVycm9yID0gb3BlbktleUN1cnNvcjsKIH0KIAotZnVuY3Rpb24gb3BlbkN1cnNvcigp
CitmdW5jdGlvbiBvcGVuS2V5Q3Vyc29yKCkKIHsKICAgICB2ZXJpZnlFcnJvckV2ZW50KGV2ZW50
KTsKICAgICBzaG91bGRCZSgiZXZlbnQuY29kZSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1Rf
Rk9VTkRfRVJSIik7CiAKLSAgICB3aW5kb3cucmVzdWx0ID0gZXZhbEFuZExvZygiaW5kZXhPYmpl
Y3Qub3BlbkN1cnNvcigpIik7CisgICAgd2luZG93LnJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4
T2JqZWN0Lm9wZW5LZXlDdXJzb3IoKSIpOwogICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOwogICAg
IHJlc3VsdC5vbnN1Y2Nlc3MgPSBjdXJzb3IxQ29udGludWU7CiAgICAgcmVzdWx0Lm9uZXJyb3Ig
PSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKQEAgLTE4Myw3ICsxODMsNyBAQCBmdW5jdGlvbiBv
cGVuT2JqZWN0Q3Vyc29yKCkKICAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOwogICAgIHNo
b3VsZEJlVHJ1ZSgiZXZlbnQucmVzdWx0ID09PSBudWxsIik7CiAKLSAgICB3aW5kb3cucmVzdWx0
ID0gZXZhbEFuZExvZygiaW5kZXhPYmplY3Qub3Blbk9iamVjdEN1cnNvcigpIik7CisgICAgd2lu
ZG93LnJlc3VsdCA9IGV2YWxBbmRMb2coImluZGV4T2JqZWN0Lm9wZW5DdXJzb3IoKSIpOwogICAg
IHZlcmlmeVJlc3VsdChyZXN1bHQpOwogICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBjdXJzb3IyQ29u
dGludWU7CiAgICAgcmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWN1cnNvci5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtY3Vyc29yLmh0bWwKaW5kZXgg
NjZiNmRjNjMwMTVjM2Q0Y2E2MjdhOWYxZjcxOTc4ZDQ1ODc4YzQ1Yi4uNDIxOWQ2N2NiNjJhOWQ0
MDAzYmJmYzhiYTU5NTcxNTcyOTkyNDZiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvaW5kZXgtY3Vyc29yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvaW5kZXgtY3Vyc29yLmh0bWwKQEAgLTIwNiw3ICsyMDYsNyBAQCBmdW5jdGlvbiBy
dW5OZXh0VGVzdCgpCiAgICAgZWxzZQogICAgICAgICBrZXlSYW5nZSA9IElEQktleVJhbmdlLnJp
Z2h0Qm91bmQodGVzdERhdGFbdXBwZXJdLCB1cHBlcklzT3Blbik7CiAgCi0gICAgdmFyIHJlcXVl
c3QgPSBpbmRleE9iamVjdC5vcGVuQ3Vyc29yKGtleVJhbmdlLCBhc2NlbmRpbmcgPyBJREJDdXJz
b3IuTkVYVCA6IElEQkN1cnNvci5QUkVWKTsKKyAgICB2YXIgcmVxdWVzdCA9IGluZGV4T2JqZWN0
Lm9wZW5LZXlDdXJzb3Ioa2V5UmFuZ2UsIGFzY2VuZGluZyA/IElEQkN1cnNvci5ORVhUIDogSURC
Q3Vyc29yLlBSRVYpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gY3Vyc29ySXRlcmF0aW9uOwog
ICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZDM5MGZk
ODczOWEzOWIxZTFlMDQxYTFlOTM2ODA1MWEzN2FmMDRhLi5mMGViZTQ1NDU1ZTA5YWQ1MmJmYWE3
YzI4NWI0NDU5MTgyNThiNDgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEwLTEwLTA0ICBKZXJlbXkgT3Js
b3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbmFtZSBnZXQqIGFuZCBvcGVuKkN1cnNvciBwZXIgdGhlIHNw
ZWMgb24gSURCSW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2OTA2CisKKyAgICAgICAgVGhlIHNwZWMgY2hhbmdlZCBzbyB0aGF0OgorICAgICAg
ICBJREJJbmRleC5nZXQgLT4gZ2V0S2V5CisgICAgICAgIElEQkluZGV4LmdldE9iamVjdCAtPiBn
ZXQKKyAgICAgICAgSURCSW5kZXgub3BlbkN1cnNvciAtPiBvcGVuS2V5Q3Vyc29yCisgICAgICAg
IElEQkluZGV4Lm9wZW5PYmplY3RDdXJzb3IgLT4gb3BlbkN1cnNvcgorCisgICAgICAgIEV4aXN0
aW5nIHRlc3RzIGNvdmVyIHNpbmNlIHRoaXMgaXMganVzdCByZW5hbWluZyBzdHVmZi4KKworICAg
ICAgICAqIHN0b3JhZ2UvSURCSW5kZXguY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXg6
Om9wZW5DdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXg6Om9wZW5LZXlDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXg6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJJbmRleDo6Z2V0S2V5KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkluZGV4Lmg6CisgICAgICAg
ICogc3RvcmFnZS9JREJJbmRleC5pZGw6CisgICAgICAgICogc3RvcmFnZS9JREJJbmRleEJhY2tl
bmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4QmFja2VuZEltcGw6Om9wZW5D
dXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6b3BlbktleUN1
cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbXBsOjpnZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW1wbDo6Z2V0S2V5KToKKyAgICAgICAgKiBz
dG9yYWdlL0lEQkluZGV4QmFja2VuZEltcGwuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkluZGV4
QmFja2VuZEludGVyZmFjZS5oOgorCiAyMDEwLTEwLTA0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQklu
ZGV4LmNwcAppbmRleCA4ZDc4NDY2NjM5N2IzYzhlYzkwYWNiN2I0NGZlMmYxNGE0OGNiZDkyLi5i
YWFlZjBhNjlmNmNhMjU2MGUyYzJhMzlmYzQ2NWViZWNjMDU2ZWJjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3N0b3JhZ2UvSURCSW5kZXguY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleC5j
cHAKQEAgLTQ5LDMxICs0OSwzMSBAQCBJREJJbmRleDo6fklEQkluZGV4KCkKIHsKIH0KIAotUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3Blbk9iamVjdEN1cnNvcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwg
dW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRl
eDo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uKQogewogICAg
IFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQs
IElEQkFueTo6Y3JlYXRlKHRoaXMpLCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKLSAgICBtX2JhY2tl
bmQtPm9wZW5PYmplY3RDdXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgcmVxdWVzdCwgbV90cmFu
c2FjdGlvbi5nZXQoKSk7CisgICAgbV9iYWNrZW5kLT5vcGVuQ3Vyc29yKGtleVJhbmdlLCBkaXJl
Y3Rpb24sIHJlcXVlc3QsIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwogICAgIHJldHVybiByZXF1ZXN0
OwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuQ3Vyc29yKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJh
bmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
QkluZGV4OjpvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24p
CiB7CiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUo
Y29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwotICAg
IG1fYmFja2VuZC0+b3BlbkN1cnNvcihrZXlSYW5nZSwgZGlyZWN0aW9uLCByZXF1ZXN0LCBtX3Ry
YW5zYWN0aW9uLmdldCgpKTsKKyAgICBtX2JhY2tlbmQtPm9wZW5LZXlDdXJzb3Ioa2V5UmFuZ2Us
IGRpcmVjdGlvbiwgcmVxdWVzdCwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgcmV0dXJuIHJl
cXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6OmdldE9iamVjdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQor
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCiB7CiAgICAgUmVmUHRyPElEQlJl
cXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVh
dGUodGhpcyksIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwotICAgIG1fYmFja2VuZC0+Z2V0T2JqZWN0
KGtleSwgcmVxdWVzdCwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CisgICAgbV9iYWNrZW5kLT5nZXQo
a2V5LCByZXF1ZXN0LCBtX3RyYW5zYWN0aW9uLmdldCgpKTsKICAgICByZXR1cm4gcmVxdWVzdDsK
IH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6Z2V0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCitQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQkluZGV4OjpnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKIHsKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVx
dWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwg
bV90cmFuc2FjdGlvbi5nZXQoKSk7Ci0gICAgbV9iYWNrZW5kLT5nZXQoa2V5LCByZXF1ZXN0LCBt
X3RyYW5zYWN0aW9uLmdldCgpKTsKKyAgICBtX2JhY2tlbmQtPmdldEtleShrZXksIHJlcXVlc3Qs
IG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRl
eC5oCmluZGV4IGIyNTgwNzcxNzdjN2Y1YTA3YWNmMWUwZjQ5ZTFiZjIzODhiZGRiNDkuLmFlMzlj
MTM5OTU3NTQ4MzBhMTA4NTRmZmMzMjkyNzJkMGI5ZTk0YmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
c3RvcmFnZS9JREJJbmRleC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleC5oCkBAIC00
OSwxMCArNDksMTAgQEAgcHVibGljOgogICAgIFN0cmluZyBrZXlQYXRoKCkgY29uc3QgeyByZXR1
cm4gbV9iYWNrZW5kLT5rZXlQYXRoKCk7IH0KICAgICBib29sIHVuaXF1ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fYmFja2VuZC0+dW5pcXVlKCk7IH0KIAotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
b3Blbk9iamVjdEN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJL
ZXlSYW5nZT4gPSAwLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24gPSBJREJDdXJzb3I6Ok5FWFQp
OwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gPSAwLCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24gPSBJREJDdXJzb3I6Ok5FWFQpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0
T2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4pOworICAg
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gPSAwLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rp
b24gPSBJREJDdXJzb3I6Ok5FWFQpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4pOworICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gZ2V0S2V5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PElEQktleT4pOwogCiBwcml2YXRlOgogICAgIElEQkluZGV4KFBhc3NSZWZQdHI8SURCSW5kZXhC
YWNrZW5kSW50ZXJmYWNlPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2Fj
dGlvbik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaWRsIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQkluZGV4LmlkbAppbmRleCBiYTNlY2VhNDQ2NDQ3YjJkMjkyODY3OWY3OTgy
YTQ4ZGViNzNlMWE1Li5iMDU0OGFlYjRiMDM2Y2M0NDE4M2I5OWI4OWZmMmM1YmQ4NGE0NTNkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaWRsCisrKyBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJJbmRleC5pZGwKQEAgLTM0LDEwICszNCwxMCBAQCBtb2R1bGUgc3RvcmFnZSB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHVuaXF1ZTsKIAogICAgICAgICAvLyBG
SVhNRTogQWxsIG9mIHRoZXNlIHNob3VsZCByYWlzZSBvbiBjZXJ0YWluIGVycm9ycy4KLSAgICAg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3Blbk9iamVj
dEN1cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlIHJhbmdlLCBpbiBbT3B0aW9uYWxdIHVu
c2lnbmVkIHNob3J0IGRpcmVjdGlvbik7CiAgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5n
ZSByYW5nZSwgaW4gW09wdGlvbmFsXSB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pOwotICAgICAg
ICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBnZXRPYmplY3Qo
aW4gSURCS2V5IGtleSk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSBJREJSZXF1ZXN0IG9wZW5LZXlDdXJzb3IoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZSByYW5n
ZSwgaW4gW09wdGlvbmFsXSB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24pOwogICAgICAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBnZXQoaW4gSURCS2V5IGtl
eSk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0
IGdldEtleShpbiBJREJLZXkga2V5KTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5k
ZXhCYWNrZW5kSW1wbC5jcHAKaW5kZXggMThlMjRiMjA5ZGM3MGJkYmQ0ZDE1ZGZmYjYxZDIxNTVi
NGVjMGQ1Ny4uY2EyYWZmYWFhODk1OWFlYmRkZjk0M2VmYmY4NzlkMTllZGY1YTkxMCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4QmFja2VuZEltcGwuY3BwCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbXBsLmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHZv
aWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6b3BlbkN1cnNvckludGVybmFsKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyCiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJl
bGVhc2UoKSk7CiB9CiAKLXZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6b3Blbk9iamVjdEN1cnNv
cihQYXNzUmVmUHRyPElEQktleVJhbmdlPiBwcnBLZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGly
ZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uUHRyKQordm9pZCBJREJJbmRleEJhY2tl
bmRJbXBsOjpvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHBycEtleVJhbmdlLCB1
bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxs
YmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb25QdHIpCiB7
CiAgICAgUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4ID0gdGhpczsKICAgICBSZWZQ
dHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlID0gcHJwS2V5UmFuZ2U7CkBAIC0xMTEsNyArMTExLDcg
QEAgdm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpvcGVuT2JqZWN0Q3Vyc29yKFBhc3NSZWZQdHI8
SURCS2V5UmFuZ2U+IHBycEtleVJhbmdlLAogICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURC
RGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpOT1RfQUxMT1dFRF9F
UlIsICJHZXQgbXVzdCBiZSBjYWxsZWQgaW4gdGhlIGNvbnRleHQgb2YgYSB0cmFuc2FjdGlvbi4i
KSk7CiB9CiAKLXZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6b3BlbkN1cnNvcihQYXNzUmVmUHRy
PElEQktleVJhbmdlPiBwcnBLZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UqIHRyYW5zYWN0aW9uUHRyKQordm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpvcGVu
S2V5Q3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHBycEtleVJhbmdlLCB1bnNpZ25lZCBz
aG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb25QdHIpCiB7CiAgICAgUmVm
UHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4ID0gdGhpczsKICAgICBSZWZQdHI8SURCS2V5
UmFuZ2U+IGtleVJhbmdlID0gcHJwS2V5UmFuZ2U7CkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBJ
REJJbmRleEJhY2tlbmRJbXBsOjpnZXRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxJREJJbmQKICAgICBBU1NFUlQocXVlcnkuc3RlcCgpICE9IFNRTFJlc3VsdFJv
dyk7CiB9CiAKLXZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6Z2V0T2JqZWN0KFBhc3NSZWZQdHI8
SURCS2V5PiBwcnBLZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24pCit2b2lkIElEQkluZGV4
QmFja2VuZEltcGw6OmdldChQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uq
IHRyYW5zYWN0aW9uKQogewogICAgIFJlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiBpbmRleCA9
IHRoaXM7CiAgICAgUmVmUHRyPElEQktleT4ga2V5ID0gcHJwS2V5OwpAQCAtMTU1LDcgKzE1NSw3
IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6Z2V0T2JqZWN0KFBhc3NSZWZQdHI8SURCS2V5
PiBwcnBLZXksIFBhc3NSZWZQdHI8SURCQ2FsCiAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJ
REJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PVF9BTExPV0VE
X0VSUiwgIkdldCBtdXN0IGJlIGNhbGxlZCBpbiB0aGUgY29udGV4dCBvZiBhIHRyYW5zYWN0aW9u
LiIpKTsKIH0KIAotdm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpnZXQoUGFzc1JlZlB0cjxJREJL
ZXk+IHBycEtleSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbikKK3ZvaWQgSURCSW5kZXhCYWNr
ZW5kSW1wbDo6Z2V0S2V5KFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSog
dHJhbnNhY3Rpb24pCiB7CiAgICAgUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4ID0g
dGhpczsKICAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBwcnBLZXk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQklu
ZGV4QmFja2VuZEltcGwuaAppbmRleCAyZDA2YzY5N2VjOThhOGUxOGU3ZWZlZjlhOWE3ZDE4YTQ4
OTQ0NjI0Li44ZDU2MTI2NjM4OTMzMWRmMzk5NDZlNGZkZmEyNmEyMGJmZDM2ZDdjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW1wbC5oCisrKyBiL1dlYkNvcmUv
c3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbXBsLmgKQEAgLTU0LDEwICs1NCwxMCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBTdHJpbmcga2V5UGF0aCgpIHsgcmV0dXJuIG1fa2V5UGF0aDsgfQogICAg
IHZpcnR1YWwgYm9vbCB1bmlxdWUoKSB7IHJldHVybiBtX3VuaXF1ZTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIG9wZW5PYmplY3RDdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihQYXNzUmVm
UHRyPElEQktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOwotICAgIHZpcnR1
YWwgdm9pZCBnZXRPYmplY3QoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOworICAgIHZpcnR1YWwgdm9p
ZCBvcGVuS2V5Q3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBk
aXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlKik7CiAgICAgdmlydHVhbCB2b2lkIGdldChQYXNzUmVmUHRyPElEQktleT4sIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7
CisgICAgdmlydHVhbCB2b2lkIGdldEtleShQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7CiAKICAgICBJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZSgpIGNvbnN0IHsgcmV0dXJuIG1f
b2JqZWN0U3RvcmUuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQklu
ZGV4QmFja2VuZEludGVyZmFjZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4QmFja2VuZElu
dGVyZmFjZS5oCmluZGV4IGZhMzk1YTA0YTIxYmFkMGU5ZTUwZjdkMTI4MmRhMWQyMGI1MGVjOTMu
Ljc5OGNhMzg5Yzk1ODczOTA3Yjg2MjI2YTAxNjRmOWUyOGVkMDcyOGUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTQ3LDEwICs0NywxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBTdHJpbmcga2V5UGF0aCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
dW5pcXVlKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIG9wZW5PYmplY3RDdXJzb3IoUGFzc1Jl
ZlB0cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldE9iamVjdChQYXNz
UmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvcGVuS2V5Q3Vyc29yKFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBnZXQoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0S2V5KFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqKSA9IDA7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0NDAyMjkzYWNiZjhiMzZjM2UyZmJmYWE5
Njc5ZGRhNDg1YTIwYzVmLi4yYzJkNWRlZGM4ZDllZmE2YTcwZDViZWNmY2UzNDhiMjQ4NjVkM2I4
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMC0xMC0wNCAgSmVyZW15IE9ybG93
ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW5hbWUgZ2V0KiBhbmQgb3BlbipDdXJzb3IgcGVyIHRoZSBzcGVj
IG9uIElEQkluZGV4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NjkwNgorCisgICAgICAgIFRoZSBzcGVjIGNoYW5nZWQgc28gdGhhdDoKKyAgICAgICAg
SURCSW5kZXguZ2V0IC0+IGdldEtleQorICAgICAgICBJREJJbmRleC5nZXRPYmplY3QgLT4gZ2V0
CisgICAgICAgIElEQkluZGV4Lm9wZW5DdXJzb3IgLT4gb3BlbktleUN1cnNvcgorICAgICAgICBJ
REJJbmRleC5vcGVuT2JqZWN0Q3Vyc29yIC0+IG9wZW5DdXJzb3IKKworICAgICAgICAqIHB1Ymxp
Yy9XZWJJREJJbmRleC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJJbmRleDo6b3BlbkN1cnNv
cik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4OjpvcGVuS2V5Q3Vyc29yKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCSW5kZXg6OmdldCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQklu
ZGV4OjpnZXRLZXkpOgorICAgICAgICAqIHNyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRQcm94eTo6b3BlbkN1cnNvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRQcm94eTo6b3BlbktleUN1cnNvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRQcm94eTo6Z2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkluZGV4QmFja2VuZFByb3h5OjpnZXRLZXkpOgorICAgICAgICAqIHNyYy9JREJJbmRl
eEJhY2tlbmRQcm94eS5oOgorICAgICAgICAqIHNyYy9XZWJJREJJbmRleEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJJbmRleEltcGw6Om9wZW5PYmplY3RDdXJzb3IpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJJbmRleEltcGw6Om9wZW5LZXlDdXJzb3IpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJJbmRleEltcGw6OmdldE9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkluZGV4SW1wbDo6Z2V0S2V5KToKKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJbXBsLmg6CisK
IDIwMTAtMTAtMDEgIFZpY3RvcmlhIEtpcnN0ICA8dnJrQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklEQkluZGV4LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkluZGV4
LmgKaW5kZXggZTUyYjQ4NzBmZmQ3ODlhZTNmNDNmMzg2NjA0ZmY2NjNmNTVhNTI4ZS4uMGQxNTQx
YzcxMWNhZTNmMmQyMzE0NmI3NzliM2RmY2VjMjhkOGMzZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCSW5kZXguaApAQCAtNjEsMTAgKzYxLDI1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiBvcGVuT2JqZWN0Q3Vyc29yIC0+IG9wZW5D
dXJzb3IgYW5kIGdldE9iamVjdCAtPiBnZXQuCiAgICAgdmlydHVhbCB2b2lkIG9wZW5PYmplY3RD
dXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdl
YklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJikgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihjb25zdCBXZWJJ
REJLZXlSYW5nZSYsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiwg
Y29uc3QgV2ViSURCVHJhbnNhY3Rpb24mKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiByYW5n
ZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywg
Y29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQorICAgIHsKKyAgICAgICAgb3Bl
bktleUN1cnNvcihyYW5nZSwgZGlyZWN0aW9uLCBjYWxsYmFja3MsIHRyYW5zYWN0aW9uKTsKKyAg
ICB9CisgICAgdmlydHVhbCB2b2lkIG9wZW5LZXlDdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2Um
IHJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCisgICAgeworICAgICAg
ICBvcGVuQ3Vyc29yKHJhbmdlLCBkaXJlY3Rpb24sIGNhbGxiYWNrcywgdHJhbnNhY3Rpb24pOwor
ICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0T2JqZWN0KGNvbnN0IFdlYklEQktleSYsIFdlYklE
QkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJikgeyBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0KGNvbnN0IFdlYklEQktleSYsIFdl
YklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJikgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0KGNvbnN0IFdlYklEQktleSYg
cmFuZ2UsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlv
biYgdHJhbnNhY3Rpb24pCisgICAgeworICAgICAgICBnZXRLZXkocmFuZ2UsIGNhbGxiYWNrcywg
dHJhbnNhY3Rpb24pOworICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgZ2V0S2V5KGNvbnN0IFdlYklE
QktleSYgcmFuZ2UsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJJREJUcmFu
c2FjdGlvbiYgdHJhbnNhY3Rpb24pCisgICAgeworICAgICAgICBnZXQocmFuZ2UsIGNhbGxiYWNr
cywgdHJhbnNhY3Rpb24pOworICAgIH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHAgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmNwcAppbmRleCA4ZjI2YmYx
OTdlMzlkN2M4ODc4ZjBiMDYwOWVhYTRiNDg4M2ZkMzE1Li43MTBlNDA4YmJhOTNiODZmOTMwY2Nm
NmM0OTQwOGJhOWE4NmM2Y2RjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQklu
ZGV4QmFja2VuZFByb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFj
a2VuZFByb3h5LmNwcApAQCAtNzMsNyArNzMsNyBAQCBib29sIElEQkluZGV4QmFja2VuZFByb3h5
Ojp1bmlxdWUoKQogICAgIHJldHVybiBtX3dlYklEQkluZGV4LT51bmlxdWUoKTsKIH0KIAotdm9p
ZCBJREJJbmRleEJhY2tlbmRQcm94eTo6b3Blbk9iamVjdEN1cnNvcihQYXNzUmVmUHRyPElEQktl
eVJhbmdlPiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRy
YW5zYWN0aW9uKQordm9pZCBJREJJbmRleEJhY2tlbmRQcm94eTo6b3BlbkN1cnNvcihQYXNzUmVm
UHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqIHRyYW5zYWN0aW9uKQogewogICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlz
IGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUg
cmVuZGVyZXIsCiAgICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBh
cmUgcHJveHkgb2JqZWN0cy4KQEAgLTgxLDE1ICs4MSwxNSBAQCB2b2lkIElEQkluZGV4QmFja2Vu
ZFByb3h5OjpvcGVuT2JqZWN0Q3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdl
LCB1bgogICAgIG1fd2ViSURCSW5kZXgtPm9wZW5PYmplY3RDdXJzb3Ioa2V5UmFuZ2UsIGRpcmVj
dGlvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRyYW5zYWN0aW9uUHJv
eHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCkpOwogfQogCi12b2lkIElEQkluZGV4QmFja2VuZFBy
b3h5OjpvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24pCit2b2lkIElEQkluZGV4
QmFja2VuZFByb3h5OjpvcGVuS2V5Q3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJh
bmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24pCiB7
CiAgICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBv
aW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKICAgICAvLyBhbGwg
aW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgogICAg
IElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nh
c3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJ
REJJbmRleC0+b3BlbkN1cnNvcihrZXlSYW5nZSwgZGlyZWN0aW9uLCBuZXcgV2ViSURCQ2FsbGJh
Y2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rp
b24oKSk7CisgICAgbV93ZWJJREJJbmRleC0+b3BlbktleUN1cnNvcihrZXlSYW5nZSwgZGlyZWN0
aW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94
eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSk7CiB9CiAKLXZvaWQgSURCSW5kZXhCYWNrZW5kUHJv
eHk6OmdldE9iamVjdChQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0
aW9uKQordm9pZCBJREJJbmRleEJhY2tlbmRQcm94eTo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5PiBr
ZXksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24pCiB7CiAgICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBv
aW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMs
IGluIHRoZSByZW5kZXJlciwKICAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRl
cmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgpAQCAtOTcsMTIgKzk3LDEyIEBAIHZvaWQgSURCSW5k
ZXhCYWNrZW5kUHJveHk6OmdldE9iamVjdChQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVm
UHRyPElEQkNhbGxiCiAgICAgbV93ZWJJREJJbmRleC0+Z2V0T2JqZWN0KGtleSwgbmV3IFdlYklE
QkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRy
YW5zYWN0aW9uKCkpOwogfQogCi12b2lkIElEQkluZGV4QmFja2VuZFByb3h5OjpnZXQoUGFzc1Jl
ZlB0cjxJREJLZXk+IGtleSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbikKK3ZvaWQgSURCSW5kZXhC
YWNrZW5kUHJveHk6OmdldEtleShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRy
YW5zYWN0aW9uKQogewogICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRl
ZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIs
CiAgICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkg
b2JqZWN0cy4KICAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94
eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24p
OwotICAgIG1fd2ViSURCSW5kZXgtPmdldChrZXksIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNh
bGxiYWNrcyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpKTsKKyAg
ICBtX3dlYklEQkluZGV4LT5nZXRLZXkoa2V5LCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxs
YmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCSW5kZXhCYWNrZW5kUHJveHkuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNr
ZW5kUHJveHkuaAppbmRleCAwMzFlZDQwODdjNGVkNmZmNWVhNzQxN2NhZjg5NWE1NTE1NjAzNzgz
Li5hM2YyOWNlYjZiYmNlYWQ3YjQ2NGQ0NTk0NDRiMGYwNDI3ZDQ2ZjY2IDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmgKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5oCkBAIC00NiwxMCArNDYsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGtleVBhdGgoKTsKICAgICB2aXJ0dWFsIGJvb2wgdW5p
cXVlKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbk9iamVjdEN1cnNvcihQYXNzUmVmUHRyPElE
QktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOwogICAgIHZpcnR1YWwgdm9p
ZCBvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKik7Ci0gICAgdmlydHVhbCB2b2lkIGdldE9iamVjdChQYXNzUmVmUHRyPElEQktleT4s
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
Kik7CisgICAgdmlydHVhbCB2b2lkIG9wZW5LZXlDdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KFBh
c3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0S2V5KFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UqKTsKIAogcHJpdmF0ZToKICAgICBJREJJbmRleEJhY2tlbmRQcm94eShQYXNzT3du
UHRyPFdlYktpdDo6V2ViSURCSW5kZXg+KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCSW5kZXhJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJ
bXBsLmNwcAppbmRleCA4Nzk1Nzc4MWE1YmFiNjE1NTUzZDg5NDllNjZhOWQyZjA1YjcyZWYzLi40
ZjY2M2QwOWFjMzRhZDg5MjkxOTBlMWFiZDllYzE5YmVmNzc5OTgzIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJJbmRleEltcGwuY3BwCkBAIC02OCwyNCArNjgsMjQgQEAgYm9vbCBXZWJJREJJ
bmRleEltcGw6OnVuaXF1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fYmFja2VuZC0+dW5pcXVlKCk7
CiB9CiAKLXZvaWQgV2ViSURCSW5kZXhJbXBsOjpvcGVuQ3Vyc29yKGNvbnN0IFdlYklEQktleVJh
bmdlJiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3Mq
IGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQordm9pZCBX
ZWJJREJJbmRleEltcGw6Om9wZW5PYmplY3RDdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtl
eVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7CiAgICAgbV9iYWNr
ZW5kLT5vcGVuQ3Vyc29yKGtleVJhbmdlLCBkaXJlY3Rpb24sIElEQkNhbGxiYWNrc1Byb3h5Ojpj
cmVhdGUoY2FsbGJhY2tzKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKCkpOwogfQogCi12b2lkIFdlYklEQkluZGV4SW1wbDo6b3Blbk9iamVjdEN1cnNvcihj
b25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwg
V2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFu
c2FjdGlvbikKK3ZvaWQgV2ViSURCSW5kZXhJbXBsOjpvcGVuS2V5Q3Vyc29yKGNvbnN0IFdlYklE
QktleVJhbmdlJiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxs
YmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQog
ewotICAgIG1fYmFja2VuZC0+b3Blbk9iamVjdEN1cnNvcihrZXlSYW5nZSwgZGlyZWN0aW9uLCBJ
REJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGNhbGxiYWNrcyksIHRyYW5zYWN0aW9uLmdldElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpKTsKKyAgICBtX2JhY2tlbmQtPm9wZW5LZXlDdXJz
b3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFj
a3MpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSk7CiB9
CiAKIHZvaWQgV2ViSURCSW5kZXhJbXBsOjpnZXRPYmplY3QoY29uc3QgV2ViSURCS2V5JiBrZXlS
YW5nZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbikKIHsKLSAgICBtX2JhY2tlbmQtPmdldE9iamVjdChrZXlSYW5nZSwgSURC
Q2FsbGJhY2tzUHJveHk6OmNyZWF0ZShjYWxsYmFja3MpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSk7CisgICAgbV9iYWNrZW5kLT5nZXQoa2V5UmFuZ2Us
IElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2FsbGJhY2tzKSwgdHJhbnNhY3Rpb24uZ2V0SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkpOwogfQogCi12b2lkIFdlYklEQkluZGV4SW1w
bDo6Z2V0KGNvbnN0IFdlYklEQktleSYga2V5UmFuZ2UsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit2b2lkIFdlYklEQklu
ZGV4SW1wbDo6Z2V0S2V5KGNvbnN0IFdlYklEQktleSYga2V5UmFuZ2UsIFdlYklEQkNhbGxiYWNr
cyogY2FsbGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB7Ci0g
ICAgbV9iYWNrZW5kLT5nZXQoa2V5UmFuZ2UsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoY2Fs
bGJhY2tzKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkp
OworICAgIG1fYmFja2VuZC0+Z2V0S2V5KGtleVJhbmdlLCBJREJDYWxsYmFja3NQcm94eTo6Y3Jl
YXRlKGNhbGxiYWNrcyksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCSW5kZXhJbXBsLmgKaW5kZXggY2IyZWZjNzc1NmMxYjhkZThiZGIzNmM2NGM5YjY5YWJjYjI3
MjQ5Yi4uZTgyMDNmNzRjNDFjZjVhMDI2YTVmOTkxMzZkZTc2MzE2ZDZlNTM1MiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5oCkBAIC00Nyw5ICs0Nyw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgdW5pcXVlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgb3Blbk9i
amVjdEN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlv
biwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mKTsgCi0gICAgdmly
dHVhbCB2b2lkIG9wZW5DdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9y
dCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJik7
CisgICAgdmlydHVhbCB2b2lkIG9wZW5LZXlDdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1
bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRy
YW5zYWN0aW9uJik7CiAgICAgdmlydHVhbCB2b2lkIGdldE9iamVjdChjb25zdCBXZWJJREJLZXkm
LCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYpOwotICAgIHZpcnR1
YWwgdm9pZCBnZXQoY29uc3QgV2ViSURCS2V5JiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2Vi
SURCVHJhbnNhY3Rpb24mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0S2V5KGNvbnN0IFdlYklEQktl
eSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJik7CiAKIHByaXZh
dGU6CiAgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBt
X2JhY2tlbmQ7Cg==
</data>
<flag name="review"
          id="59408"
          type_id="1"
          status="+"
          setter="japhet"
    />
          </attachment>
      

    </bug>

</bugzilla>