<?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>121848</bug_id>
          
          <creation_ts>2013-09-24 10:55:19 -0700</creation_ts>
          <short_desc>Begin adopting std::tuple for IPC decoding</short_desc>
          <delta_ts>2013-09-24 11:15:51 -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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>932624</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-24 10:55:19 -0700</bug_when>
    <thetext>Begin adopting std::tuple for IPC decoding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932628</commentid>
    <comment_count>1</comment_count>
      <attachid>212482</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-24 10:58:59 -0700</bug_when>
    <thetext>Created attachment 212482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932634</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-24 11:15:51 -0700</bug_when>
    <thetext>Committed r156341: &lt;http://trac.webkit.org/changeset/156341&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212482</attachid>
            <date>2013-09-24 10:58:59 -0700</date>
            <delta_ts>2013-09-24 11:04:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121848-20130924105858.patch</filename>
            <type>text/plain</type>
            <size>43492</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2MzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTFhYjJjMWNhMzA3ZTAy
M2U5YjYzNGRmM2FjYmM2MDBiNTA3MjVkNy4uMWEwMTIxN2VhOGJmYWEyMThmMzRjNjk5MTU5YTcx
NjhiYTY0OGZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA5LTI0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQmVnaW4gYWRvcHRp
bmcgc3RkOjp0dXBsZSBmb3IgSVBDIGRlY29kaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIHRoZSBmaXJzdCBzdGVwIHRvd2FyZHMgZ2V0
dGluZyByaWQgb2YgdGhlIGhvcnJpYmxlIEFyZ3VtZW50cyBjbGFzcyBoaWVyYXJjaHkuCisKKyAg
ICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oOgorICAgICAgICAoQ29yZUlQQzo6
VHVwbGVDb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6OlR1cGxlQ29kZXI6OmRlY29k
ZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmg6CisgICAgICAg
IChDb3JlSVBDOjpjYWxsTWVtYmVyRnVuY3Rpb24pOgorICAgICAgICAoQ29yZUlQQzo6aGFuZGxl
TWVzc2FnZSk6CisgICAgICAgIChDb3JlSVBDOjpoYW5kbGVNZXNzYWdlVmFyaWFkaWMpOgorICAg
ICAgICAoQ29yZUlQQzo6aGFuZGxlTWVzc2FnZURlbGF5ZWQpOgorCiAyMDEzLTA5LTI0ICBDaGFu
Z1Nlb2sgT2ggIDxjaGFuZ3Nlb2sub2hAY29sbGFib3JhLmNvbT4KIAogICAgICAgICBbRUZMXSBC
dWlsZCBmYWlsZWQgYXQgUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgKaW5kZXggNzgyNjA3NDQ0NGM0YjgzN2EyOTU2MGQw
OTEzZWVlZDU0YWY3NWMyYi4uZmE5NDAyMWY2ODY0ODQxMzRlNmVlMWE2YTJkMDVlZjFlYzMzYTVm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oCkBAIC0z
MCw5ICszMCw0OSBAQAogI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgogCiBuYW1lc3BhY2Ug
Q29yZUlQQyB7Ci0gICAgCisKK3RlbXBsYXRlPHNpemVfdCBpbmRleCwgdHlwZW5hbWUuLi4gRWxl
bWVudHM+CitzdHJ1Y3QgVHVwbGVDb2RlciB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3Qgc3RkOjp0dXBsZTxFbGVtZW50cy4uLj4mIHR1cGxl
KQorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGQ6OmdldDxzaXplb2YuLi4oRWxlbWVudHMp
IC0gaW5kZXg+KHR1cGxlKTsKKyAgICAgICAgVHVwbGVDb2RlcjxpbmRleCAtIDEsIEVsZW1lbnRz
Li4uPjo6ZW5jb2RlKGVuY29kZXIsIHR1cGxlKTsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnR1cGxlPEVsZW1lbnRzLi4uPiYg
dHVwbGUpCisgICAgeworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0ZDo6Z2V0PHNpemVv
Zi4uLihFbGVtZW50cykgLSBpbmRleD4odHVwbGUpKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuIFR1cGxlQ29kZXI8aW5kZXggLSAxLCBFbGVtZW50cy4uLj46OmRl
Y29kZShkZWNvZGVyLCB0dXBsZSk7CisgICAgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUuLi4g
RWxlbWVudHM+CitzdHJ1Y3QgVHVwbGVDb2RlcjwwLCBFbGVtZW50cy4uLj4geworICAgIHN0YXRp
YyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IHN0ZDo6dHVwbGU8
RWxlbWVudHMuLi4+JiB0dXBsZSkKKyAgICB7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp0dXBsZTxFbGVtZW50cy4uLj4mIHR1
cGxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKwordGVtcGxhdGU8
dHlwZW5hbWUuLi4gRWxlbWVudHM+IHN0cnVjdCBBcmd1bWVudENvZGVyPHN0ZDo6dHVwbGU8RWxl
bWVudHMuLi4+PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlciwgY29uc3Qgc3RkOjp0dXBsZTxFbGVtZW50cy4uLj4mIHR1cGxlKQorICAgIHsKKyAgICAg
ICAgVHVwbGVDb2RlcjxzaXplb2YuLi4oRWxlbWVudHMpLCBFbGVtZW50cy4uLj46OmVuY29kZShl
bmNvZGVyLCB0dXBsZSk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciYgZGVjb2Rlciwgc3RkOjp0dXBsZTxFbGVtZW50cy4uLj4mIHR1cGxlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIFR1cGxlQ29kZXI8c2l6ZW9mLi4uKEVsZW1lbnRzKSwgRWxlbWVudHMu
Li4+OjpkZWNvZGUoZGVjb2RlciwgdHVwbGUpOworICAgIH0KK307CisKIHN0cnVjdCBBcmd1bWVu
dHMwIHsKLSAgICB0eXBlZGVmIEFyZ3VtZW50czAgVmFsdWVUeXBlOworICAgIHR5cGVkZWYgc3Rk
Ojp0dXBsZTw+IFZhbHVlVHlwZTsKIAogICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0IAogICAgIHsKQEAgLTQ1LDcgKzg1LDcgQEAgc3RydWN0IEFyZ3VtZW50czAgewogfTsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVDE+IHN0cnVjdCBBcmd1bWVudHMxIHsKLSAgICB0eXBlZGVm
IEFyZ3VtZW50czE8dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1v
dmVfcmVmZXJlbmNlPFQxPjo6dHlwZT46OnR5cGU+IFZhbHVlVHlwZTsKKyAgICB0eXBlZGVmIHN0
ZDo6dHVwbGU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVf
cmVmZXJlbmNlPFQxPjo6dHlwZT46OnR5cGU+IFZhbHVlVHlwZTsKIAogICAgIEFyZ3VtZW50czEo
KQogICAgIHsKQEAgLTcwLDcgKzExMCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxPiBzdHJ1Y3Qg
QXJndW1lbnRzMSB7CiB9OwogICAgIAogdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQy
PiBzdHJ1Y3QgQXJndW1lbnRzMiA6IEFyZ3VtZW50czE8VDE+IHsKLSAgICB0eXBlZGVmIEFyZ3Vt
ZW50czI8dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVm
ZXJlbmNlPFQxPjo6dHlwZT46OnR5cGUsCisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPHR5cGVuYW1l
IHN0ZDo6cmVtb3ZlX2NvbnN0PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUMT46OnR5
cGU+Ojp0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9j
b25zdDx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VDI+Ojp0eXBlPjo6dHlwZT4gVmFs
dWVUeXBlOwogCiAgICAgQXJndW1lbnRzMigpIApAQCAtMTAxLDcgKzE0MSw3IEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4gc3RydWN0IEFyZ3VtZW50czIgOiBBcmd1bWVudHMx
PFQxPiB7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1l
IFQzPiBzdHJ1Y3QgQXJndW1lbnRzMyA6IEFyZ3VtZW50czI8VDEsIFQyPiB7Ci0gICAgdHlwZWRl
ZiBBcmd1bWVudHMzPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PHR5cGVuYW1lIHN0ZDo6cmVt
b3ZlX3JlZmVyZW5jZTxUMT46OnR5cGU+Ojp0eXBlLAorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTx0
eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8
VDE+Ojp0eXBlPjo6dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpy
ZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQyPjo6dHlwZT46OnR5
cGUsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PHR5
cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUMz46OnR5cGU+Ojp0eXBlPiBWYWx1ZVR5cGU7
CiAKQEAgLTEzMyw3ICsxNzMsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIs
IHR5cGVuYW1lIFQzPiBzdHJ1Y3QgQXJndW1lbnRzMyA6IEFyZ3VtZW50czI8VAogfTsKIAogdGVt
cGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQ+
IHN0cnVjdCBBcmd1bWVudHM0IDogQXJndW1lbnRzMzxUMSwgVDIsIFQzPiB7Ci0gICAgdHlwZWRl
ZiBBcmd1bWVudHM0PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PHR5cGVuYW1lIHN0ZDo6cmVt
b3ZlX3JlZmVyZW5jZTxUMT46OnR5cGU+Ojp0eXBlLAorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTx0
eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8
VDE+Ojp0eXBlPjo6dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpy
ZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQyPjo6dHlwZT46OnR5
cGUsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PHR5
cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUMz46OnR5cGU+Ojp0eXBlLAogICAgICAgICAg
ICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFtZSBzdGQ6OnJl
bW92ZV9yZWZlcmVuY2U8VDQ+Ojp0eXBlPjo6dHlwZT4gVmFsdWVUeXBlOwpAQCAtMTY2LDcgKzIw
Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5
cGVuYW1lIFQ0PiBzdHJ1Y3QgQXJndW1lbnRzNCA6CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
MSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+IHN0
cnVjdCBBcmd1bWVudHM1IDogQXJndW1lbnRzNDxUMSwgVDIsIFQzLCBUND4gewotICAgIHR5cGVk
ZWYgQXJndW1lbnRzNTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFtZSBzdGQ6OnJl
bW92ZV9yZWZlcmVuY2U8VDE+Ojp0eXBlPjo6dHlwZSwKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8
dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNl
PFQxPjo6dHlwZT46OnR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6
cmVtb3ZlX2NvbnN0PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUMj46OnR5cGU+Ojp0
eXBlLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0
eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VDM+Ojp0eXBlPjo6dHlwZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpy
ZW1vdmVfcmVmZXJlbmNlPFQ0Pjo6dHlwZT46OnR5cGUsCkBAIC0yMDAsNyArMjQwLDcgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQs
IHR5cGVuYW1lIFQ1PiBzdHJ1Y3QKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDY+
IHN0cnVjdCBBcmd1bWVudHM2IDogQXJndW1lbnRzNTxUMSwgVDIsIFQzLCBUNCwgVDU+IHsKLSAg
ICB0eXBlZGVmIEFyZ3VtZW50czY8dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUg
c3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQxPjo6dHlwZT46OnR5cGUsCisgICAgdHlwZWRlZiBzdGQ6
OnR1cGxlPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3Jl
ZmVyZW5jZTxUMT46OnR5cGU+Ojp0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFt
ZSBzdGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VDI+Ojp0
eXBlPjo6dHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVf
Y29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQzPjo6dHlwZT46OnR5cGUsCiAg
ICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PHR5cGVuYW1l
IHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUND46OnR5cGU+Ojp0eXBlLApAQCAtMjM1LDcgKzI3NSw3
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVu
YW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hCiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVu
YW1lIFQ2LCB0eXBlbmFtZSBUNz4gc3RydWN0IEFyZ3VtZW50czcgOiBBcmd1bWVudHM2PFQxLCBU
MiwgVDMsIFQ0LCBUNSwgVDY+IHsKLSAgICB0eXBlZGVmIEFyZ3VtZW50czc8dHlwZW5hbWUgc3Rk
OjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQxPjo6dHlwZT46
OnR5cGUsCisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0
PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUMT46OnR5cGU+Ojp0eXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFtZSBzdGQ6
OnJlbW92ZV9yZWZlcmVuY2U8VDI+Ojp0eXBlPjo6dHlwZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJl
bmNlPFQzPjo6dHlwZT46OnR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX2NvbnN0PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUND46OnR5cGU+
Ojp0eXBlLApAQCAtMjcxLDcgKzMxMSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFt
ZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hCiB9Owog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFt
ZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYW1lIFQ2LCB0eXBlbmFtZSBUNywgdHlwZW5hbWUgVDg+
IHN0cnVjdCBBcmd1bWVudHM4IDogQXJndW1lbnRzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBU
Nz4gewotICAgIHR5cGVkZWYgQXJndW1lbnRzODx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0
eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VDE+Ojp0eXBlPjo6dHlwZSwKKyAgICB0eXBl
ZGVmIHN0ZDo6dHVwbGU8dHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpy
ZW1vdmVfcmVmZXJlbmNlPFQxPjo6dHlwZT46OnR5cGUsCiAgICAgdHlwZW5hbWUgc3RkOjpyZW1v
dmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQyPjo6dHlwZT46OnR5cGUs
CiAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVm
ZXJlbmNlPFQzPjo6dHlwZT46OnR5cGUsCiAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8
dHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPFQ0Pjo6dHlwZT46OnR5cGUsCkBAIC0zMDYs
NyArMzQ2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBU
MywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKIH07CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBU
NSwgdHlwZW5hbWUgVDYsIHR5cGVuYW1lIFQ3LCB0eXBlbmFtZSBUOCwgdHlwZW5hbWUgVDksIHR5
cGVuYW1lIFQxMD4gc3RydWN0IEFyZ3VtZW50czEwIDogQXJndW1lbnRzODxUMSwgVDIsIFQzLCBU
NCwgVDUsIFQ2LCBUNywgVDg+IHsKLSAgICB0eXBlZGVmIEFyZ3VtZW50czEwPHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX2NvbnN0PHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUMT46OnR5cGU+
Ojp0eXBlLAorICAgIHR5cGVkZWYgc3RkOjp0dXBsZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25z
dDx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VDE+Ojp0eXBlPjo6dHlwZSwKICAgICB0
eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8
VDI+Ojp0eXBlPjo6dHlwZSwKICAgICB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFt
ZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VDM+Ojp0eXBlPjo6dHlwZSwKICAgICB0eXBlbmFtZSBz
dGQ6OnJlbW92ZV9jb25zdDx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VDQ+Ojp0eXBl
Pjo6dHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvSGFu
ZGxlTWVzc2FnZS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNz
YWdlLmgKaW5kZXggMDZhMWQzNGQxMTg5ZjQ5ZWMxMTU4MzU2ODZlNTYzOGI4NDFlOTVjYy4uNzNk
NjdiY2Y5OGVjOTY1MjZjODNkODE3MGM1MmUwZjc1MTEyZGY0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmgKQEAgLTgsMzYxICs4LDM2MCBA
QAogbmFtZXNwYWNlIENvcmVJUEMgewogCiAvLyBEaXNwYXRjaCBmdW5jdGlvbnMgd2l0aCBubyBy
ZXBseSBhcmd1bWVudHMuCi0KIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GPgotdm9p
ZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMCYsIEMqIG9iamVjdCwgTUYgZnVu
Y3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPD4mJiwgQyogb2JqZWN0
LCBNRiBmdW5jdGlvbikKIHsKICAgICAob2JqZWN0LT4qZnVuY3Rpb24pKCk7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMT4KLXZvaWQgY2FsbE1lbWJl
ckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czE8UDE+JiBhcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMT4mJiBhcmdzLCBDKiBv
YmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1
bWVudDEpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8MD4oYXJncykpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1l
IFAyPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMjxQMSwgUDI+JiBh
cmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3Rk
Ojp0dXBsZTxQMSwgUDI+JiYgYXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAo
b2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50Mik7CisgICAg
KG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncykp
OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5
cGVuYW1lIFAyLCB0eXBlbmFtZSBQMz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFy
Z3VtZW50czM8UDEsIFAyLCBQMz4mIGFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPFAxLCBQMiwgUDM+JiYgYXJncywgQyogb2Jq
ZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1l
bnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMpOworICAgIChvYmplY3QtPipmdW5j
dGlvbikoc3RkOjpnZXQ8MD4oYXJncyksIHN0ZDo6Z2V0PDE+KGFyZ3MpLCBzdGQ6OmdldDwyPihh
cmdzKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQ
MSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQND4KLXZvaWQgY2FsbE1lbWJl
ckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwg
UDIsIFAzLCBQND4mJiBhcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3Vt
ZW50MywgYXJncy5hcmd1bWVudDQpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8
MD4oYXJncyksIHN0ZDo6Z2V0PDE+KGFyZ3MpLCBzdGQ6OmdldDwyPihhcmdzKSwgc3RkOjpnZXQ8
Mz4oYXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5h
bWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1
Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNTxQMSwgUDIsIFAzLCBQ
NCwgUDU+JiBhcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVu
Y3Rpb24oc3RkOjp0dXBsZTxQMSwgUDIsIFAzLCBQNCwgUDU+JiYgYXJncywgQyogb2JqZWN0LCBN
RiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBh
cmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3Vt
ZW50NSk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpn
ZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3RkOjpn
ZXQ8ND4oYXJncykpOwogfQogICAgIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYs
IHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0eXBl
bmFtZSBQNSwgdHlwZW5hbWUgUDY+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1
bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwgUDIsIFAzLCBQNCwg
UDUsIFA2PiYmIGFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+
KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQz
LCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2KTsKKyAgICAo
b2JqZWN0LT4qZnVuY3Rpb24pKHN0ZDo6Z2V0PDA+KGFyZ3MpLCBzdGQ6OmdldDwxPihhcmdzKSwg
c3RkOjpnZXQ8Mj4oYXJncyksIHN0ZDo6Z2V0PDM+KGFyZ3MpLCBzdGQ6OmdldDw0PihhcmdzKSwg
c3RkOjpnZXQ8NT4oYXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBN
RiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5
cGVuYW1lIFA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgUDc+Ci12b2lkIGNhbGxNZW1iZXJGdW5j
dGlvbihjb25zdCBBcmd1bWVudHM3PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3PiYgYXJncywg
Qyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKHN0ZDo6dHVw
bGU8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDc+JiYgYXJncywgQyogb2JqZWN0LCBNRiBmdW5j
dGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFy
Z3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwg
YXJncy5hcmd1bWVudDYsIGFyZ3MuYXJndW1lbnQ3KTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24p
KHN0ZDo6Z2V0PDA+KGFyZ3MpLCBzdGQ6OmdldDwxPihhcmdzKSwgc3RkOjpnZXQ8Mj4oYXJncyks
IHN0ZDo6Z2V0PDM+KGFyZ3MpLCBzdGQ6OmdldDw0PihhcmdzKSwgc3RkOjpnZXQ8NT4oYXJncyks
IHN0ZDo6Z2V0PDY+KGFyZ3MpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUg
TUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0
eXBlbmFtZSBQNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIFA3LCB0eXBlbmFtZSBQOD4KLXZvaWQg
Y2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czg8UDEsIFAyLCBQMywgUDQsIFA1LCBQ
NiwgUDcsIFA4PiYgYXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJl
ckZ1bmN0aW9uKHN0ZDo6dHVwbGU8UDEsIFAyLCBQMywgUDQsIFA1LCBQNiwgUDcsIFA4PiYmIGFy
Z3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShh
cmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3Vt
ZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmdzLmFyZ3VtZW50NywgYXJn
cy5hcmd1bWVudDgpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8MD4oYXJncyks
IHN0ZDo6Z2V0PDE+KGFyZ3MpLCBzdGQ6OmdldDwyPihhcmdzKSwgc3RkOjpnZXQ8Mz4oYXJncyks
IHN0ZDo6Z2V0PDQ+KGFyZ3MpLCBzdGQ6OmdldDw1PihhcmdzKSwgc3RkOjpnZXQ8Nj4oYXJncyks
IHN0ZDo6Z2V0PDc+KGFyZ3MpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUg
TUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0
eXBlbmFtZSBQNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1lIFA3LCB0eXBlbmFtZSBQOCwgdHlwZW5h
bWUgUDksIHR5cGVuYW1lIFAxMD4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3Vt
ZW50czEwPFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOCwgUDksIFAxMD4mIGFyZ3MsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxl
PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOCwgUDksIFAxMD4mJiBhcmdzLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVu
dDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3Mu
YXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgYXJncy5hcmd1bWVudDcsIGFyZ3MuYXJndW1lbnQ4
LCBhcmdzLmFyZ3VtZW50OSwgYXJncy5hcmd1bWVudDEwKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rp
b24pKHN0ZDo6Z2V0PDA+KGFyZ3MpLCBzdGQ6OmdldDwxPihhcmdzKSwgc3RkOjpnZXQ8Mj4oYXJn
cyksIHN0ZDo6Z2V0PDM+KGFyZ3MpLCBzdGQ6OmdldDw0PihhcmdzKSwgc3RkOjpnZXQ8NT4oYXJn
cyksIHN0ZDo6Z2V0PDY+KGFyZ3MpLCBzdGQ6OmdldDw3PihhcmdzKSwgc3RkOjpnZXQ8OD4oYXJn
cyksIHN0ZDo6Z2V0PDk+KGFyZ3MpKTsKIH0KIAogLy8gRGlzcGF0Y2ggZnVuY3Rpb25zIHdpdGgg
cmVwbHkgYXJndW1lbnRzLgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KLXZv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czAmLCBBcmd1bWVudHMwJiwgQyog
b2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKHN0ZDo6dHVwbGU8
PiYmLCBzdGQ6OnR1cGxlPD4mLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIChvYmpl
Y3QtPipmdW5jdGlvbikoKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYs
IHR5cGVuYW1lIFIxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMCYs
IEFyZ3VtZW50czE8UjE+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPD4mJiwgc3RkOjp0dXBsZTxSMT4mIHJlcGx5
QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24p
KHJlcGx5QXJncy5hcmd1bWVudDEpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8
MD4ocmVwbHlBcmdzKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0
eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBB
cmd1bWVudHMwJiwgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYg
ZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPD4mJiwgc3RkOjp0
dXBsZTxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAg
KG9iamVjdC0+KmZ1bmN0aW9uKShyZXBseUFyZ3MuYXJndW1lbnQxLCByZXBseUFyZ3MuYXJndW1l
bnQyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKHN0ZDo6Z2V0PDA+KHJlcGx5QXJncyksIHN0
ZDo6Z2V0PDE+KHJlcGx5QXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFt
ZSBNRiwgdHlwZW5hbWUgUDE+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVu
dHMxPFAxPiYgYXJncywgQXJndW1lbnRzMCYsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPFAxPiYmIGFyZ3MsIHN0ZDo6dHVwbGU8PiYs
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdz
LmFyZ3VtZW50MSk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSk7
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlw
ZW5hbWUgUjE+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMxPFAxPiYg
YXJncywgQXJndW1lbnRzMTxSMT4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikK
K3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKHN0ZDo6dHVwbGU8UDE+JiYgYXJncywgc3RkOjp0dXBs
ZTxSMT4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0
LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCByZXBseUFyZ3MuYXJndW1lbnQxKTsKKyAgICAo
b2JqZWN0LT4qZnVuY3Rpb24pKHN0ZDo6Z2V0PDA+KGFyZ3MpLCBzdGQ6OmdldDwwPihyZXBseUFy
Z3MpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAx
LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25z
dCBBcmd1bWVudHMxPFAxPiYgYXJncywgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxl
PFAxPiYmIGFyZ3MsIHN0ZDo6dHVwbGU8UjEsIFIyPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1G
IGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIHJl
cGx5QXJncy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1bWVudDIpOworICAgIChvYmplY3QtPipm
dW5jdGlvbikoc3RkOjpnZXQ8MD4oYXJncyksIHN0ZDo6Z2V0PDA+KHJlcGx5QXJncyksIHN0ZDo6
Z2V0PDE+KHJlcGx5QXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBN
RiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5hbWUgUjM+Ci12
b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMxPFAxPiYgYXJncywgQXJndW1l
bnRzMzxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9p
ZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMT4mJiBhcmdzLCBzdGQ6OnR1cGxlPFIx
LCBSMiwgUjM+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9i
amVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVw
bHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7CisgICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MD4ocmVwbHlBcmdzKSwgc3RkOjpn
ZXQ8MT4ocmVwbHlBcmdzKSwgc3RkOjpnZXQ8Mj4ocmVwbHlBcmdzKSk7CiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDI+Ci12b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMyPFAxLCBQMj4mIGFyZ3MsIEFyZ3Vt
ZW50czAmLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24o
c3RkOjp0dXBsZTxQMSwgUDI+JiYgYXJncywgc3RkOjp0dXBsZTw+JiwgQyogb2JqZWN0LCBNRiBm
dW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdz
LmFyZ3VtZW50Mik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwg
c3RkOjpnZXQ8MT4oYXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBN
RiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5hbWUgUjMsIHR5
cGVuYW1lIFI0Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4m
IGFyZ3MsIEFyZ3VtZW50czQ8UjEsIFIyLCBSMywgUjQ+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwg
TUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPFAxPiYmIGFy
Z3MsIEFyZ3VtZW50czQ8UjEsIFIyLCBSMywgUjQ+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYg
ZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgcmVw
bHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50
MywgcmVwbHlBcmdzLmFyZ3VtZW50NCk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6Omdl
dDwwPihhcmdzKSwgc3RkOjpnZXQ8MD4ocmVwbHlBcmdzKSwgc3RkOjpnZXQ8MT4ocmVwbHlBcmdz
KSwgc3RkOjpnZXQ8Mj4ocmVwbHlBcmdzKSwgc3RkOjpnZXQ8Mz4ocmVwbHlBcmdzKSk7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUg
UDIsIHR5cGVuYW1lIFIxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRz
MjxQMSwgUDI+JiBhcmdzLCBBcmd1bWVudHMxPFIxPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1G
IGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwgUDI+JiYg
YXJncywgc3RkOjp0dXBsZTxSMT4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikK
IHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50
MiwgcmVwbHlBcmdzLmFyZ3VtZW50MSk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6Omdl
dDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDA+KHJlcGx5QXJncykpOwog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVu
YW1lIFAyLCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlv
bihjb25zdCBBcmd1bWVudHMyPFAxLCBQMj4mIGFyZ3MsIEFyZ3VtZW50czI8UjEsIFIyPiYgcmVw
bHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24o
c3RkOjp0dXBsZTxQMSwgUDI+JiYgYXJncywgc3RkOjp0dXBsZTxSMSwgUjI+JiByZXBseUFyZ3Ms
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdz
LmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIHJlcGx5QXJncy5hcmd1bWVudDEsIHJlcGx5QXJn
cy5hcmd1bWVudDIpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8MD4oYXJncyks
IHN0ZDo6Z2V0PDE+KGFyZ3MpLCBzdGQ6OmdldDwwPihyZXBseUFyZ3MpLCBzdGQ6OmdldDwxPihy
ZXBseUFyZ3MpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVu
YW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFIxPgotdm9pZCBjYWxs
TWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMzxQMSwgUDIsIFAzPiYgYXJncywgQXJndW1l
bnRzMTxSMT4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1l
bWJlckZ1bmN0aW9uKHN0ZDo6dHVwbGU8UDEsIFAyLCBQMz4mJiBhcmdzLCBzdGQ6OnR1cGxlPFIx
PiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipm
dW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50Mywg
cmVwbHlBcmdzLmFyZ3VtZW50MSk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDww
PihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDww
PihyZXBseUFyZ3MpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5
cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFIxLCB0eXBlbmFt
ZSBSMj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czM8UDEsIFAyLCBQ
Mz4mIGFyZ3MsIEFyZ3VtZW50czI8UjEsIFIyPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1
bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwgUDIsIFAzPiYm
IGFyZ3MsIHN0ZDo6dHVwbGU8UjEsIFIyPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJn
dW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFy
Z3VtZW50Mik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3Rk
OjpnZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwwPihyZXBseUFyZ3Mp
LCBzdGQ6OmdldDwxPihyZXBseUFyZ3MpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlw
ZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1l
IFA0LCB0eXBlbmFtZSBSMT4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50
czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBBcmd1bWVudHMxPFIxPiYgcmVwbHlBcmdzLCBDKiBv
YmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQ
MSwgUDIsIFAzLCBQND4mJiBhcmdzLCBzdGQ6OnR1cGxlPFIxPiYgcmVwbHlBcmdzLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVu
dDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIHJlcGx5
QXJncy5hcmd1bWVudDEpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8MD4oYXJn
cyksIHN0ZDo6Z2V0PDE+KGFyZ3MpLCBzdGQ6OmdldDwyPihhcmdzKSwgc3RkOjpnZXQ8Mz4oYXJn
cyksIHN0ZDo6Z2V0PDA+KHJlcGx5QXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0
eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5h
bWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgUjE+Ci12b2lkIGNhbGxN
ZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBh
cmdzLCBBcmd1bWVudHMxPFIxPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQor
dm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2
PiYmIGFyZ3MsIHN0ZDo6dHVwbGU8UjE+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rp
b24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1
bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFy
Z3MuYXJndW1lbnQ2LCByZXBseUFyZ3MuYXJndW1lbnQxKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rp
b24pKHN0ZDo6Z2V0PDA+KGFyZ3MpLCBzdGQ6OmdldDwxPihhcmdzKSwgc3RkOjpnZXQ8Mj4oYXJn
cyksIHN0ZDo6Z2V0PDM+KGFyZ3MpLCBzdGQ6OmdldDw0PihhcmdzKSwgc3RkOjpnZXQ8NT4oYXJn
cyksIHN0ZDo6Z2V0PDA+KHJlcGx5QXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0
eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5h
bWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIFIx
Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNzxQMSwgUDIsIFAzLCBQ
NCwgUDUsIFA2LCBQNz4mIGFyZ3MsIEFyZ3VtZW50czE8UjE+JiByZXBseUFyZ3MsIEMqIG9iamVj
dCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPFAxLCBQ
MiwgUDMsIFA0LCBQNSwgUDYsIFA3PiYmIGFyZ3MsIHN0ZDo6dHVwbGU8UjE+JiByZXBseUFyZ3Ms
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdz
LmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50
NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmdzLmFyZ3VtZW50NywgcmVwbHlB
cmdzLmFyZ3VtZW50MSk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdz
KSwgc3RkOjpnZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdz
KSwgc3RkOjpnZXQ8ND4oYXJncyksIHN0ZDo6Z2V0PDU+KGFyZ3MpLCBzdGQ6OmdldDw2Pihhcmdz
KSwgc3RkOjpnZXQ8MD4ocmVwbHlBcmdzKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5
cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFt
ZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBQNywgdHlwZW5hbWUgUDgs
IHR5cGVuYW1lIFIxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzODxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUDg+JiBhcmdzLCBBcmd1bWVudHMxPFIxPiYgcmVw
bHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24o
c3RkOjp0dXBsZTxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2LCBQNywgUDg+JiYgYXJncywgc3RkOjp0
dXBsZTxSMT4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2Jq
ZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1
bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJncy5hcmd1bWVudDYsIGFy
Z3MuYXJndW1lbnQ3LCBhcmdzLmFyZ3VtZW50OCwgcmVwbHlBcmdzLmFyZ3VtZW50MSk7CisgICAg
KG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncyks
IHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3RkOjpnZXQ8ND4oYXJncyks
IHN0ZDo6Z2V0PDU+KGFyZ3MpLCBzdGQ6OmdldDw2PihhcmdzKSwgc3RkOjpnZXQ8Nz4oYXJncyks
IHN0ZDo6Z2V0PDA+KHJlcGx5QXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBl
bmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUg
UDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNv
bnN0IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBBcmd1bWVudHMyPFIxLCBSMj4m
IHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0
aW9uKHN0ZDo6dHVwbGU8UDEsIFAyLCBQMywgUDQ+JiYgYXJncywgc3RkOjp0dXBsZTxSMSwgUjI+
JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBh
cmdzLmFyZ3VtZW50NCwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7
CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4o
YXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3RkOjpnZXQ8MD4o
cmVwbHlBcmdzKSwgc3RkOjpnZXQ8MT4ocmVwbHlBcmdzKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAz
LCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMj4KLXZv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czU8UDEsIFAyLCBQMywgUDQsIFA1
PiYgYXJncywgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVu
Y3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPFAxLCBQMiwgUDMsIFA0
LCBQNT4mJiBhcmdzLCBzdGQ6OnR1cGxlPFIxLCBSMj4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBN
RiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBh
cmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3Vt
ZW50NSwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7CisgICAgKG9i
amVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncyksIHN0
ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3RkOjpnZXQ8ND4oYXJncyksIHN0
ZDo6Z2V0PDA+KHJlcGx5QXJncyksIHN0ZDo6Z2V0PDE+KHJlcGx5QXJncykpOwogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0
eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5h
bWUgUjM+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM0PFAxLCBQMiwg
UDMsIFA0PiYgYXJncywgQXJndW1lbnRzMzxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmpl
Y3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwg
UDIsIFAzLCBQND4mJiBhcmdzLCBzdGQ6OnR1cGxlPFIxLCBSMiwgUjM+JiByZXBseUFyZ3MsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFy
Z3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwg
cmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3Vt
ZW50Myk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpn
ZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3RkOjpn
ZXQ8MD4ocmVwbHlBcmdzKSwgc3RkOjpnZXQ8MT4ocmVwbHlBcmdzKSwgc3RkOjpnZXQ8Mj4ocmVw
bHlBcmdzKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUs
IHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5hbWUgUjM+Ci12b2lkIGNhbGxNZW1iZXJG
dW5jdGlvbihjb25zdCBBcmd1bWVudHM1PFAxLCBQMiwgUDMsIFA0LCBQNT4mIGFyZ3MsIEFyZ3Vt
ZW50czM8UjEsIFIyLCBSMz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3Zv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKHN0ZDo6dHVwbGU8UDEsIFAyLCBQMywgUDQsIFA1PiYmIGFy
Z3MsIHN0ZDo6dHVwbGU8UjEsIFIyLCBSMz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5j
dGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFy
Z3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwg
cmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3Vt
ZW50Myk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpn
ZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3RkOjpn
ZXQ8ND4oYXJncyksIHN0ZDo6Z2V0PDA+KHJlcGx5QXJncyksIHN0ZDo6Z2V0PDE+KHJlcGx5QXJn
cyksIHN0ZDo6Z2V0PDI+KHJlcGx5QXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0
eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5h
bWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgUjEsIHR5cGVuYW1lIFIy
Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQMSwgUDIsIFAzLCBQ
NCwgUDUsIFA2PiYgYXJncywgQXJndW1lbnRzMjxSMSwgUjI+JiByZXBseUFyZ3MsIEMqIG9iamVj
dCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPFAxLCBQ
MiwgUDMsIFA0LCBQNSwgUDY+JiYgYXJncywgc3RkOjp0dXBsZTxSMSwgUjI+JiByZXBseUFyZ3Ms
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdz
LmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50
NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCByZXBseUFyZ3MuYXJndW1lbnQxLCBy
ZXBseUFyZ3MuYXJndW1lbnQyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKHN0ZDo6Z2V0PDA+
KGFyZ3MpLCBzdGQ6OmdldDwxPihhcmdzKSwgc3RkOjpnZXQ8Mj4oYXJncyksIHN0ZDo6Z2V0PDM+
KGFyZ3MpLCBzdGQ6OmdldDw0PihhcmdzKSwgc3RkOjpnZXQ8NT4oYXJncyksIHN0ZDo6Z2V0PDA+
KHJlcGx5QXJncyksIHN0ZDo6Z2V0PDE+KHJlcGx5QXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQ
MywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgUjEsIHR5
cGVuYW1lIFIyLCB0eXBlbmFtZSBSMz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFy
Z3VtZW50czY8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIEFyZ3VtZW50czM8UjEsIFIy
LCBSMz4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJl
ckZ1bmN0aW9uKHN0ZDo6dHVwbGU8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4mJiBhcmdzLCBzdGQ6
OnR1cGxlPFIxLCBSMiwgUjM+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7
Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIs
IGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJn
dW1lbnQ2LCByZXBseUFyZ3MuYXJndW1lbnQxLCByZXBseUFyZ3MuYXJndW1lbnQyLCByZXBseUFy
Z3MuYXJndW1lbnQzKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKHN0ZDo6Z2V0PDA+KGFyZ3Mp
LCBzdGQ6OmdldDwxPihhcmdzKSwgc3RkOjpnZXQ8Mj4oYXJncyksIHN0ZDo6Z2V0PDM+KGFyZ3Mp
LCBzdGQ6OmdldDw0PihhcmdzKSwgc3RkOjpnZXQ8NT4oYXJncyksIHN0ZDo6Z2V0PDA+KHJlcGx5
QXJncyksIHN0ZDo6Z2V0PDE+KHJlcGx5QXJncyksIHN0ZDo6Z2V0PDI+KHJlcGx5QXJncykpOwog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVu
YW1lIFAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQ
NiwgdHlwZW5hbWUgUjEsIHR5cGVuYW1lIFIyLCB0eXBlbmFtZSBSMywgdHlwZW5hbWUgUjQ+Ci12
b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQ
NSwgUDY+JiBhcmdzLCBBcmd1bWVudHM0PFIxLCBSMiwgUjMsIFI0PiYgcmVwbHlBcmdzLCBDKiBv
YmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYmIGFyZ3MsIHN0ZDo6dHVwbGU8UjEsIFIyLCBSMywgUjQ+
JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShhcmdzLmFyZ3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBh
cmdzLmFyZ3VtZW50NCwgYXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCByZXBseUFyZ3Mu
YXJndW1lbnQxLCByZXBseUFyZ3MuYXJndW1lbnQyLCByZXBseUFyZ3MuYXJndW1lbnQzLCByZXBs
eUFyZ3MuYXJndW1lbnQ0KTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKHN0ZDo6Z2V0PDA+KGFy
Z3MpLCBzdGQ6OmdldDwxPihhcmdzKSwgc3RkOjpnZXQ8Mj4oYXJncyksIHN0ZDo6Z2V0PDM+KGFy
Z3MpLCBzdGQ6OmdldDw0PihhcmdzKSwgc3RkOjpnZXQ8NT4oYXJncyksIHN0ZDo6Z2V0PDA+KHJl
cGx5QXJncyksIHN0ZDo6Z2V0PDE+KHJlcGx5QXJncyksIHN0ZDo6Z2V0PDI+KHJlcGx5QXJncyks
IHN0ZDo6Z2V0PDM+KHJlcGx5QXJncykpOwogfQogCiAvLyBEaXNwYXRjaCBmdW5jdGlvbnMgd2l0
aCBkZWxheWVkIHJlcGx5IGFyZ3VtZW50cy4KIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1l
IE1GLCB0eXBlbmFtZSBSPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRz
MCYsIFBhc3NSZWZQdHI8Uj4gZGVsYXllZFJlcGx5LCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQor
dm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTw+JiYsIFBhc3NSZWZQdHI8Uj4gZGVs
YXllZFJlcGx5LCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIChvYmplY3QtPipmdW5j
dGlvbikoZGVsYXllZFJlcGx5KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUg
TUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBSPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29u
c3QgQXJndW1lbnRzMTxQMT4mIGFyZ3MsIFBhc3NSZWZQdHI8Uj4gZGVsYXllZFJlcGx5LCBDKiBv
YmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQ
MT4mJiBhcmdzLCBQYXNzUmVmUHRyPFI+IGRlbGF5ZWRSZXBseSwgQyogb2JqZWN0LCBNRiBmdW5j
dGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBkZWxheWVk
UmVwbHkpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8MD4oYXJncyksIGRlbGF5
ZWRSZXBseSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFI+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihj
b25zdCBBcmd1bWVudHMyPFAxLCBQMj4mIGFyZ3MsIFBhc3NSZWZQdHI8Uj4gZGVsYXllZFJlcGx5
LCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0
dXBsZTxQMSwgUDI+JiYgYXJncywgUGFzc1JlZlB0cjxSPiBkZWxheWVkUmVwbHksIEMqIG9iamVj
dCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50
MSwgYXJncy5hcmd1bWVudDIsIGRlbGF5ZWRSZXBseSk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9u
KShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncyksIGRlbGF5ZWRSZXBseSk7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5h
bWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2
LCB0eXBlbmFtZSBQNywgdHlwZW5hbWUgUDgsIHR5cGVuYW1lIFI+Ci12b2lkIGNhbGxNZW1iZXJG
dW5jdGlvbihjb25zdCBBcmd1bWVudHM4PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDYsIFA3LCBQOD4m
IGFyZ3MsIFBhc3NSZWZQdHI8Uj4gZGVsYXllZFJlcGx5LCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9u
KQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwgUDIsIFAzLCBQNCwgUDUs
IFA2LCBQNywgUDg+JiYgYXJncywgUGFzc1JlZlB0cjxSPiBkZWxheWVkUmVwbHksIEMqIG9iamVj
dCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFyZ3VtZW50
MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwgYXJncy5h
cmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmdzLmFyZ3VtZW50NywgYXJncy5hcmd1bWVudDgs
IGRlbGF5ZWRSZXBseSk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdz
KSwgc3RkOjpnZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdz
KSwgc3RkOjpnZXQ8ND4oYXJncyksIHN0ZDo6Z2V0PDU+KGFyZ3MpLCBzdGQ6OmdldDw2Pihhcmdz
KSwgc3RkOjpnZXQ8Nz4oYXJncyksIGRlbGF5ZWRSZXBseSk7CiB9CiAKIC8vIERpc3BhdGNoIGZ1
bmN0aW9ucyB3aXRoIGNvbm5lY3Rpb24gcGFyYW1ldGVyLgogdGVtcGxhdGU8dHlwZW5hbWUgQywg
dHlwZW5hbWUgTUY+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBjb25zdCBBcmd1bWVudHMwJiwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2Fs
bE1lbWJlckZ1bmN0aW9uKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIHN0ZDo6dHVwbGU8PiYmLCBD
KiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewogICAgIChvYmplY3QtPipmdW5jdGlvbikoY29ubmVj
dGlvbik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQ
MT4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0
IEFyZ3VtZW50czE8UDE+JiBhcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxs
TWVtYmVyRnVuY3Rpb24oQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgc3RkOjp0dXBsZTxQMT4mJiBh
cmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbiko
Y29ubmVjdGlvbiwgYXJncy5hcmd1bWVudDEpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoY29u
bmVjdGlvbiwgc3RkOjpnZXQ8MD4oYXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0
eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyPgotdm9pZCBjYWxsTWVtYmVyRnVu
Y3Rpb24oQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgQXJndW1lbnRzMjxQMSwgUDI+JiBh
cmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oQ29u
bmVjdGlvbiogY29ubmVjdGlvbiwgc3RkOjp0dXBsZTxQMSwgUDI+JiYgYXJncywgQyogb2JqZWN0
LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGNvbm5lY3Rpb24sIGFy
Z3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50Mik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShj
b25uZWN0aW9uLCBzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncykpOwogfQogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAy
LCB0eXBlbmFtZSBQMz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKENvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24sIGNvbnN0IEFyZ3VtZW50czM8UDEsIFAyLCBQMz4mIGFyZ3MsIEMqIG9iamVjdCwgTUYg
ZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0aW9u
LCBzdGQ6OnR1cGxlPFAxLCBQMiwgUDM+JiYgYXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikK
IHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGNvbm5lY3Rpb24sIGFyZ3MuYXJndW1lbnQxLCBh
cmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMpOworICAgIChvYmplY3QtPipmdW5jdGlvbiko
Y29ubmVjdGlvbiwgc3RkOjpnZXQ8MD4oYXJncyksIHN0ZDo6Z2V0PDE+KGFyZ3MpLCBzdGQ6Omdl
dDwyPihhcmdzKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBl
bmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQND4KLXZvaWQgY2Fs
bE1lbWJlckZ1bmN0aW9uKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IEFyZ3VtZW50czQ8
UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxs
TWVtYmVyRnVuY3Rpb24oQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgc3RkOjp0dXBsZTxQMSwgUDIs
IFAzLCBQND4mJiBhcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3Qt
PipmdW5jdGlvbikoY29ubmVjdGlvbiwgYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBh
cmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQpOworICAgIChvYmplY3QtPipmdW5jdGlvbiko
Y29ubmVjdGlvbiwgc3RkOjpnZXQ8MD4oYXJncyksIHN0ZDo6Z2V0PDE+KGFyZ3MpLCBzdGQ6Omdl
dDwyPihhcmdzKSwgc3RkOjpnZXQ8Mz4oYXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBD
LCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlw
ZW5hbWUgUDQsIHR5cGVuYW1lIFA1Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oQ29ubmVjdGlv
biogY29ubmVjdGlvbiwgY29uc3QgQXJndW1lbnRzNTxQMSwgUDIsIFAzLCBQNCwgUDU+JiBhcmdz
LCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oQ29ubmVj
dGlvbiogY29ubmVjdGlvbiwgc3RkOjp0dXBsZTxQMSwgUDIsIFAzLCBQNCwgUDU+JiYgYXJncywg
Qyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGNvbm5l
Y3Rpb24sIGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFy
Z3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShj
b25uZWN0aW9uLCBzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncyksIHN0ZDo6Z2V0
PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3RkOjpnZXQ8ND4oYXJncykpOwogfQogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAy
LCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNj4KLXZv
aWQgY2FsbE1lbWJlckZ1bmN0aW9uKENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IEFyZ3Vt
ZW50czY8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rp
b24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBzdGQ6
OnR1cGxlPFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiYgYXJncywgQyogb2JqZWN0LCBNRiBmdW5j
dGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGNvbm5lY3Rpb24sIGFyZ3MuYXJndW1l
bnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdz
LmFyZ3VtZW50NSwgYXJncy5hcmd1bWVudDYpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoY29u
bmVjdGlvbiwgc3RkOjpnZXQ8MD4oYXJncyksIHN0ZDo6Z2V0PDE+KGFyZ3MpLCBzdGQ6OmdldDwy
PihhcmdzKSwgc3RkOjpnZXQ8Mz4oYXJncyksIHN0ZDo6Z2V0PDQ+KGFyZ3MpLCBzdGQ6OmdldDw1
PihhcmdzKSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFIxPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24o
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgQXJndW1lbnRzMjxQMSwgUDI+JiBhcmdzLCBB
cmd1bWVudHMxPFIxPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBj
YWxsTWVtYmVyRnVuY3Rpb24oQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgc3RkOjp0dXBsZTxQMSwg
UDI+JiYgYXJncywgc3RkOjp0dXBsZTxSMT4mIHJlcGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5j
dGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGNvbm5lY3Rpb24sIGFyZ3MuYXJndW1l
bnQxLCBhcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50MSk7CisgICAgKG9iamVjdC0+
KmZ1bmN0aW9uKShjb25uZWN0aW9uLCBzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJn
cyksIHN0ZDo6Z2V0PDA+KHJlcGx5QXJncykpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0
eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFIxPgotdm9pZCBjYWxsTWVtYmVyRnVu
Y3Rpb24oQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgQXJndW1lbnRzMTxQMT4mIGFyZ3Ms
IEFyZ3VtZW50czE8UjE+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lk
IGNhbGxNZW1iZXJGdW5jdGlvbihDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBzdGQ6OnR1cGxlPFAx
PiYmIGFyZ3MsIHN0ZDo6dHVwbGU8UjE+JiByZXBseUFyZ3MsIEMqIG9iamVjdCwgTUYgZnVuY3Rp
b24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShjb25uZWN0aW9uLCBhcmdzLmFyZ3VtZW50
MSwgcmVwbHlBcmdzLmFyZ3VtZW50MSk7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShjb25uZWN0
aW9uLCBzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MD4ocmVwbHlBcmdzKSk7CiB9CiAKIC8v
IFZhcmlhZGljIGRpc3BhdGNoIGZ1bmN0aW9ucy4KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlw
ZW5hbWUgTUY+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMwJiwgTWVz
c2FnZURlY29kZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxN
ZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPD4mJiwgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7CiAgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShkZWNvZGVy
KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxPgot
dm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzMTxQMT4mIGFyZ3MsIE1lc3Nh
Z2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVt
YmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMT4mJiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
ciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFy
Z3MuYXJndW1lbnQxLCBkZWNvZGVyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKHN0ZDo6Z2V0
PDA+KGFyZ3MpLCBkZWNvZGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUg
TUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNv
bnN0IEFyZ3VtZW50czI8UDEsIFAyPiYgYXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxl
PFAxLCBQMj4mJiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBm
dW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdz
LmFyZ3VtZW50MiwgZGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDww
PihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncyksIGRlY29kZXIpOwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQ
Mz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czM8UDEsIFAyLCBQMz4m
IGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQor
dm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwgUDIsIFAzPiYmIGFyZ3MsIE1l
c3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChv
YmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFy
Z3VtZW50MywgZGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihh
cmdzKSwgc3RkOjpnZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBkZWNvZGVyKTsKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFt
ZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0Pgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24o
Y29uc3QgQXJndW1lbnRzNDxQMSwgUDIsIFAzLCBQND4mIGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBk
ZWNvZGVyLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24o
c3RkOjp0dXBsZTxQMSwgUDIsIFAzLCBQND4mJiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
ciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFy
Z3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1l
bnQ0LCBkZWNvZGVyKTsKKyAgICAob2JqZWN0LT4qZnVuY3Rpb24pKHN0ZDo6Z2V0PDA+KGFyZ3Mp
LCBzdGQ6OmdldDwxPihhcmdzKSwgc3RkOjpnZXQ8Mj4oYXJncyksIHN0ZDo6Z2V0PDM+KGFyZ3Mp
LCBkZWNvZGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVu
YW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBQ
NT4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czU8UDEsIFAyLCBQMywg
UDQsIFA1PiYgYXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVu
Y3Rpb24pCit2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihzdGQ6OnR1cGxlPFAxLCBQMiwgUDMsIFA0
LCBQNT4mJiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5j
dGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFy
Z3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwg
ZGVjb2Rlcik7CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3Rk
OjpnZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3Rk
OjpnZXQ8ND4oYXJncyksIGRlY29kZXIpOwogfQogICAgIAogdGVtcGxhdGU8dHlwZW5hbWUgQywg
dHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUgUDMsIHR5cGVu
YW1lIFA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgUDY+Ci12b2lkIGNhbGxNZW1iZXJGdW5jdGlv
bihjb25zdCBBcmd1bWVudHM2PFAxLCBQMiwgUDMsIFA0LCBQNSwgUDY+JiBhcmdzLCBNZXNzYWdl
RGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJl
ckZ1bmN0aW9uKHN0ZDo6dHVwbGU8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4mJiBhcmdzLCBNZXNz
YWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2Jq
ZWN0LT4qZnVuY3Rpb24pKGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1
bWVudDMsIGFyZ3MuYXJndW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJncy5hcmd1bWVudDYsIGRl
Y29kZXIpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoc3RkOjpnZXQ8MD4oYXJncyksIHN0ZDo6
Z2V0PDE+KGFyZ3MpLCBzdGQ6OmdldDwyPihhcmdzKSwgc3RkOjpnZXQ8Mz4oYXJncyksIHN0ZDo6
Z2V0PDQ+KGFyZ3MpLCBzdGQ6OmdldDw1PihhcmdzKSwgZGVjb2Rlcik7CiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVu
YW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBQ
Nz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50czc8UDEsIFAyLCBQMywg
UDQsIFA1LCBQNiwgUDc+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgQyogb2JqZWN0
LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKHN0ZDo6dHVwbGU8UDEsIFAy
LCBQMywgUDQsIFA1LCBQNiwgUDc+JiYgYXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiB7Ci0gICAgKG9iamVjdC0+KmZ1bmN0aW9uKShhcmdzLmFy
Z3VtZW50MSwgYXJncy5hcmd1bWVudDIsIGFyZ3MuYXJndW1lbnQzLCBhcmdzLmFyZ3VtZW50NCwg
YXJncy5hcmd1bWVudDUsIGFyZ3MuYXJndW1lbnQ2LCBhcmdzLmFyZ3VtZW50NywgZGVjb2Rlcik7
CisgICAgKG9iamVjdC0+KmZ1bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4o
YXJncyksIHN0ZDo6Z2V0PDI+KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3RkOjpnZXQ8ND4o
YXJncyksIHN0ZDo6Z2V0PDU+KGFyZ3MpLCBzdGQ6OmdldDw2PihhcmdzKSwgZGVjb2Rlcik7CiB9
CiAKIC8vIFZhcmlhZGljIGRpc3BhdGNoIGZ1bmN0aW9ucyB3aXRoIG5vbi12YXJpYWRpYyByZXBs
eSBhcmd1bWVudHMuCiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFt
ZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUjEs
IHR5cGVuYW1lIFIyLCB0eXBlbmFtZSBSMz4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0
IEFyZ3VtZW50czQ8UDEsIFAyLCBQMywgUDQ+JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2Rl
ciwgQXJndW1lbnRzMzxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0
aW9uKQordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwgUDIsIFAzLCBQND4m
JiBhcmdzLCBNZXNzYWdlRGVjb2RlciYgZGVjb2Rlciwgc3RkOjp0dXBsZTxSMSwgUjIsIFIzPiYg
cmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5j
dGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJn
cy5hcmd1bWVudDQsIGRlY29kZXIsIHJlcGx5QXJncy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1
bWVudDIsIHJlcGx5QXJncy5hcmd1bWVudDMpOworICAgIChvYmplY3QtPipmdW5jdGlvbikoc3Rk
OjpnZXQ8MD4oYXJncyksIHN0ZDo6Z2V0PDE+KGFyZ3MpLCBzdGQ6OmdldDwyPihhcmdzKSwgc3Rk
OjpnZXQ8Mz4oYXJncyksIGRlY29kZXIsIHN0ZDo6Z2V0PDA+KHJlcGx5QXJncyksIHN0ZDo6Z2V0
PDE+KHJlcGx5QXJncyksIHN0ZDo6Z2V0PDI+KHJlcGx5QXJncykpOwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDLCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFt
ZSBQMywgdHlwZW5hbWUgUDQsIHR5cGVuYW1lIFA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgUjEs
IHR5cGVuYW1lIFIyPgotdm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQ
MSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEFy
Z3VtZW50czI8UjEsIFIyPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQordm9p
ZCBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjp0dXBsZTxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYm
IGFyZ3MsIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBzdGQ6OnR1cGxlPFIxLCBSMj4mIHJlcGx5
QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKIHsKLSAgICAob2JqZWN0LT4qZnVuY3Rpb24p
KGFyZ3MuYXJndW1lbnQxLCBhcmdzLmFyZ3VtZW50MiwgYXJncy5hcmd1bWVudDMsIGFyZ3MuYXJn
dW1lbnQ0LCBhcmdzLmFyZ3VtZW50NSwgYXJncy5hcmd1bWVudDYsIGRlY29kZXIsIHJlcGx5QXJn
cy5hcmd1bWVudDEsIHJlcGx5QXJncy5hcmd1bWVudDIpOworICAgIChvYmplY3QtPipmdW5jdGlv
bikoc3RkOjpnZXQ8MD4oYXJncyksIHN0ZDo6Z2V0PDE+KGFyZ3MpLCBzdGQ6OmdldDwyPihhcmdz
KSwgc3RkOjpnZXQ8Mz4oYXJncyksIHN0ZDo6Z2V0PDQ+KGFyZ3MpLCBzdGQ6OmdldDw1Pihhcmdz
KSwgZGVjb2Rlciwgc3RkOjpnZXQ8MD4ocmVwbHlBcmdzKSwgc3RkOjpnZXQ8MT4ocmVwbHlBcmdz
KSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEMsIHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwg
dHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVu
YW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUgUjIsIHR5cGVuYW1lIFIzPgotdm9pZCBjYWxs
TWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRzNjxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYg
YXJncywgTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEFyZ3VtZW50czM8UjEsIFIyLCBSMz4mIHJl
cGx5QXJncywgQyogb2JqZWN0LCBNRiBmdW5jdGlvbikKK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9u
KHN0ZDo6dHVwbGU8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4mJiBhcmdzLCBNZXNzYWdlRGVjb2Rl
ciYgZGVjb2Rlciwgc3RkOjp0dXBsZTxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmplY3Qs
IE1GIGZ1bmN0aW9uKQogewotICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEs
IGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJn
dW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgZGVjb2RlciwgcmVwbHlBcmdzLmFyZ3VtZW50MSwgcmVw
bHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7CisgICAgKG9iamVjdC0+KmZ1
bmN0aW9uKShzdGQ6OmdldDwwPihhcmdzKSwgc3RkOjpnZXQ8MT4oYXJncyksIHN0ZDo6Z2V0PDI+
KGFyZ3MpLCBzdGQ6OmdldDwzPihhcmdzKSwgc3RkOjpnZXQ8ND4oYXJncyksIHN0ZDo6Z2V0PDU+
KGFyZ3MpLCBkZWNvZGVyLCBzdGQ6OmdldDwwPihyZXBseUFyZ3MpLCBzdGQ6OmdldDwxPihyZXBs
eUFyZ3MpLCBzdGQ6OmdldDwyPihyZXBseUFyZ3MpKTsKIH0KIAogLy8gTWFpbiBkaXNwYXRjaCBm
dW5jdGlvbnMKQEAgLTM3Myw3ICszNzIsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZURl
Y29kZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCiAgICAgdHlwZW5hbWUgVDo6
RGVjb2RlVHlwZTo6VmFsdWVUeXBlIGFyZ3VtZW50czsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGFyZ3VtZW50cykpCiAgICAgICAgIHJldHVybjsKLSAgICBjYWxsTWVtYmVyRnVuY3Rpb24oYXJn
dW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKKyAgICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjpt
b3ZlKGFyZ3VtZW50cyksIG9iamVjdCwgZnVuY3Rpb24pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KQEAgLTM4NCw3ICszODMsNyBAQCB2b2lkIGhh
bmRsZU1lc3NhZ2UoTWVzc2FnZURlY29kZXImIGRlY29kZXIsIE1lc3NhZ2VFbmNvZGVyJiByZXBs
eUVuY29kZXIsIEMqIG9iagogICAgICAgICByZXR1cm47CiAKICAgICB0eXBlbmFtZSBUOjpSZXBs
eTo6VmFsdWVUeXBlIHJlcGx5QXJndW1lbnRzOwotICAgIGNhbGxNZW1iZXJGdW5jdGlvbihhcmd1
bWVudHMsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKKyAgICBjYWxsTWVtYmVy
RnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1
bmN0aW9uKTsKICAgICByZXBseUVuY29kZXIgPDwgcmVwbHlBcmd1bWVudHM7CiB9CiAKQEAgLTM5
Niw3ICszOTUsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwg
TWVzc2FnZURlY29kZXImIGRlY29kZXIsIE1lc3NhZ2VFbmNvZAogICAgICAgICByZXR1cm47CiAK
ICAgICB0eXBlbmFtZSBUOjpSZXBseTo6VmFsdWVUeXBlIHJlcGx5QXJndW1lbnRzOwotICAgIGNh
bGxNZW1iZXJGdW5jdGlvbihjb25uZWN0aW9uLCBhcmd1bWVudHMsIHJlcGx5QXJndW1lbnRzLCBv
YmplY3QsIGZ1bmN0aW9uKTsKKyAgICBjYWxsTWVtYmVyRnVuY3Rpb24oY29ubmVjdGlvbiwgc3Rk
Ojptb3ZlKGFyZ3VtZW50cyksIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKICAg
ICByZXBseUVuY29kZXIgPDwgcmVwbHlBcmd1bWVudHM7CiB9CiAKQEAgLTQwNiw3ICs0MDUsNyBA
QCB2b2lkIGhhbmRsZU1lc3NhZ2UoQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgTWVzc2FnZURlY29k
ZXImIGRlY29kZXIsIEMqIG9iamVjdCwgTQogICAgIHR5cGVuYW1lIFQ6OkRlY29kZVR5cGU6OlZh
bHVlVHlwZSBhcmd1bWVudHM7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcmd1bWVudHMpKQog
ICAgICAgICByZXR1cm47Ci0gICAgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbm5lY3Rpb24sIGFyZ3Vt
ZW50cywgb2JqZWN0LCBmdW5jdGlvbik7CisgICAgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbm5lY3Rp
b24sIHN0ZDo6bW92ZShhcmd1bWVudHMpLCBvYmplY3QsIGZ1bmN0aW9uKTsKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQywgdHlwZW5hbWUgTUY+CkBAIC00MTUsNyArNDE0LDcg
QEAgdm9pZCBoYW5kbGVNZXNzYWdlVmFyaWFkaWMoTWVzc2FnZURlY29kZXImIGRlY29kZXIsIEMq
IG9iamVjdCwgTUYgZnVuY3Rpb24pCiAgICAgdHlwZW5hbWUgVDo6RGVjb2RlVHlwZTo6VmFsdWVU
eXBlIGFyZ3VtZW50czsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFyZ3VtZW50cykpCiAgICAg
ICAgIHJldHVybjsKLSAgICBjYWxsTWVtYmVyRnVuY3Rpb24oYXJndW1lbnRzLCBkZWNvZGVyLCBv
YmplY3QsIGZ1bmN0aW9uKTsKKyAgICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3Vt
ZW50cyksIGRlY29kZXIsIG9iamVjdCwgZnVuY3Rpb24pOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCB0eXBlbmFtZSBDLCB0eXBlbmFtZSBNRj4KQEAgLTQyNiw3ICs0MjUsNyBAQCB2b2lkIGhh
bmRsZU1lc3NhZ2VWYXJpYWRpYyhNZXNzYWdlRGVjb2RlciYgZGVjb2RlciwgTWVzc2FnZUVuY29k
ZXImIHJlcGx5RW5jb2RlcgogICAgICAgICByZXR1cm47CiAKICAgICB0eXBlbmFtZSBUOjpSZXBs
eTo6VmFsdWVUeXBlIHJlcGx5QXJndW1lbnRzOwotICAgIGNhbGxNZW1iZXJGdW5jdGlvbihhcmd1
bWVudHMsIGRlY29kZXIsIHJlcGx5QXJndW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKKyAgICBj
YWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIGRlY29kZXIsIHJlcGx5QXJn
dW1lbnRzLCBvYmplY3QsIGZ1bmN0aW9uKTsKICAgICByZXBseUVuY29kZXIgPDwgcmVwbHlBcmd1
bWVudHM7CiB9CiAKQEAgLTQzOCw3ICs0MzcsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2VEZWxheWVk
KENvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIE1lc3NhZ2VEZWNvZGVyJiBkZWNvZGVyLCBPd25QdAog
ICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8dHlwZW5hbWUgVDo6RGVsYXllZFJlcGx5PiBk
ZWxheWVkUmVwbHkgPSBhZG9wdFJlZihuZXcgdHlwZW5hbWUgVDo6RGVsYXllZFJlcGx5KGNvbm5l
Y3Rpb24sIHJlcGx5RW5jb2Rlci5yZWxlYXNlKCkpKTsKLSAgICBjYWxsTWVtYmVyRnVuY3Rpb24o
YXJndW1lbnRzLCBkZWxheWVkUmVwbHkucmVsZWFzZSgpLCBvYmplY3QsIGZ1bmN0aW9uKTsKKyAg
ICBjYWxsTWVtYmVyRnVuY3Rpb24oc3RkOjptb3ZlKGFyZ3VtZW50cyksIGRlbGF5ZWRSZXBseS5y
ZWxlYXNlKCksIG9iamVjdCwgZnVuY3Rpb24pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBDb3JlSVBD
Cg==
</data>
<flag name="review"
          id="234717"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>