sx12 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1831) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/README.md +9 -0
  4. data/Rakefile +24 -0
  5. data/example/factory.rb +92 -0
  6. data/example/parse.rb +57 -0
  7. data/lib/x12.rb +41 -0
  8. data/lib/x12/base.rb +210 -0
  9. data/lib/x12/composite.rb +37 -0
  10. data/lib/x12/empty.rb +43 -0
  11. data/lib/x12/field.rb +92 -0
  12. data/lib/x12/loop.rb +78 -0
  13. data/lib/x12/parser.rb +146 -0
  14. data/lib/x12/segment.rb +107 -0
  15. data/lib/x12/table.rb +44 -0
  16. data/lib/x12/version.rb +3 -0
  17. data/lib/x12/xmldefinitions.rb +159 -0
  18. data/misc/270.xml +152 -0
  19. data/misc/270interchange.xml +163 -0
  20. data/misc/997.xml +50 -0
  21. data/misc/997single.xml +835 -0
  22. data/misc/AAA.xml +31 -0
  23. data/misc/ACD.xml +30 -0
  24. data/misc/ACK.xml +56 -0
  25. data/misc/ACS.xml +31 -0
  26. data/misc/ACT.xml +36 -0
  27. data/misc/AD1.xml +32 -0
  28. data/misc/ADI.xml +31 -0
  29. data/misc/ADJ.xml +44 -0
  30. data/misc/ADT.xml +37 -0
  31. data/misc/ADV.xml +34 -0
  32. data/misc/ADX.xml +31 -0
  33. data/misc/AEI.xml +30 -0
  34. data/misc/AES.xml +32 -0
  35. data/misc/AIN.xml +40 -0
  36. data/misc/AK1.xml +29 -0
  37. data/misc/AK2.xml +29 -0
  38. data/misc/AK3.xml +31 -0
  39. data/misc/AK4.xml +31 -0
  40. data/misc/AK5.xml +33 -0
  41. data/misc/AK9.xml +36 -0
  42. data/misc/AM1.xml +33 -0
  43. data/misc/AMT.xml +30 -0
  44. data/misc/ANI.xml +36 -0
  45. data/misc/AOC.xml +32 -0
  46. data/misc/AOI.xml +40 -0
  47. data/misc/AOL.xml +35 -0
  48. data/misc/AOR.xml +40 -0
  49. data/misc/AP1.xml +40 -0
  50. data/misc/APE.xml +32 -0
  51. data/misc/API.xml +35 -0
  52. data/misc/APR.xml +30 -0
  53. data/misc/ARC.xml +30 -0
  54. data/misc/ARS.xml +32 -0
  55. data/misc/ASI.xml +30 -0
  56. data/misc/ASL.xml +31 -0
  57. data/misc/ASM.xml +30 -0
  58. data/misc/ASO.xml +38 -0
  59. data/misc/AST.xml +38 -0
  60. data/misc/AT1.xml +28 -0
  61. data/misc/AT2.xml +39 -0
  62. data/misc/AT3.xml +34 -0
  63. data/misc/AT4.xml +28 -0
  64. data/misc/AT5.xml +33 -0
  65. data/misc/AT6.xml +30 -0
  66. data/misc/AT7.xml +34 -0
  67. data/misc/AT8.xml +34 -0
  68. data/misc/AT9.xml +35 -0
  69. data/misc/ATA.xml +30 -0
  70. data/misc/ATH.xml +32 -0
  71. data/misc/ATN.xml +33 -0
  72. data/misc/ATR.xml +37 -0
  73. data/misc/ATV.xml +37 -0
  74. data/misc/AVA.xml +29 -0
  75. data/misc/AWD.xml +31 -0
  76. data/misc/AXL.xml +35 -0
  77. data/misc/B1.xml +33 -0
  78. data/misc/B10.xml +36 -0
  79. data/misc/B11.xml +38 -0
  80. data/misc/B12.xml +30 -0
  81. data/misc/B13.xml +29 -0
  82. data/misc/B2.xml +39 -0
  83. data/misc/B2A.xml +29 -0
  84. data/misc/B3.xml +41 -0
  85. data/misc/B3A.xml +29 -0
  86. data/misc/B3B.xml +38 -0
  87. data/misc/B4.xml +40 -0
  88. data/misc/B9.xml +30 -0
  89. data/misc/B9A.xml +28 -0
  90. data/misc/BA1.xml +39 -0
  91. data/misc/BA2.xml +38 -0
  92. data/misc/BAA.xml +33 -0
  93. data/misc/BAK.xml +37 -0
  94. data/misc/BAL.xml +30 -0
  95. data/misc/BAT.xml +31 -0
  96. data/misc/BAU.xml +33 -0
  97. data/misc/BAX.xml +41 -0
  98. data/misc/BBC.xml +29 -0
  99. data/misc/BC.xml +34 -0
  100. data/misc/BCA.xml +42 -0
  101. data/misc/BCD.xml +42 -0
  102. data/misc/BCH.xml +43 -0
  103. data/misc/BCI.xml +35 -0
  104. data/misc/BCM.xml +39 -0
  105. data/misc/BCO.xml +39 -0
  106. data/misc/BCP.xml +40 -0
  107. data/misc/BCQ.xml +34 -0
  108. data/misc/BCS.xml +39 -0
  109. data/misc/BCT.xml +37 -0
  110. data/misc/BCU.xml +34 -0
  111. data/misc/BDD.xml +30 -0
  112. data/misc/BDS.xml +30 -0
  113. data/misc/BEG.xml +39 -0
  114. data/misc/BEN.xml +33 -0
  115. data/misc/BEP.xml +29 -0
  116. data/misc/BFR.xml +40 -0
  117. data/misc/BFS.xml +37 -0
  118. data/misc/BGF.xml +30 -0
  119. data/misc/BGN.xml +36 -0
  120. data/misc/BGP.xml +36 -0
  121. data/misc/BHT.xml +33 -0
  122. data/misc/BIA.xml +33 -0
  123. data/misc/BIG.xml +38 -0
  124. data/misc/BIN.xml +29 -0
  125. data/misc/BIX.xml +38 -0
  126. data/misc/BJF.xml +34 -0
  127. data/misc/BL.xml +44 -0
  128. data/misc/BLI.xml +45 -0
  129. data/misc/BLN.xml +33 -0
  130. data/misc/BLR.xml +30 -0
  131. data/misc/BLS.xml +33 -0
  132. data/misc/BMA.xml +35 -0
  133. data/misc/BMG.xml +30 -0
  134. data/misc/BMM.xml +37 -0
  135. data/misc/BMP.xml +31 -0
  136. data/misc/BMS.xml +36 -0
  137. data/misc/BNR.xml +33 -0
  138. data/misc/BNX.xml +31 -0
  139. data/misc/BOL.xml +38 -0
  140. data/misc/BOR.xml +37 -0
  141. data/misc/BOS.xml +33 -0
  142. data/misc/BOX.xml +42 -0
  143. data/misc/BPA.xml +32 -0
  144. data/misc/BPP.xml +41 -0
  145. data/misc/BPR.xml +48 -0
  146. data/misc/BPT.xml +37 -0
  147. data/misc/BQR.xml +35 -0
  148. data/misc/BQT.xml +38 -0
  149. data/misc/BR.xml +38 -0
  150. data/misc/BRA.xml +34 -0
  151. data/misc/BRC.xml +32 -0
  152. data/misc/BRR.xml +33 -0
  153. data/misc/BSC.xml +31 -0
  154. data/misc/BSD.xml +36 -0
  155. data/misc/BSF.xml +30 -0
  156. data/misc/BSI.xml +36 -0
  157. data/misc/BSN.xml +34 -0
  158. data/misc/BSR.xml +39 -0
  159. data/misc/BSS.xml +38 -0
  160. data/misc/BT1.xml +38 -0
  161. data/misc/BTA.xml +31 -0
  162. data/misc/BTC.xml +39 -0
  163. data/misc/BTI.xml +41 -0
  164. data/misc/BTP.xml +37 -0
  165. data/misc/BTR.xml +35 -0
  166. data/misc/BTS.xml +42 -0
  167. data/misc/BUY.xml +32 -0
  168. data/misc/BVA.xml +52 -0
  169. data/misc/BVB.xml +34 -0
  170. data/misc/BVP.xml +38 -0
  171. data/misc/BVS.xml +39 -0
  172. data/misc/BW.xml +30 -0
  173. data/misc/BX.xml +41 -0
  174. data/misc/C001.xml +43 -0
  175. data/misc/C002.xml +33 -0
  176. data/misc/C003.xml +35 -0
  177. data/misc/C004.xml +32 -0
  178. data/misc/C005.xml +33 -0
  179. data/misc/C006.xml +33 -0
  180. data/misc/C007.xml +38 -0
  181. data/misc/C022.xml +37 -0
  182. data/misc/C023.xml +31 -0
  183. data/misc/C024.xml +33 -0
  184. data/misc/C028.xml +48 -0
  185. data/misc/C030.xml +31 -0
  186. data/misc/C033.xml +30 -0
  187. data/misc/C034.xml +30 -0
  188. data/misc/C035.xml +31 -0
  189. data/misc/C036.xml +33 -0
  190. data/misc/C037.xml +30 -0
  191. data/misc/C040.xml +34 -0
  192. data/misc/C042.xml +30 -0
  193. data/misc/C043.xml +32 -0
  194. data/misc/C045.xml +33 -0
  195. data/misc/C046.xml +33 -0
  196. data/misc/C047.xml +33 -0
  197. data/misc/C048.xml +32 -0
  198. data/misc/C050.xml +40 -0
  199. data/misc/C052.xml +32 -0
  200. data/misc/C053.xml +33 -0
  201. data/misc/C055.xml +36 -0
  202. data/misc/C056.xml +31 -0
  203. data/misc/C057.xml +29 -0
  204. data/misc/C2.xml +34 -0
  205. data/misc/C3.xml +31 -0
  206. data/misc/C4.xml +29 -0
  207. data/misc/C8.xml +31 -0
  208. data/misc/C8C.xml +30 -0
  209. data/misc/CA1.xml +29 -0
  210. data/misc/CAD.xml +36 -0
  211. data/misc/CAI.xml +34 -0
  212. data/misc/CAL.xml +43 -0
  213. data/misc/CAS.xml +46 -0
  214. data/misc/CAT.xml +34 -0
  215. data/misc/CB1.xml +29 -0
  216. data/misc/CBS.xml +30 -0
  217. data/misc/CCI.xml +37 -0
  218. data/misc/CD.xml +38 -0
  219. data/misc/CD1.xml +58 -0
  220. data/misc/CD2.xml +35 -0
  221. data/misc/CD3.xml +41 -0
  222. data/misc/CDA.xml +49 -0
  223. data/misc/CDD.xml +41 -0
  224. data/misc/CDI.xml +38 -0
  225. data/misc/CDS.xml +38 -0
  226. data/misc/CED.xml +32 -0
  227. data/misc/CF1.xml +33 -0
  228. data/misc/CF2.xml +37 -0
  229. data/misc/CFI.xml +34 -0
  230. data/misc/CFT.xml +36 -0
  231. data/misc/CGS.xml +32 -0
  232. data/misc/CHB.xml +36 -0
  233. data/misc/CHR.xml +30 -0
  234. data/misc/CI.xml +41 -0
  235. data/misc/CIC.xml +32 -0
  236. data/misc/CID.xml +34 -0
  237. data/misc/CIV.xml +45 -0
  238. data/misc/CL1.xml +31 -0
  239. data/misc/CLD.xml +32 -0
  240. data/misc/CLI.xml +33 -0
  241. data/misc/CLM.xml +47 -0
  242. data/misc/CLP.xml +41 -0
  243. data/misc/CLR.xml +31 -0
  244. data/misc/CM.xml +44 -0
  245. data/misc/CMA.xml +38 -0
  246. data/misc/CMC.xml +29 -0
  247. data/misc/CN1.xml +33 -0
  248. data/misc/COB.xml +31 -0
  249. data/misc/COM.xml +30 -0
  250. data/misc/CON_.xml +30 -0
  251. data/misc/CPR.xml +32 -0
  252. data/misc/CQ.xml +37 -0
  253. data/misc/CR1.xml +37 -0
  254. data/misc/CR2.xml +39 -0
  255. data/misc/CR3.xml +32 -0
  256. data/misc/CR4.xml +56 -0
  257. data/misc/CR5.xml +45 -0
  258. data/misc/CR6.xml +48 -0
  259. data/misc/CR7.xml +30 -0
  260. data/misc/CR8.xml +36 -0
  261. data/misc/CRC.xml +34 -0
  262. data/misc/CRD.xml +31 -0
  263. data/misc/CRI.xml +37 -0
  264. data/misc/CRO.xml +33 -0
  265. data/misc/CRS.xml +47 -0
  266. data/misc/CRT.xml +37 -0
  267. data/misc/CRV.xml +34 -0
  268. data/misc/CS.xml +45 -0
  269. data/misc/CSB.xml +29 -0
  270. data/misc/CSC.xml +36 -0
  271. data/misc/CSD.xml +36 -0
  272. data/misc/CSE.xml +39 -0
  273. data/misc/CSF.xml +30 -0
  274. data/misc/CSH.xml +37 -0
  275. data/misc/CSI.xml +31 -0
  276. data/misc/CSM.xml +30 -0
  277. data/misc/CSS.xml +34 -0
  278. data/misc/CST.xml +31 -0
  279. data/misc/CSU.xml +37 -0
  280. data/misc/CT.xml +30 -0
  281. data/misc/CTB.xml +34 -0
  282. data/misc/CTC.xml +37 -0
  283. data/misc/CTP.xml +38 -0
  284. data/misc/CTT.xml +34 -0
  285. data/misc/CUR.xml +48 -0
  286. data/misc/CV.xml +41 -0
  287. data/misc/CYC.xml +33 -0
  288. data/misc/D9.xml +39 -0
  289. data/misc/DAD.xml +42 -0
  290. data/misc/DAI.xml +30 -0
  291. data/misc/DAM.xml +43 -0
  292. data/misc/DB.xml +33 -0
  293. data/misc/DD.xml +37 -0
  294. data/misc/DDI.xml +28 -0
  295. data/misc/DED.xml +36 -0
  296. data/misc/DEF.xml +33 -0
  297. data/misc/DEG.xml +32 -0
  298. data/misc/DEL.xml +32 -0
  299. data/misc/DEP.xml +35 -0
  300. data/misc/DEX.xml +33 -0
  301. data/misc/DFI.xml +31 -0
  302. data/misc/DH.xml +30 -0
  303. data/misc/DIS.xml +33 -0
  304. data/misc/DK.xml +37 -0
  305. data/misc/DL.xml +38 -0
  306. data/misc/DLV.xml +32 -0
  307. data/misc/DM.xml +48 -0
  308. data/misc/DMA.xml +36 -0
  309. data/misc/DMG.xml +38 -0
  310. data/misc/DMI.xml +39 -0
  311. data/misc/DN.xml +31 -0
  312. data/misc/DN1.xml +31 -0
  313. data/misc/DN2.xml +32 -0
  314. data/misc/DOS.xml +34 -0
  315. data/misc/DP.xml +44 -0
  316. data/misc/DPN.xml +31 -0
  317. data/misc/DR.xml +33 -0
  318. data/misc/DRT.xml +33 -0
  319. data/misc/DSB.xml +35 -0
  320. data/misc/DTM.xml +33 -0
  321. data/misc/DTP.xml +30 -0
  322. data/misc/DVI.xml +41 -0
  323. data/misc/E01.xml +31 -0
  324. data/misc/E03.xml +34 -0
  325. data/misc/E1.xml +30 -0
  326. data/misc/E10.xml +32 -0
  327. data/misc/E13.xml +37 -0
  328. data/misc/E20.xml +31 -0
  329. data/misc/E22.xml +39 -0
  330. data/misc/E24.xml +34 -0
  331. data/misc/E30.xml +36 -0
  332. data/misc/E34.xml +31 -0
  333. data/misc/E4.xml +31 -0
  334. data/misc/E40.xml +31 -0
  335. data/misc/E41.xml +31 -0
  336. data/misc/E5.xml +31 -0
  337. data/misc/E6.xml +36 -0
  338. data/misc/E8.xml +29 -0
  339. data/misc/EA.xml +30 -0
  340. data/misc/EB.xml +40 -0
  341. data/misc/EC.xml +33 -0
  342. data/misc/ED.xml +35 -0
  343. data/misc/EDF.xml +38 -0
  344. data/misc/EFI.xml +43 -0
  345. data/misc/EI.xml +33 -0
  346. data/misc/EIA.xml +33 -0
  347. data/misc/ELV.xml +33 -0
  348. data/misc/EM.xml +34 -0
  349. data/misc/EMP.xml +37 -0
  350. data/misc/EMS.xml +42 -0
  351. data/misc/EMT.xml +35 -0
  352. data/misc/ENE.xml +32 -0
  353. data/misc/ENM.xml +35 -0
  354. data/misc/ENR.xml +47 -0
  355. data/misc/ENT.xml +36 -0
  356. data/misc/EQ.xml +31 -0
  357. data/misc/ER.xml +38 -0
  358. data/misc/ERI.xml +36 -0
  359. data/misc/ERP.xml +32 -0
  360. data/misc/ES.xml +33 -0
  361. data/misc/ESI.xml +36 -0
  362. data/misc/ETD.xml +32 -0
  363. data/misc/EXI.xml +35 -0
  364. data/misc/F01.xml +36 -0
  365. data/misc/F02.xml +36 -0
  366. data/misc/F04.xml +37 -0
  367. data/misc/F05.xml +30 -0
  368. data/misc/F07.xml +49 -0
  369. data/misc/F09.xml +39 -0
  370. data/misc/F10.xml +31 -0
  371. data/misc/F11.xml +37 -0
  372. data/misc/F12.xml +35 -0
  373. data/misc/F13.xml +33 -0
  374. data/misc/F14.xml +29 -0
  375. data/misc/F6X.xml +35 -0
  376. data/misc/F9.xml +39 -0
  377. data/misc/FA1.xml +30 -0
  378. data/misc/FA2.xml +29 -0
  379. data/misc/FAA.xml +42 -0
  380. data/misc/FAC.xml +33 -0
  381. data/misc/FBB.xml +34 -0
  382. data/misc/FC.xml +32 -0
  383. data/misc/FCL.xml +32 -0
  384. data/misc/FDA.xml +36 -0
  385. data/misc/FGS.xml +30 -0
  386. data/misc/FH.xml +31 -0
  387. data/misc/FIR.xml +39 -0
  388. data/misc/FIS.xml +31 -0
  389. data/misc/FK.xml +41 -0
  390. data/misc/FNA.xml +33 -0
  391. data/misc/FOB.xml +36 -0
  392. data/misc/FOS.xml +34 -0
  393. data/misc/FPT.xml +29 -0
  394. data/misc/FRM.xml +32 -0
  395. data/misc/FSA.xml +36 -0
  396. data/misc/FST.xml +40 -0
  397. data/misc/FTH.xml +31 -0
  398. data/misc/G01.xml +35 -0
  399. data/misc/G05.xml +35 -0
  400. data/misc/G07.xml +33 -0
  401. data/misc/G08.xml +31 -0
  402. data/misc/G1.xml +30 -0
  403. data/misc/G11.xml +37 -0
  404. data/misc/G12.xml +34 -0
  405. data/misc/G13.xml +33 -0
  406. data/misc/G14.xml +29 -0
  407. data/misc/G15.xml +31 -0
  408. data/misc/G17.xml +41 -0
  409. data/misc/G18.xml +31 -0
  410. data/misc/G19.xml +36 -0
  411. data/misc/G2.xml +29 -0
  412. data/misc/G20.xml +36 -0
  413. data/misc/G21.xml +37 -0
  414. data/misc/G22.xml +32 -0
  415. data/misc/G23.xml +43 -0
  416. data/misc/G24.xml +28 -0
  417. data/misc/G25.xml +30 -0
  418. data/misc/G26.xml +33 -0
  419. data/misc/G27.xml +33 -0
  420. data/misc/G28.xml +33 -0
  421. data/misc/G29.xml +30 -0
  422. data/misc/G3.xml +33 -0
  423. data/misc/G30.xml +29 -0
  424. data/misc/G31.xml +38 -0
  425. data/misc/G32.xml +32 -0
  426. data/misc/G33.xml +28 -0
  427. data/misc/G35.xml +30 -0
  428. data/misc/G36.xml +31 -0
  429. data/misc/G37.xml +30 -0
  430. data/misc/G38.xml +30 -0
  431. data/misc/G39.xml +56 -0
  432. data/misc/G4.xml +33 -0
  433. data/misc/G40.xml +36 -0
  434. data/misc/G42.xml +30 -0
  435. data/misc/G43.xml +31 -0
  436. data/misc/G45.xml +44 -0
  437. data/misc/G46.xml +39 -0
  438. data/misc/G47.xml +29 -0
  439. data/misc/G48.xml +36 -0
  440. data/misc/G49.xml +30 -0
  441. data/misc/G5.xml +44 -0
  442. data/misc/G50.xml +34 -0
  443. data/misc/G51.xml +35 -0
  444. data/misc/G53.xml +28 -0
  445. data/misc/G54.xml +33 -0
  446. data/misc/G55.xml +60 -0
  447. data/misc/G61.xml +32 -0
  448. data/misc/G62.xml +32 -0
  449. data/misc/G63.xml +31 -0
  450. data/misc/G66.xml +34 -0
  451. data/misc/G68.xml +42 -0
  452. data/misc/G69.xml +28 -0
  453. data/misc/G70.xml +37 -0
  454. data/misc/G72.xml +38 -0
  455. data/misc/G73.xml +28 -0
  456. data/misc/G76.xml +37 -0
  457. data/misc/G82.xml +39 -0
  458. data/misc/G83.xml +40 -0
  459. data/misc/G84.xml +30 -0
  460. data/misc/G85.xml +28 -0
  461. data/misc/G86.xml +29 -0
  462. data/misc/G87.xml +33 -0
  463. data/misc/G88.xml +32 -0
  464. data/misc/G89.xml +37 -0
  465. data/misc/G91.xml +29 -0
  466. data/misc/G92.xml +30 -0
  467. data/misc/G93.xml +35 -0
  468. data/misc/G94.xml +29 -0
  469. data/misc/G95.xml +34 -0
  470. data/misc/GA.xml +45 -0
  471. data/misc/GDP.xml +34 -0
  472. data/misc/GE.xml +29 -0
  473. data/misc/GF.xml +36 -0
  474. data/misc/GH.xml +31 -0
  475. data/misc/GID.xml +30 -0
  476. data/misc/GR.xml +49 -0
  477. data/misc/GR2.xml +39 -0
  478. data/misc/GR4.xml +38 -0
  479. data/misc/GR5.xml +32 -0
  480. data/misc/GRI.xml +38 -0
  481. data/misc/GRP.xml +31 -0
  482. data/misc/GS.xml +35 -0
  483. data/misc/GY.xml +42 -0
  484. data/misc/H1.xml +36 -0
  485. data/misc/H2.xml +29 -0
  486. data/misc/H3.xml +32 -0
  487. data/misc/H5.xml +30 -0
  488. data/misc/H6.xml +34 -0
  489. data/misc/HAD.xml +33 -0
  490. data/misc/HC.xml +34 -0
  491. data/misc/HCP.xml +42 -0
  492. data/misc/HCR.xml +31 -0
  493. data/misc/HD.xml +38 -0
  494. data/misc/HI.xml +39 -0
  495. data/misc/HL.xml +31 -0
  496. data/misc/HLH.xml +34 -0
  497. data/misc/HPL.xml +33 -0
  498. data/misc/HS.xml +32 -0
  499. data/misc/HSD.xml +35 -0
  500. data/misc/IC.xml +36 -0
  501. data/misc/ICH.xml +39 -0
  502. data/misc/ICM.xml +33 -0
  503. data/misc/ID.xml +30 -0
  504. data/misc/ID1.xml +61 -0
  505. data/misc/ID2.xml +35 -0
  506. data/misc/ID3.xml +48 -0
  507. data/misc/ID4.xml +36 -0
  508. data/misc/IDB.xml +32 -0
  509. data/misc/IDC.xml +31 -0
  510. data/misc/IEA.xml +29 -0
  511. data/misc/IGI.xml +33 -0
  512. data/misc/III.xml +36 -0
  513. data/misc/IIS.xml +41 -0
  514. data/misc/IM.xml +30 -0
  515. data/misc/IMA.xml +31 -0
  516. data/misc/IMM.xml +33 -0
  517. data/misc/IMP.xml +29 -0
  518. data/misc/IN1.xml +34 -0
  519. data/misc/IN2.xml +30 -0
  520. data/misc/INC.xml +32 -0
  521. data/misc/IND.xml +39 -0
  522. data/misc/INI.xml +30 -0
  523. data/misc/INQ.xml +29 -0
  524. data/misc/INR.xml +30 -0
  525. data/misc/INS.xml +44 -0
  526. data/misc/INT.xml +33 -0
  527. data/misc/INV.xml +34 -0
  528. data/misc/INX.xml +29 -0
  529. data/misc/IRA.xml +30 -0
  530. data/misc/IRP.xml +34 -0
  531. data/misc/IS1.xml +34 -0
  532. data/misc/IS2.xml +44 -0
  533. data/misc/ISA.xml +43 -0
  534. data/misc/ISC.xml +37 -0
  535. data/misc/ISD.xml +31 -0
  536. data/misc/ISI.xml +33 -0
  537. data/misc/ISR.xml +30 -0
  538. data/misc/ISS.xml +35 -0
  539. data/misc/IT1.xml +52 -0
  540. data/misc/IT3.xml +32 -0
  541. data/misc/IT8.xml +54 -0
  542. data/misc/ITA.xml +44 -0
  543. data/misc/ITC.xml +39 -0
  544. data/misc/ITD.xml +42 -0
  545. data/misc/IV1.xml +32 -0
  546. data/misc/JCT.xml +36 -0
  547. data/misc/JID.xml +33 -0
  548. data/misc/JIL.xml +34 -0
  549. data/misc/JIT.xml +29 -0
  550. data/misc/JL.xml +31 -0
  551. data/misc/JS.xml +31 -0
  552. data/misc/K1.xml +29 -0
  553. data/misc/K2.xml +28 -0
  554. data/misc/K3.xml +30 -0
  555. data/misc/L0.xml +42 -0
  556. data/misc/L1.xml +49 -0
  557. data/misc/L10.xml +30 -0
  558. data/misc/L11.xml +32 -0
  559. data/misc/L12.xml +29 -0
  560. data/misc/L13.xml +43 -0
  561. data/misc/L1A.xml +29 -0
  562. data/misc/L3.xml +42 -0
  563. data/misc/L4.xml +33 -0
  564. data/misc/L5.xml +37 -0
  565. data/misc/L7.xml +43 -0
  566. data/misc/L8.xml +38 -0
  567. data/misc/L9.xml +29 -0
  568. data/misc/LAD.xml +41 -0
  569. data/misc/LC.xml +34 -0
  570. data/misc/LC1.xml +39 -0
  571. data/misc/LCD.xml +33 -0
  572. data/misc/LCT.xml +39 -0
  573. data/misc/LDT.xml +31 -0
  574. data/misc/LE.xml +28 -0
  575. data/misc/LEP.xml +31 -0
  576. data/misc/LEQ.xml +36 -0
  577. data/misc/LET.xml +31 -0
  578. data/misc/LFG.xml +33 -0
  579. data/misc/LFH.xml +34 -0
  580. data/misc/LFI.xml +35 -0
  581. data/misc/LH.xml +33 -0
  582. data/misc/LH1.xml +38 -0
  583. data/misc/LH2.xml +40 -0
  584. data/misc/LH3.xml +31 -0
  585. data/misc/LH4.xml +39 -0
  586. data/misc/LH6.xml +31 -0
  587. data/misc/LHE.xml +32 -0
  588. data/misc/LHR.xml +30 -0
  589. data/misc/LHT.xml +30 -0
  590. data/misc/LIC.xml +35 -0
  591. data/misc/LID.xml +36 -0
  592. data/misc/LIE.xml +31 -0
  593. data/misc/LIN.xml +58 -0
  594. data/misc/LM.xml +29 -0
  595. data/misc/LN.xml +38 -0
  596. data/misc/LN1.xml +50 -0
  597. data/misc/LN2.xml +39 -0
  598. data/misc/LOC.xml +51 -0
  599. data/misc/LOD.xml +33 -0
  600. data/misc/LP.xml +34 -0
  601. data/misc/LQ.xml +29 -0
  602. data/misc/LRQ.xml +48 -0
  603. data/misc/LS.xml +28 -0
  604. data/misc/LS1.xml +34 -0
  605. data/misc/LT.xml +31 -0
  606. data/misc/LTE.xml +31 -0
  607. data/misc/LTR.xml +39 -0
  608. data/misc/LUC.xml +31 -0
  609. data/misc/LUI.xml +32 -0
  610. data/misc/LV.xml +29 -0
  611. data/misc/LX.xml +28 -0
  612. data/misc/M0.xml +31 -0
  613. data/misc/M1.xml +39 -0
  614. data/misc/M10.xml +41 -0
  615. data/misc/M11.xml +46 -0
  616. data/misc/M12.xml +38 -0
  617. data/misc/M13.xml +39 -0
  618. data/misc/M14.xml +38 -0
  619. data/misc/M15.xml +43 -0
  620. data/misc/M2.xml +35 -0
  621. data/misc/M20.xml +36 -0
  622. data/misc/M21.xml +42 -0
  623. data/misc/M3.xml +31 -0
  624. data/misc/M7.xml +32 -0
  625. data/misc/M7A.xml +33 -0
  626. data/misc/MAN.xml +33 -0
  627. data/misc/MBL.xml +32 -0
  628. data/misc/MC.xml +32 -0
  629. data/misc/MCD.xml +31 -0
  630. data/misc/MCT.xml +35 -0
  631. data/misc/MEA.xml +39 -0
  632. data/misc/MI.xml +32 -0
  633. data/misc/MI1.xml +30 -0
  634. data/misc/MIA.xml +51 -0
  635. data/misc/MIC.xml +45 -0
  636. data/misc/MIN.xml +43 -0
  637. data/misc/MIR.xml +39 -0
  638. data/misc/MIS.xml +32 -0
  639. data/misc/MIT.xml +31 -0
  640. data/misc/MKS.xml +30 -0
  641. data/misc/MLA.xml +35 -0
  642. data/misc/MLS.xml +31 -0
  643. data/misc/MNC.xml +44 -0
  644. data/misc/MOA.xml +36 -0
  645. data/misc/MPI.xml +34 -0
  646. data/misc/MPP.xml +35 -0
  647. data/misc/MRC.xml +36 -0
  648. data/misc/MS.xml +33 -0
  649. data/misc/MS1.xml +35 -0
  650. data/misc/MS2.xml +31 -0
  651. data/misc/MS3.xml +32 -0
  652. data/misc/MS4.xml +31 -0
  653. data/misc/MS5.xml +32 -0
  654. data/misc/MS6.xml +31 -0
  655. data/misc/MSG.xml +30 -0
  656. data/misc/MSI.xml +29 -0
  657. data/misc/MSS.xml +34 -0
  658. data/misc/MTX.xml +33 -0
  659. data/misc/N1.xml +33 -0
  660. data/misc/N10.xml +40 -0
  661. data/misc/N11.xml +30 -0
  662. data/misc/N12.xml +29 -0
  663. data/misc/N2.xml +29 -0
  664. data/misc/N3.xml +29 -0
  665. data/misc/N4.xml +34 -0
  666. data/misc/N5.xml +36 -0
  667. data/misc/N7.xml +51 -0
  668. data/misc/N7A.xml +36 -0
  669. data/misc/N7B.xml +33 -0
  670. data/misc/N8.xml +38 -0
  671. data/misc/N8A.xml +37 -0
  672. data/misc/N9.xml +34 -0
  673. data/misc/NA.xml +39 -0
  674. data/misc/NCA.xml +32 -0
  675. data/misc/NCD.xml +34 -0
  676. data/misc/NM1.xml +38 -0
  677. data/misc/NTE.xml +29 -0
  678. data/misc/NX1.xml +32 -0
  679. data/misc/NX2.xml +30 -0
  680. data/misc/OBI.xml +33 -0
  681. data/misc/OD.xml +31 -0
  682. data/misc/OI.xml +33 -0
  683. data/misc/OID.xml +38 -0
  684. data/misc/OOI.xml +31 -0
  685. data/misc/OPS.xml +33 -0
  686. data/misc/OPX.xml +32 -0
  687. data/misc/OQS.xml +29 -0
  688. data/misc/ORI.xml +28 -0
  689. data/misc/OTI.xml +44 -0
  690. data/misc/P1.xml +34 -0
  691. data/misc/P2.xml +30 -0
  692. data/misc/P4.xml +32 -0
  693. data/misc/P5.xml +30 -0
  694. data/misc/PAD.xml +32 -0
  695. data/misc/PAI.xml +32 -0
  696. data/misc/PAL.xml +44 -0
  697. data/misc/PAM.xml +42 -0
  698. data/misc/PAS.xml +37 -0
  699. data/misc/PAT.xml +36 -0
  700. data/misc/PBI.xml +35 -0
  701. data/misc/PCL.xml +34 -0
  702. data/misc/PCR.xml +29 -0
  703. data/misc/PCS.xml +38 -0
  704. data/misc/PCT.xml +29 -0
  705. data/misc/PD.xml +37 -0
  706. data/misc/PDD.xml +32 -0
  707. data/misc/PDE.xml +31 -0
  708. data/misc/PDI.xml +31 -0
  709. data/misc/PDL.xml +39 -0
  710. data/misc/PDP.xml +30 -0
  711. data/misc/PDR.xml +31 -0
  712. data/misc/PDS.xml +30 -0
  713. data/misc/PEN.xml +36 -0
  714. data/misc/PER.xml +36 -0
  715. data/misc/PEX.xml +35 -0
  716. data/misc/PI.xml +42 -0
  717. data/misc/PID.xml +36 -0
  718. data/misc/PIN.xml +34 -0
  719. data/misc/PKD.xml +32 -0
  720. data/misc/PKG.xml +33 -0
  721. data/misc/PKL.xml +40 -0
  722. data/misc/PL.xml +33 -0
  723. data/misc/PLA.xml +32 -0
  724. data/misc/PLB.xml +41 -0
  725. data/misc/PLC.xml +29 -0
  726. data/misc/PLD.xml +31 -0
  727. data/misc/PLI.xml +36 -0
  728. data/misc/PM.xml +33 -0
  729. data/misc/PO1.xml +52 -0
  730. data/misc/PO3.xml +35 -0
  731. data/misc/PO4.xml +45 -0
  732. data/misc/POC.xml +54 -0
  733. data/misc/POD.xml +30 -0
  734. data/misc/PPA.xml +33 -0
  735. data/misc/PPD.xml +40 -0
  736. data/misc/PPL.xml +32 -0
  737. data/misc/PPY.xml +35 -0
  738. data/misc/PR.xml +36 -0
  739. data/misc/PR1.xml +40 -0
  740. data/misc/PR2.xml +36 -0
  741. data/misc/PRC.xml +39 -0
  742. data/misc/PRD.xml +38 -0
  743. data/misc/PRF.xml +34 -0
  744. data/misc/PRI.xml +41 -0
  745. data/misc/PRJ.xml +31 -0
  746. data/misc/PRM.xml +40 -0
  747. data/misc/PRR.xml +38 -0
  748. data/misc/PRS.xml +29 -0
  749. data/misc/PRT.xml +31 -0
  750. data/misc/PRV.xml +33 -0
  751. data/misc/PS.xml +41 -0
  752. data/misc/PS1.xml +30 -0
  753. data/misc/PSA.xml +32 -0
  754. data/misc/PSC.xml +52 -0
  755. data/misc/PSD.xml +36 -0
  756. data/misc/PT.xml +38 -0
  757. data/misc/PTD.xml +33 -0
  758. data/misc/PTF.xml +34 -0
  759. data/misc/PTS.xml +38 -0
  760. data/misc/PUN.xml +32 -0
  761. data/misc/PWK.xml +36 -0
  762. data/misc/PYD.xml +32 -0
  763. data/misc/PYM.xml +34 -0
  764. data/misc/PYT.xml +35 -0
  765. data/misc/Q2.xml +43 -0
  766. data/misc/Q3.xml +29 -0
  767. data/misc/Q5.xml +45 -0
  768. data/misc/Q7.xml +30 -0
  769. data/misc/Q8.xml +37 -0
  770. data/misc/QTY.xml +31 -0
  771. data/misc/R1.xml +40 -0
  772. data/misc/R11.xml +34 -0
  773. data/misc/R12.xml +37 -0
  774. data/misc/R13.xml +39 -0
  775. data/misc/R2.xml +40 -0
  776. data/misc/R2A.xml +37 -0
  777. data/misc/R2B.xml +30 -0
  778. data/misc/R2C.xml +31 -0
  779. data/misc/R2D.xml +29 -0
  780. data/misc/R3.xml +39 -0
  781. data/misc/R4.xml +35 -0
  782. data/misc/R9.xml +36 -0
  783. data/misc/RA.xml +37 -0
  784. data/misc/RAB.xml +37 -0
  785. data/misc/RAP.xml +34 -0
  786. data/misc/RB.xml +35 -0
  787. data/misc/RC.xml +36 -0
  788. data/misc/RCD.xml +48 -0
  789. data/misc/RCR.xml +29 -0
  790. data/misc/RD.xml +31 -0
  791. data/misc/RDD.xml +32 -0
  792. data/misc/RDI.xml +32 -0
  793. data/misc/RDM.xml +32 -0
  794. data/misc/RDR.xml +32 -0
  795. data/misc/RDT.xml +33 -0
  796. data/misc/REA.xml +41 -0
  797. data/misc/REC.xml +40 -0
  798. data/misc/RED.xml +33 -0
  799. data/misc/REF.xml +31 -0
  800. data/misc/REL.xml +29 -0
  801. data/misc/REN.xml +34 -0
  802. data/misc/REP.xml +47 -0
  803. data/misc/REQ.xml +29 -0
  804. data/misc/RES.xml +34 -0
  805. data/misc/RET.xml +32 -0
  806. data/misc/RH.xml +30 -0
  807. data/misc/RIC.xml +45 -0
  808. data/misc/RLD.xml +31 -0
  809. data/misc/RLT.xml +39 -0
  810. data/misc/RMR.xml +35 -0
  811. data/misc/RMT.xml +37 -0
  812. data/misc/RO.xml +36 -0
  813. data/misc/RP.xml +36 -0
  814. data/misc/RPA.xml +32 -0
  815. data/misc/RQS.xml +32 -0
  816. data/misc/RRA.xml +29 -0
  817. data/misc/RS.xml +33 -0
  818. data/misc/RSC.xml +31 -0
  819. data/misc/RSD.xml +30 -0
  820. data/misc/RST.xml +29 -0
  821. data/misc/RT.xml +39 -0
  822. data/misc/RT1.xml +35 -0
  823. data/misc/RTE.xml +32 -0
  824. data/misc/RTT.xml +29 -0
  825. data/misc/RU1.xml +36 -0
  826. data/misc/RU2.xml +35 -0
  827. data/misc/RU3.xml +56 -0
  828. data/misc/RYL.xml +31 -0
  829. data/misc/S1.xml +33 -0
  830. data/misc/S2.xml +30 -0
  831. data/misc/S4A.xml +38 -0
  832. data/misc/S5.xml +38 -0
  833. data/misc/S9.xml +35 -0
  834. data/misc/SA.xml +32 -0
  835. data/misc/SAC.xml +43 -0
  836. data/misc/SAD.xml +34 -0
  837. data/misc/SAL.xml +34 -0
  838. data/misc/SB.xml +28 -0
  839. data/misc/SBR.xml +36 -0
  840. data/misc/SBT.xml +30 -0
  841. data/misc/SC.xml +29 -0
  842. data/misc/SCA.xml +34 -0
  843. data/misc/SCD.xml +34 -0
  844. data/misc/SCH.xml +39 -0
  845. data/misc/SCL.xml +37 -0
  846. data/misc/SCM.xml +31 -0
  847. data/misc/SCN.xml +32 -0
  848. data/misc/SCP.xml +31 -0
  849. data/misc/SCR.xml +51 -0
  850. data/misc/SCS.xml +29 -0
  851. data/misc/SCT.xml +38 -0
  852. data/misc/SD1.xml +35 -0
  853. data/misc/SDP.xml +35 -0
  854. data/misc/SDQ.xml +50 -0
  855. data/misc/SE.xml +29 -0
  856. data/misc/SER.xml +38 -0
  857. data/misc/SES.xml +41 -0
  858. data/misc/SFC.xml +29 -0
  859. data/misc/SG.xml +33 -0
  860. data/misc/SHD.xml +41 -0
  861. data/misc/SHI.xml +32 -0
  862. data/misc/SHP.xml +34 -0
  863. data/misc/SHR.xml +29 -0
  864. data/misc/SI.xml +48 -0
  865. data/misc/SID.xml +33 -0
  866. data/misc/SII.xml +34 -0
  867. data/misc/SIN.xml +33 -0
  868. data/misc/SL1.xml +36 -0
  869. data/misc/SLA.xml +35 -0
  870. data/misc/SLI.xml +49 -0
  871. data/misc/SLN.xml +55 -0
  872. data/misc/SMA.xml +32 -0
  873. data/misc/SMB.xml +36 -0
  874. data/misc/SMD.xml +30 -0
  875. data/misc/SMO.xml +34 -0
  876. data/misc/SMR.xml +31 -0
  877. data/misc/SMS.xml +40 -0
  878. data/misc/SN1.xml +35 -0
  879. data/misc/SOI.xml +32 -0
  880. data/misc/SOM.xml +40 -0
  881. data/misc/SP.xml +32 -0
  882. data/misc/SPA.xml +38 -0
  883. data/misc/SPE.xml +31 -0
  884. data/misc/SPI.xml +42 -0
  885. data/misc/SPK.xml +32 -0
  886. data/misc/SPR.xml +36 -0
  887. data/misc/SPS.xml +33 -0
  888. data/misc/SPY.xml +30 -0
  889. data/misc/SR.xml +38 -0
  890. data/misc/SRA.xml +29 -0
  891. data/misc/SRD.xml +47 -0
  892. data/misc/SRE.xml +29 -0
  893. data/misc/SRM.xml +43 -0
  894. data/misc/SRT.xml +40 -0
  895. data/misc/SS.xml +36 -0
  896. data/misc/SSC.xml +35 -0
  897. data/misc/SSD.xml +31 -0
  898. data/misc/SSE.xml +32 -0
  899. data/misc/SSS.xml +36 -0
  900. data/misc/SST.xml +36 -0
  901. data/misc/ST.xml +30 -0
  902. data/misc/STA.xml +35 -0
  903. data/misc/STC.xml +39 -0
  904. data/misc/STP.xml +36 -0
  905. data/misc/STS.xml +32 -0
  906. data/misc/SUM.xml +45 -0
  907. data/misc/SUP.xml +31 -0
  908. data/misc/SV.xml +31 -0
  909. data/misc/SV1.xml +48 -0
  910. data/misc/SV2.xml +37 -0
  911. data/misc/SV3.xml +38 -0
  912. data/misc/SV4.xml +45 -0
  913. data/misc/SV5.xml +34 -0
  914. data/misc/SV6.xml +34 -0
  915. data/misc/SV7.xml +33 -0
  916. data/misc/SVA.xml +30 -0
  917. data/misc/SVC.xml +34 -0
  918. data/misc/SVD.xml +33 -0
  919. data/misc/SW.xml +36 -0
  920. data/misc/T1.xml +36 -0
  921. data/misc/T1002.xml +30 -0
  922. data/misc/T1004.xml +305 -0
  923. data/misc/T1005.xml +107 -0
  924. data/misc/T1006.xml +35 -0
  925. data/misc/T1007.xml +31 -0
  926. data/misc/T1008.xml +58 -0
  927. data/misc/T1009.xml +116 -0
  928. data/misc/T1012.xml +53 -0
  929. data/misc/T1013.xml +113 -0
  930. data/misc/T1015.xml +33 -0
  931. data/misc/T1016.xml +33 -0
  932. data/misc/T1017.xml +82 -0
  933. data/misc/T1019.xml +30 -0
  934. data/misc/T102.xml +32 -0
  935. data/misc/T1020.xml +30 -0
  936. data/misc/T1023.xml +31 -0
  937. data/misc/T1025.xml +30 -0
  938. data/misc/T1026.xml +34 -0
  939. data/misc/T1029.xml +68 -0
  940. data/misc/T103.2.xml +84 -0
  941. data/misc/T1030.xml +41 -0
  942. data/misc/T1031.xml +40 -0
  943. data/misc/T1032.xml +75 -0
  944. data/misc/T1033.xml +36 -0
  945. data/misc/T104.xml +31 -0
  946. data/misc/T1042.xml +32 -0
  947. data/misc/T1044.xml +41 -0
  948. data/misc/T1045.xml +32 -0
  949. data/misc/T1046.xml +34 -0
  950. data/misc/T1047.xml +40 -0
  951. data/misc/T1048.xml +36 -0
  952. data/misc/T1053.xml +29 -0
  953. data/misc/T1054.xml +30 -0
  954. data/misc/T1062.xml +47 -0
  955. data/misc/T1065.xml +43 -0
  956. data/misc/T1066.xml +45 -0
  957. data/misc/T1067.xml +39 -0
  958. data/misc/T1068.xml +34 -0
  959. data/misc/T1069.xml +181 -0
  960. data/misc/T107.xml +64 -0
  961. data/misc/T1070.xml +42 -0
  962. data/misc/T1071.xml +104 -0
  963. data/misc/T1072.xml +31 -0
  964. data/misc/T1073.xml +31 -0
  965. data/misc/T1074.xml +101 -0
  966. data/misc/T1075.xml +40 -0
  967. data/misc/T1076.xml +31 -0
  968. data/misc/T1077.xml +31 -0
  969. data/misc/T1078.xml +43 -0
  970. data/misc/T1079.xml +31 -0
  971. data/misc/T108.xml +59 -0
  972. data/misc/T1080.xml +31 -0
  973. data/misc/T1081.xml +72 -0
  974. data/misc/T1082.xml +48 -0
  975. data/misc/T1083.xml +76 -0
  976. data/misc/T1084.xml +29 -0
  977. data/misc/T1085.xml +58 -0
  978. data/misc/T1086.xml +34 -0
  979. data/misc/T1089.xml +98 -0
  980. data/misc/T1090.xml +30 -0
  981. data/misc/T1091.xml +39 -0
  982. data/misc/T1093.xml +45 -0
  983. data/misc/T1097.xml +31 -0
  984. data/misc/T1098.xml +30 -0
  985. data/misc/T1099.xml +31 -0
  986. data/misc/T11.xml +47 -0
  987. data/misc/T110.xml +47 -0
  988. data/misc/T1100.xml +36 -0
  989. data/misc/T1101.xml +34 -0
  990. data/misc/T1102.xml +30 -0
  991. data/misc/T1103.xml +35 -0
  992. data/misc/T1104.xml +49 -0
  993. data/misc/T1105.xml +32 -0
  994. data/misc/T1106.xml +101 -0
  995. data/misc/T1107.xml +43 -0
  996. data/misc/T1108.xml +39 -0
  997. data/misc/T1109.xml +50 -0
  998. data/misc/T1113.xml +43 -0
  999. data/misc/T1122.xml +34 -0
  1000. data/misc/T1123.xml +46 -0
  1001. data/misc/T1127.xml +60 -0
  1002. data/misc/T1129.xml +184 -0
  1003. data/misc/T1130.xml +29 -0
  1004. data/misc/T1131.xml +120 -0
  1005. data/misc/T1132.xml +68 -0
  1006. data/misc/T1133.xml +112 -0
  1007. data/misc/T1134.xml +36 -0
  1008. data/misc/T1135.xml +40 -0
  1009. data/misc/T1136.xml +447 -0
  1010. data/misc/T1138.xml +33 -0
  1011. data/misc/T1139.xml +42 -0
  1012. data/misc/T1140.xml +32 -0
  1013. data/misc/T1141.xml +43 -0
  1014. data/misc/T1142.xml +65 -0
  1015. data/misc/T1143.xml +36 -0
  1016. data/misc/T1146.xml +33 -0
  1017. data/misc/T1147.xml +47 -0
  1018. data/misc/T115.xml +60 -0
  1019. data/misc/T1150.xml +30 -0
  1020. data/misc/T1152.xml +30 -0
  1021. data/misc/T1153.xml +41 -0
  1022. data/misc/T1154.xml +31 -0
  1023. data/misc/T1156.xml +38 -0
  1024. data/misc/T1157.xml +31 -0
  1025. data/misc/T1159.xml +56 -0
  1026. data/misc/T1160.xml +41 -0
  1027. data/misc/T1161.xml +57 -0
  1028. data/misc/T1162.xml +35 -0
  1029. data/misc/T1163.xml +35 -0
  1030. data/misc/T1164.xml +36 -0
  1031. data/misc/T1165.xml +30 -0
  1032. data/misc/T1166.xml +77 -0
  1033. data/misc/T1168.xml +43 -0
  1034. data/misc/T1172.xml +109 -0
  1035. data/misc/T1173.xml +46 -0
  1036. data/misc/T1176.xml +97 -0
  1037. data/misc/T1179.xml +29 -0
  1038. data/misc/T1181.xml +46 -0
  1039. data/misc/T1185.xml +48 -0
  1040. data/misc/T1186.xml +144 -0
  1041. data/misc/T1187.xml +60 -0
  1042. data/misc/T1188.xml +144 -0
  1043. data/misc/T1189.xml +33 -0
  1044. data/misc/T1193.xml +61 -0
  1045. data/misc/T1196.xml +189 -0
  1046. data/misc/T1197.xml +46 -0
  1047. data/misc/T1198.xml +30 -0
  1048. data/misc/T1199.xml +32 -0
  1049. data/misc/T120.xml +31 -0
  1050. data/misc/T1201.xml +37 -0
  1051. data/misc/T1202.xml +32 -0
  1052. data/misc/T1203.xml +143 -0
  1053. data/misc/T1205.xml +79 -0
  1054. data/misc/T1207.xml +45 -0
  1055. data/misc/T1209.xml +34 -0
  1056. data/misc/T121.xml +52 -0
  1057. data/misc/T1211.xml +35 -0
  1058. data/misc/T1212.xml +32 -0
  1059. data/misc/T1213.xml +40 -0
  1060. data/misc/T1215.xml +32 -0
  1061. data/misc/T1216.xml +33 -0
  1062. data/misc/T1218.xml +32 -0
  1063. data/misc/T1219.xml +38 -0
  1064. data/misc/T122.xml +204 -0
  1065. data/misc/T1220.xml +30 -0
  1066. data/misc/T1221.xml +53 -0
  1067. data/misc/T1222.xml +38 -0
  1068. data/misc/T1223.xml +35 -0
  1069. data/misc/T1224.xml +62 -0
  1070. data/misc/T1225.xml +39 -0
  1071. data/misc/T1226.xml +43 -0
  1072. data/misc/T1227.xml +34 -0
  1073. data/misc/T1229.xml +32 -0
  1074. data/misc/T1230.xml +87 -0
  1075. data/misc/T1231.xml +38 -0
  1076. data/misc/T1232.xml +50 -0
  1077. data/misc/T1233.xml +49 -0
  1078. data/misc/T1234.xml +31 -0
  1079. data/misc/T1236.xml +31 -0
  1080. data/misc/T1237.xml +32 -0
  1081. data/misc/T1238.xml +30 -0
  1082. data/misc/T1239.xml +36 -0
  1083. data/misc/T1240.xml +57 -0
  1084. data/misc/T1241.xml +36 -0
  1085. data/misc/T1246.xml +30 -0
  1086. data/misc/T125.xml +47 -0
  1087. data/misc/T1250.xml +68 -0
  1088. data/misc/T1254.xml +41 -0
  1089. data/misc/T1257.xml +52 -0
  1090. data/misc/T1262.xml +98 -0
  1091. data/misc/T1264.xml +59 -0
  1092. data/misc/T1265.xml +34 -0
  1093. data/misc/T1266.xml +43 -0
  1094. data/misc/T1267.xml +33 -0
  1095. data/misc/T1268.xml +30 -0
  1096. data/misc/T1270.xml +917 -0
  1097. data/misc/T1273.xml +30 -0
  1098. data/misc/T1275.xml +31 -0
  1099. data/misc/T1277.xml +31 -0
  1100. data/misc/T1278.xml +29 -0
  1101. data/misc/T128.xml +1712 -0
  1102. data/misc/T1280.xml +43 -0
  1103. data/misc/T1292.xml +41 -0
  1104. data/misc/T1293.xml +56 -0
  1105. data/misc/T1294.xml +41 -0
  1106. data/misc/T1295.xml +55 -0
  1107. data/misc/T1297.xml +33 -0
  1108. data/misc/T1300.xml +1116 -0
  1109. data/misc/T1303.xml +35 -0
  1110. data/misc/T1304.xml +37 -0
  1111. data/misc/T1307.xml +216 -0
  1112. data/misc/T1308.xml +38 -0
  1113. data/misc/T1309.xml +144 -0
  1114. data/misc/T1310.xml +30 -0
  1115. data/misc/T1311.xml +38 -0
  1116. data/misc/T1312.xml +30 -0
  1117. data/misc/T1316.xml +31 -0
  1118. data/misc/T1317.xml +33 -0
  1119. data/misc/T1319.xml +37 -0
  1120. data/misc/T132.xml +33 -0
  1121. data/misc/T1320.xml +31 -0
  1122. data/misc/T1321.xml +1327 -0
  1123. data/misc/T1322.xml +41 -0
  1124. data/misc/T1327.xml +31 -0
  1125. data/misc/T1329.xml +37 -0
  1126. data/misc/T133.xml +50 -0
  1127. data/misc/T1330.xml +100 -0
  1128. data/misc/T1332.xml +29 -0
  1129. data/misc/T1333.xml +33 -0
  1130. data/misc/T1335.xml +31 -0
  1131. data/misc/T1336.xml +74 -0
  1132. data/misc/T1337.xml +35 -0
  1133. data/misc/T1338.xml +44 -0
  1134. data/misc/T1340.xml +30 -0
  1135. data/misc/T1342.xml +34 -0
  1136. data/misc/T1343.xml +74 -0
  1137. data/misc/T1344.xml +30 -0
  1138. data/misc/T1345.xml +36 -0
  1139. data/misc/T1346.xml +30 -0
  1140. data/misc/T1347.xml +31 -0
  1141. data/misc/T1348.xml +33 -0
  1142. data/misc/T1349.xml +34 -0
  1143. data/misc/T1350.xml +30 -0
  1144. data/misc/T1351.xml +32 -0
  1145. data/misc/T1355.xml +35 -0
  1146. data/misc/T1356.xml +31 -0
  1147. data/misc/T1357.xml +35 -0
  1148. data/misc/T1358.xml +29 -0
  1149. data/misc/T1359.xml +31 -0
  1150. data/misc/T1360.xml +34 -0
  1151. data/misc/T1361.xml +43 -0
  1152. data/misc/T1362.xml +33 -0
  1153. data/misc/T1363.xml +33 -0
  1154. data/misc/T1364.xml +35 -0
  1155. data/misc/T1365.xml +210 -0
  1156. data/misc/T1366.xml +37 -0
  1157. data/misc/T1367.xml +55 -0
  1158. data/misc/T1368.xml +31 -0
  1159. data/misc/T1369.xml +34 -0
  1160. data/misc/T1370.xml +37 -0
  1161. data/misc/T1373.xml +41 -0
  1162. data/misc/T1376.xml +55 -0
  1163. data/misc/T1378.xml +36 -0
  1164. data/misc/T1379.xml +49 -0
  1165. data/misc/T1382.xml +32 -0
  1166. data/misc/T1383.xml +45 -0
  1167. data/misc/T1384.xml +42 -0
  1168. data/misc/T1387.xml +61 -0
  1169. data/misc/T139.xml +40 -0
  1170. data/misc/T1390.xml +66 -0
  1171. data/misc/T1393.xml +31 -0
  1172. data/misc/T1395.xml +35 -0
  1173. data/misc/T1396.xml +30 -0
  1174. data/misc/T1398.xml +68 -0
  1175. data/misc/T1401.xml +44 -0
  1176. data/misc/T1402.xml +56 -0
  1177. data/misc/T1403.xml +30 -0
  1178. data/misc/T1404.xml +29 -0
  1179. data/misc/T1407.xml +29 -0
  1180. data/misc/T1408.xml +30 -0
  1181. data/misc/T1413.xml +30 -0
  1182. data/misc/T1420.xml +41 -0
  1183. data/misc/T1422.xml +32 -0
  1184. data/misc/T1423.xml +89 -0
  1185. data/misc/T1425.xml +36 -0
  1186. data/misc/T1426.xml +43 -0
  1187. data/misc/T1428.xml +29 -0
  1188. data/misc/T1429.xml +76 -0
  1189. data/misc/T143.xml +341 -0
  1190. data/misc/T1431.xml +33 -0
  1191. data/misc/T1432.xml +51 -0
  1192. data/misc/T1434.xml +34 -0
  1193. data/misc/T1439.xml +37 -0
  1194. data/misc/T146.xml +58 -0
  1195. data/misc/T1465.xml +48 -0
  1196. data/misc/T1466.xml +49 -0
  1197. data/misc/T1468.xml +64 -0
  1198. data/misc/T1469.xml +33 -0
  1199. data/misc/T147.xml +62 -0
  1200. data/misc/T1473.xml +42 -0
  1201. data/misc/T1476.xml +38 -0
  1202. data/misc/T1484.xml +37 -0
  1203. data/misc/T1485.xml +29 -0
  1204. data/misc/T1487.xml +58 -0
  1205. data/misc/T1488.xml +44 -0
  1206. data/misc/T1489.xml +39 -0
  1207. data/misc/T1491.xml +30 -0
  1208. data/misc/T1492.xml +37 -0
  1209. data/misc/T1493.xml +35 -0
  1210. data/misc/T1496.xml +81 -0
  1211. data/misc/T1499.xml +29 -0
  1212. data/misc/T150.xml +1125 -0
  1213. data/misc/T1511.xml +34 -0
  1214. data/misc/T1514.xml +41 -0
  1215. data/misc/T152.xml +577 -0
  1216. data/misc/T1520.xml +52 -0
  1217. data/misc/T1521.xml +41 -0
  1218. data/misc/T1522.xml +52 -0
  1219. data/misc/T1523.xml +35 -0
  1220. data/misc/T1525.xml +34 -0
  1221. data/misc/T1526.xml +32 -0
  1222. data/misc/T1527.xml +33 -0
  1223. data/misc/T1540.xml +31 -0
  1224. data/misc/T1543.xml +29 -0
  1225. data/misc/T1546.xml +32 -0
  1226. data/misc/T1549.xml +34 -0
  1227. data/misc/T1550.xml +31 -0
  1228. data/misc/T1552.xml +41 -0
  1229. data/misc/T1553.xml +41 -0
  1230. data/misc/T1554.xml +47 -0
  1231. data/misc/T1555.xml +31 -0
  1232. data/misc/T1556.xml +30 -0
  1233. data/misc/T1557.xml +32 -0
  1234. data/misc/T1558.xml +31 -0
  1235. data/misc/T1559.xml +50 -0
  1236. data/misc/T1560.xml +38 -0
  1237. data/misc/T1561.xml +29 -0
  1238. data/misc/T157.xml +206 -0
  1239. data/misc/T1570.xml +35 -0
  1240. data/misc/T1572.xml +30 -0
  1241. data/misc/T1574.xml +34 -0
  1242. data/misc/T1575.xml +33 -0
  1243. data/misc/T1576.xml +30 -0
  1244. data/misc/T1577.xml +30 -0
  1245. data/misc/T1578.xml +36 -0
  1246. data/misc/T1579.xml +30 -0
  1247. data/misc/T1585.xml +33 -0
  1248. data/misc/T1588.xml +47 -0
  1249. data/misc/T1590.xml +151 -0
  1250. data/misc/T1591.xml +159 -0
  1251. data/misc/T1592.xml +60 -0
  1252. data/misc/T1594.xml +69 -0
  1253. data/misc/T1595.xml +42 -0
  1254. data/misc/T1596.xml +82 -0
  1255. data/misc/T1599.xml +151 -0
  1256. data/misc/T16.xml +33 -0
  1257. data/misc/T160.xml +31 -0
  1258. data/misc/T1600.xml +36 -0
  1259. data/misc/T1601.xml +39 -0
  1260. data/misc/T1602.xml +59 -0
  1261. data/misc/T1606.xml +39 -0
  1262. data/misc/T1607.xml +47 -0
  1263. data/misc/T1609.xml +51 -0
  1264. data/misc/T1610.xml +31 -0
  1265. data/misc/T1611.xml +38 -0
  1266. data/misc/T1612.xml +32 -0
  1267. data/misc/T1617.xml +31 -0
  1268. data/misc/T1619.xml +30 -0
  1269. data/misc/T1620.xml +49 -0
  1270. data/misc/T1621.xml +29 -0
  1271. data/misc/T1622.xml +35 -0
  1272. data/misc/T1626.xml +30 -0
  1273. data/misc/T1627.xml +29 -0
  1274. data/misc/T1629.xml +41 -0
  1275. data/misc/T163.xml +49 -0
  1276. data/misc/T1630.xml +61 -0
  1277. data/misc/T1631.xml +44 -0
  1278. data/misc/T1632.xml +96 -0
  1279. data/misc/T1633.xml +32 -0
  1280. data/misc/T1634.xml +128 -0
  1281. data/misc/T1635.xml +39 -0
  1282. data/misc/T1636.xml +54 -0
  1283. data/misc/T1637.xml +29 -0
  1284. data/misc/T1638.xml +57 -0
  1285. data/misc/T1642.xml +37 -0
  1286. data/misc/T1644.xml +34 -0
  1287. data/misc/T1650.xml +73 -0
  1288. data/misc/T1651.xml +111 -0
  1289. data/misc/T1652.xml +36 -0
  1290. data/misc/T1656.xml +31 -0
  1291. data/misc/T1657.xml +30 -0
  1292. data/misc/T1658.xml +34 -0
  1293. data/misc/T1675.xml +31 -0
  1294. data/misc/T1678.xml +34 -0
  1295. data/misc/T1679.xml +30 -0
  1296. data/misc/T1680.xml +30 -0
  1297. data/misc/T1681.xml +43 -0
  1298. data/misc/T1685.xml +30 -0
  1299. data/misc/T1691.xml +81 -0
  1300. data/misc/T1693.xml +28 -0
  1301. data/misc/T1698.xml +30 -0
  1302. data/misc/T1699.xml +30 -0
  1303. data/misc/T1701.xml +30 -0
  1304. data/misc/T1703.xml +32 -0
  1305. data/misc/T1706.xml +33 -0
  1306. data/misc/T1713.xml +39 -0
  1307. data/misc/T1714.xml +40 -0
  1308. data/misc/T1719.xml +31 -0
  1309. data/misc/T1720.xml +46 -0
  1310. data/misc/T1721.xml +67 -0
  1311. data/misc/T1722.xml +38 -0
  1312. data/misc/T1727.xml +30 -0
  1313. data/misc/T1729.xml +48 -0
  1314. data/misc/T1730.xml +37 -0
  1315. data/misc/T1731.xml +40 -0
  1316. data/misc/T176.xml +70 -0
  1317. data/misc/T181.xml +75 -0
  1318. data/misc/T184.xml +43 -0
  1319. data/misc/T187.xml +79 -0
  1320. data/misc/T188.xml +35 -0
  1321. data/misc/T190.xml +29 -0
  1322. data/misc/T192.xml +30 -0
  1323. data/misc/T195.xml +33 -0
  1324. data/misc/T197.xml +34 -0
  1325. data/misc/T199.xml +31 -0
  1326. data/misc/T2.xml +39 -0
  1327. data/misc/T201.xml +39 -0
  1328. data/misc/T202.xml +66 -0
  1329. data/misc/T208.xml +41 -0
  1330. data/misc/T210.xml +29 -0
  1331. data/misc/T211.xml +161 -0
  1332. data/misc/T214.xml +31 -0
  1333. data/misc/T216.xml +28 -0
  1334. data/misc/T221.xml +74 -0
  1335. data/misc/T226.xml +29 -0
  1336. data/misc/T23.xml +53 -0
  1337. data/misc/T231.xml +42 -0
  1338. data/misc/T235.xml +544 -0
  1339. data/misc/T236.xml +194 -0
  1340. data/misc/T240.xml +46 -0
  1341. data/misc/T241.xml +36 -0
  1342. data/misc/T242.xml +35 -0
  1343. data/misc/T246.xml +86 -0
  1344. data/misc/T248.xml +34 -0
  1345. data/misc/T249.xml +32 -0
  1346. data/misc/T253.xml +33 -0
  1347. data/misc/T256.xml +48 -0
  1348. data/misc/T257.xml +37 -0
  1349. data/misc/T259.xml +48 -0
  1350. data/misc/T261.xml +44 -0
  1351. data/misc/T262.xml +37 -0
  1352. data/misc/T263.xml +48 -0
  1353. data/misc/T271.xml +29 -0
  1354. data/misc/T272.xml +29 -0
  1355. data/misc/T283.xml +31 -0
  1356. data/misc/T284.xml +93 -0
  1357. data/misc/T286.xml +37 -0
  1358. data/misc/T287.xml +30 -0
  1359. data/misc/T288.xml +34 -0
  1360. data/misc/T290.xml +51 -0
  1361. data/misc/T291.xml +30 -0
  1362. data/misc/T292.xml +29 -0
  1363. data/misc/T293.xml +30 -0
  1364. data/misc/T295.xml +36 -0
  1365. data/misc/T3.xml +34 -0
  1366. data/misc/T304.xml +138 -0
  1367. data/misc/T305.xml +50 -0
  1368. data/misc/T306.xml +347 -0
  1369. data/misc/T308.xml +28 -0
  1370. data/misc/T309.xml +209 -0
  1371. data/misc/T311.xml +32 -0
  1372. data/misc/T312.xml +32 -0
  1373. data/misc/T313.xml +37 -0
  1374. data/misc/T321.xml +35 -0
  1375. data/misc/T322.xml +32 -0
  1376. data/misc/T33.xml +34 -0
  1377. data/misc/T331.xml +49 -0
  1378. data/misc/T333.xml +44 -0
  1379. data/misc/T334.xml +30 -0
  1380. data/misc/T335.xml +52 -0
  1381. data/misc/T336.xml +104 -0
  1382. data/misc/T340.xml +153 -0
  1383. data/misc/T344.xml +87 -0
  1384. data/misc/T345.xml +59 -0
  1385. data/misc/T346.xml +111 -0
  1386. data/misc/T349.xml +30 -0
  1387. data/misc/T353.xml +93 -0
  1388. data/misc/T355.xml +831 -0
  1389. data/misc/T363.xml +376 -0
  1390. data/misc/T365.xml +69 -0
  1391. data/misc/T366.xml +265 -0
  1392. data/misc/T368.xml +129 -0
  1393. data/misc/T371.xml +57 -0
  1394. data/misc/T372.xml +29 -0
  1395. data/misc/T374.xml +1283 -0
  1396. data/misc/T375.xml +106 -0
  1397. data/misc/T377.xml +31 -0
  1398. data/misc/T378.xml +39 -0
  1399. data/misc/T379.xml +36 -0
  1400. data/misc/T381.xml +44 -0
  1401. data/misc/T39.xml +35 -0
  1402. data/misc/T392.xml +30 -0
  1403. data/misc/T393.xml +44 -0
  1404. data/misc/T399.xml +32 -0
  1405. data/misc/T40.xml +164 -0
  1406. data/misc/T400.xml +39 -0
  1407. data/misc/T407.xml +31 -0
  1408. data/misc/T412.xml +42 -0
  1409. data/misc/T422.xml +103 -0
  1410. data/misc/T423.xml +34 -0
  1411. data/misc/T426.xml +508 -0
  1412. data/misc/T432.xml +166 -0
  1413. data/misc/T433.xml +31 -0
  1414. data/misc/T436.xml +33 -0
  1415. data/misc/T437.xml +28 -0
  1416. data/misc/T441.xml +61 -0
  1417. data/misc/T444.xml +33 -0
  1418. data/misc/T445.xml +37 -0
  1419. data/misc/T448.xml +43 -0
  1420. data/misc/T455.xml +29 -0
  1421. data/misc/T456.xml +31 -0
  1422. data/misc/T460.xml +40 -0
  1423. data/misc/T461.xml +30 -0
  1424. data/misc/T465.xml +28 -0
  1425. data/misc/T47.xml +29 -0
  1426. data/misc/T473.xml +40 -0
  1427. data/misc/T478.xml +29 -0
  1428. data/misc/T479.xml +288 -0
  1429. data/misc/T48.xml +31 -0
  1430. data/misc/T480.xml +72 -0
  1431. data/misc/T481.xml +30 -0
  1432. data/misc/T482.xml +36 -0
  1433. data/misc/T483.xml +32 -0
  1434. data/misc/T484.xml +32 -0
  1435. data/misc/T485.xml +38 -0
  1436. data/misc/T486.xml +35 -0
  1437. data/misc/T487.xml +33 -0
  1438. data/misc/T491.xml +31 -0
  1439. data/misc/T501.xml +44 -0
  1440. data/misc/T503.xml +30 -0
  1441. data/misc/T506.xml +32 -0
  1442. data/misc/T51.xml +29 -0
  1443. data/misc/T511.xml +36 -0
  1444. data/misc/T512.xml +31 -0
  1445. data/misc/T514.xml +40 -0
  1446. data/misc/T516.xml +31 -0
  1447. data/misc/T519.xml +33 -0
  1448. data/misc/T52.xml +55 -0
  1449. data/misc/T521.xml +84 -0
  1450. data/misc/T522.xml +1767 -0
  1451. data/misc/T529.xml +43 -0
  1452. data/misc/T533.xml +31 -0
  1453. data/misc/T534.xml +34 -0
  1454. data/misc/T535.xml +33 -0
  1455. data/misc/T536.xml +40 -0
  1456. data/misc/T537.xml +29 -0
  1457. data/misc/T538.xml +36 -0
  1458. data/misc/T54.xml +36 -0
  1459. data/misc/T544.xml +29 -0
  1460. data/misc/T545.xml +36 -0
  1461. data/misc/T546.xml +208 -0
  1462. data/misc/T547.xml +47 -0
  1463. data/misc/T548.xml +86 -0
  1464. data/misc/T558.xml +37 -0
  1465. data/misc/T559.xml +218 -0
  1466. data/misc/T56.xml +46 -0
  1467. data/misc/T560.xml +196 -0
  1468. data/misc/T562.xml +74 -0
  1469. data/misc/T563.xml +83 -0
  1470. data/misc/T566.xml +36 -0
  1471. data/misc/T568.xml +34 -0
  1472. data/misc/T569.xml +73 -0
  1473. data/misc/T570.xml +29 -0
  1474. data/misc/T571.xml +29 -0
  1475. data/misc/T572.xml +32 -0
  1476. data/misc/T575.xml +28 -0
  1477. data/misc/T578.xml +45 -0
  1478. data/misc/T579.xml +36 -0
  1479. data/misc/T580.xml +34 -0
  1480. data/misc/T584.xml +117 -0
  1481. data/misc/T585.xml +46 -0
  1482. data/misc/T587.xml +42 -0
  1483. data/misc/T590.xml +30 -0
  1484. data/misc/T591.xml +81 -0
  1485. data/misc/T592.xml +34 -0
  1486. data/misc/T594.xml +50 -0
  1487. data/misc/T595.xml +33 -0
  1488. data/misc/T6.xml +34 -0
  1489. data/misc/T604.xml +30 -0
  1490. data/misc/T605.xml +31 -0
  1491. data/misc/T608.xml +34 -0
  1492. data/misc/T611.xml +52 -0
  1493. data/misc/T612.xml +31 -0
  1494. data/misc/T615.xml +65 -0
  1495. data/misc/T617.xml +51 -0
  1496. data/misc/T623.xml +78 -0
  1497. data/misc/T625.xml +31 -0
  1498. data/misc/T626.xml +50 -0
  1499. data/misc/T627.xml +32 -0
  1500. data/misc/T629.xml +33 -0
  1501. data/misc/T632.xml +38 -0
  1502. data/misc/T635.xml +47 -0
  1503. data/misc/T639.xml +118 -0
  1504. data/misc/T640.xml +553 -0
  1505. data/misc/T641.xml +463 -0
  1506. data/misc/T644.xml +31 -0
  1507. data/misc/T645.xml +29 -0
  1508. data/misc/T647.xml +227 -0
  1509. data/misc/T648.xml +33 -0
  1510. data/misc/T650.xml +109 -0
  1511. data/misc/T653.xml +39 -0
  1512. data/misc/T654.xml +31 -0
  1513. data/misc/T656.xml +29 -0
  1514. data/misc/T659.xml +47 -0
  1515. data/misc/T66.xml +266 -0
  1516. data/misc/T662.xml +32 -0
  1517. data/misc/T665.xml +29 -0
  1518. data/misc/T666.xml +47 -0
  1519. data/misc/T668.xml +53 -0
  1520. data/misc/T669.xml +33 -0
  1521. data/misc/T670.xml +57 -0
  1522. data/misc/T672.xml +35 -0
  1523. data/misc/T673.xml +1123 -0
  1524. data/misc/T674.xml +32 -0
  1525. data/misc/T675.xml +38 -0
  1526. data/misc/T676.xml +31 -0
  1527. data/misc/T678.xml +72 -0
  1528. data/misc/T679.xml +36 -0
  1529. data/misc/T680.xml +48 -0
  1530. data/misc/T681.xml +38 -0
  1531. data/misc/T682.xml +58 -0
  1532. data/misc/T683.xml +32 -0
  1533. data/misc/T687.xml +89 -0
  1534. data/misc/T688.xml +38 -0
  1535. data/misc/T689.xml +44 -0
  1536. data/misc/T692.xml +61 -0
  1537. data/misc/T693.xml +34 -0
  1538. data/misc/T695.xml +39 -0
  1539. data/misc/T698.xml +30 -0
  1540. data/misc/T699.xml +29 -0
  1541. data/misc/T701.xml +118 -0
  1542. data/misc/T703.xml +45 -0
  1543. data/misc/T704.xml +41 -0
  1544. data/misc/T705.xml +30 -0
  1545. data/misc/T706.xml +151 -0
  1546. data/misc/T707.xml +115 -0
  1547. data/misc/T708.xml +125 -0
  1548. data/misc/T709.xml +29 -0
  1549. data/misc/T714.xml +30 -0
  1550. data/misc/T715.xml +34 -0
  1551. data/misc/T716.xml +47 -0
  1552. data/misc/T717.xml +33 -0
  1553. data/misc/T718.xml +50 -0
  1554. data/misc/T72.xml +30 -0
  1555. data/misc/T720.xml +35 -0
  1556. data/misc/T723.xml +39 -0
  1557. data/misc/T726.xml +46 -0
  1558. data/misc/T728.xml +38 -0
  1559. data/misc/T73.xml +30 -0
  1560. data/misc/T731.xml +34 -0
  1561. data/misc/T732.xml +37 -0
  1562. data/misc/T735.xml +277 -0
  1563. data/misc/T736.xml +29 -0
  1564. data/misc/T737.xml +191 -0
  1565. data/misc/T738.xml +1018 -0
  1566. data/misc/T743.xml +31 -0
  1567. data/misc/T744.xml +39 -0
  1568. data/misc/T745.xml +28 -0
  1569. data/misc/T747.xml +30 -0
  1570. data/misc/T748.xml +51 -0
  1571. data/misc/T749.xml +51 -0
  1572. data/misc/T750.xml +263 -0
  1573. data/misc/T752.xml +136 -0
  1574. data/misc/T753.xml +72 -0
  1575. data/misc/T755.xml +560 -0
  1576. data/misc/T756.xml +82 -0
  1577. data/misc/T759.xml +28 -0
  1578. data/misc/T760.xml +28 -0
  1579. data/misc/T762.xml +42 -0
  1580. data/misc/T771.xml +41 -0
  1581. data/misc/T772.xml +30 -0
  1582. data/misc/T78.xml +31 -0
  1583. data/misc/T783.xml +42 -0
  1584. data/misc/T786.xml +44 -0
  1585. data/misc/T789.xml +44 -0
  1586. data/misc/T792.xml +42 -0
  1587. data/misc/T795.xml +36 -0
  1588. data/misc/T797.xml +32 -0
  1589. data/misc/T8.xml +34 -0
  1590. data/misc/T808.xml +46 -0
  1591. data/misc/T811.xml +45 -0
  1592. data/misc/T812.xml +38 -0
  1593. data/misc/T813.xml +39 -0
  1594. data/misc/T814.xml +29 -0
  1595. data/misc/T815.xml +40 -0
  1596. data/misc/T816.xml +37 -0
  1597. data/misc/T820.xml +58 -0
  1598. data/misc/T821.xml +180 -0
  1599. data/misc/T829.xml +48 -0
  1600. data/misc/T83.xml +55 -0
  1601. data/misc/T831.xml +41 -0
  1602. data/misc/T835.xml +28 -0
  1603. data/misc/T836.xml +63 -0
  1604. data/misc/T837.xml +38 -0
  1605. data/misc/T844.xml +30 -0
  1606. data/misc/T845.xml +34 -0
  1607. data/misc/T846.xml +66 -0
  1608. data/misc/T847.xml +35 -0
  1609. data/misc/T848.xml +30 -0
  1610. data/misc/T849.xml +30 -0
  1611. data/misc/T850.xml +39 -0
  1612. data/misc/T852.xml +31 -0
  1613. data/misc/T853.xml +48 -0
  1614. data/misc/T854.xml +47 -0
  1615. data/misc/T855.xml +29 -0
  1616. data/misc/T856.xml +31 -0
  1617. data/misc/T859.xml +69 -0
  1618. data/misc/T868.xml +29 -0
  1619. data/misc/T875.xml +150 -0
  1620. data/misc/T88.xml +48 -0
  1621. data/misc/T883.xml +36 -0
  1622. data/misc/T886.xml +36 -0
  1623. data/misc/T887.xml +42 -0
  1624. data/misc/T888.xml +34 -0
  1625. data/misc/T889.xml +37 -0
  1626. data/misc/T890.xml +43 -0
  1627. data/misc/T891.xml +47 -0
  1628. data/misc/T892.xml +52 -0
  1629. data/misc/T893.xml +29 -0
  1630. data/misc/T894.xml +39 -0
  1631. data/misc/T897.xml +31 -0
  1632. data/misc/T9.xml +50 -0
  1633. data/misc/T90.xml +31 -0
  1634. data/misc/T901.xml +234 -0
  1635. data/misc/T902.xml +31 -0
  1636. data/misc/T903.xml +30 -0
  1637. data/misc/T904.xml +33 -0
  1638. data/misc/T906.xml +31 -0
  1639. data/misc/T91.xml +107 -0
  1640. data/misc/T912.xml +32 -0
  1641. data/misc/T913.xml +43 -0
  1642. data/misc/T92.xml +98 -0
  1643. data/misc/T921.xml +33 -0
  1644. data/misc/T922.xml +33 -0
  1645. data/misc/T923.xml +35 -0
  1646. data/misc/T924.xml +29 -0
  1647. data/misc/T927.xml +29 -0
  1648. data/misc/T934.xml +34 -0
  1649. data/misc/T935.xml +157 -0
  1650. data/misc/T936.xml +86 -0
  1651. data/misc/T937.xml +47 -0
  1652. data/misc/T938.xml +35 -0
  1653. data/misc/T939.xml +29 -0
  1654. data/misc/T940.xml +32 -0
  1655. data/misc/T943.xml +53 -0
  1656. data/misc/T944.xml +43 -0
  1657. data/misc/T945.xml +56 -0
  1658. data/misc/T950.xml +75 -0
  1659. data/misc/T951.xml +36 -0
  1660. data/misc/T952.xml +30 -0
  1661. data/misc/T955.xml +32 -0
  1662. data/misc/T959.xml +29 -0
  1663. data/misc/T960.xml +40 -0
  1664. data/misc/T962.xml +38 -0
  1665. data/misc/T963.xml +129 -0
  1666. data/misc/T964.xml +46 -0
  1667. data/misc/T969.xml +38 -0
  1668. data/misc/T974.xml +28 -0
  1669. data/misc/T976.xml +32 -0
  1670. data/misc/T98.xml +1511 -0
  1671. data/misc/T980.xml +35 -0
  1672. data/misc/T981.xml +46 -0
  1673. data/misc/T982.xml +32 -0
  1674. data/misc/T983.xml +29 -0
  1675. data/misc/T984.xml +30 -0
  1676. data/misc/T985.xml +28 -0
  1677. data/misc/T986.xml +28 -0
  1678. data/misc/T987.xml +36 -0
  1679. data/misc/T988.xml +48 -0
  1680. data/misc/T990.xml +34 -0
  1681. data/misc/T998.xml +30 -0
  1682. data/misc/T999.xml +39 -0
  1683. data/misc/TA.xml +34 -0
  1684. data/misc/TAX.xml +40 -0
  1685. data/misc/TBI.xml +35 -0
  1686. data/misc/TC2.xml +29 -0
  1687. data/misc/TCD.xml +43 -0
  1688. data/misc/TD1.xml +37 -0
  1689. data/misc/TD3.xml +37 -0
  1690. data/misc/TD4.xml +32 -0
  1691. data/misc/TD5.xml +42 -0
  1692. data/misc/TDS.xml +31 -0
  1693. data/misc/TDT.xml +31 -0
  1694. data/misc/TED.xml +35 -0
  1695. data/misc/TEM.xml +32 -0
  1696. data/misc/TER.xml +33 -0
  1697. data/misc/TF.xml +31 -0
  1698. data/misc/TFR.xml +31 -0
  1699. data/misc/TFS.xml +35 -0
  1700. data/misc/THE.xml +32 -0
  1701. data/misc/TI.xml +34 -0
  1702. data/misc/TI01.xml +34 -0
  1703. data/misc/TI03.xml +29 -0
  1704. data/misc/TI05.xml +65 -0
  1705. data/misc/TI10.xml +28 -0
  1706. data/misc/TI11.xml +41 -0
  1707. data/misc/TI13.xml +29 -0
  1708. data/misc/TI14.xml +30 -0
  1709. data/misc/TI40.xml +36 -0
  1710. data/misc/TI43.xml +61 -0
  1711. data/misc/TI58.xml +32 -0
  1712. data/misc/TI60.xml +29 -0
  1713. data/misc/TI61.xml +30 -0
  1714. data/misc/TI62.xml +30 -0
  1715. data/misc/TI63.xml +33 -0
  1716. data/misc/TIA.xml +34 -0
  1717. data/misc/TID.xml +36 -0
  1718. data/misc/TII.xml +32 -0
  1719. data/misc/TIS.xml +31 -0
  1720. data/misc/TLN.xml +49 -0
  1721. data/misc/TMD.xml +36 -0
  1722. data/misc/TOA.xml +32 -0
  1723. data/misc/TOO.xml +30 -0
  1724. data/misc/TOV.xml +33 -0
  1725. data/misc/TPB.xml +31 -0
  1726. data/misc/TPD.xml +31 -0
  1727. data/misc/TRF.xml +32 -0
  1728. data/misc/TRL.xml +32 -0
  1729. data/misc/TRN.xml +31 -0
  1730. data/misc/TRS.xml +32 -0
  1731. data/misc/TS.xml +34 -0
  1732. data/misc/TS2.xml +46 -0
  1733. data/misc/TS3.xml +51 -0
  1734. data/misc/TSD.xml +29 -0
  1735. data/misc/TSI.xml +31 -0
  1736. data/misc/TSP.xml +31 -0
  1737. data/misc/TST.xml +44 -0
  1738. data/misc/TSU.xml +35 -0
  1739. data/misc/TT.xml +29 -0
  1740. data/misc/TUD.xml +30 -0
  1741. data/misc/TXI.xml +37 -0
  1742. data/misc/TXN.xml +37 -0
  1743. data/misc/TXP.xml +37 -0
  1744. data/misc/UC.xml +31 -0
  1745. data/misc/UCS.xml +35 -0
  1746. data/misc/UD.xml +44 -0
  1747. data/misc/UDA.xml +34 -0
  1748. data/misc/UIT.xml +30 -0
  1749. data/misc/UM.xml +37 -0
  1750. data/misc/UQS.xml +31 -0
  1751. data/misc/UR.xml +29 -0
  1752. data/misc/USD.xml +39 -0
  1753. data/misc/USI.xml +30 -0
  1754. data/misc/UWI.xml +31 -0
  1755. data/misc/V1.xml +36 -0
  1756. data/misc/V2.xml +44 -0
  1757. data/misc/V3.xml +31 -0
  1758. data/misc/V4.xml +28 -0
  1759. data/misc/V5.xml +30 -0
  1760. data/misc/V9.xml +47 -0
  1761. data/misc/VAD.xml +38 -0
  1762. data/misc/VAR.xml +34 -0
  1763. data/misc/VAT.xml +39 -0
  1764. data/misc/VC.xml +40 -0
  1765. data/misc/VC1.xml +42 -0
  1766. data/misc/VDI.xml +42 -0
  1767. data/misc/VEH.xml +43 -0
  1768. data/misc/VID.xml +40 -0
  1769. data/misc/VR.xml +36 -0
  1770. data/misc/VRC.xml +32 -0
  1771. data/misc/W01.xml +43 -0
  1772. data/misc/W03.xml +34 -0
  1773. data/misc/W04.xml +42 -0
  1774. data/misc/W05.xml +35 -0
  1775. data/misc/W06.xml +39 -0
  1776. data/misc/W07.xml +38 -0
  1777. data/misc/W08.xml +36 -0
  1778. data/misc/W09.xml +36 -0
  1779. data/misc/W1.xml +28 -0
  1780. data/misc/W10.xml +36 -0
  1781. data/misc/W12.xml +49 -0
  1782. data/misc/W13.xml +32 -0
  1783. data/misc/W14.xml +32 -0
  1784. data/misc/W15.xml +33 -0
  1785. data/misc/W17.xml +36 -0
  1786. data/misc/W18.xml +30 -0
  1787. data/misc/W19.xml +45 -0
  1788. data/misc/W2.xml +43 -0
  1789. data/misc/W20.xml +37 -0
  1790. data/misc/W27.xml +37 -0
  1791. data/misc/W28.xml +35 -0
  1792. data/misc/W3.xml +33 -0
  1793. data/misc/W4.xml +32 -0
  1794. data/misc/W5.xml +33 -0
  1795. data/misc/W6.xml +31 -0
  1796. data/misc/W66.xml +37 -0
  1797. data/misc/W76.xml +33 -0
  1798. data/misc/WLD.xml +37 -0
  1799. data/misc/WS.xml +30 -0
  1800. data/misc/X01.xml +37 -0
  1801. data/misc/X02.xml +32 -0
  1802. data/misc/X1.xml +44 -0
  1803. data/misc/X2.xml +33 -0
  1804. data/misc/X4.xml +46 -0
  1805. data/misc/X7.xml +29 -0
  1806. data/misc/XD.xml +32 -0
  1807. data/misc/XH.xml +34 -0
  1808. data/misc/XPO.xml +31 -0
  1809. data/misc/XQ.xml +32 -0
  1810. data/misc/Y1.xml +36 -0
  1811. data/misc/Y2.xml +37 -0
  1812. data/misc/Y3.xml +38 -0
  1813. data/misc/Y4.xml +37 -0
  1814. data/misc/Y5.xml +28 -0
  1815. data/misc/Y6.xml +30 -0
  1816. data/misc/Y7.xml +32 -0
  1817. data/misc/YNQ.xml +37 -0
  1818. data/misc/ZA.xml +35 -0
  1819. data/misc/ZC1.xml +36 -0
  1820. data/misc/ZD.xml +36 -0
  1821. data/misc/ZR.xml +43 -0
  1822. data/misc/ZT.xml +33 -0
  1823. data/misc/rdoc_template.rb +697 -0
  1824. data/test/tc_factory_270.rb +170 -0
  1825. data/test/tc_factory_270interchange.rb +306 -0
  1826. data/test/tc_factory_997.rb +134 -0
  1827. data/test/tc_parse_270.rb +98 -0
  1828. data/test/tc_parse_270interchange.rb +184 -0
  1829. data/test/tc_parse_997.rb +146 -0
  1830. data/x12.gemspec +20 -0
  1831. metadata +1882 -0
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in x12.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # ANSI X12 parser in Ruby
2
+
3
+ This is a fork of the project from http://www.appdesign.com/x12parser/, with the following changes:
4
+
5
+ * All the gem info has been changed to use bundler
6
+ * Everything has been renamed to be lower case and work on case sensitive systems
7
+ * Stopped including REXML, which was causing problems with Rails 3 and mailer
8
+
9
+ Changes welcome, especially new document types or better tests.
data/Rakefile ADDED
@@ -0,0 +1,24 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+ require 'rake/rdoctask'
5
+
6
+ desc 'Test the plugin'
7
+ Rake::TestTask.new(:test) do |t|
8
+ t.libs << 'lib'
9
+ t.libs << 'test'
10
+ t.pattern = 'test/t*.rb'
11
+ t.verbose = true
12
+ end
13
+
14
+ desc 'Generate RDoc docs'
15
+ Rake::RDocTask.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'Versapay'
18
+ rdoc.options << '--line-numbers' << '--inline-source'
19
+ rdoc.rdoc_files.include('README')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+
24
+ task :default => :test
@@ -0,0 +1,92 @@
1
+ #--
2
+ # This file is part of the X12Parser library that provides tools to
3
+ # manipulate X12 messages using Ruby native syntax.
4
+ #
5
+ # http://x12parser.rubyforge.org
6
+ #
7
+ # Copyright (C) 2008 APP Design, Inc.
8
+ #
9
+ # This library is free software; you can redistribute it and/or
10
+ # modify it under the terms of the GNU Lesser General Public
11
+ # License as published by the Free Software Foundation; either
12
+ # version 2.1 of the License, or (at your option) any later version.
13
+ #
14
+ # This library is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ # Lesser General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU Lesser General Public
20
+ # License along with this library; if not, write to the Free Software
21
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
+ #++
23
+ #
24
+ require 'x12'
25
+
26
+ # Read message definition and create an actual parser
27
+ # by compiling .d12 file
28
+ parser = X12::Parser.new('misc/997single.xml')
29
+
30
+ # Make a new 997 message
31
+ r = parser.factory('997')
32
+
33
+ #
34
+ # Set various fields as desired
35
+ #
36
+
37
+ # Set fields directly
38
+ r.ST.TransactionSetIdentifierCode = 997
39
+ r.ST.TransactionSetControlNumber = '2878'
40
+
41
+ # Set fields inside a segment (AK1 in this case)
42
+ r.AK1 { |ak1|
43
+ ak1.FunctionalIdentifierCode = 'HS'
44
+ ak1.GroupControlNumber = 293328532
45
+ }
46
+
47
+ # Set fields deeply inside a segment inside
48
+ # nested loops (L1000/L1010/AK4 in this case)
49
+ r.L1000.L1010.AK4.DataElementSyntaxErrorCode = 55
50
+ r.L1000.AK2.TransactionSetIdentifierCode = 270
51
+
52
+ # Set nested loops
53
+ r.L1000.L1010 {|l|
54
+ l.AK3 {|s|
55
+ s.SegmentIdCode = 'NM1'
56
+ s.LoopIdentifierCode = 'L1000D'
57
+ }
58
+ l.AK4 {|s|
59
+ s.CopyOfBadDataElement = 'Bad element'
60
+ }
61
+ }
62
+
63
+ # Add loop repeats
64
+ r.L1000.repeat {|l1000|
65
+ (0..1).each {|loop_repeat| # Two repeats of the loop L1010
66
+ l1000.L1010.repeat {|l1010|
67
+ l1010.AK3 {|s|
68
+ s.SegmentIdCode = 'DMG'
69
+ s.SegmentPositionInTransactionSet = 0
70
+ s.LoopIdentifierCode = 'L1010'
71
+ s.SegmentSyntaxErrorCode = 22
72
+ } if loop_repeat == 0 # AK3 only in the first repeat of L1010
73
+ (0..1).each {|ak4_repeat| # Two repeats of the segment AK4
74
+ l1010.AK4.repeat {|s|
75
+ s.PositionInSegment = loop_repeat
76
+ s.DataElementSyntaxErrorCode = ak4_repeat
77
+ } # s
78
+ } # ak4_repeat
79
+ } # l1010
80
+ } # loop_repeat
81
+
82
+ l1000.AK5{|a|
83
+ a.TransactionSetAcknowledgmentCode = 666
84
+ a.TransactionSetSyntaxErrorCode4 = 999
85
+ } # a
86
+ } # l1000
87
+
88
+ # Print the message as a string -> ST*997*2878~AK1*HS*293328532~
89
+ # AK2*270*~AK3*NM1**L1000D~AK4***55*Bad element~AK5*~AK3*DMG*0*
90
+ # L1010*22~AK4*0**0~AK4*0**1~AK4*1**0~AK4*1**1~AK5*666****999~
91
+ # AK9****~SE**~
92
+ puts r.render
data/example/parse.rb ADDED
@@ -0,0 +1,57 @@
1
+ #--
2
+ # This file is part of the X12Parser library that provides tools to
3
+ # manipulate X12 messages using Ruby native syntax.
4
+ #
5
+ # http://x12parser.rubyforge.org
6
+ #
7
+ # Copyright (C) 2008 APP Design, Inc.
8
+ #
9
+ # This library is free software; you can redistribute it and/or
10
+ # modify it under the terms of the GNU Lesser General Public
11
+ # License as published by the Free Software Foundation; either
12
+ # version 2.1 of the License, or (at your option) any later version.
13
+ #
14
+ # This library is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ # Lesser General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU Lesser General Public
20
+ # License along with this library; if not, write to the Free Software
21
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
+ #++
23
+ #
24
+ require 'x12'
25
+
26
+ # Read message definition and create an actual parser
27
+ # by compiling .d12 file
28
+ parser = X12::Parser.new('misc/997single.xml')
29
+
30
+ # Define a test message to parse
31
+ m997='ST*997*2878~AK1*HS*293328532~AK2*270*307272179~'\
32
+ 'AK3*NM1*8*L1010_0*8~AK4*0:0*66*1~AK4*0:1*66*1~AK4*0:2*'\
33
+ '66*1~AK3*NM1*8*L1010_1*8~AK4*1:0*66*1~AK4*1:1*66*1~AK3*'\
34
+ 'NM1*8*L1010_2*8~AK4*2:0*66*1~AK5*R*5~AK9*R*1*1*0~SE*8*2878~'
35
+
36
+ # Parse the message
37
+ r = parser.parse('997', m997)
38
+ r.show
39
+
40
+ # Access components of the message as desired
41
+
42
+ # Whole ST segment: -> ST*997*2878~
43
+ puts r.ST
44
+
45
+ # One filed, Group Control Number of AK1 -> 293328532
46
+ puts r.AK1.GroupControlNumber
47
+
48
+ # Individual loop, namely, third L1010 subloop of
49
+ # L1000 loop: -> AK3*NM1*8*L1010_2*8~AK4*2:0*66*1~
50
+ puts r.L1000.L1010[2]
51
+
52
+ # First encounter of Data Element Reference Number of the
53
+ # first L1010 sub-loop of L1000 loop -> 66
54
+ puts r.L1000.L1010.AK4.DataElementReferenceNumber
55
+
56
+ # Number of L1010 sub-loops in L1000 loop -> 3
57
+ puts r.L1000.L1010.size
data/lib/x12.rb ADDED
@@ -0,0 +1,41 @@
1
+ #--
2
+ # This file is part of the X12Parser library that provides tools to
3
+ # manipulate X12 messages using Ruby native syntax.
4
+ #
5
+ # http://x12parser.rubyforge.org
6
+ #
7
+ # Copyright (C) 2008 APP Design, Inc.
8
+ #
9
+ # This library is free software; you can redistribute it and/or
10
+ # modify it under the terms of the GNU Lesser General Public
11
+ # License as published by the Free Software Foundation; either
12
+ # version 2.1 of the License, or (at your option) any later version.
13
+ #
14
+ # This library is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ # Lesser General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU Lesser General Public
20
+ # License along with this library; if not, write to the Free Software
21
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
+ #++
23
+ #
24
+ # $Id: X12.rb 91 2009-05-13 22:11:10Z ikk $
25
+ #
26
+ # Package implementing direct manipulation of X12 structures using Ruby syntax.
27
+ require "x12/version"
28
+ require 'x12/base'
29
+ require 'x12/empty'
30
+ require 'x12/field'
31
+ require 'x12/composite'
32
+ require 'x12/segment'
33
+ require 'x12/table'
34
+ require 'x12/loop'
35
+ require 'x12/xmldefinitions'
36
+ require 'x12/parser'
37
+
38
+ module X12
39
+ EMPTY = Empty.new()
40
+ TEST_REPEAT = 100
41
+ end
data/lib/x12/base.rb ADDED
@@ -0,0 +1,210 @@
1
+ #--
2
+ # This file is part of the X12Parser library that provides tools to
3
+ # manipulate X12 messages using Ruby native syntax.
4
+ #
5
+ # http://x12parser.rubyforge.org
6
+ #
7
+ # Copyright (C) 2008 APP Design, Inc.
8
+ #
9
+ # This library is free software; you can redistribute it and/or
10
+ # modify it under the terms of the GNU Lesser General Public
11
+ # License as published by the Free Software Foundation; either
12
+ # version 2.1 of the License, or (at your option) any later version.
13
+ #
14
+ # This library is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ # Lesser General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU Lesser General Public
20
+ # License along with this library; if not, write to the Free Software
21
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
+ #++
23
+ #
24
+ module X12
25
+
26
+ # $Id: Base.rb 70 2009-03-26 19:25:39Z ikk $
27
+ #
28
+ # Base class for Segment, Composite, and Loop. Contains setable
29
+ # segment_separator, field_separator, and composite_separator fields.
30
+
31
+ class Base
32
+
33
+ attr_reader :name, :repeats
34
+ attr_reader :segment_separator, :field_separator, :composite_separator, :next_repeat, :parsed_str, :nodes
35
+ attr_writer :segment_separator, :field_separator, :composite_separator, :next_repeat, :parsed_str, :nodes
36
+
37
+ # Creates a new base element with a given name, array of sub-elements, and array of repeats if any.
38
+ def initialize(name, arr, repeats = nil)
39
+ @nodes = arr
40
+ @name = name
41
+ @repeats = repeats
42
+ @next_repeat = nil # Next repeat of the same element, if any
43
+ @parsed_str = nil
44
+
45
+ @segment_separator = '~'
46
+ @field_separator = '*'
47
+ @composite_separator = ':'
48
+
49
+ #puts "Created #{name} #{object_id} #{self.class} "
50
+ end
51
+
52
+ # Formats a printable string containing the base element's content
53
+ def inspect
54
+ "#{self.class.to_s.sub(/^.*::/, '')} (#{name}) #{repeats} #{super.inspect[1..-2]} =<#{parsed_str}, #{next_repeat.inspect}> ".gsub(/\\*\"/, '"')
55
+ end
56
+
57
+ # Prints a tree-like representation of the element
58
+ def show(ind = '')
59
+ count = 0
60
+ self.to_a.each{|i|
61
+ #puts "#{ind}#{i.name} #{i.object_id} #{i.super.object_id} [#{count}]: #{i.parsed_str} #{i.super.class}"
62
+ puts "#{ind}#{i.name} [#{count}]: #{i.to_s.sub(/^(.{30})(.*?)(.{30})$/, '\1...\3')}"
63
+ # Force parsing a segment
64
+ if i.kind_of?(X12::Segment) && i.nodes[0]
65
+ i.find_field(i.nodes[0].name)
66
+ end
67
+ i.nodes.each{|j|
68
+ case
69
+ when j.kind_of?(X12::Base) : j.show(ind+' ')
70
+ when j.kind_of?(X12::Field) : puts "#{ind+' '}#{j.name} -> '#{j.to_s}'"
71
+ end
72
+ }
73
+ count += 1
74
+ }
75
+ end
76
+
77
+ # Try to parse the current element one more time if required. Returns the rest of the string
78
+ # or the same string if no more repeats are found or required.
79
+ def do_repeats(s)
80
+ if self.repeats.end > 1
81
+ possible_repeat = self.dup
82
+ p_s = possible_repeat.parse(s)
83
+ if p_s
84
+ s = p_s
85
+ self.next_repeat = possible_repeat
86
+ end # if parsed
87
+ end # more repeats
88
+ s
89
+ end # do_repeats
90
+
91
+ # Empty out the current element
92
+ def set_empty!
93
+ @next_repeat = nil
94
+ @parsed_str = nil
95
+ self
96
+ end
97
+
98
+ # Make a deep copy of the element
99
+ def dup
100
+ n = clone
101
+ n.set_empty!
102
+ n.nodes = n.nodes.dup
103
+ n.nodes.each_index{|i|
104
+ n.nodes[i] = n.nodes[i].dup
105
+ n.nodes[i].set_empty!
106
+ }
107
+ #puts "Duped #{self.class} #{self.name} #{self.object_id} #{super.object_id} -> #{n.name} #{n.super.object_id} #{n.object_id} "
108
+ n
109
+ end # dup
110
+
111
+ # Recursively find a sub-element, which also has to be of type Base.
112
+ def find(e)
113
+ #puts "Finding [#{e}] in #{self.class} #{name}"
114
+ case self
115
+ when X12::Loop
116
+ # Breadth first
117
+ res = nodes.find{|i| e==i.name }
118
+ return res if res
119
+ # Depth now
120
+ nodes.each{|i|
121
+ res = i.find(e) if i.kind_of?(X12::Loop)
122
+ return res unless res.nil? or EMPTY==res # otherwise keep looping
123
+ }
124
+ when X12::Segment
125
+ return find_field(e).to_s
126
+ end # case
127
+ return EMPTY
128
+ end
129
+
130
+ # Present self and all repeats as an array with self being #0
131
+ def to_a
132
+ res = [self]
133
+ nr = self.next_repeat
134
+ while nr do
135
+ res << nr
136
+ nr = nr.next_repeat
137
+ end
138
+ res
139
+ end
140
+
141
+ # Returns a parsed string representation of the element
142
+ def to_s
143
+ @parsed_str || ''
144
+ end
145
+
146
+ # The main method implementing Ruby-like access methods for nested elements
147
+ def method_missing(meth, *args, &block)
148
+ str = meth.id2name
149
+ str = str[1..str.length] if str =~ /^_\d+$/ # to avoid pure number names like 270, 997, etc.
150
+ #puts "Missing #{str}"
151
+ if str =~ /=$/
152
+ # Assignment
153
+ str.chop!
154
+ #puts str
155
+ case self
156
+ when X12::Segment
157
+ res = find_field(str)
158
+ throw Exception.new("No field '#{str}' in segment '#{self.name}'") if EMPTY == res
159
+ res.content = args[0].to_s
160
+ #puts res.inspect
161
+ else
162
+ throw Exception.new("Illegal assignment to #{meth} of #{self.class}")
163
+ end # case
164
+ else
165
+ # Retrieval
166
+ res = find(str)
167
+ yield res if block_given?
168
+ res
169
+ end # if assignment
170
+ end
171
+
172
+ # The main method implementing Ruby-like access methods for repeating elements
173
+ def [](*args)
174
+ #puts "squares #{args.inspect}"
175
+ return self.to_a[args[0]] || EMPTY
176
+ end
177
+
178
+ # Yields to accompanying block passing self as a parameter.
179
+ def with(&block)
180
+ if block_given?
181
+ yield self
182
+ else
183
+ throw Exception.new("Method 'with' requires a block.")
184
+ end
185
+ end
186
+
187
+ # Returns number of repeats
188
+ def size
189
+ return self.to_a.size
190
+ end
191
+
192
+ # Check if any of the fields has been set yet
193
+ def has_content?
194
+ self.nodes.find{|i| i.has_content?}
195
+ end
196
+
197
+ # Adds a repeat to a segment or loop. Returns a new segment/loop or self if empty.
198
+ def repeat
199
+ res = if self.has_content? # Do not repeat an empty segment
200
+ last_repeat = self.to_a[-1]
201
+ last_repeat.next_repeat = last_repeat.dup
202
+ else
203
+ self
204
+ end
205
+ yield res if block_given?
206
+ res
207
+ end
208
+
209
+ end # Base
210
+ end