STLExtract 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1967) hide show
  1. data/.gitignore +14 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +66 -0
  5. data/Rakefile +2 -0
  6. data/STLExtract-0.0.1.gem +0 -0
  7. data/STLExtract.gemspec +23 -0
  8. data/Slic3r/Linux/bin/slic3r +0 -0
  9. data/Slic3r/Linux/dll/libGLU.so +1 -0
  10. data/Slic3r/Linux/dll/libGLU.so.1 +1 -0
  11. data/Slic3r/Linux/dll/libGLU.so.1.3.08004 +0 -0
  12. data/Slic3r/Linux/dll/libperl.so +0 -0
  13. data/Slic3r/Linux/dll/libwx_baseu-2.9.so +1 -0
  14. data/Slic3r/Linux/dll/libwx_baseu-2.9.so.3 +1 -0
  15. data/Slic3r/Linux/dll/libwx_baseu-2.9.so.3.0.0 +0 -0
  16. data/Slic3r/Linux/dll/libwx_baseu_net-2.9.so +1 -0
  17. data/Slic3r/Linux/dll/libwx_baseu_net-2.9.so.3 +1 -0
  18. data/Slic3r/Linux/dll/libwx_baseu_net-2.9.so.3.0.0 +0 -0
  19. data/Slic3r/Linux/dll/libwx_gtk2u_adv-2.9.so +1 -0
  20. data/Slic3r/Linux/dll/libwx_gtk2u_adv-2.9.so.3 +1 -0
  21. data/Slic3r/Linux/dll/libwx_gtk2u_adv-2.9.so.3.0.0 +0 -0
  22. data/Slic3r/Linux/dll/libwx_gtk2u_core-2.9.so +1 -0
  23. data/Slic3r/Linux/dll/libwx_gtk2u_core-2.9.so.3 +1 -0
  24. data/Slic3r/Linux/dll/libwx_gtk2u_core-2.9.so.3.0.0 +0 -0
  25. data/Slic3r/Linux/dll/libwx_gtk2u_gl-2.9.so +1 -0
  26. data/Slic3r/Linux/dll/libwx_gtk2u_gl-2.9.so.3 +1 -0
  27. data/Slic3r/Linux/dll/libwx_gtk2u_gl-2.9.so.3.0.0 +0 -0
  28. data/Slic3r/Linux/dll/libwx_gtk2u_html-2.9.so +1 -0
  29. data/Slic3r/Linux/dll/libwx_gtk2u_html-2.9.so.3 +1 -0
  30. data/Slic3r/Linux/dll/libwx_gtk2u_html-2.9.so.3.0.0 +0 -0
  31. data/Slic3r/Linux/lib/std/Authen/SASL.pm +130 -0
  32. data/Slic3r/Linux/lib/std/Authen/SASL/CRAM_MD5.pm +18 -0
  33. data/Slic3r/Linux/lib/std/Authen/SASL/EXTERNAL.pm +18 -0
  34. data/Slic3r/Linux/lib/std/Authen/SASL/Perl.pm +344 -0
  35. data/Slic3r/Linux/lib/std/Authen/SASL/Perl/ANONYMOUS.pm +93 -0
  36. data/Slic3r/Linux/lib/std/Authen/SASL/Perl/CRAM_MD5.pm +105 -0
  37. data/Slic3r/Linux/lib/std/Authen/SASL/Perl/DIGEST_MD5.pm +877 -0
  38. data/Slic3r/Linux/lib/std/Authen/SASL/Perl/EXTERNAL.pm +97 -0
  39. data/Slic3r/Linux/lib/std/Authen/SASL/Perl/GSSAPI.pm +375 -0
  40. data/Slic3r/Linux/lib/std/Authen/SASL/Perl/LOGIN.pm +216 -0
  41. data/Slic3r/Linux/lib/std/Authen/SASL/Perl/PLAIN.pm +182 -0
  42. data/Slic3r/Linux/lib/std/B.pm +1202 -0
  43. data/Slic3r/Linux/lib/std/B/Deparse.pm +4900 -0
  44. data/Slic3r/Linux/lib/std/CPAN/Config.pm +55 -0
  45. data/Slic3r/Linux/lib/std/Cava/Global.pm +20 -0
  46. data/Slic3r/Linux/lib/std/Cava/Project.pm +19 -0
  47. data/Slic3r/Linux/lib/std/Class/Accessor.pm +744 -0
  48. data/Slic3r/Linux/lib/std/Class/Method/Modifiers.pm +481 -0
  49. data/Slic3r/Linux/lib/std/Class/Struct.pm +636 -0
  50. data/Slic3r/Linux/lib/std/Class/XSAccessor.pm +326 -0
  51. data/Slic3r/Linux/lib/std/Class/XSAccessor/Heavy.pm +76 -0
  52. data/Slic3r/Linux/lib/std/Compress/Raw/Bzip2.pm +361 -0
  53. data/Slic3r/Linux/lib/std/Compress/Raw/Zlib.pm +1429 -0
  54. data/Slic3r/Linux/lib/std/Config.pm +110 -0
  55. data/Slic3r/Linux/lib/std/Config_git.pl +12 -0
  56. data/Slic3r/Linux/lib/std/Config_heavy.pl +1355 -0
  57. data/Slic3r/Linux/lib/std/Crypt/CBC.pm +1050 -0
  58. data/Slic3r/Linux/lib/std/Crypt/SSLeay.pm +457 -0
  59. data/Slic3r/Linux/lib/std/Crypt/SSLeay/CTX.pm +4 -0
  60. data/Slic3r/Linux/lib/std/Crypt/SSLeay/Conn.pm +4 -0
  61. data/Slic3r/Linux/lib/std/Crypt/SSLeay/Err.pm +4 -0
  62. data/Slic3r/Linux/lib/std/Crypt/SSLeay/MainContext.pm +42 -0
  63. data/Slic3r/Linux/lib/std/Crypt/SSLeay/X509.pm +26 -0
  64. data/Slic3r/Linux/lib/std/Cwd.pm +855 -0
  65. data/Slic3r/Linux/lib/std/Data/Dumper.pm +1306 -0
  66. data/Slic3r/Linux/lib/std/Data/UUID.pm +204 -0
  67. data/Slic3r/Linux/lib/std/Devel/GlobalDestruction.pm +110 -0
  68. data/Slic3r/Linux/lib/std/Digest/HMAC.pm +120 -0
  69. data/Slic3r/Linux/lib/std/Digest/HMAC_MD5.pm +71 -0
  70. data/Slic3r/Linux/lib/std/Digest/MD5.pm +376 -0
  71. data/Slic3r/Linux/lib/std/Digest/SHA.pm +701 -0
  72. data/Slic3r/Linux/lib/std/Digest/base.pm +100 -0
  73. data/Slic3r/Linux/lib/std/Encode.pm +977 -0
  74. data/Slic3r/Linux/lib/std/Encode/Alias.pm +384 -0
  75. data/Slic3r/Linux/lib/std/Encode/Byte.pm +120 -0
  76. data/Slic3r/Linux/lib/std/Encode/CJKConstants.pm +66 -0
  77. data/Slic3r/Linux/lib/std/Encode/CN.pm +74 -0
  78. data/Slic3r/Linux/lib/std/Encode/CN/HZ.pm +198 -0
  79. data/Slic3r/Linux/lib/std/Encode/Config.pm +170 -0
  80. data/Slic3r/Linux/lib/std/Encode/EBCDIC.pm +45 -0
  81. data/Slic3r/Linux/lib/std/Encode/Encoder.pm +253 -0
  82. data/Slic3r/Linux/lib/std/Encode/Encoding.pm +360 -0
  83. data/Slic3r/Linux/lib/std/Encode/GSM0338.pm +292 -0
  84. data/Slic3r/Linux/lib/std/Encode/Guess.pm +355 -0
  85. data/Slic3r/Linux/lib/std/Encode/JP.pm +95 -0
  86. data/Slic3r/Linux/lib/std/Encode/JP/H2Z.pm +176 -0
  87. data/Slic3r/Linux/lib/std/Encode/JP/JIS7.pm +165 -0
  88. data/Slic3r/Linux/lib/std/Encode/KR.pm +69 -0
  89. data/Slic3r/Linux/lib/std/Encode/KR/2022_KR.pm +81 -0
  90. data/Slic3r/Linux/lib/std/Encode/Locale.pm +348 -0
  91. data/Slic3r/Linux/lib/std/Encode/MIME/Header.pm +242 -0
  92. data/Slic3r/Linux/lib/std/Encode/MIME/Header/ISO_2022_JP.pm +131 -0
  93. data/Slic3r/Linux/lib/std/Encode/MIME/Name.pm +94 -0
  94. data/Slic3r/Linux/lib/std/Encode/Symbol.pm +44 -0
  95. data/Slic3r/Linux/lib/std/Encode/TW.pm +75 -0
  96. data/Slic3r/Linux/lib/std/Encode/Unicode.pm +270 -0
  97. data/Slic3r/Linux/lib/std/Encode/Unicode/UTF7.pm +130 -0
  98. data/Slic3r/Linux/lib/std/Errno.pm +282 -0
  99. data/Slic3r/Linux/lib/std/Fcntl.pm +186 -0
  100. data/Slic3r/Linux/lib/std/File/Basename.pm +402 -0
  101. data/Slic3r/Linux/lib/std/File/Glob.pm +437 -0
  102. data/Slic3r/Linux/lib/std/File/GlobMapper.pm +679 -0
  103. data/Slic3r/Linux/lib/std/File/Listing.pm +435 -0
  104. data/Slic3r/Linux/lib/std/File/Path.pm +981 -0
  105. data/Slic3r/Linux/lib/std/File/Spec.pm +339 -0
  106. data/Slic3r/Linux/lib/std/File/Spec/Cygwin.pm +160 -0
  107. data/Slic3r/Linux/lib/std/File/Spec/Epoc.pm +79 -0
  108. data/Slic3r/Linux/lib/std/File/Spec/Functions.pm +130 -0
  109. data/Slic3r/Linux/lib/std/File/Spec/Mac.pm +786 -0
  110. data/Slic3r/Linux/lib/std/File/Spec/OS2.pm +276 -0
  111. data/Slic3r/Linux/lib/std/File/Spec/Unix.pm +595 -0
  112. data/Slic3r/Linux/lib/std/File/Spec/VMS.pm +679 -0
  113. data/Slic3r/Linux/lib/std/File/Spec/Win32.pm +446 -0
  114. data/Slic3r/Linux/lib/std/File/Temp.pm +2452 -0
  115. data/Slic3r/Linux/lib/std/File/stat.pm +345 -0
  116. data/Slic3r/Linux/lib/std/FileHandle.pm +262 -0
  117. data/Slic3r/Linux/lib/std/Filter/Util/Call.pm +498 -0
  118. data/Slic3r/Linux/lib/std/FindBin.pm +209 -0
  119. data/Slic3r/Linux/lib/std/Getopt/Long.pm +2693 -0
  120. data/Slic3r/Linux/lib/std/Growl/GNTP.pm +595 -0
  121. data/Slic3r/Linux/lib/std/HTML/Entities.pm +483 -0
  122. data/Slic3r/Linux/lib/std/HTML/HeadParser.pm +310 -0
  123. data/Slic3r/Linux/lib/std/HTML/Parser.pm +1240 -0
  124. data/Slic3r/Linux/lib/std/HTTP/Config.pm +436 -0
  125. data/Slic3r/Linux/lib/std/HTTP/Cookies.pm +781 -0
  126. data/Slic3r/Linux/lib/std/HTTP/Cookies/Netscape.pm +114 -0
  127. data/Slic3r/Linux/lib/std/HTTP/Date.pm +388 -0
  128. data/Slic3r/Linux/lib/std/HTTP/Headers.pm +849 -0
  129. data/Slic3r/Linux/lib/std/HTTP/Headers/Util.pm +199 -0
  130. data/Slic3r/Linux/lib/std/HTTP/Message.pm +1107 -0
  131. data/Slic3r/Linux/lib/std/HTTP/Negotiate.pm +528 -0
  132. data/Slic3r/Linux/lib/std/HTTP/Request.pm +242 -0
  133. data/Slic3r/Linux/lib/std/HTTP/Request/Common.pm +514 -0
  134. data/Slic3r/Linux/lib/std/HTTP/Response.pm +638 -0
  135. data/Slic3r/Linux/lib/std/HTTP/Status.pm +267 -0
  136. data/Slic3r/Linux/lib/std/I18N/Langinfo.pm +191 -0
  137. data/Slic3r/Linux/lib/std/IO.pm +68 -0
  138. data/Slic3r/Linux/lib/std/IO/Compress/Adapter/Bzip2.pm +162 -0
  139. data/Slic3r/Linux/lib/std/IO/Compress/Adapter/Deflate.pm +165 -0
  140. data/Slic3r/Linux/lib/std/IO/Compress/Base.pm +981 -0
  141. data/Slic3r/Linux/lib/std/IO/Compress/Base/Common.pm +956 -0
  142. data/Slic3r/Linux/lib/std/IO/Compress/Bzip2.pm +758 -0
  143. data/Slic3r/Linux/lib/std/IO/Compress/Deflate.pm +930 -0
  144. data/Slic3r/Linux/lib/std/IO/Compress/Gzip.pm +1242 -0
  145. data/Slic3r/Linux/lib/std/IO/Compress/Gzip/Constants.pm +148 -0
  146. data/Slic3r/Linux/lib/std/IO/Compress/RawDeflate.pm +1017 -0
  147. data/Slic3r/Linux/lib/std/IO/Compress/Zlib/Constants.pm +77 -0
  148. data/Slic3r/Linux/lib/std/IO/Compress/Zlib/Extra.pm +198 -0
  149. data/Slic3r/Linux/lib/std/IO/Dir.pm +248 -0
  150. data/Slic3r/Linux/lib/std/IO/File.pm +204 -0
  151. data/Slic3r/Linux/lib/std/IO/Handle.pm +646 -0
  152. data/Slic3r/Linux/lib/std/IO/Pipe.pm +257 -0
  153. data/Slic3r/Linux/lib/std/IO/Seekable.pm +128 -0
  154. data/Slic3r/Linux/lib/std/IO/Select.pm +387 -0
  155. data/Slic3r/Linux/lib/std/IO/Socket.pm +540 -0
  156. data/Slic3r/Linux/lib/std/IO/Socket/INET.pm +464 -0
  157. data/Slic3r/Linux/lib/std/IO/Socket/SSL.pm +2456 -0
  158. data/Slic3r/Linux/lib/std/IO/Socket/UNIX.pm +143 -0
  159. data/Slic3r/Linux/lib/std/IO/Uncompress/Adapter/Bunzip2.pm +112 -0
  160. data/Slic3r/Linux/lib/std/IO/Uncompress/Adapter/Inflate.pm +158 -0
  161. data/Slic3r/Linux/lib/std/IO/Uncompress/Base.pm +1483 -0
  162. data/Slic3r/Linux/lib/std/IO/Uncompress/Bunzip2.pm +858 -0
  163. data/Slic3r/Linux/lib/std/IO/Uncompress/Gunzip.pm +1111 -0
  164. data/Slic3r/Linux/lib/std/IO/Uncompress/Inflate.pm +982 -0
  165. data/Slic3r/Linux/lib/std/IO/Uncompress/RawInflate.pm +1110 -0
  166. data/Slic3r/Linux/lib/std/Import/Into.pm +289 -0
  167. data/Slic3r/Linux/lib/std/LWP.pm +667 -0
  168. data/Slic3r/Linux/lib/std/LWP/Authen/Basic.pm +65 -0
  169. data/Slic3r/Linux/lib/std/LWP/Authen/Digest.pm +68 -0
  170. data/Slic3r/Linux/lib/std/LWP/Authen/Ntlm.pm +180 -0
  171. data/Slic3r/Linux/lib/std/LWP/ConnCache.pm +313 -0
  172. data/Slic3r/Linux/lib/std/LWP/MediaTypes.pm +280 -0
  173. data/Slic3r/Linux/lib/std/LWP/MemberMixin.pm +44 -0
  174. data/Slic3r/Linux/lib/std/LWP/Protocol.pm +291 -0
  175. data/Slic3r/Linux/lib/std/LWP/Protocol/GHTTP.pm +73 -0
  176. data/Slic3r/Linux/lib/std/LWP/Protocol/cpan.pm +72 -0
  177. data/Slic3r/Linux/lib/std/LWP/Protocol/data.pm +52 -0
  178. data/Slic3r/Linux/lib/std/LWP/Protocol/file.pm +146 -0
  179. data/Slic3r/Linux/lib/std/LWP/Protocol/ftp.pm +543 -0
  180. data/Slic3r/Linux/lib/std/LWP/Protocol/gopher.pm +213 -0
  181. data/Slic3r/Linux/lib/std/LWP/Protocol/http.pm +501 -0
  182. data/Slic3r/Linux/lib/std/LWP/Protocol/https.pm +132 -0
  183. data/Slic3r/Linux/lib/std/LWP/Protocol/loopback.pm +26 -0
  184. data/Slic3r/Linux/lib/std/LWP/Protocol/mailto.pm +183 -0
  185. data/Slic3r/Linux/lib/std/LWP/Protocol/nntp.pm +145 -0
  186. data/Slic3r/Linux/lib/std/LWP/Protocol/nogo.pm +24 -0
  187. data/Slic3r/Linux/lib/std/LWP/UserAgent.pm +1859 -0
  188. data/Slic3r/Linux/lib/std/List/Util.pm +433 -0
  189. data/Slic3r/Linux/lib/std/MIME/Base64.pm +188 -0
  190. data/Slic3r/Linux/lib/std/MIME/QuotedPrint.pm +114 -0
  191. data/Slic3r/Linux/lib/std/Mail/Address.pm +273 -0
  192. data/Slic3r/Linux/lib/std/Mail/Header.pm +637 -0
  193. data/Slic3r/Linux/lib/std/Mail/Internet.pm +546 -0
  194. data/Slic3r/Linux/lib/std/Mail/Mailer.pm +215 -0
  195. data/Slic3r/Linux/lib/std/Mail/Util.pm +149 -0
  196. data/Slic3r/Linux/lib/std/Math/BigFloat.pm +4493 -0
  197. data/Slic3r/Linux/lib/std/Math/BigFloat/Trace.pm +58 -0
  198. data/Slic3r/Linux/lib/std/Math/BigInt.pm +5284 -0
  199. data/Slic3r/Linux/lib/std/Math/BigInt/Calc.pm +2970 -0
  200. data/Slic3r/Linux/lib/std/Math/BigInt/CalcEmu.pm +329 -0
  201. data/Slic3r/Linux/lib/std/Math/BigInt/FastCalc.pm +112 -0
  202. data/Slic3r/Linux/lib/std/Math/BigInt/Trace.pm +47 -0
  203. data/Slic3r/Linux/lib/std/Math/Complex.pm +2093 -0
  204. data/Slic3r/Linux/lib/std/Math/Libm.pm +199 -0
  205. data/Slic3r/Linux/lib/std/Math/PlanePath.pm +2211 -0
  206. data/Slic3r/Linux/lib/std/Math/PlanePath/ArchimedeanChords.pm +686 -0
  207. data/Slic3r/Linux/lib/std/Math/PlanePath/Base/Digits.pm +389 -0
  208. data/Slic3r/Linux/lib/std/Math/PlanePath/Base/Generic.pm +242 -0
  209. data/Slic3r/Linux/lib/std/Math/PlanePath/Base/NSEW.pm +114 -0
  210. data/Slic3r/Linux/lib/std/Math/PlanePath/Flowsnake.pm +886 -0
  211. data/Slic3r/Linux/lib/std/Math/PlanePath/FlowsnakeCentres.pm +1018 -0
  212. data/Slic3r/Linux/lib/std/Math/PlanePath/HilbertCurve.pm +772 -0
  213. data/Slic3r/Linux/lib/std/Math/PlanePath/MultipleRings.pm +1715 -0
  214. data/Slic3r/Linux/lib/std/Math/PlanePath/OctagramSpiral.pm +469 -0
  215. data/Slic3r/Linux/lib/std/Math/PlanePath/SacksSpiral.pm +440 -0
  216. data/Slic3r/Linux/lib/std/Math/Trig.pm +768 -0
  217. data/Slic3r/Linux/lib/std/Method/Generate/Accessor.pm +652 -0
  218. data/Slic3r/Linux/lib/std/Method/Generate/BuildAll.pm +33 -0
  219. data/Slic3r/Linux/lib/std/Method/Generate/Constructor.pm +221 -0
  220. data/Slic3r/Linux/lib/std/Method/Generate/DemolishAll.pm +48 -0
  221. data/Slic3r/Linux/lib/std/Module/Runtime.pm +494 -0
  222. data/Slic3r/Linux/lib/std/Moo.pm +989 -0
  223. data/Slic3r/Linux/lib/std/Moo/HandleMoose.pm +210 -0
  224. data/Slic3r/Linux/lib/std/Moo/HandleMoose/FakeMetaClass.pm +21 -0
  225. data/Slic3r/Linux/lib/std/Moo/HandleMoose/_TypeMap.pm +72 -0
  226. data/Slic3r/Linux/lib/std/Moo/Object.pm +80 -0
  227. data/Slic3r/Linux/lib/std/Moo/Role.pm +475 -0
  228. data/Slic3r/Linux/lib/std/Moo/_Utils.pm +124 -0
  229. data/Slic3r/Linux/lib/std/Moo/_mro.pm +10 -0
  230. data/Slic3r/Linux/lib/std/Moo/sification.pm +22 -0
  231. data/Slic3r/Linux/lib/std/Mozilla/CA.pm +99 -0
  232. data/Slic3r/Linux/lib/std/Mozilla/CA/cacert.pem +3366 -0
  233. data/Slic3r/Linux/lib/std/Net/Cmd.pm +783 -0
  234. data/Slic3r/Linux/lib/std/Net/Config.pm +312 -0
  235. data/Slic3r/Linux/lib/std/Net/Domain.pm +347 -0
  236. data/Slic3r/Linux/lib/std/Net/FTP.pm +1829 -0
  237. data/Slic3r/Linux/lib/std/Net/FTP/A.pm +111 -0
  238. data/Slic3r/Linux/lib/std/Net/FTP/E.pm +8 -0
  239. data/Slic3r/Linux/lib/std/Net/FTP/I.pm +80 -0
  240. data/Slic3r/Linux/lib/std/Net/FTP/L.pm +8 -0
  241. data/Slic3r/Linux/lib/std/Net/FTP/dataconn.pm +124 -0
  242. data/Slic3r/Linux/lib/std/Net/HTTP.pm +279 -0
  243. data/Slic3r/Linux/lib/std/Net/HTTP/Methods.pm +593 -0
  244. data/Slic3r/Linux/lib/std/Net/HTTPS.pm +110 -0
  245. data/Slic3r/Linux/lib/std/Net/NNTP.pm +1140 -0
  246. data/Slic3r/Linux/lib/std/Net/Netrc.pm +325 -0
  247. data/Slic3r/Linux/lib/std/Net/SMTP.pm +867 -0
  248. data/Slic3r/Linux/lib/std/Net/SSL.pm +639 -0
  249. data/Slic3r/Linux/lib/std/Net/SSLeay.pm +2692 -0
  250. data/Slic3r/Linux/lib/std/OpenGL.pm +6288 -0
  251. data/Slic3r/Linux/lib/std/POSIX.pm +1037 -0
  252. data/Slic3r/Linux/lib/std/Params/Validate/XS.pm +51 -0
  253. data/Slic3r/Linux/lib/std/PerlIO.pm +332 -0
  254. data/Slic3r/Linux/lib/std/PerlIO/encoding.pm +53 -0
  255. data/Slic3r/Linux/lib/std/PerlIO/scalar.pm +41 -0
  256. data/Slic3r/Linux/lib/std/PerlIO/via.pm +243 -0
  257. data/Slic3r/Linux/lib/std/PerlIO/via/QuotedPrint.pm +94 -0
  258. data/Slic3r/Linux/lib/std/Pod/Escapes.pm +721 -0
  259. data/Slic3r/Linux/lib/std/Pod/InputObjects.pm +936 -0
  260. data/Slic3r/Linux/lib/std/Pod/Parser.pm +1829 -0
  261. data/Slic3r/Linux/lib/std/Pod/PlainText.pm +738 -0
  262. data/Slic3r/Linux/lib/std/Pod/Select.pm +746 -0
  263. data/Slic3r/Linux/lib/std/Pod/Simple.pm +1535 -0
  264. data/Slic3r/Linux/lib/std/Pod/Simple/BlackBox.pm +1930 -0
  265. data/Slic3r/Linux/lib/std/Pod/Simple/LinkSection.pm +174 -0
  266. data/Slic3r/Linux/lib/std/Pod/Simple/TiedOutFH.pm +105 -0
  267. data/Slic3r/Linux/lib/std/Pod/Simple/Transcode.pm +35 -0
  268. data/Slic3r/Linux/lib/std/Pod/Text.pm +886 -0
  269. data/Slic3r/Linux/lib/std/Pod/Usage.pm +730 -0
  270. data/Slic3r/Linux/lib/std/Role/Tiny.pm +698 -0
  271. data/Slic3r/Linux/lib/std/SVG.pm +341 -0
  272. data/Slic3r/Linux/lib/std/SVG/DOM.pm +804 -0
  273. data/Slic3r/Linux/lib/std/SVG/Element.pm +1649 -0
  274. data/Slic3r/Linux/lib/std/SVG/Extension.pm +458 -0
  275. data/Slic3r/Linux/lib/std/SVG/XML.pm +185 -0
  276. data/Slic3r/Linux/lib/std/Scalar/Util.pm +325 -0
  277. data/Slic3r/Linux/lib/std/SelectSaver.pm +54 -0
  278. data/Slic3r/Linux/lib/std/Slic3r.pm +180 -0
  279. data/Slic3r/Linux/lib/std/Slic3r/Build.pm +8 -0
  280. data/Slic3r/Linux/lib/std/Slic3r/Config.pm +456 -0
  281. data/Slic3r/Linux/lib/std/Slic3r/ExPolygon.pm +53 -0
  282. data/Slic3r/Linux/lib/std/Slic3r/Extruder.pm +52 -0
  283. data/Slic3r/Linux/lib/std/Slic3r/ExtrusionLoop.pm +12 -0
  284. data/Slic3r/Linux/lib/std/Slic3r/ExtrusionPath.pm +12 -0
  285. data/Slic3r/Linux/lib/std/Slic3r/ExtrusionPath/Collection.pm +5 -0
  286. data/Slic3r/Linux/lib/std/Slic3r/Fill.pm +259 -0
  287. data/Slic3r/Linux/lib/std/Slic3r/Fill/ArchimedeanChords.pm +7 -0
  288. data/Slic3r/Linux/lib/std/Slic3r/Fill/Base.pm +81 -0
  289. data/Slic3r/Linux/lib/std/Slic3r/Fill/Concentric.pm +65 -0
  290. data/Slic3r/Linux/lib/std/Slic3r/Fill/Flowsnake.pm +18 -0
  291. data/Slic3r/Linux/lib/std/Slic3r/Fill/HilbertCurve.pm +7 -0
  292. data/Slic3r/Linux/lib/std/Slic3r/Fill/Honeycomb.pm +128 -0
  293. data/Slic3r/Linux/lib/std/Slic3r/Fill/Line.pm +8 -0
  294. data/Slic3r/Linux/lib/std/Slic3r/Fill/OctagramSpiral.pm +9 -0
  295. data/Slic3r/Linux/lib/std/Slic3r/Fill/PlanePath.pm +61 -0
  296. data/Slic3r/Linux/lib/std/Slic3r/Fill/Rectilinear.pm +110 -0
  297. data/Slic3r/Linux/lib/std/Slic3r/Flow.pm +12 -0
  298. data/Slic3r/Linux/lib/std/Slic3r/Format/AMF.pm +122 -0
  299. data/Slic3r/Linux/lib/std/Slic3r/Format/AMF/Parser.pm +157 -0
  300. data/Slic3r/Linux/lib/std/Slic3r/Format/OBJ.pm +36 -0
  301. data/Slic3r/Linux/lib/std/Slic3r/Format/STL.pm +39 -0
  302. data/Slic3r/Linux/lib/std/Slic3r/GCode.pm +696 -0
  303. data/Slic3r/Linux/lib/std/Slic3r/GCode/ArcFitting.pm +242 -0
  304. data/Slic3r/Linux/lib/std/Slic3r/GCode/CoolingBuffer.pm +80 -0
  305. data/Slic3r/Linux/lib/std/Slic3r/GCode/Layer.pm +238 -0
  306. data/Slic3r/Linux/lib/std/Slic3r/GCode/MotionPlanner.pm +317 -0
  307. data/Slic3r/Linux/lib/std/Slic3r/GCode/PlaceholderParser.pm +83 -0
  308. data/Slic3r/Linux/lib/std/Slic3r/GCode/Reader.pm +72 -0
  309. data/Slic3r/Linux/lib/std/Slic3r/GCode/SpiralVase.pm +81 -0
  310. data/Slic3r/Linux/lib/std/Slic3r/GCode/VibrationLimit.pm +64 -0
  311. data/Slic3r/Linux/lib/std/Slic3r/GUI.pm +586 -0
  312. data/Slic3r/Linux/lib/std/Slic3r/GUI/AboutDialog.pm +110 -0
  313. data/Slic3r/Linux/lib/std/Slic3r/GUI/ConfigWizard.pm +373 -0
  314. data/Slic3r/Linux/lib/std/Slic3r/GUI/OptionsGroup.pm +504 -0
  315. data/Slic3r/Linux/lib/std/Slic3r/GUI/Plater.pm +1437 -0
  316. data/Slic3r/Linux/lib/std/Slic3r/GUI/Plater/ObjectCutDialog.pm +153 -0
  317. data/Slic3r/Linux/lib/std/Slic3r/GUI/Plater/ObjectPartsPanel.pm +268 -0
  318. data/Slic3r/Linux/lib/std/Slic3r/GUI/Plater/ObjectPreviewDialog.pm +30 -0
  319. data/Slic3r/Linux/lib/std/Slic3r/GUI/Plater/ObjectSettingsDialog.pm +175 -0
  320. data/Slic3r/Linux/lib/std/Slic3r/GUI/Plater/OverrideSettingsPanel.pm +137 -0
  321. data/Slic3r/Linux/lib/std/Slic3r/GUI/Preferences.pm +78 -0
  322. data/Slic3r/Linux/lib/std/Slic3r/GUI/PreviewCanvas.pm +506 -0
  323. data/Slic3r/Linux/lib/std/Slic3r/GUI/SimpleTab.pm +230 -0
  324. data/Slic3r/Linux/lib/std/Slic3r/GUI/SkeinPanel.pm +550 -0
  325. data/Slic3r/Linux/lib/std/Slic3r/GUI/Tab.pm +944 -0
  326. data/Slic3r/Linux/lib/std/Slic3r/Geometry.pm +753 -0
  327. data/Slic3r/Linux/lib/std/Slic3r/Geometry/Clipper.pm +13 -0
  328. data/Slic3r/Linux/lib/std/Slic3r/Layer.pm +76 -0
  329. data/Slic3r/Linux/lib/std/Slic3r/Layer/BridgeDetector.pm +277 -0
  330. data/Slic3r/Linux/lib/std/Slic3r/Layer/Region.pm +545 -0
  331. data/Slic3r/Linux/lib/std/Slic3r/Line.pm +21 -0
  332. data/Slic3r/Linux/lib/std/Slic3r/Model.pm +608 -0
  333. data/Slic3r/Linux/lib/std/Slic3r/Point.pm +10 -0
  334. data/Slic3r/Linux/lib/std/Slic3r/Polygon.pm +95 -0
  335. data/Slic3r/Linux/lib/std/Slic3r/Polyline.pm +40 -0
  336. data/Slic3r/Linux/lib/std/Slic3r/Print.pm +1146 -0
  337. data/Slic3r/Linux/lib/std/Slic3r/Print/Object.pm +1023 -0
  338. data/Slic3r/Linux/lib/std/Slic3r/Print/Region.pm +63 -0
  339. data/Slic3r/Linux/lib/std/Slic3r/Print/Simple.pm +108 -0
  340. data/Slic3r/Linux/lib/std/Slic3r/Print/State.pm +28 -0
  341. data/Slic3r/Linux/lib/std/Slic3r/Print/SupportMaterial.pm +862 -0
  342. data/Slic3r/Linux/lib/std/Slic3r/SVG.pm +142 -0
  343. data/Slic3r/Linux/lib/std/Slic3r/Surface.pm +15 -0
  344. data/Slic3r/Linux/lib/std/Slic3r/Test/SectionCut.pm +170 -0
  345. data/Slic3r/Linux/lib/std/Slic3r/TriangleMesh.pm +22 -0
  346. data/Slic3r/Linux/lib/std/Slic3r/XS.pm +205 -0
  347. data/Slic3r/Linux/lib/std/Socket.pm +804 -0
  348. data/Slic3r/Linux/lib/std/Storable.pm +1227 -0
  349. data/Slic3r/Linux/lib/std/Sub/Defer.pm +141 -0
  350. data/Slic3r/Linux/lib/std/Sub/Exporter/Progressive.pm +158 -0
  351. data/Slic3r/Linux/lib/std/Sub/Quote.pm +368 -0
  352. data/Slic3r/Linux/lib/std/Symbol.pm +170 -0
  353. data/Slic3r/Linux/lib/std/Term/Cap.pm +799 -0
  354. data/Slic3r/Linux/lib/std/Text/ParseWords.pm +294 -0
  355. data/Slic3r/Linux/lib/std/Thread/Queue.pm +476 -0
  356. data/Slic3r/Linux/lib/std/Tie/Handle.pm +201 -0
  357. data/Slic3r/Linux/lib/std/Tie/Hash.pm +268 -0
  358. data/Slic3r/Linux/lib/std/Tie/Hash/NamedCapture.pm +49 -0
  359. data/Slic3r/Linux/lib/std/Tie/StdHandle.pm +71 -0
  360. data/Slic3r/Linux/lib/std/Time/HiRes.pm +591 -0
  361. data/Slic3r/Linux/lib/std/Time/Local.pm +384 -0
  362. data/Slic3r/Linux/lib/std/Time/Zone.pm +291 -0
  363. data/Slic3r/Linux/lib/std/UNIVERSAL.pm +214 -0
  364. data/Slic3r/Linux/lib/std/URI.pm +1131 -0
  365. data/Slic3r/Linux/lib/std/URI/Escape.pm +208 -0
  366. data/Slic3r/Linux/lib/std/URI/Heuristic.pm +253 -0
  367. data/Slic3r/Linux/lib/std/URI/IRI.pm +44 -0
  368. data/Slic3r/Linux/lib/std/URI/QueryParam.pm +193 -0
  369. data/Slic3r/Linux/lib/std/URI/Split.pm +96 -0
  370. data/Slic3r/Linux/lib/std/URI/URL.pm +305 -0
  371. data/Slic3r/Linux/lib/std/URI/WithBase.pm +171 -0
  372. data/Slic3r/Linux/lib/std/URI/_foreign.pm +6 -0
  373. data/Slic3r/Linux/lib/std/URI/_generic.pm +252 -0
  374. data/Slic3r/Linux/lib/std/URI/_idna.pm +87 -0
  375. data/Slic3r/Linux/lib/std/URI/_ldap.pm +140 -0
  376. data/Slic3r/Linux/lib/std/URI/_login.pm +10 -0
  377. data/Slic3r/Linux/lib/std/URI/_punycode.pm +202 -0
  378. data/Slic3r/Linux/lib/std/URI/_query.pm +93 -0
  379. data/Slic3r/Linux/lib/std/URI/_segment.pm +20 -0
  380. data/Slic3r/Linux/lib/std/URI/_server.pm +162 -0
  381. data/Slic3r/Linux/lib/std/URI/_userpass.pm +51 -0
  382. data/Slic3r/Linux/lib/std/URI/data.pm +140 -0
  383. data/Slic3r/Linux/lib/std/URI/file.pm +328 -0
  384. data/Slic3r/Linux/lib/std/URI/file/Base.pm +80 -0
  385. data/Slic3r/Linux/lib/std/URI/file/FAT.pm +23 -0
  386. data/Slic3r/Linux/lib/std/URI/file/Mac.pm +120 -0
  387. data/Slic3r/Linux/lib/std/URI/file/OS2.pm +28 -0
  388. data/Slic3r/Linux/lib/std/URI/file/QNX.pm +18 -0
  389. data/Slic3r/Linux/lib/std/URI/file/Unix.pm +55 -0
  390. data/Slic3r/Linux/lib/std/URI/file/Win32.pm +84 -0
  391. data/Slic3r/Linux/lib/std/URI/ftp.pm +45 -0
  392. data/Slic3r/Linux/lib/std/URI/gopher.pm +94 -0
  393. data/Slic3r/Linux/lib/std/URI/http.pm +25 -0
  394. data/Slic3r/Linux/lib/std/URI/https.pm +9 -0
  395. data/Slic3r/Linux/lib/std/URI/ldap.pm +122 -0
  396. data/Slic3r/Linux/lib/std/URI/ldapi.pm +30 -0
  397. data/Slic3r/Linux/lib/std/URI/ldaps.pm +9 -0
  398. data/Slic3r/Linux/lib/std/URI/mailto.pm +72 -0
  399. data/Slic3r/Linux/lib/std/URI/mms.pm +8 -0
  400. data/Slic3r/Linux/lib/std/URI/news.pm +68 -0
  401. data/Slic3r/Linux/lib/std/URI/nntp.pm +6 -0
  402. data/Slic3r/Linux/lib/std/URI/pop.pm +68 -0
  403. data/Slic3r/Linux/lib/std/URI/rlogin.pm +7 -0
  404. data/Slic3r/Linux/lib/std/URI/rsync.pm +12 -0
  405. data/Slic3r/Linux/lib/std/URI/rtsp.pm +8 -0
  406. data/Slic3r/Linux/lib/std/URI/rtspu.pm +8 -0
  407. data/Slic3r/Linux/lib/std/URI/sip.pm +86 -0
  408. data/Slic3r/Linux/lib/std/URI/sips.pm +9 -0
  409. data/Slic3r/Linux/lib/std/URI/snews.pm +10 -0
  410. data/Slic3r/Linux/lib/std/URI/ssh.pm +11 -0
  411. data/Slic3r/Linux/lib/std/URI/telnet.pm +7 -0
  412. data/Slic3r/Linux/lib/std/URI/tn3270.pm +7 -0
  413. data/Slic3r/Linux/lib/std/URI/urn.pm +97 -0
  414. data/Slic3r/Linux/lib/std/URI/urn/isbn.pm +102 -0
  415. data/Slic3r/Linux/lib/std/URI/urn/oid.pm +18 -0
  416. data/Slic3r/Linux/lib/std/Wx.pm +394 -0
  417. data/Slic3r/Linux/lib/std/Wx/App.pm +54 -0
  418. data/Slic3r/Linux/lib/std/Wx/DND.pm +74 -0
  419. data/Slic3r/Linux/lib/std/Wx/DropSource.pm +33 -0
  420. data/Slic3r/Linux/lib/std/Wx/Event.pm +469 -0
  421. data/Slic3r/Linux/lib/std/Wx/GLCanvas.pm +84 -0
  422. data/Slic3r/Linux/lib/std/Wx/Grid.pm +128 -0
  423. data/Slic3r/Linux/lib/std/Wx/Html.pm +67 -0
  424. data/Slic3r/Linux/lib/std/Wx/Locale.pm +61 -0
  425. data/Slic3r/Linux/lib/std/Wx/Menu.pm +74 -0
  426. data/Slic3r/Linux/lib/std/Wx/Mini.pm +181 -0
  427. data/Slic3r/Linux/lib/std/Wx/Print.pm +56 -0
  428. data/Slic3r/Linux/lib/std/Wx/RadioBox.pm +53 -0
  429. data/Slic3r/Linux/lib/std/Wx/Timer.pm +56 -0
  430. data/Slic3r/Linux/lib/std/Wx/Wx_Exp.pm +9494 -0
  431. data/Slic3r/Linux/lib/std/XML/NamespaceSupport.pm +583 -0
  432. data/Slic3r/Linux/lib/std/XML/SAX.pm +379 -0
  433. data/Slic3r/Linux/lib/std/XML/SAX/Base.pm +3176 -0
  434. data/Slic3r/Linux/lib/std/XML/SAX/BuildSAXBase.pl +847 -0
  435. data/Slic3r/Linux/lib/std/XML/SAX/DocumentLocator.pm +134 -0
  436. data/Slic3r/Linux/lib/std/XML/SAX/Exception.pm +129 -0
  437. data/Slic3r/Linux/lib/std/XML/SAX/ExpatXS.pm +354 -0
  438. data/Slic3r/Linux/lib/std/XML/SAX/ExpatXS/Encoding.pm +184 -0
  439. data/Slic3r/Linux/lib/std/XML/SAX/ExpatXS/Preload.pm +288 -0
  440. data/Slic3r/Linux/lib/std/XML/SAX/ParserDetails.ini +16 -0
  441. data/Slic3r/Linux/lib/std/XML/SAX/ParserFactory.pm +230 -0
  442. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl.pm +751 -0
  443. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/DTDDecls.pm +603 -0
  444. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/DebugHandler.pm +95 -0
  445. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/DocType.pm +180 -0
  446. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/EncodingDetect.pm +105 -0
  447. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/Exception.pm +67 -0
  448. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/NoUnicodeExt.pm +28 -0
  449. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/Productions.pm +147 -0
  450. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/Reader.pm +136 -0
  451. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/Reader/NoUnicodeExt.pm +25 -0
  452. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/Reader/Stream.pm +84 -0
  453. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/Reader/String.pm +78 -0
  454. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/Reader/URI.pm +57 -0
  455. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/Reader/UnicodeExt.pm +23 -0
  456. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/UnicodeExt.pm +22 -0
  457. data/Slic3r/Linux/lib/std/XML/SAX/PurePerl/XMLDecl.pm +129 -0
  458. data/Slic3r/Linux/lib/std/attributes.pm +490 -0
  459. data/Slic3r/Linux/lib/std/auto/B/B.so +0 -0
  460. data/Slic3r/Linux/lib/std/auto/Class/XSAccessor/XSAccessor.so +0 -0
  461. data/Slic3r/Linux/lib/std/auto/Compress/Raw/Bzip2/Bzip2.so +0 -0
  462. data/Slic3r/Linux/lib/std/auto/Compress/Raw/Bzip2/autosplit.ix +3 -0
  463. data/Slic3r/Linux/lib/std/auto/Compress/Raw/Zlib/Zlib.so +0 -0
  464. data/Slic3r/Linux/lib/std/auto/Compress/Raw/Zlib/autosplit.ix +3 -0
  465. data/Slic3r/Linux/lib/std/auto/Crypt/SSLeay/SSLeay.so +0 -0
  466. data/Slic3r/Linux/lib/std/auto/Cwd/Cwd.so +0 -0
  467. data/Slic3r/Linux/lib/std/auto/Data/Dumper/Dumper.so +0 -0
  468. data/Slic3r/Linux/lib/std/auto/Data/UUID/UUID.so +0 -0
  469. data/Slic3r/Linux/lib/std/auto/Digest/MD5/MD5.so +0 -0
  470. data/Slic3r/Linux/lib/std/auto/Digest/SHA/SHA.so +0 -0
  471. data/Slic3r/Linux/lib/std/auto/Encode/Byte/Byte.so +0 -0
  472. data/Slic3r/Linux/lib/std/auto/Encode/CN/CN.so +0 -0
  473. data/Slic3r/Linux/lib/std/auto/Encode/EBCDIC/EBCDIC.so +0 -0
  474. data/Slic3r/Linux/lib/std/auto/Encode/Encode.so +0 -0
  475. data/Slic3r/Linux/lib/std/auto/Encode/JP/JP.so +0 -0
  476. data/Slic3r/Linux/lib/std/auto/Encode/KR/KR.so +0 -0
  477. data/Slic3r/Linux/lib/std/auto/Encode/Symbol/Symbol.so +0 -0
  478. data/Slic3r/Linux/lib/std/auto/Encode/TW/TW.so +0 -0
  479. data/Slic3r/Linux/lib/std/auto/Encode/Unicode/Unicode.so +0 -0
  480. data/Slic3r/Linux/lib/std/auto/Fcntl/Fcntl.so +0 -0
  481. data/Slic3r/Linux/lib/std/auto/File/Glob/Glob.so +0 -0
  482. data/Slic3r/Linux/lib/std/auto/Filter/Util/Call/Call.so +0 -0
  483. data/Slic3r/Linux/lib/std/auto/HTML/Parser/Parser.so +0 -0
  484. data/Slic3r/Linux/lib/std/auto/I18N/Langinfo/Langinfo.so +0 -0
  485. data/Slic3r/Linux/lib/std/auto/IO/IO.so +0 -0
  486. data/Slic3r/Linux/lib/std/auto/List/Util/Util.so +0 -0
  487. data/Slic3r/Linux/lib/std/auto/MIME/Base64/Base64.so +0 -0
  488. data/Slic3r/Linux/lib/std/auto/Math/BigInt/FastCalc/FastCalc.so +0 -0
  489. data/Slic3r/Linux/lib/std/auto/Math/Libm/Libm.so +0 -0
  490. data/Slic3r/Linux/lib/std/auto/Math/Libm/autosplit.ix +3 -0
  491. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/SSLeay.so +0 -0
  492. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/autosplit.ix +78 -0
  493. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/debug_read.al +22 -0
  494. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/do_https.al +18 -0
  495. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/do_https2.al +13 -0
  496. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/do_https3.al +13 -0
  497. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/do_https4.al +12 -0
  498. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/do_httpx2.al +18 -0
  499. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/do_httpx3.al +43 -0
  500. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/do_httpx4.al +19 -0
  501. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/dump_peer_certificate.al +29 -0
  502. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/get_http.al +9 -0
  503. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/get_http3.al +9 -0
  504. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/get_http4.al +9 -0
  505. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/get_https.al +9 -0
  506. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/get_https3.al +9 -0
  507. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/get_https4.al +9 -0
  508. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/get_httpx.al +9 -0
  509. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/get_httpx3.al +9 -0
  510. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/get_httpx4.al +9 -0
  511. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/head_http.al +10 -0
  512. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/head_http3.al +10 -0
  513. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/head_http4.al +12 -0
  514. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/head_https.al +10 -0
  515. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/head_https3.al +10 -0
  516. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/head_https4.al +12 -0
  517. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/head_httpx.al +10 -0
  518. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/head_httpx3.al +10 -0
  519. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/head_httpx4.al +13 -0
  520. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/http_cat.al +34 -0
  521. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/https_cat.al +97 -0
  522. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/httpx_cat.al +18 -0
  523. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/make_form.al +25 -0
  524. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/make_headers.al +21 -0
  525. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/new_x_ctx.al +16 -0
  526. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/open_proxy_tcp_connection.al +31 -0
  527. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/open_tcp_connection.al +40 -0
  528. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/post_http.al +9 -0
  529. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/post_http3.al +9 -0
  530. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/post_http4.al +9 -0
  531. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/post_https.al +9 -0
  532. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/post_https3.al +9 -0
  533. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/post_https4.al +9 -0
  534. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/post_httpx.al +9 -0
  535. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/post_httpx3.al +9 -0
  536. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/post_httpx4.al +9 -0
  537. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/put_http.al +9 -0
  538. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/put_http3.al +9 -0
  539. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/put_http4.al +9 -0
  540. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/put_https.al +9 -0
  541. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/put_https3.al +9 -0
  542. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/put_https4.al +9 -0
  543. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/put_httpx.al +9 -0
  544. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/put_httpx3.al +9 -0
  545. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/put_httpx4.al +9 -0
  546. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/randomize.al +31 -0
  547. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/set_cert_and_key.al +23 -0
  548. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/set_proxy.al +16 -0
  549. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/set_server_cert_and_key.al +14 -0
  550. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/ssl_read_CRLF.al +10 -0
  551. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/ssl_read_all.al +28 -0
  552. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/ssl_read_until.al +95 -0
  553. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/ssl_write_CRLF.al +23 -0
  554. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/ssl_write_all.al +149 -0
  555. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/sslcat.al +99 -0
  556. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/tcp_read_CRLF.al +11 -0
  557. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/tcp_read_all.al +26 -0
  558. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/tcp_read_until.al +34 -0
  559. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/tcp_write_CRLF.al +23 -0
  560. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/tcp_write_all.al +36 -0
  561. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/tcpcat.al +37 -0
  562. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/tcpxcat.al +17 -0
  563. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/want_X509_lookup.al +15 -0
  564. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/want_nothing.al +16 -0
  565. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/want_read.al +9 -0
  566. data/Slic3r/Linux/lib/std/auto/Net/SSLeay/want_write.al +9 -0
  567. data/Slic3r/Linux/lib/std/auto/OpenGL/OpenGL.so +0 -0
  568. data/Slic3r/Linux/lib/std/auto/OpenGL/autosplit.ix +3 -0
  569. data/Slic3r/Linux/lib/std/auto/POSIX/POSIX.so +0 -0
  570. data/Slic3r/Linux/lib/std/auto/POSIX/SigAction/flags.al +9 -0
  571. data/Slic3r/Linux/lib/std/auto/POSIX/SigAction/handler.al +9 -0
  572. data/Slic3r/Linux/lib/std/auto/POSIX/SigAction/mask.al +9 -0
  573. data/Slic3r/Linux/lib/std/auto/POSIX/SigAction/new.al +11 -0
  574. data/Slic3r/Linux/lib/std/auto/POSIX/SigAction/safe.al +13 -0
  575. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/CLEAR.al +9 -0
  576. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/DELETE.al +9 -0
  577. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/EXISTS.al +9 -0
  578. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/FETCH.al +12 -0
  579. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/SCALAR.al +9 -0
  580. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/STORE.al +9 -0
  581. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/_check.al +15 -0
  582. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/_croak.al +13 -0
  583. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/_exist.al +14 -0
  584. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/_getsig.al +17 -0
  585. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/_init.al +14 -0
  586. data/Slic3r/Linux/lib/std/auto/POSIX/SigRt/new.al +17 -0
  587. data/Slic3r/Linux/lib/std/auto/POSIX/abs.al +13 -0
  588. data/Slic3r/Linux/lib/std/auto/POSIX/alarm.al +13 -0
  589. data/Slic3r/Linux/lib/std/auto/POSIX/assert.al +15 -0
  590. data/Slic3r/Linux/lib/std/auto/POSIX/atan2.al +13 -0
  591. data/Slic3r/Linux/lib/std/auto/POSIX/atexit.al +12 -0
  592. data/Slic3r/Linux/lib/std/auto/POSIX/atof.al +12 -0
  593. data/Slic3r/Linux/lib/std/auto/POSIX/atoi.al +12 -0
  594. data/Slic3r/Linux/lib/std/auto/POSIX/atol.al +12 -0
  595. data/Slic3r/Linux/lib/std/auto/POSIX/autosplit.ix +173 -0
  596. data/Slic3r/Linux/lib/std/auto/POSIX/bsearch.al +12 -0
  597. data/Slic3r/Linux/lib/std/auto/POSIX/calloc.al +12 -0
  598. data/Slic3r/Linux/lib/std/auto/POSIX/chdir.al +13 -0
  599. data/Slic3r/Linux/lib/std/auto/POSIX/chmod.al +13 -0
  600. data/Slic3r/Linux/lib/std/auto/POSIX/chown.al +13 -0
  601. data/Slic3r/Linux/lib/std/auto/POSIX/clearerr.al +12 -0
  602. data/Slic3r/Linux/lib/std/auto/POSIX/closedir.al +13 -0
  603. data/Slic3r/Linux/lib/std/auto/POSIX/cos.al +13 -0
  604. data/Slic3r/Linux/lib/std/auto/POSIX/creat.al +13 -0
  605. data/Slic3r/Linux/lib/std/auto/POSIX/div.al +12 -0
  606. data/Slic3r/Linux/lib/std/auto/POSIX/errno.al +13 -0
  607. data/Slic3r/Linux/lib/std/auto/POSIX/execl.al +12 -0
  608. data/Slic3r/Linux/lib/std/auto/POSIX/execle.al +12 -0
  609. data/Slic3r/Linux/lib/std/auto/POSIX/execlp.al +12 -0
  610. data/Slic3r/Linux/lib/std/auto/POSIX/execv.al +12 -0
  611. data/Slic3r/Linux/lib/std/auto/POSIX/execve.al +12 -0
  612. data/Slic3r/Linux/lib/std/auto/POSIX/execvp.al +12 -0
  613. data/Slic3r/Linux/lib/std/auto/POSIX/exit.al +13 -0
  614. data/Slic3r/Linux/lib/std/auto/POSIX/exp.al +13 -0
  615. data/Slic3r/Linux/lib/std/auto/POSIX/fabs.al +13 -0
  616. data/Slic3r/Linux/lib/std/auto/POSIX/fclose.al +12 -0
  617. data/Slic3r/Linux/lib/std/auto/POSIX/fcntl.al +13 -0
  618. data/Slic3r/Linux/lib/std/auto/POSIX/fdopen.al +12 -0
  619. data/Slic3r/Linux/lib/std/auto/POSIX/feof.al +12 -0
  620. data/Slic3r/Linux/lib/std/auto/POSIX/ferror.al +12 -0
  621. data/Slic3r/Linux/lib/std/auto/POSIX/fflush.al +12 -0
  622. data/Slic3r/Linux/lib/std/auto/POSIX/fgetc.al +12 -0
  623. data/Slic3r/Linux/lib/std/auto/POSIX/fgetpos.al +12 -0
  624. data/Slic3r/Linux/lib/std/auto/POSIX/fgets.al +12 -0
  625. data/Slic3r/Linux/lib/std/auto/POSIX/fileno.al +12 -0
  626. data/Slic3r/Linux/lib/std/auto/POSIX/fopen.al +12 -0
  627. data/Slic3r/Linux/lib/std/auto/POSIX/fork.al +13 -0
  628. data/Slic3r/Linux/lib/std/auto/POSIX/fprintf.al +12 -0
  629. data/Slic3r/Linux/lib/std/auto/POSIX/fputc.al +12 -0
  630. data/Slic3r/Linux/lib/std/auto/POSIX/fputs.al +12 -0
  631. data/Slic3r/Linux/lib/std/auto/POSIX/fread.al +12 -0
  632. data/Slic3r/Linux/lib/std/auto/POSIX/free.al +12 -0
  633. data/Slic3r/Linux/lib/std/auto/POSIX/freopen.al +12 -0
  634. data/Slic3r/Linux/lib/std/auto/POSIX/fscanf.al +12 -0
  635. data/Slic3r/Linux/lib/std/auto/POSIX/fseek.al +12 -0
  636. data/Slic3r/Linux/lib/std/auto/POSIX/fsetpos.al +12 -0
  637. data/Slic3r/Linux/lib/std/auto/POSIX/fstat.al +17 -0
  638. data/Slic3r/Linux/lib/std/auto/POSIX/fsync.al +12 -0
  639. data/Slic3r/Linux/lib/std/auto/POSIX/ftell.al +12 -0
  640. data/Slic3r/Linux/lib/std/auto/POSIX/fwrite.al +12 -0
  641. data/Slic3r/Linux/lib/std/auto/POSIX/getc.al +13 -0
  642. data/Slic3r/Linux/lib/std/auto/POSIX/getchar.al +13 -0
  643. data/Slic3r/Linux/lib/std/auto/POSIX/getegid.al +13 -0
  644. data/Slic3r/Linux/lib/std/auto/POSIX/getenv.al +13 -0
  645. data/Slic3r/Linux/lib/std/auto/POSIX/geteuid.al +13 -0
  646. data/Slic3r/Linux/lib/std/auto/POSIX/getgid.al +13 -0
  647. data/Slic3r/Linux/lib/std/auto/POSIX/getgrgid.al +13 -0
  648. data/Slic3r/Linux/lib/std/auto/POSIX/getgrnam.al +13 -0
  649. data/Slic3r/Linux/lib/std/auto/POSIX/getgroups.al +14 -0
  650. data/Slic3r/Linux/lib/std/auto/POSIX/getlogin.al +13 -0
  651. data/Slic3r/Linux/lib/std/auto/POSIX/getpgrp.al +13 -0
  652. data/Slic3r/Linux/lib/std/auto/POSIX/getpid.al +13 -0
  653. data/Slic3r/Linux/lib/std/auto/POSIX/getppid.al +13 -0
  654. data/Slic3r/Linux/lib/std/auto/POSIX/getpwnam.al +13 -0
  655. data/Slic3r/Linux/lib/std/auto/POSIX/getpwuid.al +13 -0
  656. data/Slic3r/Linux/lib/std/auto/POSIX/gets.al +13 -0
  657. data/Slic3r/Linux/lib/std/auto/POSIX/getuid.al +13 -0
  658. data/Slic3r/Linux/lib/std/auto/POSIX/gmtime.al +13 -0
  659. data/Slic3r/Linux/lib/std/auto/POSIX/isatty.al +13 -0
  660. data/Slic3r/Linux/lib/std/auto/POSIX/kill.al +13 -0
  661. data/Slic3r/Linux/lib/std/auto/POSIX/labs.al +12 -0
  662. data/Slic3r/Linux/lib/std/auto/POSIX/ldiv.al +12 -0
  663. data/Slic3r/Linux/lib/std/auto/POSIX/link.al +13 -0
  664. data/Slic3r/Linux/lib/std/auto/POSIX/load_imports.al +231 -0
  665. data/Slic3r/Linux/lib/std/auto/POSIX/localtime.al +13 -0
  666. data/Slic3r/Linux/lib/std/auto/POSIX/log.al +13 -0
  667. data/Slic3r/Linux/lib/std/auto/POSIX/longjmp.al +12 -0
  668. data/Slic3r/Linux/lib/std/auto/POSIX/malloc.al +12 -0
  669. data/Slic3r/Linux/lib/std/auto/POSIX/memchr.al +12 -0
  670. data/Slic3r/Linux/lib/std/auto/POSIX/memcmp.al +12 -0
  671. data/Slic3r/Linux/lib/std/auto/POSIX/memcpy.al +12 -0
  672. data/Slic3r/Linux/lib/std/auto/POSIX/memmove.al +12 -0
  673. data/Slic3r/Linux/lib/std/auto/POSIX/memset.al +12 -0
  674. data/Slic3r/Linux/lib/std/auto/POSIX/mkdir.al +13 -0
  675. data/Slic3r/Linux/lib/std/auto/POSIX/offsetof.al +12 -0
  676. data/Slic3r/Linux/lib/std/auto/POSIX/opendir.al +16 -0
  677. data/Slic3r/Linux/lib/std/auto/POSIX/perror.al +13 -0
  678. data/Slic3r/Linux/lib/std/auto/POSIX/pow.al +13 -0
  679. data/Slic3r/Linux/lib/std/auto/POSIX/printf.al +13 -0
  680. data/Slic3r/Linux/lib/std/auto/POSIX/putc.al +12 -0
  681. data/Slic3r/Linux/lib/std/auto/POSIX/putchar.al +12 -0
  682. data/Slic3r/Linux/lib/std/auto/POSIX/puts.al +12 -0
  683. data/Slic3r/Linux/lib/std/auto/POSIX/qsort.al +12 -0
  684. data/Slic3r/Linux/lib/std/auto/POSIX/raise.al +13 -0
  685. data/Slic3r/Linux/lib/std/auto/POSIX/rand.al +12 -0
  686. data/Slic3r/Linux/lib/std/auto/POSIX/readdir.al +13 -0
  687. data/Slic3r/Linux/lib/std/auto/POSIX/realloc.al +12 -0
  688. data/Slic3r/Linux/lib/std/auto/POSIX/redef.al +13 -0
  689. data/Slic3r/Linux/lib/std/auto/POSIX/remove.al +13 -0
  690. data/Slic3r/Linux/lib/std/auto/POSIX/rename.al +13 -0
  691. data/Slic3r/Linux/lib/std/auto/POSIX/rewind.al +13 -0
  692. data/Slic3r/Linux/lib/std/auto/POSIX/rewinddir.al +13 -0
  693. data/Slic3r/Linux/lib/std/auto/POSIX/rmdir.al +13 -0
  694. data/Slic3r/Linux/lib/std/auto/POSIX/scanf.al +12 -0
  695. data/Slic3r/Linux/lib/std/auto/POSIX/setbuf.al +12 -0
  696. data/Slic3r/Linux/lib/std/auto/POSIX/setjmp.al +12 -0
  697. data/Slic3r/Linux/lib/std/auto/POSIX/setvbuf.al +12 -0
  698. data/Slic3r/Linux/lib/std/auto/POSIX/siglongjmp.al +12 -0
  699. data/Slic3r/Linux/lib/std/auto/POSIX/sigsetjmp.al +12 -0
  700. data/Slic3r/Linux/lib/std/auto/POSIX/sin.al +13 -0
  701. data/Slic3r/Linux/lib/std/auto/POSIX/sleep.al +13 -0
  702. data/Slic3r/Linux/lib/std/auto/POSIX/sprintf.al +13 -0
  703. data/Slic3r/Linux/lib/std/auto/POSIX/sqrt.al +13 -0
  704. data/Slic3r/Linux/lib/std/auto/POSIX/srand.al +12 -0
  705. data/Slic3r/Linux/lib/std/auto/POSIX/sscanf.al +12 -0
  706. data/Slic3r/Linux/lib/std/auto/POSIX/stat.al +13 -0
  707. data/Slic3r/Linux/lib/std/auto/POSIX/strcat.al +12 -0
  708. data/Slic3r/Linux/lib/std/auto/POSIX/strchr.al +12 -0
  709. data/Slic3r/Linux/lib/std/auto/POSIX/strcmp.al +12 -0
  710. data/Slic3r/Linux/lib/std/auto/POSIX/strcpy.al +12 -0
  711. data/Slic3r/Linux/lib/std/auto/POSIX/strcspn.al +12 -0
  712. data/Slic3r/Linux/lib/std/auto/POSIX/strerror.al +14 -0
  713. data/Slic3r/Linux/lib/std/auto/POSIX/strlen.al +12 -0
  714. data/Slic3r/Linux/lib/std/auto/POSIX/strncat.al +12 -0
  715. data/Slic3r/Linux/lib/std/auto/POSIX/strncmp.al +12 -0
  716. data/Slic3r/Linux/lib/std/auto/POSIX/strncpy.al +12 -0
  717. data/Slic3r/Linux/lib/std/auto/POSIX/strpbrk.al +12 -0
  718. data/Slic3r/Linux/lib/std/auto/POSIX/strrchr.al +12 -0
  719. data/Slic3r/Linux/lib/std/auto/POSIX/strspn.al +12 -0
  720. data/Slic3r/Linux/lib/std/auto/POSIX/strstr.al +13 -0
  721. data/Slic3r/Linux/lib/std/auto/POSIX/strtok.al +12 -0
  722. data/Slic3r/Linux/lib/std/auto/POSIX/system.al +13 -0
  723. data/Slic3r/Linux/lib/std/auto/POSIX/time.al +13 -0
  724. data/Slic3r/Linux/lib/std/auto/POSIX/tmpfile.al +12 -0
  725. data/Slic3r/Linux/lib/std/auto/POSIX/tolower.al +13 -0
  726. data/Slic3r/Linux/lib/std/auto/POSIX/toupper.al +13 -0
  727. data/Slic3r/Linux/lib/std/auto/POSIX/umask.al +13 -0
  728. data/Slic3r/Linux/lib/std/auto/POSIX/ungetc.al +12 -0
  729. data/Slic3r/Linux/lib/std/auto/POSIX/unimpl.al +14 -0
  730. data/Slic3r/Linux/lib/std/auto/POSIX/unlink.al +13 -0
  731. data/Slic3r/Linux/lib/std/auto/POSIX/usage.al +13 -0
  732. data/Slic3r/Linux/lib/std/auto/POSIX/utime.al +13 -0
  733. data/Slic3r/Linux/lib/std/auto/POSIX/vfprintf.al +12 -0
  734. data/Slic3r/Linux/lib/std/auto/POSIX/vprintf.al +12 -0
  735. data/Slic3r/Linux/lib/std/auto/POSIX/vsprintf.al +12 -0
  736. data/Slic3r/Linux/lib/std/auto/POSIX/wait.al +13 -0
  737. data/Slic3r/Linux/lib/std/auto/POSIX/waitpid.al +13 -0
  738. data/Slic3r/Linux/lib/std/auto/Params/Validate/XS/XS.so +0 -0
  739. data/Slic3r/Linux/lib/std/auto/PerlIO/encoding/encoding.so +0 -0
  740. data/Slic3r/Linux/lib/std/auto/PerlIO/scalar/scalar.so +0 -0
  741. data/Slic3r/Linux/lib/std/auto/PerlIO/via/via.so +0 -0
  742. data/Slic3r/Linux/lib/std/auto/Slic3r/XS/XS.so +0 -0
  743. data/Slic3r/Linux/lib/std/auto/Socket/Socket.so +0 -0
  744. data/Slic3r/Linux/lib/std/auto/Storable/Storable.so +0 -0
  745. data/Slic3r/Linux/lib/std/auto/Tie/Hash/NamedCapture/NamedCapture.so +0 -0
  746. data/Slic3r/Linux/lib/std/auto/Time/HiRes/HiRes.so +0 -0
  747. data/Slic3r/Linux/lib/std/auto/Wx/DND/DND.so +0 -0
  748. data/Slic3r/Linux/lib/std/auto/Wx/GLCanvas/GLCanvas.so +0 -0
  749. data/Slic3r/Linux/lib/std/auto/Wx/Grid/Grid.so +0 -0
  750. data/Slic3r/Linux/lib/std/auto/Wx/Html/Html.so +0 -0
  751. data/Slic3r/Linux/lib/std/auto/Wx/Print/Print.so +0 -0
  752. data/Slic3r/Linux/lib/std/auto/Wx/Wx.so +0 -0
  753. data/Slic3r/Linux/lib/std/auto/XML/SAX/ExpatXS/ExpatXS.so +0 -0
  754. data/Slic3r/Linux/lib/std/auto/attributes/attributes.so +0 -0
  755. data/Slic3r/Linux/lib/std/auto/mro/mro.so +0 -0
  756. data/Slic3r/Linux/lib/std/auto/re/re.so +0 -0
  757. data/Slic3r/Linux/lib/std/auto/threads/shared/shared.so +0 -0
  758. data/Slic3r/Linux/lib/std/auto/threads/threads.so +0 -0
  759. data/Slic3r/Linux/lib/std/base.pm +265 -0
  760. data/Slic3r/Linux/lib/std/bytes.pm +100 -0
  761. data/Slic3r/Linux/lib/std/bytes_heavy.pl +40 -0
  762. data/Slic3r/Linux/lib/std/constant.pm +397 -0
  763. data/Slic3r/Linux/lib/std/constant/defer.pm +441 -0
  764. data/Slic3r/Linux/lib/std/encoding.pm +669 -0
  765. data/Slic3r/Linux/lib/std/encoding/warnings.pm +239 -0
  766. data/Slic3r/Linux/lib/std/feature.pm +249 -0
  767. data/Slic3r/Linux/lib/std/filetest.pm +117 -0
  768. data/Slic3r/Linux/lib/std/integer.pm +93 -0
  769. data/Slic3r/Linux/lib/std/less.pm +158 -0
  770. data/Slic3r/Linux/lib/std/mro.pm +363 -0
  771. data/Slic3r/Linux/lib/std/overload.pm +1701 -0
  772. data/Slic3r/Linux/lib/std/parent.pm +136 -0
  773. data/Slic3r/Linux/lib/std/re.pm +604 -0
  774. data/Slic3r/Linux/lib/std/slic3r.pl +491 -0
  775. data/Slic3r/Linux/lib/std/sort.pm +196 -0
  776. data/Slic3r/Linux/lib/std/strictures.pm +296 -0
  777. data/Slic3r/Linux/lib/std/threads.pm +1115 -0
  778. data/Slic3r/Linux/lib/std/threads/shared.pm +616 -0
  779. data/Slic3r/Linux/lib/std/unicore/Heavy.pl +3261 -0
  780. data/Slic3r/Linux/lib/std/unicore/To/Age.pl +1036 -0
  781. data/Slic3r/Linux/lib/std/unicore/To/Bc.pl +555 -0
  782. data/Slic3r/Linux/lib/std/unicore/To/Bmg.pl +375 -0
  783. data/Slic3r/Linux/lib/std/unicore/To/Digit.pl +433 -0
  784. data/Slic3r/Linux/lib/std/unicore/To/Dt.pl +759 -0
  785. data/Slic3r/Linux/lib/std/unicore/To/Ea.pl +245 -0
  786. data/Slic3r/Linux/lib/std/unicore/To/Fold.pl +1177 -0
  787. data/Slic3r/Linux/lib/std/unicore/To/GCB.pl +1177 -0
  788. data/Slic3r/Linux/lib/std/unicore/To/Gc.pl +2639 -0
  789. data/Slic3r/Linux/lib/std/unicore/To/Hst.pl +822 -0
  790. data/Slic3r/Linux/lib/std/unicore/To/Jg.pl +144 -0
  791. data/Slic3r/Linux/lib/std/unicore/To/Jt.pl +292 -0
  792. data/Slic3r/Linux/lib/std/unicore/To/Lb.pl +2195 -0
  793. data/Slic3r/Linux/lib/std/unicore/To/Lower.pl +1061 -0
  794. data/Slic3r/Linux/lib/std/unicore/To/NFCQC.pl +126 -0
  795. data/Slic3r/Linux/lib/std/unicore/To/NFDQC.pl +245 -0
  796. data/Slic3r/Linux/lib/std/unicore/To/NFKCCF.pl +9815 -0
  797. data/Slic3r/Linux/lib/std/unicore/To/NFKCQC.pl +265 -0
  798. data/Slic3r/Linux/lib/std/unicore/To/NFKDQC.pl +367 -0
  799. data/Slic3r/Linux/lib/std/unicore/To/Na1.pl +1996 -0
  800. data/Slic3r/Linux/lib/std/unicore/To/Nt.pl +198 -0
  801. data/Slic3r/Linux/lib/std/unicore/To/Nv.pl +1157 -0
  802. data/Slic3r/Linux/lib/std/unicore/To/SB.pl +1958 -0
  803. data/Slic3r/Linux/lib/std/unicore/To/Sc.pl +702 -0
  804. data/Slic3r/Linux/lib/std/unicore/To/Title.pl +1117 -0
  805. data/Slic3r/Linux/lib/std/unicore/To/Upper.pl +1144 -0
  806. data/Slic3r/Linux/lib/std/unicore/To/WB.pl +691 -0
  807. data/Slic3r/Linux/lib/std/unicore/To/_slc.pl +46 -0
  808. data/Slic3r/Linux/lib/std/unicore/To/_stc.pl +45 -0
  809. data/Slic3r/Linux/lib/std/unicore/To/_suc.pl +45 -0
  810. data/Slic3r/Linux/lib/std/unicore/lib/AHex/N.pl +16 -0
  811. data/Slic3r/Linux/lib/std/unicore/lib/AHex/Y.pl +15 -0
  812. data/Slic3r/Linux/lib/std/unicore/lib/Age/1_1.pl +300 -0
  813. data/Slic3r/Linux/lib/std/unicore/lib/Age/2_0.pl +41 -0
  814. data/Slic3r/Linux/lib/std/unicore/lib/Age/2_1.pl +14 -0
  815. data/Slic3r/Linux/lib/std/unicore/lib/Age/3_0.pl +133 -0
  816. data/Slic3r/Linux/lib/std/unicore/lib/Age/3_1.pl +48 -0
  817. data/Slic3r/Linux/lib/std/unicore/lib/Age/3_2.pl +71 -0
  818. data/Slic3r/Linux/lib/std/unicore/lib/Age/4_0.pl +89 -0
  819. data/Slic3r/Linux/lib/std/unicore/lib/Age/4_1.pl +98 -0
  820. data/Slic3r/Linux/lib/std/unicore/lib/Age/5_0.pl +47 -0
  821. data/Slic3r/Linux/lib/std/unicore/lib/Age/5_1.pl +101 -0
  822. data/Slic3r/Linux/lib/std/unicore/lib/Age/5_2.pl +102 -0
  823. data/Slic3r/Linux/lib/std/unicore/lib/Age/6_0.pl +118 -0
  824. data/Slic3r/Linux/lib/std/unicore/lib/Age/Unassign.pl +522 -0
  825. data/Slic3r/Linux/lib/std/unicore/lib/Alpha/N.pl +499 -0
  826. data/Slic3r/Linux/lib/std/unicore/lib/Alpha/Y.pl +498 -0
  827. data/Slic3r/Linux/lib/std/unicore/lib/Bc/AL.pl +30 -0
  828. data/Slic3r/Linux/lib/std/unicore/lib/Bc/AN.pl +17 -0
  829. data/Slic3r/Linux/lib/std/unicore/lib/Bc/B.pl +17 -0
  830. data/Slic3r/Linux/lib/std/unicore/lib/Bc/BN.pl +41 -0
  831. data/Slic3r/Linux/lib/std/unicore/lib/Bc/CS.pl +25 -0
  832. data/Slic3r/Linux/lib/std/unicore/lib/Bc/EN.pl +23 -0
  833. data/Slic3r/Linux/lib/std/unicore/lib/Bc/ES.pl +21 -0
  834. data/Slic3r/Linux/lib/std/unicore/lib/Bc/ET.pl +33 -0
  835. data/Slic3r/Linux/lib/std/unicore/lib/Bc/L.pl +358 -0
  836. data/Slic3r/Linux/lib/std/unicore/lib/Bc/LRE.pl +13 -0
  837. data/Slic3r/Linux/lib/std/unicore/lib/Bc/LRO.pl +13 -0
  838. data/Slic3r/Linux/lib/std/unicore/lib/Bc/NSM.pl +211 -0
  839. data/Slic3r/Linux/lib/std/unicore/lib/Bc/ON.pl +195 -0
  840. data/Slic3r/Linux/lib/std/unicore/lib/Bc/PDF.pl +13 -0
  841. data/Slic3r/Linux/lib/std/unicore/lib/Bc/R.pl +40 -0
  842. data/Slic3r/Linux/lib/std/unicore/lib/Bc/RLE.pl +13 -0
  843. data/Slic3r/Linux/lib/std/unicore/lib/Bc/RLO.pl +13 -0
  844. data/Slic3r/Linux/lib/std/unicore/lib/Bc/S.pl +15 -0
  845. data/Slic3r/Linux/lib/std/unicore/lib/Bc/WS.pl +20 -0
  846. data/Slic3r/Linux/lib/std/unicore/lib/BidiC/N.pl +15 -0
  847. data/Slic3r/Linux/lib/std/unicore/lib/BidiC/Y.pl +14 -0
  848. data/Slic3r/Linux/lib/std/unicore/lib/BidiM/N.pl +124 -0
  849. data/Slic3r/Linux/lib/std/unicore/lib/BidiM/Y.pl +123 -0
  850. data/Slic3r/Linux/lib/std/unicore/lib/Blk/ASCII.pl +13 -0
  851. data/Slic3r/Linux/lib/std/unicore/lib/Blk/AegeanNu.pl +13 -0
  852. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Alchemic.pl +13 -0
  853. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Alphabet.pl +13 -0
  854. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Ancient2.pl +13 -0
  855. data/Slic3r/Linux/lib/std/unicore/lib/Blk/AncientG.pl +13 -0
  856. data/Slic3r/Linux/lib/std/unicore/lib/Blk/AncientS.pl +13 -0
  857. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Arabic.pl +13 -0
  858. data/Slic3r/Linux/lib/std/unicore/lib/Blk/ArabicP2.pl +13 -0
  859. data/Slic3r/Linux/lib/std/unicore/lib/Blk/ArabicPr.pl +13 -0
  860. data/Slic3r/Linux/lib/std/unicore/lib/Blk/ArabicSu.pl +13 -0
  861. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Armenian.pl +13 -0
  862. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Arrows.pl +13 -0
  863. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Avestan.pl +13 -0
  864. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Balinese.pl +13 -0
  865. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Bamum.pl +13 -0
  866. data/Slic3r/Linux/lib/std/unicore/lib/Blk/BamumSup.pl +13 -0
  867. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Batak.pl +13 -0
  868. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Bengali.pl +13 -0
  869. data/Slic3r/Linux/lib/std/unicore/lib/Blk/BlockEle.pl +13 -0
  870. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Bopomof2.pl +13 -0
  871. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Bopomofo.pl +13 -0
  872. data/Slic3r/Linux/lib/std/unicore/lib/Blk/BoxDrawi.pl +13 -0
  873. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Brahmi.pl +13 -0
  874. data/Slic3r/Linux/lib/std/unicore/lib/Blk/BrailleP.pl +13 -0
  875. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Buginese.pl +13 -0
  876. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Buhid.pl +13 -0
  877. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Byzantin.pl +13 -0
  878. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKComp2.pl +13 -0
  879. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKComp3.pl +13 -0
  880. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKComp4.pl +13 -0
  881. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKCompa.pl +13 -0
  882. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKRadic.pl +13 -0
  883. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKStrok.pl +13 -0
  884. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKSymbo.pl +13 -0
  885. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKUnif2.pl +13 -0
  886. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKUnif3.pl +13 -0
  887. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKUnif4.pl +13 -0
  888. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKUnif5.pl +13 -0
  889. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CJKUnifi.pl +13 -0
  890. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Canadian.pl +13 -0
  891. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Carian.pl +13 -0
  892. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Cham.pl +13 -0
  893. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Cherokee.pl +13 -0
  894. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Combini2.pl +13 -0
  895. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Combini3.pl +13 -0
  896. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Combini4.pl +13 -0
  897. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Combinin.pl +13 -0
  898. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CommonIn.pl +13 -0
  899. data/Slic3r/Linux/lib/std/unicore/lib/Blk/ControlP.pl +13 -0
  900. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Coptic.pl +13 -0
  901. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Counting.pl +13 -0
  902. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Cuneifo2.pl +13 -0
  903. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Cuneifor.pl +13 -0
  904. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Currency.pl +13 -0
  905. data/Slic3r/Linux/lib/std/unicore/lib/Blk/CypriotS.pl +13 -0
  906. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Cyrilli2.pl +13 -0
  907. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Cyrilli3.pl +13 -0
  908. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Cyrilli4.pl +13 -0
  909. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Cyrillic.pl +13 -0
  910. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Deseret.pl +13 -0
  911. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Devanag2.pl +13 -0
  912. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Devanaga.pl +13 -0
  913. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Dingbats.pl +13 -0
  914. data/Slic3r/Linux/lib/std/unicore/lib/Blk/DominoTi.pl +13 -0
  915. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Egyptian.pl +13 -0
  916. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Emoticon.pl +13 -0
  917. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Enclose2.pl +13 -0
  918. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Enclose3.pl +13 -0
  919. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Enclose4.pl +13 -0
  920. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Enclosed.pl +13 -0
  921. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Ethiopi2.pl +13 -0
  922. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Ethiopi3.pl +13 -0
  923. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Ethiopi4.pl +13 -0
  924. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Ethiopic.pl +13 -0
  925. data/Slic3r/Linux/lib/std/unicore/lib/Blk/GeneralP.pl +13 -0
  926. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Geometri.pl +13 -0
  927. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Georgia2.pl +13 -0
  928. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Georgian.pl +13 -0
  929. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Glagolit.pl +13 -0
  930. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Gothic.pl +13 -0
  931. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Greek.pl +13 -0
  932. data/Slic3r/Linux/lib/std/unicore/lib/Blk/GreekExt.pl +13 -0
  933. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Gujarati.pl +13 -0
  934. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Gurmukhi.pl +13 -0
  935. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Halfwidt.pl +13 -0
  936. data/Slic3r/Linux/lib/std/unicore/lib/Blk/HangulCo.pl +13 -0
  937. data/Slic3r/Linux/lib/std/unicore/lib/Blk/HangulJ2.pl +13 -0
  938. data/Slic3r/Linux/lib/std/unicore/lib/Blk/HangulJ3.pl +13 -0
  939. data/Slic3r/Linux/lib/std/unicore/lib/Blk/HangulJa.pl +13 -0
  940. data/Slic3r/Linux/lib/std/unicore/lib/Blk/HangulSy.pl +13 -0
  941. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Hanunoo.pl +13 -0
  942. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Hebrew.pl +13 -0
  943. data/Slic3r/Linux/lib/std/unicore/lib/Blk/HighPriv.pl +13 -0
  944. data/Slic3r/Linux/lib/std/unicore/lib/Blk/HighSurr.pl +13 -0
  945. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Hiragana.pl +13 -0
  946. data/Slic3r/Linux/lib/std/unicore/lib/Blk/IPAExten.pl +13 -0
  947. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Ideograp.pl +13 -0
  948. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Imperial.pl +13 -0
  949. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Inscrip2.pl +13 -0
  950. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Inscript.pl +13 -0
  951. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Javanese.pl +13 -0
  952. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Kaithi.pl +13 -0
  953. data/Slic3r/Linux/lib/std/unicore/lib/Blk/KanaSupp.pl +13 -0
  954. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Kanbun.pl +13 -0
  955. data/Slic3r/Linux/lib/std/unicore/lib/Blk/KangxiRa.pl +13 -0
  956. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Kannada.pl +13 -0
  957. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Katakan2.pl +13 -0
  958. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Katakana.pl +13 -0
  959. data/Slic3r/Linux/lib/std/unicore/lib/Blk/KayahLi.pl +13 -0
  960. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Kharosht.pl +13 -0
  961. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Khmer.pl +13 -0
  962. data/Slic3r/Linux/lib/std/unicore/lib/Blk/KhmerSym.pl +13 -0
  963. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Lao.pl +13 -0
  964. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Latin1.pl +13 -0
  965. data/Slic3r/Linux/lib/std/unicore/lib/Blk/LatinEx2.pl +13 -0
  966. data/Slic3r/Linux/lib/std/unicore/lib/Blk/LatinEx3.pl +13 -0
  967. data/Slic3r/Linux/lib/std/unicore/lib/Blk/LatinEx4.pl +13 -0
  968. data/Slic3r/Linux/lib/std/unicore/lib/Blk/LatinEx5.pl +13 -0
  969. data/Slic3r/Linux/lib/std/unicore/lib/Blk/LatinExt.pl +13 -0
  970. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Lepcha.pl +13 -0
  971. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Letterli.pl +13 -0
  972. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Limbu.pl +13 -0
  973. data/Slic3r/Linux/lib/std/unicore/lib/Blk/LinearBI.pl +13 -0
  974. data/Slic3r/Linux/lib/std/unicore/lib/Blk/LinearBS.pl +13 -0
  975. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Lisu.pl +13 -0
  976. data/Slic3r/Linux/lib/std/unicore/lib/Blk/LowSurro.pl +13 -0
  977. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Lycian.pl +13 -0
  978. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Lydian.pl +13 -0
  979. data/Slic3r/Linux/lib/std/unicore/lib/Blk/MahjongT.pl +13 -0
  980. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Malayala.pl +13 -0
  981. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Mandaic.pl +13 -0
  982. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Mathema2.pl +13 -0
  983. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Mathemat.pl +13 -0
  984. data/Slic3r/Linux/lib/std/unicore/lib/Blk/MeeteiMa.pl +13 -0
  985. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Miscell2.pl +13 -0
  986. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Miscell3.pl +13 -0
  987. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Miscell4.pl +13 -0
  988. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Miscell5.pl +13 -0
  989. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Miscell6.pl +13 -0
  990. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Miscella.pl +13 -0
  991. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Modifier.pl +13 -0
  992. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Mongolia.pl +13 -0
  993. data/Slic3r/Linux/lib/std/unicore/lib/Blk/MusicalS.pl +13 -0
  994. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Myanmar.pl +13 -0
  995. data/Slic3r/Linux/lib/std/unicore/lib/Blk/MyanmarE.pl +13 -0
  996. data/Slic3r/Linux/lib/std/unicore/lib/Blk/NKo.pl +13 -0
  997. data/Slic3r/Linux/lib/std/unicore/lib/Blk/NewTaiLu.pl +13 -0
  998. data/Slic3r/Linux/lib/std/unicore/lib/Blk/NoBlock.pl +45 -0
  999. data/Slic3r/Linux/lib/std/unicore/lib/Blk/NumberFo.pl +13 -0
  1000. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Ogham.pl +13 -0
  1001. data/Slic3r/Linux/lib/std/unicore/lib/Blk/OlChiki.pl +13 -0
  1002. data/Slic3r/Linux/lib/std/unicore/lib/Blk/OldItali.pl +13 -0
  1003. data/Slic3r/Linux/lib/std/unicore/lib/Blk/OldPersi.pl +13 -0
  1004. data/Slic3r/Linux/lib/std/unicore/lib/Blk/OldSouth.pl +13 -0
  1005. data/Slic3r/Linux/lib/std/unicore/lib/Blk/OldTurki.pl +13 -0
  1006. data/Slic3r/Linux/lib/std/unicore/lib/Blk/OpticalC.pl +13 -0
  1007. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Oriya.pl +13 -0
  1008. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Osmanya.pl +13 -0
  1009. data/Slic3r/Linux/lib/std/unicore/lib/Blk/PhagsPa.pl +13 -0
  1010. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Phaistos.pl +13 -0
  1011. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Phoenici.pl +13 -0
  1012. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Phoneti2.pl +13 -0
  1013. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Phonetic.pl +13 -0
  1014. data/Slic3r/Linux/lib/std/unicore/lib/Blk/PlayingC.pl +13 -0
  1015. data/Slic3r/Linux/lib/std/unicore/lib/Blk/PrivateU.pl +13 -0
  1016. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Rejang.pl +13 -0
  1017. data/Slic3r/Linux/lib/std/unicore/lib/Blk/RumiNume.pl +13 -0
  1018. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Runic.pl +13 -0
  1019. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Samarita.pl +13 -0
  1020. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Saurasht.pl +13 -0
  1021. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Shavian.pl +13 -0
  1022. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Sinhala.pl +13 -0
  1023. data/Slic3r/Linux/lib/std/unicore/lib/Blk/SmallFor.pl +13 -0
  1024. data/Slic3r/Linux/lib/std/unicore/lib/Blk/SpacingM.pl +13 -0
  1025. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Specials.pl +13 -0
  1026. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Sundanes.pl +13 -0
  1027. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Superscr.pl +13 -0
  1028. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Supplem2.pl +13 -0
  1029. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Supplem3.pl +13 -0
  1030. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Supplem4.pl +13 -0
  1031. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Supplem5.pl +13 -0
  1032. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Supplem6.pl +13 -0
  1033. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Suppleme.pl +13 -0
  1034. data/Slic3r/Linux/lib/std/unicore/lib/Blk/SylotiNa.pl +13 -0
  1035. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Syriac.pl +13 -0
  1036. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Tagalog.pl +13 -0
  1037. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Tagbanwa.pl +13 -0
  1038. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Tags.pl +13 -0
  1039. data/Slic3r/Linux/lib/std/unicore/lib/Blk/TaiLe.pl +13 -0
  1040. data/Slic3r/Linux/lib/std/unicore/lib/Blk/TaiTham.pl +13 -0
  1041. data/Slic3r/Linux/lib/std/unicore/lib/Blk/TaiViet.pl +13 -0
  1042. data/Slic3r/Linux/lib/std/unicore/lib/Blk/TaiXuanJ.pl +13 -0
  1043. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Tamil.pl +13 -0
  1044. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Telugu.pl +13 -0
  1045. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Thaana.pl +13 -0
  1046. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Thai.pl +13 -0
  1047. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Tibetan.pl +13 -0
  1048. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Tifinagh.pl +13 -0
  1049. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Transpor.pl +13 -0
  1050. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Ugaritic.pl +13 -0
  1051. data/Slic3r/Linux/lib/std/unicore/lib/Blk/UnifiedC.pl +13 -0
  1052. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Vai.pl +13 -0
  1053. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Variati2.pl +13 -0
  1054. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Variatio.pl +13 -0
  1055. data/Slic3r/Linux/lib/std/unicore/lib/Blk/VedicExt.pl +13 -0
  1056. data/Slic3r/Linux/lib/std/unicore/lib/Blk/Vertical.pl +13 -0
  1057. data/Slic3r/Linux/lib/std/unicore/lib/Blk/YiRadica.pl +13 -0
  1058. data/Slic3r/Linux/lib/std/unicore/lib/Blk/YiSyllab.pl +13 -0
  1059. data/Slic3r/Linux/lib/std/unicore/lib/Blk/YijingHe.pl +13 -0
  1060. data/Slic3r/Linux/lib/std/unicore/lib/CE/N.pl +46 -0
  1061. data/Slic3r/Linux/lib/std/unicore/lib/CE/Y.pl +45 -0
  1062. data/Slic3r/Linux/lib/std/unicore/lib/CI/N.pl +290 -0
  1063. data/Slic3r/Linux/lib/std/unicore/lib/CI/Y.pl +289 -0
  1064. data/Slic3r/Linux/lib/std/unicore/lib/CWCF/N.pl +590 -0
  1065. data/Slic3r/Linux/lib/std/unicore/lib/CWCF/Y.pl +589 -0
  1066. data/Slic3r/Linux/lib/std/unicore/lib/CWCM/N.pl +112 -0
  1067. data/Slic3r/Linux/lib/std/unicore/lib/CWCM/Y.pl +111 -0
  1068. data/Slic3r/Linux/lib/std/unicore/lib/CWKCF/N.pl +765 -0
  1069. data/Slic3r/Linux/lib/std/unicore/lib/CWKCF/Y.pl +764 -0
  1070. data/Slic3r/Linux/lib/std/unicore/lib/CWL/N.pl +579 -0
  1071. data/Slic3r/Linux/lib/std/unicore/lib/CWL/Y.pl +578 -0
  1072. data/Slic3r/Linux/lib/std/unicore/lib/CWT/N.pl +596 -0
  1073. data/Slic3r/Linux/lib/std/unicore/lib/CWT/Y.pl +595 -0
  1074. data/Slic3r/Linux/lib/std/unicore/lib/CWU/N.pl +595 -0
  1075. data/Slic3r/Linux/lib/std/unicore/lib/CWU/Y.pl +594 -0
  1076. data/Slic3r/Linux/lib/std/unicore/lib/Cased/N.pl +125 -0
  1077. data/Slic3r/Linux/lib/std/unicore/lib/Cased/Y.pl +124 -0
  1078. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/10.pl +13 -0
  1079. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/103.pl +13 -0
  1080. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/107.pl +13 -0
  1081. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/11.pl +13 -0
  1082. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/118.pl +13 -0
  1083. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/12.pl +13 -0
  1084. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/122.pl +13 -0
  1085. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/129.pl +13 -0
  1086. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/13.pl +13 -0
  1087. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/130.pl +15 -0
  1088. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/132.pl +13 -0
  1089. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/14.pl +13 -0
  1090. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/15.pl +13 -0
  1091. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/16.pl +13 -0
  1092. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/17.pl +13 -0
  1093. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/18.pl +14 -0
  1094. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/19.pl +13 -0
  1095. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/20.pl +13 -0
  1096. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/21.pl +13 -0
  1097. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/22.pl +13 -0
  1098. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/23.pl +13 -0
  1099. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/24.pl +13 -0
  1100. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/25.pl +13 -0
  1101. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/26.pl +13 -0
  1102. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/27.pl +13 -0
  1103. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/28.pl +13 -0
  1104. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/29.pl +13 -0
  1105. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/30.pl +14 -0
  1106. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/31.pl +14 -0
  1107. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/32.pl +14 -0
  1108. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/33.pl +13 -0
  1109. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/34.pl +13 -0
  1110. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/35.pl +13 -0
  1111. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/36.pl +13 -0
  1112. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/84.pl +13 -0
  1113. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/91.pl +13 -0
  1114. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/A.pl +96 -0
  1115. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/AL.pl +15 -0
  1116. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/AR.pl +16 -0
  1117. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/ATA.pl +13 -0
  1118. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/ATAR.pl +16 -0
  1119. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/ATB.pl +15 -0
  1120. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/ATBL.pl +13 -0
  1121. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/B.pl +71 -0
  1122. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/BL.pl +13 -0
  1123. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/BR.pl +16 -0
  1124. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/DA.pl +15 -0
  1125. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/DB.pl +16 -0
  1126. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/IS.pl +13 -0
  1127. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/KV.pl +13 -0
  1128. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/L.pl +13 -0
  1129. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/NK.pl +24 -0
  1130. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/NR.pl +135 -0
  1131. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/OV.pl +21 -0
  1132. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/R.pl +13 -0
  1133. data/Slic3r/Linux/lib/std/unicore/lib/Ccc/VR.pl +41 -0
  1134. data/Slic3r/Linux/lib/std/unicore/lib/CompEx/N.pl +87 -0
  1135. data/Slic3r/Linux/lib/std/unicore/lib/CompEx/Y.pl +86 -0
  1136. data/Slic3r/Linux/lib/std/unicore/lib/DI/N.pl +28 -0
  1137. data/Slic3r/Linux/lib/std/unicore/lib/DI/Y.pl +27 -0
  1138. data/Slic3r/Linux/lib/std/unicore/lib/Dash/N.pl +32 -0
  1139. data/Slic3r/Linux/lib/std/unicore/lib/Dash/Y.pl +31 -0
  1140. data/Slic3r/Linux/lib/std/unicore/lib/Dep/N.pl +22 -0
  1141. data/Slic3r/Linux/lib/std/unicore/lib/Dep/Y.pl +21 -0
  1142. data/Slic3r/Linux/lib/std/unicore/lib/Dia/N.pl +130 -0
  1143. data/Slic3r/Linux/lib/std/unicore/lib/Dia/Y.pl +129 -0
  1144. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Com.pl +86 -0
  1145. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Enc.pl +20 -0
  1146. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Fin.pl +125 -0
  1147. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Font.pl +46 -0
  1148. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Fra.pl +15 -0
  1149. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Init.pl +87 -0
  1150. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Iso.pl +110 -0
  1151. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Med.pl +66 -0
  1152. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Nar.pl +18 -0
  1153. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Nb.pl +17 -0
  1154. data/Slic3r/Linux/lib/std/unicore/lib/Dt/NonCanon.pl +161 -0
  1155. data/Slic3r/Linux/lib/std/unicore/lib/Dt/None.pl +362 -0
  1156. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Sml.pl +15 -0
  1157. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Sqr.pl +21 -0
  1158. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Sub.pl +16 -0
  1159. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Sup.pl +32 -0
  1160. data/Slic3r/Linux/lib/std/unicore/lib/Dt/Vert.pl +17 -0
  1161. data/Slic3r/Linux/lib/std/unicore/lib/Ea/A.pl +185 -0
  1162. data/Slic3r/Linux/lib/std/unicore/lib/Ea/F.pl +15 -0
  1163. data/Slic3r/Linux/lib/std/unicore/lib/Ea/H.pl +19 -0
  1164. data/Slic3r/Linux/lib/std/unicore/lib/Ea/N.pl +227 -0
  1165. data/Slic3r/Linux/lib/std/unicore/lib/Ea/Na.pl +19 -0
  1166. data/Slic3r/Linux/lib/std/unicore/lib/Ea/W.pl +49 -0
  1167. data/Slic3r/Linux/lib/std/unicore/lib/Ext/N.pl +33 -0
  1168. data/Slic3r/Linux/lib/std/unicore/lib/Ext/Y.pl +32 -0
  1169. data/Slic3r/Linux/lib/std/unicore/lib/GCB/CN.pl +32 -0
  1170. data/Slic3r/Linux/lib/std/unicore/lib/GCB/CR.pl +13 -0
  1171. data/Slic3r/Linux/lib/std/unicore/lib/GCB/EX.pl +227 -0
  1172. data/Slic3r/Linux/lib/std/unicore/lib/GCB/L.pl +14 -0
  1173. data/Slic3r/Linux/lib/std/unicore/lib/GCB/LF.pl +13 -0
  1174. data/Slic3r/Linux/lib/std/unicore/lib/GCB/LV.pl +411 -0
  1175. data/Slic3r/Linux/lib/std/unicore/lib/GCB/LVT.pl +411 -0
  1176. data/Slic3r/Linux/lib/std/unicore/lib/GCB/PP.pl +17 -0
  1177. data/Slic3r/Linux/lib/std/unicore/lib/GCB/SM.pl +125 -0
  1178. data/Slic3r/Linux/lib/std/unicore/lib/GCB/T.pl +14 -0
  1179. data/Slic3r/Linux/lib/std/unicore/lib/GCB/V.pl +14 -0
  1180. data/Slic3r/Linux/lib/std/unicore/lib/GCB/XX.pl +224 -0
  1181. data/Slic3r/Linux/lib/std/unicore/lib/Gc/C.pl +516 -0
  1182. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Cc.pl +14 -0
  1183. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Cf.pl +27 -0
  1184. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Cn.pl +513 -0
  1185. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Co.pl +15 -0
  1186. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Cs.pl +13 -0
  1187. data/Slic3r/Linux/lib/std/unicore/lib/Gc/L.pl +447 -0
  1188. data/Slic3r/Linux/lib/std/unicore/lib/Gc/LC.pl +122 -0
  1189. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Ll.pl +621 -0
  1190. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Lm.pl +61 -0
  1191. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Lo.pl +335 -0
  1192. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Lu.pl +615 -0
  1193. data/Slic3r/Linux/lib/std/unicore/lib/Gc/M.pl +205 -0
  1194. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Mc.pl +125 -0
  1195. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Me.pl +16 -0
  1196. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Mn.pl +215 -0
  1197. data/Slic3r/Linux/lib/std/unicore/lib/Gc/N.pl +95 -0
  1198. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Nl.pl +24 -0
  1199. data/Slic3r/Linux/lib/std/unicore/lib/Gc/No.pl +53 -0
  1200. data/Slic3r/Linux/lib/std/unicore/lib/Gc/P.pl +145 -0
  1201. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Pd.pl +27 -0
  1202. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Pe.pl +82 -0
  1203. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Pf.pl +22 -0
  1204. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Pi.pl +23 -0
  1205. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Po.pl +140 -0
  1206. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Ps.pl +84 -0
  1207. data/Slic3r/Linux/lib/std/unicore/lib/Gc/S.pl +220 -0
  1208. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Sc.pl +28 -0
  1209. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Sk.pl +39 -0
  1210. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Sm.pl +78 -0
  1211. data/Slic3r/Linux/lib/std/unicore/lib/Gc/So.pl +176 -0
  1212. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Z.pl +21 -0
  1213. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Zl.pl +13 -0
  1214. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Zp.pl +13 -0
  1215. data/Slic3r/Linux/lib/std/unicore/lib/Gc/Zs.pl +20 -0
  1216. data/Slic3r/Linux/lib/std/unicore/lib/GrBase/N.pl +609 -0
  1217. data/Slic3r/Linux/lib/std/unicore/lib/GrBase/Y.pl +608 -0
  1218. data/Slic3r/Linux/lib/std/unicore/lib/GrExt/N.pl +228 -0
  1219. data/Slic3r/Linux/lib/std/unicore/lib/Hex/N.pl +19 -0
  1220. data/Slic3r/Linux/lib/std/unicore/lib/Hex/Y.pl +18 -0
  1221. data/Slic3r/Linux/lib/std/unicore/lib/Hst/NA.pl +18 -0
  1222. data/Slic3r/Linux/lib/std/unicore/lib/Hyphen/N.pl +23 -0
  1223. data/Slic3r/Linux/lib/std/unicore/lib/Hyphen/Y.pl +22 -0
  1224. data/Slic3r/Linux/lib/std/unicore/lib/IDC/N.pl +527 -0
  1225. data/Slic3r/Linux/lib/std/unicore/lib/IDC/Y.pl +526 -0
  1226. data/Slic3r/Linux/lib/std/unicore/lib/IDS/N.pl +450 -0
  1227. data/Slic3r/Linux/lib/std/unicore/lib/IDS/Y.pl +449 -0
  1228. data/Slic3r/Linux/lib/std/unicore/lib/IDSB/N.pl +15 -0
  1229. data/Slic3r/Linux/lib/std/unicore/lib/IDSB/Y.pl +14 -0
  1230. data/Slic3r/Linux/lib/std/unicore/lib/IDST/N.pl +14 -0
  1231. data/Slic3r/Linux/lib/std/unicore/lib/IDST/Y.pl +13 -0
  1232. data/Slic3r/Linux/lib/std/unicore/lib/Ideo/N.pl +25 -0
  1233. data/Slic3r/Linux/lib/std/unicore/lib/Ideo/Y.pl +24 -0
  1234. data/Slic3r/Linux/lib/std/unicore/lib/In/2_0.pl +324 -0
  1235. data/Slic3r/Linux/lib/std/unicore/lib/In/2_1.pl +324 -0
  1236. data/Slic3r/Linux/lib/std/unicore/lib/In/3_0.pl +381 -0
  1237. data/Slic3r/Linux/lib/std/unicore/lib/In/3_1.pl +414 -0
  1238. data/Slic3r/Linux/lib/std/unicore/lib/In/3_2.pl +409 -0
  1239. data/Slic3r/Linux/lib/std/unicore/lib/In/4_0.pl +424 -0
  1240. data/Slic3r/Linux/lib/std/unicore/lib/In/4_1.pl +442 -0
  1241. data/Slic3r/Linux/lib/std/unicore/lib/In/5_0.pl +452 -0
  1242. data/Slic3r/Linux/lib/std/unicore/lib/In/5_1.pl +467 -0
  1243. data/Slic3r/Linux/lib/std/unicore/lib/In/5_2.pl +507 -0
  1244. data/Slic3r/Linux/lib/std/unicore/lib/In/6_0.pl +523 -0
  1245. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Ain.pl +16 -0
  1246. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Alaph.pl +13 -0
  1247. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Alef.pl +18 -0
  1248. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Beh.pl +17 -0
  1249. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Beth.pl +14 -0
  1250. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Burushas.pl +13 -0
  1251. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Dal.pl +16 -0
  1252. data/Slic3r/Linux/lib/std/unicore/lib/Jg/DalathRi.pl +15 -0
  1253. data/Slic3r/Linux/lib/std/unicore/lib/Jg/E.pl +13 -0
  1254. data/Slic3r/Linux/lib/std/unicore/lib/Jg/FarsiYeh.pl +16 -0
  1255. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Fe.pl +13 -0
  1256. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Feh.pl +15 -0
  1257. data/Slic3r/Linux/lib/std/unicore/lib/Jg/FinalSem.pl +13 -0
  1258. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Gaf.pl +17 -0
  1259. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Gamal.pl +14 -0
  1260. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Hah.pl +19 -0
  1261. data/Slic3r/Linux/lib/std/unicore/lib/Jg/He.pl +13 -0
  1262. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Heh.pl +13 -0
  1263. data/Slic3r/Linux/lib/std/unicore/lib/Jg/HehGoal.pl +13 -0
  1264. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Heth.pl +13 -0
  1265. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Kaf.pl +15 -0
  1266. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Kaph.pl +13 -0
  1267. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Khaph.pl +13 -0
  1268. data/Slic3r/Linux/lib/std/unicore/lib/Jg/KnottedH.pl +14 -0
  1269. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Lam.pl +15 -0
  1270. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Lamadh.pl +13 -0
  1271. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Meem.pl +14 -0
  1272. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Mim.pl +13 -0
  1273. data/Slic3r/Linux/lib/std/unicore/lib/Jg/NoJoinin.pl +26 -0
  1274. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Noon.pl +15 -0
  1275. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Nun.pl +13 -0
  1276. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Nya.pl +13 -0
  1277. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Pe.pl +13 -0
  1278. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Qaf.pl +15 -0
  1279. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Qaph.pl +13 -0
  1280. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Reh.pl +18 -0
  1281. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Reversed.pl +13 -0
  1282. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Sad.pl +15 -0
  1283. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Sadhe.pl +13 -0
  1284. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Seen.pl +19 -0
  1285. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Semkath.pl +13 -0
  1286. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Shin.pl +13 -0
  1287. data/Slic3r/Linux/lib/std/unicore/lib/Jg/SwashKaf.pl +13 -0
  1288. data/Slic3r/Linux/lib/std/unicore/lib/Jg/SyriacWa.pl +13 -0
  1289. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Tah.pl +14 -0
  1290. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Taw.pl +13 -0
  1291. data/Slic3r/Linux/lib/std/unicore/lib/Jg/TehMarb2.pl +13 -0
  1292. data/Slic3r/Linux/lib/std/unicore/lib/Jg/TehMarbu.pl +15 -0
  1293. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Teth.pl +13 -0
  1294. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Waw.pl +18 -0
  1295. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Yeh.pl +18 -0
  1296. data/Slic3r/Linux/lib/std/unicore/lib/Jg/YehBarre.pl +13 -0
  1297. data/Slic3r/Linux/lib/std/unicore/lib/Jg/YehWithT.pl +13 -0
  1298. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Yudh.pl +13 -0
  1299. data/Slic3r/Linux/lib/std/unicore/lib/Jg/YudhHe.pl +13 -0
  1300. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Zain.pl +13 -0
  1301. data/Slic3r/Linux/lib/std/unicore/lib/Jg/Zhain.pl +13 -0
  1302. data/Slic3r/Linux/lib/std/unicore/lib/JoinC/N.pl +14 -0
  1303. data/Slic3r/Linux/lib/std/unicore/lib/JoinC/Y.pl +13 -0
  1304. data/Slic3r/Linux/lib/std/unicore/lib/Jt/C.pl +15 -0
  1305. data/Slic3r/Linux/lib/std/unicore/lib/Jt/D.pl +41 -0
  1306. data/Slic3r/Linux/lib/std/unicore/lib/Jt/R.pl +40 -0
  1307. data/Slic3r/Linux/lib/std/unicore/lib/Jt/T.pl +226 -0
  1308. data/Slic3r/Linux/lib/std/unicore/lib/Jt/U.pl +231 -0
  1309. data/Slic3r/Linux/lib/std/unicore/lib/LOE/N.pl +18 -0
  1310. data/Slic3r/Linux/lib/std/unicore/lib/Lb/AI.pl +117 -0
  1311. data/Slic3r/Linux/lib/std/unicore/lib/Lb/AL.pl +576 -0
  1312. data/Slic3r/Linux/lib/std/unicore/lib/Lb/B2.pl +13 -0
  1313. data/Slic3r/Linux/lib/std/unicore/lib/Lb/BA.pl +74 -0
  1314. data/Slic3r/Linux/lib/std/unicore/lib/Lb/BB.pl +24 -0
  1315. data/Slic3r/Linux/lib/std/unicore/lib/Lb/BK.pl +14 -0
  1316. data/Slic3r/Linux/lib/std/unicore/lib/Lb/CB.pl +13 -0
  1317. data/Slic3r/Linux/lib/std/unicore/lib/Lb/CL.pl +91 -0
  1318. data/Slic3r/Linux/lib/std/unicore/lib/Lb/CM.pl +189 -0
  1319. data/Slic3r/Linux/lib/std/unicore/lib/Lb/CP.pl +14 -0
  1320. data/Slic3r/Linux/lib/std/unicore/lib/Lb/EX.pl +34 -0
  1321. data/Slic3r/Linux/lib/std/unicore/lib/Lb/GL.pl +23 -0
  1322. data/Slic3r/Linux/lib/std/unicore/lib/Lb/HY.pl +13 -0
  1323. data/Slic3r/Linux/lib/std/unicore/lib/Lb/ID.pl +85 -0
  1324. data/Slic3r/Linux/lib/std/unicore/lib/Lb/IN.pl +14 -0
  1325. data/Slic3r/Linux/lib/std/unicore/lib/Lb/IS.pl +22 -0
  1326. data/Slic3r/Linux/lib/std/unicore/lib/Lb/NL.pl +13 -0
  1327. data/Slic3r/Linux/lib/std/unicore/lib/Lb/NS.pl +49 -0
  1328. data/Slic3r/Linux/lib/std/unicore/lib/Lb/NU.pl +50 -0
  1329. data/Slic3r/Linux/lib/std/unicore/lib/Lb/OP.pl +91 -0
  1330. data/Slic3r/Linux/lib/std/unicore/lib/Lb/PO.pl +30 -0
  1331. data/Slic3r/Linux/lib/std/unicore/lib/Lb/PR.pl +31 -0
  1332. data/Slic3r/Linux/lib/std/unicore/lib/Lb/QU.pl +24 -0
  1333. data/Slic3r/Linux/lib/std/unicore/lib/Lb/SA.pl +49 -0
  1334. data/Slic3r/Linux/lib/std/unicore/lib/Lb/SG.pl +13 -0
  1335. data/Slic3r/Linux/lib/std/unicore/lib/Lb/SP.pl +13 -0
  1336. data/Slic3r/Linux/lib/std/unicore/lib/Lb/SY.pl +13 -0
  1337. data/Slic3r/Linux/lib/std/unicore/lib/Lb/WJ.pl +14 -0
  1338. data/Slic3r/Linux/lib/std/unicore/lib/Lb/XX.pl +505 -0
  1339. data/Slic3r/Linux/lib/std/unicore/lib/Lb/ZW.pl +13 -0
  1340. data/Slic3r/Linux/lib/std/unicore/lib/Lower/N.pl +625 -0
  1341. data/Slic3r/Linux/lib/std/unicore/lib/Lower/Y.pl +624 -0
  1342. data/Slic3r/Linux/lib/std/unicore/lib/Math/N.pl +119 -0
  1343. data/Slic3r/Linux/lib/std/unicore/lib/Math/Y.pl +118 -0
  1344. data/Slic3r/Linux/lib/std/unicore/lib/NChar/N.pl +30 -0
  1345. data/Slic3r/Linux/lib/std/unicore/lib/NChar/Y.pl +30 -0
  1346. data/Slic3r/Linux/lib/std/unicore/lib/NFCQC/Y.pl +118 -0
  1347. data/Slic3r/Linux/lib/std/unicore/lib/NFDQC/N.pl +239 -0
  1348. data/Slic3r/Linux/lib/std/unicore/lib/NFDQC/Y.pl +240 -0
  1349. data/Slic3r/Linux/lib/std/unicore/lib/NFKCQC/M.pl +46 -0
  1350. data/Slic3r/Linux/lib/std/unicore/lib/NFKCQC/N.pl +225 -0
  1351. data/Slic3r/Linux/lib/std/unicore/lib/NFKCQC/Y.pl +256 -0
  1352. data/Slic3r/Linux/lib/std/unicore/lib/NFKDQC/N.pl +361 -0
  1353. data/Slic3r/Linux/lib/std/unicore/lib/Nt/De.pl +50 -0
  1354. data/Slic3r/Linux/lib/std/unicore/lib/Nt/Di.pl +32 -0
  1355. data/Slic3r/Linux/lib/std/unicore/lib/Nt/Nu.pl +134 -0
  1356. data/Slic3r/Linux/lib/std/unicore/lib/Nv/0.pl +67 -0
  1357. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1.pl +102 -0
  1358. data/Slic3r/Linux/lib/std/unicore/lib/Nv/10.pl +47 -0
  1359. data/Slic3r/Linux/lib/std/unicore/lib/Nv/100.pl +32 -0
  1360. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1000.pl +28 -0
  1361. data/Slic3r/Linux/lib/std/unicore/lib/Nv/10000.pl +19 -0
  1362. data/Slic3r/Linux/lib/std/unicore/lib/Nv/100000.pl +13 -0
  1363. data/Slic3r/Linux/lib/std/unicore/lib/Nv/10000000.pl +14 -0
  1364. data/Slic3r/Linux/lib/std/unicore/lib/Nv/10000002.pl +13 -0
  1365. data/Slic3r/Linux/lib/std/unicore/lib/Nv/11.pl +18 -0
  1366. data/Slic3r/Linux/lib/std/unicore/lib/Nv/11_2.pl +13 -0
  1367. data/Slic3r/Linux/lib/std/unicore/lib/Nv/12.pl +18 -0
  1368. data/Slic3r/Linux/lib/std/unicore/lib/Nv/13.pl +16 -0
  1369. data/Slic3r/Linux/lib/std/unicore/lib/Nv/13_2.pl +13 -0
  1370. data/Slic3r/Linux/lib/std/unicore/lib/Nv/14.pl +16 -0
  1371. data/Slic3r/Linux/lib/std/unicore/lib/Nv/15.pl +16 -0
  1372. data/Slic3r/Linux/lib/std/unicore/lib/Nv/15_2.pl +13 -0
  1373. data/Slic3r/Linux/lib/std/unicore/lib/Nv/16.pl +17 -0
  1374. data/Slic3r/Linux/lib/std/unicore/lib/Nv/17.pl +17 -0
  1375. data/Slic3r/Linux/lib/std/unicore/lib/Nv/17_2.pl +13 -0
  1376. data/Slic3r/Linux/lib/std/unicore/lib/Nv/18.pl +17 -0
  1377. data/Slic3r/Linux/lib/std/unicore/lib/Nv/19.pl +17 -0
  1378. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1_10.pl +13 -0
  1379. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1_16.pl +15 -0
  1380. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1_2.pl +21 -0
  1381. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1_3.pl +16 -0
  1382. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1_4.pl +21 -0
  1383. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1_5.pl +13 -0
  1384. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1_6.pl +14 -0
  1385. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1_7.pl +13 -0
  1386. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1_8.pl +17 -0
  1387. data/Slic3r/Linux/lib/std/unicore/lib/Nv/1_9.pl +13 -0
  1388. data/Slic3r/Linux/lib/std/unicore/lib/Nv/2.pl +105 -0
  1389. data/Slic3r/Linux/lib/std/unicore/lib/Nv/20.pl +30 -0
  1390. data/Slic3r/Linux/lib/std/unicore/lib/Nv/200.pl +14 -0
  1391. data/Slic3r/Linux/lib/std/unicore/lib/Nv/2000.pl +13 -0
  1392. data/Slic3r/Linux/lib/std/unicore/lib/Nv/20000.pl +13 -0
  1393. data/Slic3r/Linux/lib/std/unicore/lib/Nv/21.pl +13 -0
  1394. data/Slic3r/Linux/lib/std/unicore/lib/Nv/22.pl +13 -0
  1395. data/Slic3r/Linux/lib/std/unicore/lib/Nv/23.pl +13 -0
  1396. data/Slic3r/Linux/lib/std/unicore/lib/Nv/24.pl +13 -0
  1397. data/Slic3r/Linux/lib/std/unicore/lib/Nv/25.pl +13 -0
  1398. data/Slic3r/Linux/lib/std/unicore/lib/Nv/26.pl +13 -0
  1399. data/Slic3r/Linux/lib/std/unicore/lib/Nv/27.pl +13 -0
  1400. data/Slic3r/Linux/lib/std/unicore/lib/Nv/28.pl +13 -0
  1401. data/Slic3r/Linux/lib/std/unicore/lib/Nv/29.pl +13 -0
  1402. data/Slic3r/Linux/lib/std/unicore/lib/Nv/2_3.pl +17 -0
  1403. data/Slic3r/Linux/lib/std/unicore/lib/Nv/2_5.pl +13 -0
  1404. data/Slic3r/Linux/lib/std/unicore/lib/Nv/3.pl +103 -0
  1405. data/Slic3r/Linux/lib/std/unicore/lib/Nv/30.pl +22 -0
  1406. data/Slic3r/Linux/lib/std/unicore/lib/Nv/300.pl +15 -0
  1407. data/Slic3r/Linux/lib/std/unicore/lib/Nv/3000.pl +13 -0
  1408. data/Slic3r/Linux/lib/std/unicore/lib/Nv/30000.pl +13 -0
  1409. data/Slic3r/Linux/lib/std/unicore/lib/Nv/31.pl +13 -0
  1410. data/Slic3r/Linux/lib/std/unicore/lib/Nv/32.pl +13 -0
  1411. data/Slic3r/Linux/lib/std/unicore/lib/Nv/33.pl +13 -0
  1412. data/Slic3r/Linux/lib/std/unicore/lib/Nv/34.pl +13 -0
  1413. data/Slic3r/Linux/lib/std/unicore/lib/Nv/35.pl +13 -0
  1414. data/Slic3r/Linux/lib/std/unicore/lib/Nv/36.pl +13 -0
  1415. data/Slic3r/Linux/lib/std/unicore/lib/Nv/37.pl +13 -0
  1416. data/Slic3r/Linux/lib/std/unicore/lib/Nv/38.pl +13 -0
  1417. data/Slic3r/Linux/lib/std/unicore/lib/Nv/39.pl +13 -0
  1418. data/Slic3r/Linux/lib/std/unicore/lib/Nv/3_16.pl +15 -0
  1419. data/Slic3r/Linux/lib/std/unicore/lib/Nv/3_2.pl +13 -0
  1420. data/Slic3r/Linux/lib/std/unicore/lib/Nv/3_4.pl +18 -0
  1421. data/Slic3r/Linux/lib/std/unicore/lib/Nv/3_5.pl +13 -0
  1422. data/Slic3r/Linux/lib/std/unicore/lib/Nv/3_8.pl +13 -0
  1423. data/Slic3r/Linux/lib/std/unicore/lib/Nv/4.pl +97 -0
  1424. data/Slic3r/Linux/lib/std/unicore/lib/Nv/40.pl +21 -0
  1425. data/Slic3r/Linux/lib/std/unicore/lib/Nv/400.pl +14 -0
  1426. data/Slic3r/Linux/lib/std/unicore/lib/Nv/4000.pl +13 -0
  1427. data/Slic3r/Linux/lib/std/unicore/lib/Nv/40000.pl +13 -0
  1428. data/Slic3r/Linux/lib/std/unicore/lib/Nv/41.pl +13 -0
  1429. data/Slic3r/Linux/lib/std/unicore/lib/Nv/42.pl +13 -0
  1430. data/Slic3r/Linux/lib/std/unicore/lib/Nv/43.pl +13 -0
  1431. data/Slic3r/Linux/lib/std/unicore/lib/Nv/44.pl +13 -0
  1432. data/Slic3r/Linux/lib/std/unicore/lib/Nv/45.pl +13 -0
  1433. data/Slic3r/Linux/lib/std/unicore/lib/Nv/46.pl +13 -0
  1434. data/Slic3r/Linux/lib/std/unicore/lib/Nv/47.pl +13 -0
  1435. data/Slic3r/Linux/lib/std/unicore/lib/Nv/48.pl +13 -0
  1436. data/Slic3r/Linux/lib/std/unicore/lib/Nv/49.pl +13 -0
  1437. data/Slic3r/Linux/lib/std/unicore/lib/Nv/4_5.pl +13 -0
  1438. data/Slic3r/Linux/lib/std/unicore/lib/Nv/5.pl +97 -0
  1439. data/Slic3r/Linux/lib/std/unicore/lib/Nv/50.pl +28 -0
  1440. data/Slic3r/Linux/lib/std/unicore/lib/Nv/500.pl +20 -0
  1441. data/Slic3r/Linux/lib/std/unicore/lib/Nv/5000.pl +17 -0
  1442. data/Slic3r/Linux/lib/std/unicore/lib/Nv/50000.pl +16 -0
  1443. data/Slic3r/Linux/lib/std/unicore/lib/Nv/5_2.pl +13 -0
  1444. data/Slic3r/Linux/lib/std/unicore/lib/Nv/5_6.pl +14 -0
  1445. data/Slic3r/Linux/lib/std/unicore/lib/Nv/5_8.pl +13 -0
  1446. data/Slic3r/Linux/lib/std/unicore/lib/Nv/6.pl +90 -0
  1447. data/Slic3r/Linux/lib/std/unicore/lib/Nv/60.pl +17 -0
  1448. data/Slic3r/Linux/lib/std/unicore/lib/Nv/600.pl +14 -0
  1449. data/Slic3r/Linux/lib/std/unicore/lib/Nv/6000.pl +13 -0
  1450. data/Slic3r/Linux/lib/std/unicore/lib/Nv/60000.pl +13 -0
  1451. data/Slic3r/Linux/lib/std/unicore/lib/Nv/7.pl +87 -0
  1452. data/Slic3r/Linux/lib/std/unicore/lib/Nv/70.pl +17 -0
  1453. data/Slic3r/Linux/lib/std/unicore/lib/Nv/700.pl +14 -0
  1454. data/Slic3r/Linux/lib/std/unicore/lib/Nv/7000.pl +13 -0
  1455. data/Slic3r/Linux/lib/std/unicore/lib/Nv/70000.pl +13 -0
  1456. data/Slic3r/Linux/lib/std/unicore/lib/Nv/7_2.pl +13 -0
  1457. data/Slic3r/Linux/lib/std/unicore/lib/Nv/7_8.pl +13 -0
  1458. data/Slic3r/Linux/lib/std/unicore/lib/Nv/8.pl +84 -0
  1459. data/Slic3r/Linux/lib/std/unicore/lib/Nv/80.pl +17 -0
  1460. data/Slic3r/Linux/lib/std/unicore/lib/Nv/800.pl +14 -0
  1461. data/Slic3r/Linux/lib/std/unicore/lib/Nv/8000.pl +13 -0
  1462. data/Slic3r/Linux/lib/std/unicore/lib/Nv/80000.pl +13 -0
  1463. data/Slic3r/Linux/lib/std/unicore/lib/Nv/9.pl +86 -0
  1464. data/Slic3r/Linux/lib/std/unicore/lib/Nv/90.pl +18 -0
  1465. data/Slic3r/Linux/lib/std/unicore/lib/Nv/900.pl +15 -0
  1466. data/Slic3r/Linux/lib/std/unicore/lib/Nv/9000.pl +13 -0
  1467. data/Slic3r/Linux/lib/std/unicore/lib/Nv/90000.pl +13 -0
  1468. data/Slic3r/Linux/lib/std/unicore/lib/Nv/9_2.pl +13 -0
  1469. data/Slic3r/Linux/lib/std/unicore/lib/Nv/NaN.pl +170 -0
  1470. data/Slic3r/Linux/lib/std/unicore/lib/Nv/_1_2.pl +13 -0
  1471. data/Slic3r/Linux/lib/std/unicore/lib/OAlpha/N.pl +158 -0
  1472. data/Slic3r/Linux/lib/std/unicore/lib/OAlpha/Y.pl +157 -0
  1473. data/Slic3r/Linux/lib/std/unicore/lib/ODI/N.pl +23 -0
  1474. data/Slic3r/Linux/lib/std/unicore/lib/ODI/Y.pl +22 -0
  1475. data/Slic3r/Linux/lib/std/unicore/lib/OGrExt/N.pl +29 -0
  1476. data/Slic3r/Linux/lib/std/unicore/lib/OGrExt/Y.pl +28 -0
  1477. data/Slic3r/Linux/lib/std/unicore/lib/OIDC/N.pl +17 -0
  1478. data/Slic3r/Linux/lib/std/unicore/lib/OIDC/Y.pl +16 -0
  1479. data/Slic3r/Linux/lib/std/unicore/lib/OIDS/N.pl +16 -0
  1480. data/Slic3r/Linux/lib/std/unicore/lib/OIDS/Y.pl +15 -0
  1481. data/Slic3r/Linux/lib/std/unicore/lib/OLower/N.pl +26 -0
  1482. data/Slic3r/Linux/lib/std/unicore/lib/OLower/Y.pl +25 -0
  1483. data/Slic3r/Linux/lib/std/unicore/lib/OMath/N.pl +113 -0
  1484. data/Slic3r/Linux/lib/std/unicore/lib/OMath/Y.pl +112 -0
  1485. data/Slic3r/Linux/lib/std/unicore/lib/OUpper/N.pl +15 -0
  1486. data/Slic3r/Linux/lib/std/unicore/lib/OUpper/Y.pl +14 -0
  1487. data/Slic3r/Linux/lib/std/unicore/lib/PatSyn/N.pl +41 -0
  1488. data/Slic3r/Linux/lib/std/unicore/lib/PatSyn/Y.pl +40 -0
  1489. data/Slic3r/Linux/lib/std/unicore/lib/PatWS/N.pl +18 -0
  1490. data/Slic3r/Linux/lib/std/unicore/lib/PatWS/Y.pl +17 -0
  1491. data/Slic3r/Linux/lib/std/unicore/lib/Perl/Alnum.pl +521 -0
  1492. data/Slic3r/Linux/lib/std/unicore/lib/Perl/Any.pl +13 -0
  1493. data/Slic3r/Linux/lib/std/unicore/lib/Perl/Assigned.pl +513 -0
  1494. data/Slic3r/Linux/lib/std/unicore/lib/Perl/Blank.pl +21 -0
  1495. data/Slic3r/Linux/lib/std/unicore/lib/Perl/Graph.pl +518 -0
  1496. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PerlSpac.pl +15 -0
  1497. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PerlWord.pl +16 -0
  1498. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixAln.pl +15 -0
  1499. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixAlp.pl +14 -0
  1500. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixBla.pl +14 -0
  1501. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixCnt.pl +14 -0
  1502. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixDig.pl +13 -0
  1503. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixGra.pl +13 -0
  1504. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixLow.pl +13 -0
  1505. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixPri.pl +13 -0
  1506. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixPun.pl +16 -0
  1507. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixSpa.pl +14 -0
  1508. data/Slic3r/Linux/lib/std/unicore/lib/Perl/PosixUpp.pl +13 -0
  1509. data/Slic3r/Linux/lib/std/unicore/lib/Perl/Print.pl +515 -0
  1510. data/Slic3r/Linux/lib/std/unicore/lib/Perl/SpacePer.pl +24 -0
  1511. data/Slic3r/Linux/lib/std/unicore/lib/Perl/Title.pl +22 -0
  1512. data/Slic3r/Linux/lib/std/unicore/lib/Perl/VertSpac.pl +15 -0
  1513. data/Slic3r/Linux/lib/std/unicore/lib/Perl/Word.pl +526 -0
  1514. data/Slic3r/Linux/lib/std/unicore/lib/Perl/XPosixPu.pl +140 -0
  1515. data/Slic3r/Linux/lib/std/unicore/lib/Perl/_XBegin.pl +30 -0
  1516. data/Slic3r/Linux/lib/std/unicore/lib/Perl/_XExtend.pl +206 -0
  1517. data/Slic3r/Linux/lib/std/unicore/lib/Perl/_XLVLVTV.pl +15 -0
  1518. data/Slic3r/Linux/lib/std/unicore/lib/QMark/N.pl +25 -0
  1519. data/Slic3r/Linux/lib/std/unicore/lib/QMark/Y.pl +24 -0
  1520. data/Slic3r/Linux/lib/std/unicore/lib/Radical/N.pl +16 -0
  1521. data/Slic3r/Linux/lib/std/unicore/lib/Radical/Y.pl +15 -0
  1522. data/Slic3r/Linux/lib/std/unicore/lib/SB/AT.pl +16 -0
  1523. data/Slic3r/Linux/lib/std/unicore/lib/SB/CL.pl +53 -0
  1524. data/Slic3r/Linux/lib/std/unicore/lib/SB/EX.pl +207 -0
  1525. data/Slic3r/Linux/lib/std/unicore/lib/SB/FO.pl +28 -0
  1526. data/Slic3r/Linux/lib/std/unicore/lib/SB/LE.pl +362 -0
  1527. data/Slic3r/Linux/lib/std/unicore/lib/SB/LO.pl +623 -0
  1528. data/Slic3r/Linux/lib/std/unicore/lib/SB/SC.pl +31 -0
  1529. data/Slic3r/Linux/lib/std/unicore/lib/SB/SE.pl +14 -0
  1530. data/Slic3r/Linux/lib/std/unicore/lib/SB/ST.pl +56 -0
  1531. data/Slic3r/Linux/lib/std/unicore/lib/SB/Sp.pl +22 -0
  1532. data/Slic3r/Linux/lib/std/unicore/lib/SB/UP.pl +620 -0
  1533. data/Slic3r/Linux/lib/std/unicore/lib/SB/XX.pl +584 -0
  1534. data/Slic3r/Linux/lib/std/unicore/lib/SD/N.pl +44 -0
  1535. data/Slic3r/Linux/lib/std/unicore/lib/SD/Y.pl +43 -0
  1536. data/Slic3r/Linux/lib/std/unicore/lib/STerm/N.pl +60 -0
  1537. data/Slic3r/Linux/lib/std/unicore/lib/STerm/Y.pl +59 -0
  1538. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Arab.pl +31 -0
  1539. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Armi.pl +14 -0
  1540. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Armn.pl +17 -0
  1541. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Avst.pl +14 -0
  1542. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Bali.pl +14 -0
  1543. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Bamu.pl +14 -0
  1544. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Batk.pl +14 -0
  1545. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Beng.pl +26 -0
  1546. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Bopo.pl +15 -0
  1547. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Brah.pl +14 -0
  1548. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Bugi.pl +14 -0
  1549. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Buhd.pl +13 -0
  1550. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Cans.pl +14 -0
  1551. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Cari.pl +13 -0
  1552. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Cham.pl +16 -0
  1553. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Cher.pl +13 -0
  1554. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Copt.pl +15 -0
  1555. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Cprt.pl +18 -0
  1556. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Cyrl.pl +19 -0
  1557. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Deva.pl +18 -0
  1558. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Egyp.pl +13 -0
  1559. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Ethi.pl +44 -0
  1560. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Geor.pl +16 -0
  1561. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Glag.pl +14 -0
  1562. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Goth.pl +13 -0
  1563. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Grek.pl +45 -0
  1564. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Gujr.pl +26 -0
  1565. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Guru.pl +28 -0
  1566. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Han.pl +28 -0
  1567. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Hang.pl +26 -0
  1568. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Hano.pl +13 -0
  1569. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Hebr.pl +21 -0
  1570. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Hira.pl +16 -0
  1571. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Ital.pl +14 -0
  1572. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Java.pl +15 -0
  1573. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Kana.pl +20 -0
  1574. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Khar.pl +20 -0
  1575. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Khmr.pl +16 -0
  1576. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Knda.pl +26 -0
  1577. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Kthi.pl +13 -0
  1578. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Lana.pl +17 -0
  1579. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Lao.pl +30 -0
  1580. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Latn.pl +42 -0
  1581. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Lepc.pl +15 -0
  1582. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Limb.pl +17 -0
  1583. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Linb.pl +19 -0
  1584. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Lyci.pl +13 -0
  1585. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Lydi.pl +14 -0
  1586. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Mand.pl +14 -0
  1587. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Mlym.pl +23 -0
  1588. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Mong.pl +18 -0
  1589. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Mtei.pl +14 -0
  1590. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Mymr.pl +14 -0
  1591. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Nko.pl +13 -0
  1592. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Ogam.pl +13 -0
  1593. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Orkh.pl +13 -0
  1594. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Orya.pl +26 -0
  1595. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Osma.pl +14 -0
  1596. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Phag.pl +13 -0
  1597. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Phli.pl +14 -0
  1598. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Phnx.pl +14 -0
  1599. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Prti.pl +14 -0
  1600. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Rjng.pl +14 -0
  1601. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Runr.pl +14 -0
  1602. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Samr.pl +14 -0
  1603. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Saur.pl +14 -0
  1604. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Sinh.pl +23 -0
  1605. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Sund.pl +14 -0
  1606. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Sylo.pl +13 -0
  1607. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Syrc.pl +15 -0
  1608. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Tagb.pl +15 -0
  1609. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Tale.pl +14 -0
  1610. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Talu.pl +16 -0
  1611. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Taml.pl +28 -0
  1612. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Tavt.pl +14 -0
  1613. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Telu.pl +26 -0
  1614. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Tfng.pl +15 -0
  1615. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Tglg.pl +14 -0
  1616. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Thaa.pl +13 -0
  1617. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Thai.pl +14 -0
  1618. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Tibt.pl +19 -0
  1619. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Ugar.pl +14 -0
  1620. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Vai.pl +13 -0
  1621. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Xpeo.pl +14 -0
  1622. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Xsux.pl +15 -0
  1623. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Yi.pl +14 -0
  1624. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Zinh.pl +36 -0
  1625. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Zyyy.pl +181 -0
  1626. data/Slic3r/Linux/lib/std/unicore/lib/Sc/Zzzz.pl +511 -0
  1627. data/Slic3r/Linux/lib/std/unicore/lib/Space/N.pl +24 -0
  1628. data/Slic3r/Linux/lib/std/unicore/lib/Space/Y.pl +23 -0
  1629. data/Slic3r/Linux/lib/std/unicore/lib/Term/N.pl +80 -0
  1630. data/Slic3r/Linux/lib/std/unicore/lib/Term/Y.pl +79 -0
  1631. data/Slic3r/Linux/lib/std/unicore/lib/UIdeo/N.pl +25 -0
  1632. data/Slic3r/Linux/lib/std/unicore/lib/UIdeo/Y.pl +24 -0
  1633. data/Slic3r/Linux/lib/std/unicore/lib/Upper/N.pl +618 -0
  1634. data/Slic3r/Linux/lib/std/unicore/lib/Upper/Y.pl +617 -0
  1635. data/Slic3r/Linux/lib/std/unicore/lib/VS/N.pl +16 -0
  1636. data/Slic3r/Linux/lib/std/unicore/lib/VS/Y.pl +15 -0
  1637. data/Slic3r/Linux/lib/std/unicore/lib/WB/EX.pl +18 -0
  1638. data/Slic3r/Linux/lib/std/unicore/lib/WB/FO.pl +27 -0
  1639. data/Slic3r/Linux/lib/std/unicore/lib/WB/KA.pl +21 -0
  1640. data/Slic3r/Linux/lib/std/unicore/lib/WB/LE.pl +388 -0
  1641. data/Slic3r/Linux/lib/std/unicore/lib/WB/MB.pl +19 -0
  1642. data/Slic3r/Linux/lib/std/unicore/lib/WB/ML.pl +20 -0
  1643. data/Slic3r/Linux/lib/std/unicore/lib/WB/MN.pl +26 -0
  1644. data/Slic3r/Linux/lib/std/unicore/lib/WB/NL.pl +15 -0
  1645. data/Slic3r/Linux/lib/std/unicore/lib/WB/NU.pl +50 -0
  1646. data/Slic3r/Linux/lib/std/unicore/lib/WB/XX.pl +539 -0
  1647. data/Slic3r/Linux/lib/std/unicore/lib/XIDC/N.pl +534 -0
  1648. data/Slic3r/Linux/lib/std/unicore/lib/XIDC/Y.pl +533 -0
  1649. data/Slic3r/Linux/lib/std/unicore/lib/XIDS/N.pl +457 -0
  1650. data/Slic3r/Linux/lib/std/unicore/lib/XIDS/Y.pl +456 -0
  1651. data/Slic3r/Linux/lib/std/utf8.pm +214 -0
  1652. data/Slic3r/Linux/lib/std/utf8_heavy.pl +550 -0
  1653. data/Slic3r/Linux/lib/vrt/528ccea98cad02a5f453a7135f9ca183/package.lib +0 -0
  1654. data/Slic3r/Linux/lib/vrt/804f15d0b003b04c3feb68e47adacf8d/package.lib +1 -0
  1655. data/Slic3r/Linux/lib/vrt/fa119178d164dcf97f19aecc876231c0/package.lib +0 -0
  1656. data/Slic3r/Linux/res/Slic3r.icns +0 -0
  1657. data/Slic3r/Linux/res/Slic3r.ico +0 -0
  1658. data/Slic3r/Linux/res/Slic3r.png +0 -0
  1659. data/Slic3r/Linux/res/Slic3r_128px.png +0 -0
  1660. data/Slic3r/Linux/res/Slic3r_192px.png +0 -0
  1661. data/Slic3r/Linux/res/Slic3r_192px_transparent.png +0 -0
  1662. data/Slic3r/Linux/res/add.png +0 -0
  1663. data/Slic3r/Linux/res/arrow_out.png +0 -0
  1664. data/Slic3r/Linux/res/arrow_rotate_anticlockwise.png +0 -0
  1665. data/Slic3r/Linux/res/arrow_rotate_clockwise.png +0 -0
  1666. data/Slic3r/Linux/res/arrow_up.png +0 -0
  1667. data/Slic3r/Linux/res/box.png +0 -0
  1668. data/Slic3r/Linux/res/brick.png +0 -0
  1669. data/Slic3r/Linux/res/brick_add.png +0 -0
  1670. data/Slic3r/Linux/res/brick_delete.png +0 -0
  1671. data/Slic3r/Linux/res/brick_go.png +0 -0
  1672. data/Slic3r/Linux/res/bricks.png +0 -0
  1673. data/Slic3r/Linux/res/building.png +0 -0
  1674. data/Slic3r/Linux/res/bullet_black.png +0 -0
  1675. data/Slic3r/Linux/res/bullet_blue.png +0 -0
  1676. data/Slic3r/Linux/res/bullet_white.png +0 -0
  1677. data/Slic3r/Linux/res/cog.png +0 -0
  1678. data/Slic3r/Linux/res/cog_go.png +0 -0
  1679. data/Slic3r/Linux/res/cross.png +0 -0
  1680. data/Slic3r/Linux/res/delete.png +0 -0
  1681. data/Slic3r/Linux/res/disk.png +0 -0
  1682. data/Slic3r/Linux/res/error.png +0 -0
  1683. data/Slic3r/Linux/res/funnel.png +0 -0
  1684. data/Slic3r/Linux/res/hourglass.png +0 -0
  1685. data/Slic3r/Linux/res/layers.png +0 -0
  1686. data/Slic3r/Linux/res/note.png +0 -0
  1687. data/Slic3r/Linux/res/package.png +0 -0
  1688. data/Slic3r/Linux/res/package_green.png +0 -0
  1689. data/Slic3r/Linux/res/page_white_go.png +0 -0
  1690. data/Slic3r/Linux/res/plugin.png +0 -0
  1691. data/Slic3r/Linux/res/printer_empty.png +0 -0
  1692. data/Slic3r/Linux/res/shading.png +0 -0
  1693. data/Slic3r/Linux/res/shape_ungroup.png +0 -0
  1694. data/Slic3r/Linux/res/spool.png +0 -0
  1695. data/Slic3r/Linux/res/tag_blue.png +0 -0
  1696. data/Slic3r/Linux/res/time.png +0 -0
  1697. data/Slic3r/Linux/res/wrench.png +0 -0
  1698. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libperl.dylib +0 -0
  1699. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_baseu-2.9.3.0.0.dylib +0 -0
  1700. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_baseu-2.9.3.dylib +1 -0
  1701. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_baseu-2.9.dylib +1 -0
  1702. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_baseu_net-2.9.3.0.0.dylib +0 -0
  1703. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_baseu_net-2.9.3.dylib +1 -0
  1704. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_baseu_net-2.9.dylib +1 -0
  1705. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_adv-2.9.3.0.0.dylib +0 -0
  1706. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_adv-2.9.3.dylib +1 -0
  1707. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_adv-2.9.dylib +1 -0
  1708. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_core-2.9.3.0.0.dylib +0 -0
  1709. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_core-2.9.3.dylib +1 -0
  1710. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_core-2.9.dylib +1 -0
  1711. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_gl-2.9.3.0.0.dylib +0 -0
  1712. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_gl-2.9.3.dylib +1 -0
  1713. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_gl-2.9.dylib +1 -0
  1714. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_html-2.9.3.0.0.dylib +0 -0
  1715. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_html-2.9.3.dylib +1 -0
  1716. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_html-2.9.dylib +1 -0
  1717. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_media-2.9.3.0.0.dylib +0 -0
  1718. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_media-2.9.3.dylib +1 -0
  1719. data/Slic3r/Mac/Slic3r.app/Contents/Frameworks/libwx_osx_cocoau_media-2.9.dylib +1 -0
  1720. data/Slic3r/Mac/Slic3r.app/Contents/Info.plist +27 -0
  1721. data/Slic3r/Mac/Slic3r.app/Contents/MacOS/slic3r +0 -0
  1722. data/Slic3r/Mac/Slic3r.app/Contents/PkgInfo +1 -0
  1723. data/Slic3r/Mac/Slic3r.app/Contents/Resources/Slic3r.icns +0 -0
  1724. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/std/Mozilla/CA.pm +99 -0
  1725. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/std/Mozilla/CA/cacert.pem +3366 -0
  1726. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/std/XML/SAX/ParserDetails.ini +16 -0
  1727. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/00fe171e54eaa45f327269069a84261c/SHA.bundle +0 -0
  1728. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/01641a74022c3bbdcd3a4cd5ffa26f07/ExpatXS.bundle +0 -0
  1729. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/02275a9ba60dd2657ec564332cc8c8a6/mro.bundle +0 -0
  1730. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/0599c4249af65dd82091e4b41e75dcac/GLCanvas.bundle +0 -0
  1731. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/0b007f4858c19ac489b6482dc8d8e973/Base64.bundle +0 -0
  1732. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/11897113663a72e0cf3a40f86569d0d3/package.lib +437 -0
  1733. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/181b750c50b989ea215e0c9788700590/scalar.bundle +0 -0
  1734. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/18e56ac547628015c934d8e62b2e59fb/shared.bundle +0 -0
  1735. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/193e996343c27253990f34ec93d7ae14/XS.bundle +0 -0
  1736. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/1e7eafa7ded7f14757bba03f9721336f/MD5.bundle +0 -0
  1737. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/2203e7a3df69c390965a2aa240378b54/FastCalc.bundle +0 -0
  1738. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/3b0e1864ce168232981b0e0b6e4ba639/Zlib.bundle +0 -0
  1739. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/4219a41428dfbeccc0004f15dc4778d8/Unicode.bundle +0 -0
  1740. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/42c3d19347a691f255d231da3d91f1ab/package.lib +332 -0
  1741. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/446150103e8711b6887777b796b96e92/Storable.bundle +0 -0
  1742. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/471029ae61c0427e58f24ac9e5a0cca5/package.lib +41 -0
  1743. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/4b2be1b5f4e6e6643e35d2fcdd27000d/Fcntl.bundle +0 -0
  1744. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/4c8cb4098e6eacc0dda716777c02e08e/Print.bundle +0 -0
  1745. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/51a64b55f893bfcb317be27527adb1c6/XSAccessor.bundle +0 -0
  1746. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/528ccea98cad02a5f453a7135f9ca183/package.lib +0 -0
  1747. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/5abe14a55ea43955299905c968f6b868/NamedCapture.bundle +0 -0
  1748. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/5da723b19d0784844a5d9228c25b1022/IO.bundle +0 -0
  1749. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/5efcd6c8c536b3b2d25ffece18e6cc7f/Byte.bundle +0 -0
  1750. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/62d4f6d2fa13586d2f8d48e80fcaad8d/re.bundle +0 -0
  1751. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/65951cec1d16610098f09e209050a4e5/encoding.bundle +0 -0
  1752. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/72315e121508feb38a782d3bd60cf0e1/Encode.bundle +0 -0
  1753. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/72f45450977a0f098e76b5b1270fb1fa/TW.bundle +0 -0
  1754. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/74f1151ea68af8b93e28a8d7b59bc6f1/Util.bundle +0 -0
  1755. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/7a1d45f404be604381d8b95f374ecae2/POSIX.bundle +0 -0
  1756. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/7a9108dfb82f49ad15e339776671a0c9/KR.bundle +0 -0
  1757. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/7e549424075365bb7bac11a08b208145/XS.bundle +0 -0
  1758. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/7e7926fce7d528168853b8dab2c9ccd2/Socket.bundle +0 -0
  1759. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/804f15d0b003b04c3feb68e47adacf8d/package.lib +1 -0
  1760. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/826014915c535a7285f886166a778440/Cwd.bundle +0 -0
  1761. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/83e7bddbda22f4666134d95e35b3292e/Grid.bundle +0 -0
  1762. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/8efb4e8160ee47f9e953900fd189e72c/Symbol.bundle +0 -0
  1763. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/9077b3800b946e19da99a53a92321f77/JP.bundle +0 -0
  1764. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/9425135f44548a4e211eabfbba86fdf7/B.bundle +0 -0
  1765. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/94c9b361d23d6847d023b9e82acbc595/UUID.bundle +0 -0
  1766. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/953dbc6f080a921c10f4fb4adf0a6ea7/SealRequireHints.bundle +0 -0
  1767. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/9f303c03e9bb3b3307210ed1399034f4/Dumper.bundle +0 -0
  1768. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/a3809d03e71342d25daf495917654688/indirect.bundle +0 -0
  1769. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/a499207f115577de989dae697bccf1f7/via.bundle +0 -0
  1770. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/a4ff00c6243840a7c5a181800d0a0e9f/Glob.bundle +0 -0
  1771. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/a8a5488c950b4ae4ab726834ab1f4629/Parser.bundle +0 -0
  1772. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/a927c16eae43f6d2d1fcbca4288c2613/Bzip2.bundle +0 -0
  1773. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/b2467e1e23f7295c8b0e819807403777/Check.bundle +0 -0
  1774. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/b75af51104891e1861cf27a85a06248f/SSLeay.bundle +0 -0
  1775. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/c04409d610134c279178eaab1c0cd45e/multidimensional.bundle +0 -0
  1776. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/c37c19e69c64f01f83616050a4290081/filehandles.bundle +0 -0
  1777. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/c63ee2950efe3f9517034e269406a6f1/Call.bundle +0 -0
  1778. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/c8b43a9fa99c2589e0af3851636037ae/threads.bundle +0 -0
  1779. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/c9bc0bb4eaabb8b3b85268094134ae30/SSLeay.bundle +0 -0
  1780. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/cb9c4ab6b50a6ba6e9a1c58866acb842/HiRes.bundle +0 -0
  1781. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/d73dc34729c26340077a511c9aeae54c/Langinfo.bundle +0 -0
  1782. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/e0833c18d9957e5ef93fd12ea63dc88c/Libm.bundle +0 -0
  1783. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/e4596f5a53563fc95d87c9738c6ed3f1/attributes.bundle +0 -0
  1784. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/e69ac1437c1fe7ba8a391d4a6e017895/DND.bundle +0 -0
  1785. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/f0daa614fb85c8dc08ddd86ef81f8546/EBCDIC.bundle +0 -0
  1786. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/f3d865c9882d669a56d9890365558ef3/Wx.bundle +0 -0
  1787. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/f77494368a2754d99fc9ae63725241b9/CN.bundle +0 -0
  1788. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/f7b6e5c51850d9c5b8f9f118bf8c79e5/OpenGL.bundle +0 -0
  1789. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/fa119178d164dcf97f19aecc876231c0/package.lib +0 -0
  1790. data/Slic3r/Mac/Slic3r.app/Contents/Resources/lib/vrt/ff1c32bbf4efed322b40618fa6cc887f/Html.bundle +0 -0
  1791. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/Slic3r.icns +0 -0
  1792. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/Slic3r.ico +0 -0
  1793. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/Slic3r.png +0 -0
  1794. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/Slic3r_128px.png +0 -0
  1795. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/Slic3r_192px.png +0 -0
  1796. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/Slic3r_192px_transparent.png +0 -0
  1797. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/add.png +0 -0
  1798. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/arrow_out.png +0 -0
  1799. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/arrow_rotate_anticlockwise.png +0 -0
  1800. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/arrow_rotate_clockwise.png +0 -0
  1801. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/arrow_up.png +0 -0
  1802. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/box.png +0 -0
  1803. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/brick.png +0 -0
  1804. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/brick_add.png +0 -0
  1805. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/brick_delete.png +0 -0
  1806. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/brick_go.png +0 -0
  1807. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/bricks.png +0 -0
  1808. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/building.png +0 -0
  1809. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/bullet_black.png +0 -0
  1810. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/bullet_blue.png +0 -0
  1811. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/bullet_white.png +0 -0
  1812. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/cog.png +0 -0
  1813. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/cog_go.png +0 -0
  1814. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/cross.png +0 -0
  1815. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/delete.png +0 -0
  1816. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/disk.png +0 -0
  1817. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/error.png +0 -0
  1818. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/funnel.png +0 -0
  1819. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/hourglass.png +0 -0
  1820. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/layers.png +0 -0
  1821. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/note.png +0 -0
  1822. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/package.png +0 -0
  1823. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/package_green.png +0 -0
  1824. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/page_white_go.png +0 -0
  1825. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/plugin.png +0 -0
  1826. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/printer_empty.png +0 -0
  1827. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/shading.png +0 -0
  1828. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/shape_ungroup.png +0 -0
  1829. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/spool.png +0 -0
  1830. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/tag_blue.png +0 -0
  1831. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/time.png +0 -0
  1832. data/Slic3r/Mac/Slic3r.app/Contents/Resources/res/wrench.png +0 -0
  1833. data/Slic3r/Win/bin/cpfworkrt/cpfworkrt.manifest +8 -0
  1834. data/Slic3r/Win/bin/cpfworkrt/libgcc_s_sjlj-1.dll +0 -0
  1835. data/Slic3r/Win/bin/cpfworkrt/libstdc++-6.dll +0 -0
  1836. data/Slic3r/Win/bin/cpfworkrt/perl514.dll +0 -0
  1837. data/Slic3r/Win/cpfworkrt/cpfworkrt.manifest +8 -0
  1838. data/Slic3r/Win/cpfworkrt/libgcc_s_sjlj-1.dll +0 -0
  1839. data/Slic3r/Win/cpfworkrt/libstdc++-6.dll +0 -0
  1840. data/Slic3r/Win/cpfworkrt/perl514.dll +0 -0
  1841. data/Slic3r/Win/dll/cpwgui.exe +0 -0
  1842. data/Slic3r/Win/dll/wxbase293u_gcc_citrusperl.dll +0 -0
  1843. data/Slic3r/Win/dll/wxbase293u_net_gcc_citrusperl.dll +0 -0
  1844. data/Slic3r/Win/dll/wxmsw293u_adv_gcc_citrusperl.dll +0 -0
  1845. data/Slic3r/Win/dll/wxmsw293u_core_gcc_citrusperl.dll +0 -0
  1846. data/Slic3r/Win/dll/wxmsw293u_gl_gcc_citrusperl.dll +0 -0
  1847. data/Slic3r/Win/dll/wxmsw293u_html_gcc_citrusperl.dll +0 -0
  1848. data/Slic3r/Win/lib/std/Mozilla/CA.pm +99 -0
  1849. data/Slic3r/Win/lib/std/Mozilla/CA/cacert.pem +3366 -0
  1850. data/Slic3r/Win/lib/std/XML/SAX/ParserDetails.ini +16 -0
  1851. data/Slic3r/Win/lib/vrt/00065b3cc7c31741588c51da0ebf7cfc/Storable.dll +0 -0
  1852. data/Slic3r/Win/lib/vrt/0e211ef5300e42b7129e72ce6934dd03/File.dll +0 -0
  1853. data/Slic3r/Win/lib/vrt/11897113663a72e0cf3a40f86569d0d3/package.lib +437 -0
  1854. data/Slic3r/Win/lib/vrt/13887bf5057dfc645e73f9cbc2107b0b/shared.dll +0 -0
  1855. data/Slic3r/Win/lib/vrt/13b74231834b96c1b29d9bb7ff9fc803/XSAccessor.dll +0 -0
  1856. data/Slic3r/Win/lib/vrt/17a8fd354d07706b1d8e07133653aefe/Unicode.dll +0 -0
  1857. data/Slic3r/Win/lib/vrt/1ff31eb32e672b10095dc07142eda94e/Byte.dll +0 -0
  1858. data/Slic3r/Win/lib/vrt/212acdb3b0d578c6c31b6f5b102aaf9f/OpenGL.dll +0 -0
  1859. data/Slic3r/Win/lib/vrt/212acdb3b0d578c6c31b6f5b102aaf9f/freeglut.dll +0 -0
  1860. data/Slic3r/Win/lib/vrt/2b09d17ec43a6c01f265254b54d60739/Dumper.dll +0 -0
  1861. data/Slic3r/Win/lib/vrt/2ce0a6f8648060f015cf6b795bedf11d/SHA.dll +0 -0
  1862. data/Slic3r/Win/lib/vrt/3545b2d83c9d9a29194f9ab80ec5474b/Fcntl.dll +0 -0
  1863. data/Slic3r/Win/lib/vrt/38786f297f552b7038b60152ad9b90fc/ExpatXS.dll +0 -0
  1864. data/Slic3r/Win/lib/vrt/3d306f1634430f34d0521f8ea684e9ec/SSLeay.dll +0 -0
  1865. data/Slic3r/Win/lib/vrt/3ea9b1cd80f790518c416324dd069ebd/encoding.dll +0 -0
  1866. data/Slic3r/Win/lib/vrt/41c42900fc0d462e9a31e174ac8a654c/Html.dll +0 -0
  1867. data/Slic3r/Win/lib/vrt/42c3d19347a691f255d231da3d91f1ab/package.lib +332 -0
  1868. data/Slic3r/Win/lib/vrt/4699e2a2c6a572106b4070861d78c22a/Parser.dll +0 -0
  1869. data/Slic3r/Win/lib/vrt/46c688003f4a63abb5816f68b951f727/MD5.dll +0 -0
  1870. data/Slic3r/Win/lib/vrt/471029ae61c0427e58f24ac9e5a0cca5/package.lib +41 -0
  1871. data/Slic3r/Win/lib/vrt/49bdccea41102e6d90906b74653d30ab/HiRes.dll +0 -0
  1872. data/Slic3r/Win/lib/vrt/4c9065158b425703c56336bd7fd5bbf2/SSLeay.dll +0 -0
  1873. data/Slic3r/Win/lib/vrt/50e0982503943dcf3f001fc2d17d4075/JP.dll +0 -0
  1874. data/Slic3r/Win/lib/vrt/528ccea98cad02a5f453a7135f9ca183/package.lib +0 -0
  1875. data/Slic3r/Win/lib/vrt/6419170f57dff2f058fefa3f8f37c897/EBCDIC.dll +0 -0
  1876. data/Slic3r/Win/lib/vrt/655af4e236089eadb910a60a39fbe815/attributes.dll +0 -0
  1877. data/Slic3r/Win/lib/vrt/6c123a3a5b411759cc21a293df5bed0e/SealRequireHints.dll +0 -0
  1878. data/Slic3r/Win/lib/vrt/7ba0890aa8ff0eed7abb9f76181bd637/Console.dll +0 -0
  1879. data/Slic3r/Win/lib/vrt/7ef678fd3db32983bdf488c788a3a763/IO.dll +0 -0
  1880. data/Slic3r/Win/lib/vrt/804f15d0b003b04c3feb68e47adacf8d/package.lib +1 -0
  1881. data/Slic3r/Win/lib/vrt/8f7c428c727a7d81643b50b598197734/API.dll +0 -0
  1882. data/Slic3r/Win/lib/vrt/8fa3f50b03f9cb0203031cf516aa3973/B.dll +0 -0
  1883. data/Slic3r/Win/lib/vrt/9573d0f8956394a9448b7cb70a24fed3/CN.dll +0 -0
  1884. data/Slic3r/Win/lib/vrt/9a02fe0b6c8a35ffbf56e88f9910abeb/Base64.dll +0 -0
  1885. data/Slic3r/Win/lib/vrt/9cc90b876890f13970933c948cbb4b2e/Print.dll +0 -0
  1886. data/Slic3r/Win/lib/vrt/9d4869e43aaebbcbfc9baec70819f444/indirect.dll +0 -0
  1887. data/Slic3r/Win/lib/vrt/a3600f18eb88b7c4835e2438eeda19b1/Symbol.dll +0 -0
  1888. data/Slic3r/Win/lib/vrt/a3719ad0fa76c06423d0397090ec4ed9/Libm.dll +0 -0
  1889. data/Slic3r/Win/lib/vrt/a40249e26296df558fcddd2c8cbfb2f6/UUID.dll +0 -0
  1890. data/Slic3r/Win/lib/vrt/aa455d4af51625c2acacb6716c0a6e01/scalar.dll +0 -0
  1891. data/Slic3r/Win/lib/vrt/aa976c80169f479f0613ff5283377098/Win32.dll +0 -0
  1892. data/Slic3r/Win/lib/vrt/ad648dbf31179700b4efd00b04f50dab/multidimensional.dll +0 -0
  1893. data/Slic3r/Win/lib/vrt/b48cd6cc5170110b04444736f8ca1a04/mro.dll +0 -0
  1894. data/Slic3r/Win/lib/vrt/b6a5c6ef2abf4a7046bb88d7a8b220ff/GLCanvas.dll +0 -0
  1895. data/Slic3r/Win/lib/vrt/bd26fbb8f6447c2e98cf359976a3c1a7/POSIX.dll +0 -0
  1896. data/Slic3r/Win/lib/vrt/c23df991c561704a8913289bdfea9462/Zlib.dll +0 -0
  1897. data/Slic3r/Win/lib/vrt/c8786c44f0a905ffe6d5d8a4068a75c2/Call.dll +0 -0
  1898. data/Slic3r/Win/lib/vrt/cbbb6d80da8c62ee893a65195943b803/re.dll +0 -0
  1899. data/Slic3r/Win/lib/vrt/cbfee14465f0627fbadfcc84b97d402b/KR.dll +0 -0
  1900. data/Slic3r/Win/lib/vrt/cd0b5b2fa854963191ca9718e26a0abc/Grid.dll +0 -0
  1901. data/Slic3r/Win/lib/vrt/ceb3487499a2d7f0edbcc6aa0c0536c1/NamedCapture.dll +0 -0
  1902. data/Slic3r/Win/lib/vrt/cfbd454ca865af139a419af806f1d4c7/DND.dll +0 -0
  1903. data/Slic3r/Win/lib/vrt/cfcde55111d441748de61cc95acb240e/Check.dll +0 -0
  1904. data/Slic3r/Win/lib/vrt/d0b4c3dceefb5d08dbe60f0e68d0da76/filehandles.dll +0 -0
  1905. data/Slic3r/Win/lib/vrt/d9c3e3943b3f28bc1f09e2f713cc6afb/Glob.dll +0 -0
  1906. data/Slic3r/Win/lib/vrt/da3813f7e06d5ace75632aaf1738303a/Cwd.dll +0 -0
  1907. data/Slic3r/Win/lib/vrt/e29b9764cd99fd442815834972733f63/Encode.dll +0 -0
  1908. data/Slic3r/Win/lib/vrt/e51409fbea61e7f44156de0a7d61ce6e/FastCalc.dll +0 -0
  1909. data/Slic3r/Win/lib/vrt/eaa3f41565bf2fe58068d68f47a06165/Bzip2.dll +0 -0
  1910. data/Slic3r/Win/lib/vrt/eb8576fa2c159886e7f37945c9fb302c/Util.dll +0 -0
  1911. data/Slic3r/Win/lib/vrt/ef0a1b3a50dcc9984703f576320986af/Socket.dll +0 -0
  1912. data/Slic3r/Win/lib/vrt/efa78e66d1d123d9a6f5890b6ca9167a/TW.dll +0 -0
  1913. data/Slic3r/Win/lib/vrt/f490c3f60de8989339da70e91e2faf32/threads.dll +0 -0
  1914. data/Slic3r/Win/lib/vrt/f6025e058c0367c56e8eed568e60077b/Clone.dll +0 -0
  1915. data/Slic3r/Win/lib/vrt/f8d8299b70fb38b8f4ba594e6f23c91f/XS.dll +0 -0
  1916. data/Slic3r/Win/lib/vrt/fa119178d164dcf97f19aecc876231c0/package.lib +0 -0
  1917. data/Slic3r/Win/lib/vrt/fadbe2ebaf950eb9e5e3c3d65739aa92/via.dll +0 -0
  1918. data/Slic3r/Win/lib/vrt/fb078e7d1a272046eb7bd617bd3ed5c4/Wx.dll +0 -0
  1919. data/Slic3r/Win/lib/vrt/ffa8ccc0f7f886ba695e841a491bce9a/XS.dll +0 -0
  1920. data/Slic3r/Win/res/Slic3r.icns +0 -0
  1921. data/Slic3r/Win/res/Slic3r.ico +0 -0
  1922. data/Slic3r/Win/res/Slic3r.png +0 -0
  1923. data/Slic3r/Win/res/Slic3r_128px.png +0 -0
  1924. data/Slic3r/Win/res/Slic3r_192px.png +0 -0
  1925. data/Slic3r/Win/res/Slic3r_192px_transparent.png +0 -0
  1926. data/Slic3r/Win/res/add.png +0 -0
  1927. data/Slic3r/Win/res/arrow_out.png +0 -0
  1928. data/Slic3r/Win/res/arrow_rotate_anticlockwise.png +0 -0
  1929. data/Slic3r/Win/res/arrow_rotate_clockwise.png +0 -0
  1930. data/Slic3r/Win/res/arrow_up.png +0 -0
  1931. data/Slic3r/Win/res/box.png +0 -0
  1932. data/Slic3r/Win/res/brick.png +0 -0
  1933. data/Slic3r/Win/res/brick_add.png +0 -0
  1934. data/Slic3r/Win/res/brick_delete.png +0 -0
  1935. data/Slic3r/Win/res/brick_go.png +0 -0
  1936. data/Slic3r/Win/res/bricks.png +0 -0
  1937. data/Slic3r/Win/res/building.png +0 -0
  1938. data/Slic3r/Win/res/bullet_black.png +0 -0
  1939. data/Slic3r/Win/res/bullet_blue.png +0 -0
  1940. data/Slic3r/Win/res/bullet_white.png +0 -0
  1941. data/Slic3r/Win/res/cog.png +0 -0
  1942. data/Slic3r/Win/res/cog_go.png +0 -0
  1943. data/Slic3r/Win/res/cross.png +0 -0
  1944. data/Slic3r/Win/res/delete.png +0 -0
  1945. data/Slic3r/Win/res/disk.png +0 -0
  1946. data/Slic3r/Win/res/error.png +0 -0
  1947. data/Slic3r/Win/res/funnel.png +0 -0
  1948. data/Slic3r/Win/res/hourglass.png +0 -0
  1949. data/Slic3r/Win/res/layers.png +0 -0
  1950. data/Slic3r/Win/res/note.png +0 -0
  1951. data/Slic3r/Win/res/package.png +0 -0
  1952. data/Slic3r/Win/res/package_green.png +0 -0
  1953. data/Slic3r/Win/res/page_white_go.png +0 -0
  1954. data/Slic3r/Win/res/plugin.png +0 -0
  1955. data/Slic3r/Win/res/printer_empty.png +0 -0
  1956. data/Slic3r/Win/res/shading.png +0 -0
  1957. data/Slic3r/Win/res/shape_ungroup.png +0 -0
  1958. data/Slic3r/Win/res/spool.png +0 -0
  1959. data/Slic3r/Win/res/tag_blue.png +0 -0
  1960. data/Slic3r/Win/res/time.png +0 -0
  1961. data/Slic3r/Win/res/wrench.png +0 -0
  1962. data/Slic3r/Win/slic3r-console.exe +0 -0
  1963. data/Slic3r/Win/slic3r.exe +0 -0
  1964. data/Slic3r/Win/temp.txt +278 -0
  1965. data/lib/STLExtract.rb +155 -0
  1966. data/lib/STLExtract/version.rb +3 -0
  1967. metadata +2044 -0
@@ -0,0 +1,199 @@
1
+ package Math::Libm;
2
+
3
+ use strict;
4
+ # use warnings;
5
+ use Carp;
6
+ use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK @EXPORT $VERSION $AUTOLOAD);
7
+
8
+ require Exporter;
9
+ require DynaLoader;
10
+ use AutoLoader;
11
+
12
+ @ISA = qw(Exporter DynaLoader);
13
+
14
+ # Items to export into callers namespace by default. Note: do not export
15
+ # names by default without a very good reason. Use EXPORT_OK instead.
16
+ # Do not simply export all your public functions/methods/constants.
17
+
18
+ # This allows declaration use Math::Libm ':all';
19
+ # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
20
+ # will save memory.
21
+ %EXPORT_TAGS = ( 'all' => [ qw(
22
+ M_1_PI
23
+ M_2_PI
24
+ M_2_SQRTPI
25
+ M_E
26
+ M_LN10
27
+ M_LN2
28
+ M_LOG10E
29
+ M_LOG2E
30
+ M_PI
31
+ M_PI_2
32
+ M_PI_4
33
+ M_SQRT1_2
34
+ M_SQRT2
35
+ acos
36
+ acosh
37
+ asin
38
+ asinh
39
+ atan
40
+ atanh
41
+ cbrt
42
+ ceil
43
+ cosh
44
+ erf
45
+ erfc
46
+ expm1
47
+ floor
48
+ hypot
49
+ j0
50
+ j1
51
+ jn
52
+ lgamma_r
53
+ log10
54
+ log1p
55
+ pow
56
+ rint
57
+ sinh
58
+ tan
59
+ tanh
60
+ y0
61
+ y1
62
+ yn
63
+ ) ] );
64
+
65
+ @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
66
+
67
+ @EXPORT = qw();
68
+
69
+ $VERSION = '1.00';
70
+
71
+ sub AUTOLOAD {
72
+ # This AUTOLOAD is used to 'autoload' constants from the constant()
73
+ # XS function. If a constant is not found then control is passed
74
+ # to the AUTOLOAD in AutoLoader.
75
+
76
+ my $constname;
77
+ ($constname = $AUTOLOAD) =~ s/.*:://;
78
+ croak "& not defined" if $constname eq 'constant';
79
+ my $val = constant($constname, @_ ? $_[0] : 0);
80
+ if ($! != 0) {
81
+ if ($! =~ /Invalid/ || $!{EINVAL}) {
82
+ $AutoLoader::AUTOLOAD = $AUTOLOAD;
83
+ goto &AutoLoader::AUTOLOAD;
84
+ }
85
+ else {
86
+ croak "Your vendor has not defined Math::Libm macro $constname";
87
+ }
88
+ }
89
+ {
90
+ no strict 'refs';
91
+ # Fixed between 5.005_53 and 5.005_61
92
+ if ($] >= 5.00561) {
93
+ # *$AUTOLOAD = sub () { $val };
94
+ *$AUTOLOAD = sub { $val };
95
+ }
96
+ else {
97
+ *$AUTOLOAD = sub { $val };
98
+ }
99
+ }
100
+ goto &$AUTOLOAD;
101
+ }
102
+
103
+ bootstrap Math::Libm $VERSION;
104
+
105
+ # Preloaded methods go here.
106
+
107
+ # Autoload methods go after =cut, and are processed by the autosplit program.
108
+
109
+ 1;
110
+ __END__
111
+ # Below is stub documentation for your module. You better edit it!
112
+
113
+ =head1 NAME
114
+
115
+ Math::Libm - Perl extension for the C math library, libm
116
+
117
+ =head1 SYNOPSIS
118
+
119
+ use Math::Libm ':all';
120
+
121
+ print "e = ", M_E, "\n";
122
+ print "pi/2 = ", M_PI_2, "\n";
123
+ print "erf(1) = ", erf(1), "\n";
124
+ print "hypot(3,4) = ", hypot(3,4), "\n";
125
+
126
+ my $signgam = 0;
127
+ my $y = lgamma_r(-0.5, $signgam);
128
+ print "signgam=$signgam lgamma=$y\n";
129
+
130
+ =head1 DESCRIPTION
131
+
132
+ This module is a translation of the C F<math.h> file.
133
+ It exports the following selected constants and functions.
134
+
135
+ =head2 EXPORT
136
+
137
+ None by default.
138
+
139
+ =head2 Exportable constants
140
+
141
+ M_1_PI
142
+ M_2_PI
143
+ M_2_SQRTPI
144
+ M_E
145
+ M_LN10
146
+ M_LN2
147
+ M_LOG10E
148
+ M_LOG2E
149
+ M_PI
150
+ M_PI_2
151
+ M_PI_4
152
+ M_SQRT1_2
153
+ M_SQRT2
154
+
155
+ =head2 Exportable functions
156
+
157
+ double acos(double x)
158
+ double acosh(double x)
159
+ double asin(double x)
160
+ double asinh(double x)
161
+ double atan(double x)
162
+ double atanh(double x)
163
+ double cbrt(double x)
164
+ double ceil(double x)
165
+ double cosh(double x)
166
+ double erf(double x)
167
+ double erfc(double x)
168
+ double expm1(double x)
169
+ double floor(double x)
170
+ double hypot(double x, double y)
171
+ double j0(double x)
172
+ double j1(double x)
173
+ double jn(int n, double x)
174
+ double lgamma_r(double x, int signgam)
175
+ double log10(double x)
176
+ double log1p(double x)
177
+ double pow(double x, double y)
178
+ double rint(double x)
179
+ double sinh(double x)
180
+ double tan(double x)
181
+ double tanh(double x)
182
+ double y0(double x)
183
+ double y1(double x)
184
+ double yn(int n, double x)
185
+
186
+ =head1 AUTHOR
187
+
188
+ Daniel S. Lewart, E<lt>d-lewart@uiuc.eduE<gt>
189
+
190
+ =head1 SEE ALSO
191
+
192
+ L<perlfunc>, L<Math::Complex>, L<POSIX>.
193
+
194
+ =head1 BUGS
195
+
196
+ Only tested on AIX 4.2, FreeBSD 4.0, Linux 2.2.16, and Solaris 2.5.1.
197
+ May need some more functions.
198
+
199
+ =cut
@@ -0,0 +1,2211 @@
1
+ # Copyright 2010, 2011, 2012, 2013, 2014 Kevin Ryde
2
+
3
+ # This file is part of Math-PlanePath.
4
+ #
5
+ # Math-PlanePath is free software; you can redistribute it and/or modify it
6
+ # under the terms of the GNU General Public License as published by the Free
7
+ # Software Foundation; either version 3, or (at your option) any later
8
+ # version.
9
+ #
10
+ # Math-PlanePath is distributed in the hope that it will be useful, but
11
+ # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12
+ # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13
+ # for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License along
16
+ # with Math-PlanePath. If not, see <http://www.gnu.org/licenses/>.
17
+
18
+
19
+ # Maybe:
20
+ #
21
+ # ($x,$y) = $path->xy_start() x,y at n_start
22
+
23
+ # $bool = $path->is_tree()
24
+
25
+ # ($depth,$offset) = $path->tree_n_to_depth_and_offset
26
+ #
27
+ # $bool = $path->rect_to_n_range_is_always_exact()
28
+ # $bool = $path->tree_n_to_subheight_is_infinite()
29
+ # identifying the infinite spines only
30
+ #
31
+ # tree_n_ordered_children() $n and undefs
32
+ # SierpinskiTree,ToothpickTree left and right
33
+ # OneOfEight 3 from horiz, 5 from diag
34
+ #
35
+ # gcdxy_minimum
36
+ # gcdxy_maximum
37
+ # productxy_minimum
38
+ # trsquared_minimum
39
+ # trsquared_minimum
40
+ #
41
+ # level_to_n_range() 0 to 2^k-1 centres
42
+ # 0 to 2^k dragon segments
43
+ # ring_to_n_range() 2^(k-1) to 2^k-1 koch peaks
44
+ # ($x1,$y1, $x2,$y2) = n_to_rect($n) integer points
45
+ # ($s1,$s1, $d2,$d2) = n_to_diamond($n) integer points
46
+ # cf fractional part Diagonals outside integer area
47
+ # n_to_figure_boundary
48
+ # n_to_hull_boundary
49
+ # n_to_hull_area
50
+ # n_to_enclosed_area
51
+ # n_to_enclosed_boundary
52
+ # n_to_right_enclosed_boundary
53
+ # n_to_left_enclosed_boundary
54
+
55
+ # $path->xy_integer() if X,Y both all integer
56
+ # $path->x_integer() if X all integer
57
+ # $path->y_integer() if Y all integer
58
+ # $path->xy_integer_n_start
59
+ #
60
+ # xy_all_coprime() xy_coprime() gcd(X,Y)=1 always
61
+ # xy_all_divisible() X divisible by Y
62
+ # xy_any_even
63
+ # xy_any_odd
64
+ # xy_all_even
65
+ # xy_all_odd
66
+ # xy_parity_minimum() X+Y mod 2
67
+ # xy_parity_maximum() X+Y mod 2
68
+ # xy_parity "even" "odd" "both"
69
+ # xy_hexlattice_type "centred" "side_horiz"
70
+ # xy_triangular_lattice "", "even", "odd
71
+ #
72
+ # lattice_type square,triangular,triangular_odd,pentagonal,fractional
73
+ # $path->xy_any_odd() xy_odd() xy_all_odd()
74
+ # $path->xy_any_even() xy_even() xy_all_even()
75
+ #
76
+ # $path->turn_any_left
77
+ # $path->turn_any_right
78
+ # $path->turn_any_straight
79
+ # $path->n_to_turn_lsr
80
+ # $path->n_to_dir4
81
+ # $path->n_to_turn4
82
+ # $path->n_to_turn6
83
+ # $path->n_to_turn8
84
+ # $path->n_to_ddist
85
+ # $path->n_to_drsquared
86
+ # $path->xy_to_dir4_list
87
+ # $path->xy_to_dxdy_list
88
+ # $path->xy_to_n_list_maxcount
89
+ # $path->xy_to_n_list_maxnum
90
+ # $path->xy_to_n_list_maximum
91
+ # $path->xy_next_in_rect($x,$y, $x1,$y1,$x2,$y2)
92
+ # return ($x,$y) or empty
93
+ # $path->xy_to_dxdy() or dxdy_list if multiple maybe
94
+ #
95
+ # xy_unique_n_start
96
+ # figures_disjoint
97
+ # figures_disjoint_n_start
98
+ # separate
99
+ # unoverlapped
100
+ #
101
+ # Math::PlanePath::Base::Generic
102
+ # divrem
103
+ # divrem_mutate
104
+ #
105
+
106
+
107
+ #------------------------------------------------------------------------------
108
+ package Math::PlanePath;
109
+ use 5.004;
110
+ use strict;
111
+
112
+ use vars '$VERSION';
113
+ $VERSION = 116;
114
+
115
+ # uncomment this to run the ### lines
116
+ # use Smart::Comments;
117
+
118
+
119
+ # defaults
120
+ use constant figure => 'square';
121
+ use constant default_n_start => 1;
122
+ sub n_start {
123
+ my ($self) = @_;
124
+ if (ref $self && defined $self->{'n_start'}) {
125
+ return $self->{'n_start'};
126
+ } else {
127
+ return $self->default_n_start;
128
+ }
129
+ }
130
+ sub arms_count {
131
+ my ($self) = @_;
132
+ return $self->{'arms'} || 1;
133
+ }
134
+
135
+ use constant class_x_negative => 1;
136
+ use constant class_y_negative => 1;
137
+ sub x_negative { $_[0]->class_x_negative }
138
+ sub y_negative { $_[0]->class_y_negative }
139
+ use constant x_negative_at_n => undef;
140
+ use constant y_negative_at_n => undef;
141
+ use constant n_frac_discontinuity => undef;
142
+
143
+ use constant parameter_info_array => [];
144
+ sub parameter_info_list {
145
+ return @{$_[0]->parameter_info_array};
146
+ }
147
+
148
+ # x_negative(),y_negative() existed before x_minimum(),y_minimum(), so
149
+ # default x_minimum(),y_minimum() from those.
150
+ sub x_minimum {
151
+ my ($self) = @_;
152
+ return ($self->x_negative ? undef : 0);
153
+ }
154
+ sub y_minimum {
155
+ my ($self) = @_;
156
+ return ($self->y_negative ? undef : 0);
157
+ }
158
+ use constant x_maximum => undef;
159
+ use constant y_maximum => undef;
160
+
161
+ sub sumxy_minimum {
162
+ my ($self) = @_;
163
+ ### PlanePath sumxy_minimum() ...
164
+ if (defined (my $x_minimum = $self->x_minimum)
165
+ && defined (my $y_minimum = $self->y_minimum)) {
166
+ ### $x_minimum
167
+ ### $y_minimum
168
+ return $x_minimum + $y_minimum;
169
+ }
170
+ return undef;
171
+ }
172
+ use constant sumxy_maximum => undef;
173
+
174
+ sub sumabsxy_minimum {
175
+ my ($self) = @_;
176
+ my $x_minimum = $self->x_minimum;
177
+ my $y_minimum = $self->y_minimum;
178
+ if (defined $x_minimum && $x_minimum >= 0
179
+ && defined $y_minimum && $y_minimum >= 0) {
180
+ # X>=0 and Y>=0 so abs(X)+abs(Y) == X+Y
181
+ return $self->sumxy_minimum;
182
+ }
183
+ return _max($x_minimum||0,0) + _max($y_minimum||0,0);
184
+ }
185
+ use constant sumabsxy_maximum => undef;
186
+
187
+ use constant diffxy_minimum => undef;
188
+ #
189
+ # If the path is confined to the fourth quadrant, so X>=something and
190
+ # Y<=something then a minimum X-Y exists. But fourth-quadrant-only path is
191
+ # unusual, so don't bother with code checking that.
192
+ # sub diffxy_minimum {
193
+ # my ($self) = @_;
194
+ # if (defined (my $y_maximum = $self->y_maximum)
195
+ # && defined (my $x_minimum = $self->x_minimum)) {
196
+ # return $x_minimum - $y_maximum;
197
+ # } else {
198
+ # return undef;
199
+ # }
200
+ # }
201
+
202
+ # If the path is confined to the second quadrant, so X<=something and
203
+ # Y>=something, then has a maximum X-Y. Presume that the x_maximum() and
204
+ # y_minimum() occur together.
205
+ #
206
+ sub diffxy_maximum {
207
+ my ($self) = @_;
208
+ if (defined (my $y_minimum = $self->y_minimum)
209
+ && defined (my $x_max = $self->x_maximum)) {
210
+ return $x_max - $y_minimum;
211
+ } else {
212
+ return undef;
213
+ }
214
+ }
215
+
216
+ # absdiffxy = abs(X-Y)
217
+ sub absdiffxy_minimum {
218
+ my ($self) = @_;
219
+ # if X-Y all one sign, so X-Y>=0 or X-Y<=0, then abs(X-Y) from that
220
+ my $m;
221
+ if (defined($m = $self->diffxy_minimum) && $m >= 0) {
222
+ return $m;
223
+ }
224
+ if (defined($m = $self->diffxy_maximum) && $m <= 0) {
225
+ return - $m;
226
+ }
227
+ return 0;
228
+ }
229
+ sub absdiffxy_maximum {
230
+ my ($self) = @_;
231
+ # if X-Y constrained so min<=X-Y<=max then max abs(X-Y) one of the two ends
232
+ if (defined (my $min = $self->diffxy_minimum)
233
+ && defined (my $max = $self->diffxy_maximum)) {
234
+ return _max(abs($min),abs($max));
235
+ }
236
+ return undef;
237
+ }
238
+
239
+
240
+ # experimental default from x_minimum(),y_minimum()
241
+ # FIXME: should use absx_minimum, absy_minimum, for paths outside first quadrant
242
+ sub rsquared_minimum {
243
+ my ($self) = @_;
244
+
245
+ # The X and Y each closest to the origin. This assumes that point is
246
+ # actually visited, but is likely to be close.
247
+ my $x_minimum = $self->x_minimum;
248
+ my $x_maximum = $self->x_maximum;
249
+ my $y_minimum = $self->y_minimum;
250
+ my $y_maximum = $self->y_maximum;
251
+ my $x = (( defined $x_minimum && $x_minimum) > 0 ? $x_minimum
252
+ : (defined $x_maximum && $x_maximum) < 0 ? $x_maximum
253
+ : 0);
254
+ my $y = (( defined $y_minimum && $y_minimum) > 0 ? $y_minimum
255
+ : (defined $y_maximum && $y_maximum) < 0 ? $y_maximum
256
+ : 0);
257
+ return ($x*$x + $y*$y);
258
+
259
+ # # Maybe initial point $self->n_to_xy($self->n_start)) as the default,
260
+ # # but that's not the minimum on "wider" paths.
261
+ # return 0;
262
+ }
263
+ use constant rsquared_maximum => undef;
264
+
265
+ sub gcdxy_minimum {
266
+ my ($self) = @_;
267
+ ### gcdxy_minimum(): "visited=".($self->xy_is_visited(0,0)||0)
268
+ return ($self->xy_is_visited(0,0)
269
+ ? 0 # gcd(0,0)=0
270
+ : 1); # any other has gcd>=1
271
+ }
272
+ use constant gcdxy_maximum => undef;
273
+
274
+ #------------------------------------------------------------------------------
275
+
276
+ use constant dir_minimum_dxdy => (1,0); # East
277
+ use constant dir_maximum_dxdy => (0,0); # supremum all angles
278
+
279
+ use constant dx_minimum => undef;
280
+ use constant dy_minimum => undef;
281
+ use constant dx_maximum => undef;
282
+ use constant dy_maximum => undef;
283
+ #
284
+ # =item C<$n = $path-E<gt>_UNDOCUMENTED__dxdy_list_at_n()>
285
+ #
286
+ # Return the N at which all possible dX,dY will have been seen. If there is
287
+ # not a finite set of possible dX,dY steps then return C<undef>.
288
+ #
289
+ use constant _UNDOCUMENTED__dxdy_list => (); # default empty for not a finite list
290
+ use constant _UNDOCUMENTED__dxdy_list_at_n => undef; # maybe dxdy_at_n()
291
+ use constant _UNDOCUMENTED__dxdy_list_three => (2,0, # E
292
+ -1,1, # NW
293
+ -1,-1); # SW
294
+ use constant _UNDOCUMENTED__dxdy_list_six => (2,0, # E
295
+ 1,1, # NE
296
+ -1,1, # NW
297
+ -2,0, # W
298
+ -1,-1, # SW
299
+ 1,-1); # SE
300
+ use constant _UNDOCUMENTED__dxdy_list_eight => (1,0, # E
301
+ 1,1, # NE
302
+ 0,1, # N
303
+ -1,1, # NW
304
+ -1,0, # W
305
+ -1,-1, # SW
306
+ 0,-1, # S
307
+ 1,-1); # SE
308
+
309
+ sub absdx_minimum {
310
+ my ($self) = @_;
311
+ # If dX>=0 then abs(dX)=dX always and absdx_minimum()==dx_minimum().
312
+ # This happens for column style paths like CoprimeColumns.
313
+ # dX>0 is only for line paths so not very interesting.
314
+ if (defined (my $dx_minimum = $self->dx_minimum)) {
315
+ if ($dx_minimum >= 0) { return $dx_minimum; }
316
+ }
317
+ return 0;
318
+ }
319
+ sub absdx_maximum {
320
+ my ($self) = @_;
321
+ if (defined (my $dx_minimum = $self->dx_minimum)
322
+ && defined (my $dx_maximum = $self->dx_maximum)) {
323
+ return _max(abs($dx_minimum),abs($dx_maximum));
324
+ }
325
+ return undef;
326
+ }
327
+
328
+ sub absdy_minimum {
329
+ my ($self) = @_;
330
+ # if dY>=0 then abs(dY)=dY always and absdy_minimum()==dy_minimum()
331
+ if (defined (my $dy_minimum = $self->dy_minimum)) {
332
+ if ($dy_minimum >= 0) { return $dy_minimum; }
333
+ }
334
+ return 0;
335
+ }
336
+ sub absdy_maximum {
337
+ my ($self) = @_;
338
+ if (defined (my $dy_minimum = $self->dy_minimum)
339
+ && defined (my $dy_maximum = $self->dy_maximum)) {
340
+ return _max(abs($dy_minimum),abs($dy_maximum));
341
+ } else {
342
+ return undef;
343
+ }
344
+ }
345
+
346
+ use constant dsumxy_minimum => undef;
347
+ use constant dsumxy_maximum => undef;
348
+ use constant ddiffxy_minimum => undef;
349
+ use constant ddiffxy_maximum => undef;
350
+
351
+ #------------------------------------------------------------------------------
352
+
353
+ sub new {
354
+ my $class = shift;
355
+ return bless { @_ }, $class;
356
+ }
357
+
358
+ {
359
+ my %parameter_info_hash;
360
+ sub parameter_info_hash {
361
+ my ($class_or_self) = @_;
362
+ my $class = (ref $class_or_self || $class_or_self);
363
+ return ($parameter_info_hash{$class}
364
+ ||= { map { $_->{'name'} => $_ }
365
+ $class_or_self->parameter_info_list });
366
+ }
367
+ }
368
+
369
+ sub xy_to_n_list {
370
+ ### xy_to_n_list() ...
371
+ if (defined (my $n = shift->xy_to_n(@_))) {
372
+ ### $n
373
+ return $n;
374
+ }
375
+ ### empty ...
376
+ return;
377
+ }
378
+ sub xy_is_visited {
379
+ my ($self, $x, $y) = @_;
380
+ ### xy_is_visited(): "$x,$y is ndefined=".defined($self->xy_to_n($x,$y))
381
+ return defined($self->xy_to_n($x,$y));
382
+ }
383
+
384
+ sub n_to_dxdy {
385
+ my ($self, $n) = @_;
386
+ ### n_to_dxdy(): $n
387
+ my ($x,$y) = $self->n_to_xy ($n)
388
+ or return;
389
+ my ($next_x,$next_y) = $self->n_to_xy ($n + $self->arms_count)
390
+ or return;
391
+ ### points: "$x,$y $next_x,$next_y"
392
+ return ($next_x - $x,
393
+ $next_y - $y);
394
+ }
395
+ sub n_to_rsquared {
396
+ my ($self, $n) = @_;
397
+ my ($x,$y) = $self->n_to_xy($n) or return undef;
398
+ return $x*$x + $y*$y;
399
+ }
400
+ sub n_to_radius {
401
+ my ($self, $n) = @_;
402
+ my $rsquared = $self->n_to_rsquared($n);
403
+ return (defined $rsquared ? sqrt($rsquared) : undef);
404
+ }
405
+
406
+ #------------------------------------------------------------------------------
407
+ # tree
408
+
409
+ sub is_tree {
410
+ my ($self) = @_;
411
+ return $self->tree_n_num_children($self->n_start);
412
+ }
413
+
414
+ use constant tree_n_parent => undef; # default always no parent
415
+
416
+ use constant tree_n_children => (); # default no children
417
+ sub tree_n_num_children {
418
+ my ($self, $n) = @_;
419
+ if ($n >= $self->n_start) {
420
+ my @n_list = $self->tree_n_children($n);
421
+ return scalar(@n_list);
422
+ } else {
423
+ return undef;
424
+ }
425
+ }
426
+
427
+ # For non-trees n_num_children() always returns 0 so that's the single
428
+ # return here.
429
+ use constant tree_num_children_list => (0);
430
+ sub tree_num_children_minimum {
431
+ my ($self) = @_;
432
+ return ($self->tree_num_children_list)[0];
433
+ }
434
+ sub tree_num_children_maximum {
435
+ my ($self) = @_;
436
+ return ($self->tree_num_children_list)[-1];
437
+ }
438
+ sub tree_any_leaf {
439
+ my ($self) = @_;
440
+ return ($self->tree_num_children_minimum == 0);
441
+ }
442
+
443
+ use constant tree_n_to_subheight => 0; # default all leaf node
444
+
445
+ use constant tree_n_to_depth => undef;
446
+ use constant tree_depth_to_n => undef;
447
+ sub tree_depth_to_n_end {
448
+ my ($self, $depth) = @_;
449
+ if ($depth >= 0
450
+ && defined (my $n = $self->tree_depth_to_n($depth+1))) {
451
+ return $n-1;
452
+ } else {
453
+ return undef;
454
+ }
455
+ }
456
+ sub tree_depth_to_n_range {
457
+ my ($self, $depth) = @_;
458
+ if (defined (my $n = $self->tree_depth_to_n($depth))
459
+ && defined (my $n_end = $self->tree_depth_to_n_end($depth))) {
460
+ return ($n, $n_end);
461
+ }
462
+ return;
463
+ }
464
+
465
+ sub tree_depth_to_width {
466
+ my ($self, $depth) = @_;
467
+ if (defined (my $n = $self->tree_depth_to_n($depth))
468
+ && defined (my $n_end = $self->tree_depth_to_n_end($depth))) {
469
+ return $n_end - $n + 1;
470
+ }
471
+ return undef;
472
+ }
473
+
474
+ sub tree_num_roots {
475
+ my ($self) = @_;
476
+ my @root_n_list = $self->tree_root_n_list;
477
+ return scalar(@root_n_list);
478
+ }
479
+ sub tree_root_n_list {
480
+ my ($self) = @_;
481
+ my $n_start = $self->n_start;
482
+ my @ret;
483
+ for (my $n = $n_start; ; $n++) {
484
+ # stop on finding a non-root (has a parent), or a non-tree path has no
485
+ # children at all
486
+ if (defined($self->tree_n_parent($n))
487
+ || ! $self->tree_n_num_children($n)) {
488
+ last;
489
+ }
490
+ push @ret, $n;
491
+ }
492
+ return @ret;
493
+ }
494
+
495
+ # Generic search upwards. Not fast, but works with past Toothpick or
496
+ # anything slack which doesn't have own tree_n_root(). When only one root
497
+ # there's no search.
498
+ sub tree_n_root {
499
+ my ($self, $n) = @_;
500
+ my $num_roots = $self->tree_num_roots;
501
+ if ($num_roots == 0) {
502
+ return undef; # not a tree
503
+ }
504
+ my $n_start = $self->n_start;
505
+ unless ($n >= $n_start) { # and warn if $n==undef
506
+ return undef; # -inf or NaN
507
+ }
508
+ if ($num_roots == 1) {
509
+ return $n_start; # only one root, no search
510
+ }
511
+
512
+ for (;;) {
513
+ my $n_parent = $self->tree_n_parent($n);
514
+ if (! defined $n_parent) {
515
+ return $n; # found root
516
+ }
517
+ unless ($n_parent < $n) {
518
+ return undef; # +inf or something bad not making progress
519
+ }
520
+ $n = $n_parent;
521
+ }
522
+ }
523
+
524
+ # Generic search for where no more children.
525
+ # But must watch out for infinite lets, and might also watch out for
526
+ # rounding or overflow.
527
+ #
528
+ # sub path_tree_n_to_subheight {
529
+ # my ($path, $n) = @_;
530
+ # ### path_tree_n_to_subheight(): "$n"
531
+ #
532
+ # if (is_infinite($n)) {
533
+ # return $n;
534
+ # }
535
+ # my $max = $path->tree_n_to_depth($n) + 10;
536
+ # my @n = ($n);
537
+ # my $height = 0;
538
+ # do {
539
+ # @n = map {$path->tree_n_children($_)} @n
540
+ # or return $height;
541
+ # $height++;
542
+ # } while (@n && $height < $max);
543
+ #
544
+ # ### height infinite ...
545
+ # return undef;
546
+ # }
547
+
548
+ #------------------------------------------------------------------------------
549
+ # shared internals
550
+
551
+ sub _max {
552
+ my $max = 0;
553
+ foreach my $i (1 .. $#_) {
554
+ if ($_[$i] > $_[$max]) {
555
+ $max = $i;
556
+ }
557
+ }
558
+ return $_[$max];
559
+ }
560
+ sub _min {
561
+ my $min = 0;
562
+ foreach my $i (1 .. $#_) {
563
+ if ($_[$i] < $_[$min]) {
564
+ $min = $i;
565
+ }
566
+ }
567
+ return $_[$min];
568
+ }
569
+
570
+ use Math::PlanePath::Base::Generic 'round_nearest';
571
+ sub _rect_for_first_quadrant {
572
+ my ($self, $x1,$y1, $x2,$y2) = @_;
573
+ $x1 = round_nearest($x1);
574
+ $y1 = round_nearest($y1);
575
+ $x2 = round_nearest($x2);
576
+ $y2 = round_nearest($y2);
577
+ ($x1,$x2) = ($x2,$x1) if $x1 > $x2;
578
+ ($y1,$y2) = ($y2,$y1) if $y1 > $y2;
579
+ if ($x2 < 0 || $y2 < 0) {
580
+ return;
581
+ }
582
+ return ($x1,$y1, $x2,$y2);
583
+ }
584
+
585
+ # return ($quotient, $remainder)
586
+ sub _divrem {
587
+ my ($n, $d) = @_;
588
+ if (ref $n && $n->isa('Math::BigInt')) {
589
+ my ($quot,$rem) = $n->copy->bdiv($d);
590
+ if (! ref $d || $d < 1_000_000) {
591
+ $rem = $rem->numify; # plain remainder if fits
592
+ }
593
+ return ($quot, $rem);
594
+ }
595
+ my $rem = $n % $d;
596
+ return (int(($n-$rem)/$d), # exact division stays in UV
597
+ $rem);
598
+ }
599
+
600
+ # return $remainder, modify $n
601
+ # the scalar $_[0] is modified, but if it's a BigInt then a new BigInt is made
602
+ # and stored there, the bigint value is not changed
603
+ sub _divrem_mutate {
604
+ my $d = $_[1];
605
+ my $rem;
606
+ if (ref $_[0] && $_[0]->isa('Math::BigInt')) {
607
+ ($_[0], $rem) = $_[0]->copy->bdiv($d); # quot,rem in array context
608
+ if (! ref $d || $d < 1_000_000) {
609
+ return $rem->numify; # plain remainder if fits
610
+ }
611
+ } else {
612
+ $rem = $_[0] % $d;
613
+ $_[0] = int(($_[0]-$rem)/$d); # exact division stays in UV
614
+ }
615
+ return $rem;
616
+ }
617
+
618
+ 1;
619
+ __END__
620
+
621
+ =for stopwords PlanePath Ryde Math-PlanePath Math-PlanePath-Toothpick 7-gonals 8-gonal (step+2)-gonal heptagonals octagonals bignum multi-arm eg PerlMagick NaN NaNs subclasses incrementing arrayref hashref filename enum radix ie dX dY dX,dY Rsquared radix SUBCLASSING Ns onwards supremum radix radix-1 octant dSum dDiffXY RSquared
622
+
623
+ =head1 NAME
624
+
625
+ Math::PlanePath -- points on a path through the 2-D plane
626
+
627
+ =head1 SYNOPSIS
628
+
629
+ use Math::PlanePath;
630
+ # only a base class, see the subclasses for actual operation
631
+
632
+ =head1 DESCRIPTION
633
+
634
+ This is a base class for some mathematical paths which map an integer
635
+ position C<$n> to and from coordinates C<$x,$y> in the 2D plane.
636
+
637
+ The current classes include the following. The intention is that any
638
+ C<Math::PlanePath::Something> is a PlanePath, and supporting base classes or
639
+ related things are further down like C<Math::PlanePath::Base::Xyzzy>.
640
+
641
+ =for my_pod list begin
642
+
643
+ SquareSpiral four-sided spiral
644
+ PyramidSpiral square base pyramid
645
+ TriangleSpiral equilateral triangle spiral
646
+ TriangleSpiralSkewed equilateral skewed for compactness
647
+ DiamondSpiral four-sided spiral, looping faster
648
+ PentSpiral five-sided spiral
649
+ PentSpiralSkewed five-sided spiral, compact
650
+ HexSpiral six-sided spiral
651
+ HexSpiralSkewed six-sided spiral skewed for compactness
652
+ HeptSpiralSkewed seven-sided spiral, compact
653
+ AnvilSpiral anvil shape
654
+ OctagramSpiral eight pointed star
655
+ KnightSpiral an infinite knight's tour
656
+ CretanLabyrinth 7-circuit extended infinitely
657
+
658
+ SquareArms four-arm square spiral
659
+ DiamondArms four-arm diamond spiral
660
+ AztecDiamondRings four-sided rings
661
+ HexArms six-arm hexagonal spiral
662
+ GreekKeySpiral square spiral with Greek key motif
663
+ MPeaks "M" shape layers
664
+
665
+ SacksSpiral quadratic on an Archimedean spiral
666
+ VogelFloret seeds in a sunflower
667
+ TheodorusSpiral unit steps at right angles
668
+ ArchimedeanChords unit chords on an Archimedean spiral
669
+ MultipleRings concentric circles
670
+ PixelRings concentric rings of midpoint pixels
671
+ FilledRings concentric rings of pixels
672
+ Hypot points by distance
673
+ HypotOctant first octant points by distance
674
+ TriangularHypot points by triangular distance
675
+ PythagoreanTree X^2+Y^2=Z^2 by trees
676
+
677
+ PeanoCurve 3x3 self-similar quadrant
678
+ WunderlichSerpentine transpose parts of PeanoCurve
679
+ HilbertCurve 2x2 self-similar quadrant
680
+ HilbertSpiral 2x2 self-similar whole-plane
681
+ ZOrderCurve replicating Z shapes
682
+ GrayCode Gray code splits
683
+ WunderlichMeander 3x3 "R" pattern quadrant
684
+ BetaOmega 2x2 self-similar half-plane
685
+ AR2W2Curve 2x2 self-similar of four parts
686
+ KochelCurve 3x3 self-similar of two parts
687
+ DekkingCurve 5x5 self-similar, edges
688
+ DekkingCentres 5x5 self-similar, centres
689
+ CincoCurve 5x5 self-similar
690
+
691
+ ImaginaryBase replicate in four directions
692
+ ImaginaryHalf half-plane replicate three directions
693
+ CubicBase replicate in three directions
694
+ SquareReplicate 3x3 replicating squares
695
+ CornerReplicate 2x2 replicating "U"
696
+ LTiling self-simlar L shapes
697
+ DigitGroups digits grouped by zeros
698
+ FibonacciWordFractal turns by Fibonacci word bits
699
+
700
+ Flowsnake self-similar hexagonal tile traversal
701
+ FlowsnakeCentres likewise but centres of hexagons
702
+ GosperReplicate self-similar hexagonal tiling
703
+ GosperIslands concentric island rings
704
+ GosperSide single side or radial
705
+
706
+ QuintetCurve self-similar "+" traversal
707
+ QuintetCentres likewise but centres of squares
708
+ QuintetReplicate self-similar "+" tiling
709
+
710
+ DragonCurve paper folding
711
+ DragonRounded paper folding rounded corners
712
+ DragonMidpoint paper folding segment midpoints
713
+ AlternatePaper alternating direction folding
714
+ AlternatePaperMidpoint alternating direction folding, midpoints
715
+ TerdragonCurve ternary dragon
716
+ TerdragonRounded ternary dragon rounded corners
717
+ TerdragonMidpoint ternary dragon segment midpoints
718
+ R5DragonCurve radix-5 dragon curve
719
+ R5DragonMidpoint radix-5 dragon curve midpoints
720
+ CCurve "C" curve
721
+ ComplexPlus base i+realpart
722
+ ComplexMinus base i-realpart, including twindragon
723
+ ComplexRevolving revolving base i+1
724
+
725
+ SierpinskiCurve self-similar right-triangles
726
+ SierpinskiCurveStair self-similar right-triangles, stair-step
727
+ HIndexing self-similar right-triangles, squared up
728
+
729
+ KochCurve replicating triangular notches
730
+ KochPeaks two replicating notches
731
+ KochSnowflakes concentric notched 3-sided rings
732
+ KochSquareflakes concentric notched 4-sided rings
733
+ QuadricCurve eight segment zig-zag
734
+ QuadricIslands rings of those zig-zags
735
+ SierpinskiTriangle self-similar triangle by rows
736
+ SierpinskiArrowhead self-similar triangle connectedly
737
+ SierpinskiArrowheadCentres likewise but centres of triangles
738
+
739
+ Rows fixed-width rows
740
+ Columns fixed-height columns
741
+ Diagonals diagonals between X and Y axes
742
+ DiagonalsAlternating diagonals Y to X and back again
743
+ DiagonalsOctant diagonals between Y axis and X=Y centre
744
+ Staircase stairs down from the Y to X axes
745
+ StaircaseAlternating stairs Y to X and back again
746
+ Corner expanding stripes around a corner
747
+ PyramidRows expanding stacked rows pyramid
748
+ PyramidSides along the sides of a 45-degree pyramid
749
+ CellularRule cellular automaton by rule number
750
+ CellularRule54 cellular automaton rows pattern
751
+ CellularRule57 cellular automaton (rule 99 mirror too)
752
+ CellularRule190 cellular automaton (rule 246 mirror too)
753
+ UlamWarburton cellular automaton diamonds
754
+ UlamWarburtonQuarter cellular automaton quarter-plane
755
+
756
+ DiagonalRationals rationals X/Y by diagonals
757
+ FactorRationals rationals X/Y by prime factorization
758
+ GcdRationals rationals X/Y by rows with GCD integer
759
+ RationalsTree rationals X/Y by tree
760
+ FractionsTree fractions 0<X/Y<1 by tree
761
+ ChanTree rationals X/Y multi-child tree
762
+ CfracDigits continued fraction 0<X/Y<1 by digits
763
+ CoprimeColumns coprime X,Y
764
+ DivisibleColumns X divisible by Y
765
+ WythoffArray Fibonacci recurrences
766
+ WythoffPreliminaryTriangle
767
+ PowerArray powers in rows
768
+ File points from a disk file
769
+
770
+ =for my_pod list end
771
+
772
+ And in the separate Math-PlanePath-Toothpick distribution
773
+
774
+ ToothpickTree pattern of toothpicks
775
+ ToothpickReplicate same by replication rather than tree
776
+ ToothpickUpist toothpicks only growing upwards
777
+ ToothpickSpiral toothpicks around the origin
778
+
779
+ LCornerTree L-shape corner growth
780
+ LCornerReplicate same by replication rather than tree
781
+ OneOfEight
782
+ HTree H shapes replicated
783
+
784
+ The paths are object oriented to allow parameters, though many have none.
785
+ See C<examples/numbers.pl> in the Math-PlanePath sources for a sample
786
+ printout of numbers from selected paths or all paths.
787
+
788
+ =head2 Number Types
789
+
790
+ The C<$n> and C<$x,$y> parameters can be either integers or floating point.
791
+ The paths are meant to do something sensible with fractions but expect
792
+ rounding-off for big floating point exponents.
793
+
794
+ Floating point infinities (when available) give NaN or infinite returns of
795
+ some kind (some unspecified kind as yet). C<n_to_xy()> on negative infinity
796
+ is an empty return, the same as other negative C<$n>.
797
+
798
+ Floating point NaNs (when available) give NaN, infinite, or empty/undef
799
+ returns, but again of some unspecified kind as yet.
800
+
801
+ Many of the classes can operate on overloaded number types as inputs and
802
+ give corresponding outputs.
803
+
804
+ Math::BigInt maybe perl 5.8 up for ** operator
805
+ Math::BigRat
806
+ Math::BigFloat
807
+ Number::Fraction 1.14 or higher for abs()
808
+
809
+ A few classes might truncate a bignum or a fraction to a float as yet. In
810
+ general the intention is to make the calculations generic enough to act on
811
+ any sensible number type. Recent enough versions of the bignum modules
812
+ might be required, perhaps C<BigInt> of Perl 5.8 or higher for C<**>
813
+ exponentiation operator.
814
+
815
+ For reference, an C<undef> input as C<$n>, C<$x>, C<$y>, etc, is meant to
816
+ provoke an uninitialized value warning when warnings are enabled, but
817
+ currently it doesn't croak etc. Perhaps that will change, but the warning
818
+ at least prevents bad inputs going unnoticed.
819
+
820
+ =head1 FUNCTIONS
821
+
822
+ In the following C<Foo> is one of the various subclasses, see the list above
823
+ and under L</SEE ALSO>.
824
+
825
+ =head2 Constructor
826
+
827
+ =over 4
828
+
829
+ =item C<$path = Math::PlanePath::Foo-E<gt>new (key=E<gt>value, ...)>
830
+
831
+ Create and return a new path object. Optional key/value parameters may
832
+ control aspects of the object.
833
+
834
+ =back
835
+
836
+ =head2 Coordinate Methods
837
+
838
+ =over
839
+
840
+ =item C<($x,$y) = $path-E<gt>n_to_xy ($n)>
841
+
842
+ Return X,Y coordinates of point C<$n> on the path. If there's no point
843
+ C<$n> then the return is an empty list. For example
844
+
845
+ my ($x,$y) = $path->n_to_xy (-123)
846
+ or next; # no negatives in $path
847
+
848
+ Paths start from C<$path-E<gt>n_start()> below, though some will give a
849
+ position for N=0 or N=-0.5 too.
850
+
851
+ =item C<($dx,$dy) = $path-E<gt>n_to_dxdy ($n)>
852
+
853
+ Return the change in X and Y going from point C<$n> to point C<$n+1>, or for
854
+ paths with multiple arms from C<$n> to C<$n+$arms_count> (thus advancing one
855
+ point along the arm of C<$n>).
856
+
857
+ + $n+1 == $next_x,$next_y
858
+ ^
859
+ |
860
+ | $dx = $next_x - $x
861
+ + $n == $x,$y $dy = $next_y - $y
862
+
863
+ C<$n> can be fractional and in that case the dX,dY is from that fractional
864
+ C<$n> position to C<$n+1> (or C<$n+$arms>).
865
+
866
+ frac $n+1 == $next_x,$next_y
867
+ v
868
+ integer *---+----
869
+ | /
870
+ | /
871
+ |/ $dx = $next_x - $x
872
+ frac + $n == $x,$y $dy = $next_y - $y
873
+ |
874
+ integer *
875
+
876
+ In both cases C<n_to_dxdy()> is the difference C<$dx=$next_x-$x,
877
+ $dy=$next_y-$y>. Currently for most paths it's merely two C<n_to_xy()>
878
+ calls to calculate the two points, but some paths can calculate a dX,dY with
879
+ a little less work.
880
+
881
+ =item C<$rsquared = $path-E<gt>n_to_radius ($n)>
882
+
883
+ =item C<$rsquared = $path-E<gt>n_to_rsquared ($n)>
884
+
885
+ Return the radial distance R=sqrt(X^2+Y^2) of point C<$n>, or the radius
886
+ squared R^2=X^2+Y^2. If there's no point C<$n> then the return is C<undef>.
887
+
888
+ For a few paths these might be calculated with less work than C<n_to_xy()>.
889
+ For example the C<SacksSpiral> is simply R^2=N, or the C<MultipleRings> path
890
+ with its default step=6 has an integer radius for integer C<$n> whereas
891
+ C<$x,$y> are fractional (and so inexact).
892
+
893
+ =item C<$n = $path-E<gt>xy_to_n ($x,$y)>
894
+
895
+ Return the N point number at coordinates C<$x,$y>. If there's nothing at
896
+ C<$x,$y> then return C<undef>.
897
+
898
+ my $n = $path->xy_to_n(20,20);
899
+ if (! defined $n) {
900
+ next; # nothing at this X,Y
901
+ }
902
+
903
+ C<$x> and C<$y> can be fractional and the path classes will give an integer
904
+ C<$n> which contains C<$x,$y> within a unit square, circle, or intended
905
+ figure centred on the integer C<$n>.
906
+
907
+ For paths which completely fill the plane there's always an C<$n> to return,
908
+ but for the spread-out paths an C<$x,$y> position may fall in between (no
909
+ C<$n> close enough) and give C<undef>.
910
+
911
+ =item C<@n_list = $path-E<gt>xy_to_n_list ($x,$y)>
912
+
913
+ Return a list of N point numbers at coordinates C<$x,$y>. If there's
914
+ nothing at C<$x,$y> then return an empty list.
915
+
916
+ my @n_list = $path->xy_to_n(20,20);
917
+
918
+ Most paths have just a single N for a given X,Y but some such as
919
+ C<DragonCurve> and C<TerdragonCurve> have multiple N's and this method
920
+ returns all of them.
921
+
922
+ =item C<$bool = $path-E<gt>xy_is_visited ($x,$y)>
923
+
924
+ Return true if C<$x,$y> is visited. This is equivalent to
925
+
926
+ defined($path->xy_to_n($x,$y))
927
+
928
+ Some paths cover the plane and for them C<xy_is_visited()> is always true.
929
+ For others it might be less work to test a point than to calculate its
930
+ C<$n>.
931
+
932
+ =item C<($n_lo, $n_hi) = $path-E<gt>rect_to_n_range ($x1,$y1, $x2,$y2)>
933
+
934
+ Return a range of N values covering or exceeding a rectangle with corners at
935
+ C<$x1>,C<$y1> and C<$x2>,C<$y2>. The range is inclusive. For example,
936
+
937
+ my ($n_lo, $n_hi) = $path->rect_to_n_range (-5,-5, 5,5);
938
+ foreach my $n ($n_lo .. $n_hi) {
939
+ my ($x, $y) = $path->n_to_xy($n) or next;
940
+ print "$n $x,$y";
941
+ }
942
+
943
+ The return might be an over-estimate of the N range required to cover the
944
+ rectangle. Even if the range is exact the nature of the path may mean many
945
+ points between C<$n_lo> and C<$n_hi> are outside the rectangle. But the
946
+ range is at least a lower and upper bound on the N values which occur in the
947
+ rectangle. Classes which can guarantee an exact lo/hi range say so in their
948
+ docs.
949
+
950
+ C<$n_hi> is usually no more than an extra partial row, revolution, or
951
+ self-similar level. C<$n_lo> might be merely the starting
952
+ C<$path-E<gt>n_start()>, which is fine if the origin is in the desired
953
+ rectangle but away from the origin might actually start higher.
954
+
955
+ C<$x1>,C<$y1> and C<$x2>,C<$y2> can be fractional. If they partly overlap
956
+ some N figures then those N's are included in the return.
957
+
958
+ If there's no points in the rectangle then the return can be a "crossed"
959
+ range like C<$n_lo=1>, C<$n_hi=0> (which makes a C<foreach> do no loops).
960
+ But C<rect_to_n_range()> may not always notice there's no points in the
961
+ rectangle and might instead return some over-estimate.
962
+
963
+ =back
964
+
965
+ =head2 Descriptive Methods
966
+
967
+ =over
968
+
969
+ =item C<$n = $path-E<gt>n_start()>
970
+
971
+ Return the first N in the path. The start is usually either 0 or 1
972
+ according to what is most natural for the path. Some paths have an
973
+ C<n_start> parameter to control the numbering.
974
+
975
+ Some classes have secret dubious undocumented support for N values below
976
+ this start (zero or negative), but C<n_start()> is the intended starting
977
+ point.
978
+
979
+ =item C<$f = $path-E<gt>n_frac_discontinuity()>
980
+
981
+ Return the fraction of N at which there may be discontinuities in the path.
982
+ For example if there's a jump in the coordinates between N=7.4999 and N=7.5
983
+ then the returned C<$f> is 0.5. Or C<$f> is 0 if there's a discontinuity
984
+ between 6.999 and 7.0.
985
+
986
+ If there's no discontinuities in the path then the return is C<undef>. That
987
+ means for example fractions between N=7 to N=8 give smooth continuous X,Y
988
+ values (of some kind).
989
+
990
+ This is mainly of interest for drawing line segments between N points. If
991
+ there's discontinuities then the idea is to draw from say N=7.0 to N=7.499
992
+ and then another line from N=7.5 to N=8.
993
+
994
+ =item C<$arms = $path-E<gt>arms_count()>
995
+
996
+ Return the number of arms in a "multi-arm" path.
997
+
998
+ For example in C<SquareArms> this is 4 and each arm increments in turn, so
999
+ the first arm is N=1,5,9,13,etc starting from C<$path-E<gt>n_start()> and
1000
+ incrementing by 4 each time.
1001
+
1002
+ =item C<$bool = $path-E<gt>x_negative()>
1003
+
1004
+ =item C<$bool = $path-E<gt>y_negative()>
1005
+
1006
+ Return true if the path extends into negative X coordinates and/or negative
1007
+ Y coordinates respectively.
1008
+
1009
+ =item C<$bool = Math::PlanePath::Foo-E<gt>class_x_negative()>
1010
+
1011
+ =item C<$bool = Math::PlanePath::Foo-E<gt>class_y_negative()>
1012
+
1013
+ =item C<$bool = $path-E<gt>class_x_negative()>
1014
+
1015
+ =item C<$bool = $path-E<gt>class_y_negative()>
1016
+
1017
+ Return true if any paths made by this class extend into negative X
1018
+ coordinates and/or negative Y coordinates, respectively.
1019
+
1020
+ For some classes the X or Y extent may depend on parameter values.
1021
+
1022
+ =item C<$n = $path-E<gt>x_negative_at_n()>
1023
+
1024
+ =item C<$n = $path-E<gt>y_negative_at_n()>
1025
+
1026
+ Return the integer N where X or Y respectively first goes negative, or
1027
+ return C<undef> if it does not go negative (C<x_negative()> or
1028
+ C<y_negative()> respectively is false).
1029
+
1030
+ =item C<$x = $path-E<gt>x_minimum()>
1031
+
1032
+ =item C<$y = $path-E<gt>y_minimum()>
1033
+
1034
+ =item C<$x = $path-E<gt>x_maximum()>
1035
+
1036
+ =item C<$y = $path-E<gt>y_maximum()>
1037
+
1038
+ Return the minimum or maximum of the X or Y coordinate reached by integer N
1039
+ values in the path. If there's no minimum or maximum then return C<undef>.
1040
+
1041
+ =item C<$dx = $path-E<gt>dx_minimum()>
1042
+
1043
+ =item C<$dx = $path-E<gt>dx_maximum()>
1044
+
1045
+ =item C<$dy = $path-E<gt>dy_minimum()>
1046
+
1047
+ =item C<$dy = $path-E<gt>dy_maximum()>
1048
+
1049
+ Return the minimum or maximum change dX, dY occurring in the path for
1050
+ integer N to N+1. For a multi-arm path the change is N to N+arms so it's
1051
+ the change along the same arm.
1052
+
1053
+ Various paths which go by rows have non-decreasing Y. For them
1054
+ C<dy_minimum()> is 0.
1055
+
1056
+ =cut
1057
+
1058
+ # =item C<@dxdy_list = $path-E<gt>dxdy_list()>
1059
+ #
1060
+ # If C<$path> has a finite set of dX,dY steps then return them as a list.
1061
+ # If C<$path> has an infinite set of dX,dY steps then return an empty list.
1062
+ #
1063
+ # $dx1,$dy1, $dx2,$dy2, $dx3,$dy3, ...
1064
+ #
1065
+ # The points are returned in order of angle around starting from East
1066
+ # (dXE<gt>0,dY=0), and by increasing length among those of the same angle. If
1067
+ # dX=0,dY=0 occurs (which it doesn't in any current path) then that would be
1068
+ # first in the return list.
1069
+
1070
+ =pod
1071
+
1072
+ =item C<$adx = $path-E<gt>absdx_minimum()>
1073
+
1074
+ =item C<$adx = $path-E<gt>absdx_maximum()>
1075
+
1076
+ =item C<$ady = $path-E<gt>absdy_minimum()>
1077
+
1078
+ =item C<$ady = $path-E<gt>absdy_maximum()>
1079
+
1080
+ Return the minimum or maximum change abs(dX) or abs(dY) occurring in the
1081
+ path for integer N to N+1. For a multi-arm path the change is N to N+arms
1082
+ so it's the change along the same arm.
1083
+
1084
+ C<absdx_maximum()> is simply max(dXmax,-dXmin), the biggest change either
1085
+ positive or negative. C<absdy_maximum()> similarly.
1086
+
1087
+ C<absdx_minimum()> is 0 if dX=0 occurs anywhere in the path, which means any
1088
+ vertical step. If X always changes then C<absdx_minimum()> will be
1089
+ something bigger than 0. C<absdy_minimum()> likewise 0 if any horizontal
1090
+ dY=0, or bigger if Y always changes.
1091
+
1092
+ =item C<$sum = $path-E<gt>sumxy_minimum()>
1093
+
1094
+ =item C<$sum = $path-E<gt>sumxy_maximum()>
1095
+
1096
+ Return the minimum or maximum values taken by coordinate sum X+Y reached by
1097
+ integer N values in the path. If there's no minimum or maximum then return
1098
+ C<undef>.
1099
+
1100
+ S=X+Y is an anti-diagonal. A path which is always right and above some
1101
+ anti-diagonal has a minimum. Some paths might be entirely left and below
1102
+ and so have a maximum, though that's unusual.
1103
+
1104
+ \ Path always above
1105
+ \ | has minimum S=X+Y
1106
+ \|
1107
+ ---o----
1108
+ Path always below |\
1109
+ has maximum S=X+Y | \
1110
+ \ S=X+Y
1111
+
1112
+
1113
+ =item C<$sum = $path-E<gt>sumabsxy_minimum()>
1114
+
1115
+ =item C<$sum = $path-E<gt>sumabsxy_maximum()>
1116
+
1117
+ Return the minimum or maximum values taken by coordinate sum abs(X)+abs(Y)
1118
+ reached by integer N values in the path. A minimum always exists but if
1119
+ there's no maximum then return C<undef>.
1120
+
1121
+ SumAbs=abs(X)+abs(Y) is sometimes called the "taxi-cab" or "Manhatten"
1122
+ distance, being how far to travel through a square-grid city to get to X,Y.
1123
+ C<sumabsxy_minimum()> is then how close to the origin the path extends.
1124
+
1125
+ SumAbs can also be interpreted geometrically as numbering the anti-diagonals
1126
+ of the quadrant containing X,Y, which is equivalent to asking which diamond
1127
+ shape X,Y falls on. C<sumabsxy_minimum()> is then the smallest such diamond
1128
+ reached by the path.
1129
+
1130
+ |
1131
+ /|\ SumAbs = which diamond X,Y falls on
1132
+ / | \
1133
+ / | \
1134
+ -----o-----
1135
+ \ | /
1136
+ \ | /
1137
+ \|/
1138
+ |
1139
+
1140
+ =item C<$diffxy = $path-E<gt>diffxy_minimum()>
1141
+
1142
+ =item C<$diffxy = $path-E<gt>diffxy_maximum()>
1143
+
1144
+ Return the minimum or maximum values taken by coordinate difference X-Y
1145
+ reached by integer N values in the path. If there's no minimum or maximum
1146
+ then return C<undef>.
1147
+
1148
+ D=X-Y is a leading diagonal. A path which is always right and below such a
1149
+ diagonal has a minimum, for example C<HypotOctant>. A path which is always
1150
+ left and above some diagonal has a maximum D=X-Y. For example various
1151
+ wedge-like paths such as C<PyramidRows> in its default step=2, and "upper
1152
+ octant" paths have a maximum.
1153
+
1154
+ / D=X-Y
1155
+ Path always below | /
1156
+ has maximum D=X-Y |/
1157
+ ---o----
1158
+ /|
1159
+ / | Path always above
1160
+ / has minimum D=X-Y
1161
+
1162
+ =item C<$absdiffxy = $path-E<gt>absdiffxy_minimum()>
1163
+
1164
+ =item C<$absdiffxy = $path-E<gt>absdiffxy_maximum()>
1165
+
1166
+ Return the minimum or maximum values taken by abs(X-Y) for integer N in the
1167
+ path. The minimum is 0 or more. If there's maximum then return C<undef>.
1168
+
1169
+ abs(X-Y) can be interpreted geometrically as the distance away from the X=Y
1170
+ diagonal and measured at right-angles to that line.
1171
+
1172
+ d=abs(X-Y) X=Y line
1173
+ ^ /
1174
+ \ /
1175
+ \/
1176
+ /\
1177
+ / \
1178
+ / \
1179
+ o v
1180
+ / d=abs(X-Y)
1181
+
1182
+ Paths which visit the X=Y line (or approach it as an infimum) have
1183
+ C<absdiffxy_minimum() = 0>. Otherwise C<absdiffxy_minimum()> is how close
1184
+ they come to the line.
1185
+
1186
+ If the path is entirely below the X=Y line so XE<gt>=Y then X-Y>=0 and
1187
+ C<absdiffxy_minimum()> is the same as C<diffxy_minimum()>. If the path is
1188
+ entirely below the X=Y line then C<absdiffxy_minimum()> is
1189
+ S<C<- diffxy_maximum()>>.
1190
+
1191
+ =item C<$dsumxy = $path-E<gt>dsumxy_minimum()>
1192
+
1193
+ =item C<$dsumxy = $path-E<gt>dsumxy_maximum()>
1194
+
1195
+ =item C<$ddiffxy = $path-E<gt>ddiffxy_minimum()>
1196
+
1197
+ =item C<$ddiffxy = $path-E<gt>ddiffxy_maximum()>
1198
+
1199
+ Return the minimum or maximum change dSum or dDiffXY occurring in the path
1200
+ for integer N to N+1. For a multi-arm path the change is N to N+arms so
1201
+ it's the change along the same arm.
1202
+
1203
+ =item C<$rsquared = $path-E<gt>rsquared_minimum()>
1204
+
1205
+ =item C<$rsquared = $path-E<gt>rsquared_maximum()>
1206
+
1207
+ Return the minimum or maximum Rsquared = X^2+Y^2 reached by integer N values
1208
+ in the path. If there's no minimum or maximum then return C<undef>.
1209
+
1210
+ Rsquared is always E<gt>= 0 so it always has a minimum. The minimum will be
1211
+ more than 0 for paths which don't include the origin X=0,Y=0.
1212
+
1213
+ RSquared generally has no maximum since the paths usually extend infinitely
1214
+ in some direction. C<rsquared_maximum()> returns C<undef> in that case.
1215
+
1216
+ =cut
1217
+
1218
+ # =item C<$gcd = $path-E<gt>gcdxy_minimum()>
1219
+ #
1220
+ # =item C<$gcd = $path-E<gt>gcdxy_maximum()>
1221
+ #
1222
+ # Return the minimum or maximum GCD(X,Y) reached by integer N values in the
1223
+ # path. If there's no minimum or maximum then return C<undef>.
1224
+ #
1225
+ # C<gcdxy_minimum()> is always 0 or more since the sign of X and Y is ignored
1226
+ # for taking the GCD. GCD(0,0)=0 is the only GCD=0. X!=0 or Y!=0 gives
1227
+ # GCD(X,Y)E<gt>0. So the minimum is 0 if X=0,Y=0 is visited and E<gt>0 if
1228
+ # not.
1229
+ #
1230
+ # C<gcdxy_maximum()> is usually C<undef> since there's no limit to the GCD.
1231
+ # Paths such as C<CoprimeColumns> where X,Y have no common factor have
1232
+ # C<gcdxy_maximum()> returning 1.
1233
+
1234
+ =pod
1235
+
1236
+ =item C<($dx,$dy) = $path-E<gt>dir_minimum_dxdy()>
1237
+
1238
+ =item C<($dx,$dy) = $path-E<gt>dir_maximum_dxdy()>
1239
+
1240
+ Return a vector which is the minimum or maximum angle taken by a step
1241
+ integer N to N+1, or for a multi-arm path N to N+arms so it's the change
1242
+ along the same arm. Directions are reckoned anti-clockwise around from the
1243
+ X axis.
1244
+
1245
+ | * dX=2,dY=2
1246
+ dX=-1,dY=1 * | /
1247
+ \|/
1248
+ ------+----* dX=1,dY=0
1249
+ |
1250
+ |
1251
+ * dX=0,dY=-1
1252
+
1253
+ A path which is always goes N,S,E,W such as the C<SquareSpiral> has minimum
1254
+ East dX=1,dY=0 and maximum South dX=0,dY=-1.
1255
+
1256
+ Paths which go diagonally may have different limits. For example the
1257
+ C<KnightSpiral> goes in 2x1 steps and so has minimum East-North-East
1258
+ dX=2,dY=1 and maximum East-South-East dX=2,dY=-1.
1259
+
1260
+ If the path has directions approaching 360 degrees then
1261
+ C<dir_maximum_dxdy()> is 0,0 which should be taken to mean a full circle as
1262
+ a supremum. For example C<MultipleRings>.
1263
+
1264
+ If the path only ever goes East then the maximum is East dX=1,dY=0, and the
1265
+ minimum the same. This isn't particularly interesting, but arises for
1266
+ example in the C<Columns> path height=0.
1267
+
1268
+ =item C<$str = $path-E<gt>figure()>
1269
+
1270
+ Return a string name of the figure (shape) intended to be drawn at each
1271
+ C<$n> position. This is currently either
1272
+
1273
+ "square" side 1 centred on $x,$y
1274
+ "circle" diameter 1 centred on $x,$y
1275
+
1276
+ Of course this is only a suggestion since PlanePath doesn't draw anything
1277
+ itself. A figure like a diamond for instance can look good too.
1278
+
1279
+ =back
1280
+
1281
+ =head2 Tree Methods
1282
+
1283
+ Some paths are structured like a tree where each N has a parent and possibly
1284
+ some children.
1285
+
1286
+ 123
1287
+ / | \
1288
+ 456 999 458
1289
+ / / \
1290
+ 1000 1001 1005
1291
+
1292
+ The N numbering and any relation to X,Y positions varies among the paths.
1293
+ Some are numbered by rows in breadth-first style and some have children with
1294
+ X,Y positions adjacent to their parent, but that shouldn't be assumed, only
1295
+ that there's a parent-child relation down from some set of root nodes.
1296
+
1297
+ =over
1298
+
1299
+ =item C<$bool = $path-E<gt>is_tree()>
1300
+
1301
+ Return true if C<$path> is a tree.
1302
+
1303
+ The various tree methods have empty or C<undef> returns on non-tree paths.
1304
+ Often it's enough to check for that from a desired method rather than a
1305
+ separate C<is_tree()> check.
1306
+
1307
+ =item C<@n_children = $path-E<gt>tree_n_children($n)>
1308
+
1309
+ Return a list of N values which are the child nodes of C<$n>, or return an
1310
+ empty list if C<$n> has no children.
1311
+
1312
+ There could be no children either because C<$path> is not a tree or because
1313
+ there's no children at a particular C<$n>.
1314
+
1315
+ =item C<$num = $path-E<gt>tree_n_num_children($n)>
1316
+
1317
+ Return the number of children of C<$n>, or 0 if C<$n> has no children, or
1318
+ C<undef> if S<C<$n E<lt> n_start()>> (ie. before the start of the path).
1319
+
1320
+ If the tree is considered as a directed graph then this is the "out-degree"
1321
+ of C<$n>.
1322
+
1323
+ =item C<$n_parent = $path-E<gt>tree_n_parent($n)>
1324
+
1325
+ Return the parent node of C<$n>, or C<undef> if it has no parent.
1326
+
1327
+ There is no parent at the root node of the tree, or one of multiple roots,
1328
+ or if C<$path> is not a tree.
1329
+
1330
+ =item C<$n_root = $path-E<gt>tree_n_root ($n)>
1331
+
1332
+ Return the N which is the root node of C<$n>. This is the top of the tree
1333
+ as would be found by following C<tree_n_parent()> repeatedly.
1334
+
1335
+ The return is C<undef> if there's no C<$n> point or if C<$path> is not a
1336
+ tree.
1337
+
1338
+ =item C<$depth = $path-E<gt>tree_n_to_depth($n)>
1339
+
1340
+ Return the depth of node C<$n>, or C<undef> if there's no point C<$n>. The
1341
+ top of the tree is depth=0, then its children are depth=1, etc.
1342
+
1343
+ The depth is a count of how many parent, grandparent, etc, levels are above
1344
+ C<$n>, ie. until reaching C<tree_n_to_parent()> returning C<undef>. For
1345
+ non-tree paths C<tree_n_to_parent()> is always C<undef> and
1346
+ C<tree_n_to_depth()> is always 0.
1347
+
1348
+ =item C<$n_lo = $path-E<gt>tree_depth_to_n($depth)>
1349
+
1350
+ =item C<$n_hi = $path-E<gt>tree_depth_to_n_end($depth)>
1351
+
1352
+ =item C<($n_lo, $n_hi) = $path-E<gt>tree_depth_to_n_range ($depth)>
1353
+
1354
+ Return the first or last N, or both those N, for tree level C<$depth> in the
1355
+ path. If there's no such C<$depth> or if C<$path> is not a tree then return
1356
+ C<undef>, or for C<tree_depth_to_n_range()> return an empty list.
1357
+
1358
+ The points C<$n_lo> through C<$n_hi> might not necessarily all be at
1359
+ C<$depth>. It's possible for depths to be interleaved or intermixed in the
1360
+ point numbering. But many paths are breadth-wise successive rows and for
1361
+ them C<$n_lo> to C<$n_hi> inclusive is all C<$depth>.
1362
+
1363
+ C<$n_hi> can only exist if the row has a finite number of points. That's
1364
+ true of all current paths, but perhaps allowance ought to be made for
1365
+ C<$n_hi> as C<undef> or some such if there is no maximum N for some row.
1366
+
1367
+ =item C<$num = $path-E<gt>tree_depth_to_width ($depth)>
1368
+
1369
+ Return the number of points at C<$depth> in the tree. If there's no such
1370
+ C<$depth> or C<$path> is not a tree then return C<undef>.
1371
+
1372
+ =item C<$height = $path-E<gt>tree_n_to_subheight($n)>
1373
+
1374
+ Return the height of the sub-tree starting at C<$n>, or C<undef> if
1375
+ infinite. The height of a tree is the longest distance down to a leaf node.
1376
+ For example,
1377
+
1378
+ ... N subheight
1379
+ \ --- ---------
1380
+ 6 7 8 0 undef
1381
+ \ \ / 1 undef
1382
+ 3 4 5 2 2
1383
+ \ \ / 3 undef
1384
+ 1 2 4 1
1385
+ \ / 5 0
1386
+ 0 ...
1387
+
1388
+ At N=0 and all of the left side the tree continues infinitely so the
1389
+ sub-height there is C<undef> for infinite. For N=2 the sub-height is 2
1390
+ because the longest path down is 2 levels (to N=7 or N=8). For a leaf node
1391
+ such as N=5 the sub-height is 0.
1392
+
1393
+ =back
1394
+
1395
+ =head2 Tree Descriptive Methods
1396
+
1397
+ =over
1398
+
1399
+ =item C<$num = $path-E<gt>tree_num_roots()>
1400
+
1401
+ Return the number of root nodes in C<$path>. If C<$path> is not a tree then
1402
+ return 0. Many tree paths have a single root and for them the return is 1.
1403
+
1404
+ =item C<@n_list = $path-E<gt>tree_root_n_list()>
1405
+
1406
+ Return a list of the N values which are the root nodes in C<$path>. If
1407
+ C<$path> is not a tree then this is an empty list. There are
1408
+ C<tree_num_roots()> many return values.
1409
+
1410
+ =item C<$num = $path-E<gt>tree_num_children_minimum()>
1411
+
1412
+ =item C<$num = $path-E<gt>tree_num_children_maximum()>
1413
+
1414
+ =item C<@nums = $path-E<gt>tree_num_children_list()>
1415
+
1416
+ Return the possible number of children of the nodes of C<$path>, either the
1417
+ minimum, the maximum, or a list of all possible numbers of children.
1418
+
1419
+ For C<tree_num_children_list()> the list of values is in increasing order,
1420
+ so the first value is C<tree_num_children_minimum()> and the last is
1421
+ C<tree_num_children_maximum()>.
1422
+
1423
+ =item C<$bool = $path-E<gt>tree_any_leaf()>
1424
+
1425
+ Return true if there are any leaf nodes in the tree, meaning any N for which
1426
+ C<tree_n_num_children()> is 0.
1427
+
1428
+ This is the same as C<tree_num_children_minimum()==0> since if NumChildren=0
1429
+ occurs then there are leaf nodes.
1430
+
1431
+ Some trees may have no leaf nodes, for example in the complete binary tree
1432
+ of C<RationalsTree> every node always has 2 children.
1433
+
1434
+ =back
1435
+
1436
+ =head2 Parameter Methods
1437
+
1438
+ =over
1439
+
1440
+ =item C<$aref = Math::PlanePath::Foo-E<gt>parameter_info_array()>
1441
+
1442
+ =item C<@list = Math::PlanePath::Foo-E<gt>parameter_info_list()>
1443
+
1444
+ Return an arrayref of list describing the parameters taken by a given class.
1445
+ This meant to help making widgets etc for user interaction in a GUI. Each
1446
+ element is a hashref
1447
+
1448
+ {
1449
+ name => parameter key arg for new()
1450
+ share_key => string, or undef
1451
+ description => human readable string
1452
+ type => string "integer","boolean","enum" etc
1453
+ default => value
1454
+ minimum => number, or undef
1455
+ maximum => number, or undef
1456
+ width => integer, suggested display size
1457
+ choices => for enum, an arrayref
1458
+ }
1459
+
1460
+ C<type> is a string, one of
1461
+
1462
+ "integer"
1463
+ "enum"
1464
+ "boolean"
1465
+ "string"
1466
+ "filename"
1467
+
1468
+ "filename" is separate from "string" since it might require subtly different
1469
+ handling to reach Perl as a byte string, whereas a "string" type might in
1470
+ principle take Perl wide chars.
1471
+
1472
+ For "enum" the C<choices> field is the possible values, such as
1473
+
1474
+ { name => "flavour",
1475
+ type => "enum",
1476
+ choices => ["strawberry","chocolate"],
1477
+ }
1478
+
1479
+ C<minimum> and/or C<maximum> are omitted if there's no hard limit on the
1480
+ parameter.
1481
+
1482
+ C<share_key> is designed to indicate when parameters from different
1483
+ C<PlanePath> classes can done by a single control widget in a GUI etc.
1484
+ Normally the C<name> is enough, but when the same name has slightly
1485
+ different meanings in different classes a C<share_key> allows the same
1486
+ meanings to be matched up.
1487
+
1488
+ =item C<$hashref = Math::PlanePath::Foo-E<gt>parameter_info_hash()>
1489
+
1490
+ Return a hashref mapping parameter names C<$info-E<gt>{'name'}> to their
1491
+ C<$info> records.
1492
+
1493
+ { wider => { name => "wider",
1494
+ type => "integer",
1495
+ ...
1496
+ },
1497
+ }
1498
+
1499
+ =back
1500
+
1501
+ =head1 GENERAL CHARACTERISTICS
1502
+
1503
+ The classes are mostly based on integer C<$n> positions and those designed
1504
+ for a square grid turn an integer C<$n> into integer C<$x,$y>. Usually they
1505
+ give in-between positions for fractional C<$n> too. Classes not on a square
1506
+ grid but instead giving fractional X,Y such as C<SacksSpiral> and
1507
+ C<VogelFloret> are designed for a unit circle at each C<$n> but they too can
1508
+ give in-between positions on request.
1509
+
1510
+ All X,Y positions are calculated by separate C<n_to_xy()> calls. To follow
1511
+ a path use successive C<$n> values starting from C<$path-E<gt>n_start()>.
1512
+
1513
+ foreach my $n ($path->n_start .. 100) {
1514
+ my ($x,$y) = $path->n_to_xy($n);
1515
+ print "$n $x,$y\n";
1516
+ }
1517
+
1518
+ The separate C<n_to_xy()> calls were motivated by plotting just some N
1519
+ points of a path, such as just the primes or the perfect squares.
1520
+ Successive positions in paths could perhaps be done more efficiently in an
1521
+ iterator style. Paths with a quadratic "step" are not much worse than a
1522
+ C<sqrt()> to break N into a segment and offset, but the self-similar paths
1523
+ which chop N into digits of some radix could increment instead of
1524
+ recalculate.
1525
+
1526
+ If interested only in a particular rectangle or similar region then
1527
+ iterating has the disadvantage that it may stray outside the target region
1528
+ for a long time, making an iterator much less useful than it seems. For
1529
+ wild paths it can be better to apply C<xy_to_n()> by rows or similar across
1530
+ the desired region.
1531
+
1532
+ L<Math::NumSeq::PlanePathCoord> etc offer the PlanePath coordinates,
1533
+ directions, turns, etc as sequences. The iterator forms there simply make
1534
+ repeated calls to C<n_to_xy()> etc.
1535
+
1536
+ =head2 Scaling and Orientation
1537
+
1538
+ The paths generally make a first move to the right and go anti-clockwise
1539
+ around from the X axis, unless there's some more natural orientation.
1540
+ Anti-clockwise is the usual direction for mathematical spirals.
1541
+
1542
+ There's no parameters for scaling, offset or reflection as those things are
1543
+ thought better left to a general coordinate transformer, for example to
1544
+ expand or invert for display. Some easy transformations can be had just
1545
+ from the X,Y with
1546
+
1547
+ -X,Y flip horizontally (mirror image)
1548
+ X,-Y flip vertically (across the X axis)
1549
+
1550
+ -Y,X rotate +90 degrees (anti-clockwise)
1551
+ Y,-X rotate -90 degrees (clockwise)
1552
+ -X,-Y rotate 180 degrees
1553
+
1554
+ Flip vertically makes spirals go clockwise instead of anti-clockwise, or a
1555
+ flip horizontally the same but starting on the left at the negative X axis.
1556
+ See L</Triangular Lattice> below for 60 degree rotations of the triangular
1557
+ grid paths too.
1558
+
1559
+ The Rows and Columns paths are exceptions to the rule of not having rotated
1560
+ versions of paths. They began as ways to pass in width and height as
1561
+ generic parameters and let the path use the one or the other.
1562
+
1563
+ For scaling and shifting see for example L<Transform::Canvas>, and to rotate
1564
+ as well see L<Geometry::AffineTransform>.
1565
+
1566
+ =head2 Loop Step
1567
+
1568
+ The paths can be characterized by how much longer each loop or repetition is
1569
+ than the preceding one. For example each cycle around the C<SquareSpiral>
1570
+ is 8 more N points than the preceding.
1571
+
1572
+ =for my_pod step begin
1573
+
1574
+ Step Path
1575
+ ---- ----
1576
+ 0 Rows, Columns (fixed widths)
1577
+ 1 Diagonals
1578
+ 2/2 DiagonalsOctant (2 rows for +2)
1579
+ 2 SacksSpiral, PyramidSides, Corner, PyramidRows (default)
1580
+ 4 DiamondSpiral, AztecDiamondRings, Staircase
1581
+ 4/2 CellularRule54, CellularRule57,
1582
+ DiagonalsAlternating (2 rows for +4)
1583
+ 5 PentSpiral, PentSpiralSkewed
1584
+ 5.65 PixelRings (average about 4*sqrt(2))
1585
+ 6 HexSpiral, HexSpiralSkewed, MPeaks,
1586
+ MultipleRings (default)
1587
+ 6/2 CellularRule190 (2 rows for +6)
1588
+ 6.28 ArchimedeanChords (approaching 2*pi),
1589
+ FilledRings (average 2*pi)
1590
+ 7 HeptSpiralSkewed
1591
+ 8 SquareSpiral, PyramidSpiral
1592
+ 16/2 StaircaseAlternating (up and back for +16)
1593
+ 9 TriangleSpiral, TriangleSpiralSkewed
1594
+ 12 AnvilSpiral
1595
+ 16 OctagramSpiral, ToothpickSpiral
1596
+ 19.74 TheodorusSpiral (approaching 2*pi^2)
1597
+ 32/4 KnightSpiral (4 loops 2-wide for +32)
1598
+ 64 DiamondArms (each arm)
1599
+ 72 GreekKeySpiral
1600
+ 128 SquareArms (each arm)
1601
+ 128/4 CretanLabyrinth (4 loops for +128)
1602
+ 216 HexArms (each arm)
1603
+
1604
+ totient CoprimeColumns, DiagonalRationals
1605
+ numdivisors DivisibleColumns
1606
+ various CellularRule
1607
+
1608
+ parameter MultipleRings, PyramidRows
1609
+
1610
+ =for my_pod step end
1611
+
1612
+ The step determines which quadratic number sequences make straight lines.
1613
+ For example the gap between successive perfect squares increases by 2 each
1614
+ time (4 to 9 is +5, 9 to 16 is +7, 16 to 25 is +9, etc), so the perfect
1615
+ squares make a straight line in the paths of step 2.
1616
+
1617
+ In general straight lines on stepped paths are quadratics
1618
+
1619
+ N = a*k^2 + b*k + c where a=step/2
1620
+
1621
+ The polygonal numbers are like this, with the (step+2)-gonal numbers making
1622
+ a straight line on a "step" path. For example the 7-gonals (heptagonals)
1623
+ are 5/2*k^2-3/2*k and make a straight line on the step=5 C<PentSpiral>. Or
1624
+ the 8-gonal octagonal numbers 6/2*k^2-4/2*k on the step=6 C<HexSpiral>.
1625
+
1626
+ There are various interesting properties of primes in quadratic
1627
+ progressions. Some quadratics seem to have more primes than others. For
1628
+ example see L<Math::PlanePath::PyramidSides/Lucky Numbers of Euler>. Many
1629
+ quadratics have no primes at all, or none above a certain point, either
1630
+ trivially if always a multiple of 2 etc, or by a more sophisticated
1631
+ reasoning. See L<Math::PlanePath::PyramidRows/Step 3 Pentagonals> for a
1632
+ factorization on the roots making a no-primes gap.
1633
+
1634
+ A 4*step path splits a straight line in two, so for example the perfect
1635
+ squares are a straight line on the step=2 "Corner" path, and then on the
1636
+ step=8 C<SquareSpiral> they instead fall on two lines (lower left and upper
1637
+ right). In the bigger step there's one line of the even squares (2k)^2 ==
1638
+ 4*k^2 and another of the odd squares (2k+1)^2. The gap between successive
1639
+ even squares increases by 8 each time and likewise between odd squares.
1640
+
1641
+ =head2 Self-Similar Powers
1642
+
1643
+ The self-similar patterns such as C<PeanoCurve> generally have a base
1644
+ pattern which repeats at powers N=base^level or squares N=(base*base)^level.
1645
+ Or some multiple or relationship to such a power for things like
1646
+ C<KochPeaks> and C<GosperIslands>.
1647
+
1648
+ =for my_pod base begin
1649
+
1650
+ Base Path
1651
+ ---- ----
1652
+ 2 HilbertCurve, HilbertSpiral, ZOrderCurve (default),
1653
+ GrayCode (default), BetaOmega, AR2W2Curve,
1654
+ SierpinskiCurve, HIndexing, SierpinskiCurveStair,
1655
+ ImaginaryBase (default), ImaginaryHalf (default),
1656
+ CubicBase (default) CornerReplicate,
1657
+ ComplexMinus (default), ComplexPlus (default),
1658
+ ComplexRevolving, DragonCurve, DragonRounded,
1659
+ DragonMidpoint, AlternatePaper, AlternatePaperMidpoint,
1660
+ CCurve, DigitGroups (default), PowerArray (default)
1661
+ 3 PeanoCurve (default), WunderlichSerpentine (default),
1662
+ WunderlichMeander, KochelCurve,
1663
+ GosperIslands, GosperSide
1664
+ SierpinskiTriangle, SierpinskiArrowhead,
1665
+ SierpinskiArrowheadCentres,
1666
+ TerdragonCurve, TerdragonRounded, TerdragonMidpoint,
1667
+ UlamWarburton, UlamWarburtonQuarter (each level)
1668
+ 4 KochCurve, KochPeaks, KochSnowflakes, KochSquareflakes,
1669
+ LTiling,
1670
+ 5 QuintetCurve, QuintetCentres, QuintetReplicate,
1671
+ DekkingCurve, DekkingCentres, CincoCurve,
1672
+ R5DragonCurve, R5DragonMidpoint
1673
+ 7 Flowsnake, FlowsnakeCentres, GosperReplicate
1674
+ 8 QuadricCurve, QuadricIslands
1675
+ 9 SquareReplicate
1676
+ Fibonacci FibonacciWordFractal, WythoffArray
1677
+ parameter PeanoCurve, WunderlichSerpentine, ZOrderCurve, GrayCode,
1678
+ ImaginaryBase, ImaginaryHalf, CubicBase, ComplexPlus,
1679
+ ComplexMinus, DigitGroups, PowerArray
1680
+
1681
+ =for my_pod base end
1682
+
1683
+ Many number sequences plotted on these self-similar paths tend to be fairly
1684
+ random, or merely show the tiling or path layout rather than much about the
1685
+ number sequence. Sequences related to the base can make holes or patterns
1686
+ picking out parts of the path. For example numbers without a particular
1687
+ digit (or digits) in the relevant base show up as holes. See for example
1688
+ L<Math::PlanePath::ZOrderCurve/Power of 2 Values>.
1689
+
1690
+ =head2 Triangular Lattice
1691
+
1692
+ Some paths are on triangular or "A2" lattice points like
1693
+
1694
+ *---*---*---*---*---*
1695
+ / \ / \ / \ / \ / \ /
1696
+ *---*---*---*---*---*
1697
+ \ / \ / \ / \ / \ / \
1698
+ *---*---*---*---*---*
1699
+ / \ / \ / \ / \ / \ /
1700
+ *---*---*---*---*---*
1701
+ \ / \ / \ / \ / \ / \
1702
+ *---*---*---*---*---*
1703
+ / \ / \ / \ / \ / \ /
1704
+ *---*---*---*---*---*
1705
+
1706
+ This is done in integer X,Y on a square grid by using every second square
1707
+ and offsetting alternate rows. This means sum X+Y even, ie. X,Y either both
1708
+ even or both odd, not of opposite parity.
1709
+
1710
+ . * . * . * . * . * . *
1711
+ * . * . * . * . * . * .
1712
+ . * . * . * . * . * . *
1713
+ * . * . * . * . * . * .
1714
+ . * . * . * . * . * . *
1715
+ * . * . * . * . * . * .
1716
+
1717
+ The X axis the and diagonals X=Y and X=-Y divide the plane into six equal
1718
+ parts in this grid.
1719
+
1720
+ X=-Y X=Y
1721
+ \ /
1722
+ \ /
1723
+ \ /
1724
+ ----------------- X=0
1725
+ / \
1726
+ / \
1727
+ / \
1728
+
1729
+ The diagonal X=3*Y is the middle of the first sixth, representing a twelfth
1730
+ of the plane.
1731
+
1732
+ The resulting triangles are flatter than they should be. The triangle base
1733
+ is width=2 and top is height=1, whereas it would be height=sqrt(3) for an
1734
+ equilateral triangle. That sqrt(3) factor can be applied if desired,
1735
+
1736
+ X, Y*sqrt(3) side length 2
1737
+
1738
+ X/2, Y*sqrt(3)/2 side length 1
1739
+
1740
+ Integer Y values have the advantage of fitting pixels on the usual kind of
1741
+ raster computer screen, and not losing precision in floating point results.
1742
+
1743
+ If doing a general-purpose coordinate rotation then be sure to apply the
1744
+ sqrt(3) scale factor before rotating or the result will be skewed. 60
1745
+ degree rotations can be made within the integer X,Y coordinates directly as
1746
+ follows, all giving integer X,Y results.
1747
+
1748
+ (X-3Y)/2, (Y+X)/2 rotate +60 (anti-clockwise)
1749
+ (X+3Y)/2, (Y-X)/2 rotate -60 (clockwise)
1750
+ -(X+3Y)/2, (X-Y)/2 rotate +120
1751
+ (3Y-X)/2, -(X+Y)/2 rotate -120
1752
+ -X,-Y rotate 180
1753
+
1754
+ (X+3Y)/2, (X-Y)/2 mirror across the X=3*Y twelfth line
1755
+
1756
+ The sqrt(3) factor can be worked into a hypotenuse radial distance
1757
+ calculation as follows if comparing distances from the origin.
1758
+
1759
+ hypot = sqrt(X*X + 3*Y*Y)
1760
+
1761
+ See for instance C<TriangularHypot> which is triangular points ordered by
1762
+ this radial distance.
1763
+
1764
+ =head1 FORMULAS
1765
+
1766
+ The formulas section in the POD of each class describes some of the
1767
+ calculations. This might be of interest even if the code is not.
1768
+
1769
+ =head2 Triangular Calculations
1770
+
1771
+ For a triangular lattice the rotation formulas above allow calculations to
1772
+ be done in the rectangular X,Y coordinates which are the inputs and outputs
1773
+ of the PlanePath functions. Another way is to number vertically on a 60
1774
+ degree angle with coordinates i,j,
1775
+
1776
+ ...
1777
+ * * * 2
1778
+ * * * 1
1779
+ * * * j=0
1780
+ i=0 1 2
1781
+
1782
+ These coordinates are sometimes used for hexagonal grids in board games etc.
1783
+ Using this internally can simplify rotations a little,
1784
+
1785
+ -j, i+j rotate +60 (anti-clockwise)
1786
+ i+j, -i rotate -60 (clockwise)
1787
+ -i-j, i rotate +120
1788
+ j, -i-j rotate -120
1789
+ -i, -j rotate 180
1790
+
1791
+ Conversions between i,j and the rectangular X,Y are
1792
+
1793
+ X = 2*i + j i = (X-Y)/2
1794
+ Y = j j = Y
1795
+
1796
+ A third coordinate k at a +120 degrees angle can be used too,
1797
+
1798
+ k=0 k=1 k=2
1799
+ * * *
1800
+ * * *
1801
+ * * *
1802
+ 0 1 2
1803
+
1804
+ This is redundant in that it doesn't number anything i,j alone can't
1805
+ already, but it has the advantage of turning rotations into just sign
1806
+ changes and swaps,
1807
+
1808
+ -k, i, j rotate +60
1809
+ j, k, -i rotate -60
1810
+ -j, -k, i rotate +120
1811
+ k, -i, -j rotate -120
1812
+ -i, -j, -k rotate 180
1813
+
1814
+ The conversions between i,j,k and the rectangular X,Y are like the i,j above
1815
+ but with k worked in too.
1816
+
1817
+ X = 2i + j - k i = (X-Y)/2 i = (X+Y)/2
1818
+ Y = j + k j = Y or j = 0
1819
+ k = 0 k = Y
1820
+
1821
+ =head2 N to dX,dY -- Fractional
1822
+
1823
+ C<n_to_dxdy()> is the change from N to N+1, and is designed both for integer
1824
+ N and fractional N. For fractional N it can be convenient to calculate a
1825
+ dX,dY at floor(N) and at floor(N)+1 and then combine the two in proportion
1826
+ to frac(N).
1827
+
1828
+ int+2
1829
+ |
1830
+ |
1831
+ N+1 \
1832
+ /| |
1833
+ / | |
1834
+ / | | frac
1835
+ / | |
1836
+ / | |
1837
+ / | /
1838
+ int-----N------int+1
1839
+ this_dX dX,dY next_dX
1840
+ this_dY next_dY
1841
+
1842
+ |-------|------|
1843
+ frac 1-frac
1844
+
1845
+
1846
+ int = int(N)
1847
+ frac = N - int 0 <= frac < 1
1848
+
1849
+ this_dX,this_dY at int
1850
+ next_dX,next_dY at int+1
1851
+
1852
+ at fractional N
1853
+ dX = this_dX * (1-frac) + next_dX * frac
1854
+ dY = this_dY * (1-frac) + next_dY * frac
1855
+
1856
+ This is combination of this_dX,this_dY and next_dX,next_dY in proportion to
1857
+ the distances from positions N to int+1 and from int+1 to N+1.
1858
+
1859
+ The formulas can be rearranged to
1860
+
1861
+ dX = this_dX + frac*(next_dX - this_dX)
1862
+ dY = this_dY + frac*(next_dY - this_dY)
1863
+
1864
+ which is like dX,dY at the integer position plus fractional part of a turn
1865
+ or change to the next dX,dY.
1866
+
1867
+ =head2 N to dX,dY -- Self-Similar
1868
+
1869
+ For most of the self-similar paths such as C<HilbertCurve> the change dX,dY
1870
+ is determined by following the state table transitions down through either
1871
+ all digits of N, or to the last non-9 digit, ie. drop any low digits equal
1872
+ to radix-1.
1873
+
1874
+ Generally paths which are the edges of some tiling use all digits, and those
1875
+ which are the centres of a tiling stop at the lowest non-9. This can be
1876
+ seen for example in the C<DekkingCurve> using all digits, whereas its
1877
+ C<DekkingCentres> variant stops at the lowest non-24.
1878
+
1879
+ Perhaps this all-digits vs low-non-9 even characterizes path style as edges
1880
+ or centres of a tiling, when a path is specified in some way that a tiling
1881
+ is not quite obvious.
1882
+
1883
+ =head1 SUBCLASSING
1884
+
1885
+ The mandatory methods for a PlanePath subclass are
1886
+
1887
+ n_to_xy()
1888
+ xy_to_n()
1889
+ xy_to_n_list() if multiple N's map to an X,Y
1890
+ rect_to_n_range()
1891
+
1892
+ It sometimes happens that one of C<n_to_xy()> or C<xy_to_n()> is easier than
1893
+ the other but both should be implemented.
1894
+
1895
+ C<n_to_xy()> should do something sensible on fractional N. The suggestion
1896
+ is to make it an X,Y proportionally between integer N positions. It can be
1897
+ along a straight line or an arc as best suits the path. A straight line can
1898
+ be done simply by two calculations of the surrounding integer points, until
1899
+ it's clear how to work the fraction into the code directly.
1900
+
1901
+ C<xy_to_n_list()> has a base implementation calling plain C<xy_to_n()> to
1902
+ give a single N at X,Y. If a path has multiple Ns at an X,Y
1903
+ (eg. C<DragonCurve>) then it should implement C<xy_to_n_list()> to return
1904
+ all those Ns and also implement a plain C<xy_to_n()> returning the first of
1905
+ them.
1906
+
1907
+ C<rect_to_n_range()> can initially be any convenient over-estimate. It
1908
+ should give N big enough that from there onwards all points are sure to be
1909
+ beyond the given X,Y rectangle.
1910
+
1911
+ The following descriptive methods have base implementations
1912
+
1913
+ n_start() 1
1914
+ class_x_negative() \ 1, so whole plane
1915
+ class_y_negative() /
1916
+ x_negative() calls class_x_negative()
1917
+ y_negative() calls class_x_negative()
1918
+ x_negative_at_n() undef \ as for no negatives
1919
+ y_negative_at_n() undef /
1920
+
1921
+ The base C<n_start()> starts at N=1. Paths which treat N as digits of some
1922
+ radix or where there's self-similar replication are often best started from
1923
+ N=0 instead since doing so puts nice powers-of-2 etc on the axes or
1924
+ diagonals.
1925
+
1926
+ use constant n_start => 0; # digit or replication style
1927
+
1928
+ Paths which use only parts of the plane should define C<class_x_negative()>
1929
+ and/or C<class_y_negative()> to false. For example if only the first
1930
+ quadrant XE<gt>=0,YE<gt>=0 then
1931
+
1932
+ use constant class_x_negative => 0;
1933
+ use constant class_y_negative => 0;
1934
+
1935
+ If negativeness varies with path parameters then C<x_negative()> and/or
1936
+ C<y_negative()> follow those parameters and the C<class_()> forms are
1937
+ whether any set of parameters ever gives negative.
1938
+
1939
+ The following methods have base implementations calling C<n_to_xy()>.
1940
+ A subclass can implement them directly if they can be done more efficiently.
1941
+
1942
+ n_to_dxdy() calls n_to_xy() twice
1943
+ n_to_rsquared() calls n_to_xy()
1944
+ n_to_radius() sqrt of n_to_rsquared()
1945
+
1946
+ C<SacksSpiral> is an example of an easy C<n_to_rsquared()>.
1947
+ C<TheodorusSpiral> is only slightly trickier. Unless a path has some sort
1948
+ of easy X^2+Y^2 then it might as well let the base implementation call
1949
+ C<n_to_xy()>.
1950
+
1951
+ The way C<n_to_dxdy()> supports fractional N can be a little tricky. One
1952
+ way is to calculate dX,dY on the integer N below and above and combine as
1953
+ described in L</N to dX,dY -- Fractional>. For some paths the calculation
1954
+ of turn or direction at ceil(N) can be worked into a calculation of the
1955
+ direction at floor(N) so not much more work.
1956
+
1957
+ The following method has a base implementation calling C<xy_to_n()>.
1958
+ A subclass can implement is directly if it can be done more efficiently.
1959
+
1960
+ xy_is_visited() defined(xy_to_n($x,$y))
1961
+
1962
+ Paths such as C<SquareSpiral> which fill the plane have C<xy_is_visited()>
1963
+ always true, so for them
1964
+
1965
+ use constant xy_is_visited => 1;
1966
+
1967
+ For a tree path the following methods are mandatory
1968
+
1969
+ tree_n_parent()
1970
+ tree_n_children()
1971
+ tree_n_to_depth()
1972
+ tree_depth_to_n()
1973
+ tree_num_children_list()
1974
+ tree_n_to_subheight()
1975
+
1976
+ The other tree methods have base implementations,
1977
+
1978
+ =over
1979
+
1980
+ =item C<is_tree()>
1981
+
1982
+ Checks for C<n_start()> having non-zero C<tree_n_to_num_children()>.
1983
+ Usually this suffices, expecting C<n_start()> to be a root node and to have
1984
+ some children.
1985
+
1986
+ =item C<tree_n_num_children()>
1987
+
1988
+ Calls C<tree_n_children()> and counts the number of return values. Many
1989
+ trees can count the children with less work than calculating outright, for
1990
+ example C<RationalsTree> is simply always 2 for NE<gt>=Nstart.
1991
+
1992
+ =item C<tree_depth_to_n_end()>
1993
+
1994
+ Calls C<tree_depth_to_n($depth+1)-1>. This assumes that the depth level
1995
+ ends where the next begins. This is true for the various breadth-wise tree
1996
+ traversals, but anything interleaved etc will need its own implementation.
1997
+
1998
+ =item C<tree_depth_to_n_range()>
1999
+
2000
+ Calls C<tree_depth_to_n()> and C<tree_depth_to_n_end()>. For some paths the
2001
+ row start and end, or start and width, might be calculated together more
2002
+ efficiently.
2003
+
2004
+ =item C<tree_depth_to_width()>
2005
+
2006
+ Returns C<tree_depth_to_n_end() - tree_depth_to_n() + 1>. This suits
2007
+ breadth-wise style paths where all points at C<$depth> are in a contiguous
2008
+ block. Any path not like that will need its own C<tree_depth_to_width()>.
2009
+
2010
+ =item C<tree_num_children_minimum()>, C<tree_num_children_maximum()>
2011
+
2012
+ Return the first and last values of C<tree_num_children_list()> as the
2013
+ minimum and maximum.
2014
+
2015
+ =item C<tree_any_leaf()>
2016
+
2017
+ Calls C<tree_num_children_minimum()>. If the minimum C<num_children> is 0
2018
+ then there's leaf nodes.
2019
+
2020
+ =back
2021
+
2022
+ =head1 SEE ALSO
2023
+
2024
+ =for my_pod see_also begin
2025
+
2026
+ L<Math::PlanePath::SquareSpiral>,
2027
+ L<Math::PlanePath::PyramidSpiral>,
2028
+ L<Math::PlanePath::TriangleSpiral>,
2029
+ L<Math::PlanePath::TriangleSpiralSkewed>,
2030
+ L<Math::PlanePath::DiamondSpiral>,
2031
+ L<Math::PlanePath::PentSpiral>,
2032
+ L<Math::PlanePath::PentSpiralSkewed>,
2033
+ L<Math::PlanePath::HexSpiral>,
2034
+ L<Math::PlanePath::HexSpiralSkewed>,
2035
+ L<Math::PlanePath::HeptSpiralSkewed>,
2036
+ L<Math::PlanePath::AnvilSpiral>,
2037
+ L<Math::PlanePath::OctagramSpiral>,
2038
+ L<Math::PlanePath::KnightSpiral>,
2039
+ L<Math::PlanePath::CretanLabyrinth>
2040
+
2041
+ L<Math::PlanePath::HexArms>,
2042
+ L<Math::PlanePath::SquareArms>,
2043
+ L<Math::PlanePath::DiamondArms>,
2044
+ L<Math::PlanePath::AztecDiamondRings>,
2045
+ L<Math::PlanePath::GreekKeySpiral>,
2046
+ L<Math::PlanePath::MPeaks>
2047
+
2048
+ L<Math::PlanePath::SacksSpiral>,
2049
+ L<Math::PlanePath::VogelFloret>,
2050
+ L<Math::PlanePath::TheodorusSpiral>,
2051
+ L<Math::PlanePath::ArchimedeanChords>,
2052
+ L<Math::PlanePath::MultipleRings>,
2053
+ L<Math::PlanePath::PixelRings>,
2054
+ L<Math::PlanePath::FilledRings>,
2055
+ L<Math::PlanePath::Hypot>,
2056
+ L<Math::PlanePath::HypotOctant>,
2057
+ L<Math::PlanePath::TriangularHypot>,
2058
+ L<Math::PlanePath::PythagoreanTree>
2059
+
2060
+ L<Math::PlanePath::PeanoCurve>,
2061
+ L<Math::PlanePath::WunderlichSerpentine>,
2062
+ L<Math::PlanePath::WunderlichMeander>,
2063
+ L<Math::PlanePath::HilbertCurve>,
2064
+ L<Math::PlanePath::HilbertSpiral>,
2065
+ L<Math::PlanePath::ZOrderCurve>,
2066
+ L<Math::PlanePath::GrayCode>,
2067
+ L<Math::PlanePath::AR2W2Curve>,
2068
+ L<Math::PlanePath::BetaOmega>,
2069
+ L<Math::PlanePath::KochelCurve>,
2070
+ L<Math::PlanePath::DekkingCurve>,
2071
+ L<Math::PlanePath::DekkingCentres>,
2072
+ L<Math::PlanePath::CincoCurve>
2073
+
2074
+ L<Math::PlanePath::ImaginaryBase>,
2075
+ L<Math::PlanePath::ImaginaryHalf>,
2076
+ L<Math::PlanePath::CubicBase>,
2077
+ L<Math::PlanePath::SquareReplicate>,
2078
+ L<Math::PlanePath::CornerReplicate>,
2079
+ L<Math::PlanePath::LTiling>,
2080
+ L<Math::PlanePath::DigitGroups>,
2081
+ L<Math::PlanePath::FibonacciWordFractal>
2082
+
2083
+ L<Math::PlanePath::Flowsnake>,
2084
+ L<Math::PlanePath::FlowsnakeCentres>,
2085
+ L<Math::PlanePath::GosperReplicate>,
2086
+ L<Math::PlanePath::GosperIslands>,
2087
+ L<Math::PlanePath::GosperSide>
2088
+
2089
+ L<Math::PlanePath::QuintetCurve>,
2090
+ L<Math::PlanePath::QuintetCentres>,
2091
+ L<Math::PlanePath::QuintetReplicate>
2092
+
2093
+ L<Math::PlanePath::KochCurve>,
2094
+ L<Math::PlanePath::KochPeaks>,
2095
+ L<Math::PlanePath::KochSnowflakes>,
2096
+ L<Math::PlanePath::KochSquareflakes>
2097
+
2098
+ L<Math::PlanePath::QuadricCurve>,
2099
+ L<Math::PlanePath::QuadricIslands>
2100
+
2101
+ L<Math::PlanePath::SierpinskiCurve>,
2102
+ L<Math::PlanePath::SierpinskiCurveStair>,
2103
+ L<Math::PlanePath::HIndexing>
2104
+
2105
+ L<Math::PlanePath::SierpinskiTriangle>,
2106
+ L<Math::PlanePath::SierpinskiArrowhead>,
2107
+ L<Math::PlanePath::SierpinskiArrowheadCentres>
2108
+
2109
+ L<Math::PlanePath::DragonCurve>,
2110
+ L<Math::PlanePath::DragonRounded>,
2111
+ L<Math::PlanePath::DragonMidpoint>,
2112
+ L<Math::PlanePath::AlternatePaper>,
2113
+ L<Math::PlanePath::AlternatePaperMidpoint>,
2114
+ L<Math::PlanePath::TerdragonCurve>,
2115
+ L<Math::PlanePath::TerdragonRounded>,
2116
+ L<Math::PlanePath::TerdragonMidpoint>,
2117
+ L<Math::PlanePath::R5DragonCurve>,
2118
+ L<Math::PlanePath::R5DragonMidpoint>,
2119
+ L<Math::PlanePath::CCurve>
2120
+
2121
+ L<Math::PlanePath::ComplexPlus>,
2122
+ L<Math::PlanePath::ComplexMinus>,
2123
+ L<Math::PlanePath::ComplexRevolving>
2124
+
2125
+ L<Math::PlanePath::Rows>,
2126
+ L<Math::PlanePath::Columns>,
2127
+ L<Math::PlanePath::Diagonals>,
2128
+ L<Math::PlanePath::DiagonalsAlternating>,
2129
+ L<Math::PlanePath::DiagonalsOctant>,
2130
+ L<Math::PlanePath::Staircase>,
2131
+ L<Math::PlanePath::StaircaseAlternating>,
2132
+ L<Math::PlanePath::Corner>
2133
+
2134
+ L<Math::PlanePath::PyramidRows>,
2135
+ L<Math::PlanePath::PyramidSides>,
2136
+ L<Math::PlanePath::CellularRule>,
2137
+ L<Math::PlanePath::CellularRule54>,
2138
+ L<Math::PlanePath::CellularRule57>,
2139
+ L<Math::PlanePath::CellularRule190>,
2140
+ L<Math::PlanePath::UlamWarburton>,
2141
+ L<Math::PlanePath::UlamWarburtonQuarter>
2142
+
2143
+ L<Math::PlanePath::DiagonalRationals>,
2144
+ L<Math::PlanePath::FactorRationals>,
2145
+ L<Math::PlanePath::GcdRationals>,
2146
+ L<Math::PlanePath::RationalsTree>,
2147
+ L<Math::PlanePath::FractionsTree>,
2148
+ L<Math::PlanePath::ChanTree>,
2149
+ L<Math::PlanePath::CfracDigits>,
2150
+ L<Math::PlanePath::CoprimeColumns>,
2151
+ L<Math::PlanePath::DivisibleColumns>,
2152
+ L<Math::PlanePath::WythoffArray>,
2153
+ L<Math::PlanePath::WythoffPreliminaryTriangle>,
2154
+ L<Math::PlanePath::PowerArray>,
2155
+ L<Math::PlanePath::File>
2156
+
2157
+ =for my_pod see_also end
2158
+
2159
+ L<Math::PlanePath::LCornerTree>,
2160
+ L<Math::PlanePath::LCornerReplicate>,
2161
+ L<Math::PlanePath::ToothpickTree>,
2162
+ L<Math::PlanePath::ToothpickReplicate>,
2163
+ L<Math::PlanePath::ToothpickUpist>,
2164
+ L<Math::PlanePath::ToothpickSpiral>,
2165
+ L<Math::PlanePath::OneOfEight>,
2166
+ L<Math::PlanePath::HTree>
2167
+
2168
+ L<Math::NumSeq::PlanePathCoord>,
2169
+ L<Math::NumSeq::PlanePathDelta>,
2170
+ L<Math::NumSeq::PlanePathTurn>,
2171
+ L<Math::NumSeq::PlanePathN>
2172
+
2173
+ L<math-image>, displaying various sequences on these paths.
2174
+
2175
+ F<examples/numbers.pl> in the Math-PlanePath source code, to print all the
2176
+ paths.
2177
+
2178
+ =head2 Other Ways To Do It
2179
+
2180
+ L<Math::Fractal::Curve>,
2181
+ L<Math::Curve::Hilbert>,
2182
+ L<Algorithm::SpatialIndex::Strategy::QuadTree>
2183
+
2184
+ PerlMagick (module L<Image::Magick>) demo scripts F<lsys.pl> and F<tree.pl>
2185
+
2186
+ =head1 HOME PAGE
2187
+
2188
+ L<http://user42.tuxfamily.org/math-planepath/index.html>
2189
+
2190
+ L<http://user42.tuxfamily.org/math-planepath/gallery.html>
2191
+
2192
+ =head1 LICENSE
2193
+
2194
+ Copyright 2010, 2011, 2012, 2013, 2014 Kevin Ryde
2195
+
2196
+ This file is part of Math-PlanePath.
2197
+
2198
+ Math-PlanePath is free software; you can redistribute it and/or modify it
2199
+ under the terms of the GNU General Public License as published by the Free
2200
+ Software Foundation; either version 3, or (at your option) any later
2201
+ version.
2202
+
2203
+ Math-PlanePath is distributed in the hope that it will be useful, but
2204
+ WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
2205
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
2206
+ more details.
2207
+
2208
+ You should have received a copy of the GNU General Public License along with
2209
+ Math-PlanePath. If not, see <http://www.gnu.org/licenses/>.
2210
+
2211
+ =cut