home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: LaTeX Document
(document/latex).
You can browse this item here: tex
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| LaTeX Document (document/latex)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| LaTeX document text
| default
| |
99%
| file
| LaTeX document, ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/281 LaTeX (Subdocument)
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 5c 73 65 63 74 69 6f 6e | 7b 53 74 61 6e 64 61 72 |\section|{Standar|
|00000010| 64 20 6d 6f 64 75 6c 65 | 20 5c 73 65 63 74 63 6f |d module| \sectco|
|00000020| 64 65 7b 78 64 72 6c 69 | 62 7d 7d 0a 5c 73 74 6d |de{xdrli|b}}.\stm|
|00000030| 6f 64 69 6e 64 65 78 7b | 78 64 72 6c 69 62 7d 0a |odindex{|xdrlib}.|
|00000040| 5c 69 6e 64 65 78 7b 58 | 44 52 7d 0a 0a 5c 72 65 |\index{X|DR}..\re|
|00000050| 6e 65 77 63 6f 6d 6d 61 | 6e 64 7b 5c 69 6e 64 65 |newcomma|nd{\inde|
|00000060| 78 73 75 62 69 74 65 6d | 7d 7b 28 69 6e 20 6d 6f |xsubitem|}{(in mo|
|00000070| 64 75 6c 65 20 78 64 72 | 6c 69 62 29 7d 0a 0a 0a |dule xdr|lib)}...|
|00000080| 54 68 65 20 5c 63 6f 64 | 65 7b 78 64 72 6c 69 62 |The \cod|e{xdrlib|
|00000090| 7d 20 6d 6f 64 75 6c 65 | 20 73 75 70 70 6f 72 74 |} module| support|
|000000a0| 73 20 74 68 65 20 45 78 | 74 65 72 6e 61 6c 20 44 |s the Ex|ternal D|
|000000b0| 61 74 61 20 52 65 70 72 | 65 73 65 6e 74 61 74 69 |ata Repr|esentati|
|000000c0| 6f 6e 0a 53 74 61 6e 64 | 61 72 64 20 61 73 20 64 |on.Stand|ard as d|
|000000d0| 65 73 63 72 69 62 65 64 | 20 69 6e 20 52 46 43 20 |escribed| in RFC |
|000000e0| 31 30 31 34 2c 20 77 72 | 69 74 74 65 6e 20 62 79 |1014, wr|itten by|
|000000f0| 20 53 75 6e 20 4d 69 63 | 72 6f 73 79 73 74 65 6d | Sun Mic|rosystem|
|00000100| 73 2c 0a 49 6e 63 2e 20 | 4a 75 6e 65 20 31 39 38 |s,.Inc. |June 198|
|00000110| 37 2e 20 20 49 74 20 73 | 75 70 70 6f 72 74 73 20 |7. It s|upports |
|00000120| 6d 6f 73 74 20 6f 66 20 | 74 68 65 20 64 61 74 61 |most of |the data|
|00000130| 20 74 79 70 65 73 20 64 | 65 73 63 72 69 62 65 64 | types d|escribed|
|00000140| 20 69 6e 20 74 68 65 0a | 52 46 43 2c 20 61 6c 74 | in the.|RFC, alt|
|00000150| 68 6f 75 67 68 20 73 6f | 6d 65 2c 20 6d 6f 73 74 |hough so|me, most|
|00000160| 20 6e 6f 74 61 62 6c 79 | 20 5c 63 6f 64 65 7b 66 | notably| \code{f|
|00000170| 6c 6f 61 74 7d 20 61 6e | 64 20 5c 63 6f 64 65 7b |loat} an|d \code{|
|00000180| 64 6f 75 62 6c 65 7d 20 | 61 72 65 0a 6f 6e 6c 79 |double} |are.only|
|00000190| 20 73 75 70 70 6f 72 74 | 65 64 20 6f 6e 20 74 68 | support|ed on th|
|000001a0| 6f 73 65 20 6f 70 65 72 | 61 74 69 6e 67 20 73 79 |ose oper|ating sy|
|000001b0| 73 74 65 6d 73 20 74 68 | 61 74 20 70 72 6f 76 69 |stems th|at provi|
|000001c0| 64 65 20 61 6e 20 58 44 | 52 0a 6c 69 62 72 61 72 |de an XD|R.librar|
|000001d0| 79 2e 0a 0a 54 68 65 20 | 5c 63 6f 64 65 7b 78 64 |y...The |\code{xd|
|000001e0| 72 6c 69 62 7d 20 6d 6f | 64 75 6c 65 20 64 65 66 |rlib} mo|dule def|
|000001f0| 69 6e 65 73 20 74 77 6f | 20 63 6c 61 73 73 65 73 |ines two| classes|
|00000200| 2c 20 6f 6e 65 20 66 6f | 72 20 70 61 63 6b 69 6e |, one fo|r packin|
|00000210| 67 0a 76 61 72 69 61 62 | 6c 65 73 20 69 6e 74 6f |g.variab|les into|
|00000220| 20 58 44 52 20 72 65 70 | 72 65 73 65 6e 74 61 74 | XDR rep|resentat|
|00000230| 69 6f 6e 2c 20 61 6e 64 | 20 61 6e 6f 74 68 65 72 |ion, and| another|
|00000240| 20 66 6f 72 20 75 6e 70 | 61 63 6b 69 6e 67 20 66 | for unp|acking f|
|00000250| 72 6f 6d 20 58 44 52 0a | 72 65 70 72 65 73 65 6e |rom XDR.|represen|
|00000260| 74 61 74 69 6f 6e 2e 20 | 20 54 68 65 72 65 20 61 |tation. | There a|
|00000270| 72 65 20 61 6c 73 6f 20 | 74 77 6f 20 65 78 63 65 |re also |two exce|
|00000280| 70 74 69 6f 6e 20 63 6c | 61 73 73 65 73 2e 0a 0a |ption cl|asses...|
|00000290| 0a 5c 73 75 62 73 65 63 | 74 69 6f 6e 7b 50 61 63 |.\subsec|tion{Pac|
|000002a0| 6b 65 72 20 4f 62 6a 65 | 63 74 73 7d 0a 0a 5c 63 |ker Obje|cts}..\c|
|000002b0| 6f 64 65 7b 50 61 63 6b | 65 72 7d 20 69 73 20 74 |ode{Pack|er} is t|
|000002c0| 68 65 20 63 6c 61 73 73 | 20 66 6f 72 20 70 61 63 |he class| for pac|
|000002d0| 6b 69 6e 67 20 64 61 74 | 61 20 69 6e 74 6f 20 58 |king dat|a into X|
|000002e0| 44 52 20 72 65 70 72 65 | 73 65 6e 74 61 74 69 6f |DR repre|sentatio|
|000002f0| 6e 2e 0a 54 68 65 20 5c | 63 6f 64 65 7b 50 61 63 |n..The \|code{Pac|
|00000300| 6b 65 72 7d 20 63 6c 61 | 73 73 20 69 73 20 69 6e |ker} cla|ss is in|
|00000310| 73 74 61 6e 74 69 61 74 | 65 64 20 77 69 74 68 20 |stantiat|ed with |
|00000320| 6e 6f 20 61 72 67 75 6d | 65 6e 74 73 2e 0a 0a 5c |no argum|ents...\|
|00000330| 62 65 67 69 6e 7b 66 75 | 6e 63 64 65 73 63 7d 7b |begin{fu|ncdesc}{|
|00000340| 67 65 74 5f 62 75 66 66 | 65 72 7d 7b 7d 0a 52 65 |get_buff|er}{}.Re|
|00000350| 74 75 72 6e 73 20 74 68 | 65 20 63 75 72 72 65 6e |turns th|e curren|
|00000360| 74 20 70 61 63 6b 20 62 | 75 66 66 65 72 20 61 73 |t pack b|uffer as|
|00000370| 20 61 20 73 74 72 69 6e | 67 2e 0a 5c 65 6e 64 7b | a strin|g..\end{|
|00000380| 66 75 6e 63 64 65 73 63 | 7d 0a 0a 5c 62 65 67 69 |funcdesc|}..\begi|
|00000390| 6e 7b 66 75 6e 63 64 65 | 73 63 7d 7b 72 65 73 65 |n{funcde|sc}{rese|
|000003a0| 74 7d 7b 7d 0a 52 65 73 | 65 74 73 20 74 68 65 20 |t}{}.Res|ets the |
|000003b0| 70 61 63 6b 20 62 75 66 | 66 65 72 20 74 6f 20 74 |pack buf|fer to t|
|000003c0| 68 65 20 65 6d 70 74 79 | 20 73 74 72 69 6e 67 2e |he empty| string.|
|000003d0| 0a 5c 65 6e 64 7b 66 75 | 6e 63 64 65 73 63 7d 0a |.\end{fu|ncdesc}.|
|000003e0| 0a 49 6e 20 67 65 6e 65 | 72 61 6c 2c 20 79 6f 75 |.In gene|ral, you|
|000003f0| 20 63 61 6e 20 70 61 63 | 6b 20 61 6e 79 20 6f 66 | can pac|k any of|
|00000400| 20 74 68 65 20 6d 6f 73 | 74 20 63 6f 6d 6d 6f 6e | the mos|t common|
|00000410| 20 58 44 52 20 64 61 74 | 61 20 74 79 70 65 73 20 | XDR dat|a types |
|00000420| 62 79 0a 63 61 6c 6c 69 | 6e 67 20 74 68 65 20 61 |by.calli|ng the a|
|00000430| 70 70 72 6f 70 72 69 61 | 74 65 20 5c 63 6f 64 65 |ppropria|te \code|
|00000440| 7b 70 61 63 6b 5f 5c 76 | 61 72 7b 74 79 70 65 7d |{pack_\v|ar{type}|
|00000450| 7d 20 6d 65 74 68 6f 64 | 2e 20 20 45 61 63 68 20 |} method|. Each |
|00000460| 6d 65 74 68 6f 64 0a 74 | 61 6b 65 73 20 61 20 73 |method.t|akes a s|
|00000470| 69 6e 67 6c 65 20 61 72 | 67 75 6d 65 6e 74 2c 20 |ingle ar|gument, |
|00000480| 74 68 65 20 76 61 6c 75 | 65 20 74 6f 20 70 61 63 |the valu|e to pac|
|00000490| 6b 2e 20 20 54 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |k. The |followin|
|000004a0| 67 20 73 69 6d 70 6c 65 | 20 64 61 74 61 0a 74 79 |g simple| data.ty|
|000004b0| 70 65 20 70 61 63 6b 69 | 6e 67 20 6d 65 74 68 6f |pe packi|ng metho|
|000004c0| 64 73 20 61 72 65 20 73 | 75 70 70 6f 72 74 65 64 |ds are s|upported|
|000004d0| 3a 20 5c 63 6f 64 65 7b | 70 61 63 6b 5f 75 69 6e |: \code{|pack_uin|
|000004e0| 74 7d 2c 20 5c 63 6f 64 | 65 7b 70 61 63 6b 5f 69 |t}, \cod|e{pack_i|
|000004f0| 6e 74 7d 2c 0a 5c 63 6f | 64 65 7b 70 61 63 6b 5f |nt},.\co|de{pack_|
|00000500| 65 6e 75 6d 7d 2c 20 5c | 63 6f 64 65 7b 70 61 63 |enum}, \|code{pac|
|00000510| 6b 5f 62 6f 6f 6c 7d 2c | 20 5c 63 6f 64 65 7b 70 |k_bool},| \code{p|
|00000520| 61 63 6b 5f 75 68 79 70 | 65 72 7d 2c 0a 61 6e 64 |ack_uhyp|er},.and|
|00000530| 20 5c 63 6f 64 65 7b 70 | 61 63 6b 5f 68 79 70 65 | \code{p|ack_hype|
|00000540| 72 7d 2e 0a 0a 54 68 65 | 20 66 6f 6c 6c 6f 77 69 |r}...The| followi|
|00000550| 6e 67 20 6d 65 74 68 6f | 64 73 20 70 61 63 6b 20 |ng metho|ds pack |
|00000560| 66 6c 6f 61 74 69 6e 67 | 20 70 6f 69 6e 74 20 6e |floating| point n|
|00000570| 75 6d 62 65 72 73 2c 20 | 68 6f 77 65 76 65 72 20 |umbers, |however |
|00000580| 74 68 65 79 0a 72 65 71 | 75 69 72 65 20 43 20 6c |they.req|uire C l|
|00000590| 69 62 72 61 72 79 20 73 | 75 70 70 6f 72 74 2e 20 |ibrary s|upport. |
|000005a0| 20 57 69 74 68 6f 75 74 | 20 74 68 65 20 6f 70 74 | Without| the opt|
|000005b0| 69 6f 6e 61 6c 20 43 20 | 62 75 69 6c 74 2d 69 6e |ional C |built-in|
|000005c0| 20 6d 6f 64 75 6c 65 2c | 0a 62 6f 74 68 20 6f 66 | module,|.both of|
|000005d0| 20 74 68 65 73 65 20 6d | 65 74 68 6f 64 73 20 77 | these m|ethods w|
|000005e0| 69 6c 6c 20 72 61 69 73 | 65 20 61 6e 20 5c 63 6f |ill rais|e an \co|
|000005f0| 64 65 7b 78 64 72 6c 69 | 62 2e 43 6f 6e 76 65 72 |de{xdrli|b.Conver|
|00000600| 73 69 6f 6e 45 72 72 6f | 72 7d 0a 65 78 63 65 70 |sionErro|r}.excep|
|00000610| 74 69 6f 6e 2e 20 20 53 | 65 65 20 74 68 65 20 6e |tion. S|ee the n|
|00000620| 6f 74 65 20 61 74 20 74 | 68 65 20 65 6e 64 20 6f |ote at t|he end o|
|00000630| 66 20 74 68 69 73 20 63 | 68 61 70 74 65 72 20 66 |f this c|hapter f|
|00000640| 6f 72 20 64 65 74 61 69 | 6c 73 2e 0a 0a 5c 62 65 |or detai|ls...\be|
|00000650| 67 69 6e 7b 66 75 6e 63 | 64 65 73 63 7d 7b 70 61 |gin{func|desc}{pa|
|00000660| 63 6b 5f 66 6c 6f 61 74 | 7d 7b 76 61 6c 75 65 7d |ck_float|}{value}|
|00000670| 0a 50 61 63 6b 73 20 74 | 68 65 20 73 69 6e 67 6c |.Packs t|he singl|
|00000680| 65 2d 70 72 65 63 69 73 | 69 6f 6e 20 66 6c 6f 61 |e-precis|ion floa|
|00000690| 74 69 6e 67 20 70 6f 69 | 6e 74 20 6e 75 6d 62 65 |ting poi|nt numbe|
|000006a0| 72 20 5c 76 61 72 7b 76 | 61 6c 75 65 7d 2e 0a 5c |r \var{v|alue}..\|
|000006b0| 65 6e 64 7b 66 75 6e 63 | 64 65 73 63 7d 0a 0a 5c |end{func|desc}..\|
|000006c0| 62 65 67 69 6e 7b 66 75 | 6e 63 64 65 73 63 7d 7b |begin{fu|ncdesc}{|
|000006d0| 70 61 63 6b 5f 64 6f 75 | 62 6c 65 7d 7b 76 61 6c |pack_dou|ble}{val|
|000006e0| 75 65 7d 0a 50 61 63 6b | 73 20 74 68 65 20 64 6f |ue}.Pack|s the do|
|000006f0| 75 62 6c 65 2d 70 72 65 | 63 69 73 69 6f 6e 20 66 |uble-pre|cision f|
|00000700| 6c 6f 61 74 69 6e 67 20 | 70 6f 69 6e 74 20 6e 75 |loating |point nu|
|00000710| 6d 62 65 72 20 5c 76 61 | 72 7b 76 61 6c 75 65 7d |mber \va|r{value}|
|00000720| 2e 0a 5c 65 6e 64 7b 66 | 75 6e 63 64 65 73 63 7d |..\end{f|uncdesc}|
|00000730| 0a 0a 54 68 65 20 66 6f | 6c 6c 6f 77 69 6e 67 20 |..The fo|llowing |
|00000740| 6d 65 74 68 6f 64 73 20 | 73 75 70 70 6f 72 74 20 |methods |support |
|00000750| 70 61 63 6b 69 6e 67 20 | 73 74 72 69 6e 67 73 2c |packing |strings,|
|00000760| 20 62 79 74 65 73 2c 20 | 61 6e 64 20 6f 70 61 71 | bytes, |and opaq|
|00000770| 75 65 20 64 61 74 61 3a | 0a 0a 5c 62 65 67 69 6e |ue data:|..\begin|
|00000780| 7b 66 75 6e 63 64 65 73 | 63 7d 7b 70 61 63 6b 5f |{funcdes|c}{pack_|
|00000790| 66 73 74 72 69 6e 67 7d | 7b 6e 5c 2c 20 73 7d 0a |fstring}|{n\, s}.|
|000007a0| 50 61 63 6b 73 20 61 20 | 66 69 78 65 64 20 6c 65 |Packs a |fixed le|
|000007b0| 6e 67 74 68 20 73 74 72 | 69 6e 67 2c 20 5c 76 61 |ngth str|ing, \va|
|000007c0| 72 7b 73 7d 2e 20 20 5c | 76 61 72 7b 6e 7d 20 69 |r{s}. \|var{n} i|
|000007d0| 73 20 74 68 65 20 6c 65 | 6e 67 74 68 20 6f 66 20 |s the le|ngth of |
|000007e0| 74 68 65 0a 73 74 72 69 | 6e 67 20 62 75 74 20 69 |the.stri|ng but i|
|000007f0| 74 20 69 73 20 5c 65 6d | 70 68 7b 6e 6f 74 7d 20 |t is \em|ph{not} |
|00000800| 70 61 63 6b 65 64 20 69 | 6e 74 6f 20 74 68 65 20 |packed i|nto the |
|00000810| 64 61 74 61 20 62 75 66 | 66 65 72 2e 20 20 54 68 |data buf|fer. Th|
|00000820| 65 20 73 74 72 69 6e 67 | 0a 69 73 20 70 61 64 64 |e string|.is padd|
|00000830| 65 64 20 77 69 74 68 20 | 6e 75 6c 6c 20 62 79 74 |ed with |null byt|
|00000840| 65 73 20 69 66 20 6e 65 | 63 65 73 73 61 72 79 20 |es if ne|cessary |
|00000850| 74 6f 20 67 75 61 72 61 | 6e 74 65 65 64 20 34 20 |to guara|nteed 4 |
|00000860| 62 79 74 65 20 61 6c 69 | 67 6e 6d 65 6e 74 2e 0a |byte ali|gnment..|
|00000870| 5c 65 6e 64 7b 66 75 6e | 63 64 65 73 63 7d 0a 0a |\end{fun|cdesc}..|
|00000880| 5c 62 65 67 69 6e 7b 66 | 75 6e 63 64 65 73 63 7d |\begin{f|uncdesc}|
|00000890| 7b 70 61 63 6b 5f 66 6f | 70 61 71 75 65 7d 7b 6e |{pack_fo|paque}{n|
|000008a0| 5c 2c 20 64 61 74 61 7d | 0a 50 61 63 6b 73 20 61 |\, data}|.Packs a|
|000008b0| 20 66 69 78 65 64 20 6c | 65 6e 67 74 68 20 6f 70 | fixed l|ength op|
|000008c0| 61 71 75 65 20 64 61 74 | 61 20 73 74 72 65 61 6d |aque dat|a stream|
|000008d0| 2c 20 73 69 6d 69 6c 61 | 72 6c 79 20 74 6f 0a 5c |, simila|rly to.\|
|000008e0| 63 6f 64 65 7b 70 61 63 | 6b 5f 66 73 74 72 69 6e |code{pac|k_fstrin|
|000008f0| 67 7d 2e 0a 5c 65 6e 64 | 7b 66 75 6e 63 64 65 73 |g}..\end|{funcdes|
|00000900| 63 7d 0a 0a 5c 62 65 67 | 69 6e 7b 66 75 6e 63 64 |c}..\beg|in{funcd|
|00000910| 65 73 63 7d 7b 70 61 63 | 6b 5f 73 74 72 69 6e 67 |esc}{pac|k_string|
|00000920| 7d 7b 73 7d 0a 50 61 63 | 6b 73 20 61 20 76 61 72 |}{s}.Pac|ks a var|
|00000930| 69 61 62 6c 65 20 6c 65 | 6e 67 74 68 20 73 74 72 |iable le|ngth str|
|00000940| 69 6e 67 2c 20 5c 76 61 | 72 7b 73 7d 2e 20 20 54 |ing, \va|r{s}. T|
|00000950| 68 65 20 6c 65 6e 67 74 | 68 20 6f 66 20 74 68 65 |he lengt|h of the|
|00000960| 20 73 74 72 69 6e 67 20 | 69 73 0a 66 69 72 73 74 | string |is.first|
|00000970| 20 70 61 63 6b 65 64 20 | 61 73 20 61 6e 20 75 6e | packed |as an un|
|00000980| 73 69 67 6e 65 64 20 69 | 6e 74 65 67 65 72 2c 20 |signed i|nteger, |
|00000990| 74 68 65 6e 20 74 68 65 | 20 73 74 72 69 6e 67 20 |then the| string |
|000009a0| 64 61 74 61 20 69 73 20 | 70 61 63 6b 65 64 0a 77 |data is |packed.w|
|000009b0| 69 74 68 20 5c 63 6f 64 | 65 7b 70 61 63 6b 5f 66 |ith \cod|e{pack_f|
|000009c0| 73 74 72 69 6e 67 7d 2e | 0a 5c 65 6e 64 7b 66 75 |string}.|.\end{fu|
|000009d0| 6e 63 64 65 73 63 7d 0a | 0a 5c 62 65 67 69 6e 7b |ncdesc}.|.\begin{|
|000009e0| 66 75 6e 63 64 65 73 63 | 7d 7b 70 61 63 6b 5f 6f |funcdesc|}{pack_o|
|000009f0| 70 61 71 75 65 7d 7b 64 | 61 74 61 7d 0a 50 61 63 |paque}{d|ata}.Pac|
|00000a00| 6b 73 20 61 20 76 61 72 | 69 61 62 6c 65 20 6c 65 |ks a var|iable le|
|00000a10| 6e 67 74 68 20 6f 70 61 | 71 75 65 20 64 61 74 61 |ngth opa|que data|
|00000a20| 20 73 74 72 69 6e 67 2c | 20 73 69 6d 69 6c 61 72 | string,| similar|
|00000a30| 6c 79 20 74 6f 0a 5c 63 | 6f 64 65 7b 70 61 63 6b |ly to.\c|ode{pack|
|00000a40| 5f 73 74 72 69 6e 67 7d | 2e 0a 5c 65 6e 64 7b 66 |_string}|..\end{f|
|00000a50| 75 6e 63 64 65 73 63 7d | 0a 0a 5c 62 65 67 69 6e |uncdesc}|..\begin|
|00000a60| 7b 66 75 6e 63 64 65 73 | 63 7d 7b 70 61 63 6b 5f |{funcdes|c}{pack_|
|00000a70| 62 79 74 65 73 7d 7b 62 | 79 74 65 73 7d 0a 50 61 |bytes}{b|ytes}.Pa|
|00000a80| 63 6b 73 20 61 20 76 61 | 72 69 61 62 6c 65 20 6c |cks a va|riable l|
|00000a90| 65 6e 67 74 68 20 62 79 | 74 65 20 73 74 72 65 61 |ength by|te strea|
|00000aa0| 6d 2c 20 73 69 6d 69 6c | 61 72 6c 79 20 74 6f 20 |m, simil|arly to |
|00000ab0| 5c 63 6f 64 65 7b 70 61 | 63 6b 5f 73 74 72 69 6e |\code{pa|ck_strin|
|00000ac0| 67 7d 2e 0a 5c 65 6e 64 | 7b 66 75 6e 63 64 65 73 |g}..\end|{funcdes|
|00000ad0| 63 7d 0a 0a 54 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |c}..The |followin|
|00000ae0| 67 20 6d 65 74 68 6f 64 | 73 20 73 75 70 70 6f 72 |g method|s suppor|
|00000af0| 74 20 70 61 63 6b 69 6e | 67 20 61 72 72 61 79 73 |t packin|g arrays|
|00000b00| 20 61 6e 64 20 6c 69 73 | 74 73 3a 0a 0a 5c 62 65 | and lis|ts:..\be|
|00000b10| 67 69 6e 7b 66 75 6e 63 | 64 65 73 63 7d 7b 70 61 |gin{func|desc}{pa|
|00000b20| 63 6b 5f 6c 69 73 74 7d | 7b 6c 69 73 74 5c 2c 20 |ck_list}|{list\, |
|00000b30| 70 61 63 6b 5f 69 74 65 | 6d 7d 0a 50 61 63 6b 73 |pack_ite|m}.Packs|
|00000b40| 20 61 20 5c 76 61 72 7b | 6c 69 73 74 7d 20 6f 66 | a \var{|list} of|
|00000b50| 20 68 6f 6d 6f 67 65 6e | 65 6f 75 73 20 69 74 65 | homogen|eous ite|
|00000b60| 6d 73 2e 20 20 54 68 69 | 73 20 6d 65 74 68 6f 64 |ms. Thi|s method|
|00000b70| 20 69 73 20 75 73 65 66 | 75 6c 20 66 6f 72 0a 6c | is usef|ul for.l|
|00000b80| 69 73 74 73 20 77 69 74 | 68 20 61 6e 20 69 6e 64 |ists wit|h an ind|
|00000b90| 65 74 65 72 6d 69 6e 61 | 74 65 20 73 69 7a 65 3b |etermina|te size;|
|00000ba0| 20 69 2e 65 2e 20 74 68 | 65 20 73 69 7a 65 20 69 | i.e. th|e size i|
|00000bb0| 73 20 6e 6f 74 20 61 76 | 61 69 6c 61 62 6c 65 20 |s not av|ailable |
|00000bc0| 75 6e 74 69 6c 0a 74 68 | 65 20 65 6e 74 69 72 65 |until.th|e entire|
|00000bd0| 20 6c 69 73 74 20 68 61 | 73 20 62 65 65 6e 20 77 | list ha|s been w|
|00000be0| 61 6c 6b 65 64 2e 20 20 | 46 6f 72 20 65 61 63 68 |alked. |For each|
|00000bf0| 20 69 74 65 6d 20 69 6e | 20 74 68 65 20 6c 69 73 | item in| the lis|
|00000c00| 74 2c 20 61 6e 0a 75 6e | 73 69 67 6e 65 64 20 69 |t, an.un|signed i|
|00000c10| 6e 74 65 67 65 72 20 5c | 63 6f 64 65 7b 31 7d 20 |nteger \|code{1} |
|00000c20| 69 73 20 70 61 63 6b 65 | 64 20 66 69 72 73 74 2c |is packe|d first,|
|00000c30| 20 66 6f 6c 6c 6f 77 65 | 64 20 62 79 20 74 68 65 | followe|d by the|
|00000c40| 20 64 61 74 61 20 76 61 | 6c 75 65 0a 66 72 6f 6d | data va|lue.from|
|00000c50| 20 74 68 65 20 6c 69 73 | 74 2e 20 20 5c 76 61 72 | the lis|t. \var|
|00000c60| 7b 70 61 63 6b 5f 69 74 | 65 6d 7d 20 69 73 20 74 |{pack_it|em} is t|
|00000c70| 68 65 20 66 75 6e 63 74 | 69 6f 6e 20 74 68 61 74 |he funct|ion that|
|00000c80| 20 69 73 20 63 61 6c 6c | 65 64 20 74 6f 20 70 61 | is call|ed to pa|
|00000c90| 63 6b 0a 74 68 65 20 69 | 6e 64 69 76 69 64 75 61 |ck.the i|ndividua|
|00000ca0| 6c 20 69 74 65 6d 2e 20 | 20 41 74 20 74 68 65 20 |l item. | At the |
|00000cb0| 65 6e 64 20 6f 66 20 74 | 68 65 20 6c 69 73 74 2c |end of t|he list,|
|00000cc0| 20 61 6e 20 75 6e 73 69 | 67 6e 65 64 20 69 6e 74 | an unsi|gned int|
|00000cd0| 65 67 65 72 0a 5c 63 6f | 64 65 7b 30 7d 20 69 73 |eger.\co|de{0} is|
|00000ce0| 20 70 61 63 6b 65 64 2e | 0a 5c 65 6e 64 7b 66 75 | packed.|.\end{fu|
|00000cf0| 6e 63 64 65 73 63 7d 0a | 0a 5c 62 65 67 69 6e 7b |ncdesc}.|.\begin{|
|00000d00| 66 75 6e 63 64 65 73 63 | 7d 7b 70 61 63 6b 5f 66 |funcdesc|}{pack_f|
|00000d10| 61 72 72 61 79 7d 7b 6e | 5c 2c 20 61 72 72 61 79 |array}{n|\, array|
|00000d20| 5c 2c 20 70 61 63 6b 5f | 69 74 65 6d 7d 0a 50 61 |\, pack_|item}.Pa|
|00000d30| 63 6b 73 20 61 20 66 69 | 78 65 64 20 6c 65 6e 67 |cks a fi|xed leng|
|00000d40| 74 68 20 6c 69 73 74 20 | 28 5c 76 61 72 7b 61 72 |th list |(\var{ar|
|00000d50| 72 61 79 7d 29 20 6f 66 | 20 68 6f 6d 6f 67 65 6e |ray}) of| homogen|
|00000d60| 65 6f 75 73 20 69 74 65 | 6d 73 2e 20 20 5c 76 61 |eous ite|ms. \va|
|00000d70| 72 7b 6e 7d 0a 69 73 20 | 74 68 65 20 6c 65 6e 67 |r{n}.is |the leng|
|00000d80| 74 68 20 6f 66 20 74 68 | 65 20 6c 69 73 74 3b 20 |th of th|e list; |
|00000d90| 69 74 20 69 73 20 5c 65 | 6d 70 68 7b 6e 6f 74 7d |it is \e|mph{not}|
|00000da0| 20 70 61 63 6b 65 64 20 | 69 6e 74 6f 20 74 68 65 | packed |into the|
|00000db0| 20 62 75 66 66 65 72 2c | 0a 62 75 74 20 61 20 5c | buffer,|.but a \|
|00000dc0| 63 6f 64 65 7b 56 61 6c | 75 65 45 72 72 6f 72 7d |code{Val|ueError}|
|00000dd0| 20 65 78 63 65 70 74 69 | 6f 6e 20 69 73 20 72 61 | excepti|on is ra|
|00000de0| 69 73 65 64 20 69 66 20 | 5c 63 6f 64 65 7b 6c 65 |ised if |\code{le|
|00000df0| 6e 28 61 72 72 61 79 29 | 7d 20 69 73 20 6e 6f 74 |n(array)|} is not|
|00000e00| 0a 65 71 75 61 6c 20 74 | 6f 20 5c 76 61 72 7b 6e |.equal t|o \var{n|
|00000e10| 7d 2e 20 20 41 73 20 61 | 62 6f 76 65 2c 20 5c 76 |}. As a|bove, \v|
|00000e20| 61 72 7b 70 61 63 6b 5f | 69 74 65 6d 7d 20 69 73 |ar{pack_|item} is|
|00000e30| 20 74 68 65 20 66 75 6e | 63 74 69 6f 6e 20 75 73 | the fun|ction us|
|00000e40| 65 64 20 74 6f 0a 70 61 | 63 6b 20 65 61 63 68 20 |ed to.pa|ck each |
|00000e50| 65 6c 65 6d 65 6e 74 2e | 0a 5c 65 6e 64 7b 66 75 |element.|.\end{fu|
|00000e60| 6e 63 64 65 73 63 7d 0a | 0a 5c 62 65 67 69 6e 7b |ncdesc}.|.\begin{|
|00000e70| 66 75 6e 63 64 65 73 63 | 7d 7b 70 61 63 6b 5f 61 |funcdesc|}{pack_a|
|00000e80| 72 72 61 79 7d 7b 6c 69 | 73 74 5c 2c 20 70 61 63 |rray}{li|st\, pac|
|00000e90| 6b 5f 69 74 65 6d 7d 0a | 50 61 63 6b 73 20 61 20 |k_item}.|Packs a |
|00000ea0| 76 61 72 69 61 62 6c 65 | 20 6c 65 6e 67 74 68 20 |variable| length |
|00000eb0| 5c 76 61 72 7b 6c 69 73 | 74 7d 20 6f 66 20 68 6f |\var{lis|t} of ho|
|00000ec0| 6d 6f 67 65 6e 65 6f 75 | 73 20 69 74 65 6d 73 2e |mogeneou|s items.|
|00000ed0| 20 20 46 69 72 73 74 2c | 20 74 68 65 0a 6c 65 6e | First,| the.len|
|00000ee0| 67 74 68 20 6f 66 20 74 | 68 65 20 6c 69 73 74 20 |gth of t|he list |
|00000ef0| 69 73 20 70 61 63 6b 65 | 64 20 61 73 20 61 6e 20 |is packe|d as an |
|00000f00| 75 6e 73 69 67 6e 65 64 | 20 69 6e 74 65 67 65 72 |unsigned| integer|
|00000f10| 2c 20 74 68 65 6e 20 65 | 61 63 68 20 65 6c 65 6d |, then e|ach elem|
|00000f20| 65 6e 74 0a 69 73 20 70 | 61 63 6b 65 64 20 61 73 |ent.is p|acked as|
|00000f30| 20 69 6e 20 5c 63 6f 64 | 65 7b 70 61 63 6b 5f 66 | in \cod|e{pack_f|
|00000f40| 61 72 72 61 79 7d 20 61 | 62 6f 76 65 2e 0a 5c 65 |array} a|bove..\e|
|00000f50| 6e 64 7b 66 75 6e 63 64 | 65 73 63 7d 0a 0a 5c 73 |nd{funcd|esc}..\s|
|00000f60| 75 62 73 65 63 74 69 6f | 6e 7b 55 6e 70 61 63 6b |ubsectio|n{Unpack|
|00000f70| 65 72 20 4f 62 6a 65 63 | 74 73 7d 0a 0a 5c 63 6f |er Objec|ts}..\co|
|00000f80| 64 65 7b 55 6e 70 61 63 | 6b 65 72 7d 20 69 73 20 |de{Unpac|ker} is |
|00000f90| 74 68 65 20 63 6f 6d 70 | 6c 65 6d 65 6e 74 61 72 |the comp|lementar|
|00000fa0| 79 20 63 6c 61 73 73 20 | 77 68 69 63 68 20 75 6e |y class |which un|
|00000fb0| 70 61 63 6b 73 20 58 44 | 52 20 64 61 74 61 0a 76 |packs XD|R data.v|
|00000fc0| 61 6c 75 65 73 20 66 72 | 6f 6d 20 61 20 73 74 72 |alues fr|om a str|
|00000fd0| 69 6e 67 20 62 75 66 66 | 65 72 2c 20 61 6e 64 20 |ing buff|er, and |
|00000fe0| 68 61 73 20 74 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |has the |followin|
|00000ff0| 67 20 6d 65 74 68 6f 64 | 73 3a 0a 0a 5c 62 65 67 |g method|s:..\beg|
|00001000| 69 6e 7b 66 75 6e 63 64 | 65 73 63 7d 7b 5f 5f 69 |in{funcd|esc}{__i|
|00001010| 6e 69 74 5f 5f 7d 7b 64 | 61 74 61 7d 0a 49 6e 73 |nit__}{d|ata}.Ins|
|00001020| 74 61 6e 74 69 61 74 65 | 73 20 61 6e 20 5c 63 6f |tantiate|s an \co|
|00001030| 64 65 7b 55 6e 70 61 63 | 6b 65 72 7d 20 6f 62 6a |de{Unpac|ker} obj|
|00001040| 65 63 74 20 77 69 74 68 | 20 74 68 65 20 73 74 72 |ect with| the str|
|00001050| 69 6e 67 20 62 75 66 66 | 65 72 0a 5c 76 61 72 7b |ing buff|er.\var{|
|00001060| 64 61 74 61 7d 2e 0a 5c | 65 6e 64 7b 66 75 6e 63 |data}..\|end{func|
|00001070| 64 65 73 63 7d 0a 0a 5c | 62 65 67 69 6e 7b 66 75 |desc}..\|begin{fu|
|00001080| 6e 63 64 65 73 63 7d 7b | 72 65 73 65 74 7d 7b 64 |ncdesc}{|reset}{d|
|00001090| 61 74 61 7d 0a 52 65 73 | 65 74 73 20 74 68 65 20 |ata}.Res|ets the |
|000010a0| 73 74 72 69 6e 67 20 62 | 75 66 66 65 72 20 77 69 |string b|uffer wi|
|000010b0| 74 68 20 74 68 65 20 67 | 69 76 65 6e 20 5c 76 61 |th the g|iven \va|
|000010c0| 72 7b 64 61 74 61 7d 2e | 0a 5c 65 6e 64 7b 66 75 |r{data}.|.\end{fu|
|000010d0| 6e 63 64 65 73 63 7d 0a | 0a 5c 62 65 67 69 6e 7b |ncdesc}.|.\begin{|
|000010e0| 66 75 6e 63 64 65 73 63 | 7d 7b 67 65 74 5f 70 6f |funcdesc|}{get_po|
|000010f0| 73 69 74 69 6f 6e 7d 7b | 7d 0a 52 65 74 75 72 6e |sition}{|}.Return|
|00001100| 73 20 74 68 65 20 63 75 | 72 72 65 6e 74 20 75 6e |s the cu|rrent un|
|00001110| 70 61 63 6b 20 70 6f 73 | 69 74 69 6f 6e 20 69 6e |pack pos|ition in|
|00001120| 20 74 68 65 20 64 61 74 | 61 20 62 75 66 66 65 72 | the dat|a buffer|
|00001130| 2e 0a 5c 65 6e 64 7b 66 | 75 6e 63 64 65 73 63 7d |..\end{f|uncdesc}|
|00001140| 0a 0a 5c 62 65 67 69 6e | 7b 66 75 6e 63 64 65 73 |..\begin|{funcdes|
|00001150| 63 7d 7b 73 65 74 5f 70 | 6f 73 69 74 69 6f 6e 7d |c}{set_p|osition}|
|00001160| 7b 70 6f 73 69 74 69 6f | 6e 7d 0a 53 65 74 73 20 |{positio|n}.Sets |
|00001170| 74 68 65 20 64 61 74 61 | 20 62 75 66 66 65 72 20 |the data| buffer |
|00001180| 75 6e 70 61 63 6b 20 70 | 6f 73 69 74 69 6f 6e 20 |unpack p|osition |
|00001190| 74 6f 20 5c 76 61 72 7b | 70 6f 73 69 74 69 6f 6e |to \var{|position|
|000011a0| 7d 2e 20 20 59 6f 75 20 | 73 68 6f 75 6c 64 20 62 |}. You |should b|
|000011b0| 65 0a 63 61 72 65 66 75 | 6c 20 61 62 6f 75 74 20 |e.carefu|l about |
|000011c0| 75 73 69 6e 67 20 5c 63 | 6f 64 65 7b 67 65 74 5f |using \c|ode{get_|
|000011d0| 70 6f 73 69 74 69 6f 6e | 28 29 7d 20 61 6e 64 20 |position|()} and |
|000011e0| 5c 63 6f 64 65 7b 73 65 | 74 5f 70 6f 73 69 74 69 |\code{se|t_positi|
|000011f0| 6f 6e 28 29 7d 2e 0a 5c | 65 6e 64 7b 66 75 6e 63 |on()}..\|end{func|
|00001200| 64 65 73 63 7d 0a 0a 5c | 62 65 67 69 6e 7b 66 75 |desc}..\|begin{fu|
|00001210| 6e 63 64 65 73 63 7d 7b | 64 6f 6e 65 7d 7b 7d 0a |ncdesc}{|done}{}.|
|00001220| 49 6e 64 69 63 61 74 65 | 73 20 75 6e 70 61 63 6b |Indicate|s unpack|
|00001230| 20 63 6f 6d 70 6c 65 74 | 69 6f 6e 2e 20 20 52 61 | complet|ion. Ra|
|00001240| 69 73 65 73 20 61 6e 20 | 5c 63 6f 64 65 7b 78 64 |ises an |\code{xd|
|00001250| 72 6c 69 62 2e 45 72 72 | 6f 72 7d 20 65 78 63 65 |rlib.Err|or} exce|
|00001260| 70 74 69 6f 6e 0a 69 66 | 20 61 6c 6c 20 6f 66 20 |ption.if| all of |
|00001270| 74 68 65 20 64 61 74 61 | 20 68 61 73 20 6e 6f 74 |the data| has not|
|00001280| 20 62 65 65 6e 20 75 6e | 70 61 63 6b 65 64 2e 0a | been un|packed..|
|00001290| 5c 65 6e 64 7b 66 75 6e | 63 64 65 73 63 7d 0a 0a |\end{fun|cdesc}..|
|000012a0| 49 6e 20 61 64 64 69 74 | 69 6f 6e 2c 20 65 76 65 |In addit|ion, eve|
|000012b0| 72 79 20 64 61 74 61 20 | 74 79 70 65 20 74 68 61 |ry data |type tha|
|000012c0| 74 20 63 61 6e 20 62 65 | 20 70 61 63 6b 65 64 20 |t can be| packed |
|000012d0| 77 69 74 68 20 61 20 5c | 63 6f 64 65 7b 50 61 63 |with a \|code{Pac|
|000012e0| 6b 65 72 7d 2c 0a 63 61 | 6e 20 62 65 20 75 6e 70 |ker},.ca|n be unp|
|000012f0| 61 63 6b 65 64 20 77 69 | 74 68 20 61 6e 20 5c 63 |acked wi|th an \c|
|00001300| 6f 64 65 7b 55 6e 70 61 | 63 6b 65 72 7d 2e 20 20 |ode{Unpa|cker}. |
|00001310| 55 6e 70 61 63 6b 69 6e | 67 20 6d 65 74 68 6f 64 |Unpackin|g method|
|00001320| 73 20 61 72 65 20 6f 66 | 20 74 68 65 0a 66 6f 72 |s are of| the.for|
|00001330| 6d 20 5c 63 6f 64 65 7b | 75 6e 70 61 63 6b 5f 5c |m \code{|unpack_\|
|00001340| 76 61 72 7b 74 79 70 65 | 7d 7d 2c 20 61 6e 64 20 |var{type|}}, and |
|00001350| 74 61 6b 65 20 6e 6f 20 | 61 72 67 75 6d 65 6e 74 |take no |argument|
|00001360| 73 2e 20 20 54 68 65 79 | 20 72 65 74 75 72 6e 20 |s. They| return |
|00001370| 74 68 65 0a 75 6e 70 61 | 63 6b 65 64 20 6f 62 6a |the.unpa|cked obj|
|00001380| 65 63 74 2e 20 20 54 68 | 65 20 73 61 6d 65 20 63 |ect. Th|e same c|
|00001390| 61 76 65 61 74 73 20 61 | 70 70 6c 79 20 66 6f 72 |aveats a|pply for|
|000013a0| 20 5c 63 6f 64 65 7b 75 | 6e 70 61 63 6b 5f 66 6c | \code{u|npack_fl|
|000013b0| 6f 61 74 7d 20 61 6e 64 | 0a 5c 63 6f 64 65 7b 75 |oat} and|.\code{u|
|000013c0| 6e 70 61 63 6b 5f 64 6f | 75 62 6c 65 7d 20 61 73 |npack_do|uble} as|
|000013d0| 20 61 62 6f 76 65 2e 0a | 0a 5c 62 65 67 69 6e 7b | above..|.\begin{|
|000013e0| 66 75 6e 63 64 65 73 63 | 7d 7b 75 6e 70 61 63 6b |funcdesc|}{unpack|
|000013f0| 5f 66 6c 6f 61 74 7d 7b | 7d 0a 55 6e 70 61 63 6b |_float}{|}.Unpack|
|00001400| 73 20 61 20 73 69 6e 67 | 6c 65 2d 70 72 65 63 69 |s a sing|le-preci|
|00001410| 73 69 6f 6e 20 66 6c 6f | 61 74 69 6e 67 20 70 6f |sion flo|ating po|
|00001420| 69 6e 74 20 6e 75 6d 62 | 65 72 2e 0a 5c 65 6e 64 |int numb|er..\end|
|00001430| 7b 66 75 6e 63 64 65 73 | 63 7d 0a 0a 5c 62 65 67 |{funcdes|c}..\beg|
|00001440| 69 6e 7b 66 75 6e 63 64 | 65 73 63 7d 7b 75 6e 70 |in{funcd|esc}{unp|
|00001450| 61 63 6b 5f 64 6f 75 62 | 6c 65 7d 7b 7d 0a 55 6e |ack_doub|le}{}.Un|
|00001460| 70 61 63 6b 73 20 61 20 | 64 6f 75 62 6c 65 2d 70 |packs a |double-p|
|00001470| 72 65 63 69 73 69 6f 6e | 20 66 6c 6f 61 74 69 6e |recision| floatin|
|00001480| 67 20 70 6f 69 6e 74 20 | 6e 75 6d 62 65 72 2c 20 |g point |number, |
|00001490| 73 69 6d 69 6c 61 72 6c | 79 20 74 6f 0a 5c 63 6f |similarl|y to.\co|
|000014a0| 64 65 7b 75 6e 70 61 63 | 6b 5f 66 6c 6f 61 74 7d |de{unpac|k_float}|
|000014b0| 2e 0a 5c 65 6e 64 7b 66 | 75 6e 63 64 65 73 63 7d |..\end{f|uncdesc}|
|000014c0| 0a 0a 49 6e 20 61 64 64 | 69 74 69 6f 6e 2c 20 74 |..In add|ition, t|
|000014d0| 68 65 20 66 6f 6c 6c 6f | 77 69 6e 67 20 6d 65 74 |he follo|wing met|
|000014e0| 68 6f 64 73 20 75 6e 70 | 61 63 6b 20 73 74 72 69 |hods unp|ack stri|
|000014f0| 6e 67 73 2c 20 62 79 74 | 65 73 2c 20 61 6e 64 20 |ngs, byt|es, and |
|00001500| 6f 70 61 71 75 65 0a 64 | 61 74 61 3a 0a 0a 5c 62 |opaque.d|ata:..\b|
|00001510| 65 67 69 6e 7b 66 75 6e | 63 64 65 73 63 7d 7b 75 |egin{fun|cdesc}{u|
|00001520| 6e 70 61 63 6b 5f 66 73 | 74 72 69 6e 67 7d 7b 6e |npack_fs|tring}{n|
|00001530| 7d 0a 55 6e 70 61 63 6b | 73 20 61 6e 64 20 72 65 |}.Unpack|s and re|
|00001540| 74 75 72 6e 73 20 61 20 | 66 69 78 65 64 20 6c 65 |turns a |fixed le|
|00001550| 6e 67 74 68 20 73 74 72 | 69 6e 67 2e 20 20 5c 76 |ngth str|ing. \v|
|00001560| 61 72 7b 6e 7d 20 69 73 | 20 74 68 65 20 6e 75 6d |ar{n} is| the num|
|00001570| 62 65 72 20 6f 66 0a 63 | 68 61 72 61 63 74 65 72 |ber of.c|haracter|
|00001580| 73 20 65 78 70 65 63 74 | 65 64 2e 20 20 50 61 64 |s expect|ed. Pad|
|00001590| 64 69 6e 67 20 77 69 74 | 68 20 6e 75 6c 6c 20 62 |ding wit|h null b|
|000015a0| 79 74 65 73 20 74 6f 20 | 67 75 61 72 61 6e 74 65 |ytes to |guarante|
|000015b0| 65 64 20 34 20 62 79 74 | 65 0a 61 6c 69 67 6e 6d |ed 4 byt|e.alignm|
|000015c0| 65 6e 74 20 69 73 20 61 | 73 73 75 6d 65 64 2e 0a |ent is a|ssumed..|
|000015d0| 5c 65 6e 64 7b 66 75 6e | 63 64 65 73 63 7d 0a 0a |\end{fun|cdesc}..|
|000015e0| 5c 62 65 67 69 6e 7b 66 | 75 6e 63 64 65 73 63 7d |\begin{f|uncdesc}|
|000015f0| 7b 75 6e 70 61 63 6b 5f | 66 6f 70 61 71 75 65 7d |{unpack_|fopaque}|
|00001600| 7b 6e 7d 0a 55 6e 70 61 | 63 6b 73 20 61 6e 64 20 |{n}.Unpa|cks and |
|00001610| 72 65 74 75 72 6e 73 20 | 61 20 66 69 78 65 64 20 |returns |a fixed |
|00001620| 6c 65 6e 67 74 68 20 6f | 70 61 71 75 65 20 64 61 |length o|paque da|
|00001630| 74 61 20 73 74 72 65 61 | 6d 2c 20 73 69 6d 69 6c |ta strea|m, simil|
|00001640| 61 72 6c 79 20 74 6f 0a | 5c 63 6f 64 65 7b 75 6e |arly to.|\code{un|
|00001650| 70 61 63 6b 5f 66 73 74 | 72 69 6e 67 7d 2e 0a 5c |pack_fst|ring}..\|
|00001660| 65 6e 64 7b 66 75 6e 63 | 64 65 73 63 7d 0a 0a 5c |end{func|desc}..\|
|00001670| 62 65 67 69 6e 7b 66 75 | 6e 63 64 65 73 63 7d 7b |begin{fu|ncdesc}{|
|00001680| 75 6e 70 61 63 6b 5f 73 | 74 72 69 6e 67 7d 7b 7d |unpack_s|tring}{}|
|00001690| 0a 55 6e 70 61 63 6b 73 | 20 61 6e 64 20 72 65 74 |.Unpacks| and ret|
|000016a0| 75 72 6e 73 20 61 20 76 | 61 72 69 61 62 6c 65 20 |urns a v|ariable |
|000016b0| 6c 65 6e 67 74 68 20 73 | 74 72 69 6e 67 2e 20 20 |length s|tring. |
|000016c0| 54 68 65 20 6c 65 6e 67 | 74 68 20 6f 66 20 74 68 |The leng|th of th|
|000016d0| 65 0a 73 74 72 69 6e 67 | 20 69 73 20 66 69 72 73 |e.string| is firs|
|000016e0| 74 20 75 6e 70 61 63 6b | 65 64 20 61 73 20 61 6e |t unpack|ed as an|
|000016f0| 20 75 6e 73 69 67 6e 65 | 64 20 69 6e 74 65 67 65 | unsigne|d intege|
|00001700| 72 2c 20 74 68 65 6e 20 | 74 68 65 20 73 74 72 69 |r, then |the stri|
|00001710| 6e 67 20 64 61 74 61 0a | 69 73 20 75 6e 70 61 63 |ng data.|is unpac|
|00001720| 6b 65 64 20 77 69 74 68 | 20 5c 63 6f 64 65 7b 75 |ked with| \code{u|
|00001730| 6e 70 61 63 6b 5f 66 73 | 74 72 69 6e 67 7d 2e 0a |npack_fs|tring}..|
|00001740| 5c 65 6e 64 7b 66 75 6e | 63 64 65 73 63 7d 0a 0a |\end{fun|cdesc}..|
|00001750| 5c 62 65 67 69 6e 7b 66 | 75 6e 63 64 65 73 63 7d |\begin{f|uncdesc}|
|00001760| 7b 75 6e 70 61 63 6b 5f | 6f 70 61 71 75 65 7d 7b |{unpack_|opaque}{|
|00001770| 7d 0a 55 6e 70 61 63 6b | 73 20 61 6e 64 20 72 65 |}.Unpack|s and re|
|00001780| 74 75 72 6e 73 20 61 20 | 76 61 72 69 61 62 6c 65 |turns a |variable|
|00001790| 20 6c 65 6e 67 74 68 20 | 6f 70 61 71 75 65 20 64 | length |opaque d|
|000017a0| 61 74 61 20 73 74 72 69 | 6e 67 2c 20 73 69 6d 69 |ata stri|ng, simi|
|000017b0| 6c 61 72 6c 79 20 74 6f | 0a 5c 63 6f 64 65 7b 75 |larly to|.\code{u|
|000017c0| 6e 70 61 63 6b 5f 73 74 | 72 69 6e 67 7d 2e 0a 5c |npack_st|ring}..\|
|000017d0| 65 6e 64 7b 66 75 6e 63 | 64 65 73 63 7d 0a 0a 5c |end{func|desc}..\|
|000017e0| 62 65 67 69 6e 7b 66 75 | 6e 63 64 65 73 63 7d 7b |begin{fu|ncdesc}{|
|000017f0| 75 6e 70 61 63 6b 5f 62 | 79 74 65 73 7d 7b 7d 0a |unpack_b|ytes}{}.|
|00001800| 55 6e 70 61 63 6b 73 20 | 61 6e 64 20 72 65 74 75 |Unpacks |and retu|
|00001810| 72 6e 73 20 61 20 76 61 | 72 69 61 62 6c 65 20 6c |rns a va|riable l|
|00001820| 65 6e 67 74 68 20 62 79 | 74 65 20 73 74 72 65 61 |ength by|te strea|
|00001830| 6d 2c 20 73 69 6d 69 6c | 61 72 6c 79 20 74 6f 0a |m, simil|arly to.|
|00001840| 5c 63 6f 64 65 7b 75 6e | 70 61 63 6b 5f 73 74 72 |\code{un|pack_str|
|00001850| 69 6e 67 7d 2e 0a 5c 65 | 6e 64 7b 66 75 6e 63 64 |ing}..\e|nd{funcd|
|00001860| 65 73 63 7d 0a 0a 54 68 | 65 20 66 6f 6c 6c 6f 77 |esc}..Th|e follow|
|00001870| 69 6e 67 20 6d 65 74 68 | 6f 64 73 20 73 75 70 70 |ing meth|ods supp|
|00001880| 6f 72 74 20 75 6e 70 61 | 63 6b 69 6e 67 20 61 72 |ort unpa|cking ar|
|00001890| 72 61 79 73 20 61 6e 64 | 20 6c 69 73 74 73 3a 0a |rays and| lists:.|
|000018a0| 0a 5c 62 65 67 69 6e 7b | 66 75 6e 63 64 65 73 63 |.\begin{|funcdesc|
|000018b0| 7d 7b 75 6e 70 61 63 6b | 5f 6c 69 73 74 7d 7b 75 |}{unpack|_list}{u|
|000018c0| 6e 70 61 63 6b 5f 69 74 | 65 6d 7d 0a 55 6e 70 61 |npack_it|em}.Unpa|
|000018d0| 63 6b 73 20 61 6e 64 20 | 72 65 74 75 72 6e 73 20 |cks and |returns |
|000018e0| 61 20 6c 69 73 74 20 6f | 66 20 68 6f 6d 6f 67 65 |a list o|f homoge|
|000018f0| 6e 65 6f 75 73 20 69 74 | 65 6d 73 2e 20 20 54 68 |neous it|ems. Th|
|00001900| 65 20 6c 69 73 74 20 69 | 73 20 75 6e 70 61 63 6b |e list i|s unpack|
|00001910| 65 64 0a 6f 6e 65 20 65 | 6c 65 6d 65 6e 74 20 61 |ed.one e|lement a|
|00001920| 74 20 61 20 74 69 6d 65 | 0a 62 79 20 66 69 72 73 |t a time|.by firs|
|00001930| 74 20 75 6e 70 61 63 6b | 69 6e 67 20 61 6e 20 75 |t unpack|ing an u|
|00001940| 6e 73 69 67 6e 65 64 20 | 69 6e 74 65 67 65 72 20 |nsigned |integer |
|00001950| 66 6c 61 67 2e 20 20 49 | 66 20 74 68 65 20 66 6c |flag. I|f the fl|
|00001960| 61 67 20 69 73 20 5c 63 | 6f 64 65 7b 31 7d 2c 0a |ag is \c|ode{1},.|
|00001970| 74 68 65 6e 20 74 68 65 | 20 69 74 65 6d 20 69 73 |then the| item is|
|00001980| 20 75 6e 70 61 63 6b 65 | 64 20 61 6e 64 20 61 70 | unpacke|d and ap|
|00001990| 70 65 6e 64 65 64 20 74 | 6f 20 74 68 65 20 6c 69 |pended t|o the li|
|000019a0| 73 74 2e 20 20 41 20 66 | 6c 61 67 20 6f 66 0a 5c |st. A f|lag of.\|
|000019b0| 63 6f 64 65 7b 30 7d 20 | 69 6e 64 69 63 61 74 65 |code{0} |indicate|
|000019c0| 73 20 74 68 65 20 65 6e | 64 20 6f 66 20 74 68 65 |s the en|d of the|
|000019d0| 20 6c 69 73 74 2e 20 20 | 5c 76 61 72 7b 75 6e 70 | list. |\var{unp|
|000019e0| 61 63 6b 5f 69 74 65 6d | 7d 20 69 73 20 74 68 65 |ack_item|} is the|
|000019f0| 0a 66 75 6e 63 74 69 6f | 6e 20 74 68 61 74 20 69 |.functio|n that i|
|00001a00| 73 20 63 61 6c 6c 65 64 | 20 74 6f 20 75 6e 70 61 |s called| to unpa|
|00001a10| 63 6b 20 74 68 65 20 69 | 74 65 6d 73 2e 0a 5c 65 |ck the i|tems..\e|
|00001a20| 6e 64 7b 66 75 6e 63 64 | 65 73 63 7d 0a 0a 5c 62 |nd{funcd|esc}..\b|
|00001a30| 65 67 69 6e 7b 66 75 6e | 63 64 65 73 63 7d 7b 75 |egin{fun|cdesc}{u|
|00001a40| 6e 70 61 63 6b 5f 66 61 | 72 72 61 79 7d 7b 6e 5c |npack_fa|rray}{n\|
|00001a50| 2c 20 75 6e 70 61 63 6b | 5f 69 74 65 6d 7d 0a 55 |, unpack|_item}.U|
|00001a60| 6e 70 61 63 6b 73 20 61 | 6e 64 20 72 65 74 75 72 |npacks a|nd retur|
|00001a70| 6e 73 20 28 61 73 20 61 | 20 6c 69 73 74 29 20 61 |ns (as a| list) a|
|00001a80| 20 66 69 78 65 64 20 6c | 65 6e 67 74 68 20 61 72 | fixed l|ength ar|
|00001a90| 72 61 79 20 6f 66 20 68 | 6f 6d 6f 67 65 6e 65 6f |ray of h|omogeneo|
|00001aa0| 75 73 0a 69 74 65 6d 73 | 2e 20 20 5c 76 61 72 7b |us.items|. \var{|
|00001ab0| 6e 7d 20 69 73 20 6e 75 | 6d 62 65 72 20 6f 66 20 |n} is nu|mber of |
|00001ac0| 6c 69 73 74 20 65 6c 65 | 6d 65 6e 74 73 20 74 6f |list ele|ments to|
|00001ad0| 20 65 78 70 65 63 74 20 | 69 6e 20 74 68 65 20 62 | expect |in the b|
|00001ae0| 75 66 66 65 72 2e 0a 41 | 73 20 61 62 6f 76 65 2c |uffer..A|s above,|
|00001af0| 20 5c 76 61 72 7b 75 6e | 70 61 63 6b 5f 69 74 65 | \var{un|pack_ite|
|00001b00| 6d 7d 20 69 73 20 74 68 | 65 20 66 75 6e 63 74 69 |m} is th|e functi|
|00001b10| 6f 6e 20 75 73 65 64 20 | 74 6f 20 75 6e 70 61 63 |on used |to unpac|
|00001b20| 6b 20 65 61 63 68 20 65 | 6c 65 6d 65 6e 74 2e 0a |k each e|lement..|
|00001b30| 5c 65 6e 64 7b 66 75 6e | 63 64 65 73 63 7d 0a 0a |\end{fun|cdesc}..|
|00001b40| 5c 62 65 67 69 6e 7b 66 | 75 6e 63 64 65 73 63 7d |\begin{f|uncdesc}|
|00001b50| 7b 75 6e 70 61 63 6b 5f | 61 72 72 61 79 7d 7b 75 |{unpack_|array}{u|
|00001b60| 6e 70 61 63 6b 5f 69 74 | 65 6d 7d 0a 55 6e 70 61 |npack_it|em}.Unpa|
|00001b70| 63 6b 73 20 61 6e 64 20 | 72 65 74 75 72 6e 73 20 |cks and |returns |
|00001b80| 61 20 76 61 72 69 61 62 | 6c 65 20 6c 65 6e 67 74 |a variab|le lengt|
|00001b90| 68 20 5c 76 61 72 7b 6c | 69 73 74 7d 20 6f 66 20 |h \var{l|ist} of |
|00001ba0| 68 6f 6d 6f 67 65 6e 65 | 6f 75 73 20 69 74 65 6d |homogene|ous item|
|00001bb0| 73 2e 0a 46 69 72 73 74 | 2c 20 74 68 65 20 6c 65 |s..First|, the le|
|00001bc0| 6e 67 74 68 20 6f 66 20 | 74 68 65 20 6c 69 73 74 |ngth of |the list|
|00001bd0| 20 69 73 20 75 6e 70 61 | 63 6b 65 64 20 61 73 20 | is unpa|cked as |
|00001be0| 61 6e 20 75 6e 73 69 67 | 6e 65 64 20 69 6e 74 65 |an unsig|ned inte|
|00001bf0| 67 65 72 2c 20 74 68 65 | 6e 0a 65 61 63 68 20 65 |ger, the|n.each e|
|00001c00| 6c 65 6d 65 6e 74 20 69 | 73 20 75 6e 70 61 63 6b |lement i|s unpack|
|00001c10| 65 64 20 61 73 20 69 6e | 20 5c 63 6f 64 65 7b 75 |ed as in| \code{u|
|00001c20| 6e 70 61 63 6b 5f 66 61 | 72 72 61 79 7d 20 61 62 |npack_fa|rray} ab|
|00001c30| 6f 76 65 2e 0a 5c 65 6e | 64 7b 66 75 6e 63 64 65 |ove..\en|d{funcde|
|00001c40| 73 63 7d 0a 0a 5c 73 75 | 62 73 65 63 74 69 6f 6e |sc}..\su|bsection|
|00001c50| 7b 45 78 63 65 70 74 69 | 6f 6e 73 7d 0a 0a 45 78 |{Excepti|ons}..Ex|
|00001c60| 63 65 70 74 69 6f 6e 73 | 20 69 6e 20 74 68 69 73 |ceptions| in this|
|00001c70| 20 6d 6f 64 75 6c 65 20 | 61 72 65 20 63 6f 64 65 | module |are code|
|00001c80| 64 20 61 73 20 63 6c 61 | 73 73 20 69 6e 73 74 61 |d as cla|ss insta|
|00001c90| 6e 63 65 73 3a 0a 0a 5c | 62 65 67 69 6e 7b 65 78 |nces:..\|begin{ex|
|00001ca0| 63 64 65 73 63 7d 7b 45 | 72 72 6f 72 7d 0a 54 68 |cdesc}{E|rror}.Th|
|00001cb0| 65 20 62 61 73 65 20 65 | 78 63 65 70 74 69 6f 6e |e base e|xception|
|00001cc0| 20 63 6c 61 73 73 2e 20 | 20 5c 63 6f 64 65 7b 45 | class. | \code{E|
|00001cd0| 72 72 6f 72 7d 20 68 61 | 73 20 61 20 73 69 6e 67 |rror} ha|s a sing|
|00001ce0| 6c 65 20 70 75 62 6c 69 | 63 20 64 61 74 61 0a 6d |le publi|c data.m|
|00001cf0| 65 6d 62 65 72 20 5c 63 | 6f 64 65 7b 6d 73 67 7d |ember \c|ode{msg}|
|00001d00| 20 63 6f 6e 74 61 69 6e | 69 6e 67 20 74 68 65 20 | contain|ing the |
|00001d10| 64 65 73 63 72 69 70 74 | 69 6f 6e 20 6f 66 20 74 |descript|ion of t|
|00001d20| 68 65 20 65 72 72 6f 72 | 2e 0a 5c 65 6e 64 7b 65 |he error|..\end{e|
|00001d30| 78 63 64 65 73 63 7d 0a | 0a 5c 62 65 67 69 6e 7b |xcdesc}.|.\begin{|
|00001d40| 65 78 63 64 65 73 63 7d | 7b 43 6f 6e 76 65 72 73 |excdesc}|{Convers|
|00001d50| 69 6f 6e 45 72 72 6f 72 | 7d 0a 43 6c 61 73 73 20 |ionError|}.Class |
|00001d60| 64 65 72 69 76 65 64 20 | 66 72 6f 6d 20 5c 63 6f |derived |from \co|
|00001d70| 64 65 7b 45 72 72 6f 72 | 7d 2e 20 20 43 6f 6e 74 |de{Error|}. Cont|
|00001d80| 61 69 6e 73 20 6e 6f 20 | 61 64 64 69 74 69 6f 6e |ains no |addition|
|00001d90| 61 6c 20 69 6e 73 74 61 | 6e 63 65 0a 76 61 72 69 |al insta|nce.vari|
|00001da0| 61 62 6c 65 73 2e 0a 5c | 65 6e 64 7b 65 78 63 64 |ables..\|end{excd|
|00001db0| 65 73 63 7d 0a 0a 48 65 | 72 65 20 69 73 20 61 6e |esc}..He|re is an|
|00001dc0| 20 65 78 61 6d 70 6c 65 | 20 6f 66 20 68 6f 77 20 | example| of how |
|00001dd0| 79 6f 75 20 77 6f 75 6c | 64 20 63 61 74 63 68 20 |you woul|d catch |
|00001de0| 6f 6e 65 20 6f 66 20 74 | 68 65 73 65 20 65 78 63 |one of t|hese exc|
|00001df0| 65 70 74 69 6f 6e 73 3a | 0a 0a 5c 62 65 67 69 6e |eptions:|..\begin|
|00001e00| 7b 76 65 72 62 61 74 69 | 6d 7d 0a 69 6d 70 6f 72 |{verbati|m}.impor|
|00001e10| 74 20 78 64 72 6c 69 62 | 0a 70 20 3d 20 78 64 72 |t xdrlib|.p = xdr|
|00001e20| 6c 69 62 2e 50 61 63 6b | 65 72 28 29 0a 74 72 79 |lib.Pack|er().try|
|00001e30| 3a 0a 20 20 20 20 70 2e | 70 61 63 6b 5f 64 6f 75 |:. p.|pack_dou|
|00001e40| 62 6c 65 28 38 2e 30 31 | 29 0a 65 78 63 65 70 74 |ble(8.01|).except|
|00001e50| 20 78 64 72 6c 69 62 2e | 43 6f 6e 76 65 72 73 69 | xdrlib.|Conversi|
|00001e60| 6f 6e 45 72 72 6f 72 2c | 20 69 6e 73 74 61 6e 63 |onError,| instanc|
|00001e70| 65 3a 0a 20 20 20 20 70 | 72 69 6e 74 20 27 70 61 |e:. p|rint 'pa|
|00001e80| 63 6b 69 6e 67 20 74 68 | 65 20 64 6f 75 62 6c 65 |cking th|e double|
|00001e90| 20 66 61 69 6c 65 64 3a | 27 2c 20 69 6e 73 74 61 | failed:|', insta|
|00001ea0| 6e 63 65 2e 6d 73 67 0a | 5c 65 6e 64 7b 76 65 72 |nce.msg.|\end{ver|
|00001eb0| 62 61 74 69 6d 7d 0a 0a | 5c 73 75 62 73 65 63 74 |batim}..|\subsect|
|00001ec0| 69 6f 6e 7b 53 75 70 70 | 6f 72 74 69 6e 67 20 46 |ion{Supp|orting F|
|00001ed0| 6c 6f 61 74 69 6e 67 20 | 50 6f 69 6e 74 20 44 61 |loating |Point Da|
|00001ee0| 74 61 7d 0a 0a 50 61 63 | 6b 69 6e 67 20 61 6e 64 |ta}..Pac|king and|
|00001ef0| 20 75 6e 70 61 63 6b 69 | 6e 67 20 66 6c 6f 61 74 | unpacki|ng float|
|00001f00| 69 6e 67 20 70 6f 69 6e | 74 20 64 61 74 61 2c 0a |ing poin|t data,.|
|00001f10| 69 2e 65 2e 20 5c 63 6f | 64 65 7b 50 61 63 6b 65 |i.e. \co|de{Packe|
|00001f20| 72 2e 70 61 63 6b 5f 66 | 6c 6f 61 74 7d 2c 20 5c |r.pack_f|loat}, \|
|00001f30| 63 6f 64 65 7b 50 61 63 | 6b 65 72 2e 70 61 63 6b |code{Pac|ker.pack|
|00001f40| 5f 64 6f 75 62 6c 65 7d | 2c 0a 5c 63 6f 64 65 7b |_double}|,.\code{|
|00001f50| 55 6e 70 61 63 6b 65 72 | 2e 75 6e 70 61 63 6b 5f |Unpacker|.unpack_|
|00001f60| 66 6c 6f 61 74 7d 2c 20 | 61 6e 64 20 5c 63 6f 64 |float}, |and \cod|
|00001f70| 65 7b 55 6e 70 61 63 6b | 65 72 2e 75 6e 70 61 63 |e{Unpack|er.unpac|
|00001f80| 6b 5f 64 6f 75 62 6c 65 | 7d 2c 20 61 72 65 0a 6f |k_double|}, are.o|
|00001f90| 6e 6c 79 20 73 75 70 70 | 6f 72 74 65 64 20 77 69 |nly supp|orted wi|
|00001fa0| 74 68 20 74 68 65 20 68 | 65 6c 70 65 72 20 62 75 |th the h|elper bu|
|00001fb0| 69 6c 74 2d 69 6e 20 5c | 63 6f 64 65 7b 5f 78 64 |ilt-in \|code{_xd|
|00001fc0| 72 7d 20 6d 6f 64 75 6c | 65 2c 20 77 68 69 63 68 |r} modul|e, which|
|00001fd0| 0a 72 65 6c 69 65 73 20 | 6f 6e 20 79 6f 75 72 20 |.relies |on your |
|00001fe0| 6f 70 65 72 61 74 69 6e | 67 20 73 79 73 74 65 6d |operatin|g system|
|00001ff0| 20 68 61 76 69 6e 67 20 | 74 68 65 20 61 70 70 72 | having |the appr|
|00002000| 6f 70 72 69 61 74 65 20 | 58 44 52 20 6c 69 62 72 |opriate |XDR libr|
|00002010| 61 72 79 0a 72 6f 75 74 | 69 6e 65 73 2e 0a 0a 49 |ary.rout|ines...I|
|00002020| 66 20 79 6f 75 20 68 61 | 76 65 20 62 75 69 6c 74 |f you ha|ve built|
|00002030| 20 74 68 65 20 50 79 74 | 68 6f 6e 20 69 6e 74 65 | the Pyt|hon inte|
|00002040| 72 70 65 74 65 72 20 77 | 69 74 68 20 74 68 65 20 |rpeter w|ith the |
|00002050| 5c 63 6f 64 65 7b 5f 78 | 64 72 7d 20 6d 6f 64 75 |\code{_x|dr} modu|
|00002060| 6c 65 2c 0a 6f 72 20 68 | 61 76 65 20 62 75 69 6c |le,.or h|ave buil|
|00002070| 74 20 74 68 65 20 5c 63 | 6f 64 65 7b 5f 78 64 72 |t the \c|ode{_xdr|
|00002080| 7d 20 6d 6f 64 75 6c 65 | 20 61 73 20 61 20 73 68 |} module| as a sh|
|00002090| 61 72 65 64 20 6c 69 62 | 72 61 72 79 2c 0a 5c 63 |ared lib|rary,.\c|
|000020a0| 6f 64 65 7b 78 64 72 6c | 69 62 7d 20 77 69 6c 6c |ode{xdrl|ib} will|
|000020b0| 20 75 73 65 20 74 68 65 | 73 65 20 74 6f 20 70 61 | use the|se to pa|
|000020c0| 63 6b 20 61 6e 64 20 75 | 6e 70 61 63 6b 20 66 6c |ck and u|npack fl|
|000020d0| 6f 61 74 69 6e 67 20 70 | 6f 69 6e 74 0a 6e 75 6d |oating p|oint.num|
|000020e0| 62 65 72 73 2e 20 20 4f | 74 68 65 72 77 69 73 65 |bers. O|therwise|
|000020f0| 2c 20 75 73 69 6e 67 20 | 74 68 65 73 65 20 72 6f |, using |these ro|
|00002100| 75 74 69 6e 65 73 20 77 | 69 6c 6c 20 72 61 69 73 |utines w|ill rais|
|00002110| 65 20 61 0a 5c 63 6f 64 | 65 7b 43 6f 6e 76 65 72 |e a.\cod|e{Conver|
|00002120| 73 69 6f 6e 45 72 72 6f | 72 7d 20 65 78 63 65 70 |sionErro|r} excep|
|00002130| 74 69 6f 6e 2e 0a 0a 53 | 65 65 20 74 68 65 20 50 |tion...S|ee the P|
|00002140| 79 74 68 6f 6e 20 69 6e | 73 74 61 6c 6c 61 74 69 |ython in|stallati|
|00002150| 6f 6e 20 69 6e 73 74 72 | 75 63 74 69 6f 6e 73 20 |on instr|uctions |
|00002160| 66 6f 72 20 64 65 74 61 | 69 6c 73 20 6f 6e 20 62 |for deta|ils on b|
|00002170| 75 69 6c 64 69 6e 67 20 | 74 68 65 0a 5c 63 6f 64 |uilding |the.\cod|
|00002180| 65 7b 5f 78 64 72 7d 20 | 6d 6f 64 75 6c 65 2e 0a |e{_xdr} |module..|
+--------+-------------------------+-------------------------+--------+--------+