<?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>65993</bug_id>
          
          <creation_ts>2011-08-10 09:52:33 -0700</creation_ts>
          <short_desc>IndexedDB: Overwriting key in unique index should be possible</short_desc>
          <delta_ts>2011-08-12 02:04:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Wennborg">hans</reporter>
          <assigned_to name="Hans Wennborg">hans</assigned_to>
          <cc>dgrogan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>449201</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-08-10 09:52:33 -0700</bug_when>
    <thetext>IndexedDB: Overwriting key in unique index should be possible</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449204</commentid>
    <comment_count>1</comment_count>
      <attachid>103499</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-08-10 09:57:23 -0700</bug_when>
    <thetext>Created attachment 103499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449206</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-10 10:00:02 -0700</bug_when>
    <thetext>Attachment 103499 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/stor...&quot; exit_code: 1

Source/WebCore/storage/IDBLevelDBBackingStore.cpp:794:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/storage/IDBSQLiteBackingStore.h:65:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/storage/IDBLevelDBBackingStore.h:70:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/storage/IDBBackingStore.h:84:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/storage/IDBSQLiteBackingStore.cpp:678:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 5 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449208</commentid>
    <comment_count>3</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-08-10 10:01:20 -0700</bug_when>
    <thetext>I noticed this bug when dealing with the unique index stuff recently.

David, would you like to take a look?

I believe the style bot errors here are bogus...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449415</commentid>
    <comment_count>4</comment_count>
      <attachid>103499</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-08-10 14:53:42 -0700</bug_when>
    <thetext>Comment on attachment 103499
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449677</commentid>
    <comment_count>5</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-08-11 02:50:47 -0700</bug_when>
    <thetext>Tony, would you like to take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449867</commentid>
    <comment_count>6</comment_count>
      <attachid>103499</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-11 10:24:10 -0700</bug_when>
    <thetext>Comment on attachment 103499
Patch

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

&gt; LayoutTests/storage/indexeddb/index-unique.html:141
&gt; +    request.onsuccess = function() { done(); }

Nit: Can you just do request.onsuccess = done; ?

&gt;&gt; Source/WebCore/storage/IDBBackingStore.h:84

&gt; 
&gt; The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]

Nit: I would give the first IDBKey a name like searchKey to disambiguate it.

&gt;&gt; Source/WebCore/storage/IDBLevelDBBackingStore.h:70
&gt;&gt; +    virtual bool keyExistsInIndex(int64_t databaseId, int64_t objectStoreId, int64_t indexId, const IDBKey&amp;, RefPtr&lt;IDBKey&gt;&amp; foundPrimaryKey);
&gt; 
&gt; The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]

Ditto.

&gt;&gt; Source/WebCore/storage/IDBSQLiteBackingStore.h:65
&gt;&gt; +    virtual bool keyExistsInIndex(int64_t databaseId, int64_t objectStoreId, int64_t indexId, const IDBKey&amp;, RefPtr&lt;IDBKey&gt;&amp; foundPrimaryKey);
&gt; 
&gt; The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450363</commentid>
    <comment_count>7</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-08-12 01:51:34 -0700</bug_when>
    <thetext>Committed r92950: &lt;http://trac.webkit.org/changeset/92950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450366</commentid>
    <comment_count>8</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-08-12 02:04:46 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 103499 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103499&amp;action=review

Thanks Tony!

&gt; 
&gt; &gt; LayoutTests/storage/indexeddb/index-unique.html:141
&gt; &gt; +    request.onsuccess = function() { done(); }
&gt; 
&gt; Nit: Can you just do request.onsuccess = done; ?
Done.

&gt; 
&gt; &gt;&gt; Source/WebCore/storage/IDBBackingStore.h:84
&gt; 
&gt; &gt; 
&gt; &gt; The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
&gt; 
&gt; Nit: I would give the first IDBKey a name like searchKey to disambiguate it.
Done.

&gt; 
&gt; &gt;&gt; Source/WebCore/storage/IDBLevelDBBackingStore.h:70
&gt; &gt;&gt; +    virtual bool keyExistsInIndex(int64_t databaseId, int64_t objectStoreId, int64_t indexId, const IDBKey&amp;, RefPtr&lt;IDBKey&gt;&amp; foundPrimaryKey);
&gt; &gt; 
&gt; &gt; The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
&gt; 
&gt; Ditto.
Done.

&gt; 
&gt; &gt;&gt; Source/WebCore/storage/IDBSQLiteBackingStore.h:65
&gt; &gt;&gt; +    virtual bool keyExistsInIndex(int64_t databaseId, int64_t objectStoreId, int64_t indexId, const IDBKey&amp;, RefPtr&lt;IDBKey&gt;&amp; foundPrimaryKey);
&gt; &gt; 
&gt; &gt; The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
&gt; 
&gt; Ditto.
Done.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103499</attachid>
            <date>2011-08-10 09:57:23 -0700</date>
            <delta_ts>2011-08-11 10:24:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65993-20110810175721.patch</filename>
            <type>text/plain</type>
            <size>13317</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI3NjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMGY4YzFkYmVmMGI4ODM4ODQ4YmMy
M2NkYWQ0NDNjOTU1YjQ4M2YzLi5kYmRmZWFjMDgxODdiN2Y3ZjZmYjQ3NmIzNjlhNWEyZDAyM2Fh
Y2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMTAgIEhhbnMgV2VubmJvcmcgIDxo
YW5zQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IE92ZXJ3cml0aW5nIGtleSBp
biB1bmlxdWUgaW5kZXggc2hvdWxkIGJlIHBvc3NpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhhdCBpdCdzIHBvc3NpYmxlIHRvIG92ZXJ3
cml0ZSBhbiBvYmplY3Qgc3RvcmUgcmVjb3JkIGV2ZW4gaWYgdGhlcmUKKyAgICAgICAgaXMgYSBk
ZXJpdmVkIGtleSBmb3IgdGhhdCByZWNvcmQgaW4gYW4gaW5kZXggd2l0aCB0aGUgdW5pcXVlIGZs
YWcgc2V0LgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW5kZXgtdW5pcXVlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUuaHRtbDoK
KwogMjAxMS0wOC0xMCAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgdGVzdCBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9pbmRleC11bmlxdWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvaW5kZXgtdW5pcXVlLWV4cGVjdGVkLnR4dAppbmRleCAyNWI2ZmYwYmI3
MGVhMDYyM2ZhNzY1M2UyNjU0YzgxMDhkMTFmNTA2Li45ZjEwZjQxNDRmZmQ0OGE1NmI4ZDU4YWY5
MGYwOWJjNmY0MzE4ZjhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbmRleC11bmlxdWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2luZGV4LXVuaXF1ZS1leHBlY3RlZC50eHQKQEAgLTM0LDYgKzM0LDcgQEAgdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJykuZGVsZXRlKCdiYXInKQogZGVsZXRlU3VjY2Vzcygp
OgogdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ3N0b3JlJykucHV0KHt4OiAxfSwgJ2JheicpCiBm
aW5hbEFkZFN1Y2Nlc3MoKToKK3RyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7
eDogMX0sICdiYXonKQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbmRleC11
bmlxdWUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1ZS5o
dG1sCmluZGV4IDdiYWQzZGEzNTdlMTIxZTdjNGUwZWIwNWZlYTQzYTFhNWQ2OWNhODYuLjEyZTI3
YzMxODljNzgyYzI3YTg2MWY3ZWRkYTI5MGViNWY4MWY1NDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1ZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LXVuaXF1ZS5odG1sCkBAIC0xMzQsNyArMTM0LDExIEBA
IGZ1bmN0aW9uIGRlbGV0ZVN1Y2Nlc3MoKQogCiBmdW5jdGlvbiBmaW5hbEFkZFN1Y2Nlc3MoKSB7
CiAgICAgZGVidWcoImZpbmFsQWRkU3VjY2VzcygpOiIpOwotICAgIGRvbmUoKTsKKworICAgIC8v
IEFuIG92ZXJ3cml0ZSBzaG91bGQgYmUgb2suCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInRy
YW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLnB1dCh7eDogMX0sICdiYXonKSIpOworICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIHJlcXVlc3Qu
b25zdWNjZXNzID0gZnVuY3Rpb24oKSB7IGRvbmUoKTsgfQogfQogCiB0ZXN0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNWNjOGMzZGZlZWVjNDRmMDY0YzY5NWUyNjJhNzBlNGUyNDIwNzUwMC4uNzM5OThiODM3
Njc2N2Y1ODFkY2YwMDgwMDZmZGNkOTE4MjhiYTk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDExLTA4LTEwICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgSW5kZXhlZERCOiBPdmVyd3JpdGluZyBrZXkgaW4gdW5pcXVlIGluZGV4IHNob3VsZCBi
ZSBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjU5OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gb3ZlcndyaXRlIGFuIG9iamVjdCBzdG9yZSByZWNv
cmQgZXZlbiBpZgorICAgICAgICB0aGVyZSBpcyBhIGRlcml2ZWQga2V5IGZvciB0aGF0IHJlY29y
ZCBpbiBhbiBpbmRleCB3aXRoIHRoZSB1bmlxdWUgZmxhZyBzZXQuCisKKyAgICAgICAgKiBzdG9y
YWdlL0lEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCSW5kZXhCYWNrZW5k
SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbXBsOjphZGRpbmdL
ZXlBbGxvd2VkKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkluZGV4QmFja2VuZEltcGwuaDoKKyAg
ICAgICAgKiBzdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6a2V5RXhpc3RzSW5JbmRleCk6CisgICAgICAg
ICogc3RvcmFnZS9JREJMZXZlbERCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogc3RvcmFnZS9J
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQlNR
TGl0ZUJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTUUxpdGVCYWNraW5n
U3RvcmU6OmtleUV4aXN0c0luSW5kZXgpOgorICAgICAgICAqIHN0b3JhZ2UvSURCU1FMaXRlQmFj
a2luZ1N0b3JlLmg6CisKIDIwMTEtMDgtMTAgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViU29ja2V0OiBBZGQgYmluYXJ5VHlwZSBhdHRyaWJ1dGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQmFja2luZ1N0b3JlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQkJhY2tpbmdTdG9yZS5oCmluZGV4IGQ5YzE1Y2E1MzcxMTk0
ZDBjOThkYzIyZDczOWM0MjNiNjdjYWNkMjguLmNlNzhlOThiMjllMGI1MzZhNjdkZGJjOGJhOGUy
YjVhMDhkYzA1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCQmFja2lu
Z1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJCYWNraW5nU3RvcmUuaApA
QCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZUluZGV4RGF0
YUZvclJlY29yZChpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBjb25zdCBPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqKSA9IDA7CiAg
ICAgdmlydHVhbCBTdHJpbmcgZ2V0T2JqZWN0VmlhSW5kZXgoaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JikgPSAw
OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IGdldFByaW1hcnlLZXlWaWFJbmRleChp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBjb25zdCBJREJLZXkmKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgo
aW50NjRfdCBkYXRhYmFzZWlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJ
ZCwgY29uc3QgSURCS2V5JikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbkluZGV4
KGludDY0X3QgZGF0YWJhc2VpZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4
SWQsIGNvbnN0IElEQktleSYsIFJlZlB0cjxJREJLZXk+JiBmb3VuZFByaW1hcnlLZXkpID0gMDsK
IAogICAgIGNsYXNzIEN1cnNvciA6IHB1YmxpYyBSZWZDb3VudGVkPEN1cnNvcj4gewogICAgIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5k
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4QmFja2VuZEltcGwuY3Bw
CmluZGV4IDM4Zjk1ZjFhMTJhZGEwMDYwYTdmMTNkNGIzYmQzYzdjNjgzZDBmZTEuLjUxMjU2NDNk
NDgwNjIxMmM4MWMzNjA0MjBlY2FhM2RkMGM1M2I5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbXBsLmNwcApAQCAtMTU4LDEyICsxNTgsMTggQEAgdm9p
ZCBJREJJbmRleEJhY2tlbmRJbXBsOjpnZXRLZXkoUGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSwg
UGFzc1JlZlB0cjxJREJDYWxsYmEKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
Tk9UX0FMTE9XRURfRVJSOwogfQogCi1ib29sIElEQkluZGV4QmFja2VuZEltcGw6OmFkZGluZ0tl
eUFsbG93ZWQoSURCS2V5KiBrZXkpCitib29sIElEQkluZGV4QmFja2VuZEltcGw6OmFkZGluZ0tl
eUFsbG93ZWQoY29uc3QgSURCS2V5KiBpbmRleEtleSwgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5
KQogewogICAgIGlmICghbV91bmlxdWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgcmV0
dXJuICFtX2JhY2tpbmdTdG9yZS0+a2V5RXhpc3RzSW5JbmRleChtX2RhdGFiYXNlSWQsIG1fb2Jq
ZWN0U3RvcmVCYWNrZW5kLT5pZCgpLCBtX2lkLCAqa2V5KTsKKyAgICBSZWZQdHI8SURCS2V5PiBm
b3VuZFByaW1hcnlLZXk7CisgICAgYm9vbCBmb3VuZCA9IG1fYmFja2luZ1N0b3JlLT5rZXlFeGlz
dHNJbkluZGV4KG1fZGF0YWJhc2VJZCwgbV9vYmplY3RTdG9yZUJhY2tlbmQtPmlkKCksIG1faWQs
ICppbmRleEtleSwgZm91bmRQcmltYXJ5S2V5KTsKKyAgICBpZiAoIWZvdW5kKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoZm91bmRQcmltYXJ5S2V5LT5pc0VxdWFsKHByaW1hcnlLZXkp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5k
ZXhCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJ
bXBsLmgKaW5kZXggMmQ0MmEwOGExOGUzMjJlNWQ4NGIyOGUyOWE1ZDdmY2IyMzZiNGExMS4uMTk5
OTAwYzMwNGQ2ZjQyMzg2MjVkZjcyZDBmZDYyODAwNmIxMjgxNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbXBsLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0SWQoaW50NjRfdCBpZCkgeyBtX2lkID0gaWQ7IH0KICAgICBib29sIGhh
c1ZhbGlkSWQoKSBjb25zdCB7IHJldHVybiBtX2lkICE9IEludmFsaWRJZDsgfTsKIAotICAgIGJv
b2wgYWRkaW5nS2V5QWxsb3dlZChJREJLZXkqKTsKKyAgICBib29sIGFkZGluZ0tleUFsbG93ZWQo
Y29uc3QgSURCS2V5KiBpbmRleEtleSwgY29uc3QgSURCS2V5KiBwcmltYXJ5S2V5KTsKIAogICAg
IC8vIEltcGxlbWVudHMgSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLgogICAgIHZpcnR1YWwgU3Ry
aW5nIG5hbWUoKSB7IHJldHVybiBtX25hbWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGM2OGNjYjE5ODZhODQzMTdhZTk1
NzZkZGIyOGUzYzc0NGM2MzYxZDEuLmNkNTQ1NGM1NzU3YzE3YTFkMDEwN2Q2MDZlNTA2MGI0Yzc1
ZDg2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCTGV2ZWxEQkJhY2tp
bmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQmFja2lu
Z1N0b3JlLmNwcApAQCAtNzkxLDE1ICs3OTEsMTYgQEAgUGFzc1JlZlB0cjxJREJLZXk+IElEQkxl
dmVsREJCYWNraW5nU3RvcmU6OmdldFByaW1hcnlLZXlWaWFJbmRleChpbnQ2NF90IGRhdGFiYXMK
ICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBJREJMZXZlbERCQmFja2luZ1N0b3JlOjprZXlFeGlz
dHNJbkluZGV4KGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYga2V5KQorYm9vbCBJREJMZXZlbERCQmFja2luZ1N0
b3JlOjprZXlFeGlzdHNJbkluZGV4KGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYga2V5LCBSZWZQdHI8SURCS2V5
PiYgZm91bmRQcmltYXJ5S2V5KQogewogICAgIEFTU0VSVChtX2N1cnJlbnRUcmFuc2FjdGlvbik7
CiAKICAgICBWZWN0b3I8Y2hhcj4gZm91bmRFbmNvZGVkUHJpbWFyeUtleTsKLSAgICBpZiAoZmlu
ZEtleUluSW5kZXgobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIGRhdGFiYXNlSWQsIG9iamVj
dFN0b3JlSWQsIGluZGV4SWQsIGtleSwgZm91bmRFbmNvZGVkUHJpbWFyeUtleSkpCi0gICAgICAg
IHJldHVybiB0cnVlOworICAgIGlmICghZmluZEtleUluSW5kZXgobV9jdXJyZW50VHJhbnNhY3Rp
b24uZ2V0KCksIGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIGtleSwgZm91bmRF
bmNvZGVkUHJpbWFyeUtleSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBm
YWxzZTsKKyAgICBkZWNvZGVJREJLZXkoZm91bmRFbmNvZGVkUHJpbWFyeUtleS5iZWdpbigpLCBm
b3VuZEVuY29kZWRQcmltYXJ5S2V5LmVuZCgpLCBmb3VuZFByaW1hcnlLZXkpOworICAgIHJldHVy
biB0cnVlOwogfQogCiBuYW1lc3BhY2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJMZXZlbERCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lE
QkxldmVsREJCYWNraW5nU3RvcmUuaAppbmRleCBkMjhhOTBjNGE2MjA2YTY1NWU0N2RiMjc1MTMx
M2E2NTc0NjZjYjgxLi5lMDI2NGMzZWRjNGU3MWI1Y2Q5ZDEwN2Q2N2IxMjYxYWVhZGRlYjJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3RvcmUuaApA
QCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZUluZGV4RGF0
YUZvclJlY29yZChpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50
NjRfdCBpbmRleElkLCBjb25zdCBPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqKTsKICAgICB2
aXJ0dWFsIFN0cmluZyBnZXRPYmplY3RWaWFJbmRleChpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmKTsKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8SURCS2V5PiBnZXRQcmltYXJ5S2V5VmlhSW5kZXgoaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3Qg
SURCS2V5Jik7Ci0gICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoaW50NjRfdCBkYXRh
YmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURC
S2V5Jik7CisgICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoaW50NjRfdCBkYXRhYmFz
ZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5
JiwgUmVmUHRyPElEQktleT4mIGZvdW5kUHJpbWFyeUtleSk7CiAKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Q3Vyc29yPiBvcGVuT2JqZWN0U3RvcmVDdXJzb3IoaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSURCQ3Vyc29yOjpEaXJl
Y3Rpb24pOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDdXJzb3I+IG9wZW5JbmRleEtleUN1cnNv
cihpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRl
eElkLCBjb25zdCBJREJLZXlSYW5nZSosIElEQkN1cnNvcjo6RGlyZWN0aW9uKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCmlu
ZGV4IDBkOGU5ZTE3YjhhNjFkZTYwZTRiOTQyY2YwMDM0ZGEwNmRlNDlhYzguLjVhNDBlNWQxYWI0
YTkyODQ5Y2EzMTYwOGRiZDQ5ZTBhNDYwNTg1NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtMjI2LDIwICsyMjYs
MjIgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXRJbnRlcm5hbChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjwKIAogICAgIFZlY3RvcjxSZWZQdHI8SURCS2V5
PiA+IGluZGV4S2V5czsKICAgICBmb3IgKEluZGV4TWFwOjppdGVyYXRvciBpdCA9IG9iamVjdFN0
b3JlLT5tX2luZGV4ZXMuYmVnaW4oKTsgaXQgIT0gb2JqZWN0U3RvcmUtPm1faW5kZXhlcy5lbmQo
KTsgKytpdCkgewotICAgICAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBmZXRjaEtleUZyb21LZXlQ
YXRoKHZhbHVlLmdldCgpLCBpdC0+c2Vjb25kLT5rZXlQYXRoKCkpOwotICAgICAgICBpZiAoIWtl
eSkgeworICAgICAgICBjb25zdCBSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4mIGluZGV4ID0g
aXQtPnNlY29uZDsKKworICAgICAgICBSZWZQdHI8SURCS2V5PiBpbmRleEtleSA9IGZldGNoS2V5
RnJvbUtleVBhdGgodmFsdWUuZ2V0KCksIGluZGV4LT5rZXlQYXRoKCkpOworICAgICAgICBpZiAo
IWluZGV4S2V5KSB7CiAgICAgICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VF
cnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVTktOT1dOX0VSUiwgIlRoZSBrZXkg
Y291bGQgbm90IGJlIGZldGNoZWQgZnJvbSBhbiBpbmRleCdzIGtleVBhdGguIikpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChrZXktPnR5cGUoKSA9PSBJREJL
ZXk6Ok51bGxUeXBlKSB7CisgICAgICAgIGlmIChpbmRleEtleS0+dHlwZSgpID09IElEQktleTo6
TnVsbFR5cGUpIHsKICAgICAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVy
cm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSLCAiT25lIG9mIHRoZSBk
ZXJpdmVkIChmcm9tIGEga2V5UGF0aCkga2V5cyBmb3IgYW4gaW5kZXggaXMgTlVMTC4iKSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCFpdC0+c2Vjb25kLT5h
ZGRpbmdLZXlBbGxvd2VkKGtleS5nZXQoKSkpIHsKKyAgICAgICAgaWYgKCFpbmRleC0+YWRkaW5n
S2V5QWxsb3dlZChpbmRleEtleS5nZXQoKSwga2V5LmdldCgpKSkgeyAvLyBTbyBwcm9ibGVtIGlz
IHRoYXQgaWYga2V5KCkgaXMgdGhlIHNhbWUgYXMgdGhlIG9sZCBrZXkgZm9yIHRoaXMgcmVjb3Jk
IGluIHRoaXMgaW5kZXgsIHRoZW4gd2UncmUgbm90IHJlYWxseSAqYWRkaW5nIGl0KiwganVzdCB1
cGRhdGluZyBpdC4uLgogICAgICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNl
RXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Q09OU1RSQUlOVF9FUlIsICJPbmUg
b2YgdGhlIGRlcml2ZWQgKGZyb20gYSBrZXlQYXRoKSBrZXlzIGZvciBhbiBpbmRleCBkb2VzIG5v
dCBzYXRpc2Z5IGl0cyB1bmlxdWVuZXNzIHJlcXVpcmVtZW50cy4iKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgaW5kZXhLZXlzLmFwcGVuZChrZXkucmVsZWFzZSgp
KTsKKyAgICAgICAgaW5kZXhLZXlzLmFwcGVuZChpbmRleEtleS5yZWxlYXNlKCkpOwogICAgIH0K
IAogICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6Ok9iamVjdFN0b3JlUmVjb3JkSWRlbnRpZmll
cj4gcmVjb3JkSWRlbnRpZmllciA9IG9iamVjdFN0b3JlLT5tX2JhY2tpbmdTdG9yZS0+Y3JlYXRl
SW52YWxpZFJlY29yZElkZW50aWZpZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvSURCU1FMaXRlQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCU1FMaXRlQmFja2luZ1N0b3JlLmNwcAppbmRleCAxMzM2MGNlOGFhMTE3MzViY2Y5NDYyOGI3
NmYyZmMyYjlhMTU5ZDQ1Li44NTRkMzFhZDgwZmZkZGQwNzY1MDEwM2JhNDhjYWIzZTJjOTUzZTNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlNRTGl0ZUJhY2tpbmdTdG9y
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJTUUxpdGVCYWNraW5nU3RvcmUu
Y3BwCkBAIC02NzUsNyArNjc1LDcgQEAgUGFzc1JlZlB0cjxJREJLZXk+IElEQlNRTGl0ZUJhY2tp
bmdTdG9yZTo6Z2V0UHJpbWFyeUtleVZpYUluZGV4KGludDY0X3QsIGludDY0X3QKICAgICByZXR1
cm4gZm91bmRLZXkucmVsZWFzZSgpOwogfQogCi1ib29sIElEQlNRTGl0ZUJhY2tpbmdTdG9yZTo6
a2V5RXhpc3RzSW5JbmRleChpbnQ2NF90LCBpbnQ2NF90LCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0
IElEQktleSYga2V5KQorYm9vbCBJREJTUUxpdGVCYWNraW5nU3RvcmU6OmtleUV4aXN0c0luSW5k
ZXgoaW50NjRfdCwgaW50NjRfdCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmIGtleSwg
UmVmUHRyPElEQktleT4mIGZvdW5kUHJpbWFyeUtleSkKIHsKICAgICBTdHJpbmcgc3FsID0gU3Ry
aW5nKCJTRUxFQ1QgaWQgRlJPTSBJbmRleERhdGEgV0hFUkUgaW5kZXhJZCA9ID8gQU5EICIpICsg
d2hlcmVTeW50YXhGb3JLZXkoa2V5KTsKICAgICBTUUxpdGVTdGF0ZW1lbnQgcXVlcnkobV9kYiwg
c3FsKTsKQEAgLTY4NSw3ICs2ODUsMTIgQEAgYm9vbCBJREJTUUxpdGVCYWNraW5nU3RvcmU6Omtl
eUV4aXN0c0luSW5kZXgoaW50NjRfdCwgaW50NjRfdCwgaW50NjRfdCBpbmRleElkLAogICAgIHF1
ZXJ5LmJpbmRJbnQ2NCgxLCBpbmRleElkKTsKICAgICBiaW5kS2V5VG9RdWVyeShxdWVyeSwgMiwg
a2V5KTsKIAotICAgIHJldHVybiBxdWVyeS5zdGVwKCkgPT0gU1FMUmVzdWx0Um93OworICAgIGlm
IChxdWVyeS5zdGVwKCkgIT0gU1FMUmVzdWx0Um93KQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBmb3VuZFByaW1hcnlLZXkgPSBnZXRQcmltYXJ5S2V5VmlhSW5kZXgoMCwgMCwgaW5kZXhJ
ZCwga2V5KTsKKyAgICBBU1NFUlQoZm91bmRQcmltYXJ5S2V5KTsKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogbmFtZXNwYWNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
U1FMaXRlQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQlNRTGl0ZUJh
Y2tpbmdTdG9yZS5oCmluZGV4IGU0NzZlNmQwMWYxODhhNTRlN2Q4NDE3ZjdiYTZlZDdlMjhjNzUw
NTMuLjI1ZmQyNjM3ZjViMDgxMTA4N2E5ODgyZTA4NTFhMWIwZDJhNmFiZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCU1FMaXRlQmFja2luZ1N0b3JlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJTUUxpdGVCYWNraW5nU3RvcmUuaApAQCAtNjIsNyArNjIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGRlbGV0ZUluZGV4RGF0YUZvclJlY29yZChp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElk
LCBjb25zdCBPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXIqKTsKICAgICB2aXJ0dWFsIFN0cmlu
ZyBnZXRPYmplY3RWaWFJbmRleChpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmKTsKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8SURCS2V5PiBnZXRQcmltYXJ5S2V5VmlhSW5kZXgoaW50NjRfdCBkYXRhYmFzZUlkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5Jik7Ci0g
ICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5Jik7CisgICAg
dmlydHVhbCBib29sIGtleUV4aXN0c0luSW5kZXgoaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiwgUmVmUHRyPElE
QktleT4mIGZvdW5kUHJpbWFyeUtleSk7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q3Vyc29y
PiBvcGVuT2JqZWN0U3RvcmVDdXJzb3IoaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSURCQ3Vyc29yOjpEaXJlY3Rpb24pOwogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxDdXJzb3I+IG9wZW5JbmRleEtleUN1cnNvcihpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJ
REJLZXlSYW5nZSosIElEQkN1cnNvcjo6RGlyZWN0aW9uKTsK
</data>
<flag name="review"
          id="99123"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>