[xmlsec] Question about loading external DTD

Meg Morgan meg@votehere.net
Thu, 06 Feb 2003 22:19:00 +0000


This is a multi-part message in MIME format.
--------------BA71C637344F4BE97037DF4D
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


The error is during xmlParseMemory:

Entity: line 2: validity error: Validation failed: no DTD found !
<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#">
                                                        ^

I have attached the encrypted data and the dtd.  I appreciate your
help.

meg

Aleksey Sanin wrote:
> 
> I am not sure I clear understand your question. At which point you get
> "validity errors"? During "xmlParseMemory" call? During "xmlParseDTD"?
> 
> It's very difficult to help you w/o having the file and DTD. I would suggest
> to print out the file from memory just before "xmlParseMemory" call
> and look at it. You might have mistakes in your dynamic document
> construction that results in these errors.
> 
> Aleksey

-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Meg Morgan                           425/450-2754
meg@votehere.net                   http://www.votehere.net


--------------BA71C637344F4BE97037DF4D
Content-Type: text/plain; charset=us-ascii;
 name="ENCRYPTEDDATA"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="ENCRYPTEDDATA"

<?xml version="1.0"?>
<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>DES3 Key</KeyName>
<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"/>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>RSA Public Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>
Y0MGGGMUOFTBkHi2gcvzVZW+NA7366Fbe86FgY2zUaVSzO6Lr4YmBsIpJWgx9uOe
VhHkQ3PjaftMEppzQ6rdUkoErq2TtqVk4vJ+bl7gyVd3gzNXKVJwd2xPxP/1jlJa
I1TsH4PHH+f8F0h2ixQpAmbIGQfyUobhjLxtzI4NxIM=
</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>
VKIqf1eoPwvqG5teYcuGH8kU+WfgFxxX6WvZdi0gm92ckNcxA85DH9dRx78JVV2A
Wv97+FCXeGuHaSaf54EJiMcwj4+/9RksxJImB8vWPzO8XtlNvtSI+oFVl/HMsaf9
Zgd0wAzVxUQF34XsCXpaJbODcPKjJlCjdPZmxeqbx9U=
</CipherValue>
</CipherData>
</EncryptedData>

--------------BA71C637344F4BE97037DF4D
Content-Type: application/x-unknown-content-type-dtd_auto_file;
 name="brunch.dtd"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="brunch.dtd"

PCEtLSBBbnN3ZXIgTWFyayAtLT4NCjwhRUxFTUVOVCBBbnN3ZXJNYXJrICgjUENEQVRBKT4NCg0K
DQo8IS0tIEFuc3dlciBSZWZlcmVuY2UgLS0+DQo8IUVMRU1FTlQgQW5zd2VyUmVmZXJlbmNlICgj
UENEQVRBKT4NCg0KDQo8IS0tIEFuc3dlciBWYWxpZGl0eSBQcm9vZiAtLT4NCjwhRUxFTUVOVCBB
bnN3ZXJWYWxpZGl0eVByb29mICgjUENEQVRBKT4NCg0KDQo8IS0tIEF1dGhvcml0eSAtLT4NCjwh
RUxFTUVOVCBBdXRob3JpdHkgKEF1dGhvcml0eUV2YWx1YXRpb25Qb2ludCk+DQo8IUFUVExJU1Qg
QXV0aG9yaXR5DQpBdXRob3JpdHlJRCBDREFUQSAjUkVRVUlSRUQ+DQo8IUVMRU1FTlQgQXV0aG9y
aXR5RXZhbHVhdGlvblBvaW50ICgjUENEQVRBKT4NCjwhQVRUTElTVCBBdXRob3JpdHlFdmFsdWF0
aW9uUG9pbnQNCkVuY29kaW5nIENEQVRBICNSRVFVSVJFRD4NCg0KDQo8IS0tIEJhbGxvdCBBbnN3
ZXIgLS0+DQo8IUVMRU1FTlQgQmFsbG90QW5zd2VyIChBbnN3ZXJUZXh0U3RydWN0dXJlLCBHYW1t
YUFuc3dlcik+DQo8IUFUVExJU1QgQmFsbG90QW5zd2VyDQpBbnN3ZXJJRCBDREFUQSAjUkVRVUlS
RUQ+DQo8IUVMRU1FTlQgQW5zd2VyVGV4dFN0cnVjdHVyZSAoI1BDREFUQSk+DQo8IUVMRU1FTlQg
R2FtbWFBbnN3ZXIgKCNQQ0RBVEEpPg0KDQoNCjwhLS0gQmFsbG90IEJveCBOb2RlIC0tPg0KPCFF
TEVNRU5UIEJhbGxvdEJveE5vZGUgKCNQQ0RBVEEpPg0KDQoNCjwhLS0gQmFsbG90IFF1ZXN0aW9u
IC0tPg0KPCFFTEVNRU5UIEJhbGxvdFF1ZXN0aW9uIChRdWVzdGlvblRleHRTdHJ1Y3R1cmUsIEJh
bGxvdEFuc3dlcispPg0KPCFBVFRMSVNUIEJhbGxvdFF1ZXN0aW9uIA0KUXVlc3Rpb25JRCBDREFU
QSAjUkVRVUlSRUQ+DQo8IUVMRU1FTlQgUXVlc3Rpb25UZXh0U3RydWN0dXJlICgjUENEQVRBKT4N
Cg0KDQo8IS0tIEJhbGxvdCBTZWNyZXRzIC0tPg0KPCFFTEVNRU5UIEJhbGxvdFNlY3JldHMgKCNQ
Q0RBVEEpPg0KDQoNCjwhLS0gQmxhbmsgQmFsbG90IC0tPg0KPCFFTEVNRU5UIEJsYW5rQmFsbG90
IChDcnlwdG9FbGVjdGlvblBhcmFtZXRlcnMsIEJhbGxvdFF1ZXN0aW9uKywgRGlzcGxheUluZm8p
Pg0KPCFFTEVNRU5UIERpc3BsYXlJbmZvICgjUENEQVRBKT4NCg0KDQo8IS0tIEJyb2FkY2FzdCBW
YWx1ZXMgLS0+DQo8IUVMRU1FTlQgQnJvYWRjYXN0VmFsdWVzIChCcm9hZGNhc3RWYWx1ZSspPg0K
DQoNCjwhLS0gQnJvYWRjYXN0IFZhbHVlIC0tPg0KPCFFTEVNRU5UIEJyb2FkY2FzdFZhbHVlIChC
aWdUaGV0YSssIE9tZWdhLCBTb21ldGhpbmcpPg0KPCFBVFRMSVNUIEJyb2FkY2FzdFZhbHVlDQpB
dXRob3JpdHlJRCBDREFUQSAjUkVRVUlSRUQ+DQo8IUVMRU1FTlQgQmlnVGhldGEgKCNQQ0RBVEEp
Pg0KPCFBVFRMSVNUIEJpZ1RoZXRhDQpPcmRlciBDREFUQSAjUkVRVUlSRUQNCkVuY29kaW5nIENE
QVRBICNSRVFVSVJFRD4NCjwhRUxFTUVOVCBPbWVnYSAoI1BDREFUQSk+DQo8IUFUVExJU1QgT21l
Z2ENCkVuY29kaW5nIENEQVRBICNSRVFVSVJFRD4NCjwhRUxFTUVOVCBTb21ldGhpbmcgKCNQQ0RB
VEEpPg0KPCFBVFRMSVNUIFNvbWV0aGluZw0KRW5jb2RpbmcgQ0RBVEEgI1JFUVVJUkVEPg0KDQoN
CjwhLS0gQ2VydGlmaWNhdGUgLS0+DQo8IUVMRU1FTlQgQ2VydGlmaWNhdGUgKCNQQ0RBVEEpPg0K
DQoNCjwhLS0gQ2xlYXIgVGV4dCBCYWxsb3QgLS0+DQo8IUVMRU1FTlQgQ2xlYXJUZXh0QmFsbG90
ICgjUENEQVRBKT4NCg0KDQo8IS0tIENvbmZpcm1hdGlvbiBDb2RlIC0tPg0KPCFFTEVNRU5UIENv
bmZpcm1hdGlvbkNvZGUgKCNQQ0RBVEEpPg0KDQoNCjwhLS0gQ29uZmlybWF0aW9uIENvZGUgVmVj
dG9yIC0tPg0KPCFFTEVNRU5UIENvbmZpcm1hdGlvbkNvZGVWZWN0b3IgKCNQQ0RBVEEpPg0KDQoN
CjwhLS0gQ3J5cHRvIEVsZWN0aW9uIFBhcmFtZXRlcnMgLS0+DQo8IUVMRU1FTlQgQ3J5cHRvRWxl
Y3Rpb25QYXJhbWV0ZXJzIChDcnlwdG9Hcm91cFBhcmFtZXRlcnMsIENyeXB0b1RhYnVsYXRpb25Q
YXJhbWV0ZXJzKT4NCg0KDQo8IS0tIENyeXB0byBHcm91cCBQYXJhbWV0ZXJzIC0tPg0KPCFFTEVN
RU5UIENyeXB0b0dyb3VwUGFyYW1ldGVycyAoRU1vZHVsdXMsIEVTdWJncm91cE1vZHVsdXMsIEVH
ZW5lcmF0b3IpPg0KPCFFTEVNRU5UIEVNb2R1bHVzICgjUENEQVRBKT4NCjwhQVRUTElTVCBFTW9k
dWx1cw0KRW5jb2RpbmcgQ0RBVEEgI1JFUVVJUkVEPg0KPCFFTEVNRU5UIEVTdWJncm91cE1vZHVs
dXMgKCNQQ0RBVEEpPg0KPCFBVFRMSVNUIEVTdWJncm91cE1vZHVsdXMNCkVuY29kaW5nIENEQVRB
ICNSRVFVSVJFRD4NCjwhRUxFTUVOVCBFR2VuZXJhdG9yICgjUENEQVRBKT4NCjwhQVRUTElTVCBF
R2VuZXJhdG9yDQpFbmNvZGluZyBDREFUQSAjUkVRVUlSRUQ+DQoNCg0KPCEtLSBDcnlwdG8gVGFi
dWxhdGlvbiBQYXJhbWV0ZXJzIC0tPg0KPCFFTEVNRU5UIENyeXB0b1RhYnVsYXRpb25QYXJhbWV0
ZXJzIChFUHVibGljS2V5LCBTZWNFbmNyeXB0aW9uQmFzZSwgTnVtQXV0aCwgVGhyZXNob2xkLCBL
ZXlTaGFyZUNvbW1pdG1lbnQrKT4NCjwhRUxFTUVOVCBFUHVibGljS2V5ICgjUENEQVRBKT4NCjwh
QVRUTElTVCBFUHVibGljS2V5DQpFbmNvZGluZyBDREFUQSAjUkVRVUlSRUQ+DQo8IUVMRU1FTlQg
U2VjRW5jcnlwdGlvbkJhc2UgKCNQQ0RBVEEpPg0KPCFBVFRMSVNUIFNlY0VuY3J5cHRpb25CYXNl
DQpFbmNvZGluZyBDREFUQSAjUkVRVUlSRUQ+DQo8IUVMRU1FTlQgTnVtQXV0aCAoI1BDREFUQSk+
DQo8IUFUVExJU1QgTnVtQXV0aA0KRW5jb2RpbmcgQ0RBVEEgI1JFUVVJUkVEPg0KPCFFTEVNRU5U
IFRocmVzaG9sZCAoI1BDREFUQSk+DQo8IUFUVExJU1QgVGhyZXNob2xkDQpFbmNvZGluZyBDREFU
QSAjUkVRVUlSRUQ+DQoNCg0KPCEtLSBEZWNyeXB0aW9uIFZhbGlkaXR5IFByb29mIC0tPg0KPCFF
TEVNRU5UIERlY3J5cHRpb25WYWxpZGl0eVByb29mICgjUENEQVRBKT4NCg0KDQo8IS0tIEJlZ2lu
IERldGFjaGVkIFNpZ25hdHVyZSAtLT4NCg0KPCEtLSBEZXRhY2hlZCBTaWduYXR1cmUgLS0+DQo8
IUVMRU1FTlQgU2lnbmF0dXJlIChTaWduZWRJbmZvLCBTaWduYXR1cmVWYWx1ZSwgS2V5SW5mbyk+
DQoNCjwhLS0gU2lnbmVkSW5mbyAtLT4NCjwhRUxFTUVOVCBTaWduZWRJbmZvIChDYW5vbmljYWxp
emF0aW9uTWV0aG9kLCBTaWduYXR1cmVNZXRob2QsIFJlZmVyZW5jZSk+DQo8IUVMRU1FTlQgQ2Fu
b25pY2FsaXphdGlvbk1ldGhvZCAoI1BDREFUQSk+DQo8IUFUVExJU1QgQ2Fub25pY2FsaXphdGlv
bk1ldGhvZA0KQWxnb3JpdGhtIENEQVRBICNSRVFVSVJFRD4NCjwhRUxFTUVOVCBTaWduYXR1cmVN
ZXRob2QgKCNQQ0RBVEEpPg0KPCFBVFRMSVNUIFNpZ25hdHVyZU1ldGhvZA0KQWxnb3JpdGhtIENE
QVRBICNSRVFVSVJFRD4NCg0KPCEtLSBSZWZlcmVuY2UgLS0+DQo8IUVMRU1FTlQgUmVmZXJlbmNl
IChUcmFuc2Zvcm1zLCBEaWdlc3RNZXRob2QsIERpZ2VzdFZhbHVlKT4NCjwhRUxFTUVOVCBEaWdl
c3RNZXRob2QgKCNQQ0RBVEEpPg0KPCFBVFRMSVNUIERpZ2VzdE1ldGhvZA0KQWxnb3JpdGhtIENE
QVRBICNSRVFVSVJFRD4NCjwhRUxFTUVOVCBEaWdlc3RWYWx1ZSAoI1BDREFUQSk+DQoNCjwhLS0g
VHJhbnNmb3JtcyAtLT4NCjwhRUxFTUVOVCBUcmFuc2Zvcm1zIChUcmFuc2Zvcm0pPg0KPCFFTEVN
RU5UIFRyYW5zZm9ybSAoI1BDREFUQSk+DQo8IUFUVExJU1QgVHJhbnNmb3JtDQpBbGdvcml0aG0g
Q0RBVEEgI1JFUVVJUkVEPg0KDQo8IS0tIFNpZ25hdHVyZVZhbHVlIC0tPg0KPCFFTEVNRU5UIFNp
Z25hdHVyZVZhbHVlICgjUENEQVRBKT4NCg0KPCEtLSBLZXlJbmZvIC0tPg0KPCFFTEVNRU5UIEtl
eUluZm8gKEtleU5hbWU/LCBFbmNyeXB0ZWRLZXk/LCBLZXlWYWx1ZT8pPg0KPCFFTEVNRU5UIEtl
eU5hbWUgKCNQQ0RBVEEpPg0KDQo8IS0tIEtleVZhbHVlIC0tPg0KPCFFTEVNRU5UIEtleVZhbHVl
IChEU0FLZXlWYWx1ZSk+DQoNCjwhLS0gRFNBS2V5VmFsdWUgLS0+DQo8IUVMRU1FTlQgRFNBS2V5
VmFsdWUgKFAsIFEsIEcsIFkpPg0KPCFFTEVNRU5UIFAgKCNQQ0RBVEEpPg0KPCFFTEVNRU5UIFEg
KCNQQ0RBVEEpPg0KPCFFTEVNRU5UIEcgKCNQQ0RBVEEpPg0KPCFFTEVNRU5UIFkgKCNQQ0RBVEEp
Pg0KDQo8IS0tIEVuZCBEZXRhY2hlZCBTaWduYXR1cmUgLS0+DQoNCg0KPCEtLSBFbGVjdGlvbiBJ
RCAtLT4NCjwhRUxFTUVOVCBFbGVjdGlvbklEICgjUENEQVRBKT4NCg0KDQo8IS0tIEVsZWN0aW9u
IE5vZGUgLS0+DQo8IUVMRU1FTlQgRWxlY3Rpb25Ob2RlICgjUENEQVRBKT4NCg0KDQo8IS0tIEVs
R2FtYWwgUGFpciAtLT4NCjwhRUxFTUVOVCBFbEdhbWFsUGFpciAoWFZhbHVlLCBZVmFsdWUpPg0K
PCFFTEVNRU5UIFhWYWx1ZSAoI1BDREFUQSk+DQo8IUVMRU1FTlQgWVZhbHVlICgjUENEQVRBKT4N
Cg0KDQo8IS0tIEJlZ2luIEVuY3J5cHRlZCBEYXRhIC0tPg0KDQo8IS0tIEVuY3J5cHRlZCBEYXRh
IC0tPg0KPCFFTEVNRU5UIEVuY3J5cHRlZERhdGEgKEVuY3J5cHRpb25NZXRob2QsIEtleUluZm8s
IENpcGhlckRhdGEpPg0KPCFFTEVNRU5UIEVuY3J5cHRpb25NZXRob2QgKCNQQ0RBVEEpPg0KPCFB
VFRMSVNUIEVuY3J5cHRpb25NZXRob2QNCkFsZ29yaXRobSBDREFUQSAjUkVRVUlSRUQ+DQoNCjwh
LS0gRW5jcnlwdGVkS2V5IC0tPg0KPCFFTEVNRU5UIEVuY3J5cHRlZEtleSAoRW5jcnlwdGlvbk1l
dGhvZCwgS2V5SW5mbywgQ2lwaGVyRGF0YSk+DQoNCjwhLS0gQ2lwaGVyRGF0YSAtLT4NCjwhRUxF
TUVOVCBDaXBoZXJEYXRhIChDaXBoZXJWYWx1ZSk+DQo8IUVMRU1FTlQgQ2lwaGVyVmFsdWUgKCNQ
Q0RBVEEpPg0KDQo8IS0tIEVuZCBFbmNyeXB0ZWQgRGF0YSAtLT4NCg0KDQo8IS0tIEVycm9yIFN0
cnVjdHVyZSAtLT4NCjwhRUxFTUVOVCBFcnJvclN0cnVjdHVyZSAoI1BDREFUQSk+DQoNCg0KPCEt
LSBJZGVudGlmaWNhdGlvbiBJbmZvcm1hdGlvbiAtLT4NCjwhRUxFTUVOVCBJZGVudEluZm8gKCNQ
Q0RBVEEpPg0KDQoNCjwhLS0gS2V5IC0tPg0KPCFFTEVNRU5UIEtleSAoI1BDREFUQSk+DQoNCg0K
PCEtLSBLZXlzIC0tPg0KPCFFTEVNRU5UIEtleXMgKEtleSspPg0KDQoNCjwhLS0gS2V5IEdlbmVy
YXRpb24gUGFyYW1ldGVycyAtLT4NCjwhRUxFTUVOVCBLZXlHZW5QYXJhbWV0ZXJzIChDcnlwdG9H
cm91cFBhcmFtZXRlcnMsIE51bUF1dGgsIFRocmVzaG9sZCk+DQo8IUFUVExJU1QgS2V5R2VuUGFy
YW1ldGVycw0KR3JvdXBUeXBlIENEQVRBICNSRVFVSVJFRD4NCg0KDQo8IS0tIEtleSBTaGFyZSBD
b21taXRtZW50IC0tPg0KPCFFTEVNRU5UIEtleVNoYXJlQ29tbWl0bWVudCAoI1BDREFUQSk+DQo8
IUFUVExJU1QgS2V5U2hhcmVDb21taXRtZW50DQpBdXRob3JpdHlJRCBDREFUQSAjUkVRVUlSRUQN
CkVuY29kaW5nIENEQVRBICNSRVFVSVJFRD4NCg0KDQo8IS0tIE1vZHVsYXIgSW50ZWdlciAtLT4N
CjwhRUxFTUVOVCBNb2R1bGFySW50ICgjUENEQVRBKT4NCg0KDQo8IS0tIE11bHRpIFNldCBFbGVt
ZW50IC0tPg0KPCFFTEVNRU5UICBNdWx0aVNldEVsZW1lbnQgKEdhbW1hKSA+DQo8IS0tIGNvdW50
IGEgbm9uLW5lZ2F0aXZlIGludGVnZXIgLS0+DQo8IUFUVExJU1QgIE11bHRpU2V0RWxlbWVudA0K
Y291bnQgQ0RBVEEgI1JFUVVJUkVEPg0KPCEtLSBhbiBlbGVtZW50IG9mIDxnPiAtLT4NCjwhRUxF
TUVOVCAgR2FtbWEgICgjUENEQVRBKT4NCg0KDQo8IS0tUGFpcndpc2UgU2VjcmV0cyAtLT4NCjwh
RUxFTUVOVCBQYWlyd2lzZVNlY3JldHMgKFBhaXJ3aXNlU2VjcmV0Kyk+DQoNCg0KPCEtLSBQYWly
d2lzZSBTZWNyZXQgLS0+DQo8IUVMRU1FTlQgUGFpcndpc2VTZWNyZXQgKCNQQ0RBVEEpPg0KPCFB
VFRMSVNUIFBhaXJ3aXNlU2VjcmV0DQpGcm9tSUQgQ0RBVEEgI1JFUVVJUkVEDQpUb0lEIENEQVRB
ICNSRVFVSVJFRA0KRW5jb2RpbmcgQ0RBVEEgI1JFUVVJUkVEPg0KDQoNCjwhLS0gUGxhaW50ZXh0
IC0tPg0KPCFFTEVNRU5UIFBsYWludGV4dCAoI1BDREFUQSk+DQoNCg0KPCEtLSBQcmUgQ29uZmly
bWF0aW9uIENvZGUgLS0+DQo8IUVMRU1FTlQgUHJlQ29uZmlybWF0aW9uQ29kZSAoI1BDREFUQSk+
DQoNCg0KPCEtLSBQcmUgQ29uZmlybWF0aW9uIENvZGUgVmVjdG9yIC0tPg0KPCFFTEVNRU5UIFBy
ZUNvbmZDb2RlVmVjdG9yICgjUENEQVRBKT4NCg0KDQo8IS0tIFBSTkcgLS0+DQo8IUVMRU1FTlQg
UHJuZyAoI1BDREFUQSk+DQoNCg0KPCEtLSBRdWVzdGlvbiBSZWZlcmVuY2UgLS0+DQo8IUVMRU1F
TlQgUXVlc3Rpb25SZWYgKCNQQ0RBVEEpPg0KDQoNCjwhLS0gUmFuZG9tIFBvb2wgLS0+DQo8IUVM
RU1FTlQgUmFuZG9tUG9vbCAoI1BDREFUQSk+DQoNCg0KPCEtLSBSYW5kb20gU3RyaW5nIC0tPg0K
PCFFTEVNRU5UIFJhbmRvbVN0cmluZyAoI1BDREFUQSk+DQoNCg0KPCEtLSBSYXcgQmFsbG90IEJv
eCAtLT4NCjwhRUxFTUVOVCAgUmF3QmFsbG90Qm94IChSYXdWb3RlZEJhbGxvdCkqID4NCg0KDQo8
IS0tIFJhdyBRdWVzdGlvbiBSZXN1bHRzIC0tPg0KPCFFTEVNRU5UIFJhd1F1ZXN0aW9uUmVzdWx0
cyAoTXVsdGlTZXRFbGVtZW50Kyk+DQo8IUFUVExJU1QgUmF3UXVlc3Rpb25SZXN1bHRzDQpRdWVz
dGlvbklEIENEQVRBICNSRVFVSVJFRD4NCg0KDQo8IS0tIFJhdyBSZXN1bHRzIC0tPg0KPCFFTEVN
RU5UICBSYXdSZXN1bHRzIChSYXdRdWVzdGlvblJlc3VsdHMpKyA+DQoNCg0KPCEtLSBSYXcgVm90
ZWQgQmFsbG90IC0tPg0KPCFFTEVNRU5UICBSYXdWb3RlZEJhbGxvdCAoRWxHYW1hbFBhaXIpKyA+
DQoNCg0KPCEtLSBSZXN1bHRzIC0tPg0KPCEtLSBUaGlzIGlzIGVzc2VudGlhbGx5IHdoYXRldmVy
IHRoZSBwYXJ0bmVyIHNheXMgaXQgaXMuIC0tPg0KPCFFTEVNRU5UIFJlc3VsdHMgKCNQQ0RBVEEp
Pg0KDQoNCjwhLS0gUmV0dXJuIENvZGUgLS0+DQo8IUVMRU1FTlQgUmV0dXJuQ29kZSAoI1BDREFU
QSk+DQoNCg0KPCEtLSBTZWNyZXQgQ29lZmZpY2llbnRzIC0tPg0KPCFFTEVNRU5UIFNlY3JldENv
ZWZmaWNpZW50cyAoU21hbGxUaGV0YSspPg0KPCFBVFRMSVNUIFNlY3JldENvZWZmaWNpZW50cw0K
QXV0aG9yaXR5SUQgQ0RBVEEgI1JFUVVJUkVEPg0KPCFFTEVNRU5UIFNtYWxsVGhldGEgKCNQQ0RB
VEEpPg0KPCFBVFRMSVNUIFNtYWxsVGhldGENCk9yZGVyIENEQVRBICNSRVFVSVJFRA0KRW5jb2Rp
bmcgQ0RBVEEgI1JFUVVJUkVEPg0KDQoNCjwhLS0gU2VjcmV0IFNoYXJlIC0tPg0KPCFFTEVNRU5U
IFNlY3JldFNoYXJlICgjUENEQVRBKT4NCjwhQVRUTElTVCBTZWNyZXRTaGFyZQ0KRW5jb2Rpbmcg
Q0RBVEEgI1JFUVVJUkVEPg0KDQoNCjwhLS0gU2h1ZmZsZSBWYWxpZGl0eSBQcm9vZiAtLT4NCjwh
RUxFTUVOVCBTaHVmZmxlVmFsaWRpdHlQcm9vZiAoI1BDREFUQSk+DQoNCg0KPCEtLSBTaWduZWQg
QmFsbG90IEJveCAtLT4NCjwhRUxFTUVOVCBTaWduZWRCYWxsb3RCb3ggKCNQQ0RBVEEpPg0KDQoN
CjwhLS0gU2lnbmVkIEJsYW5rIEJhbGxvdCAtLT4NCjwhRUxFTUVOVCBTaWduZWRCbGFua0JhbGxv
dCAoQmxhbmtCYWxsb3QsIFNpZ25hdHVyZSspPg0KDQoNCjwhLS0gU2lnbmVkIEVsZWN0aW9uIFBh
cmFtZXRlcnMgLS0+DQo8IUVMRU1FTlQgU2lnbmVkRWxlY3Rpb25QYXJhbWV0ZXJzIChDcnlwdG9F
bGVjdGlvblBhcmFtZXRlcnMsIEtleVNoYXJlQ29tbWl0bWVudCssIFNpZ25hdHVyZSk+DQoNCg0K
PCEtLSBTaWduZWQgVm90ZWQgQmFsbG90IC0tPg0KPCFFTEVNRU5UIFNpZ25lZFZvdGVkQmFsbG90
IChWb3RlZEJhbGxvdCwgU2lnbmF0dXJlKT4NCg0KDQo8IS0tIFNpZ25lZCBTdGF0dXMgUXVlcnkg
U3RydWN0dXJlIC0tPg0KPCFFTEVNRU5UIFNpZ25lZFN0YXR1c1F1ZXJ5U3RydWN0ICgjUENEQVRB
KT4NCg0KDQo8IS0tIFNpZ25lZCBTdGF0dXMgUmVzcG9uc2UgU3RydWN0dXJlIC0tPg0KPCFFTEVN
RU5UIFNpZ25lZFN0YXR1c1Jlc3BvbnNlU3RydWN0ICgjUENEQVRBKT4NCg0KDQo8IS0tIFN0YXR1
cyBRdWVyeSBTdHJ1Y3R1cmUgLS0+DQo8IUVMRU1FTlQgU3RhdHVzUXVlcnlTdHJ1Y3QgKCNQQ0RB
VEEpPg0KDQoNCjwhLS0gVmFsaWRhdGVkIFZvdGVkIEJhbGxvdCAtLT4NCjwhRUxFTUVOVCBWYWxp
ZGF0ZWRWb3RlZEJhbGxvdCAoI1BDREFUQSk+DQoNCg0KPCEtLSBWb3RlIFJlY2VpcHQgLS0+DQo8
IUVMRU1FTlQgVm90ZVJlY2VpcHQgKCNQQ0RBVEEpPg0KDQoNCjwhLS0gVm90ZSBSZWNlaXB0IERh
dGEgLS0+DQo8IUVMRU1FTlQgVm90ZVJlY2VpcHREYXRhICgjUENEQVRBKT4NCg0KDQo8IS0tIFZv
dGVkIEFuc3dlciAtLT4NCjwhRUxFTUVOVCBWb3RlZEFuc3dlciAoI1BDREFUQSk+DQoNCg0KPCEt
LSBWb3RlZCBCYWxsb3QgLS0+DQo8IUVMRU1FTlQgVm90ZWRCYWxsb3QgKFJhd1ZvdGVkQmFsbG90
KT4NCjwhQVRUTElTVCBWb3RlZEJhbGxvdCANCkJCSGFzaCBDREFUQSAjUkVRVUlSRUQ+DQoNCg0K
PCEtLSBWb3RlciBJRCAtLT4NCjwhRUxFTUVOVCBWb3RlcklEICgjUENEQVRBKT4NCg0KDQo8IS0t
IFZvdGVyIFJvbGwgLS0+DQo8IUVMRU1FTlQgVm90ZXJSb2xsIChWb3RlckNlcnQqKT4NCjwhRUxF
TUVOVCBWb3RlckNlcnQgKCNQQ0RBVEEpPg0K

--------------BA71C637344F4BE97037DF4D--