This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

c++/8435: Template Inclusion - keyword 'export' not implemented


>Number:         8435
>Category:       c++
>Synopsis:       Template Inclusion - keyword 'export' not implemented
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Nov 02 20:56:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Mark J. Materna
>Release:        2.95.3-216
>Organization:
>Environment:
Linux 
>Description:
Because the keyword export is not yet implemented it seems that I can not have separatley complied template definitions.  Without the key word "export" when a templated class is declared in a .h and defined in a .cpp, when linking the templated class does not seem to be accessable to other translation units. This is expected according to Stroustrup. Is there another way around this?
(Putting the definition in the include is really not ideal because the templated class will be widely used.) I do require this functionality.  

See attached file for an example. The complie command is:
g++ main.cpp matrix.cpp -o matrix
 
>How-To-Repeat:
g++ main.cpp matrix.cpp -o matrix
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/x-tar; name="matrix.tar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="matrix.tar"

bWFpbi5jcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMDc2
NAAwMDAwMTQ0ADAwMDAwMDAzNTMwADA3NTYxMTA3MzMxADAxMjQxNAAgMAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1qbWF0ZXJuYQAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAdXNlcnMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbi5jcHAgIC0g
IGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0t
LS0tLQogICAgYmVnaW4gICAgICAgICAgICAgICAgOiBNb24gU2VwIDIgMjAwMgogICAgY29weXJp
Z2h0ICAgICAgICAgICAgOiAoQykgMjAwMiBieSBNYXJrIEouIE1hdGVybmEKICAgIGVtYWlsICAg
ICAgICAgICAgICAgIDogbWptYXRlcm5hQHN5c21hdHJpeC5uZXQKICoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Ki8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKiAgIFRoaXMgcHJv
Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k
aWZ5ICAqCiAqICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgICoKICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAgICAgKgogKiAgIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpbmNs
dWRlICJtYXRyaXguaCIKCgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKXsKICAgCiAg
IGludCBpLCBqOwogICBtYXRyaXg8ZmxvYXQ+IGEoMi4wLDMuMCksIGIoMy4wLDUuMCksIGM7Cgog
ICBmb3IoaSA9IDA7IGkgPCAyOyBpKyspCiAgICBmb3IoaiA9IDA7IGogPCAzOyBqKyspCiAgICAg
IGEoaSxqKSA9IGkgKyBqICsgMC41OwoKICAgZm9yKGkgPSAwOyBpIDwgMzsgaSsrKQogICAgZm9y
KGogPSAwOyBqIDwgNTsgaisrKQogICAgICBiKGksaikgPSAoMSArIGkpICogKDEgKyBqKSArIDAu
NTsKCiAgIGMgPSBhICogYjsKICAgY291dCA8PCAiYToiIDw8IGVuZGwgPDwgZW5kbDsKICAgYS5w
cmludCgpOwogICBjb3V0IDw8ICJiOiIgPDwgZW5kbCA8PCBlbmRsOwogICBiLnByaW50KCk7CiAg
IGNvdXQgPDwgImEgKiBiOiIgPDwgZW5kbCA8PCBlbmRsOwogICBjLnByaW50KCk7CgoKCiAgIG1h
dHJpeDxsb25nPiBkKDIsMyksIGUoMyw1KSwgZjsKCiAgIGZvcihpID0gMDsgaSA8IDI7IGkrKykK
ICAgIGZvcihqID0gMDsgaiA8IDM7IGorKykKICAgICAgZChpLGopID0gKGkgKyBqKSAqIDEwMDsK
CiAgIGZvcihpID0gMDsgaSA8IDM7IGkrKykKICAgIGZvcihqID0gMDsgaiA8IDU7IGorKykKICAg
ICAgZShpLGopID0gKDEgKyBpKSAqICgxICsgaik7CgogICBmID0gZCAqIGU7CiAgIGNvdXQgPDwg
ImQ6IiA8PCBlbmRsIDw8IGVuZGw7CiAgIGQucHJpbnQoKTsKICAgY291dCA8PCAiZToiIDw8IGVu
ZGwgPDwgZW5kbDsKICAgZS5wcmludCgpOwogICBjb3V0IDw8ICJkICogZToiIDw8IGVuZGwgPDwg
ZW5kbDsKICAgZi5wcmludCgpOwoKCiAgIHJldHVybiBFWElUX1NVQ0NFU1M7CiB9CiAKIAogCgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1hdHJp
eC5jcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDA3NjQAMDAw
MDE0NAAwMDAwMDAwNTI0NwAwNzU2MTEyMDIxMwAwMTI3NzUAIDAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtam1hdGVybmEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHVzZXJzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgogICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHJpeC5jcHAgIC0gIGRl
c2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t
LQogICAgYmVnaW4gICAgICAgICAgICAgICAgOiBNb24gU2VwIDIgMjAwMgogICAgY29weXJpZ2h0
ICAgICAgICAgICAgOiAoQykgMjAwMiBieSBNYXJrIEouIE1hdGVybmEKICAgIGVtYWlsICAgICAg
ICAgICAgICAgIDogbWptYXRlcm5hQHN5c21hdHJpeC5uZXQKICoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K
Ci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKiAgIFRoaXMgcHJvZ3Jh
bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5
ICAqCiAqICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgICoKICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAgICAgKgogKiAgIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpbmNsdWRl
ICJtYXRyaXguaCIKCgpleHBvcnQgdGVtcGxhdGU8Y2xhc3MgVHlwPgpUeXAmIG1hdHJpeDxUeXA+
OjpvcGVyYXRvcigpIChpbnQgaSwgaW50IGopewogIGlmKGkgPj0gMCAgJiYgaSA8IG5yKQogICAg
aWYoaiA+PSAwICYmIGogPCBuYykKICAgICAgcmV0dXJuKGRhdGFbaSAqIG5jICsgal0pOwogICAg
ZWxzZQogICAgICBjb3V0IDw8ICJDb2x1bW4gc3Vic2NyaXB0IG91dCBvZiByYW5nZTogIiA8PCBq
IDw8IGVuZGw7CgogIGVsc2UKICAgIGNvdXQgPDwgIlJvdyBzdWJzY3JpcHQgb3V0IG9mIHJhbmdl
OiAiIDw8IGkgPDwgZW5kbDsKCiAgcmV0dXJuKGRhdGFbMF0pOwogIH0KCmV4cG9ydCB0ZW1wbGF0
ZTwgY2xhc3MgVHlwID4KbWF0cml4PFR5cD4gOjogbWF0cml4KCl7CiAgIG5yID0gMTsKICAgbmMg
PSAxOwogICBkYXRhID0gbmV3IFR5cFsxXTsKICB9CgpleHBvcnQgdGVtcGxhdGU8IGNsYXNzIFR5
cCA+Cm1hdHJpeDxUeXA+IDo6IG1hdHJpeChpbnQgciwgaW50IGMpewogICBuciA9IHI7CiAgIG5j
ID0gYzsKICAgZGF0YSA9IG5ldyBUeXBbbnIqbmNdOwogIH0KCmV4cG9ydCB0ZW1wbGF0ZTxjbGFz
cyBUeXA+Cm1hdHJpeDxUeXA+IDo6IH5tYXRyaXgoKXsKICBkZWxldGVbXSBkYXRhOwogIH0KCmV4
cG9ydCB0ZW1wbGF0ZTxjbGFzcyBUeXA+CnZvaWQgbWF0cml4PFR5cD46OnByaW50KCl7CiAgZm9y
KGludCBpID0gMDsgaSA8ICBucjsgaSsrKXsKICAgIGZvcihpbnQgaiA9IDA7IGogPCAgbmM7IGor
KykKICAgICAgY291dCA8PCBzZXR3KDYpIDw8IG9wZXJhdG9yKCkoaSxqKTsKCiAgICBjb3V0IDw8
IHNldHcoMCkgPDwgZW5kbDsKICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKICB9CgpleHBvcnQgdGVt
cGxhdGU8Y2xhc3MgVHlwPgptYXRyaXg8VHlwPjo6bWF0cml4KG1hdHJpeDxUeXA+JiBtKXsKICAg
bnIgPSBtLm5yOwogICBuYyA9IG0ubmM7CiAgIGRhdGEgPSBuZXcgVHlwW25yICogbmNdOwoKICBm
b3IoaW50IGkgPSAwOyBpIDwgbS5ucjsgaSsrKQogICAgZm9yKGludCBqID0gMDsgaiA8IG0ubmM7
IGorKykKICAgICAgb3BlcmF0b3IoKSAoaSxqKSA9IG0oaSxqKTsKCiAgfQoKCmV4cG9ydCB0ZW1w
bGF0ZTxjbGFzcyBUeXA+Cm1hdHJpeDxUeXA+IG1hdHJpeDxUeXA+OjpvcGVyYXRvciogKG1hdHJp
eDxUeXA+IG0pewogIFR5cCBzdW07CgogIGlmKG0ubnIgIT0gbmMpCiAgICByZXR1cm4obSk7Cgog
IG1hdHJpeDxUeXA+IHByb2QobnIsIG0ubmMpOwoKICBmb3IoaW50IGkgPSAwOyBpIDwgbnI7IGkr
Kyl7CiAgICBmb3IoaW50IGogPSAwOyBqIDwgbS5uYzsgaisrKXsKICAgICAgc3VtID0gMDsKICAg
ICAgZm9yKGludCBrID0gMDsgayA8IG5jOyBrKyspCiAgICAgICAgc3VtID0gc3VtICsgb3BlcmF0
b3IoKSAoaSxrKSAqIG0oayxqKTsKCiAgICAgIHByb2QoaSxqKSA9IHN1bTsKICAgICAgfQogICAg
fQoKICByZXR1cm4ocHJvZCk7Cgp9CgpleHBvcnQgdGVtcGxhdGU8Y2xhc3MgVHlwPgp2b2lkIG1h
dHJpeDxUeXA+OjpvcGVyYXRvcj0gKG1hdHJpeDxUeXA+IG0pewogIG5yID0gbS5ucjsKICBuYyA9
IG0ubmM7CgogIGRlbGV0ZVtdIGRhdGE7CiAgZGF0YSA9IG5ldyBUeXBbbnIgKiBuY107CgogIGZv
cihpbnQgaSA9IDA7IGkgPCBtLm5yOyBpKyspCiAgICBmb3IoaW50IGogPSAwOyBqIDwgbS5uYzsg
aisrKQogICAgICBvcGVyYXRvcigpKGksaikgPSBtKGksaik7CgogIH0KAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWF0cml4LmgAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMDc2NAAwMDAwMTQ0ADAw
MDAwMDAzMDIwADA3NTYxMTEyNzcwADAxMjQzNgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1qbWF0ZXJuYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
dXNlcnMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCiAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0cml4LmggIC0gIGRlc2NyaXB0aW9u
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgYmVn
aW4gICAgICAgICAgICAgICAgOiBNb24gU2VwIDIgMjAwMgogICAgY29weXJpZ2h0ICAgICAgICAg
ICAgOiAoQykgMjAwMiBieSBNYXJrIEouIE1hdGVybmEKICAgIGVtYWlsICAgICAgICAgICAgICAg
IDogbWptYXRlcm5hQHN5c21hdHJpeC5uZXQKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5ICAqCiAqICAg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgICoKICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAgICAgKgogKiAgIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCiAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpbmNsdWRlPGlvc3RyZWFt
PgojaW5jbHVkZTxpb21hbmlwPgojaW5jbHVkZTxzdGRsaWIuaD4KCnRlbXBsYXRlPGNsYXNzIFR5
cD4KY2xhc3MgbWF0cml4IHsKICBUeXAgKmRhdGE7CiAgaW50IG5yLCBuYzsgLy8gbnVtYmVyIHJv
d3MsIG51bWJlciBjb2xzCgpwdWJsaWM6CiAgbWF0cml4KCk7CiAgbWF0cml4IChpbnQsIGludCk7
CiAgfm1hdHJpeCgpOwogIHZvaWQgcHJpbnQoKTsKICBpbnQgbnVtUm93cygpIHsgcmV0dXJuIG5y
OyB9CiAgaW50IG51bUNvbHMoKSB7IHJldHVybiBuYzsgfQogIG1hdHJpeCAobWF0cml4JiBtKTsg
ICAgICAgICAgICAgICAgICAgLy8gQ29weSBDb25zdHJ1Y3RvcgoKICBtYXRyaXggb3BlcmF0b3Iq
IChtYXRyaXggbSk7ICAgICAgLy8gbWF0cml4IE11bHRpcGxpY2F0aW9uCgogIHZvaWQgb3BlcmF0
b3I9IChtYXRyaXg8VHlwPiBtKTsgICAgICAgICAvLyBtYXRyaXggQXNzaWdubWVudAogIFR5cCYg
b3BlcmF0b3IoKSAoaW50IGksIGludCBqKTsgICAgICAgIC8vIG1hdHJpeCBJbmRleGluZwp9OwoK
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]