<?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>105658</bug_id>
          
          <creation_ts>2012-12-21 14:26:36 -0800</creation_ts>
          <short_desc>IndexedDB: Combine openConnection and openConnectionWithVersion</short_desc>
          <delta_ts>2012-12-21 15:27:36 -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>
          
          <blocked>105559</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>796462</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-12-21 14:26:36 -0800</bug_when>
    <thetext>IndexedDB: Combine openConnection and openConnectionWithVersion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796464</commentid>
    <comment_count>1</comment_count>
      <attachid>180556</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-12-21 14:31:19 -0800</bug_when>
    <thetext>Created attachment 180556
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796465</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-12-21 14:31:37 -0800</bug_when>
    <thetext>dgrogan@ - can you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796488</commentid>
    <comment_count>3</comment_count>
      <attachid>180556</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-12-21 15:03:29 -0800</bug_when>
    <thetext>Comment on attachment 180556
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796490</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-12-21 15:04:41 -0800</bug_when>
    <thetext>tony@ - can you r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796505</commentid>
    <comment_count>5</comment_count>
      <attachid>180556</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-21 15:27:32 -0800</bug_when>
    <thetext>Comment on attachment 180556
Patch

Clearing flags on attachment: 180556

Committed r138400: &lt;http://trac.webkit.org/changeset/138400&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796506</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-21 15:27:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180556</attachid>
            <date>2012-12-21 14:31:19 -0800</date>
            <delta_ts>2012-12-21 15:27:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105658-20121221142834.patch</filename>
            <type>text/plain</type>
            <size>26731</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGYwMmE2Y2UxZjRhNGNl
MDljYjlhMmYyMmI2MzFmYzE0ZDQ1ZmFhYi4uYzQ5ZTdiZTkyNzJlZWFjZjQxMjM5N2ZlMzAxNWZm
NmJiZDUxOTIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTEyLTIxICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBDb21i
aW5lIG9wZW5Db25uZWN0aW9uIGFuZCBvcGVuQ29ubmVjdGlvbldpdGhWZXJzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2NTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21iaW5lIHRoZSBsb2dp
YyBmcm9tIHRoZXNlIHR3byBtZXRob2RzLiBNb3N0bHkgYSByZWZhY3RvciwgYnV0IGluIHRoZSAi
cGVuZGluZyBjYWxscyIKKyAgICAgICAgY2FzZSB0aGUgYmVoYXZpb3IgaXMgc2xpZ2h0bHkgYWx0
ZXJlZCBzaW5jZSB0aGUgdmVyc2lvbiBhbmQgbm8tdmVyc2lvbiBxdWV1ZXMgd2VyZQorICAgICAg
ICBwcmV2aW91c2x5IHNlcGFyYXRlLCBzbyB0aGUgb3JkZXIgY2hhbmdlcy4gVGhlIG5ldyBvcmRl
ciBtYXRjaGVzIHRoZSBzcGVjIGFuZCBGRi9JRQorICAgICAgICBiZWhhdmlvciwgYW5kIGEgdGVz
dCBpcyBhZGRlZCB0byB2ZXJpZnkgdGhpcy4KKworICAgICAgICBDaHJvbWl1bSdzIHdlYmtpdF91
bml0X3Rlc3RzIHJlbHkgb24gYSBxdWlyayB0byBieXBhc3MgdGhlIHVwZ3JhZGUgbWVjaGFuaXNt
OyB0aGUgdXNhZ2UKKyAgICAgICAgaXMgc2xpZ2h0bHkgYWx0ZXJlZCBhbmQgbWFkZSBtb3JlIGV4
cGxpY2l0LCBhbmQgcmVxdWlyZXMgYSBzbWFsbCBhbW91bnQgb2YgdGVzdC1vbmx5IGNvZGUuCisK
KyAgICAgICAgVGVzdDogc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1vcmRlcmluZy5odG1sCisKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OlBlbmRpbmdPcGVuQ2FsbDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OlBlbmRp
bmdPcGVuQ2FsbDo6UGVuZGluZ09wZW5DYWxsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFi
YXNlQmFja2VuZEltcGw6OlZlcnNpb25DaGFuZ2VPcGVyYXRpb246OnBlcmZvcm0pOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFu
ZEFib3J0RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6
cHJvY2Vzc1BlbmRpbmdDYWxscyk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tl
bmRJbXBsOjpvcGVuQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y2xvc2UpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaDoKKyAgICAgICAgKElEQkRhdGFiYXNl
QmFja2VuZEltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNr
ZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5QmFja2VuZEltcGw6Om9w
ZW4pOgorCiAyMDEyLTEyLTIxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM4MzM4LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCBkZjJmMGRjZWI4MTJhNGY4ZmM4ZDJkZDVhYjU3ZTY3ZTJi
OTc5YjRmLi41Y2FhN2VmYWM3YzM3NmQ5ZjRhMzY1MzdjMGEzY2M4M2YwMzUxOWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTEyLTIxICBKb3NodWEg
QmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBDb21iaW5l
IG9wZW5Db25uZWN0aW9uIGFuZCBvcGVuQ29ubmVjdGlvbldpdGhWZXJzaW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2NTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNl
QmFja2VuZFRlc3QuY3BwOgorCiAyMDEyLTEyLTIwICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9u
QGdtYWlsLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIERpc2FibGUgY29sb3IgcHJvZmlsZSBz
dXBwb3J0IGZvciBXZWJJbWFnZVNraWEgdXNlcnMgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4
IDAyNjE1ZWM2MDhkNWIyOTYwMWMxNDdhZjg0NmNiNWU3MzUwYmZiNzMuLjI4NmM3OWVlZTJiYWZh
YTI1YmE0OTk4YjUyZWY1OGYwMmU1YmFlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC0x
NTcsMzIgKzE1Nyw5IEBAIHByaXZhdGU6CiAKIGNsYXNzIElEQkRhdGFiYXNlQmFja2VuZEltcGw6
OlBlbmRpbmdPcGVuQ2FsbCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGVuZGlu
Z09wZW5DYWxsPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIGludDY0X3Qg
dHJhbnNhY3Rpb25JZCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxQZW5kaW5nT3BlbkNhbGw+IGNy
ZWF0ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklk
LCBpbnQ2NF90IHZlcnNpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBl
bmRpbmdPcGVuQ2FsbChjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB0cmFuc2FjdGlvbklk
KSk7Ci0gICAgfQotICAgIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MoKSB7IHJl
dHVybiBtX2NhbGxiYWNrczsgfQotICAgIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
IGRhdGFiYXNlQ2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kYXRhYmFzZUNhbGxiYWNrczsgfQotICAg
IGludDY0X3QgdHJhbnNhY3Rpb25JZCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25JZDsg
fQotCi1wcml2YXRlOgotICAgIFBlbmRpbmdPcGVuQ2FsbChQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNh
bGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkKQotICAgICAgICA6IG1fY2FsbGJhY2tzKGNh
bGxiYWNrcykKLSAgICAgICAgLCBtX2RhdGFiYXNlQ2FsbGJhY2tzKGRhdGFiYXNlQ2FsbGJhY2tz
KQotICAgICAgICAsIG1fdHJhbnNhY3Rpb25JZCh0cmFuc2FjdGlvbklkKQotICAgIHsKLSAgICB9
Ci0KLSAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKLSAgICBSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3M+IG1fZGF0YWJhc2VDYWxsYmFja3M7Ci0gICAgY29uc3QgaW50NjRf
dCBtX3RyYW5zYWN0aW9uSWQ7Ci19OwotCi1jbGFzcyBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpQ
ZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFz
ZUNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHZlcnNpb24pCi0gICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxs
KGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MsIHRyYW5zYWN0aW9uSWQsIHZlcnNpb24pKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQZW5kaW5nT3BlbkNhbGwoY2FsbGJhY2tzLCBk
YXRhYmFzZUNhbGxiYWNrcywgdHJhbnNhY3Rpb25JZCwgdmVyc2lvbikpOwogICAgIH0KICAgICBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKCkgeyByZXR1cm4gbV9jYWxsYmFja3M7
IH0KICAgICBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNr
cygpIHsgcmV0dXJuIG1fZGF0YWJhc2VDYWxsYmFja3M7IH0KQEAgLTE5MCw3ICsxNjcsNyBAQCBw
dWJsaWM6CiAgICAgaW50NjRfdCB0cmFuc2FjdGlvbklkKCkgY29uc3QgeyByZXR1cm4gbV90cmFu
c2FjdGlvbklkOyB9CiAKIHByaXZhdGU6Ci0gICAgUGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwo
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50
NjRfdCB2ZXJzaW9uKQorICAgIFBlbmRpbmdPcGVuQ2FsbChQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNh
bGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHZlcnNpb24pCiAgICAgICAg
IDogbV9jYWxsYmFja3MoY2FsbGJhY2tzKQogICAgICAgICAsIG1fZGF0YWJhc2VDYWxsYmFja3Mo
ZGF0YWJhc2VDYWxsYmFja3MpCiAgICAgICAgICwgbV92ZXJzaW9uKHZlcnNpb24pCkBAIC00MDIs
OCArMzc5LDggQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpWZXJzaW9uQ2hhbmdlT3Bl
cmF0aW9uOjpwZXJmb3JtKElEQlRyYW5zYWN0aW9uQmFja2UKICAgICAgICAgdHJhbnNhY3Rpb24t
PmFib3J0KGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBBU1NFUlQoIW1fZGF0
YWJhc2UtPm1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24pOwotICAgIG1fZGF0YWJh
c2UtPm1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24gPSBQZW5kaW5nT3BlbldpdGhW
ZXJzaW9uQ2FsbDo6Y3JlYXRlKG1fY2FsbGJhY2tzLCBtX2RhdGFiYXNlQ2FsbGJhY2tzLCBtX3Ry
YW5zYWN0aW9uSWQsIG1fdmVyc2lvbik7CisgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5tX3BlbmRp
bmdTZWNvbmRIYWxmT3Blbik7CisgICAgbV9kYXRhYmFzZS0+bV9wZW5kaW5nU2Vjb25kSGFsZk9w
ZW4gPSBQZW5kaW5nT3BlbkNhbGw6OmNyZWF0ZShtX2NhbGxiYWNrcywgbV9kYXRhYmFzZUNhbGxi
YWNrcywgbV90cmFuc2FjdGlvbklkLCBtX3ZlcnNpb24pOwogICAgIG1fY2FsbGJhY2tzLT5vblVw
Z3JhZGVOZWVkZWQob2xkVmVyc2lvbiwgdHJhbnNhY3Rpb24sIG1fZGF0YWJhc2UpOwogfQogCkBA
IC00MzUsOSArNDEyLDkgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlv
bkZpbmlzaGVkQW5kQWJvcnRGaXJlZChQYXNzUmVmUHRyPElEQlRyYW4KICAgICAgICAgLy8gSWYg
dGhpcyB3YXMgYW4gb3Blbi13aXRoLXZlcnNpb24gY2FsbCwgdGhlcmUgd2lsbCBiZSBhICJzZWNv
bmQKICAgICAgICAgLy8gaGFsZiIgb3BlbiBjYWxsIHdhaXRpbmcgZm9yIHVzIGluIHByb2Nlc3NQ
ZW5kaW5nQ2FsbHMuCiAgICAgICAgIC8vIEZJWE1FOiBXaGVuIHdlIG5vIGxvbmdlciBzdXBwb3J0
IHNldFZlcnNpb24sIGFzc2VydCBzdWNoIGEgdGhpbmcuCi0gICAgICAgIGlmIChtX3BlbmRpbmdT
ZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uKSB7Ci0gICAgICAgICAgICBtX3BlbmRpbmdTZWNvbmRI
YWxmT3BlbldpdGhWZXJzaW9uLT5jYWxsYmFja3MoKS0+b25FcnJvcihJREJEYXRhYmFzZUVycm9y
OjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFib3J0RXJyb3IsICJWZXJzaW9uIGNoYW5n
ZSB0cmFuc2FjdGlvbiB3YXMgYWJvcnRlZCBpbiB1cGdyYWRlbmVlZGVkIGV2ZW50IGhhbmRsZXIu
IikpOwotICAgICAgICAgICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbi5yZWxl
YXNlKCk7CisgICAgICAgIGlmIChtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbikgeworICAgICAgICAg
ICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4tPmNhbGxiYWNrcygpLT5vbkVycm9yKElEQkRhdGFi
YXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6QWJvcnRFcnJvciwgIlZlcnNp
b24gY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkIGluIHVwZ3JhZGVuZWVkZWQgZXZlbnQg
aGFuZGxlci4iKSk7CisgICAgICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3Blbi5yZWxlYXNl
KCk7CiAgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1BlbmRpbmdDYWxscygpOwogICAgIH0KQEAg
LTQ1OCwxMSArNDM1LDExIEBAIHNpemVfdCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjb25uZWN0
aW9uQ291bnQoKQogCiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnByb2Nlc3NQZW5kaW5n
Q2FsbHMoKQogewotICAgIGlmIChtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uKSB7
Ci0gICAgICAgIEFTU0VSVChtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLT52ZXJz
aW9uKCkgPT0gbV9tZXRhZGF0YS5pbnRWZXJzaW9uKTsKKyAgICBpZiAobV9wZW5kaW5nU2Vjb25k
SGFsZk9wZW4pIHsKKyAgICAgICAgQVNTRVJUKG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuLT52ZXJz
aW9uKCkgPT0gbV9tZXRhZGF0YS5pbnRWZXJzaW9uKTsKICAgICAgICAgQVNTRVJUKG1fbWV0YWRh
dGEuaWQgIT0gSW52YWxpZElkKTsKLSAgICAgICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRo
VmVyc2lvbi0+Y2FsbGJhY2tzKCktPm9uU3VjY2Vzcyh0aGlzKTsKLSAgICAgICAgbV9wZW5kaW5n
U2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbi5yZWxlYXNlKCk7CisgICAgICAgIG1fcGVuZGluZ1Nl
Y29uZEhhbGZPcGVuLT5jYWxsYmFja3MoKS0+b25TdWNjZXNzKHRoaXMpOworICAgICAgICBtX3Bl
bmRpbmdTZWNvbmRIYWxmT3Blbi5yZWxlYXNlKCk7CiAgICAgICAgIC8vIEZhbGwgdGhyb3VnaCB3
aGVuIGNvbXBsZXRlLCBhcyBwZW5kaW5nIGRlbGV0ZXMgbWF5IGJlIChwYXJ0aWFsbHkpIHVuYmxv
Y2tlZC4KICAgICB9CiAKQEAgLTQ4NSwyMCArNDYyLDEyIEBAIHZvaWQgSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbDo6cHJvY2Vzc1BlbmRpbmdDYWxscygpCiAgICAgaWYgKG1fcnVubmluZ1ZlcnNpb25D
aGFuZ2VUcmFuc2FjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgRGVxdWU8T3duUHRyPFBl
bmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsPiA+IHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsczsK
LSAgICBtX3BlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxscy5zd2FwKHBlbmRpbmdPcGVuV2l0aFZl
cnNpb25DYWxscyk7Ci0gICAgd2hpbGUgKCFwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHMuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIE93blB0cjxQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbD4gcGVu
ZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwgPSBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHMudGFr
ZUZpcnN0KCk7Ci0gICAgICAgIG9wZW5Db25uZWN0aW9uV2l0aFZlcnNpb24ocGVuZGluZ09wZW5X
aXRoVmVyc2lvbkNhbGwtPmNhbGxiYWNrcygpLCBwZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbC0+
ZGF0YWJhc2VDYWxsYmFja3MoKSwgcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPnRyYW5zYWN0
aW9uSWQoKSwgcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPnZlcnNpb24oKSk7Ci0gICAgfQot
Ci0gICAgLy8gT3BlbiBjYWxscyBjYW4gYmUgcmVxdWV1ZWQgaWYgYW4gb3BlbldpdGhWZXJzaW9u
IGNhbGwgc3RhcnRlZCBhIHZlcnNpb24KLSAgICAvLyBjaGFuZ2UgdHJhbnNhY3Rpb24uCisgICAg
Ly8gT3BlbiBjYWxscyBjYW4gYmUgcmVxdWV1ZWQgaWYgYW4gb3BlbiBjYWxsIHN0YXJ0ZWQgYSB2
ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbi4KICAgICBEZXF1ZTxPd25QdHI8UGVuZGluZ09wZW5D
YWxsPiA+IHBlbmRpbmdPcGVuQ2FsbHM7CiAgICAgbV9wZW5kaW5nT3BlbkNhbGxzLnN3YXAocGVu
ZGluZ09wZW5DYWxscyk7CiAgICAgd2hpbGUgKCFwZW5kaW5nT3BlbkNhbGxzLmlzRW1wdHkoKSkg
ewogICAgICAgICBPd25QdHI8UGVuZGluZ09wZW5DYWxsPiBwZW5kaW5nT3BlbkNhbGwgPSBwZW5k
aW5nT3BlbkNhbGxzLnRha2VGaXJzdCgpOwotICAgICAgICBvcGVuQ29ubmVjdGlvbihwZW5kaW5n
T3BlbkNhbGwtPmNhbGxiYWNrcygpLCBwZW5kaW5nT3BlbkNhbGwtPmRhdGFiYXNlQ2FsbGJhY2tz
KCksIHBlbmRpbmdPcGVuQ2FsbC0+dHJhbnNhY3Rpb25JZCgpKTsKKyAgICAgICAgb3BlbkNvbm5l
Y3Rpb24ocGVuZGluZ09wZW5DYWxsLT5jYWxsYmFja3MoKSwgcGVuZGluZ09wZW5DYWxsLT5kYXRh
YmFzZUNhbGxiYWNrcygpLCBwZW5kaW5nT3BlbkNhbGwtPnRyYW5zYWN0aW9uSWQoKSwgcGVuZGlu
Z09wZW5DYWxsLT52ZXJzaW9uKCkpOwogICAgIH0KIH0KIApAQCAtNTE2LDI1ICs0ODUsNjQgQEAg
dm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIFBhc3NSZWZQdHIKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAot
dm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBk
YXRhYmFzZUNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkKQordm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJw
Q2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBEYXRhYmFzZUNh
bGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHZlcnNpb24pCiB7CiAgICAg
QVNTRVJUKG1fYmFja2luZ1N0b3JlLmdldCgpKTsKKyAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MgPSBwcnBDYWxsYmFja3M7CisgICAgUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PiBkYXRhYmFzZUNhbGxiYWNrcyA9IHBycERhdGFiYXNlQ2FsbGJhY2tzOworCiAgICAgaWYgKCFt
X3BlbmRpbmdEZWxldGVDYWxscy5pc0VtcHR5KCkgfHwgbV9ydW5uaW5nVmVyc2lvbkNoYW5nZVRy
YW5zYWN0aW9uKSB7Ci0gICAgICAgIG1fcGVuZGluZ09wZW5DYWxscy5hcHBlbmQoUGVuZGluZ09w
ZW5DYWxsOjpjcmVhdGUoY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywgdHJhbnNhY3Rpb25J
ZCkpOworICAgICAgICBtX3BlbmRpbmdPcGVuQ2FsbHMuYXBwZW5kKFBlbmRpbmdPcGVuQ2FsbDo6
Y3JlYXRlKGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MsIHRyYW5zYWN0aW9uSWQsIHZlcnNp
b24pKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobV9tZXRhZGF0YS5pZCA9PSBJ
bnZhbGlkSWQgJiYgIW9wZW5JbnRlcm5hbCgpKSB7Ci0gICAgICAgIGNhbGxiYWNrcy0+b25FcnJv
cihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25F
cnJvciwgIkludGVybmFsIGVycm9yIG9wZW5pbmcgZGF0YWJhc2Ugd2l0aCBubyB2ZXJzaW9uIHNw
ZWNpZmllZC4iKSk7CisKKyAgICBpZiAobV9tZXRhZGF0YS5pZCA9PSBJbnZhbGlkSWQpIHsKKyAg
ICAgICAgLy8gVGhlIGRhdGFiYXNlIHdhcyBkZWxldGVkIHRoZW4gaW1tZWRpYXRlbHkgcmUtb3Bl
bmVkOyBvcGVuSW50ZXJuYWwoKSByZWNyZWF0ZXMgaXQgaW4gdGhlIGJhY2tpbmcgc3RvcmUuCisg
ICAgICAgIGlmIChvcGVuSW50ZXJuYWwoKSkKKyAgICAgICAgICAgIEFTU0VSVChtX21ldGFkYXRh
LmludFZlcnNpb24gPT0gSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICAgICAgICAgIFJlZlB0
cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcjsKKyAgICAgICAgICAgIGlmICh2ZXJzaW9uID09IElE
QkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKKyAgICAgICAgICAgICAgICBtZXNzYWdl
ID0gIkludGVybmFsIGVycm9yIG9wZW5pbmcgZGF0YWJhc2Ugd2l0aCBubyB2ZXJzaW9uIHNwZWNp
ZmllZC4iOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBTdHJp
bmc6OmZvcm1hdCgiSW50ZXJuYWwgZXJyb3Igb3BlbmluZyBkYXRhYmFzZSB3aXRoIHZlcnNpb24g
JWxsZCIsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4odmVyc2lvbikpOworICAgICAgICAgICAgY2Fs
bGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6VW5rbm93bkVycm9yLCBtZXNzYWdlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICAvLyBXZSBpbmZlciB0aGF0IHRoZSBkYXRhYmFzZSBkaWRuJ3Qg
ZXhpc3QgZnJvbSBpdHMgbGFjayBvZiBlaXRoZXIgdHlwZSBvZiB2ZXJzaW9uLgorICAgIGJvb2wg
aXNOZXdEYXRhYmFzZSA9IG1fbWV0YWRhdGEudmVyc2lvbiA9PSBOb1N0cmluZ1ZlcnNpb24gJiYg
bV9tZXRhZGF0YS5pbnRWZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lv
bjsKKworICAgIGlmICh2ZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRW
ZXJzaW9uKSB7CisgICAgICAgIC8vIEZvciB1bml0IHRlc3RzIG9ubHkgLSBza2lwIHVwZ3JhZGUg
c3RlcHMuIENhbGxpbmcgZnJvbSBzY3JpcHQgd2l0aCBEZWZhdWx0SW50VmVyc2lvbiB0aHJvd3Mg
ZXhjZXB0aW9uLgorICAgICAgICBBU1NFUlQoaXNOZXdEYXRhYmFzZSk7CisgICAgICAgIG1fZGF0
YWJhc2VDYWxsYmFja3NTZXQuYWRkKGRhdGFiYXNlQ2FsbGJhY2tzKTsKKyAgICAgICAgY2FsbGJh
Y2tzLT5vblN1Y2Nlc3ModGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgaWYgKG1f
bWV0YWRhdGEudmVyc2lvbiA9PSBOb1N0cmluZ1ZlcnNpb24gJiYgbV9tZXRhZGF0YS5pbnRWZXJz
aW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikgewotICAgICAgICAvLyBT
cGVjIHNheXM6IElmIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkIGFuZCBubyBkYXRhYmFzZSBleGlz
dHMsIHNldAotICAgICAgICAvLyBkYXRhYmFzZSB2ZXJzaW9uIHRvIDEuIFdlIGluZmVyIHRoYXQg
dGhlIGRhdGFiYXNlIGRpZG4ndCBleGlzdCBmcm9tCi0gICAgICAgIC8vIGl0cyBsYWNrIG9mIGVp
dGhlciB0eXBlIG9mIHZlcnNpb24uCi0gICAgICAgIG9wZW5Db25uZWN0aW9uV2l0aFZlcnNpb24o
Y2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywgdHJhbnNhY3Rpb25JZCwgMSk7CisKKyAgICBp
ZiAodmVyc2lvbiA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pIHsKKyAgICAg
ICAgaWYgKCFpc05ld0RhdGFiYXNlKSB7CisgICAgICAgICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tz
U2V0LmFkZChSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KGRhdGFiYXNlQ2FsbGJhY2tzKSk7
CisgICAgICAgICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBTcGVjIHNheXM6IElmIG5vIHZlcnNpb24gaXMg
c3BlY2lmaWVkIGFuZCBubyBkYXRhYmFzZSBleGlzdHMsIHNldCBkYXRhYmFzZSB2ZXJzaW9uIHRv
IDEuCisgICAgICAgIHZlcnNpb24gPSAxOworICAgIH0KKworICAgIGlmICh2ZXJzaW9uID4gbV9t
ZXRhZGF0YS5pbnRWZXJzaW9uKSB7CisgICAgICAgIHJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2Fj
dGlvbihjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB0cmFuc2FjdGlvbklkLCB2ZXJzaW9u
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0LmFk
ZChSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+KGRhdGFiYXNlQ2FsbGJhY2tzKSk7CisgICAg
aWYgKHZlcnNpb24gPCBtX21ldGFkYXRhLmludFZlcnNpb24pIHsKKyAgICAgICAgY2FsbGJhY2tz
LT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VmVyc2lvbkVycm9yLCBTdHJpbmc6OmZvcm1hdCgiVGhlIHJlcXVlc3RlZCB2ZXJzaW9uICglbGxk
KSBpcyBsZXNzIHRoYW4gdGhlIGV4aXN0aW5nIHZlcnNpb24gKCVsbGQpLiIsIHN0YXRpY19jYXN0
PGxvbmcgbG9uZz4odmVyc2lvbiksIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4obV9tZXRhZGF0YS5p
bnRWZXJzaW9uKSkpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBBU1NFUlQodmVyc2lv
biA9PSBtX21ldGFkYXRhLmludFZlcnNpb24pOworICAgIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQu
YWRkKGRhdGFiYXNlQ2FsbGJhY2tzKTsKICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzKTsK
IH0KIApAQCAtNTU5LDcgKzU2Nyw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVu
SW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhCiAgICAgICAg
IGNhbGxiYWNrcy0+b25CbG9ja2VkKG1fbWV0YWRhdGEuaW50VmVyc2lvbik7CiAgICAgLy8gRklY
TUU6IEFkZCB0ZXN0IGZvciBtX3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24uCiAgICAg
aWYgKG1fcnVubmluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiB8fCBjb25uZWN0aW9uQ291bnQo
KSkgewotICAgICAgICBtX3BlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxscy5hcHBlbmQoUGVuZGlu
Z09wZW5XaXRoVmVyc2lvbkNhbGw6OmNyZWF0ZShjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tz
LCB0cmFuc2FjdGlvbklkLCByZXF1ZXN0ZWRWZXJzaW9uKSk7CisgICAgICAgIG1fcGVuZGluZ09w
ZW5DYWxscy5hcHBlbmQoUGVuZGluZ09wZW5DYWxsOjpjcmVhdGUoY2FsbGJhY2tzLCBkYXRhYmFz
ZUNhbGxiYWNrcywgdHJhbnNhY3Rpb25JZCwgcmVxdWVzdGVkVmVyc2lvbikpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC01NzAsMzcgKzU3OCw4IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8SURCQ2Fs
bGJhCiAgICAgaWYgKCF0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKFZlcnNpb25DaGFuZ2VPcGVy
YXRpb246OmNyZWF0ZSh0aGlzLCB0cmFuc2FjdGlvbklkLCByZXF1ZXN0ZWRWZXJzaW9uLCBjYWxs
YmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzKSwgVmVyc2lvbkNoYW5nZUFib3J0T3BlcmF0aW9uOjpj
cmVhdGUodGhpcywgbV9tZXRhZGF0YS52ZXJzaW9uLCBtX21ldGFkYXRhLmludFZlcnNpb24pKSkg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9Ci0gICAgQVNTRVJUKCFtX3Bl
bmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uKTsKLSAgICBtX2RhdGFiYXNlQ2FsbGJhY2tz
U2V0LmFkZChkYXRhYmFzZUNhbGxiYWNrcyk7Ci19Ci0KLXZvaWQgSURCRGF0YWJhc2VCYWNrZW5k
SW1wbDo6b3BlbkNvbm5lY3Rpb25XaXRoVmVyc2lvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4g
cHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBEYXRhYmFz
ZUNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHZlcnNpb24pCi17Ci0g
ICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzID0gcHJwQ2FsbGJhY2tzOwotICAgIFJl
ZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MgPSBwcnBEYXRhYmFz
ZUNhbGxiYWNrczsKLSAgICBpZiAoIW1fcGVuZGluZ0RlbGV0ZUNhbGxzLmlzRW1wdHkoKSB8fCBt
X3J1bm5pbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pIHsKLSAgICAgICAgbV9wZW5kaW5nT3Bl
bldpdGhWZXJzaW9uQ2FsbHMuYXBwZW5kKFBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsOjpjcmVh
dGUoY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywgdHJhbnNhY3Rpb25JZCwgdmVyc2lvbikp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChtX21ldGFkYXRhLmlkID09IEludmFs
aWRJZCkgewotICAgICAgICBpZiAob3BlbkludGVybmFsKCkpCi0gICAgICAgICAgICBBU1NFUlQo
bV9tZXRhZGF0YS5pbnRWZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lv
bik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRh
dGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBT
dHJpbmc6OmZvcm1hdCgiSW50ZXJuYWwgZXJyb3Igb3BlbmluZyBjb25uZWN0aW9uIHdpdGggdmVy
c2lvbiAlbGxkIiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPih2ZXJzaW9uKSkpKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAodmVyc2lvbiA+IG1fbWV0YWRh
dGEuaW50VmVyc2lvbikgewotICAgICAgICBydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24o
Y2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywgdHJhbnNhY3Rpb25JZCwgdmVyc2lvbik7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKHZlcnNpb24gPCBtX21ldGFkYXRhLmludFZl
cnNpb24pIHsKLSAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNy
ZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VmVyc2lvbkVycm9yLCBTdHJpbmc6OmZvcm1hdCgi
VGhlIHJlcXVlc3RlZCB2ZXJzaW9uICglbGxkKSBpcyBsZXNzIHRoYW4gdGhlIGV4aXN0aW5nIHZl
cnNpb24gKCVsbGQpLiIsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4odmVyc2lvbiksIHN0YXRpY19j
YXN0PGxvbmcgbG9uZz4obV9tZXRhZGF0YS5pbnRWZXJzaW9uKSkpKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICBBU1NFUlQodmVyc2lvbiA9PSBtX21ldGFkYXRhLmludFZlcnNpb24pOwor
ICAgIEFTU0VSVCghbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4pOwogICAgIG1fZGF0YWJhc2VDYWxs
YmFja3NTZXQuYWRkKGRhdGFiYXNlQ2FsbGJhY2tzKTsKLSAgICBjYWxsYmFja3MtPm9uU3VjY2Vz
cyh0aGlzKTsKIH0KIAogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpkZWxldGVEYXRhYmFz
ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzKQpAQCAtNjQ3LDkgKzYyNiw5
IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y2xvc2UoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzCiAgICAgQVNTRVJUKG1fZGF0YWJhc2VDYWxsYmFj
a3NTZXQuY29udGFpbnMoY2FsbGJhY2tzKSk7CiAKICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzU2V0
LnJlbW92ZShjYWxsYmFja3MpOwotICAgIGlmIChtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhW
ZXJzaW9uICYmIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb24tPmRhdGFiYXNlQ2Fs
bGJhY2tzKCkgPT0gY2FsbGJhY2tzKSB7Ci0gICAgICAgIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVu
V2l0aFZlcnNpb24tPmNhbGxiYWNrcygpLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0
ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6QWJvcnRFcnJvciwgIlRoZSBjb25uZWN0aW9uIHdhcyBj
bG9zZWQuIikpOwotICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uLnJl
bGVhc2UoKTsKKyAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4gJiYgbV9wZW5kaW5nU2Vj
b25kSGFsZk9wZW4tPmRhdGFiYXNlQ2FsbGJhY2tzKCkgPT0gY2FsbGJhY2tzKSB7CisgICAgICAg
IG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuLT5jYWxsYmFja3MoKS0+b25FcnJvcihJREJEYXRhYmFz
ZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkFib3J0RXJyb3IsICJUaGUgY29u
bmVjdGlvbiB3YXMgY2xvc2VkLiIpKTsKKyAgICAgICAgbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4u
cmVsZWFzZSgpOwogICAgIH0KIAogICAgIGlmIChjb25uZWN0aW9uQ291bnQoKSA+IDEpCkBAIC02
NjUsOCArNjQ0LDggQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjbG9zZShQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MKICAgICBtX2Nsb3NpbmdDb25u
ZWN0aW9uID0gdHJ1ZTsKICAgICBwcm9jZXNzUGVuZGluZ0NhbGxzKCk7CiAKLSAgICAvLyBGSVhN
RTogQWRkIGEgdGVzdCBmb3IgdGhlIG1fcGVuZGluZ09wZW5DYWxscyBhbmQgbV9wZW5kaW5nT3Bl
bldpdGhWZXJzaW9uQ2FsbHMgY2FzZXMgYmVsb3cuCi0gICAgaWYgKCFjb25uZWN0aW9uQ291bnQo
KSAmJiAhbV9wZW5kaW5nT3BlbkNhbGxzLnNpemUoKSAmJiAhbV9wZW5kaW5nT3BlbldpdGhWZXJz
aW9uQ2FsbHMuc2l6ZSgpICYmICFtX3BlbmRpbmdEZWxldGVDYWxscy5zaXplKCkpIHsKKyAgICAv
LyBGSVhNRTogQWRkIGEgdGVzdCBmb3IgdGhlIG1fcGVuZGluZ09wZW5DYWxscyBjYXNlcyBiZWxv
dy4KKyAgICBpZiAoIWNvbm5lY3Rpb25Db3VudCgpICYmICFtX3BlbmRpbmdPcGVuQ2FsbHMuc2l6
ZSgpICYmICFtX3BlbmRpbmdEZWxldGVDYWxscy5zaXplKCkpIHsKICAgICAgICAgVHJhbnNhY3Rp
b25NYXAgdHJhbnNhY3Rpb25zKG1fdHJhbnNhY3Rpb25zKTsKICAgICAgICAgUmVmUHRyPElEQkRh
dGFiYXNlRXJyb3I+IGVycm9yID0gSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGNsb3NpbmcuIik7CiAgICAg
ICAgIGZvciAoVHJhbnNhY3Rpb25NYXA6OmNvbnN0X2l0ZXJhdG9yOjpWYWx1ZXMgaXQgPSB0cmFu
c2FjdGlvbnMudmFsdWVzKCkuYmVnaW4oKSwgZW5kID0gdHJhbnNhY3Rpb25zLnZhbHVlcygpLmVu
ZCgpOyBpdCAhPSBlbmQ7ICsraXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKaW5kZXggOGJiMzVkZTM0NjFj
MDQ4YmNmOTMwNmUwOGMwNzYxMDRlMDUxNDRiMS4uMDQ0ODk3YmUzOGY5YWI1NzU1OWIzNTA0ZGUx
YTEwZTNhZjk4ZDgzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaApAQCAtNTUsOCArNTUsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IGludDY0X3QgSW52YWxpZElkID0gMDsKICAgICBpbnQ2NF90
IGlkKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YS5pZDsgfQogCi0gICAgdm9pZCBvcGVuQ29u
bmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VD
YWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQpOwotICAgIHZvaWQgb3BlbkNvbm5lY3Rp
b25XaXRoVmVyc2lvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QgdmVyc2lvbik7
CisgICAgdm9pZCBvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0
X3QgdmVyc2lvbik7CiAgICAgdm9pZCBkZWxldGVEYXRhYmFzZShQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4pOwogCiAgICAgLy8gSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlCkBAIC0xMjYsMTAg
KzEyNSw3IEBAIHByaXZhdGU6CiAKICAgICBjbGFzcyBQZW5kaW5nT3BlbkNhbGw7CiAgICAgRGVx
dWU8T3duUHRyPFBlbmRpbmdPcGVuQ2FsbD4gPiBtX3BlbmRpbmdPcGVuQ2FsbHM7Ci0KLSAgICBj
bGFzcyBQZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbDsKLSAgICBEZXF1ZTxPd25QdHI8UGVuZGlu
Z09wZW5XaXRoVmVyc2lvbkNhbGw+ID4gbV9wZW5kaW5nT3BlbldpdGhWZXJzaW9uQ2FsbHM7Ci0g
ICAgT3duUHRyPFBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsPiBtX3BlbmRpbmdTZWNvbmRIYWxm
T3BlbldpdGhWZXJzaW9uOworICAgIE93blB0cjxQZW5kaW5nT3BlbkNhbGw+IG1fcGVuZGluZ1Nl
Y29uZEhhbGZPcGVuOwogCiAgICAgY2xhc3MgUGVuZGluZ0RlbGV0ZUNhbGw7CiAgICAgRGVxdWU8
T3duUHRyPFBlbmRpbmdEZWxldGVDYWxsPiA+IG1fcGVuZGluZ0RlbGV0ZUNhbGxzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNr
ZW5kSW1wbC5jcHAKaW5kZXggNDUxYzgxZDExMzNhODg2ZDg2OWY0ZDkyYzBmZmMwNjAwMjgwMzJi
OS4uMjNjNjE2ZWE3NTY5NDQ4NGI2YTIzYzhmZGJiMzA0NjMzNTE5ZmQ4YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2Vu
ZEltcGwuY3BwCkBAIC0xNjUsMTAgKzE2NSw3IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRJbXBs
OjpvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyCiAg
ICAgfSBlbHNlCiAgICAgICAgIGRhdGFiYXNlQmFja2VuZCA9IGl0LT52YWx1ZTsKIAotICAgIGlm
ICh2ZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKLSAgICAgICAg
ZGF0YWJhc2VCYWNrZW5kLT5vcGVuQ29ubmVjdGlvbihjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJh
Y2tzLCB0cmFuc2FjdGlvbklkKTsKLSAgICBlbHNlCi0gICAgICAgIGRhdGFiYXNlQmFja2VuZC0+
b3BlbkNvbm5lY3Rpb25XaXRoVmVyc2lvbihjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB0
cmFuc2FjdGlvbklkLCB2ZXJzaW9uKTsKKyAgICBkYXRhYmFzZUJhY2tlbmQtPm9wZW5Db25uZWN0
aW9uKGNhbGxiYWNrcywgZGF0YWJhc2VDYWxsYmFja3MsIHRyYW5zYWN0aW9uSWQsIHZlcnNpb24p
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAppbmRleCAxMTcyZWFi
MGIzNzUyYjRjNDY3NDBlZDFjNWEwM2IyNjNjZmQ2YzRmLi43ZmI1MDM0Mjg3ZjZhODk5MzZlNzU4
YWY0ZDkzZjNjZTBjYTI5OTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKQEAgLTEyNSwxMSArMTI1LDExIEBA
IFRFU1QoSURCRGF0YWJhc2VCYWNrZW5kVGVzdCwgQ29ubmVjdGlvbkxpZmVjeWNsZSkKIAogICAg
IFJlZlB0cjxNb2NrSURCQ2FsbGJhY2tzPiByZXF1ZXN0MSA9IE1vY2tJREJDYWxsYmFja3M6OmNy
ZWF0ZSgpOwogICAgIFJlZlB0cjxGYWtlSURCRGF0YWJhc2VDYWxsYmFja3M+IGNvbm5lY3Rpb24x
ID0gRmFrZUlEQkRhdGFiYXNlQ2FsbGJhY2tzOjpjcmVhdGUoKTsKLSAgICBkYi0+b3BlbkNvbm5l
Y3Rpb25XaXRoVmVyc2lvbihyZXF1ZXN0MSwgY29ubmVjdGlvbjEsIDEsIElEQkRhdGFiYXNlTWV0
YWRhdGE6Ok5vSW50VmVyc2lvbik7CisgICAgZGItPm9wZW5Db25uZWN0aW9uKHJlcXVlc3QxLCBj
b25uZWN0aW9uMSwgMSwgSURCRGF0YWJhc2VNZXRhZGF0YTo6RGVmYXVsdEludFZlcnNpb24pOwog
CiAgICAgUmVmUHRyPE1vY2tJREJDYWxsYmFja3M+IHJlcXVlc3QyID0gTW9ja0lEQkNhbGxiYWNr
czo6Y3JlYXRlKCk7CiAgICAgUmVmUHRyPEZha2VJREJEYXRhYmFzZUNhbGxiYWNrcz4gY29ubmVj
dGlvbjIgPSBGYWtlSURCRGF0YWJhc2VDYWxsYmFja3M6OmNyZWF0ZSgpOwotICAgIGRiLT5vcGVu
Q29ubmVjdGlvbldpdGhWZXJzaW9uKHJlcXVlc3QyLCBjb25uZWN0aW9uMiwgMiwgSURCRGF0YWJh
c2VNZXRhZGF0YTo6Tm9JbnRWZXJzaW9uKTsKKyAgICBkYi0+b3BlbkNvbm5lY3Rpb24ocmVxdWVz
dDIsIGNvbm5lY3Rpb24yLCAyLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpEZWZhdWx0SW50VmVyc2lv
bik7CiAKICAgICBkYi0+Y2xvc2UoY29ubmVjdGlvbjEpOwogICAgIEVYUEVDVF9HVChiYWNraW5n
U3RvcmUtPnJlZkNvdW50KCksIDEpOwpAQCAtMjAxLDcgKzIwMSw3IEBAIFRFU1QoSURCRGF0YWJh
c2VCYWNrZW5kVGVzdCwgRm9yY2VkQ2xvc2UpCiAKICAgICBSZWZQdHI8TW9ja0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5PiBwcm94eSA9IE1vY2tJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Y3JlYXRl
KHdlYkRhdGFiYXNlKTsKICAgICBSZWZQdHI8TW9ja0lEQkNhbGxiYWNrcz4gcmVxdWVzdCA9IE1v
Y2tJREJDYWxsYmFja3M6OmNyZWF0ZSgpOwotICAgIGJhY2tlbmQtPm9wZW5Db25uZWN0aW9uV2l0
aFZlcnNpb24ocmVxdWVzdCwgY29ubmVjdGlvblByb3h5LCAzLCBJREJEYXRhYmFzZU1ldGFkYXRh
OjpOb0ludFZlcnNpb24pOworICAgIGJhY2tlbmQtPm9wZW5Db25uZWN0aW9uKHJlcXVlc3QsIGNv
bm5lY3Rpb25Qcm94eSwgMywgSURCRGF0YWJhc2VNZXRhZGF0YTo6RGVmYXVsdEludFZlcnNpb24p
OwogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IDA7CiAgICAgUmVmUHRy
PElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoY29udGV4dCwg
cHJveHksIGNvbm5lY3Rpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVlYzZhMTQxMDVmOGYwM2Y4ZWM2MjE0OWIxMzlj
YTdkYmMxZjk5ZmUuLmEwODliODI5ODliMjY2NGMwM2IzZDlhMTMyMDI1YmRhMWM1YTkyM2QgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMi0yMSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogQ29tYmluZSBvcGVuQ29ubmVjdGlvbiBh
bmQgb3BlbkNvbm5lY3Rpb25XaXRoVmVyc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLW9yZGVyaW5nLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1vcmRl
cmluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
b3Blbi1vcmRlcmluZy5qczogQWRkZWQuCisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKG9u
RGVsZXRlU3VjY2Vzcyk6CisgICAgICAgIChvblJlcXVlc3QxU3VjY2Vzcyk6CisgICAgICAgIChv
blJlcXVlc3QyU3VjY2Vzcyk6CisgICAgICAgIChvblJlcXVlc3QzU3VjY2Vzcyk6CisgICAgICAg
IChjaGVja09yZGVyKToKKwogMjAxMi0xMi0yMSAgQWRhbSBCZXJna3Zpc3QgIDxhZGFtLmJlcmdr
dmlzdEBlcmljc3Nvbi5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBVcGRhdGUgdGhl
IE1lZGlhU3RyZWFtIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdl
L2luZGV4ZWRkYi9vcGVuLW9yZGVyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL29wZW4tb3JkZXJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhMmI4
MGVkMTY4NGRjMTc3Yzg3ZTU3YmExNmMzZWE0NzA5MzhjMmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vcGVuLW9yZGVyaW5nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQzIEBACitUZXN0IEluZGV4ZWREQiBvcmRlcmluZyBvZiBwZW5kaW5nIG9wZW4g
Y2FsbHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIgPSBzZWxm
LmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQiB8
fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1lID0gIm9wZW4t
b3JkZXJpbmcuaHRtbCIKK2luZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVk
REIub3BlbihkYm5hbWUsIDIpCisKK3J1blRlc3QoKToKK2Nvbm5lY3Rpb24gPSBldmVudC50YXJn
ZXQucmVzdWx0CisKK0ZpcnN0IGEgZGVsZXRlIHJlcXVlc3QsIHdoaWNoIHdpbGwgZGVmZXIgc3Vi
c2VxdWVudCBvcGVucy4gVGhlIGRlbGV0ZSBpdHNlbGYgd2lsbCBiZSBibG9ja2VkIGJ5IHRoZSBv
cGVuIGNvbm5lY3Rpb24uCitkZWxldGVSZXF1ZXN0ID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNl
KGRibmFtZSkKKworTm93IHRocmVlIG9wZW4gcmVxdWVzdHM6CitvcmRlciA9IFtdCityZXF1ZXN0
MSA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikKK3JlcXVlc3QyID0gaW5kZXhlZERCLm9wZW4o
ZGJuYW1lKQorcmVxdWVzdDMgPSBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCisKK0Nsb3NlIHRo
ZSBjb25uZWN0aW9uIHRvIHVuYmxvY2sgdGhlIGRlbGV0ZQorY29ubmVjdGlvbi5jbG9zZSgpCisK
K29uRGVsZXRlU3VjY2VzcygpOgorCitvblJlcXVlc3QxU3VjY2VzcygpOgorb3JkZXIucHVzaCgx
KQorCitvblJlcXVlc3QyU3VjY2VzcygpOgorb3JkZXIucHVzaCgyKQorCitvblJlcXVlc3QzU3Vj
Y2VzcygpOgorb3JkZXIucHVzaCgzKQorCitjaGVja09yZGVyKCk6CitQQVNTIEpTT04uc3RyaW5n
aWZ5KG9yZGVyKSBpcyAiWzEsMiwzXSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9vcGVuLW9yZGVyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9v
cGVuLW9yZGVyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjI3MzBlZGZiNTRhYmRiNTk5MGE3YjRjZGVi
MzBiNWEwZDI4NmU3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL29wZW4tb3JkZXJpbmcuaHRtbApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9vcGVuLW9yZGVyaW5nLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29wZW4tb3JkZXJpbmcuanMgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvb3Blbi1vcmRlcmluZy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41MzQ4NGE4YTUxYmI4ZmRhNjcyZDdhNjI3ODUyZDY0YTJmOWEwODViCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL29wZW4tb3Jk
ZXJpbmcuanMKQEAgLTAsMCArMSw3NCBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAg
IGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Jyk7CisgICAgaW1wb3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJU
ZXN0IEluZGV4ZWREQiBvcmRlcmluZyBvZiBwZW5kaW5nIG9wZW4gY2FsbHMuIik7CisKK2luZGV4
ZWREQlRlc3QocHJlcGFyZURhdGFiYXNlLCBydW5UZXN0LCB7dmVyc2lvbjogMn0pOworCitmdW5j
dGlvbiBwcmVwYXJlRGF0YWJhc2UoKQoreworfQorCitmdW5jdGlvbiBydW5UZXN0KGV2dCkKK3sK
KyAgICBwcmVhbWJsZShldnQpOworICAgIGV2YWxBbmRMb2coImNvbm5lY3Rpb24gPSBldmVudC50
YXJnZXQucmVzdWx0Iik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIkZpcnN0IGEgZGVs
ZXRlIHJlcXVlc3QsIHdoaWNoIHdpbGwgZGVmZXIgc3Vic2VxdWVudCBvcGVucy4gVGhlIGRlbGV0
ZSBpdHNlbGYgd2lsbCBiZSBibG9ja2VkIGJ5IHRoZSBvcGVuIGNvbm5lY3Rpb24uIik7CisgICAg
ZXZhbEFuZExvZygiZGVsZXRlUmVxdWVzdCA9IGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZShkYm5h
bWUpIik7CisgICAgZGVsZXRlUmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJh
Y2s7CisgICAgZGVsZXRlUmVxdWVzdC5vbnN1Y2Nlc3MgPSBvbkRlbGV0ZVN1Y2Nlc3M7CisKKyAg
ICBkZWJ1ZygiIik7CisgICAgZGVidWcoIk5vdyB0aHJlZSBvcGVuIHJlcXVlc3RzOiIpOworICAg
IGV2YWxBbmRMb2coIm9yZGVyID0gW10iKTsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0MSA9IGlu
ZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsKKyAgICByZXF1ZXN0MS5vbnN1Y2Nlc3MgPSBvblJl
cXVlc3QxU3VjY2VzczsKKyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0MiA9IGluZGV4ZWREQi5vcGVu
KGRibmFtZSkiKTsKKyAgICByZXF1ZXN0Mi5vbnN1Y2Nlc3MgPSBvblJlcXVlc3QyU3VjY2VzczsK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0MyA9IGluZGV4ZWREQi5vcGVuKGRibmFtZSwgMikiKTsK
KyAgICByZXF1ZXN0My5vbnN1Y2Nlc3MgPSBvblJlcXVlc3QzU3VjY2VzczsKKworICAgIGRlYnVn
KCIiKTsKKyAgICBkZWJ1ZygiQ2xvc2UgdGhlIGNvbm5lY3Rpb24gdG8gdW5ibG9jayB0aGUgZGVs
ZXRlIik7CisgICAgZXZhbEFuZExvZygiY29ubmVjdGlvbi5jbG9zZSgpIik7Cit9CisKK2Z1bmN0
aW9uIG9uRGVsZXRlU3VjY2VzcyhldnQpCit7CisgICAgcHJlYW1ibGUoZXZ0KTsKK30KKworZnVu
Y3Rpb24gb25SZXF1ZXN0MVN1Y2Nlc3MoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAg
ZXZhbEFuZExvZygib3JkZXIucHVzaCgxKSIpOworICAgIGlmIChvcmRlci5sZW5ndGggPT09IDMp
CisgICAgICAgIGNoZWNrT3JkZXIoKTsKK30KKworZnVuY3Rpb24gb25SZXF1ZXN0MlN1Y2Nlc3Mo
ZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgZXZhbEFuZExvZygib3JkZXIucHVzaCgy
KSIpOworICAgIGlmIChvcmRlci5sZW5ndGggPT09IDMpCisgICAgICAgIGNoZWNrT3JkZXIoKTsK
K30KKworZnVuY3Rpb24gb25SZXF1ZXN0M1N1Y2Nlc3MoZXZ0KQoreworICAgIHByZWFtYmxlKGV2
dCk7CisgICAgZXZhbEFuZExvZygib3JkZXIucHVzaCgzKSIpOworICAgIGlmIChvcmRlci5sZW5n
dGggPT09IDMpCisgICAgICAgIGNoZWNrT3JkZXIoKTsKK30KKworZnVuY3Rpb24gY2hlY2tPcmRl
cigpCit7CisgICAgcHJlYW1ibGUoKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIkpTT04u
c3RyaW5naWZ5KG9yZGVyKSIsICJbMSwyLDNdIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>