[prev] [thread] [next] [Date index for 2006/02/24]
------=_Part_15667_25848480.1140809783259 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Anyone want to test this version out. It is Old CDBI compatible. I dont have that installed. Heres changes. Also added to synopsis for one_to_one stuff. CHANGES THIS VERSION No more spurious warnings Attempts to use Class::DBI::Sweet's search (temporary hack until proper so= lu- tion can be made) one_to_one and many_to_many args recognized. note default WILL BE one_to_on= e but not until Version 1.0. Rhesa, It defaults now to many_to_many since we dont want to break peoples code this release. Question for you, -- I like my one_to_one's to have the same ID in most cases. Makes stuff easy. I hacked IsA's _creator sub to put the ID of the Parent into the childs data hash since parent is created first. I'm thinking this is a pretty common desire and am wondering how to make it do that nicely when you want. Probably another arg . Also, dont have time to get to has_many inherit yet. Also, Matt has good point about cpan installing CDBI 3.14 . I think the cpan needs install IsA that is compatible with whatever Class::DBI it installs. So we have to take it the other way -- the developemnt versions will be .06_CDBI_Frozen_301 or whatever. Sorry.=20 CDBI COMPATIBILITY will be well documented . I think that covers it. Appreciate any testing. ------=_Part_15667_25848480.1140809783259 Content-Type: application/octet-stream; name="IsA.pm" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="IsA.pm" X-Attachment-Id: f_ek2wqrpm cGFja2FnZSBDbGFzczo6REJJOjpSZWxhdGlvbnNoaXA6OklzQTsKCgpvdXIgJERFQlVHX0xFVkVM ID0gMDsKCndhcm4gIlVzaW5nICIgLiBfX1BBQ0tBR0VfXyBpZiAkREVCVUdfTEVWRUwgPiAwOwo9 aGVhZDEgTkFNRQoKQ2xhc3M6OkRCSTo6UmVsYXRpb25zaGlwOjpJc0EgLSBBIENsYXNzOjpEQkkg bW9kdWxlIGZvciAnSXMgQScgcmVsYXRpb25zaGlwcwoKPWhlYWQxIERFU0NSSVBUSU9OCgoqKiog SW1wb3J0YW50ICoqKiBTZWUgQ0xBU1M6OkRCSSBDT01QQVRJQklMVFkgIGJlbG93CgpDbGFzczo6 REJJOjpSZWxhdGlvbnNoaXA6OklzQSBQcm92aWRlcyBhbiBJcyBBIHJlbGF0aW9uc2hpcCBiZXR3 ZWVuIENsYXNzOjpEQkkgY2xhc3Nlcy90YWJsZXMuCgpCeSB1c2luZyB0aGlzIG1vZHVsZSB5b3Ug Y2FuIGVtdWxhdGUgc29tZSBmZWF0dXJlcyBvZiBpbmhlcml0YW5jZSBib3RoIHdpdGhpbiB5b3Vy IGRhdGFiYXNlIGFuZCBjbGFzc2VzIHRocm91Z2ggdGhlIENsYXNzOjpEQkkgQVBJLgoKTk9URTog VGhpcyBtb2R1bGUgaXMgc3RpbGwgZXhwZXJpbWVudGFsLCBzZXZlcmFsIHZlcnkgbmFzdHkgYnVn cyBoYXZlIGJlZW4gZm91bmQgKGFuZCBmaXhlZCkgb3RoZXJzIG1heSBzdGlsbCBiZSBsdXJraW5n IC0gc2VlIENBVkVBVFMgQU5EIEJVR1MgYmVsb3cuCgpXYXJuaW5nIFdpbGwgUm9iaW5zb24hCgo9 aGVhZDEgU1lOT1BTSVMKCkluIHlvdXIgZGF0YWJhc2UgKGFzc3VtaW5nIG15c3FsKToKCiBjcmVh dGUgdGFibGUgcGVyc29uICgKICAgcGVyc29uaWQgaW50IHByaW1hcnkga2V5IGF1dG9faW5jcmVt ZW50LAogICBmaXJzdG5hbWUgdmFyY2hhcigzMiksCiAgIGluaXRpYWxzIHZhcmNoYXIoMTYpLAog ICBzdXJuYW1lIHZhcmNoYXIoNjQpLAogICBkYXRlX29mX2JpcnRoIGRhdGV0aW1lCiApOwoKIGNy ZWF0ZSB0YWJsZSBhcnRpc3QgKAogICBhcnRpc3RpZCBpbnQgcHJpbWFyeSBrZXkgYXV0b19pbmNy ZW1lbnQsCiAgIGFsaWFzIHZhcmNoYXIoMTI4KSwKICAgcGVyc29uIGludAogKTsKCgpJbiB5b3Vy IGNsYXNzZXM6CgogcGFja2FnZSBNdXNpYzo6REJJOwogdXNlIGJhc2UgJ0NsYXNzOjpEQkknOwoK IE11c2ljOjpEQkktPmNvbm5lY3Rpb24oJ2RiaTpteXNxbDpkYm5hbWUnLCAndXNlcm5hbWUnLCAn cGFzc3dvcmQnKTsKIF9fUEFDS0FHRV9fLT5hZGRfcmVsYXRpb25zaGlwX3R5cGUoaXNfYSA9PiAn Q2xhc3M6OkRCSTo6UmVsYXRpb25zaGlwOjpJc0EnKTsKClN1cGVyY2xhc3M6CgogcGFja2FnZSBN dXNpYzo6UGVyc29uOwogdXNlIGJhc2UgJ011c2ljOjpEQkknOwoKIE11c2ljOjpQZXJzb24tPnRh YmxlKCdwZXJzb24nKTsKIE11c2ljOjpQZXJzb24tPmNvbHVtbnMoQWxsID0+IHF3L3BlcnNvbmlk IGZpcnN0bmFtZSBpbml0aWFscyBzdXJuYW1lIGRhdGVfb2ZfYmlydGgvKTsKIE11c2ljOjpQZXJz b24tPmNvbHVtbnMoUHJpbWFyeSA9PiBxdy9wZXJzb25pZC8pOyAjIEdvb2QgcHJhY3RpY2UsIGxl c3MgbGlrZWx5IHRvIGJyZWFrIElzQQoKQ2hpbGQgY2xhc3M6CgogcGFja2FnZSBNdXNpYzo6QXJ0 aXN0OwogdXNlIGJhc2UgJ011c2ljOjpEQkknOwogdXNlIE11c2ljOjpQZXJzb247ICMgcmVxdWly ZWQgZm9yIGFjY2VzcyB0byBNdXNpYzo6UGVyc29uIG1ldGhvZHMKCiBNdXNpYzo6QXJ0aXN0LT50 YWJsZSgnYXJ0aXN0Jyk7CiBNdXNpYzo6QXJ0aXN0LT5jb2x1bW5zKEFsbCA9PiBxdy9hcnRpc3Rp ZCBhbGlhcy8pOwogTXVzaWM6OlBlcnNvbi0+Y29sdW1ucyhQcmltYXJ5ID0+IHF3L3BlcnNvbmlk Lyk7ICMgR29vZCBwcmFjdGljZSwgbGVzcyBsaWtlbHkgdG8gYnJlYWsgSXNBCiBNdXNpYzo6QXJ0 aXN0LT5oYXNfbWFueShjZHMgPT4gJ011c2ljOjpDRCcpOwoKIE11c2ljOjpBcnRpc3QtPmlzX2Eo cGVyc29uID0+ICdQZXJzb24nKTsgIyBNdXNpYzo6QXJ0aXN0IGluaGVyaXRzIGFjY2Vzc29ycyBm cm9tIE11c2ljOjpQZXJzb24KCiAjIEFib3ZlIGFzc3VtZXMgbWFueV90b19tYW55IHJlbGF0aW9u c2hpcC4gU2FtZSBhcyAgCiBNdXNpYzo6QXJ0aXN0LT5pc19hKHBlcnNvbiA9PiAnUGVyc29uJywg e21hbnlfdG9fbWFueT0+MSk7IAogIyBJZiByZWwgaXMgYSAgb25lX3RvX29uIHlvdSBjYW4gaGF2 ZSB0aGUgUGVyc29uIGJlIGRlbGV0ZWQgYnkgY2FzY2FkZSAgCiBNdXNpYzo6QXJ0aXN0LT5pc19h KHBlcnNvbiA9PiAnUGVyc29uJywge29uZV90b19vbmU9PjF9ICk7IAoKLi4uIGVsc2V3aGVyZSAu Li4KCiB1c2UgTXVzaWM6OkFydGlzdDsKIG15ICRhcnRpc3QgPSBNdXNpYzo6QXJ0aXN0LT5jcmVh dGUoIHtmaXJzdG5hbWU9PidTYXJhaCcsIHN1cm5hbWU9PidHZWxsZXInLCBhbGlhcz0+J0J1ZmZ5 J30pOwogJGFydGlzdC0+aW5pdGlhbHMoJ00nKTsKICRhcnRpc3QtPnVwZGF0ZSgpOwoKPWhlYWQx IENsYXNzOjpEQkkgQ29tcGF0aWJpbGl0eQoKVGhpcyB2ZXJzaW9uIGlzIGNvbXBhdGlibGUgd2l0 aCBDbGFzczo6REJJOjpGb3J6ZW46OjMwMSBhbmQgLjkqIHZlcnNpb25zLgoKU2luY2UgbWFueSBw ZW9wbGUgdXNlIG9sZGVyIHZlcnNpb25zIG9mIENsYXNzOjpEQkkgYW5kIGl0IGlzIGluIGZsdXgg d2UKd2lsbCBtYWludGFpbiBhIGJyYW5jaCBmb3IgdGhlbS4gIAoKPWN1dAoKdXNlIHN0cmljdDsK b3VyICRWRVJTSU9OID0gJzAuMDYnOwoKdXNlIHdhcm5pbmdzOwp1c2UgYmFzZSBxdyggQ2xhc3M6 OkRCSTo6UmVsYXRpb25zaGlwICk7CnVzZSBDbGFzczo6REJJOjpBYnN0cmFjdFNlYXJjaDsKCnVz ZSBEYXRhOjpEdW1wZXI7CgpzdWIgcmVtYXBfYXJndW1lbnRzIHsKICAgIG15ICRwcm90byA9IHNo aWZ0OwogICAgbXkgJGNsYXNzID0gc2hpZnQ7CiAgICAkY2xhc3MtPl9pbnZhbGlkX29iamVjdF9t ZXRob2QoJ2lzX2EoKScpIGlmIHJlZiAkY2xhc3M7CiAgICBteSAkY29sdW1uID0gJGNsYXNzLT5m aW5kX2NvbHVtbihzaGlmdCkKCW9yIHJldHVybiAkY2xhc3MtPl9jcm9haygiaXNfYSBuZWVkcyBh IHZhbGlkIGNvbHVtbiIpOwogICAgbXkgJGZfY2xhc3MgPSBzaGlmdAoJb3IgJGNsYXNzLT5fY3Jv YWsoIiRjbGFzcyAkY29sdW1uIG5lZWRzIGFuIGFzc29jaWF0ZWQgY2xhc3MiKTsKICAgIG15ICRh cmdzID0gJF9bLTFdOwogICAgaWYgKCRhcmdzIGFuZCByZWYgJGFyZ3MgbmUgJ0hBU0gnKSB7ICRh cmdzID0ge307IH0KCiAgICAjVE9ETyAtLSBtYXliZSBoYXZlIGxpc3Qgb2YgY29sdW1ucyB0byAi aW5oZXJpdCIgPyBBZGQgdG8gYWxsIGNvbHMgbGlzdD8KICAgICNteSAlbWV0aHMgPSBAXzsKCiAg ICBteSBAZl9jb2xzOwogICAgZm9yZWFjaCBteSAkZl9jb2wgKCRmX2NsYXNzLT5hbGxfY29sdW1u cykgewoJcHVzaCBAZl9jb2xzLCAkZl9jb2wKCSAgICB1bmxlc3MgJGZfY29sIGVxICRmX2NsYXNz LT5wcmltYXJ5X2NvbHVtbjsKICAgIH0KICAgICRjbGFzcy0+X19ncm91cGVyLT5hZGRfZ3JvdXAo VEVNUCA9PiBtYXAgeyAkXy0+bmFtZSB9IEBmX2NvbHMpOwogICAgJGNsYXNzLT5fX2dyb3VwZXIt PmFkZF9ncm91cChfX0lOSEVSSVRFRCA9PiBtYXAgeyAkXy0+bmFtZSB9IEBmX2NvbHMpOwogICAg JGNsYXNzLT5ta19jbGFzc2RhdGEoJ19faXNhX3JlbHMnKTsKICAgICRjbGFzcy0+X19pc2FfcmVs cyh7IH0pOwogICAgcmV0dXJuICgkY2xhc3MsICRjb2x1bW4sICRmX2NsYXNzLCAkYXJncyk7Cn0K CnN1YiB0cmlnZ2VycyB7CiAgICBteSAkc2VsZiA9IHNoaWZ0OyMgdGhlIHJlbGF0aW9uc2hpcCBv YmplY3QKCW15ICRtZXRhICA9CSRzZWxmLT5jbGFzcy0+bWV0YV9pbmZvKCRzZWxmLT5uYW1lID0+ ICRzZWxmLT5hY2Nlc3Nvcik7CiAgICAkc2VsZi0+Y2xhc3MtPl9yZXF1aXJlX2NsYXNzKCRzZWxm LT5mb3JlaWduX2NsYXNzKTsKICAgIG15ICRjb2x1bW4gPSAkc2VsZi0+YWNjZXNzb3I7CgogICAg cmV0dXJuICAgKAoJICAgIHNlbGVjdCAgICAgICAgPT4gJHNlbGYtPl9pbmZsYXRvciwKCSAgICBi ZWZvcmVfY3JlYXRlID0+ICRzZWxmLT5fY3JlYXRvciwKICAgICAgICBiZWZvcmVfdXBkYXRlID0+ IHN1YiB7IAoJCQlpZiAobXkgJGZfb2JqID0gJF9bMF0tPiRjb2x1bW4oKSkgeyAkZl9vYmotPnVw ZGF0ZSB9CgkJfSwKCQliZWZvcmVfZGVsZXRlID0+IHN1YiB7IAoJCQlpZiAobXkgJGZfb2JqID0g JF9bMF0tPiRjb2x1bW4oKSBhbmQgJG1ldGEtPnthcmdzfXtvbmVfdG9fb25lfSkgeyAKCQkJCSRm X29iai0+ZGVsZXRlOyAKCQkJfQogICAgICAgIH0sCiAgICApOwp9CgpzdWIgbWV0aG9kcyB7CiAg ICBteSAkc2VsZiA9IHNoaWZ0OwogICAgJHNlbGYtPmNsYXNzLT5fcmVxdWlyZV9jbGFzcygkc2Vs Zi0+Zm9yZWlnbl9jbGFzcyk7CgogICAgbXkgJGZvcmVpZ25fY2xhc3MgPSAkc2VsZi0+Zm9yZWln bl9jbGFzczsKICAgIG15ICRjbGFzcyA9ICRzZWxmLT5jbGFzczsKICAgIHdhcm4gImZvcmVpZ24g Y2xhc3MgOiAkZm9yZWlnbl9jbGFzc1xuIiBpZiAkREVCVUdfTEVWRUwgPiA1OwoKICAgIHdhcm4g ImdldHRpbmcgcmVsYXRpb25zaGlwcy4uXG4iICBpZiAkREVCVUdfTEVWRUwgPiA1OwoKCiAgICBt eSAkcGFyZW50X3JlbGF0aW9uX2ZpZWxkcyA9ICRzZWxmLT5faW5qZWN0X2luaGVyaXRlZF9yZWxh dGlvbnNoaXBzKGNsYXNzPT4kY2xhc3MsIGZvcmVpZ249PiRmb3JlaWduX2NsYXNzKTsKCiAgICBt eSAkZm9yYmlkZGVuX2ZpZWxkcyA9ICIoaWR8JHtjbGFzc31fP3U/aWQiOwogICAgJGZvcmJpZGRl bl9maWVsZHMgLj0gKCRmb3JlaWduX2NsYXNzLT5jb2x1bW5zKCdQcmltYXJ5JykpID8gJ3wnIC4g JGZvcmVpZ25fY2xhc3MtPmNvbHVtbnMoJ1ByaW1hcnknKSAuJyknIDogJyknIDsKICAgIHdhcm4g ImZvcmJpZGRlbl9maWVsZHMgOiAkZm9yYmlkZGVuX2ZpZWxkc1xuIiBpZiAkREVCVUdfTEVWRUwg PiA0OwoKICAgIG15ICVtZXRob2RzOwogICAgbXkgJGFjY19uYW1lID0gJHNlbGYtPmFjY2Vzc29y LT5uYW1lOwogICAgZm9yZWFjaCBteSAkZl9jb2wgKCRzZWxmLT5mb3JlaWduX2NsYXNzLT5hbGxf Y29sdW1ucykgewogICAgICAgIHdhcm4gImZfY29sIDogJGZfY29sLCBhY2NfbmFtZSA6ICRhY2Nf bmFtZVxuIiBpZiAkREVCVUdfTEVWRUwgPiA1IDsKICAgICAgICBuZXh0IGlmICgkZl9jb2wgZXEg JGFjY19uYW1lIG9yICRmX2NvbCA9fiAvJGZvcmJpZGRlbl9maWVsZHMvaSBvciAkcGFyZW50X3Jl bGF0aW9uX2ZpZWxkcy0+eyRmX2NvbH0pOwoJaWYgKCRjbGFzcy0+Y2FuKCdwdXJlX2FjY2Vzc29y X25hbWUnKSkgewoJICAgICMgcHJvdmlkZSBzZXBlcmF0ZSByZWFkL3dyaXRlIGFjY2Vzc29yLCBy ZWFkIG9ubHkgYWNjZXNzb3IgYW5kIHdyaXRlIG9ubHkgbXV0YXRvcgoJICAgICRtZXRob2Rze3Vj Zmlyc3QoJGNsYXNzLT5wdXJlX2FjY2Vzc29yX25hbWUoJGZfY29sKSl9CgkJPSAkbWV0aG9kc3sk Y2xhc3MtPnB1cmVfYWNjZXNzb3JfbmFtZSgkZl9jb2wpfSA9ICRzZWxmLT5fZ2V0X21ldGhvZHMo JGFjY19uYW1lLCAkZl9jb2wsJ3JvJyk7CgkgICAgJG1ldGhvZHN7dWNmaXJzdCgkY2xhc3MtPm11 dGF0b3JfbmFtZSgkZl9jb2wpKX0KCQk9ICRtZXRob2RzeyRjbGFzcy0+bXV0YXRvcl9uYW1lKCRm X2NvbCl9ID0gJHNlbGYtPl9nZXRfbWV0aG9kcygkYWNjX25hbWUsICRmX2NvbCwnd28nKTsKCSAg ICAkbWV0aG9kc3t1Y2ZpcnN0KCRjbGFzcy0+YWNjZXNzb3JfbmFtZSgkZl9jb2wpKX0KCQk9ICRt ZXRob2RzeyRjbGFzcy0+YWNjZXNzb3JfbmFtZSgkZl9jb2wpfSA9ICRzZWxmLT5fZ2V0X21ldGhv ZHMoJGFjY19uYW1lLCAkZl9jb2wsJ3J3Jyk7Cgl9IGVsc2UgewoJICAgIGlmICggJGNsYXNzLT5t dXRhdG9yX25hbWUoJGZfY29sKSBlcSAkY2xhc3MtPmFjY2Vzc29yX25hbWUoJGZfY29sKSApIHsK CQkjIHByb3ZpZGUgcmVhZC93cml0ZSBhY2Nlc3NvcgoJCSRtZXRob2Rze3VjZmlyc3QoJGNsYXNz LT5hY2Nlc3Nvcl9uYW1lKCRmX2NvbCkpfQoJCSAgICA9ICRtZXRob2RzeyRjbGFzcy0+YWNjZXNz b3JfbmFtZSgkZl9jb2wpfSA9ICRzZWxmLT5fZ2V0X21ldGhvZHMoJGFjY19uYW1lLCAkZl9jb2ws J3J3Jyk7CgkgICAgfSBlbHNlIHsKCQkjIHByb3ZpZGUgc2VwZXJhdGUgcmVhZCBvbmx5IGFjY2Vz c29yIGFuZCB3cml0ZSBvbmx5IG11dGF0b3IKCQkkbWV0aG9kc3t1Y2ZpcnN0KCRjbGFzcy0+YWNj ZXNzb3JfbmFtZSgkZl9jb2wpKX0KCQkgICAgPSAkbWV0aG9kc3skY2xhc3MtPmFjY2Vzc29yX25h bWUoJGZfY29sKX0gPSAkc2VsZi0+X2dldF9tZXRob2RzKCRhY2NfbmFtZSwgJGZfY29sLCdybycp OwoJCSRtZXRob2Rze3VjZmlyc3QoJGNsYXNzLT5tdXRhdG9yX25hbWUoJGZfY29sKSl9CgkJICAg ID0gJG1ldGhvZHN7JGNsYXNzLT5tdXRhdG9yX25hbWUoJGZfY29sKX0gPSAkc2VsZi0+X2dldF9t ZXRob2RzKCRhY2NfbmFtZSwgJGZfY29sLCd3bycpOwoJICAgIH0KCX0KICAgIH0KCiAgICAkbWV0 aG9kc3tzZWFyY2hfd2hlcmV9ID0gJHNlbGYtPnNlYXJjaF93aGVyZSBpZiAkc2VsZi0+Y2xhc3Mt PmNhbignc2VhcmNoX3doZXJlJyk7CgogICAgJG1ldGhvZHN7J3JldHJpZXZlX2FsbF9zb3J0ZWRf YnknfSA9ICRzZWxmLT5yZXRyaWV2ZV9hbGxfc29ydGVkX2J5IGlmICRzZWxmLT5jbGFzcy0+Y2Fu KCdyZXRyaWV2ZV9hbGxfc29ydGVkX2J5Jyk7CiAgICByZXR1cm4oCgkgICAlbWV0aG9kcywKCSAg IHNlYXJjaCAgICAgID0+ICRzZWxmLT5zZWFyY2gsCgkgICBzZWFyY2hfbGlrZSA9PiAkc2VsZi0+ c2VhcmNoX2xpa2UsCgkgICBhbGxfY29sdW1ucyA9PiAkc2VsZi0+YWxsX2NvbHVtbnMsCgkgICk7 Cn0KCnN1YiBzZWFyY2ggewogICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgIG15ICRTVVBFUiA9ICRz ZWxmLT5mb3JlaWduX2NsYXNzOwogICAgbXkgJGNvbCA9ICRzZWxmLT5hY2Nlc3NvcjsKICAgIHsK CQlubyBzdHJpY3QgInJlZnMiOwoJCSp7JHNlbGYtPmNsYXNzLiI6Om9yaWdfc2VhcmNoIn0gPSAK CQkJJHNlbGYtPmNsYXNzLT5pc2EoJ0NsYXNzOjpEQkk6OlN3ZWV0JykgPyAKCQkJXCZ7IkNsYXNz OjpEQkk6OlN3ZWV0OjpzZWFyY2gifSA6IFwmeyJDbGFzczo6REJJOjpzZWFyY2gifTsKICAgIH0K ICAgIHJldHVybiBzdWIgewogICAgICAgIG15ICgkc2VsZiwgJWFyZ3MpID0gKEBfKTsKICAgICAg ICBteSAoJWNoaWxkLCAlcGFyZW50KTsKICAgICAgICBmb3JlYWNoIG15ICRrZXkgKGtleXMgJWFy Z3MpIHsKICAgICAgICAgICAgJGNoaWxkeyRrZXl9ID0gJGFyZ3N7JGtleX0gaWYgJHNlbGYtPmhh c19yZWFsX2NvbHVtbigka2V5KTsKICAgICAgICAgICAgJHBhcmVudHska2V5fSA9ICRhcmdzeyRr ZXl9IGlmICRTVVBFUi0+aGFzX3JlYWxfY29sdW1uKCRrZXkpOwogICAgICAgIH0KICAgICAgICBp ZiglcGFyZW50KSB7CgkJCSMgcGpzIFRPRE8gLS0gam9pbiBhbmQgY29uc3RydWN0IG1heWJlID8g CiAgICAgICAgICAgIHJldHVybiBtYXAgeyAkc2VsZi0+b3JpZ19zZWFyY2goJGNvbCA9PiAkXy0+ aWQsICVjaGlsZCkKCQkJIH0gJFNVUEVSLT5zZWFyY2goJXBhcmVudCk7Cgl9IGVsc2UgewoJICAg IHJldHVybiAkc2VsZi0+b3JpZ19zZWFyY2goJWNoaWxkKTsKCX0KICAgIH07Cn0KCnN1YiBzZWFy Y2hfbGlrZSB7CiAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgbXkgJFNVUEVSID0gJHNlbGYtPmZv cmVpZ25fY2xhc3M7CiAgICBteSAkY29sID0gJHNlbGYtPmFjY2Vzc29yOwogICAgewoJbm8gc3Ry aWN0ICJyZWZzIjsKCSp7JHNlbGYtPmNsYXNzLiI6Om9yaWdfc2VhcmNoX2xpa2UifSA9IFwmeyJD bGFzczo6REJJOjpzZWFyY2hfbGlrZSJ9OwogICAgfQogICAgcmV0dXJuIHN1YiB7CiAgICAgICAg bXkgKCRzZWxmLCAlYXJncykgPSAoQF8pOwogICAgICAgIG15ICglY2hpbGQsICVwYXJlbnQpOwog ICAgICAgIGZvcmVhY2ggbXkgJGtleSAoa2V5cyAlYXJncykgewogICAgICAgICAgICAkY2hpbGR7 JGtleX0gPSAkYXJnc3ska2V5fSBpZiAkc2VsZi0+aGFzX3JlYWxfY29sdW1uKCRrZXkpOwogICAg ICAgICAgICAkcGFyZW50eyRrZXl9ID0gJGFyZ3N7JGtleX0gaWYgJFNVUEVSLT5oYXNfcmVhbF9j b2x1bW4oJGtleSk7CiAgICAgICAgfQogICAgICAgIGlmKCVwYXJlbnQpIHsKICAgICAgICAgICAg cmV0dXJuIG1hcCB7ICRzZWxmLT5vcmlnX3NlYXJjaF9saWtlKCRjb2wgPT4gJF8tPmlkLCAlY2hp bGQpCiAgICAgICAgICAgICAgICAgICAgICAgfSAkU1VQRVItPnNlYXJjaF9saWtlKCVwYXJlbnQp OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkc2VsZi0+b3JpZ19zZWFyY2hf bGlrZSglY2hpbGQpOwogICAgICAgIH0KICAgIH07Cn0KCnN1YiBzZWFyY2hfd2hlcmUgewogICAg bXkgJHNlbGYgPSBzaGlmdDsKICAgIG15ICRTVVBFUiA9ICRzZWxmLT5mb3JlaWduX2NsYXNzOwog ICAgbXkgJGNvbCA9ICRzZWxmLT5hY2Nlc3NvcjsKICAgIHsKICAgICAgICBubyBzdHJpY3QgInJl ZnMiOwogICAgICAgICp7JHNlbGYtPmNsYXNzLiI6Om9yaWdfc2VhcmNoX3doZXJlIn0gPSBcJnsi Q2xhc3M6OkRCSTo6QWJzdHJhY3RTZWFyY2g6OnNlYXJjaF93aGVyZSJ9OwogICAgfQoKICAgIHJl dHVybiBzdWIgewogICAgICAgIG15ICgkc2VsZiwgJWFyZ3MpID0gKEBfKTsKICAgICAgICBteSAo JWNoaWxkLCAlcGFyZW50KTsKICAgICAgICBmb3JlYWNoIG15ICRrZXkgKGtleXMgJWFyZ3MpIHsK ICAgICAgICAgICAgJGNoaWxkeyRrZXl9ID0gJGFyZ3N7JGtleX0gaWYgJHNlbGYtPmhhc19yZWFs X2NvbHVtbigka2V5KTsKICAgICAgICAgICAgJHBhcmVudHska2V5fSA9ICRhcmdzeyRrZXl9IGlm ICRTVVBFUi0+aGFzX3JlYWxfY29sdW1uKCRrZXkpOwogICAgICAgIH0KICAgICAgICBpZiglcGFy ZW50KSB7CiAgICAgICAgICAgIHJldHVybiBtYXAgeyAkc2VsZi0+b3JpZ19zZWFyY2hfd2hlcmUo JGNvbC0+bmFtZSA9PiAkXy0+aWQsICVjaGlsZCkKCQkJIH0gJFNVUEVSLT5zZWFyY2hfd2hlcmUo JXBhcmVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICRzZWxmLT5vcmln X3NlYXJjaF93aGVyZSglY2hpbGQpOwogICAgICAgIH0KICAgIH07Cn0KCiMgRFRSVCBmb3IgdGhp cyAtLSBtdXN0IHVzZSBDREJJOjpQbHVnaW46OlJldHJpZXZlQWxsICBiZWZvcmUgc2V0dGluZyB1 cCBpc2EuCnN1YiByZXRyaWV2ZV9hbGxfc29ydGVkX2J5IHsKICAgIG15ICRzZWxmICAgPSBzaGlm dDsKICAgIG15ICRjbGFzcyAgPSAkc2VsZi0+Y2xhc3M7ICMgdGhlIGNsYXNzIHRoYXQgaXNhIGZv cmVpZ25fY2xhc3M7CiAgICBteSAkZmNsYXNzID0gJHNlbGYtPmZvcmVpZ25fY2xhc3M7CglteSAk Y29sICAgID0gJHNlbGYtPmFjY2Vzc29yOwoJbXkgJHN1cGVyID0gJGNsYXNzLT5jYW4oJ3JldHJp ZXZlX2FsbF9zb3J0ZWRfYnknKTsgIyByZWd1bGFyIG1ldGhvZAoKICAgICMgSk9JTiBzZWxlY3Rp bmcgZXNzZW50aWFsIGZyb20gJGNsYXNzCgkjIHlvdSByZWFsbHkgcHJvYmFibHkgd29udCBoYXZl IG5hbWUgY2xhc2hlcyBpbiBpc2EgdGFibGVzIGhvd2V2ZXIKCSMgSSBkbyBub3Qga25vdyBzbyAu Li4KICAgIG15ICRtb24gICAgPSAkY2xhc3MtPm1vbmlrZXI7CiAgICBteSAkZm1vbiAgID0gJGZj bGFzcy0+bW9uaWtlcjsKICAgIG15ICRlc3NlbnRpYWwgPSBqb2luICgnLCAnLCBtYXAgeyAiJG1v bi4kXyIgfSAkY2xhc3MtPl9lc3NlbnRpYWwpOyAgCglteSAkZnJvbSAgPSAkY2xhc3MtPnRhYmxl IC4gIiBBUyAkbW9uLCAiIC4gJGZjbGFzcy0+dGFibGUgLiAiIEFTICRmbW9uIjsKCW15ICR3aGVy ZSA9ICIkbW9uLiIgLiAkc2VsZi0+YWNjZXNzb3IgLiAiID0gJGZtb24uIiAuICRmY2xhc3MtPnBy aW1hcnlfY29sdW1uLT5uYW1lOwogICAgbXkgJHNxbCA9ICJTRUxFQ1QgJGVzc2VudGlhbCBGUk9N ICRmcm9tIFdIRVJFICR3aGVyZSBPUkRFUiBCWSBcJXMiOyAKCXdhcm4gIiByZXRyaWV2ZSBhbGwg c29ydCBpc2Egc3FsICBpczogICRzcWwiIGlmICRERUJVR19MRVZFTCA+IDM7CgkkY2xhc3MtPnNl dF9zcWwocmV0cmlldmVfYWxsX3NvcnRlZF9pc2EgPT4gJHNxbCk7CgkKICAgIHJldHVybiBzdWIg ewogICAgCW15ICgkY2xhc3MsICRvcmRlcl9ieSkgID0gQF87ICAKCQlteSBAb2IgPSBzcGxpdCAv LC8sICRvcmRlcl9ieTsKCQlteSAkb3JkZXJfYnlfaXNhID0gMDsKCQlmb3JlYWNoIChAb2IpIHsK CQkJL15ccyooXHcrKVxzKiguKikkLzsKCQkJd2FybiAiICRfIGFuZCAkMSBhbmQgJDIiIGlmICRE RUJVR19MRVZFTCA+IDM7CgkJCWlmICggbXkgJGZjb2wgPSAkZmNsYXNzLT5maW5kX2NvbHVtbigk MSkgKSB7CgkJCQl3YXJuICJPcmRlcmluZyBieSBJc0EgY2xhc3MgJGZjbGFzcyBjb2x1bW4gJDEg JDIiIGlmICRERUJVR19MRVZFTCA+IDM7CgkJCQkkb3JkZXJfYnlfaXNhID0gMTsKCQkJfQoJCX0K CQlyZXR1cm4gJHN1cGVyLT4oJGNsYXNzLCAkb3JkZXJfYnkpIHVubGVzcyAkb3JkZXJfYnlfaXNh OwoJCXJldHVybiAkY2xhc3MtPnN0aF90b19vYmplY3RzKCRjbGFzcy0+c3FsX3JldHJpZXZlX2Fs bF9zb3J0ZWRfaXNhKCRvcmRlcl9ieSkpOwoJfQp9CgkJCQkKCQkJCgpzdWIgYWxsX2NvbHVtbnMg ewogICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgIG15ICRTVVBFUiA9ICRzZWxmLT5mb3JlaWduX2Ns YXNzOwogICAgbXkgJGNvbCA9ICRzZWxmLT5hY2Nlc3NvcjsKICAgIHsKCW5vIHN0cmljdCAicmVm cyI7CgkqeyRzZWxmLT5jbGFzcy4iOjpvcmlnX2FsbF9jb2x1bW5zIn0gPSBcJnsiQ2xhc3M6OkRC STo6YWxsX2NvbHVtbnMifTsKICAgIH0KICAgIHJldHVybiBzdWIgewoJbXkgJHNlbGYgPSBzaGlm dDsKCXJldHVybiAoJHNlbGYtPm9yaWdfYWxsX2NvbHVtbnMsICRzZWxmLT5jb2x1bW5zKCdURU1Q JykpOwogICAgfTsKfQoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpzdWIgX2luamVjdF9pbmhl cml0ZWRfcmVsYXRpb25zaGlwcyB7CiAgbXkgKCRzZWxmLCVwYXJhbXMpID0gQF87CiAgbXkgJGNs YXNzID0gJHBhcmFtc3tjbGFzc307CiAgbXkgJGZvcmVpZ25fY2xhc3MgPSAkcGFyYW1ze2ZvcmVp Z259OwogIG15ICRmaWVsZHMgPSB7fTsKCiAgbXkgJWN1cnJlbnRfcmVsYXRpb25zaGlwcyA9ICgp OwoKICBpZiAoJGNsYXNzLT5jYW4oJ21ldGFfaW5mbycpKSB7CiAgICB3YXJuICJjbGFzcyBoYXMg bWV0YV9pbmZvICIgaWYgJERFQlVHX0xFVkVMID4gNTsKICAgIHdhcm4gIkluamVjdGluZyByZWxh dGlvbnNoaXBzLiBMRVZFTCA3IERlYnVnZ2luZy4gRHVtcCBvZiBtZXRhX2luZm86ICIgLiAKCSAg ICAgRHVtcGVyKCRjbGFzcy0+bWV0YV9pbmZvKSBpZiAkREVCVUdfTEVWRUwgPiA2OwogICAgbXkg JG1ldGFfaW5mbyA9ICRjbGFzcy0+bWV0YV9pbmZvOwogICAgZm9yZWFjaCBteSAkcmVsYXRpb25f dHlwZSAoIGtleXMgJSRtZXRhX2luZm8gKSB7CiAgICAgIG5leHQgaWYgKCRyZWxhdGlvbl90eXBl IGVxICdpc19hJyk7CiAgICAgIGZvcmVhY2ggbXkgJHJlbG5hbWUgKGtleXMgJXskbWV0YV9pbmZv LT57JHJlbGF0aW9uX3R5cGV9fSkgewoJJGN1cnJlbnRfcmVsYXRpb25zaGlwc3skcmVsbmFtZX0g PSAxOwogICAgICB9CiAgICB9CiAgfQoKICBpZiAoJGZvcmVpZ25fY2xhc3MtPmNhbignbWV0YV9p bmZvJykpIHsKICAgIHdhcm4gImZvcmVpZ24gY2xhc3MgaGFzIG1ldGFfaW5mbyAiIGlmICRERUJV R19MRVZFTCA+IDUgOwogICAgd2FybiBEdW1wZXIoJGNsYXNzLT5tZXRhX2luZm8paWYgJERFQlVH X0xFVkVMID4gNjsKICAgIG15ICRtZXRhX2luZm8gPSAkZm9yZWlnbl9jbGFzcy0+bWV0YV9pbmZv OwogICAgZm9yZWFjaCBteSAkcmVsYXRpb25fdHlwZSAoIGtleXMgJSRtZXRhX2luZm8gKSB7CiAg ICAgIG5leHQgaWYgKCRyZWxhdGlvbl90eXBlIGVxICdpc19hJyk7CiAgICAgIGZvcmVhY2ggbXkg JHJlbG5hbWUgKGtleXMgJXskbWV0YV9pbmZvLT57JHJlbGF0aW9uX3R5cGV9fSkgewoJd2FybiAi YWRkaW5nIG5ldyByZWxhdGlvbnNoaXAgOiAkcmVsbmFtZSBcbiIgaWYgJERFQlVHX0xFVkVMID4g NDsKCSRmaWVsZHMtPnskcmVsbmFtZX0gPSAxOwoJJHNlbGYtPl9pbmplY3RfaW5oZXJpdGVkX21l dGhvZCgkY2xhc3MsICRyZWxuYW1lKTsKICAgICAgfQogICAgfQogIH0KICByZXR1cm4gJGZpZWxk czsKfQoKc3ViIF9pbmplY3RfaW5oZXJpdGVkX21ldGhvZCB7CiAgbXkgKCRzZWxmLCRjbGFzcywk YWNjZXNzb3JfbmFtZSkgPSBAXzsKICBteSAkcGFyZW50X2FjY2Vzc29yID0gJHNlbGYtPmFjY2Vz c29yOwogIG15ICRtZXRob2QgPSBzdWIgewogICAgd2FybiAiaW5qZWN0ZWQgbWV0aG9kICRhY2Nl c3Nvcl9uYW1lICwgY2FsbGluZyAkYWNjZXNzb3JfbmFtZSBvbiBwYXJlbnQgdmlhICRwYXJlbnRf YWNjZXNzb3IgXG4iIGlmICRERUJVR19MRVZFTCA+IDU7CiAgICB3YXJuICIuLmNhbGxlZCB3aXRo IGFyZ3MgIiwgam9pbignLCAnLEBfKSwgIlxuIiBpZiAgJERFQlVHX0xFVkVMID4gNTsKICAgIG15 ICgkc2VsZiwgQGFyZ3MpID0gQF87CiAgICAkc2VsZi0+JHBhcmVudF9hY2Nlc3Nvci0+JGFjY2Vz c29yX25hbWUoQGFyZ3MpOwogIH07CiAgewogICAgbm8gc3RyaWN0ICJyZWZzIjsKICAgIG5vIHdh cm5pbmdzICJyZWRlZmluZSI7CiAgICAqeyIke2NsYXNzfTo6JHthY2Nlc3Nvcl9uYW1lfSJ9ID0g JG1ldGhvZDsKCXdhcm4gIklzQSBqdXN0IGluamVjdGVkICRtZXRob2QgaW50byAkY2xhc3MiIGlm ICRERUJVR19MRVZFTCA+IDQ7CiAgfQp9CgpzdWIgX2NyZWF0b3IgewogICAgbXkgJHByb3RvID0g c2hpZnQ7CiAgICBteSAkY29sID0gJHByb3RvLT5hY2Nlc3NvcjsKCiAgICByZXR1cm4gc3ViIHsK CW15ICRzZWxmID0gc2hpZnQ7CglteSAkbWV0YSA9ICRzZWxmLT5tZXRhX2luZm8oaXNfYSA9PiAk Y29sKTsKCW15ICRmX2NsYXNzID0gJG1ldGEtPmZvcmVpZ25fY2xhc3M7CgoJbXkgJGhhc2ggPSB7 IH07CgoJZm9yZWFjaCAoJHNlbGYtPl9fZ3JvdXBlci0+Z3JvdXBfY29scygnVEVNUCcpKSB7Cgkg ICAgbmV4dCB1bmxlc3MgZGVmaW5lZCgkc2VsZi0+X2F0dHJzKCRfKSk7CgkgICAgJGhhc2gtPnsk X30gPSAkc2VsZi0+X2F0dHJzKCRfKTsKCX0KCW15ICRmX3BrID0gJGZfY2xhc3MtPnByaW1hcnlf Y29sdW1uOwoJaWYgKCRzZWxmLT5fYXR0cnMoJGZfcGspKSB7CgkgICRoYXNoLT57JGZfcGt9ID0g JHNlbGYtPl9hdHRycygkZl9wayk7Cgl9CgoJbXkgJGZfb2JqID0gJGZfY2xhc3MtPmNyZWF0ZSgk aGFzaCk7CgkkcHJvdG8tPl9pbXBvcnRfY29sdW1uX3ZhbHVlcygkc2VsZiwgJGZfY2xhc3MsICRm X29iaik7CgkjIHBqcyAtLSB3YW50IHBrcyBzYW1lIGZvciBpc2EgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKCSMgVE9ETyAKCSMgJHNlbGYtPl9hdHRyaWJ1dGVfc3RvcmUoJHNlbGYtPnBy aW1hcnlfY29sdW1uID0+ICRmX29iai0+aWQpOwoJIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCglyZXR1cm4gJHNlbGYtPl9hdHRyaWJ1 dGVfc3RvcmUoJGNvbCA9PiAkZl9vYmotPmlkKTsKICAgIH07Cn0KCgpzdWIgX2luZmxhdG9yIHsK ICAgIG15ICRwcm90byA9IHNoaWZ0OwogICAgbXkgJGNvbCA9ICRwcm90by0+YWNjZXNzb3I7Cgog ICAgcmV0dXJuIHN1YiB7CglteSAkc2VsZiA9IHNoaWZ0OwoJbXkgJHZhbHVlID0gJHNlbGYtPiRj b2w7CglteSAkbWV0YSA9ICRzZWxmLT5tZXRhX2luZm8oaXNfYSA9PiAkY29sKTsKCW15ICRmX2Ns YXNzID0gJG1ldGEtPmZvcmVpZ25fY2xhc3M7CgoJcmV0dXJuIGlmIHJlZigkdmFsdWUpIGFuZCAk dmFsdWUtPmlzYSgkZl9jbGFzcyk7CgoJJHZhbHVlID0gJGZfY2xhc3MtPl9zaW1wbGVfYmxlc3Mo JHZhbHVlKTsKCSRwcm90by0+X2ltcG9ydF9jb2x1bW5fdmFsdWVzKCRzZWxmLCAkZl9jbGFzcywg JHZhbHVlKTsKCglyZXR1cm4gJHNlbGYtPl9hdHRyaWJ1dGVfc3RvcmUoJGNvbCA9PiAkdmFsdWUp OwogICAgfTsKfQoKc3ViIF9pbXBvcnRfY29sdW1uX3ZhbHVlcyB7CiAgICBteSAoJHNlbGYsICRj bGFzcywgJGZfY2xhc3MsICRmX29iaikgPSAoQF8pOwogICAgZm9yZWFjaCAoJGZfY2xhc3MtPmFs bF9jb2x1bW5zKSB7CgkkY2xhc3MtPl9hdHRyaWJ1dGVfc3RvcmUoJF8sICRmX29iai0+JF8pCgkg ICAgdW5sZXNzICRfLT5uYW1lIGVxICRjbGFzcy0+cHJpbWFyeV9jb2x1bW4tPm5hbWU7CiAgICB9 Cn0KCnN1YiBfc2V0X3VwX2NsYXNzX2RhdGEgewogICAgICAgIG15ICRzZWxmID0gc2hpZnQ7CiAg ICAgICAgJHNlbGYtPmNsYXNzLT5fZXh0ZW5kX2NsYXNzX2RhdGEoX19pc2FfcmVscyA9PiAkc2Vs Zi0+YWNjZXNzb3IgPT4KICAgICAgICAgICAgICAgICAgICAgICAgWyAkc2VsZi0+Zm9yZWlnbl9j bGFzcywgJXsgJHNlbGYtPmFyZ3MgfSBdKTsKICAgICAgICAkc2VsZi0+U1VQRVI6Ol9zZXRfdXBf Y2xhc3NfZGF0YTsKfQoKCnN1YiBfZ2V0X21ldGhvZHMgewogICAgbXkgKCRzZWxmLCAkYWNjX25h bWUsICRmX2NvbCwgJG1vZGUpID0gQF87CiAgICB3YXJuICJfZ2V0X21ldGhvZHMgJGFjY19uYW1l LCAkZl9jb2wsICRtb2RlIFxuIiBpZiAgJERFQlVHX0xFVkVMID4gNTsKICAgIHdhcm4gam9pbign LCAnLGNhbGxlcigpKSBpZiAgJERFQlVHX0xFVkVMID4gNSA7CiAgICBteSAkbWV0aG9kOwogTU9E RTogewoJaWYgKCRtb2RlIGVxICdydycpIHsKCSAgICAkbWV0aG9kID0gc3ViIHsKCSAgICAgIHdh cm4gImFydGlmaWNpYWwgbWV0aG9kICRhY2NfbmFtZS8kZl9jb2wgY2FsbGVkIHdpdGggYXJncyAi LCBqb2luKCcsICcsQF8pLCAiXG4iIGlmICRERUJVR19MRVZFTCA+IDU7CgkJbXkgKCRzZWxmLCBA YXJncykgPSBAXzsKCQlpZihAYXJncykgewoJCSAgJHNlbGYtPiRhY2NfbmFtZS0+JGZfY29sKEBh cmdzKTsKCQkgIHJldHVybjsKCQl9IGVsc2UgewoJCSAgcmV0dXJuICRzZWxmLT4kYWNjX25hbWUt PiRmX2NvbDsKCQl9CgkgICAgfTsKCSAgICBsYXN0IE1PREU7Cgl9CglpZiAoJG1vZGUgZXEgJ3Jv JykgewoJICAgICRtZXRob2QgPSBzdWIgewoJCW15ICRzZWxmID0gc2hpZnQ7CgkJcmV0dXJuICRz ZWxmLT4kYWNjX25hbWUtPiRmX2NvbDsKCSAgICB9OwoJICAgIGxhc3QgTU9ERTsKCX0KCWlmICgk bW9kZSBlcSAnd28nKSB7CgkgICAgJG1ldGhvZCA9ICBzdWIgewoJCW15ICRzZWxmID0gc2hpZnQ7 CgkJJHNlbGYtPiRhY2NfbmFtZS0+JGZfY29sKEBfKTsKCQlyZXR1cm47CgkgICAgfTsKCSAgICBs YXN0IE1PREU7Cgl9CgoJZWxzZSB7CgkgICAgZGllICJjYW4ndCBnZXQgbWV0aG9kIGZvciBtb2Rl IDokbW9kZVxuIjsKCX0KICAgIH0gIyBlbmQgb2YgTU9ERQogICAgcmV0dXJuICRtZXRob2Q7Cn0K CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgo9aGVhZDEgQlVHUyBBTkQgQ0FWRUFUUwoKKiBDREJJ IEZyb3plbiBDb21wYXRpYmxlIAoKKiBNdWx0aXBsZSBpbmhlcml0YW5jZSBpcyBub3Qgc3VwcG9y dGVkLCB0aGlzIGlzIHVubGlrZWx5IHRvIGNoYW5nZSBmb3IgdGhlIGZvcnNlYWJsZSBmdXR1cmUK CiogaXNfYSBtdXN0IGJlIGNhbGxlZCBhZnRlciBhbGwgb3RoZXIgY2RiaSByZWxhdGlvbnNoaXAg bWV0aG9kcyBvdGhlcndpc2UgaW5oZXJpdGVkIG1ldGhvZHMgYW5kIAphY2Nlc3NvcnMgbWF5IGJl IG92ZXItcmlkZGVuIG9yIGNsYXNoIHVuZXhwZWN0ZWRseQoKKiBub24gQ2xhc3M6OkRCSSBhdHRy aWJ1dGVzIGFuZCBtZXRob2RzIGFyZSBub3QgaW5oZXJpdGVkIHZpYSB0aGlzIG1vZHVsZQoKKiBU aGUgdXBkYXRlIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIGluaGVyaXRlZCBvYmplY3Qgd2hlbiB0 aGUgaW5oZXJ0aXRpbmcgb2JqZWN0IGhhcyB1cGRhdGUgY2FsbGVkCgoqIEFsd2F5cyBzcGVjaWZ5 IHRoZSBwcmltYXJ5IGtleSB1c2luZyBjb2x1bW5zKFByaW1hcnkgPT4gcXcvLi4vKSBpZiB5b3Ug ZG9uJ3QgYmFkIHRoaW5ncyBjb3VsZCBoYXBwZW4sIHRoaW5rIG9mIHRoZSBtb3ZpZXMgJ1RyZW1v cnMnLCAnUG9sdGVyZ2Vpc3QnIGFuZCAnRXZpbCBEZWFkJyBhbGwgcm9sbGVkIGludG8gb25lIGJ1 dCB3aXRob3V0IGFueSBoZXJvcy4KCiogVmVyeSBCYWQgVGhpbmdzIGNhbiBhbmQgbWF5IG9jY3Vy IHdoZW4gdXNpbmcgdGhpcyBtb2R1bGUgZXZlbiBpZiB5b3UgdXNlIGdvb2QgcHJhY3RpY2UgYW5k IGFyZSBjYXV0aW91cyAtLSB0aGlzIGluY2x1ZGVzIGJ1dCBpcyBub3QgbGltaXRlZCB0byBpbmZp bml0ZSBsb29wcywgbWVtb3J5IGxlYWtzIGFuZCBkYXRhIGNvcnJ1cHRpb24uCgo9aGVhZDEgREVQ RU5EQU5DSUVTCgpMPENsYXNzOjpEQkk6OkFic3RyYWN0U2VhcmNoPgoKPWhlYWQxIENIQU5HRVMg VEhJUyBWRVJTSU9OCgo9aGVhZDIgLjA2ICAKCj1pdGVtIE5vIG1vcmUgc3B1cmlvdXMgd2Fybmlu Z3MKCj1pdGVtIEF0dGVtcHRzIHRvIHVzZSBDbGFzczo6REJJOjpTd2VldCdzIHNlYXJjaCAgKHRl bXBvcmFyeSBoYWNrIHVudGlsIHByb3Blcgpzb2x1dGlvbiBjYW4gYmUgbWFkZSkKCj1pdGVtIG9u ZV90b19vbmUgYW5kIG1hbnlfdG9fbWFueSBhcmdzIHJlY29nbml6ZWQuIG5vdGUgZGVmYXVsdCBX SUxMIEJFCm9uZV90b19vbmUgYnV0IG5vdCB1bnRpbCBWZXJzaW9uIDEuMC4gCiAgCgo9aGVhZDEg U0VFIEFMU08KCkw8cGVybD4KCkw8Q2xhc3M6OkRCST4KCkw8Q2xhc3M6OkRCSTo6UmVsYXRpb25z aGlwPgoKPWhlYWQxIEFVVEhPUgoKUmljaGFyZCBIdW5kdCwgRTxsdD5yaWNoYXJkQHdlYnRrLm9y Zy51a0U8Z3Q+Cgo9aGVhZDEgTUFJTlRBSU5FUgoKQWFyb24gVHJldmVuYSBFPGx0PmFhcm9uLnRy ZXZlbmFAZHJvb2dzLm9yZ0U8Z3Q+CgpQZXRlciBTcGVsdHogIEU8bHQ+cGV0ZXJzcGVsdHpAeWFo b28uY29tRTxndD4KCj1oZWFkMSBDT1BZUklHSFQKCkxpY2Vuc2VkIGZvciB1c2UsIG1vZGlmaWNh dGlvbiBhbmQgZGlzdHJpYnV0aW9uIHVuZGVyIHRoZSBBcnRpc3RpYwphbmQgR05VIEdQTCBsaWNl bnNlcy4KCkNvcHlyaWdodCAoQykgMjAwNCBieSBSaWNoYXJkIEh1bmR0IGFuZCBBYXJvbiBUcmV2 ZW5hCgpUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgc2FtZSB0ZXJtcyBhcyBQZXJsIGl0c2VsZiwg ZWl0aGVyIFBlcmwgdmVyc2lvbiA1LjguMSBvciwKYXQgeW91ciBvcHRpb24sIGFueSBsYXRlciB2 ZXJzaW9uIG9mIFBlcmwgNSB5b3UgbWF5IGhhdmUgYXZhaWxhYmxlLgoKPWN1dAoKCiMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoxOwoK ------=_Part_15667_25848480.1140809783259 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ClassDBI mailing list ClassDBI@xxxxx.xxxxxxxxxxxxxxxx.xxx http://lists.digitalcraftsmen.net/mailman/listinfo/classdbi ------=_Part_15667_25848480.1140809783259--
[CDBI] Worknig on Class::DBI::Relationship::IsA
|
Re: [CDBI] Worknig on Class::DBI::Relationship::IsA
|
Re: [CDBI] Worknig on Class::DBI::Relationship::IsA
|
Re: [CDBI] Worknig on Class::DBI::Relationship::IsA
|
Re: [CDBI] Worknig on Class::DBI::Relationship::IsA
|
Re: [CDBI] Worknig on Class::DBI::Relationship::IsA
|
Re: [CDBI] Worknig on Class::DBI::Relationship::IsA
|
Re: [CDBI] Worknig on Class::DBI::Relationship::IsA
|
Generated at 12:31 on 28 Feb 2006 by mariachi v0.52