<?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>102552</bug_id>
          
          <creation_ts>2012-11-16 12:43:56 -0800</creation_ts>
          <short_desc>IndexedDB: Obtain ScriptState from IDL binding generator</short_desc>
          <delta_ts>2012-11-21 22:53:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>102739</dependson>
          <blocked>45110</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Michael Pruett">michael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>769586</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Pruett">michael</who>
    <bug_when>2012-11-16 12:43:56 -0800</bug_when>
    <thetext>Currently when serializing a ScriptValue in IDBObjectStore::put(), the ScriptValue is serialized using the ScriptState provided by ScriptState::current(). In JSC there is no ScriptState::current(), and it will be necessary to obtain an ExecState from DOMRequestState to serialize the ScriptValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769676</commentid>
    <comment_count>1</comment_count>
      <attachid>174760</attachid>
    <who name="Michael Pruett">michael</who>
    <bug_when>2012-11-16 14:27:05 -0800</bug_when>
    <thetext>Created attachment 174760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769703</commentid>
    <comment_count>2</comment_count>
      <attachid>174760</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-16 15:08:53 -0800</bug_when>
    <thetext>Comment on attachment 174760
Patch

This looks ok to me. I&apos;d be curious what abarth thinks. I&apos;ve always found it a little odd that SerializedScriptValue::deserialize takes a ScriptState and not something better. (In fact I wonder now if there&apos;s a way we can fix SerializedScriptValue rather than fix this here)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769718</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Pruett">michael</who>
    <bug_when>2012-11-16 15:29:26 -0800</bug_when>
    <thetext>Another possible approach would be to update DOMRequestState to add a method to return the ScriptState* (presumably with ScriptState::forContext()); we could then use requestState.scriptState() for both V8 and JSC and skip adding the new serializeIDBValue() function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769957</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-17 09:57:46 -0800</bug_when>
    <thetext>Can&apos;t you just add a CallWith=ScriptState to the IDL to get the script state from the bindings layer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771027</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Pruett">michael</who>
    <bug_when>2012-11-19 14:24:33 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Can&apos;t you just add a CallWith=ScriptState to the IDL to get the script state from the bindings layer?

That solution would be ideal. However it seems that adding CallWith=ScriptState to a function causes the V8 binding generator to invoke the function with an EmptyScriptState rather than with ScriptState::current(). And at the beginning of ScriptValue::serialize(), a ScriptScope is created with this EmptyScriptState. Since the EmptyScriptState has a null v8::Context, the v8::Context::Scope in ScriptScope enters the null context, triggering an assertion failure in V8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771062</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-19 14:59:07 -0800</bug_when>
    <thetext>&gt; However it seems that adding CallWith=ScriptState to a function causes the V8 binding generator to invoke the function with an EmptyScriptState rather than with ScriptState::current().

That sounds like a bug in the code generator that we should fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773197</commentid>
    <comment_count>7</comment_count>
      <attachid>175501</attachid>
    <who name="Michael Pruett">michael</who>
    <bug_when>2012-11-21 12:57:01 -0800</bug_when>
    <thetext>Created attachment 175501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773199</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Pruett">michael</who>
    <bug_when>2012-11-21 13:00:46 -0800</bug_when>
    <thetext>Now that the V8 binding generator has been updated in &lt;https://bugs.webkit.org/show_bug.cgi?id=102739&gt;, I&apos;ve created a new patch which obtains the ScriptState from the IDL binding generator. Creating a new serializeIDBValue() utility function is no longer necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773394</commentid>
    <comment_count>9</comment_count>
      <attachid>175501</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-21 16:21:15 -0800</bug_when>
    <thetext>Comment on attachment 175501
Patch

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

IDB changes LGTM but would be nice to start off with consistent naming, i.e....

&gt; Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp:136
&gt; +    return put(IDBObjectStoreBackendInterface::AddOrUpdate, IDBAny::create(this), scriptState, value, key, ec);

^^^ &quot;scriptState&quot; vs.

&gt; Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp:139
&gt; +PassRefPtr&lt;IDBRequest&gt; IDBObjectStore::put(IDBObjectStoreBackendInterface::PutMode putMode, PassRefPtr&lt;IDBAny&gt; source, ScriptState* state, ScriptValue&amp; value, PassRefPtr&lt;IDBKey&gt; prpKey, ExceptionCode&amp; ec)

^^^ &quot;state&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773404</commentid>
    <comment_count>10</comment_count>
      <attachid>175501</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-21 16:30:01 -0800</bug_when>
    <thetext>Comment on attachment 175501
Patch

LGTM. Please address jsbell&apos;s comments before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773434</commentid>
    <comment_count>11</comment_count>
      <attachid>175550</attachid>
    <who name="Michael Pruett">michael</who>
    <bug_when>2012-11-21 17:13:52 -0800</bug_when>
    <thetext>Created attachment 175550
Patch

I&apos;ve changed variables previously named &apos;scriptState&apos; to &apos;state&apos; for the sake of consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773527</commentid>
    <comment_count>12</comment_count>
      <attachid>175550</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 20:35:21 -0800</bug_when>
    <thetext>Comment on attachment 175550
Patch

Clearing flags on attachment: 175550

Committed r135471: &lt;http://trac.webkit.org/changeset/135471&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773528</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-21 20:35:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773594</commentid>
    <comment_count>14</comment_count>
      <attachid>175550</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-21 22:53:59 -0800</bug_when>
    <thetext>Comment on attachment 175550
Patch

Thanks for improving the code generator.  I think this patch came out very nicely this way.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174760</attachid>
            <date>2012-11-16 14:27:05 -0800</date>
            <delta_ts>2012-11-21 12:57:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102552-20121116142500.patch</filename>
            <type>text/plain</type>
            <size>4269</size>
            <attacher name="Michael Pruett">michael</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0OTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWU5NjJhOGI5MThhNGU2
ZDg4ZjY0MGM2M2EwNjIzNzYyN2MxNmE1My4uYTVlNDc5MDdlYTFlYzIzNzY0Yzc1ZTYxYWYxMDRm
YjllYWY4Nzg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTExLTE2ICBNaWNo
YWVsIFBydWV0dCAgPG1pY2hhZWxANjhrLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFkZCBz
ZXJpYWxpemVJREJWYWx1ZSgpIHRvIElEQiBiaW5kaW5nIHV0aWxpdHkgZnVuY3Rpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI1NTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHNlcmlhbGl6
YXRpb24gdG8gSURCIGJpbmRpbmcgdXRpbGl0aWVzIHNpbmNlIHRoZSBjdXJyZW50CisgICAgICAg
IGltcGxlbWVudGF0aW9uIGlzIGFwcGxpY2FibGUgb25seSB0byBWOC4KKworICAgICAgICBUZXN0
czogc3RvcmFnZS9pbmRleGVkZGIvKgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OnB1dCk6
IFVzZSBuZXcgc2VyaWFsaXplSURCVmFsdWUoKS4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9JREJC
aW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6ZUlEQlZhbHVl
KTogQWRkIHNlcmlhbGl6ZUlEQlZhbHVlKCkuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlKTog
QWRkIHNlcmlhbGl6ZUlEQlZhbHVlKCkuCisKIDIwMTItMTEtMTYgIERpbWl0cmkgR2xhemtvdiAg
PGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTM0OTg2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuY3BwCmluZGV4IGY3NDA5ODFlYzc5YTZjOGJhMmVkM2FjYjE4YzhkYWQyNzhm
YjZjZWMuLmEzZTgyMWI5ZjQ1NDRjMTM3NDY2ZTY3MjNkN2Y2ODgzZjBlMjZhNDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAK
QEAgLTE1Myw5ICsxNTMsOSBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3Jl
OjpwdXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQdXRNbwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKLSAgICBTY3JpcHRTdGF0ZSogc3RhdGUgPSBTY3JpcHRTdGF0ZTo6Y3Vy
cmVudCgpOwotICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRWYWx1
ZSA9IHZhbHVlLnNlcmlhbGl6ZShzdGF0ZSk7Ci0gICAgaWYgKHN0YXRlLT5oYWRFeGNlcHRpb24o
KSkgeworICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4dCk7CisgICAgUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFZhbHVlID0gc2VyaWFsaXplSURC
VmFsdWUoJnJlcXVlc3RTdGF0ZSwgdmFsdWUpOworICAgIGlmICghc2VyaWFsaXplZFZhbHVlKSB7
CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9EQVRBX0NMT05FX0VSUjsK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTY5LDcgKzE2OSw2IEBAIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRl
cmZhY2U6OlB1dE1vCiAgICAgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCA9IG1fbWV0YWRhdGEu
a2V5UGF0aDsKICAgICBjb25zdCBib29sIHVzZXNJbkxpbmVLZXlzID0gIWtleVBhdGguaXNOdWxs
KCk7CiAgICAgY29uc3QgYm9vbCBoYXNLZXlHZW5lcmF0b3IgPSBhdXRvSW5jcmVtZW50KCk7Ci0g
ICAgRE9NUmVxdWVzdFN0YXRlIHJlcXVlc3RTdGF0ZShjb250ZXh0KTsKIAogICAgIGlmIChwdXRN
b2RlICE9IElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVXBkYXRlICYmIHVz
ZXNJbkxpbmVLZXlzICYmIGtleSkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpEQVRBX0VSUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJp
bmRpbmdVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGlu
Z1V0aWxpdGllcy5jcHAKaW5kZXggOGIzODVhNDkxNTIxM2Q5OGM3M2Y1YzljZDc0MjgxMjNmMTk4
ZjlmYi4uZjU2MDcxMGJkMGM1ZDI0ZGZiMDRkN2EzNDZjYjFiZjgyYzUzYWMzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAg
LTIyMiw2ICsyMjIsMTUgQEAgU2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZShET01SZXF1
ZXN0U3RhdGUqIHN0YXRlLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3IKICAgICByZXR1cm4gU2Ny
aXB0VmFsdWUodjg6Ok51bGwoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBzZXJpYWxpemVJREJWYWx1ZShET01SZXF1ZXN0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1
ZSYgdmFsdWUpCit7CisgICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlID0gU2NyaXB0U3RhdGU6
OmN1cnJlbnQoKTsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVk
VmFsdWUgPSB2YWx1ZS5zZXJpYWxpemUoc2NyaXB0U3RhdGUpOworICAgIGlmIChzY3JpcHRTdGF0
ZS0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzZXJpYWxp
emVkVmFsdWUucmVsZWFzZSgpOworfQorCiBib29sIGluamVjdElEQktleUludG9TY3JpcHRWYWx1
ZShET01SZXF1ZXN0U3RhdGUqLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBTY3JpcHRWYWx1ZSYg
dmFsdWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgpCiB7CiAgICAgSURCX1RSQUNFKCJpbmpl
Y3RJREJLZXlJbnRvU2NyaXB0VmFsdWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuaAppbmRleCA4NmVmYzQ0M2FhNjkyOTgxOWQ2YWM4YmY0
NWE4ZDA0OTNjOWRhOGZlLi5jNjAyNzQyNmIxOGZlOTM4ODFiOTFhNTdkYTRjOWQxMmJkNDQ2ODI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGll
cy5oCkBAIC00NSw2ICs0NSw3IEBAIGJvb2wgaW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKERP
TVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8SURCS2V5PiwgU2NyaXB0VmFsCiBQYXNzUmVmUHRy
PElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aChET01SZXF1ZXN0
U3RhdGUqLCBjb25zdCBTY3JpcHRWYWx1ZSYsIGNvbnN0IElEQktleVBhdGgmKTsKIGJvb2wgY2Fu
SW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIGNvbnN0IFNjcmlw
dFZhbHVlJiwgY29uc3QgSURCS2V5UGF0aCYpOwogU2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJW
YWx1ZShET01SZXF1ZXN0U3RhdGUqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4p
OworUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZUlEQlZhbHVlKERP
TVJlcXVlc3RTdGF0ZSosIFNjcmlwdFZhbHVlJik7CiBTY3JpcHRWYWx1ZSBpZGJLZXlUb1Njcmlw
dFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8SURCS2V5Pik7CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175501</attachid>
            <date>2012-11-21 12:57:01 -0800</date>
            <delta_ts>2012-11-21 17:13:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>idb-ScriptState.patch</filename>
            <type>text/plain</type>
            <size>11179</size>
            <attacher name="Michael Pruett">michael</attacher>
            
              <data encoding="base64">RnJvbTogTWljaGFlbCBQcnVldHQgPG1pY2hhZWxwcnVldHRAZ21haWwuY29tPgpEYXRlOiBXZWQs
IDIxIE5vdiAyMDEyIDEyOjM1OjM5IC0wODAwClN1YmplY3Q6IEluZGV4ZWREQjogT2J0YWluIFNj
cmlwdFN0YXRlIGZyb20gSURMIGJpbmRpbmcgZ2VuZXJhdG9yCgotLS0KIFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNyArKysrKysrKysrKysr
KysrKysrKwogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCAg
ICAgfCAgICA0ICstLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
LmggICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJD
dXJzb3IuaWRsICAgICB8ICAgIDIgKy0KIC4uLi9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9iamVjdFN0b3JlLmNwcCAgIHwgICAxMyArKysrKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oICB8ICAgMTAgKysrKy0tLS0KIC4uLi9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCAgIHwgICAgNCArLS0KIDcg
ZmlsZXMgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDYwZmI4YmIuLjU2NjllZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAx
Mi0xMS0yMSAgTWljaGFlbCBQcnVldHQgIDxtaWNoYWVsQDY4ay5vcmc+CisKKyAgICAgICAgSW5k
ZXhlZERCOiBPYnRhaW4gU2NyaXB0U3RhdGUgZnJvbSBJREwgYmluZGluZyBnZW5lcmF0b3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjU1MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9idGFpbiBTY3Jp
cHRTdGF0ZSBmcm9tIElETCBiaW5kaW5nIGdlbmVyYXRvciByYXRoZXIgdGhhbiBkaXJlY3RseQor
ICAgICAgICBjYWxsaW5nIFNjcmlwdFN0YXRlOjpjdXJyZW50KCkgc2luY2UgdGhhdCBtZXRob2Qg
ZG9lcyBub3QgZXhpc3QKKyAgICAgICAgaW4gSlNDLgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdl
L2luZGV4ZWRkYi8qCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yOjp1cGRhdGUpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oOgorICAgICAgICAoSURCQ3Vyc29yKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0
b3JlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OnB1dCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9iamVjdFN0b3JlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3Rv
cmU6OnB1dCk6CisgICAgICAgIChJREJPYmplY3RTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsOgorCiAyMDEyLTExLTIxICBLZW50YXJvIEhhcmEg
IDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgJG91dHB1dERpciBhbmQg
JG91dHB1dEhlYWRlcnNEaXIgZnJvbSBnbG9iYWwgdmFyaWFibGVzIG9mIGNvZGUgZ2VuZXJhdG9y
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5k
ZXggYTAyMWYyZS4uZTc5ZDdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgSURCQW55KiBJREJDdXJzb3I6
OnNvdXJjZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc291cmNlLmdldCgpOwogfQogCi1QYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQkN1cnNvcjo6dXBkYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFNjcmlwdFZhbHVlJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQkN1cnNvcjo6dXBkYXRlKFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0
ZSwgU2NyaXB0VmFsdWUmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJB
Q0UoIklEQkN1cnNvcjo6dXBkYXRlIik7CiAKQEAgLTE1Miw3ICsxNTIsNyBAQCBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IElEQkN1cnNvcjo6dXBkYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFNjcmlwdAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIG9iamVjdFN0b3Jl
LT5wdXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JVcGRhdGUsIElEQkFu
eTo6Y3JlYXRlKHRoaXMpLCBjb250ZXh0LCB2YWx1ZSwgbV9jdXJyZW50UHJpbWFyeUtleSwgZWMp
OworICAgIHJldHVybiBvYmplY3RTdG9yZS0+cHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZTo6Q3Vyc29yVXBkYXRlLCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc2NyaXB0U3RhdGUsIHZh
bHVlLCBtX2N1cnJlbnRQcmltYXJ5S2V5LCBlYyk7CiB9CiAKIHZvaWQgSURCQ3Vyc29yOjphZHZh
bmNlKGxvbmcgbG9uZyBjb3VudCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCmluZGV4IGY1ZDZjN2YuLjJiMDU5MDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCkBAIC03Nyw3
ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTY3JpcHRWYWx1ZSYgdmFsdWUoKSBjb25zdDsK
ICAgICBJREJBbnkqIHNvdXJjZSgpIGNvbnN0OwogCi0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiB1cGRhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFNjcmlwdFZhbHVlJiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gdXBkYXRlKFNjcmlwdFN0YXRlKiwg
U2NyaXB0VmFsdWUmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgLy8gRklYTUU6IE1ha2UgdGhpcyB1
bnNpZ25lZCBsb25nIG9uY2Ugd2Via2l0Lm9yZy9iLzk2Nzk4IGxhbmRzLgogICAgIHZvaWQgYWR2
YW5jZShsb25nIGxvbmcsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGNvbnRpbnVlRnVuY3Rp
b24oUGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAppbmRleCA0OWU5Mjc3Li42NDYyMDc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3Iu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5pZGwK
QEAgLTMzLDcgKzMzLDcgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYW55IHByaW1hcnlLZXk7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQkFueSBzb3VyY2U7CiAKLSAgICBbQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCB1cGRhdGUoaW4gYW55IHZhbHVlKQor
ICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gSURCUmVxdWVzdCB1cGRhdGUoaW4gYW55IHZhbHVl
KQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgLy8gRklYTUU6IE1ha2UgdGhp
cyBbRW5mb3JjZVJhbmdlXSB1bnNpZ25lZCBsb25nIG9uY2Ugd2Via2l0Lm9yZy9iLzk2Nzk4IGxh
bmRzLgogICAgIHZvaWQgYWR2YW5jZShpbiBsb25nIGxvbmcgY291bnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKaW5kZXggZjc0
MDk4MS4uY2JiMzZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmNwcApAQCAtMTI0LDE5ICsxMjQsMTkgQEAgc3RhdGljIHZvaWQg
Z2VuZXJhdGVJbmRleEtleXNGb3JWYWx1ZShET01SZXF1ZXN0U3RhdGUqIHJlcXVlc3RTdGF0ZSwg
Y29uc3QgSURCSW4KICAgICB9CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0
U3RvcmU6OmFkZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTY3JpcHRWYWx1ZSYg
dmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6YWRkKFNjcmlwdFN0YXRlKiBzY3JpcHRT
dGF0ZSwgU2NyaXB0VmFsdWUmIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQk9iamVjdFN0b3JlOjphZGQiKTsKLSAg
ICByZXR1cm4gcHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6QWRkT25seSwgSURC
QW55OjpjcmVhdGUodGhpcyksIGNvbnRleHQsIHZhbHVlLCBrZXksIGVjKTsKKyAgICByZXR1cm4g
cHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6QWRkT25seSwgSURCQW55OjpjcmVh
dGUodGhpcyksIHNjcmlwdFN0YXRlLCB2YWx1ZSwga2V5LCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBTY3JpcHRWYWx1ZSYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6cHV0
KFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSwgU2NyaXB0VmFsdWUmIHZhbHVlLCBQYXNzUmVmUHRy
PElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQk9i
amVjdFN0b3JlOjpwdXQiKTsKLSAgICByZXR1cm4gcHV0KElEQk9iamVjdFN0b3JlQmFja2VuZElu
dGVyZmFjZTo6QWRkT3JVcGRhdGUsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBjb250ZXh0LCB2YWx1
ZSwga2V5LCBlYyk7CisgICAgcmV0dXJuIHB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZh
Y2U6OkFkZE9yVXBkYXRlLCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc2NyaXB0U3RhdGUsIHZhbHVl
LCBrZXksIGVjKTsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6
cHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6UHV0TW9kZSBwdXRNb2RlLCBQYXNz
UmVmUHRyPElEQkFueT4gc291cmNlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBT
Y3JpcHRWYWx1ZSYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6cHV0KElEQk9i
amVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6UHV0TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElE
QkFueT4gc291cmNlLCBTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVlJiB2YWx1ZSwgUGFz
c1JlZlB0cjxJREJLZXk+IHBycEtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RS
QUNFKCJJREJPYmplY3RTdG9yZTo6cHV0Iik7CiAgICAgUmVmUHRyPElEQktleT4ga2V5ID0gcHJw
S2V5OwpAQCAtMTUzLDcgKzE1Myw2IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0
U3RvcmU6OnB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vCiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KIAotICAgIFNjcmlwdFN0YXRlKiBzdGF0ZSA9IFNjcmlwdFN0YXRl
OjpjdXJyZW50KCk7CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXpl
ZFZhbHVlID0gdmFsdWUuc2VyaWFsaXplKHN0YXRlKTsKICAgICBpZiAoc3RhdGUtPmhhZEV4Y2Vw
dGlvbigpKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9EQVRBX0NM
T05FX0VSUjsKQEAgLTE2OSw2ICsxNjgsOCBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9i
amVjdFN0b3JlOjpwdXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQdXRNbwogICAg
IGNvbnN0IElEQktleVBhdGgmIGtleVBhdGggPSBtX21ldGFkYXRhLmtleVBhdGg7CiAgICAgY29u
c3QgYm9vbCB1c2VzSW5MaW5lS2V5cyA9ICFrZXlQYXRoLmlzTnVsbCgpOwogICAgIGNvbnN0IGJv
b2wgaGFzS2V5R2VuZXJhdG9yID0gYXV0b0luY3JlbWVudCgpOworCisgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tU2NyaXB0U3Rh
dGUoc3RhdGUpOwogICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4dCk7CiAK
ICAgICBpZiAocHV0TW9kZSAhPSBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkN1cnNv
clVwZGF0ZSAmJiB1c2VzSW5MaW5lS2V5cyAmJiBrZXkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCmluZGV4IDU3YzhlZDYuLjY4ZGRi
NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmUuaApAQCAtNjUsOCArNjUsOCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJUcmFu
c2FjdGlvbj4gdHJhbnNhY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uOyB9CiAg
ICAgYm9vbCBhdXRvSW5jcmVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YS5hdXRvSW5j
cmVtZW50OyB9CiAKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBTY3JpcHRWYWx1ZSYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVj
KSB7IHJldHVybiBhZGQoY29udGV4dCwgdmFsdWUsIDAsIGVjKTsgIH0KLSAgICBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IHB1dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTY3JpcHRW
YWx1ZSYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBwdXQoY29udGV4dCwgdmFs
dWUsIDAsIGVjKTsgIH0KKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZChTY3JpcHRTdGF0
ZSogc2NyaXB0U3RhdGUsIFNjcmlwdFZhbHVlJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsg
cmV0dXJuIGFkZChzY3JpcHRTdGF0ZSwgdmFsdWUsIDAsIGVjKTsgIH0KKyAgICBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IHB1dChTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUsIFNjcmlwdFZhbHVlJiB2
YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIHB1dChzY3JpcHRTdGF0ZSwgdmFsdWUs
IDAsIGVjKTsgIH0KICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9w
ZW5DdXJzb3IoY29udGV4dCwgc3RhdGljX2Nhc3Q8SURCS2V5UmFuZ2UqPigwKSwgZWMpOyB9CiAg
ICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBFeGNlcHRpb25D
b2RlJiBlYykgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBrZXlSYW5nZSwgSURCQ3Vyc29y
OjpkaXJlY3Rpb25OZXh0KCksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3Bl
bkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktl
eT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBr
ZXksIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBlYyk7IH0KQEAgLTc2LDggKzc2LDggQEAg
cHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gYWRkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTY3JpcHRWYWx1ZSYsIFBhc3NSZWZQdHI8
SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTY3JpcHRWYWx1ZSYsIFBhc3NSZWZQdHI8SURCS2V5
PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gYWRkKFNjcmlw
dFN0YXRlKiwgU2NyaXB0VmFsdWUmLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHB1dChTY3JpcHRTdGF0ZSosIFNjcmlwdFZh
bHVlJiwgUGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBkZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IGRlbGV0ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBjbGVhcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAt
OTMsNyArOTMsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6
UHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFNjcmlwdFZhbHVlJiwgUGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBwdXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJm
YWNlOjpQdXRNb2RlLCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBTY3JpcHRTdGF0ZSosIFNj
cmlwdFZhbHVlJiwgUGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBtYXJrRGVsZXRlZCgpIHsgbV9kZWxldGVkID0gdHJ1ZTsgfQogICAgIHZvaWQgdHJhbnNhY3Rp
b25GaW5pc2hlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5pZGwKaW5kZXggMTQ0NmJhMC4uYzdkOGJkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbApAQCAt
MzMsOSArMzMsOSBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJUcmFuc2FjdGlvbiB0cmFu
c2FjdGlvbjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhdXRvSW5jcmVtZW50Owog
Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgcHV0KGlu
IGFueSB2YWx1ZSwgaW4gW09wdGlvbmFsXSBJREJLZXkga2V5KQorICAgIFtDYWxsV2l0aD1TY3Jp
cHRTdGF0ZV0gSURCUmVxdWVzdCBwdXQoaW4gYW55IHZhbHVlLCBpbiBbT3B0aW9uYWxdIElEQktl
eSBrZXkpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBhZGQoaW4gYW55IHZhbHVlLCBpbiBbT3B0
aW9uYWxdIElEQktleSBrZXkpCisgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBJREJSZXF1ZXN0
IGFkZChpbiBhbnkgdmFsdWUsIGluIFtPcHRpb25hbF0gSURCS2V5IGtleSkKICAgICAgICAgcmFp
c2VzIChET01FeGNlcHRpb24pOwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBJbXBsZW1lbnRlZEFzPWRlbGV0ZUZ1bmN0aW9uXSBJREJSZXF1ZXN0IGRlbGV0ZShpbiBJREJL
ZXlSYW5nZT8ga2V5UmFuZ2UpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLS0gCjEu
Ny45LjUKCg==
</data>
<flag name="review"
          id="190963"
          type_id="1"
          status="+"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175550</attachid>
            <date>2012-11-21 17:13:52 -0800</date>
            <delta_ts>2012-11-21 22:53:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>idb-ScriptState.patch</filename>
            <type>text/plain</type>
            <size>11111</size>
            <attacher name="Michael Pruett">michael</attacher>
            
              <data encoding="base64">RnJvbTogTWljaGFlbCBQcnVldHQgPG1pY2hhZWxANjhrLm9yZz4KRGF0ZTogV2VkLCAyMSBOb3Yg
MjAxMiAxNzowNDozMyAtMDgwMApTdWJqZWN0OiBJbmRleGVkREI6IE9idGFpbiBTY3JpcHRTdGF0
ZSBmcm9tIElETCBiaW5kaW5nIGdlbmVyYXRvcgoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjcgKysrKysrKysrKysrKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAgICAgIHwgICAg
NCArLS0KIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oICAgICAg
IHwgICAgMiArLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlk
bCAgICAgfCAgICAyICstCiAuLi4vV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZS5jcHAgICB8ICAgMTMgKysrKystLS0tLQogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuaCAgfCAgIDEwICsrKystLS0tCiAuLi4vV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwgICB8ICAgIDQgKy0tCiA3IGZpbGVzIGNo
YW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2
MGZiOGJiLi41NjY5ZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMTEtMjEg
IE1pY2hhZWwgUHJ1ZXR0ICA8bWljaGFlbEA2OGsub3JnPgorCisgICAgICAgIEluZGV4ZWREQjog
T2J0YWluIFNjcmlwdFN0YXRlIGZyb20gSURMIGJpbmRpbmcgZ2VuZXJhdG9yCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI1NTIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPYnRhaW4gU2NyaXB0U3RhdGUg
ZnJvbSBJREwgYmluZGluZyBnZW5lcmF0b3IgcmF0aGVyIHRoYW4gZGlyZWN0bHkKKyAgICAgICAg
Y2FsbGluZyBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpIHNpbmNlIHRoYXQgbWV0aG9kIGRvZXMgbm90
IGV4aXN0CisgICAgICAgIGluIEpTQy4KKworICAgICAgICBUZXN0czogc3RvcmFnZS9pbmRleGVk
ZGIvKgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6dXBkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3IuaDoKKyAgICAgICAgKElEQkN1cnNvcik6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6YWRk
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpwdXQpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJP
YmplY3RTdG9yZTo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpwdXQp
OgorICAgICAgICAoSURCT2JqZWN0U3RvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmlkbDoKKwogMjAxMi0xMS0yMSAgS2VudGFybyBIYXJhICA8aGFyYWtl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlICRvdXRwdXREaXIgYW5kICRvdXRwdXRI
ZWFkZXJzRGlyIGZyb20gZ2xvYmFsIHZhcmlhYmxlcyBvZiBjb2RlIGdlbmVyYXRvcnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCmluZGV4IGEwMjFm
MmUuLjFhYWYyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcApAQCAtMTI0LDcgKzEyNCw3IEBAIElEQkFueSogSURCQ3Vyc29yOjpzb3VyY2Uo
KSBjb25zdAogICAgIHJldHVybiBtX3NvdXJjZS5nZXQoKTsKIH0KIAotUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBJREJDdXJzb3I6OnVwZGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBTY3JpcHRWYWx1ZSYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBJREJDdXJzb3I6OnVwZGF0ZShTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVl
JiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RSQUNFKCJJREJDdXJzb3I6
OnVwZGF0ZSIpOwogCkBAIC0xNTIsNyArMTUyLDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJ
REJDdXJzb3I6OnVwZGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTY3JpcHQK
ICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBvYmplY3RTdG9yZS0+cHV0KElEQk9iamVj
dFN0b3JlQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVXBkYXRlLCBJREJBbnk6OmNyZWF0ZSh0aGlz
KSwgY29udGV4dCwgdmFsdWUsIG1fY3VycmVudFByaW1hcnlLZXksIGVjKTsKKyAgICByZXR1cm4g
b2JqZWN0U3RvcmUtPnB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkN1cnNvclVw
ZGF0ZSwgSURCQW55OjpjcmVhdGUodGhpcyksIHN0YXRlLCB2YWx1ZSwgbV9jdXJyZW50UHJpbWFy
eUtleSwgZWMpOwogfQogCiB2b2lkIElEQkN1cnNvcjo6YWR2YW5jZShsb25nIGxvbmcgY291bnQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuaAppbmRleCBmNWQ2YzdmLi4yYjA1OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgU2NyaXB0VmFsdWUmIHZhbHVlKCkgY29uc3Q7CiAgICAgSURCQW55KiBzb3VyY2Uo
KSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gdXBkYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBTY3JpcHRWYWx1ZSYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IHVwZGF0ZShTY3JpcHRTdGF0ZSosIFNjcmlwdFZhbHVlJiwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgdW5zaWduZWQgbG9uZyBvbmNlIHdl
YmtpdC5vcmcvYi85Njc5OCBsYW5kcy4KICAgICB2b2lkIGFkdmFuY2UobG9uZyBsb25nLCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5
PiwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkN1cnNvci5pZGwKaW5kZXggNDllOTI3Ny4uNjQ2MjA3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsCkBAIC0zMyw3ICszMyw3IEBACiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGFueSBwcmltYXJ5S2V5OwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBJREJBbnkgc291cmNlOwogCi0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIElEQlJlcXVlc3QgdXBkYXRlKGluIGFueSB2YWx1ZSkKKyAgICBbQ2FsbFdpdGg9U2NyaXB0
U3RhdGVdIElEQlJlcXVlc3QgdXBkYXRlKGluIGFueSB2YWx1ZSkKICAgICAgICAgcmFpc2VzIChE
T01FeGNlcHRpb24pOwogICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgW0VuZm9yY2VSYW5nZV0gdW5z
aWduZWQgbG9uZyBvbmNlIHdlYmtpdC5vcmcvYi85Njc5OCBsYW5kcy4KICAgICB2b2lkIGFkdmFu
Y2UoaW4gbG9uZyBsb25nIGNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGY3NDA5ODEuLjZhYjM1NTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5j
cHAKQEAgLTEyNCwxOSArMTI0LDE5IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRlSW5kZXhLZXlzRm9y
VmFsdWUoRE9NUmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsIGNvbnN0IElEQkluCiAgICAgfQog
fQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjphZGQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgU2NyaXB0VmFsdWUmIHZhbHVlLCBQYXNzUmVmUHRyPElE
QktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURC
T2JqZWN0U3RvcmU6OmFkZChTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVlJiB2YWx1ZSwg
UGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RS
QUNFKCJJREJPYmplY3RTdG9yZTo6YWRkIik7Ci0gICAgcmV0dXJuIHB1dChJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbnRlcmZhY2U6OkFkZE9ubHksIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBjb250ZXh0
LCB2YWx1ZSwga2V5LCBlYyk7CisgICAgcmV0dXJuIHB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2U6OkFkZE9ubHksIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFsdWUsIGtl
eSwgZWMpOwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU2NyaXB0VmFsdWUmIHZhbHVlLCBQYXNz
UmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVl
JiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9yZTo6cHV0Iik7Ci0gICAgcmV0dXJuIHB1dChJREJP
YmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkFkZE9yVXBkYXRlLCBJREJBbnk6OmNyZWF0ZSh0
aGlzKSwgY29udGV4dCwgdmFsdWUsIGtleSwgZWMpOworICAgIHJldHVybiBwdXQoSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpBZGRPclVwZGF0ZSwgSURCQW55OjpjcmVhdGUodGhpcyks
IHN0YXRlLCB2YWx1ZSwga2V5LCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURC
T2JqZWN0U3RvcmU6OnB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUg
cHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgU2NyaXB0VmFsdWUmIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5
LCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3Rv
cmU6OnB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwg
UGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1
ZSYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OnB1dCIpOwogICAgIFJlZlB0cjxJREJL
ZXk+IGtleSA9IHBycEtleTsKQEAgLTE1Myw3ICsxNTMsNiBAQCBQYXNzUmVmUHRyPElEQlJlcXVl
c3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQ
dXRNbwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBTY3JpcHRTdGF0ZSogc3RhdGUg
PSBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpOwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IHNlcmlhbGl6ZWRWYWx1ZSA9IHZhbHVlLnNlcmlhbGl6ZShzdGF0ZSk7CiAgICAgaWYgKHN0
YXRlLT5oYWRFeGNlcHRpb24oKSkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpJREJfREFUQV9DTE9ORV9FUlI7CkBAIC0xNjksNiArMTY4LDggQEAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6cHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFj
ZTo6UHV0TW8KICAgICBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoID0gbV9tZXRhZGF0YS5rZXlQ
YXRoOwogICAgIGNvbnN0IGJvb2wgdXNlc0luTGluZUtleXMgPSAha2V5UGF0aC5pc051bGwoKTsK
ICAgICBjb25zdCBib29sIGhhc0tleUdlbmVyYXRvciA9IGF1dG9JbmNyZW1lbnQoKTsKKworICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0
RnJvbVNjcmlwdFN0YXRlKHN0YXRlKTsKICAgICBET01SZXF1ZXN0U3RhdGUgcmVxdWVzdFN0YXRl
KGNvbnRleHQpOwogCiAgICAgaWYgKHB1dE1vZGUgIT0gSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50
ZXJmYWNlOjpDdXJzb3JVcGRhdGUgJiYgdXNlc0luTGluZUtleXMgJiYga2V5KSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaAppbmRleCA1
N2M4ZWQ2Li5kY2I5OTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmgKQEAgLTY1LDggKzY1LDggQEAgcHVibGljOgogICAgIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90cmFu
c2FjdGlvbjsgfQogICAgIGJvb2wgYXV0b0luY3JlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0
YWRhdGEuYXV0b0luY3JlbWVudDsgfQogCi0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBhZGQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU2NyaXB0VmFsdWUmIHZhbHVlLCBFeGNl
cHRpb25Db2RlJiBlYykgeyByZXR1cm4gYWRkKGNvbnRleHQsIHZhbHVlLCAwLCBlYyk7ICB9Ci0g
ICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBwdXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgU2NyaXB0VmFsdWUmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gcHV0
KGNvbnRleHQsIHZhbHVlLCAwLCBlYyk7ICB9CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBh
ZGQoU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUm
IGVjKSB7IHJldHVybiBhZGQoc3RhdGUsIHZhbHVlLCAwLCBlYyk7ICB9CisgICAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBwdXQoU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBwdXQoc3RhdGUsIHZhbHVlLCAwLCBlYyk7ICB9
CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuQ3Vyc29yKGNv
bnRleHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4oMCksIGVjKTsgfQogICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsg
cmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwga2V5UmFuZ2UsIElEQkN1cnNvcjo6ZGlyZWN0aW9u
TmV4dCgpLCBlYyk7IH0KICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhj
ZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwga2V5LCBJREJDdXJz
b3I6OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CkBAIC03Niw4ICs3Niw4IEBAIHB1YmxpYzoKIAog
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IGdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgU2NyaXB0VmFsdWUmLCBQYXNzUmVmUHRyPElEQktleT4sIEV4
Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHB1dChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgU2NyaXB0VmFsdWUmLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZChTY3JpcHRTdGF0ZSosIFNj
cmlwdFZhbHVlJiwgUGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBwdXQoU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1ZSYsIFBhc3NS
ZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURC
S2V5UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBk
ZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+
IGtleSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY2xlYXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTkzLDcgKzkzLDcg
QEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IHB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUsIFBh
c3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTY3JpcHRW
YWx1ZSYsIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gcHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6UHV0TW9k
ZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1ZSYs
IFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgbWFya0RlbGV0
ZWQoKSB7IG1fZGVsZXRlZCA9IHRydWU7IH0KICAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNoZWQo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmUuaWRsCmluZGV4IDE0NDZiYTAuLmM3ZDhiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwKQEAgLTMzLDkgKzMzLDkg
QEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb247CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gYXV0b0luY3JlbWVudDsKIAotICAgIFtDYWxs
V2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IHB1dChpbiBhbnkgdmFsdWUs
IGluIFtPcHRpb25hbF0gSURCS2V5IGtleSkKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIElE
QlJlcXVlc3QgcHV0KGluIGFueSB2YWx1ZSwgaW4gW09wdGlvbmFsXSBJREJLZXkga2V5KQogICAg
ICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIElEQlJlcXVlc3QgYWRkKGluIGFueSB2YWx1ZSwgaW4gW09wdGlvbmFsXSBJREJL
ZXkga2V5KQorICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gSURCUmVxdWVzdCBhZGQoaW4gYW55
IHZhbHVlLCBpbiBbT3B0aW9uYWxdIElEQktleSBrZXkpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgSW1wbGVtZW50
ZWRBcz1kZWxldGVGdW5jdGlvbl0gSURCUmVxdWVzdCBkZWxldGUoaW4gSURCS2V5UmFuZ2U/IGtl
eVJhbmdlKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0tIAoxLjcuOS41Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>